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)