17 #ifndef EVENTMANAGER_HPP_
18 #define EVENTMANAGER_HPP_
31 #include "kaa/gen/EndpointGen.hpp"
41 class EventManager :
public IEventManager
42 ,
public IEventListenersResolver
43 ,
public IEventDataProcessor
44 ,
public AbstractTransactable<std::list<Event> >
48 : eventTransport_(nullptr)
51 eventSequenceNumber_ = status_->getEventSequenceNumber();
54 virtual void registerEventFamily(IEventFamily* eventFamily);
56 virtual void produceEvent(
const std::string& fqn
57 ,
const std::vector<std::uint8_t>& data
58 ,
const std::string& target
61 virtual void onEventsReceived(
const EventSyncResponse::events_t& events);
62 virtual void onEventListenersReceived(
const EventSyncResponse::eventListenersResponses_t& listeners);
64 virtual std::list<Event> releasePendingEvents();
65 virtual bool hasPendingEvents()
const;
67 virtual std::map<std::int32_t, std::list<std::string> > getPendingListenerRequests();
68 virtual bool hasPendingListenerRequests()
const;
70 virtual std::int32_t findEventListeners(
const std::list<std::string>& eventFQNs, IFetchEventListeners* listener);
72 virtual void setTransport(EventTransport *transport);
86 struct EventListenersInfo {
87 std::list<std::string> eventFQNs_;
88 IFetchEventListeners* listener_;
91 void onEventFromServer(
const std::string& eventClassFQN
92 ,
const std::vector<std::uint8_t>& data
93 ,
const std::string& source);
95 void generateUniqueRequestId(std::string& requstId);
97 std::set<IEventFamily*> eventFamilies_;
98 std::list<Event> pendingEvents_;
101 std::int32_t eventSequenceNumber_;
104 EventTransport * eventTransport_;
107 std::map<std::int32_t, std::shared_ptr<EventListenersInfo> > eventListenersRequests_;
std::shared_ptr< TransactionId > TransactionIdPtr
#define KAA_MUTEX_DECLARE(name)
std::shared_ptr< IKaaClientStateStorage > IKaaClientStateStoragePtr
#define KAA_MUTEX_MUTABLE_DECLARE(name)
virtual TransactionIdPtr beginTransaction()
virtual void rollback(TransactionIdPtr trxId)