20#include <vlutil/vlInetSocket.h>
21#include <vlutil/vlInetEndpoint.h>
78 virtual void tick(
double dt);
85 virtual unsigned int frame()
const;
136 virtual bool findCigiPartId(
const DtEntityType& entityType,
unsigned int partType, Cigi_uint8& found_id);
161 template <
typename FIND_T,
typename RETURN_T = FIND_T>
168 ret = table.
findData<FIND_T>(paramName);
179 template <
class CREATE_T>
182 return CREATE_T::createVersion(
version());
229 using CigiIdMap = std::map<Cigi_uint16, DtCigiPublisherBase::Wptr>;
237 using ListenerMap = std::map<Cigi_uint16, DtCigiListenerBase::Sptr>;
Provides base classes for shared pointer managed objects with factory creation support.
Singleton foundation for the vreCigiHost system.
Publishes CIGI IG Control packets.
virtual unsigned int frame() const
Returns the Session frame number.
virtual bool findCigiDatabaseId(const std::string &terrain, Cigi_int8 &found_id)
Cigi_int8 myTerrainDatabaseId
Definition cigiSession.h:219
virtual DtCigiHost & host()
Cigi_uint16 myLastUsedId
Definition cigiSession.h:231
virtual ConfigPtr config()
DtInetEndpoint myIgEndpoint
Definition cigiSession.h:209
double myShutdownStarted
Definition cigiSession.h:217
virtual DtInitTable findConfigTableByType(const std::string &mapName, const DtEntityType &entityType)
DtCigiHost * myHost
Definition cigiSession.h:201
std::map< void *, FrameReceiptRequest > FrameReceiptMap
Definition cigiSession.h:234
virtual bool findCigiPartId(const DtEntityType &entityType, unsigned int partType, Cigi_uint8 &found_id)
virtual bool findDetonationType(const DtEntityType &munitionType, Cigi_uint16 &found_id)
unsigned int myFrame
Definition cigiSession.h:215
std::map< std::string, SortedTypeSet > SortedTypeSetMap
Definition cigiSession.h:222
std::pair< DtCigiPublisherBase::Wptr, unsigned int > FrameReceiptRequest
Definition cigiSession.h:233
virtual bool useExtendedEntityType()
virtual void updateTerrainDatabaseId()
virtual void initRootPublisher()
EntityPubPtr findEntity(const DtEntityIdentifier &entityId)
Find the SimEntityPublisher associted with the given DtEntityIdentifier.
virtual void advanceFrame()
Advances the Session frame number, updates Publishers and sends CIGI data.
ListenerMap myListenerMap
Definition cigiSession.h:238
virtual bool findShortEntityType(const DtEntityType &entityType, Cigi_uint16 &found_id)
std::map< Cigi_uint16, DtCigiPublisherBase::Wptr > CigiIdMap
Definition cigiSession.h:229
virtual DtCigiStartOfFrameListener::Sptr igStatus()
virtual bool findCigiViewType(const std::string &sensor, Cigi_uint8 &found_type)
virtual void packAndSendFrame()
DtCigiIgControlPublisher::Sptr myIgControl
Definition cigiSession.h:213
virtual Cigi_uint16 claimNextEntitytId(DtCigiPublisherBase::Sptr forWho)
Gets the next available CIGI EntityID.
virtual Sptr setHost(DtCigiHost &host)
virtual bool findMuzzleFlashType(const DtEntityType &munitionType, Cigi_uint16 &found_id)
virtual void endSession()
Begins the process of shutting down the Session.
FrameReceiptMap myFrameReceiptMap
Definition cigiSession.h:235
std::string myOverrideIgAddress
Definition cigiSession.h:206
virtual void startSession()
virtual DtCigiIgControlPublisher::Sptr rootPublisher()
Returns a smart pointer to the root Publisher, a DtCigiIgControlPublisher class.
virtual Cigi_int8 terrainDatabaseId()
virtual std::string igAddress()
virtual unsigned int version() const
CIGI Major Version for this Session.
virtual Sptr setConfig(ConfigPtr config)
CigiIdMap myCigiIdMap
Definition cigiSession.h:230
bool findConfigParam(DtInitTable table, const std::string paramName, RETURN_T &ret)
Definition cigiSession.h:162
virtual Sptr setIgAddress(std::string address)
virtual bool endingSession()
Returns true if endSession() has been called.
EntityPubPtr findOrCreateEntity(const DtEntityIdentifier &entityId)
Find the SimEntityPublisher associated with the given entityId, or create one if not found.
virtual ~DtCigiSession() override
virtual bool igRunning()
Returns true if the IG is online and has indicated that it is in Operate mode.
std::map< std::string, BestTypeMatchMap > BestTypeMatchMapMap
Definition cigiSession.h:226
std::map< Cigi_uint16, DtCigiListenerBase::Sptr > ListenerMap
Definition cigiSession.h:237
virtual int firstViewId()
virtual bool publishOwnshipOnly()
In Publish Ownship Only mode, only the entity(s) with a ViewControl attached are published.
std::shared_ptr< CigiHostSession > mySession
Definition cigiSession.h:211
std::shared_ptr< DtInetSocket > mySocket
Definition cigiSession.h:208
std::shared_ptr< DtInitializer > ConfigPtr
Definition cigiSession.h:40
bool myFakeIgHeartbeat
Definition cigiSession.h:240
virtual void openSocket()
BestTypeMatchMapMap myBestTypeMatchMapMap
Definition cigiSession.h:227
std::shared_ptr< DtCigiSimEntityPublisher > EntityPubPtr
Definition cigiSession.h:147
virtual bool sessionEnded()
Returns true if the process started by endSession() is complete.
SortedTypeSetMap mySortedTypeSetMap
Definition cigiSession.h:223
unsigned int myVersion
Definition cigiSession.h:204
std::set< DtEntityType > SortedTypeSet
Definition cigiSession.h:221
virtual void resetPublishers()
Marks all publishers as dirty and clears list of publishers waiting for receipt confirmation.
std::map< DtEntityType, DtInitTable > BestTypeMatchMap
Definition cigiSession.h:225
virtual void initListeners()
virtual void frameConfirmedReceived(unsigned int receivedFrame)
bool myShuttingDown
Definition cigiSession.h:242
double myLastFrameTime
Definition cigiSession.h:216
virtual bool igOnline()
Returns online status of IG.
ConfigPtr myConfig
Definition cigiSession.h:203
virtual void addListener(DtCigiListenerBase::Sptr listener)
virtual void tick(double dt)
Called once per Sim tick. Processes all incoming CIGI packets and may send outgoing CIGI packets.
virtual void requestFrameReceipt(DtCigiPublisherBase::Wptr publisher)
virtual void checkForIncomingPackets()
std::shared_ptr< CREATE_T > createVersioned()
Creates a new Publisher of the type registered for the given CREATE_T and Session version.
Definition cigiSession.h:180
Definition cigiSimEntityPublisher.h:15
Table-based access to Lua state for configuration data.
Definition initializer.h:38
RT findData(const std::string &name, bool resolveDots=true)
Definition initializer.h:175
virtual bool isValid() const
Checks if this object is valid.
virtual bool hasField(const std::string &name, bool resolveDots=true)
Checks if the table has a field with the given name.
std::shared_ptr< DtSpObject > Sptr
Shared pointer type alias.
Definition baseClass.h:99
std::weak_ptr< DtSpObject > Wptr
Weak pointer type alias.
Definition baseClass.h:102
DtSpSubClass()
Definition baseClass.h:190
std::shared_ptr< DtCigiSession > Sptr
Definition baseClass.h:184
Contains the DLL export macro.
#define CIGIHOST_DLL
Definition export.h:20
Provides configuration initialization for VREngage components.
Include export definitions for this library.
Definition glsVreMessageUtil.h:49