VR-Engage  2.2
Loading...
Searching...
No Matches
cigiTimePublisherV4.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies, Inc.
3** All rights reserved.
4*******************************************************************************/
5#pragma once
6
7//! \file cigiTimePublisherV4.h
8//! \brief Declares DtCigiTimePublisherV4, the CIGI 4 concrete time publisher.
9
10// Declare concrete CIGI version 4 version of TimePublisher. This class should be
11// registered as the class to instantiate for version 4 of a DtCigiTimePublisher,
12// by calling "DtCigiTimePublisher::registerCreatorVersion<DtCigiTimePublisherV4(4)"
13// during plugin initialization. This class will then be instantiated whenever a
14// new DtCigiTimePublisher is created in a CigiSession running CIGI version 4.
15//
16// This class uses the same DtCigiPublisher template, but this time the CIGI
17// packet type is a concrete versioned class. The CIGI packet type of a derived
18// Publisher subclass must be itself derived from the CIGI packet type of the
19// Publisher superclass. In this case CigiCelestialCtrlV4 is used, which is
20// a subclass of CigiBaseEnvCtrl.
21//
22// The superclass this time is the abstract unversioned DtCigiTimePublisher.
23//
24// As this is a concrete class that will be instantiated, an additional type
25// argument "DtCigiDataCreator" must be supplied to the DtCigiPublisher template.
26// This argument is left off for pure virtual base classes that cannot or should
27// not be instantiated.
28
29#include "cigiTimePublisher.h"
30
31#include <CigiCelestialCtrlV4.h>
32
33namespace makVre
34{
35
36//! \brief Concrete time publisher for CIGI version 4 celestial control packets.
37//!
38//! This class binds DtCigiTimePublisher to the CigiCelestialCtrlV4 packet type
39//! and enables factory-based creation via DtCigiDataCreator. All simulation-time
40//! publishing logic remains in the unversioned base class, so this type mainly
41//! specifies the concrete packet used when a CIGI 4 session is active.
43 : public DtCigiPublisherTemplate<CigiCelestialCtrlV4, DtCigiTimePublisherV4, DtCigiTimePublisher, DtCigiDataCreator>
44{
45public:
46 //! \brief Constructs a concrete CIGI 4 time publisher.
48
49 //! \brief Destroys the CIGI 4 time publisher instance.
51
52 // Additinal override functions may be added as needed here to handle any
53 // manipulation of the CIGI packet data which requires the V4 API and cannot
54 // be done through the CigiBaseEnvCtrl interface in the DtCigiTimePublisher
55 // class. In this case, all necessary CIGI data members are present in the
56 // CigiBaseEnvCtrl class, so no derived functions are required here. This
57 // class exists only to instantiate the concrete CIGI packet data class
58 // CigiCelestialCtrlV4 and thereby use the V4 packet writing function.
59};
60
61} // namespace makVre
Declares DtCigiTimePublisher, a CIGI host publisher for simulation time-of-day.
DtCigiTimePublisherV4()
Constructs a concrete CIGI 4 time publisher.
Definition cigiTimePublisherV4.h:47
virtual ~DtCigiTimePublisherV4()
Destroys the CIGI 4 time publisher instance.
Definition cigiTimePublisherV4.h:50
Include export definitions for this library.
Definition glsVreMessageUtil.h:49