Init basesystem source codes.
[staging/basesystem.git] / video_in_hal / nsframework / notification_persistent_service / server / include / ns_npp_state_persistence_notification.h
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 ////////////////////////////////////////////////////////////////////////////////////////////////////
18 /// \defgroup <<Group Tag>> <<Group Name>>
19 /// \ingroup  tag_NS_NPPService
20 /// .
21 ////////////////////////////////////////////////////////////////////////////////////////////////////
22
23 ////////////////////////////////////////////////////////////////////////////////////////////////////
24 /// \ingroup  tag_NS_NPPService
25 /// \brief    This file contains declaration of class CStatePersistenceNotification.
26 ///
27 ////////////////////////////////////////////////////////////////////////////////////////////////////
28
29 #ifndef NOTIFICATION_PERSISTENT_SERVICE_SERVER_INCLUDE_NS_NPP_STATE_PERSISTENCE_NOTIFICATION_H_
30 #define NOTIFICATION_PERSISTENT_SERVICE_SERVER_INCLUDE_NS_NPP_STATE_PERSISTENCE_NOTIFICATION_H_
31
32 ////////////////////////////////////////////////////////////////////////////////////////////////////
33 // Include Files
34 ////////////////////////////////////////////////////////////////////////////////////////////////////
35
36 #include <string>
37 #include "ns_npp_state_notification.h"
38
39 /**
40  *  This class inherits CStateNotification class and implements specific operations related to
41  *  persistent notifications.
42  */
43 class CStatePersistenceNotification : public CStateNotification {
44  public:
45   ////////////////////////////////////////////////////////////////////////////////////////////////
46   /// CStatePersistenceNotification
47   /// Constructor of CStatePersistenceNotification class
48   ///
49   /// \param  [IN] f_cnotificationname
50   ///     std::string - Notification name
51   ///
52   /// \param  [IN] f_uimaxmsgsize
53   ///     UI_32 - Maximum size of notification data
54   ///
55   /// \param  [IN] f_epersistcategory
56   ///     EFrameworkunifiedPersistCategory - persist category
57   ///
58   /// \return
59   ///
60   ////////////////////////////////////////////////////////////////////////////////////////////////
61   CStatePersistenceNotification(const std::string &f_cnotificationname,
62                                 const UI_32 f_uimaxmsgsize,
63                                 const EFrameworkunifiedPersistCategory f_epersistcategory = eFrameworkunifiedUserData);
64
65   ////////////////////////////////////////////////////////////////////////////////////////////////
66   /// ~CStatePersistenceNotification
67   /// Destructor of CStatePersistenceNotification class
68   ///
69   /// \param
70   ///
71   /// \return
72   ///
73   ////////////////////////////////////////////////////////////////////////////////////////////////
74   ~CStatePersistenceNotification();
75
76   ////////////////////////////////////////////////////////////////////////////////////////////////
77   /// GetPersistentCategory
78   /// Gets the persist type of notification
79   ///
80   ///
81   /// \return EFrameworkunifiedPersistCategory
82   //      EFrameworkunifiedPersistCategory - persist type
83   ///
84   ////////////////////////////////////////////////////////////////////////////////////////////////
85   EFrameworkunifiedPersistCategory GetPersistentCategory();
86
87   ////////////////////////////////////////////////////////////////////////////////////////////////
88   /// SetPersistentCategory
89   /// Sets the persist type of notification
90   ///
91   /// \param  [IN] f_epersistcategory
92   ///     EFrameworkunifiedPersistCategory - persist category
93   ///
94   /// \return EFrameworkunifiedStatus
95   //      EFrameworkunifiedStatus - success or failure status
96   ///
97   ////////////////////////////////////////////////////////////////////////////////////////////////
98   EFrameworkunifiedStatus SetPersistentCategory(const EFrameworkunifiedPersistCategory f_epersistcategory);
99
100  private:
101   EFrameworkunifiedPersistCategory m_ePersistCategory;  // Persistent category
102 };
103
104 #endif  // NOTIFICATION_PERSISTENT_SERVICE_SERVER_INCLUDE_NS_NPP_STATE_PERSISTENCE_NOTIFICATION_H_