ComSDK
 Указатель Классы Пространства имен Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
async_action_item_executor.h
1 //===========================================================================
2 #ifndef __ASYNC_ACTION_ITEM_EXECUTOR_H__
3 #define __ASYNC_ACTION_ITEM_EXECUTOR_H__
4 //===========================================================================
5 // Заготовка модуля ActionItem была сгенерирована специальным средством RAD разработки SA2-DE.
6 // Все права защищены. (2012)
7 //
8 // В данном файле представлен исходный текст основного заголовочного файла модуля.
9 //
10 // В данном файле представлен паттерн интерфейса класса.
11 // Описание класса:
12 // Абстрактный класс, описывающий интерфейс Action Item'а
13 // ======================================= //
14 // Параметры новой разработки.
15 // ======================================= //
16 // Имя комплекса: GCAD (gcd)
17 // Имя решения: GCAD_2 (gc3)
18 // Имя проекта: Client (cli)
19 // Полный SID: cligc3
20 // Время создания: 16:26:48
21 // Дата создания: 2012-10-10
22 // ======================================= //
23 // ============================================================================================ //
24 // Параметры ревизии(версии):
25 // ============================================================================================ //
26 // [prd]Period: 10/2012
27 // [aut]Author: Антон Першин
28 // [did]DeveloperID: ap
29 // [pid]ProblemID: 00001
30 // [rvs = did.date.pid]Revision: //#ap.2012-10-10.00001
31 // [dsc]Description: Абстрактный класс, описывающий интерфейс Action Item'а
32 // [ccm]CodeComment: rvs.{[s]Start | [e]End | []}{[n]New | [o]Old | [d]Develop}
33 // ============================================================================================ //
34 // ============================================================================================ //
35 // [prd]Period: 07/2016
36 // [aut]Author: Сапелкин Арсений
37 // [did]DeveloperID: asp
38 // [pid]ProblemID: 00002
39 // [rvs = did.date.pid]Revision: //#asp.2016-07-20.00002
40 // [dsc]Description: Запуск Action Item через ActionItemWorkContext
41 // [ccm]CodeComment: rvs.{[s]Start | [e]End | []}{[n]New | [o]Old | [d]Develop}
42 // ============================================================================================ //
43 //========================================================================
44 // ДОПОЛНИТЕЛЬНЫЕ ПОДКЛЮЧЕНИЯ (Типы и модули, необходимые для .h - файла)
45 //------------------------------------------------------------------------
46 #include "anymap.h"
47 #include "action_item_executor.h"
48 
49 #include <functional>
50 #include <boost/asio/io_service.hpp>
51 
52 //========================================================================
53 namespace com {
54  namespace sys {
64  class MAC_DLLEXPORT AsyncActionItemExecutor {
65  public:
67  typedef std::function< void (std::shared_ptr< Anymap >) > OnMessageClb;
68 
69  public:
70  AsyncActionItemExecutor(boost::asio::io_service& ioservice);
71  AsyncActionItemExecutor(boost::asio::io_service& ioservice, std::shared_ptr<ActionItemExecutor> syncAIExecutor);
72  virtual ~AsyncActionItemExecutor(){}
73 
76  virtual ActionItemExecutor::ErrorCode execute(const Anymap& input, OnMessageClb clb);
77 
78  protected:
79  void proxyMessageViaIoservice(OnMessageClb originClb, std::shared_ptr< Anymap > msg);
80 
81  protected:
82  boost::asio::io_service& m_ioservice;
83 
84  private:
85  std::shared_ptr<ActionItemExecutor> m_syncAIExecutor;
86  };
87  }
88 }
89 //===========================================================================
90 #endif
91 //===========================================================================
92 
std::function< void(std::shared_ptr< Anymap >) > OnMessageClb
Тип колбэка для приема сообщений от action item.
Definition: async_action_item_executor.h:67
Интерфейс запускателя асинхронного action item.
Definition: async_action_item_executor.h:64
Мультитиповой словарь
Definition: anymap.h:79
ErrorCode
Коды ошибки запуска
Definition: action_item_executor.h:63