SearchMsgBookkeeping.h

Go to the documentation of this file.
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 
00019 
00025 #ifndef __SEARCHMSGBOOKKEEPING_H_
00026 #define __SEARCHMSGBOOKKEEPING_H_
00027 
00028 #include <map>
00029 
00030 #include <omnetpp.h>
00031 
00032 #include <OverlayKey.h>
00033 
00039 struct GiaSearchStats
00040 {
00041     float minDelay; 
00042     float maxDelay; 
00043     float minHopCount; 
00044     float maxHopCount; 
00045     float responseCount; 
00046 };
00047 
00053 class SearchMsgBookkeeping
00054 {
00055 public:
00056 
00060     struct SearchMessageItem
00061     {
00062         OverlayKey searchKey; 
00063         simtime_t creationTime; 
00064         simtime_t minDelay; 
00065         simtime_t maxDelay; 
00066         uint32_t minHopCount; 
00067         uint32_t maxHopCount; 
00068         uint32_t responseCount; 
00069     };
00070 
00071     typedef std::map<OverlayKey, SearchMessageItem>
00072     SearchBookkeepingList; 
00073     typedef std::map<OverlayKey, SearchMessageItem>::iterator
00074     SearchBookkeepingListIterator; 
00075     typedef std::map<OverlayKey, SearchMessageItem>::const_iterator
00076     SearchBookkeepingListConstIterator; 
00081     ~SearchMsgBookkeeping();
00082 
00088     uint32_t getSize() const;
00089 
00095     void addMessage(const OverlayKey& searchKey);
00096 
00102     void removeMessage(const OverlayKey& searchKey);
00103 
00110     bool contains(const OverlayKey& searchKey) const;
00111 
00118     void updateItem(const OverlayKey& searchKey, uint32_t hopCount);
00119 
00125     GiaSearchStats getStatisticalData() const;
00126 
00127 protected:
00128 
00129     SearchBookkeepingList messages; 
00130 };
00131 
00132 #endif
Generated on Wed May 26 16:21:15 2010 for OverSim by  doxygen 1.6.3