HCE project C++ developers source code library  1.1.1
HCE project developer library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TaskWaitObject.hpp
Go to the documentation of this file.
1 #ifndef TASK_WAIT_OBJECT_HPP
2 #define TASK_WAIT_OBJECT_HPP
3 
4 #include <Poco/SharedPtr.h>
5 #include <Poco/Mutex.h>
6 
7 #include "DataBase.hpp"
9 
10 namespace HCE
11 {
12  using namespace HCE::exception;
14  {
15  protected:
16  Poco::SharedPtr<DataBase> _inData;
17  Poco::SharedPtr<DataBase> _outData;
18  Poco::SharedPtr<TaskComponentException> _exception;
19  Poco::FastMutex mutex;
20  public:
21  TaskWaitObject(Poco::SharedPtr<DataBase> inData):_inData(inData) {mutex.lock();}
22  const Poco::SharedPtr<DataBase> &getInData() {return _inData;}
23  void setOutData(Poco::SharedPtr<DataBase> outData, TaskWaitObjectExeptionsType cause, Poco::SharedPtr<ExceptionBase> internalException);
24  Poco::SharedPtr<DataBase> wait();
25  ComponentType getType()
26  {
27  return _inData->getType();
28  }
29  virtual ~TaskWaitObject() {mutex.unlock();}
30  };
31 }
32 
33 #endif