emailservices/nmclientapi/src/nmapieventnotifier_p.cpp
changeset 76 38bf5461e270
parent 68 83cc6bae1de8
equal deleted inserted replaced
74:6c59112cfd31 76:38bf5461e270
    28     QObject(parent), mEmitSignals(NULL), mEngine(NULL), mIsRunning(false)
    28     QObject(parent), mEmitSignals(NULL), mEngine(NULL), mIsRunning(false)
    29 {
    29 {
    30     NM_FUNCTION;
    30     NM_FUNCTION;
    31     mEmitSignals = new QTimer(this);
    31     mEmitSignals = new QTimer(this);
    32     mEmitSignals->setInterval(IntervalEmitingSignals);
    32     mEmitSignals->setInterval(IntervalEmitingSignals);
       
    33     mEmitSignals->setSingleShot(true);
    33     connect(mEmitSignals, SIGNAL(timeout()), this, SIGNAL(
    34     connect(mEmitSignals, SIGNAL(timeout()), this, SIGNAL(
    34         timedOut()));
    35         timedOut()));
    35     mEngine = NmApiEngine::instance();
    36     mEngine = NmApiEngine::instance();
    36 }
    37 }
    37 
    38 
    67     if (mIsRunning) {
    68     if (mIsRunning) {
    68         result = true;
    69         result = true;
    69     }
    70     }
    70     else {
    71     else {
    71         qRegisterMetaType<QList<quint64> > ("QList<quint64>");
    72         qRegisterMetaType<QList<quint64> > ("QList<quint64>");
    72         qRegisterMetaType<NmApiEvent> ("NmApiEvent");
    73         qRegisterMetaType<EmailClientApi::NmApiEvent> ("EmailClientApi::NmApiEvent");
    73 
    74 
    74         connect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this,
    75         connect(mEngine, SIGNAL(emailStoreEvent(EmailClientApi::NmApiEvent)), this,
    75                 SLOT(emailStoreEvent(NmApiEvent)));
    76                 SLOT(emailStoreEvent(EmailClientApi::NmApiEvent)));
    76             
    77             
    77         mEngine->startCollectingEvents();
    78         mEngine->startCollectingEvents();
    78             
    79             
    79         mEmitSignals->start();
       
    80         mIsRunning = true;
    80         mIsRunning = true;
    81         result = true;
    81         result = true;
    82     }
    82     }
    83     return result;
    83     return result;
    84 }
    84 }
    87  */
    87  */
    88 void NmApiEventNotifierPrivate::stop()
    88 void NmApiEventNotifierPrivate::stop()
    89 {
    89 {
    90     mIsRunning = false;
    90     mIsRunning = false;
    91     mEmitSignals->stop();
    91     mEmitSignals->stop();
    92     disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this,
    92     disconnect(mEngine, SIGNAL(emailStoreEvent(EmailClientApi::NmApiEvent)), this,
    93             SLOT(emailStoreEvent(NmApiEvent)));
    93             SLOT(emailStoreEvent(EmailClientApi::NmApiEvent)));
    94 }
    94 }
    95 
    95 
    96 /*!
    96 /*!
    97     Returns event buffer, after function call the buffer is empty
    97     Returns event buffer, after function call the buffer is empty
    98  */
    98  */
   108    
   108    
   109    It is run by \sa NmApiEngine::emailStoreEvent signal.
   109    It is run by \sa NmApiEngine::emailStoreEvent signal.
   110    \sa NmApiEvent
   110    \sa NmApiEvent
   111    \param events It contains full info about object and it event.
   111    \param events It contains full info about object and it event.
   112  */
   112  */
   113 void NmApiEventNotifierPrivate::emailStoreEvent(const NmApiEvent &events)
   113 void NmApiEventNotifierPrivate::emailStoreEvent(const EmailClientApi::NmApiEvent event)
   114 {
   114 {
   115     NM_FUNCTION;
   115     NM_FUNCTION;
   116     mBufferOfEvents << events;
   116     mBufferOfEvents << event;
       
   117     if (!mEmitSignals->isActive()) {
       
   118         mEmitSignals->start();
       
   119     }
   117 }
   120 }
   118 
   121 
   119 void NmApiEventNotifierPrivate::cancel()
   122 void NmApiEventNotifierPrivate::cancel()
   120 {
   123 {
   121     NM_FUNCTION;
   124     NM_FUNCTION;
   125     }
   128     }
   126 
   129 
   127     mIsRunning = false;
   130     mIsRunning = false;
   128     mEmitSignals->stop();
   131     mEmitSignals->stop();
   129 
   132 
   130     disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this,
   133     disconnect(mEngine, SIGNAL(emailStoreEvent(EmailClientApi::NmApiEvent)), this,
   131             SLOT(emailStoreEvent(NmApiEvent)));
   134             SLOT(emailStoreEvent(EmailClientApi::NmApiEvent)));
   132 
   135 
   133     mBufferOfEvents.clear();
   136     mBufferOfEvents.clear();
   134 }
   137 }
   135 
   138 
   136 }
   139 }