OverSim
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
OverSim
OverSim API Reference
GPL
Todo List
Namespaces
Classes
Files
File List
AbstractLookup.h
AbstractSendStrategy.cc
AbstractSendStrategy.h
AccessNet.cc
AccessNet.h
ALMTest.cc
ALMTest.h
ALMTestTracedMessage_m.h
apptunoutscheduler.cc
apptunoutscheduler.h
AreaDataContainer.cc
AreaDataContainer.h
Bamboo.cc
Bamboo.h
base64.h
BaseApp.cc
BaseApp.h
BaseLocation.h
BaseOverlay.cc
BaseOverlay.h
BasePastry.cc
BasePastry.h
BaseRpc.cc
BaseRpc.h
BaseTcpSupport.cc
BaseTcpSupport.h
BinaryValue.cc
BinaryValue.h
BootstrapList.cc
BootstrapList.h
BootstrapListAccess.h
BootstrapNodeHandle.h
BoundingBox2D.cc
BoundingBox2D.h
Broose.cc
Broose.h
BrooseBucket.cc
BrooseBucket.h
BrooseHandle.cc
BrooseHandle.h
BrooseMessage_m.h
CBR-DHT.cc
CBR-DHT.h
CBR-DHTMessage_m.h
Chord.cc
Chord.h
ChordFingerTable.cc
ChordFingerTable.h
ChordMessage_m.h
ChordSuccessorList.cc
ChordSuccessorList.h
Churn_m.h
ChurnGenerator.cc
ChurnGenerator.h
ChurnGeneratorAccess.h
cnetcommbuffer.cc
cnetcommbuffer.h
combination.h
CommonMessages_m.h
Comparator.h
ConnectivityProbe.cc
ConnectivityProbe.h
ConnectivityProbeApp.cc
ConnectivityProbeApp.h
ConnectivityProbeQuon.cc
ConnectivityProbeQuon.h
ConnectReaSE.cc
ConnectReaSE.h
CoordBasedRouting.cc
CoordBasedRouting.h
CoordBasedRoutingAccess.h
CoordDataContainer.cc
CoordDataContainer.h
CoordinateSystem.cc
CoordinateSystem.h
CoordMessages_m.h
CryptoModule.cc
CryptoModule.h
DHT.cc
DHT.h
DHTDataStorage.cc
DHTDataStorage.h
DHTMessage_m.h
DHTTestApp.cc
DHTTestApp.h
DHTTestAppMessages_m.h
DiscoveryMode.cc
DiscoveryMode.h
DiscoveryMode_m.h
ExtAPIMessages_m.h
ExtTCPSocketMap.cc
ExtTCPSocketMap.h
FinisherModule.cc
FinisherModule.h
GenericPacketParser.cc
GenericPacketParser.h
Gia.cc
Gia.h
GiaKeyList.cc
GiaKeyList.h
GiaKeyListModule.cc
GiaKeyListModule.h
GiaMessage_m.h
GiaMessageBookkeeping.cc
GiaMessageBookkeeping.h
GiaNeighborCandidateList.cc
GiaNeighborCandidateList.h
GiaNeighbors.cc
GiaNeighbors.h
GiaNode.cc
GiaNode.h
GIASearchApp.cc
GIASearchApp.h
GiaTokenFactory.cc
GiaTokenFactory.h
GlobalCoordinator.cc
GlobalCoordinator.h
GlobalDhtTestMap.cc
GlobalDhtTestMap.h
GlobalNodeList.cc
GlobalNodeList.h
GlobalNodeListAccess.h
GlobalParameters.cc
GlobalParameters.h
GlobalParametersAccess.h
GlobalStatistics.cc
GlobalStatistics.h
GlobalStatisticsAccess.h
GlobalTraceManager.cc
GlobalTraceManager.h
GlobalTraceManager_m.h
GlobalViewBuilder.cc
GlobalViewBuilder.h
greatGathering.cc
greatGathering.h
groupRoaming.cc
groupRoaming.h
HashFunc.h
hashWatch.h
hotspotRoaming.cc
hotspotRoaming.h
I3.cc
I3.h
I3Anycast.cc
I3BaseApp.cc
I3BaseApp.h
I3Composite.cc
I3HostMobility.cc
I3Identifier.cc
I3Identifier.h
I3IdentifierStack.cc
I3IdentifierStack.h
I3IPAddress.cc
I3IPAddress.h
I3LatencyStretch.cc
I3Message.cc
I3Message.h
I3Message_m.h
I3Multicast.cc
I3Session.cc
I3SessionMessage_m.h
I3SubIdentifier.cc
I3SubIdentifier.h
I3Trigger.cc
I3Trigger.h
I3TriggerRoutingTime.cc
I3Triggers.cc
I3TriggersMessage_m.h
index.h
InetInfo.cc
InetInfo.h
InetUnderlayConfigurator.cc
InetUnderlayConfigurator.h
InitStages.h
IterativeLookup.cc
IterativeLookup.h
IterativeLookupConfiguration.h
Kademlia.cc
Kademlia.h
KademliaBucket.cc
KademliaBucket.h
KademliaMessage_m.h
KademliaNodeHandle.cc
KademliaNodeHandle.h
KBRTestApp.cc
KBRTestApp.h
KBRTestMessage_m.h
Koorde.cc
Koorde.h
Landmark.cc
Landmark.h
LifetimeChurn.cc
LifetimeChurn.h
LoginCache.cc
LoginCache.h
LookupListener.h
MessageObserver.cc
MessageObserver.h
MovementGenerator.cc
MovementGenerator.h
MyApplication.cc
MyApplication.h
MyMessage_m.h
MyOverlay.cc
MyOverlay.h
MyOverlay_m.h
NeighborCache.cc
NeighborCache.h
Nice.cc
Nice.h
NiceCluster.cc
NiceCluster.h
NiceMessage_m.h
NicePeerInfo.cc
NicePeerInfo.h
NoChurn.cc
NoChurn.h
NodeHandle.cc
NodeHandle.h
NodeVector.cc
NodeVector.h
Nps.cc
Nps.h
Nps_m.h
NTree.cc
NTree.h
NTree_m.h
NTreeHelper.cc
NTreeHelper.h
OverlayAccess.h
OverlayDummy.cc
OverlayKey.cc
OverlayKey.h
oversim_byteswap.h
oversim_mapset.h
OverSimMessage.cc
OverSimMessage.h
OverSimMessage_m.h
P2pns.cc
P2pns.h
P2pnsCache.cc
P2pnsCache.h
P2pnsMessage_m.h
PacketParser.h
ParetoChurn.cc
ParetoChurn.h
Pastry.cc
Pastry.h
PastryLeafSet.cc
PastryLeafSet.h
PastryMessage_m.h
PastryNeighborhoodSet.cc
PastryNeighborhoodSet.h
PastryRoutingTable.cc
PastryRoutingTable.h
PastryStateObject.cc
PastryStateObject.h
PastryTypes.h
PeerInfo.cc
PeerInfo.h
PeerStorage.cc
PeerStorage.h
ProximityLookupMessages_m.h
ProxNodeHandle.cc
ProxNodeHandle.h
PubSubLobby.cc
PubSubLobby.h
PubSubMessage_m.h
PubSubMMOG.cc
PubSubMMOG.h
PubSubSubspace.cc
PubSubSubspace.h
PubSubSubspaceId.cc
PubSubSubspaceId.h
Quon.cc
Quon.h
Quon_m.h
QuonDefs.h
QuonHelper.cc
QuonHelper.h
RandomChurn.cc
RandomChurn.h
randomRoaming.cc
randomRoaming.h
realtimescheduler.cc
realtimescheduler.h
RealworldApp.cc
RealworldApp.h
RealworldConnector.cc
RealworldConnector.h
RealworldDevice.cc
RealworldDevice.h
realWorldRoaming.cc
realWorldRoaming.h
RealWorldTestApp.cc
RealWorldTestApp.h
RealWorldTestMessage_m.h
RealWorldTestPacketParser.cc
RealWorldTestPacketParser.h
ReaSEInfo.cc
ReaSEInfo.h
ReaSEUnderlayConfigurator.cc
ReaSEUnderlayConfigurator.h
RecursiveLookup.cc
RecursiveLookup.h
RegionDataContainer.cc
RegionDataContainer.h
RpcListener.cc
RpcListener.h
RpcMacros.h
RpcState.h
RUNetworkConfigurator.cc
RUNetworkConfigurator.h
SCPacket.h
Scribe.cc
Scribe.h
ScribeGroup.cc
ScribeGroup.h
ScribeMessage_m.h
SearchMsgBookkeeping.cc
SearchMsgBookkeeping.h
SendStrategyFactory.cc
SendStrategyFactory.h
SHA1.cc
SHA1.h
SimMud.cc
SimMud.h
SimMud_m.h
SimpleCoordDataContainer.cc
SimpleCoordDataContainer.h
SimpleGameClient.cc
SimpleGameClient.h
SimpleGameClient_m.h
SimpleInfo.cc
SimpleInfo.h
SimpleNcs.cc
SimpleNcs.h
SimpleNodeEntry.cc
SimpleNodeEntry.h
SimpleTCP.cc
SimpleTCP.h
SimpleUDP.cc
SimpleUDP.h
SimpleUnderlayConfigurator.cc
SimpleUnderlayConfigurator.h
SimpleUnderlayNCS.cc
SimpleUnderlayNCS.h
simplex.cc
simplex.h
SingleHostUnderlayConfigurator.cc
SingleHostUnderlayConfigurator.h
StrategyRegions.cc
StrategyRegions.h
StrategyRemoveCoords.cc
StrategyRemoveCoords.h
StrategyRemoveInaccurate.cc
StrategyRemoveInaccurate.h
StrategyRemoveRandom.cc
StrategyRemoveRandom.h
StrategySendAll.cc
StrategySendAll.h
StrategySimplifyCoords.cc
StrategySimplifyCoords.h
StrategyTreeTest.cc
StrategyTreeTest.h
StringConvert.h
SVivaldi.cc
SVivaldi.h
TCPExampleApp.cc
TCPExampleApp.h
TCPExampleMessage_m.h
TierDummy.cc
TierDummy.h
TopologyVis.cc
TopologyVis.h
TraceChurn.cc
TraceChurn.h
TransportAddress.cc
TransportAddress.h
traverseRoaming.cc
traverseRoaming.h
TreeManagement.cc
TreeManagement.h
TreeManagementMessage_m.h
TriggerTable.cc
TriggerTable.h
TunOutDevice.cc
TunOutDevice.h
tunoutscheduler.cc
tunoutscheduler.h
UdpOutDevice.cc
UdpOutDevice.h
udpoutscheduler.cc
udpoutscheduler.h
UnderlayConfigurator.cc
UnderlayConfigurator.h
UnderlayConfiguratorAccess.h
Vast.cc
Vast.h
Vast_m.h
VastDefs.cc
VastDefs.h
Vector2D.cc
Vector2D.h
Vivaldi.cc
Vivaldi.h
XmlRpc.h
XmlRpcClient.cc
XmlRpcClient.h
XmlRpcDispatch.cc
XmlRpcDispatch.h
XmlRpcException.h
XmlRpcInterface.cc
XmlRpcInterface.h
XmlRpcMutex.cc
XmlRpcMutex.h
XmlRpcServer.cc
XmlRpcServer.h
XmlRpcServerConnection.cc
XmlRpcServerConnection.h
XmlRpcServerMethod.cc
XmlRpcServerMethod.h
XmlRpcSocket.cc
XmlRpcSocket.h
XmlRpcSource.cc
XmlRpcSource.h
XmlRpcThread.cc
XmlRpcThread.h
XmlRpcThreadedServer.cc
XmlRpcThreadedServer.h
XmlRpcUtil.cc
XmlRpcUtil.h
XmlRpcValue.cc
XmlRpcValue.h
yang.cc
yang.h
ZeroconfConnector.cc
ZeroconfConnector.h
File Members
PubSubMMOG.h
Go to the documentation of this file.
1
//
2
// Copyright (C) 2006 Institut fuer Telematik, Universitaet Karlsruhe (TH)
3
//
4
// This program is free software; you can redistribute it and/or
5
// modify it under the terms of the GNU General Public License
6
// as published by the Free Software Foundation; either version 2
7
// of the License, or (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program; if not, write to the Free Software
16
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
//
18
24
#ifndef __PUBSUBMMOG_H_
25
#define __PUBSUBMMOG_H_
26
27
#include <omnetpp.h>
28
#include <
NodeHandle.h
>
29
#include <
BaseOverlay.h
>
30
#include "
PubSubSubspace.h
"
31
#include "
PubSubMessage_m.h
"
32
33
class
PubSubMMOG
:
public
BaseOverlay
34
{
35
public
:
36
// OMNeT++
37
virtual
~PubSubMMOG
();
38
virtual
void
initializeOverlay
(
int
stage);
39
virtual
void
finishOverlay
();
40
virtual
void
handleUDPMessage
(
BaseOverlayMessage
* msg);
41
virtual
void
handleTimerEvent
(cMessage* msg);
42
virtual
void
handleAppMessage
(cMessage* msg);
43
virtual
void
receiveChangeNotification
(
int
category,
const
cPolymorphic *details);
44
virtual
bool
handleRpcCall
(
BaseCallMessage
* msg);
45
virtual
void
handleRpcResponse
(
BaseResponseMessage
*msg,
46
cPolymorphic* context,
47
int
rpcId, simtime_t rtt);
48
virtual
void
handleRpcTimeout
(
BaseCallMessage
*msg,
49
const
TransportAddress
& dest,
50
cPolymorphic* context,
51
int
rpcId,
const
OverlayKey
&destKey);
52
53
protected
:
54
55
void
setBootstrapedIcon
();
56
void
handleMove
(
GameAPIPositionMessage
* posMsg );
57
void
handleMoveMessage
(
PubSubMoveMessage
* moveMsg );
58
void
handleMoveListMessage
(
PubSubMoveListMessage
* moveMsg );
59
void
handleJoinResponse
(
PubSubJoinResponse
* joinResp );
60
void
handleSubscriptionCall
(
PubSubSubscriptionCall
* subCall );
61
void
handleSubscriptionResponse
(
PubSubSubscriptionResponse
* subResp );
62
void
handleResponsibleNodeResponse
(
PubSubResponsibleNodeResponse
* subResp );
63
void
handleTakeOver
(
PubSubTakeOverSubspaceCall
* toCall );
64
void
handleHelpResponse
(
PubSubHelpResponse
* helpResp );
65
void
handleBackupCall
(
PubSubBackupCall
* backupCall );
66
void
handleBackupResponse
(
PubSubBackupResponse
* backupResp );
67
void
handleIntermediateCall
(
PubSubIntermediateCall
* intermediateCall );
68
void
handleIntermediateResponse
(
PubSubIntermediateResponse
* intermediateResp );
69
void
handleAdoptChildCall
(
PubSubAdoptChildCall
* adoptCall );
70
void
handleAdoptChildResponse
(
PubSubAdoptChildResponse
* adoptResp );
71
void
handlePingCall
(
PubSubPingCall
* hearbeatCall );
72
void
handlePingResponse
(
PubSubPingResponse
* pingResp );
73
74
void
takeOverNewSubspace
(
PubSubSubspaceId
subspaceId );
75
void
takeOverSubspace
(
PubSubSubspaceResponsible
& subspaceId,
bool
isNew );
76
void
sendHearbeatToChildren
();
77
void
sendPingToChildren
();
78
void
handleParentTimeout
(
PubSubTimer
* timer );
79
void
handleBackupCallTimeout
(
PubSubBackupCall
* backupCall,
const
TransportAddress
& oldNode );
80
void
handlePingCallTimeout
(
PubSubPingCall
* pingCall,
const
TransportAddress
& oldNode );
81
void
handleSubscriptionCallTimeout
(
PubSubSubscriptionCall
* subscriptionCall,
const
TransportAddress
& oldNode );
82
void
handleUnsubscriptionMessage
(
PubSubUnsubscriptionMessage
* unsMsg );
83
void
handleNodeLeftMessage
(
PubSubNodeLeftMessage
* leftMsg );
84
void
handleReplacementMessage
(
PubSubReplacementMessage
* replaceMsg );
85
void
handleReleaseIntermediate
(
PubSubReleaseIntermediateMessage
* releaseMsg );
86
void
handleIntermediateBackup
(
PubSubBackupIntermediateMessage
* backupMsg );
87
void
handleSubscriptionBackup
(
PubSubBackupSubscriptionMessage
* backupMsg );
88
void
handleUnsubscribeBackup
(
PubSubBackupUnsubscribeMessage
* backupMsg );
89
90
void
unsubscribeChild
(
const
NodeHandle
& node,
PubSubSubspaceResponsible
& subspace );
91
void
sendMessageToChildren
(
PubSubSubspaceResponsible
& subspace,
92
BaseOverlayMessage
* toIntermediates,
93
BaseOverlayMessage
* toBackup,
94
BaseOverlayMessage
* toPlayers );
95
96
void
publishEvents
();
97
void
startTimer
(
PubSubTimer
* timer );
98
99
std::list<PubSubSubspace>
subscribedSubspaces
;
100
std::map<PubSubSubspaceId, PubSubSubspaceResponsible>
responsibleSubspaces
;
101
std::map<PubSubSubspaceId, PubSubSubspaceResponsible>
backupSubspaces
;
102
std::map<PubSubSubspaceId, PubSubSubspaceIntermediate>
intermediateSubspaces
;
103
104
int
subspaceSize
;
105
int
AOIWidth
;
106
107
int
numSubspaces
;
108
int
parentTimeout
;
109
int
maxChildren
;
110
111
bool
allowOldMoveMessages
;
112
113
unsigned
int
currentRegionX
,
currentRegionY
;
114
int
movementRate
;
115
int
maxMoveDelay
;
116
PubSubTimer
*
heartbeatTimer
;
117
PubSubTimer
*
childPingTimer
;
118
PubSubTimer
*
eventDeliveryTimer
;
119
cMessage*
joinTimer
;
120
TransportAddress
lobbyServer
;
121
122
// statistics
123
int
numEventsWrongTimeslot
;
124
int
numEventsCorrectTimeslot
;
125
int
numPubSubSignalingMessages
;
126
int
pubSubSignalingMessagesSize
;
127
int
numMoveMessages
;
128
int
moveMessagesSize
;
129
int
numMoveListMessages
;
130
int
moveListMessagesSize
;
131
int
respMoveListMessagesSize
;
132
int
lostMovementLists
;
133
int
receivedMovementLists
;
134
};
135
136
#endif
src
overlay
pubsubmmog
PubSubMMOG.h
Generated on Fri Dec 7 2012 13:37:53 for OverSim by
1.8.1.2