aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/rba/RBAViewContentState.hpp
blob: be15d028693283b310a20738c0fe1058b9dec70e (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// Copyright (c) 2018 DENSO CORPORATION. All rights reserved.
/**
 * VIew content state class
 */

#ifndef RBAVIEWCONTENTSTATE_HPP
#define RBAVIEWCONTENTSTATE_HPP

#include <string>

#ifdef _MSC_VER
#ifdef _WINDLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
#else
#define DLL_EXPORT
#endif

namespace rba
{

class RBAViewContent;

/**
 * @class RBAViewContentState
 * Define the state of view contents.
 */
class DLL_EXPORT RBAViewContentState
{
protected:
  RBAViewContentState()=default;
  RBAViewContentState(const RBAViewContentState&)=delete;
  RBAViewContentState(RBAViewContentState&&)=delete;
  RBAViewContentState& operator=(const RBAViewContentState&)=delete;
  RBAViewContentState& operator=(RBAViewContentState&&)=delete;
  ~RBAViewContentState()=default;

public:
  /**
   * @brief Returns the name of the view contents state.
   * @return view contents state name.
   */
  virtual std::string getName() const=0;

  /**
   * @brief Returns the priority.
   * @return priority value
   */
  virtual std::int32_t getPriority() const=0;

  /**
   * @brief Returns the view content.
   * @return view content
   */
  virtual const RBAViewContent* getOwner() const=0;

  /**
   * @brief Returns the order.
   * @return order value
   * @detail The order is a number of sequence of the entry view content state
   * by request. The order value is an integer value starting from 1 and
   * incremented in order, and the order value of the view content state
   * without view request is set to 0.\n
   * The order of the view content state does not include the output request
   * of the sound content state.
   */
  virtual std::int32_t getOrder() const=0;

  /**
   * @brief Returns the unique character string of the view contents state.
   * @return Unique character string of the view contents state.
   *
   * Unique character string is
   * view content name + CONTEXT_SEPARATER + view content state name.
   * Use the unique character string as a context name.
   */
  virtual std::string getUniqueName() const=0;

  /**
   * @brief Returns the name of the view content from context name.
   * @param context the context name
   * @return name of the view content
   */
  static std::string getContentNameByContext(const std::string& context);

  /**
   * @brief Returns the state of the view content from context name.
   * @param context the context name
   * @return state of the view content
   */
  static std::string getContentStateNameByContext(const std::string& context);

  /**
   * @brief Check if argument is The unique character string(context name).
   * @param context the context name
   * @return true: unique character string(context name)
   * @return false: Not unique character string(context name)
   */
  static bool isUniqueName(const std::string& context);

public:
  /**
   * @brief Defines the default priority value.
   */
  const static std::int32_t PRIORITY_EDEFAULT = 0;

  /**
   * @brief Defines the separator for separating view content name and view content state name.
   * And be the character to connect it.
   */
  const static char CONTEXT_SEPARATER = '/';

};

}

#endif