VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
reflectedAggregateDIS.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #ifndef DtReflectedAggregate_H_
11 #define DtReflectedAggregate_H_
12 
13 #if DtDIS
14 
15 #include <vlutil/vlMachineTypes.h>
16 #include "reflectedObjectDIS.h"
17 #include "aggregateStateDecoder.h"
18 #include "aggregateStatePdu.h"
19 #include "globalObjectDesignator.h"
20 #include "objectIdHashKey.h"
21 #include "relativeLocationPdu.h"
22 
26 
30  DtReflectedAggregate* obj, void* userData);
31 
36 {
37 public:
38 
40  typedef DtAggregateStateRepository* (*DtStateRepCreator)();
41 
42 public:
43 
46  const DtEntityIdentifier& id,
47  const DtEntityType& type);
48 
51  DtExerciseConn* conn,
52  const DtEntityIdentifier& id);
53 
55  virtual ~DtReflectedAggregate();
56 
59  virtual DtAggregateStateRepository* aggregateStateRep() const;
60 
62  virtual DtAggregateStateRepository* asr() const;
63 
67  virtual DtStateRepository* stateRep() const;
68 
71  virtual DtAggregateStateDecoder* decoder();
72 
74  virtual const DtEntityIdentifier& aggregateID() const;
75 
77  virtual const DtObjectId& id() const;
78 
81  virtual const DtGlobalObjectDesignator& globalId() const;
82 
85  virtual void processStateMessage(const DtStateMsg& msg);
86 
87  virtual void processRelativeLocation(const DtRelativeLocationPdu& pdu);
88 
90  virtual DtReflectedAggregate* next() const;
91  virtual DtReflectedAggregate* prev() const;
92 
94  virtual DtReflectedAggregate* wrapNext() const;
95  virtual DtReflectedAggregate* wrapPrev() const;
96 
98  virtual void addPostUpdateCallback(
99  DtAggregateCallbackFunction cb, void* userData);
100  virtual void removePostUpdateCallback(
101  DtAggregateCallbackFunction cb, void* userData);
102 
104  virtual const DtBaseHashKey& hashKey() const;
105 
107  virtual DtString idString() const;
108 
111  virtual void processAggregateState(const DtAggregateStatePdu& pdu);
112 
113 public:
114 
116  static void setStateRepCreator(DtStateRepCreator creator);
117  static DtStateRepCreator stateRepCreator(void);
118 
119 protected:
120 
123 
126 
127 protected:
128 
133 
134 protected:
135 
136  static DtStateRepCreator theStateRepCreator;
137 
138 };
139 
140 #endif
141 #endif
142 
Instances of DtEntityIdentifierHashKey are hash keys made from DtEntityIdentifiers.
Definition: entityIdentifierHashKey.h:21
DtEntityIdentifier myId
Definition: reflectedAggregateDIS.h:129
void * next() const
Return next (previous) elements on the list, or NULL if hit the end (beginning) of the list...
Definition: vlList.h:272
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
DtEntityIdentifierHashKey myHashKey
Definition: reflectedAggregateDIS.h:132
virtual const DtBaseHashKey & hashKey() const =0
Get a hash key for this object.
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtBaseHashKey is an abstract base class for hash keys.
Definition: vlHashKeys.h:39
void(* DtAggregateCallbackFunction)(DtReflectedAggregate *obj, void *userData)
Callback function that takes a DtReflectedAggregate and user data.
Definition: reflectedAggregateDIS.h:29
This file contains typedefs used to represent objects in a protocol neutral way.
DtReflectedObject & operator=(const DtReflectedObject &orig)
assignment operator – not implemented
Instances of this class provide a protocol independent interface to a reflected aggregate in a DIS en...
Definition: reflectedAggregateDIS.h:35
Instances of DtAggregateStatePdu are used to communicate information about aggregating entities...
Definition: aggregateStatePdu.h:36
Instances of DtRelativeLocationPdu are used to convey the fact that one unit is located at a position...
Definition: relativeLocationPdu.h:29
Instances of DtReflectedObject are used to represent a simulation entity reflected across a network (...
Definition: reflectedObjectDIS.h:34
virtual const DtGlobalObjectDesignator & globalId() const =0
Get the Global ID for this object.
void * prev() const
Definition: vlList.h:277
void * wrapNext() const
Return next (previous) elements on the list, but wrap to the beginning (end) of the list when you hit...
Definition: vlList.h:282
DtAggregateStateDecoder * myAggregateDecoder
Definition: reflectedAggregateDIS.h:131
DtStateRepository is an abstract base class for maintaining state for an object.
Definition: stateRepository.h:50
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file declares DtAggregateStatePdu – DIS Only.
Instances of DtAggregateStateDecoder are used to take state information from an aggregate state PDU a...
Definition: aggregateStateDecoder.h:34
virtual void processStateMessage(const DtStateMsg &msg)
Process an entity state PDU.
virtual DtString idString() const =0
Get a string identification of this object.
This file declares the class DtAggregateStateDecoder – DIS only.
DtAggregateStateRepository * myAggregateStateRep
Definition: reflectedAggregateDIS.h:130
void * wrapPrev() const
Definition: vlList.h:288
Instances of DtString are used to represent strings.
Definition: vlString.h:29
virtual DtStateRepository * stateRep() const =0
Returns a pointer to the StateRepository - through which you can inspect current state information...
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
This file contains typedefs for machine dependant types.
A protocol independent representation of an aggregate.
Definition: aggregateStateRepository.h:29
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
static DtStateRepCreator theStateRepCreator
Definition: reflectedAggregateDIS.h:136

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)