blob: b14527093cbb05290ab89def0b580d7b7e67a5d3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017 fortiss GmbH
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Ben Schneider
* - initial implementation and documentation
*******************************************************************************/
#ifndef CSERVICECALLMANAGER_H
#define CSERVICECALLMANAGER_H
#include <esfb.h>
#include <extevhan.h>
#include <forte_thread.h>
#include <vector>
class FORTE_TRIGGER_SERVICE_CLIENT;
class CServiceCallManager : public CExternalEventHandler, private CThread{
DECLARE_HANDLER(CServiceCallManager)
private:
std::vector<FORTE_TRIGGER_SERVICE_CLIENT*> m_callerVector;
std::vector<FORTE_TRIGGER_SERVICE_CLIENT*> m_connectVector;
public:
void enableHandler() override;
void disableHandler() override;
void setPriority(int pa_prio) override;
int getPriority() const override;
void startChain(CEventSourceFB* paECStartF);
void queueServiceCall(FORTE_TRIGGER_SERVICE_CLIENT* pa_serviceClientPtr);
void queueConnectWait(FORTE_TRIGGER_SERVICE_CLIENT* pa_serviceClientPtr);
protected:
void run() override;
};
#endif