17 #ifndef EVENTMANAGER_HPP_
18 #define EVENTMANAGER_HPP_
29 #include "kaa/gen/EndpointGen.hpp"
46 : currentEventIndex_(0),eventTransport_(nullptr)
54 ,
const std::vector<std::uint8_t>& data
55 ,
const std::string& target
83 struct EventListenersInfo {
84 std::list<std::string> eventFQNs_;
88 void onEventFromServer(
const std::string& eventClassFQN
89 ,
const std::vector<std::uint8_t>& data
90 ,
const std::string& source);
92 void generateUniqueRequestId(std::string& requstId);
94 std::set<IEventFamily*> eventFamilies_;
95 std::map<std::int32_t, Event> pendingEvents_;
96 KAA_MUTEX_MUTABLE_DECLARE(pendingEventsGuard_);
98 std::int32_t currentEventIndex_;
100 EventTransport * eventTransport_;
103 std::map<std::int32_t, std::shared_ptr<EventListenersInfo> > eventListenersRequests_;
104 KAA_MUTEX_MUTABLE_DECLARE(eventListenersGuard_);
virtual void setTransport(EventTransport *transport)
virtual std::map< std::int32_t, std::list< std::string > > getPendingListenerRequests()
virtual bool hasPendingListenerRequests() const
virtual void produceEvent(const std::string &fqn, const std::vector< std::uint8_t > &data, const std::string &target, TransactionIdPtr trxId)
std::shared_ptr< TransactionId > TransactionIdPtr
virtual void commit(TransactionIdPtr trxId)
std::shared_ptr< IKaaClientStateStorage > IKaaClientStateStoragePtr
virtual std::map< std::int32_t, Event > releasePendingEvents()
EventManager(IKaaClientStateStoragePtr status)
virtual void registerEventFamily(IEventFamily *eventFamily)
virtual void onEventsReceived(const EventSyncResponse::events_t &events)
virtual std::int32_t findEventListeners(const std::list< std::string > &eventFQNs, IFetchEventListenersPtr listener)
virtual TransactionIdPtr beginTransaction()
virtual void rollback(TransactionIdPtr trxId)
virtual TransactionIdPtr beginTransaction()
std::shared_ptr< IFetchEventListeners > IFetchEventListenersPtr
virtual bool hasPendingEvents() const
virtual void rollback(TransactionIdPtr trxId)
virtual void onEventListenersReceived(const EventSyncResponse::eventListenersResponses_t &listeners)