summaryrefslogtreecommitdiff
path: root/src/components/include/protocol_handler/protocol_handler_settings.h
blob: 62a24df32c4941993754ff2e526e4815ce7cfe00 (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
#ifndef SRC_COMPONENTS_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER_SETTINGS_H_
#define SRC_COMPONENTS_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER_SETTINGS_H_

#include <cstdint>
#include <string>
#include <vector>

namespace protocol_handler {
/**
 * \class ProtocolHandlerSettings
 * \brief Interface for protocol handler component settings.
 */
class ProtocolHandlerSettings {
 public:
  virtual ~ProtocolHandlerSettings() {}

  virtual size_t maximum_payload_size() const = 0;
  virtual size_t maximum_control_payload_size() const = 0;
  virtual size_t maximum_rpc_payload_size() const = 0;
  virtual size_t maximum_audio_payload_size() const = 0;
  virtual size_t maximum_video_payload_size() const = 0;
  virtual size_t message_frequency_count() const = 0;
  virtual size_t message_frequency_time() const = 0;
  virtual bool malformed_message_filtering() const = 0;
  virtual size_t malformed_frequency_count() const = 0;
  virtual size_t malformed_frequency_time() const = 0;
  /*
   * @brief Heartbeat timeout before closing connection
   */
  virtual uint32_t heart_beat_timeout() const = 0;

  /*
   * @brief Protocol version, from .ini file.
   */
  virtual uint16_t max_supported_protocol_version() const = 0;

  virtual uint32_t multiframe_waiting_timeout() const = 0;
#ifdef ENABLE_SECURITY
  /**
   * @brief Returns force protected services
   */
  virtual const std::vector<int>& force_protected_service() const = 0;
  /**
   * @brief Returns force unprotected services
   */
  virtual const std::vector<int>& force_unprotected_service() const = 0;
#endif  // ENABLE_SECURITY

  /**
   * @brief Returns true multiple transports is enabled
   */
  virtual const bool multiple_transports_enabled() const = 0;

  /**
   * @brief Returns list of secondary transports available
   * for the named primary transport
   */
  virtual const std::vector<std::string>& secondary_transports_for_bluetooth()
      const = 0;
  virtual const std::vector<std::string>& secondary_transports_for_usb()
      const = 0;
  virtual const std::vector<std::string>& secondary_transports_for_wifi()
      const = 0;

  /**
   * @brief Returns list of allowed transports for the named service
   */
  virtual const std::vector<std::string>& audio_service_transports() const = 0;
  virtual const std::vector<std::string>& video_service_transports() const = 0;
};
}  // namespace protocol_handler
#endif  // SRC_COMPONENTS_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER_SETTINGS_H_