00001 // 00002 // Copyright (C) 2006 Institut fuer Telematik, Universitaet Karlsruhe (TH) 00003 // 00004 // This program is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU General Public License 00006 // as published by the Free Software Foundation; either version 2 00007 // of the License, or (at your option) any later version. 00008 // 00009 // This program is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU General Public License 00015 // along with this program; if not, write to the Free Software 00016 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 // 00018 00025 #ifndef __PEERINFO_H__ 00026 #define __PEERINFO_H__ 00027 00028 #include <sstream> 00029 00030 #include <omnetpp.h> 00031 00032 class PeerInfo; 00033 class BaseOverlay; 00034 00039 class PeerInfo 00040 { 00041 friend class PeerStorage; 00042 public: 00046 PeerInfo(uint32_t type, int moduleId, cObject** context); 00047 00048 00049 virtual ~PeerInfo() {}; 00050 00056 bool isBootstrapped() { return bootstrapped; }; 00057 00063 int getModuleID() { return moduleId; }; 00064 00070 int8_t getNpsLayer() { return npsLayer; }; 00071 00075 void setNpsLayer(int8_t layer) { npsLayer = layer; } 00076 00082 uint32_t getTypeID() { return type; }; 00083 00089 bool isPreKilled() { return preKilled; }; 00090 00096 void setPreKilled(bool killed = true) { preKilled = killed; }; 00097 00103 bool isMalicious() { return malicious; }; 00104 00105 cObject** getContext() { return context; }; 00106 00107 00116 friend std::ostream& operator<<(std::ostream& os, const PeerInfo info); 00117 00118 private: 00119 virtual void dummy(); 00126 void setMalicious(bool malic = true) { malicious = malic; }; 00127 00133 void setBootstrapped(bool bootstrap = true) { bootstrapped = bootstrap; }; 00134 00135 bool bootstrapped; 00136 bool malicious; 00137 bool preKilled; 00138 int moduleId; 00139 uint32_t type; 00140 int8_t npsLayer; 00141 cObject** context; 00142 }; 00143 00144 #endif