00001 #include "headers.h" 00002 00006 VirtualCircuitTableEntry::VirtualCircuitTableEntry() 00007 { 00008 setSrcNode(NULL); 00009 setSrcVcn(0); 00010 setDestNode(NULL); 00011 setDestVcn(0); 00012 setIsTerminatingPeer(false); 00013 setIsOriginatingPeer(false); 00014 #ifdef INFO 00015 controlPackets = 0; 00016 dataPackets = 0; 00017 #endif 00018 } // constructor 00019 00020 00024 VirtualCircuitTableEntry::VirtualCircuitTableEntry(Node* srcNode, 00025 int srcVcn, 00026 Node* destNode, 00027 int destVcn) 00028 { 00029 setSrcNode(srcNode); 00030 setSrcVcn(srcVcn); 00031 setDestNode(destNode); 00032 setDestVcn(destVcn); 00033 setIsTerminatingPeer(false); 00034 setIsOriginatingPeer(false); 00035 #ifdef INFO 00036 controlPackets = 0; 00037 dataPackets = 0; 00038 #endif 00039 } // constructor 00040 00041 00044 VirtualCircuitTableEntry::~VirtualCircuitTableEntry() 00045 { 00046 } // destructor 00047 00048 00049 // ****************************************************************** 00050 // Accessors 00051 // ****************************************************************** 00052 int VirtualCircuitTableEntry::getSrcVcn() 00053 { 00054 return m_srcVcn; 00055 } // fn getSrcVcn 00056 00057 00058 Node* VirtualCircuitTableEntry::getSrcNode() 00059 { 00060 return m_srcNode; 00061 } // fn getSrcNode 00062 00063 00064 int VirtualCircuitTableEntry::getDestVcn() 00065 { 00066 return m_destVcn; 00067 } // fn getDestVcn 00068 00069 00070 Node* VirtualCircuitTableEntry::getDestNode() 00071 { 00072 return m_destNode; 00073 } // fn getDestNode 00074 00075 00076 bool 00077 VirtualCircuitTableEntry::isTerminatingPeer() { 00078 return m_isTerminatingPeer; 00079 } // fn isTerminatingPeer 00080 00081 00082 bool 00083 VirtualCircuitTableEntry::isOriginatingPeer() { 00084 return m_isOriginatingPeer; 00085 } // fn isOriginatingPeer 00086 00087 00088 00089 // ****************************************************************** 00090 // Mutators 00091 // ****************************************************************** 00092 void VirtualCircuitTableEntry::setSrcVcn(int srcVcn) 00093 { 00094 m_srcVcn = srcVcn; 00095 } // fn setSrcVcn 00096 00097 00098 void VirtualCircuitTableEntry::setSrcNode(Node* srcNode) 00099 { 00100 m_srcNode = srcNode; 00101 } // fn setSrcNode 00102 00103 00104 void VirtualCircuitTableEntry::setDestVcn(int destVcn) 00105 { 00106 m_destVcn = destVcn; 00107 } // fn setDestNode 00108 00109 00110 void VirtualCircuitTableEntry::setDestNode(Node* destNode) 00111 { 00112 m_destNode = destNode; 00113 } // fn setDestNode 00114 00115 00116 void 00117 VirtualCircuitTableEntry::setIsTerminatingPeer(bool val) { 00118 m_isTerminatingPeer = val; 00119 } // fn setIsTerminatingPeer 00120 00121 00122 void 00123 VirtualCircuitTableEntry::setIsOriginatingPeer(bool val) { 00124 m_isOriginatingPeer = val; 00125 } // fn setIsOriginatingPeer 00126 00127 00128 // ****************************************************************** 00129 // I/O methods 00130 // ****************************************************************** 00131 00135 void 00136 VirtualCircuitTableEntry::toStream(std::ostream& out) 00137 { 00138 out.setf(ios::left); 00139 00140 // print src IP addr 00141 out << setw(IP_PORT_FIELD_LENGTH); 00142 if (m_srcNode) { 00143 SocketAddress* tmpSocketAddress = m_srcNode->getSocketAddress(); 00144 IpAddress tmpIpAddress = tmpSocketAddress->getIpAddress(); 00145 out << tmpIpAddress; 00146 } 00147 else { 00148 out << "null"; 00149 } 00150 00151 00152 // print src VCN 00153 out << setw(VCN_FIELD_LENGTH) << m_srcVcn; 00154 00155 // print dest IP addr 00156 out << setw(IP_PORT_FIELD_LENGTH); 00157 if (m_destNode) { 00158 SocketAddress* tmpSocketAddress = m_destNode->getSocketAddress(); 00159 IpAddress tmpIpAddress = tmpSocketAddress->getIpAddress(); 00160 out << tmpIpAddress; 00161 } 00162 else { 00163 out << "null"; 00164 } 00165 00166 // print dest VCN 00167 out << setw(VCN_FIELD_LENGTH) << m_destVcn; 00168 00169 // print isOrigPeer 00170 out << setw(2) << (char)(boolToString(m_isOriginatingPeer)[0]); 00171 00172 // print isTermPeer 00173 out << setw(2) << (char)(boolToString(m_isTerminatingPeer)[0]); 00174 00175 #ifdef INFO 00176 // print out count of control and data packets. 00177 out << setw(MAX_INT_LENGTH) << controlPackets << " " << setw(MAX_INT_LENGTH) << dataPackets; 00178 #endif 00179 out << "\n"; 00180 } // fn toStream 00181 00182