17 #ifndef EVENTMANAGER_HPP_ 
   18 #define EVENTMANAGER_HPP_ 
   29 #include "kaa/gen/EndpointGen.hpp" 
   40 class IExecutorContext;
 
   49         : context_(context), currentEventIndex_(0),eventTransport_(nullptr)
 
   56                             , 
const std::vector<std::uint8_t>& data
 
   57                             , 
const std::string& target
 
   85     struct EventListenersInfo {
 
   86         std::list<std::string> eventFQNs_;
 
   90     void onEventFromServer(
const std::string& eventClassFQN
 
   91                          , 
const std::vector<std::uint8_t>& data
 
   92                          , 
const std::string& source);
 
   94     void generateUniqueRequestId(std::string& requstId);
 
   99     IKaaClientContext &context_;
 
  101     std::set<IEventFamily*>   eventFamilies_;
 
  102     std::map<std::int32_t, Event>          pendingEvents_;
 
  103     KAA_MUTEX_MUTABLE_DECLARE(pendingEventsGuard_);
 
  105     std::int32_t currentEventIndex_;
 
  107     EventTransport *          eventTransport_;
 
  109     std::map<std::int32_t, std::shared_ptr<EventListenersInfo> > eventListenersRequests_;
 
  110     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 TransactionIdPtr beginTransaction(IKaaClientContext &context_)
 
virtual void commit(TransactionIdPtr trxId, IKaaClientContext &context_)
 
virtual std::map< std::int32_t, Event > releasePendingEvents()
 
virtual void rollback(TransactionIdPtr trxId, IKaaClientContext &context_)
 
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)
 
EventManager(IKaaClientContext &context)
 
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)