summaryrefslogtreecommitdiff
path: root/SDL_Core/src/thirdPartyLibs/MessageBroker/src/example/MessageBrokerControllerBackend.hpp
blob: bda828beeb2348cdba57939b872bd64910a1e08f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/**
 * \file MessageBrokerControllerBackend.hpp
 * \brief MessageBroker Controller Backend.
 * \author AKara
 */
#pragma once

#include <iostream>

#include "json/json.h"

#include "mb_controller.hpp"
#include "CMessageBroker.hpp"

/**
 * \namespace NsMessageBroker
 * \brief MessageBroker related functions.
 */ 
namespace NsMessageBroker
{
  /**
  * \class CMessageBrokerControllerBackend
  * \brief MessageBroker Controller.
  */

  class CMessageBrokerControllerBackend : public CMessageBrokerController
  {
  public:
    /**
    * \brief Constructor.
    * \param address remote network address or FQDN
    * \param port remote local port
    */
    CMessageBrokerControllerBackend(const std::string& address, unsigned short port);

    /**
    * \brief Destructor.
    */
    ~CMessageBrokerControllerBackend();

    /**
    * \brief process request.
    * \param root JSON message.
    */
    void processRequest(Json::Value& root);

    /**
    * \brief process notification.
    * \param root JSON message.
    */
    void processNotification(Json::Value& root);

    /**
    * \brief process response.
    * \param method method name which has been called.
    * \param root JSON message.
    */
    void processResponse(std::string method, Json::Value& root);
  private:
    /**
    * \brief Checks first start.
    * \param response container for response
    */
    void isFirstStart(Json::Value& response);

    /**
    * \brief Checks first start.
    * \param response container for response
    */
    void isFullScreen(Json::Value& response);

    /**
    * \brief Checks first start.
    * \param response container for response
    */
    void getWindowSize(Json::Value& response);

    /**
    * \brief Checks first start.
    * \param response container for response
    */
    void getWindowDensity(Json::Value& response);

    /**
    * \brief Checks first start.
    * \param response container for response
    */
    void getOSInfo(Json::Value& response);

    /**
    * \brief Checks first start.
    * \param response container for response
    */
    void logToOS(Json::Value& response);
  };
}/* namespace NsMessageBroker */