VR-Link API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
reflectedIffListDIS.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 
15 #include "reflectedObjectListDIS.h"
16 #include "reflectedIffDIS.h"
17 #include "globalObjectDesignator.h"
18 #include "vl/iffSystemHashKey.h"
19 #include <list>
20 
21 
22 class DtIffAtcNavaidsPdu;
23 
24 
29 {
30 
31 public:
32 
34  DtReflectedIffList(DtExerciseConn* exConn, int numBucketsPrimeNumber = 503);
35 
37  virtual ~DtReflectedIffList();
38 
40  virtual DtReflectedIff* lookup(
41  const DtGlobalObjectDesignator& emittingEntity,
42  DtU16 systemType, DtU16 systemName, DtU8 systemDesignator) const;
43 
46  virtual DtReflectedIff* lookup(
47  const DtGlobalObjectDesignator& emittingEntity) const;
48 
50  virtual DtReflectedIff* first() const;
51  virtual DtReflectedIff* last() const;
52 
54  virtual void addIffAdditionCallback(
55  DtIffCallbackFunction cb, void* userData);
56  virtual void removeIffAdditionCallback(
57  DtIffCallbackFunction cb, void* userData);
58 
60  virtual void addEmitterAdditionCallback(
61  DtIffCallbackFunction cb, void* userData);
63  virtual void removeEmitterAdditionCallback(
64  DtIffCallbackFunction cb, void* userData);
65 
67  virtual void addIffRemovalCallback(
68  DtIffCallbackFunction cb, void* userData);
69  virtual void removeIffRemovalCallback(
70  DtIffCallbackFunction cb, void* userData);
71 
73  virtual void addEmitterRemovalCallback(
74  DtIffCallbackFunction cb, void* userData);
76  virtual void removeEmitterRemovalCallback(
77  DtIffCallbackFunction cb, void* userData);
78 
80  virtual void print();
81 
84  virtual int acceptPdu(const DtStateMsg&) const;
85 
86 protected:
87 
90  const DtReflectedIffList& orig);
91 
94 
95 protected:
96 
98  virtual DtReflectedIff* newReflectedIff(
99  const DtGlobalObjectDesignator& emittingEntity,
100  DtU16 systemType, DtU16 systemName, DtU8 systemDesignator);
101 
103  virtual DtReflectedObject* newReflectedObj(const DtStateMsg& msg);
104 
106  virtual DtReflectedObject* processStateMessage(const DtStateMsg& msg);
107 
110  virtual void objectAdded(DtReflectedObject* obj);
111 
113  virtual const DtBaseHashKey&
114  hashKeyFromStateMessage(const DtStateMsg* msg);
115 
118  virtual void removeAndDelete(DtReflectedObject* obj,
119  char* msg = NULL);
120 protected:
121 
123  static void emIffCb(DtIffAtcNavaidsPdu* pdu, void* usr);
124 
125  DtIFFSystemHashKey myHashKey;
126  std::map<const DtGlobalObjectDesignator, std::list<DtIFFSystemHashKey> > myIffHashMap;
127 
128 };
129 
130 #endif
131 
132 
class DtReflectedObjectList
Definition: reflectedObjectListHLA.h:58
class DtReflectedIff:
Definition: reflectedIffHLA.h:31
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtBaseHashKey is an abstract base class for hash keys.
Definition: vlHashKeys.h:39
void(* DtIffCallbackFunction)(DtReflectedIff *obj, void *userData)
Definition: reflectedIffHLA.h:20
This file contains typedefs used to represent objects in a protocol neutral way.
DtReflectedObjectList & operator=(const DtReflectedObjectList &orig)
assignment operator – not implemented
class DtReflectedObject:
Definition: reflectedObjectHLA.h:36
virtual void removeAndDelete(DtReflectedObject *obj, char *msg=nullptr)
Remove the remote object from the list if found and delete it.
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
Instances of DtIFFSystemHashKey are used as hash keys for an emitter system.
Definition: iffSystemHashKey.h:17
An instance of this class manages the list of &quot;IFF&quot; objects that are simulated remotely, and reflected to us by the RTI.
Definition: reflectedIffListHLA.h:28
virtual void objectAdded(DtReflectedObject *object)
Called from processDiscoverObject() after a remote object has been added to the list.
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
Instances of DtString are used to represent strings.
Definition: vlString.h:29
class DtStateMsg:
Definition: stateMsgHLA.h:32
virtual void print()
Print the SRs of all objects.

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)