VR-Forces 4.1.1 Class Documentation
reflExtAgg.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2004 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: reflExtAgg.h,v $ $Revision: 1.14 $ $State: Exp $
7 *******************************************************************************/
8 
9 #ifndef REFLEXTAGG_H
10 #define REFLEXTAGG_H
11 
12 #if DtHLA
13  #include <vl/hReflectedObj.h>
14  #define DtAggReflectedObjectType DtReflectedObject
15 #elif DtDIS
16  #include <vl/dReflectedAgg.h>
17  #define DtAggReflectedObjectType DtReflectedAggregate
18 #elif DtTENA
19  #include <vl/tReflectedAgg.h>
20  #define DtAggReflectedObjectType DtReflectedAggregate
21 #else
22 # pragma message ( "No protocol defined." )
23 #endif
24 
25 #include <vrfExtObjects/extAggSR.h>
26 
27 // Callback function that takes a DtReflectedExtAggregate
28 // and usr data.
29 
31 
32 typedef void (*DtExtAggregateCallbackFunction)
33 (
34  DtReflectedExtAggregate* obj, void* userData
35 );
36 
37 class DtExerciseConn;
38 
41 {
42 
43 public:
44 
45 #if DtHLA
47  (
48  DtHlaObject* obj,
49  DtExerciseConn* conn
50  );
51  DtReflectedExtAggregate(DtExerciseConn* conn, DtAggregateStateRepository* esrToUse);
52 #elif (DtDIS || DtTENA)
53  // constructor
55  (
56  DtExerciseConn* conn,
57  const DtEntityIdentifier& id,
58  const DtEntityType& type
59  );
60 #else
61 # pragma message ( "No protocol defined." )
62 #endif
63 
64  // destructor
65  virtual ~DtReflectedExtAggregate();
66 
67  // Returns a pointer to an aggregate state repository through which you can
68  // inspect current state info.
69  virtual DtExtAggregateStateRepository* extAggregateStateRep() const;
70 
71  // Synonym for extAggregateStateRep.
72  virtual DtExtAggregateStateRepository* easr() const;
73 
74  // Implementation for abstract base class. Calls cosr().
75  virtual DtStateRepository* stateRep() const;
76 
77 #if DtDIS
78  // Process an aggregate state PDU.
79  // Calls DtReflectedAggregate::processStateMessage().
80  virtual void processStateMessage(const DtStateMsg& msg);
81 #endif
82 
83  // Get the next and previous elements in the reflected aggregate list.
84  virtual DtReflectedExtAggregate* nextEA() const;
85  virtual DtReflectedExtAggregate* prevEA() const;
86 
87  // Get the next and previous elements, wrap at the ends of the list.
88  virtual DtReflectedExtAggregate* wrapNextEA() const;
89  virtual DtReflectedExtAggregate* wrapPrevEA() const;
90 
91  // Aggregate callback registration/deregistration.
92  virtual void addPostUpdateCallback
93  (
94  DtExtAggregateCallbackFunction cb, void* userData
95  );
96  virtual void removePostUpdateCallback
97  (
98  DtExtAggregateCallbackFunction cb, void* userData
99  );
100 
101  static void postUpdateCallback
102  (
103  DtReflectedExtAggregate* agg, void* userData
104  );
105 
106  virtual void processPostUpdateCallback(DtReflectedExtAggregate* agg);
107 
108  virtual void updateExtensions();
109 
110  // Overridden from bast class to make public.
111  virtual void processPostUpdateCallbacks();
112 
113 private:
114 
115  // copy constructor
117 
118  // assignment operator
119  DtReflectedExtAggregate& operator=(const DtReflectedExtAggregate& orig);
120 
121 };
122 
123 #endif

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)