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 public: 00045 PeerInfo(uint32_t type, int moduleId, cObject** context); 00046 00047 00048 virtual ~PeerInfo() {}; 00049 00055 bool isBootstrapped() { return bootstrapped; }; 00056 00062 void setBootstrapped(bool bootstrap = true) { bootstrapped = bootstrap; }; 00063 00069 int getModuleID() { return moduleId; }; 00070 00076 int8_t getNpsLayer() { return npsLayer; }; 00077 00081 void setNpsLayer(int8_t layer) { npsLayer = layer; } 00082 00088 uint32_t getTypeID() { return type; }; 00089 00095 bool isPreKilled() { return preKilled; }; 00096 00102 void setPreKilled(bool killed = true) { preKilled = killed; }; 00103 00109 bool isMalicious() { return malicious; }; 00110 00111 cObject** getContext() { return context; }; 00112 00118 void setMalicious(bool malic = true) { malicious = malic; }; 00119 00128 friend std::ostream& operator<<(std::ostream& os, const PeerInfo info); 00129 00130 protected: 00131 virtual void dummy(); 00133 bool bootstrapped; 00134 bool malicious; 00135 bool preKilled; 00136 int moduleId; 00137 uint32_t type; 00138 int8_t npsLayer; 00139 cObject** context; 00140 }; 00141 00142 #endif