00001 #ifndef __WINDOWPOSITION_H 00002 #define __WINDOWPOSITION_H 00003 00004 class WindowPosition : public BasicObject 00005 { 00006 public: 00007 OS_SPEC_ENUM SpecialValues { 00008 DONT_CARE = -1 00009 }; 00010 00011 WindowPosition(); 00012 WindowPosition(int size, int start = DONT_CARE); 00013 WindowPosition(const WindowPosition&); 00014 virtual ~WindowPosition() {} 00015 00016 bool withinRange(WindowPosition start, WindowPosition end); 00017 int distanceTo(WindowPosition end); 00018 int getPosition(); 00019 int getSeqNum(); 00020 00021 bool operator!=(WindowPosition value); 00022 bool operator==(WindowPosition value); 00023 int incrementSeqNum(); 00024 int decrementSeqNum(); 00025 WindowPosition operator=(const WindowPosition& other); 00026 WindowPosition operator+(int value); 00027 WindowPosition operator-(int value); 00028 00029 virtual void toStream(std::ostream&); 00030 00031 private: 00032 int m_seqNum; 00033 int m_seqNumSpace; 00034 int m_windowSize; 00035 }; 00036 00037 #endif