blob: b102a4a6a124dec84d83b137b4df060c4b3b91ec [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 https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
#ifndef XQUERY_XQUERYHANDLER_H_
#define XQUERY_XQUERYHANDLER_H_
#include <extevhan.h>
#include <forte_thread.h>
#include <singlet.h>
#include <fortelist.h>
#include <xqueryClientLayer.h>
#include <forte_sem.h>
// cppcheck-suppress noConstructor
class CXqueryHandler : public CExternalEventHandler, private CThread{
DECLARE_HANDLER(CXqueryHandler)
private:
typedef CSinglyLinkedList<CXqueryClientLayer *> TXqueryFBContainer;
TXqueryFBContainer m_lstXqueryFBList;
static CSyncObject smXqueryMutex;
static forte::arch::CSemaphore mStateSemaphore;
static bool mIsSemaphoreEmpty;
void resumeSuspend();
void selfSuspend();
char *result;
char *info;
public:
virtual void enableHandler();
virtual void disableHandler();
virtual void setPriority(int pa_prio);
virtual int getPriority() const;
int registerLayer(CXqueryClientLayer* paLayer);
protected:
virtual void run();
};
#endif /* XQUERY_XQUERYHANDLER_H_ */