summaryrefslogtreecommitdiffstats
path: root/nsframework/notification_persistent_service/server/include/ns_npp_personalization_manager.h
blob: b1042fbeb7e0930e215a12df39e00357c4150a53 (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
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

////////////////////////////////////////////////////////////////////////////////////////////////////
/// \defgroup <<Group Tag>> <<Group Name>>
/// \ingroup  tag_NS_NPPService
/// .
////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
/// \ingroup  tag_NS_NPPService
/// \brief    This file contains declaration of singleton class CnotificationpersistentservicePersonalizationManager which is
///       used to manage information of personality.
///
////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef NOTIFICATION_PERSISTENT_SERVICE_SERVER_INCLUDE_NS_NPP_PERSONALIZATION_MANAGER_H_
#define NOTIFICATION_PERSISTENT_SERVICE_SERVER_INCLUDE_NS_NPP_PERSONALIZATION_MANAGER_H_

////////////////////////////////////////////////////////////////////////////////////////////////////
// Include Files
////////////////////////////////////////////////////////////////////////////////////////////////////

#include <string>
#include <map>
#include "ns_npp_personality.h"

typedef std::map<std::string, CNotificationpersistentservicePersonality *> Personality_Type;

/**
 * This class maintains information on creation of new personality or
 * change of personality.
 */
class CnotificationpersistentservicePersonalizationManager {
 private:
  Personality_Type *m_pmPersonality;        ///< list of personality

  UI_32 m_uiUserId;               ///< unique user id

  std::string m_cCurrentPersonality;          ///< current personality name

  ////////////////////////////////////////////////////////////////////////////////////////////////
  /// CreatePersonality
  /// This function is used to create new Personality.
  ///
  /// \param  [IN] f_cpersonalityname
  ///     std::string - Personality name
  ///
  /// \return EFrameworkunifiedStatus
  //      EFrameworkunifiedStatus - success or failure status
  ///
  ////////////////////////////////////////////////////////////////////////////////////////////////
  EFrameworkunifiedStatus CreatePersonality(const std::string &f_cpersonalityname);

 public:
  ////////////////////////////////////////////////////////////////////////////////////////////////
  /// CnotificationpersistentservicePersonalizationManager
  /// Constructor of CnotificationpersistentservicePersonalizationManager class
  ///
  /// \param
  ///
  /// \return
  ///
  ////////////////////////////////////////////////////////////////////////////////////////////////
  CnotificationpersistentservicePersonalizationManager();

  ////////////////////////////////////////////////////////////////////////////////////////////////
  /// ~CnotificationpersistentservicePersonalizationManager
  /// Destructor of CnotificationpersistentservicePersonalizationManager class
  ///
  /// \param
  ///
  /// \return
  ///
  ////////////////////////////////////////////////////////////////////////////////////////////////
  ~CnotificationpersistentservicePersonalizationManager();

  ////////////////////////////////////////////////////////////////////////////////////////////////
  /// NotificationpersistentserviceGetPersonality
  /// This function is used to get the current personality.
  ///
  /// \param  [OUT] f_cpersonalityname
  ///     std::string - Personality name
  ///
  /// \return EFrameworkunifiedStatus
  //      EFrameworkunifiedStatus - success or failure status
  ///
  ////////////////////////////////////////////////////////////////////////////////////////////////
  EFrameworkunifiedStatus NotificationpersistentserviceGetPersonality(std::string &f_cpersonalityname); // NOLINT (runtime/references)

  ////////////////////////////////////////////////////////////////////////////////////////////////
  /// NotificationpersistentserviceSetPersonality
  /// This function is used to set the new personality.
  ///
  /// \param  [IN] f_cpersonalityname
  ///     std::string - Personality name
  ///
  /// \return EFrameworkunifiedStatus
  //      EFrameworkunifiedStatus - success or failure status
  ///
  ////////////////////////////////////////////////////////////////////////////////////////////////
  EFrameworkunifiedStatus NotificationpersistentserviceSetPersonality(const std::string f_cpersonalityname);

  ////////////////////////////////////////////////////////////////////////////////////////////////
  /// NotificationpersistentserviceIsValidPersonality
  /// Check if user is valid or not.
  ///
  /// \param  [IN] f_cpersonalityname
  ///     std::string - Personality name
  ///
  /// \return BOOL
  ///     TRUE - Valid user
  ///     FALSE - Not a valid user
  ///
  ////////////////////////////////////////////////////////////////////////////////////////////////
  BOOL NotificationpersistentserviceIsValidPersonality(const std::string f_cpersonalityname);
};

#endif  // NOTIFICATION_PERSISTENT_SERVICE_SERVER_INCLUDE_NS_NPP_PERSONALIZATION_MANAGER_H_