WSF
WsfXIO_PublisherHelper.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFXIO_PUBLISHERHELPER_HPP
13#define WSFXIO_PUBLISHERHELPER_HPP
14
15#include "wsf_export.h"
16
17class WsfSimulation;
20
27
29{
30public:
31 friend class PublishEvent;
32
37 typedef std::map<SubscriptionId, WsfXIO_Publisher::SubscribeCallback*> Subscriptions;
38
39 WsfXIO_PublisherHelper(WsfXIO_Interface* aInterfacePtr, WsfSimulation& aSimulation);
40
42
43 void SetStateDirty(double aSimTime = -1.0);
44
45 void Publish(const PublisherKey& aKey, const std::string& aData);
46
47 bool GetPublishedData(const PublisherKey& aKey, std::string& aData) const;
48
49 bool HasSubscription(const SubscriptionId& aSubscriptionId) const;
50
51 SubscriptionId Subscribe(const SubscriptionFilter& aSubscriptionFilter, SubscriptionCallback* aSubscriptionCallbackPtr);
52
53 bool Unsubscribe(const SubscriptionId& aSubscriptionId);
54
55protected:
56 virtual void PublishState(double aSimTime) {}
57
58private:
59 WsfXIO_Interface* mInterfacePtr;
60 WsfSimulation& mSimulation;
61 Subscriptions mSubscriptions;
62 bool mStateDirty;
63};
64
65#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfXIO_Interface.hpp:54
Definition WsfXIO_PublishKey.hpp:159
Definition WsfXIO_PublishKey.hpp:27
std::map< SubscriptionId, WsfXIO_Publisher::SubscribeCallback * > Subscriptions
Definition WsfXIO_PublisherHelper.hpp:37
WsfXIO_PublishKey PublisherKey
Definition WsfXIO_PublisherHelper.hpp:33
bool GetPublishedData(const PublisherKey &aKey, std::string &aData) const
Definition WsfXIO_PublisherHelper.cpp:92
WsfXIO_PublisherHelper(WsfXIO_Interface *aInterfacePtr, WsfSimulation &aSimulation)
Definition WsfXIO_PublisherHelper.cpp:44
virtual void PublishState(double aSimTime)
Definition WsfXIO_PublisherHelper.hpp:56
WsfXIO_PublishFilter SubscriptionFilter
Definition WsfXIO_PublisherHelper.hpp:35
void SetStateDirty(double aSimTime=-1.0)
Definition WsfXIO_PublisherHelper.cpp:61
friend class PublishEvent
Definition WsfXIO_PublisherHelper.hpp:31
WsfXIO_Publisher::SubscribeCallback SubscriptionCallback
Definition WsfXIO_PublisherHelper.hpp:36
SubscriptionId Subscribe(const SubscriptionFilter &aSubscriptionFilter, SubscriptionCallback *aSubscriptionCallbackPtr)
Definition WsfXIO_PublisherHelper.cpp:112
bool HasSubscription(const SubscriptionId &aSubscriptionId) const
Definition WsfXIO_PublisherHelper.cpp:101
bool Unsubscribe(const SubscriptionId &aSubscriptionId)
Definition WsfXIO_PublisherHelper.cpp:124
WsfXIO_Publisher::SubscriptionId SubscriptionId
Definition WsfXIO_PublisherHelper.hpp:34
void Publish(const PublisherKey &aKey, const std::string &aData)
Definition WsfXIO_PublisherHelper.cpp:82
GenUniqueId SubscriptionId
Definition WsfXIO_Publisher.hpp:84
SubscribeCallbackList::CallbackType SubscribeCallback
Definition WsfXIO_Publisher.hpp:86
Copyrights Multiple, All Rights Reserved