00001 #ifndef __VIRTUALCIRCUITTABLEENTRY_H 00002 #define __VIRTUALCIRCUITTABLEENTRY_H 00003 00004 #include <sys/types.h> 00005 #include <iostream> 00006 #include <pthread.h> 00007 #include "ConnectionPacket.h" 00008 #include "NpPacket.h" 00009 #include "Node.h" 00010 #include "debug.h" 00011 00012 using namespace std; 00013 00014 class VirtualCircuitTableEntry : public BasicObject 00015 { 00016 public: 00017 // Constructors 00018 VirtualCircuitTableEntry(Node* srcNode, int srcVcn, 00019 Node* destNode, int destVcn); 00020 VirtualCircuitTableEntry(); 00021 00022 // Destructor 00023 virtual ~VirtualCircuitTableEntry(); 00024 00025 // Accessors 00026 int getSrcVcn(); 00027 Node* getSrcNode(); 00028 int getDestVcn(); 00029 Node* getDestNode(); 00030 int getHeartbeatMissedCount(); 00031 void setIsTerminatingPeer(bool val); 00032 void setIsOriginatingPeer(bool val); 00033 bool isTerminatingPeer(); 00034 bool isOriginatingPeer(); 00035 00036 // Mutators 00037 void setSrcVcn(int srcVcn); 00038 void setSrcNode(Node* srcNode); 00039 void setDestVcn(int destVcn); 00040 void setDestNode(Node* destNode); 00041 00042 virtual void toStream(std::ostream& out); 00043 00044 // For debugging - if info is turned on, enable packet counting 00045 #ifdef INFO 00046 unsigned int controlPackets; 00047 unsigned int dataPackets; 00048 #endif 00049 00050 private: 00051 // Source virtual circuit number 00052 Node* m_srcNode; 00053 int m_srcVcn; 00054 Node* m_destNode; 00055 int m_destVcn; 00056 00057 //int m_rtt; 00058 00059 bool m_isTerminatingPeer; 00060 bool m_isOriginatingPeer; 00061 00062 }; // class VirtualCircuitTableEntry 00063 00064 #endif