common_library: gettid is multiple declaration in cl_error
[staging/basesystem.git] / video_in_hal / nsframework / framework_unified / client / include / native_service / ns_np_service_if.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  * @file ns_np_service_if.h
19  * @brief \~english Declares the external APIs to Notification and Persistence Service.
20  */
21
22 /** @addtogroup BaseSystem
23  *  @{
24  */
25 /** @addtogroup native_service
26  *  @ingroup BaseSystem
27  *  @{
28  */
29 /** @addtogroup notification_persistent_service
30  *  @ingroup native_service
31  *  @{
32  */
33
34 #ifndef __NATIVESERVICES_NP_SERVICE_IF_H__  // NOLINT  (build/header_guard)
35 #define __NATIVESERVICES_NP_SERVICE_IF_H__
36
37 ///////////////////////////////////////////////////////////////////////////////
38 // Include Files
39 ///////////////////////////////////////////////////////////////////////////////
40 #include <native_service/frameworkunified_types.h>
41
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45
46 /**
47  * \~english  A structure to Notification Info
48  */
49 typedef struct _NotificationInfo {
50   CHAR  notificationName[MAX_STRING_SIZE_NOTIFICATION];  ///< Notification Event Name string
51   UI_32 maxLength;                       ///< Maximum possible length (bytes) of the message data
52   EFrameworkunifiedNotificationType persType;        ///< Specifies persitence for this notification
53   UI_8  dummy[4];                        ///< Packing to 32 bit boundary
54 } NotificationInfo;
55
56 /**
57  * \~english  A structure to Immediate Notification Info
58  */
59 typedef struct _ImmediateNotificationInfo {
60   CHAR  notificationName[MAX_STRING_SIZE_NOTIFICATION];  ///< Notification Event Name string
61   UI_32 maxLength;                       ///< Maximum possible length (bytes) of the message data
62   EFrameworkunifiedNotificationType persType;        ///< Specifies persitence for this notification
63   UI_32 delay;
64   UI_8  dummy[4];                        ///< Packing to 32 bit boundary
65 } ImmediateNotificationInfo;
66
67 /**
68  * \~english  A structure to Subscribe Info
69  */
70 typedef struct _SubscribeInfo {
71   CHAR  notificationName[MAX_STRING_SIZE_NOTIFICATION];  ///< Notification Event Name string
72 } SubscribeInfo;
73
74
75
76 //////////////////////////////////////////////////////////////////////////////////////////////
77 /// \ingroup NPRegisterNotifications
78 /// \~english @par Brief
79 ///        API to send message to Notification Service to register a set of notification
80 /// \~english @param[in] hNPMsgQ
81 ///        HANDLE - Handle to message queue of Notification service.
82 /// \~english @param[in] pPublisherName
83 ///        PCSTR - Name of Publisher message queue
84 /// \~english @param[in] numNotifications
85 ///        PCSTR - Name of Notification
86 /// \~english @param[in] pNotificationArray
87 ///        NotificationInfo - Array of notifications
88 /// \~english @retval EFrameworkunifiedStatus indicates success or error
89 /// \~english @retval Success(eFrameworkunifiedStatusOK)
90 /// \~english @retval Error(anything else)
91 /// \~english @par
92 ///        EFrameworkunifiedStatus Enum
93 /// \~english @code
94 ///           typedef enum eFrameworkunifiedStatus {
95 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
96 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
97 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
98 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
99 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
100 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
101 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
102 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
103 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
104 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
105 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
106 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
107 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
108 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
109 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
110 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
111 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
112 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
113 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
114 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
115 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
116 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
117 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
118 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
119 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
120 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
121 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
122 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
123 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
124 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
125 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
126 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
127 ///             eFrameworkunifiedStatusNullPointer       = 22,
128 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
129 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
130 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
131 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
132 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
133 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
134 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
135 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
136 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
137 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
138 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
139 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
140 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
141 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
142 ///            @endcode
143 /// \~english @par Preconditons
144 ///       none
145 /// \~english @par Change of internal status
146 ///       - The internal state is not changed.
147 /// \~english @par Conditions of processing failure
148 ///       - Function pointer specified by the argument is NULL.
149 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
150 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
151 ///       - It is an incorrect value(numNotifications).
152 ///       - It is an incorrect value(pNotificationArray) or pNotificationArray is NULL.
153 /// \~english @par Detail
154 ///       Invoke callback function with arguments to register a set of notification.\n
155 ///       If callback function is null and expectedCalls is '0', using default function 'NPRegisterNotifications' to
156 ///       register a set of notification.
157 /// \~english @par Classification
158 ///        Public
159 /// \~english @par Type
160 ///        Sync only
161 /// \~english @see
162 ///        FrameworkunifiedNPRegisterNotification, NPRegisterNotification
163 //////////////////////////////////////////////////////////////////////////////////////////////
164 EFrameworkunifiedStatus NPRegisterNotifications(HANDLE hNPMsgQ, PCSTR pPublisherName, UI_32 numNotifications,
165                                    NotificationInfo *pNotificationArray);
166
167
168 //////////////////////////////////////////////////////////////////////////////////////////////
169 /// \ingroup NPRegisterImmediateNotifications
170 /// \~english @par Brief
171 ///        API to send message to Notification Service to register a set of immediate notifications
172 /// \~english @param[in] hNPMsgQ
173 ///        HANDLE - Handle to message queue of Notification service.
174 /// \~english @param[in] pPublisherName
175 ///        PCSTR - Name of Publisher message queue.
176 /// \~english @param[in] numNotifications
177 ///        PCSTR - Name of Notification.
178 /// \~english @param[in] pNotificationArray
179 ///        ImmediateNotificationInfo - Array of immediate notifications
180 /// \~english @retval EFrameworkunifiedStatus indicates success or error
181 /// \~english @retval Success(eFrameworkunifiedStatusOK)
182 /// \~english @retval Error(anything else)
183 /// \~english @par
184 ///        EFrameworkunifiedStatus Enum
185 /// \~english @code
186 ///           typedef enum eFrameworkunifiedStatus {
187 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
188 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
189 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
190 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
191 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
192 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
193 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
194 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
195 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
196 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
197 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
198 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
199 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
200 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
201 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
202 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
203 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
204 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
205 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
206 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
207 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
208 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
209 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
210 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
211 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
212 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
213 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
214 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
215 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
216 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
217 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
218 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
219 ///             eFrameworkunifiedStatusNullPointer       = 22,
220 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
221 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
222 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
223 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
224 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
225 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
226 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
227 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
228 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
229 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
230 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
231 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
232 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
233 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
234 ///            @endcode
235 /// \~english @par Preconditons
236 ///       none
237 /// \~english @par Change of internal status
238 ///       - The internal state is not changed.
239 /// \~english @par Conditions of processing failure
240 ///       - Function pointer specified by the argument is NULL.
241 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
242 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
243 ///       - It is an incorrect value(numNotifications).
244 ///       - It is an incorrect value(pNotificationArray) or pNotificationArray is NULL.
245 /// \~english @par Detail
246 ///       Invoke callback function with arguments to register a set of immediate notification.\n
247 ///       If callback function is null and expectedCalls is '0', using default function
248 ///       'NPRegisterImmediateNotifications' to register a set\n
249 ///       of immediate notification.
250 /// \~english @par Classification
251 ///        Public
252 /// \~english @par Type
253 ///        Sync only
254 /// \~english @see
255 ///        FrameworkunifiedNPRegisterImmediatePersistNotification
256 //////////////////////////////////////////////////////////////////////////////////////////////
257 EFrameworkunifiedStatus NPRegisterImmediateNotifications(HANDLE hNPMsgQ, PCSTR pPublisherName, UI_32 numNotifications,
258                                             ImmediateNotificationInfo *pNotificationArray);
259
260 //////////////////////////////////////////////////////////////////////////////////////////////
261 /// \ingroup NPRegisterNotification
262 /// \~english @par Brief
263 ///        API to send message to Notification Service to register a notification
264 /// \~english @param[in] hNPMsgQ
265 ///        HANDLE - Handle to message queue of Notification service.
266 /// \~english @param[in] pPublisherName
267 ///        PCSTR - Name of Publisher message queue
268 /// \~english @param[in] notif_name
269 ///        PCSTR - Name of Notification
270 /// \~english @param[in] max_length
271 ///        const UI_32 - Max size of the notification message
272 /// \~english @param[in] perstype
273 ///        const EFrameworkunifiedPersistentVarType - Flag to indicate if it has to be persistent
274 /// \~english @retval EFrameworkunifiedStatus indicates success or error
275 /// \~english @retval Success(eFrameworkunifiedStatusOK)
276 /// \~english @retval Error(anything else)
277 /// \~english @par
278 ///        EFrameworkunifiedStatus Enum
279 /// \~english @code
280 ///           typedef enum eFrameworkunifiedStatus {
281 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
282 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
283 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
284 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
285 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
286 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
287 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
288 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
289 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
290 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
291 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
292 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
293 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
294 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
295 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
296 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
297 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
298 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
299 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
300 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
301 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
302 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
303 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
304 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
305 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
306 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
307 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
308 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
309 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
310 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
311 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
312 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
313 ///             eFrameworkunifiedStatusNullPointer       = 22,
314 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
315 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
316 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
317 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
318 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
319 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
320 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
321 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
322 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
323 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
324 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
325 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
326 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
327 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
328 ///            @endcode
329 /// \~english @par Preconditons
330 ///       none
331 /// \~english @par Change of internal status
332 ///       - The internal state is not changed.
333 /// \~english @par Conditions of processing failure
334 ///       - Function pointer specified by the argument is NULL.
335 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
336 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
337 ///       - It is an incorrect value(notif_name) or notif_name is NULL.
338 ///       - It is an incorrect value(max_length).
339 /// \~english @par Detail
340 ///       Invoke callback function with arguments to register a notification.\n
341 ///       If callback function is null and expectedCalls is '0', using default function 'NPRegisterNotification' to
342 ///       register a notification.
343 /// \~english @par Classification
344 ///        Public
345 /// \~english @par Type
346 ///        Sync only
347 /// \~english @see
348 ///        NPRegisterNotifications, FrameworkunifiedNPRegisterNotification
349 //////////////////////////////////////////////////////////////////////////////////////////////
350 EFrameworkunifiedStatus NPRegisterNotification(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR notif_name,
351                                   const UI_32 max_length, const EFrameworkunifiedNotificationType perstype);
352
353
354 //////////////////////////////////////////////////////////////////////////////////////////////
355 /// \ingroup NPUnRegisterNotification
356 /// \~english @par Brief
357 ///        API to send message to Notification Service to remove a notification
358 /// \~english @param[in] hNPMsgQ
359 ///        HANDLE - Handle to message queue of Notification service.
360 /// \~english @param[in] pPublisherName
361 ///        PCSTR - Name of Publisher message queue
362 /// \~english @param[in] pNotification
363 ///        PCSTR - Name of Notification
364 /// \~english @retval EFrameworkunifiedStatus indicates success or error
365 /// \~english @retval Success(eFrameworkunifiedStatusOK)
366 /// \~english @retval Error(anything else)
367 /// \~english @par
368 ///        EFrameworkunifiedStatus Enum
369 /// \~english @code
370 ///           typedef enum eFrameworkunifiedStatus {
371 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
372 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
373 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
374 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
375 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
376 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
377 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
378 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
379 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
380 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
381 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
382 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
383 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
384 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
385 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
386 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
387 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
388 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
389 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
390 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
391 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
392 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
393 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
394 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
395 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
396 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
397 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
398 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
399 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
400 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
401 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
402 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
403 ///             eFrameworkunifiedStatusNullPointer       = 22,
404 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
405 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
406 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
407 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
408 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
409 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
410 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
411 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
412 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
413 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
414 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
415 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
416 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
417 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
418 ///            @endcode
419 /// \~english @par Preconditons
420 ///       none
421 /// \~english @par Change of internal status
422 ///       - The internal state is not changed.
423 /// \~english @par Conditions of processing failure
424 ///       - Function pointer specified by the argument is NULL.
425 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
426 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
427 ///       - It is an incorrect value(pNotification) or pNotification is NULL.
428 /// \~english @par Detail
429 ///       Invoke NPUnRegisterNotifications to remove one notification named 'pPublisherName'.
430 /// \~english @par Classification
431 ///        Public
432 /// \~english @par Type
433 ///        Sync only
434 /// \~english @see
435 ///        FrameworkunifiedNPUnRegisterNotification, NPUnRegisterNotifications
436 //////////////////////////////////////////////////////////////////////////////////////////////
437 EFrameworkunifiedStatus NPUnRegisterNotification(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pNotification);
438
439 //////////////////////////////////////////////////////////////////////////////////////////////
440 /// \ingroup NPSetPersistentNotfnType
441 /// \~english @par Brief
442 ///        API to send message to Notification Service to set the persist category of notification.
443 /// \~english @param[in] hNPMsgQ
444 ///        HANDLE - Handle to message queue of Notification service.
445 /// \~english @param[in] pPublisherName
446 ///        PCSTR - Service Name
447 /// \~english @param[in] pNotification
448 ///        PCSTR - Name of Notification
449 /// \~english @param[in] ePersistCategory
450 ///        EFrameworkunifiedPersistCategory - Persistent category
451 /// \~english @retval EFrameworkunifiedStatus indicates success or error
452 /// \~english @retval Success(eFrameworkunifiedStatusOK)
453 /// \~english @retval Error(anything else)
454 /// \~english @par
455 ///        EFrameworkunifiedStatus Enum
456 /// \~english @code
457 ///           typedef enum eFrameworkunifiedStatus {
458 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
459 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
460 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
461 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
462 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
463 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
464 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
465 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
466 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
467 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
468 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
469 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
470 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
471 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
472 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
473 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
474 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
475 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
476 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
477 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
478 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
479 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
480 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
481 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
482 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
483 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
484 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
485 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
486 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
487 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
488 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
489 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
490 ///             eFrameworkunifiedStatusNullPointer       = 22,
491 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
492 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
493 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
494 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
495 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
496 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
497 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
498 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
499 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
500 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
501 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
502 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
503 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
504 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
505 ///            @endcode
506 /// \~english @par Preconditons
507 ///       none
508 /// \~english @par Change of internal status
509 ///       - The internal state is not changed.
510 /// \~english @par Conditions of processing failure
511 ///       - Function pointer specified by the argument is NULL.
512 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
513 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
514 ///       - It is an incorrect value(pNotification) or pNotification is NULL.
515 /// \~english @par Detail
516 ///       Invoke callback function to send message to Notification Service to set the persist category of
517 ///       notification.\n
518 ///       If callback function is null and expectedCalls is '0', using default function 'NPSetPersistentNotfnType' to
519 ///       send\n
520 ///       message to Notification Service to set the persist category of notification.
521 /// \~english @par Classification
522 ///       Public
523 /// \~english @par Type
524 ///       Sync only
525 /// \~english @see
526 ///       FrameworkunifiedNPSetPersistentNotfnType
527 //////////////////////////////////////////////////////////////////////////////////////////////
528 EFrameworkunifiedStatus NPSetPersistentNotfnType(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pNotification,
529                                     EFrameworkunifiedPersistCategory ePersistCategory);
530
531 //////////////////////////////////////////////////////////////////////////////////////////////
532 /// \ingroup NPSetPersistNotfnDefaultValue
533 /// \~english @par Brief
534 ///        API to send message to Notification Service to set default value of persistent category in notification.
535 /// \~english @param[in] hNPMsgQ
536 ///        HANDLE - Handle to message queue of Notification service.
537 /// \~english @param[in] pPublisherName
538 ///        PCSTR - Service Name
539 /// \~english @param[in] pNotification
540 ///        PCSTR - Name of Notification
541 /// \~english @param[in] pData
542 ///        PVOID - Data buffer
543 /// \~english @param[in] iLength
544 ///        const UI_32 - Size of data buffer
545 /// \~english @retval EFrameworkunifiedStatus indicates success or error
546 /// \~english @retval Success(eFrameworkunifiedStatusOK)
547 /// \~english @retval Error(anything else)
548 /// \~english @par
549 ///        EFrameworkunifiedStatus Enum
550 /// \~english @code
551 ///           typedef enum eFrameworkunifiedStatus {
552 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
553 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
554 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
555 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
556 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
557 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
558 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
559 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
560 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
561 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
562 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
563 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
564 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
565 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
566 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
567 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
568 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
569 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
570 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
571 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
572 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
573 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
574 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
575 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
576 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
577 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
578 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
579 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
580 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
581 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
582 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
583 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
584 ///             eFrameworkunifiedStatusNullPointer       = 22,
585 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
586 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
587 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
588 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
589 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
590 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
591 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
592 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
593 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
594 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
595 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
596 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
597 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
598 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
599 ///            @endcode
600 /// \~english @par Preconditons
601 ///       none
602 /// \~english @par Change of internal status
603 ///       - The internal state is not changed.
604 /// \~english @par Conditions of processing failure
605 ///       - Function pointer specified by the argument is NULL.
606 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
607 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
608 ///       - It is an incorrect value(pNotification) or pNotification is NULL.
609 ///       - It is an incorrect value(pData) or pData is NULL.
610 /// \~english @par Detail
611 ///       Invoke callback function to send message to Notification Service to set default value of persistent category
612 ///       in notification.\n
613 ///       If callback function is null and expectedCalls is '0', using default function 'NPSetPersistNotfnDefaultValue'
614 ///       to send message\n
615 ///       to Notification Service to set default value of persistent category in notification.
616 /// \~english @par Classification
617 ///       Public
618 /// \~english @par Type
619 ///       Sync only
620 /// \~english @see
621 ///       FrameworkunifiedNPSetPersistNotfnDefaultValue
622 //////////////////////////////////////////////////////////////////////////////////////////////
623 EFrameworkunifiedStatus NPSetPersistNotfnDefaultValue(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pNotification,
624                                          PCVOID pData, const UI_32 iLength);
625
626 //////////////////////////////////////////////////////////////////////////////////////////////
627 /// \ingroup NPUnRegisterNotifications
628 /// \~english @par Brief
629 ///        API to send message to Notification Service to remove a set of notification
630 /// \~english @param[in] hNPMsgQ
631 ///        HANDLE - Handle to message queue of Notification service.
632 /// \~english @param[in] pPublisherName
633 ///        PCSTR - Name of Publisher message queue
634 /// \~english @param[in] numNotifications
635 ///        UI_32 - Number of Notification
636 /// \~english @param[in] pNotificationArray
637 ///        NotificationInfo - Array of notifications
638 /// \~english @retval EFrameworkunifiedStatus indicates success or error
639 /// \~english @retval Success(eFrameworkunifiedStatusOK)
640 /// \~english @retval Error(anything else)
641 /// \~english @par
642 ///        EFrameworkunifiedStatus Enum
643 /// \~english @code
644 ///           typedef enum eFrameworkunifiedStatus {
645 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
646 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
647 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
648 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
649 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
650 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
651 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
652 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
653 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
654 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
655 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
656 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
657 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
658 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
659 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
660 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
661 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
662 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
663 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
664 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
665 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
666 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
667 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
668 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
669 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
670 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
671 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
672 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
673 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
674 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
675 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
676 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
677 ///             eFrameworkunifiedStatusNullPointer       = 22,
678 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
679 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
680 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
681 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
682 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
683 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
684 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
685 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
686 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
687 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
688 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
689 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
690 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
691 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
692 ///            @endcode
693 /// \~english @par Preconditons
694 ///       none
695 /// \~english @par Change of internal status
696 ///       - The internal state is not changed.
697 /// \~english @par Conditions of processing failure
698 ///       - Function pointer specified by the argument is NULL.
699 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
700 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
701 ///       - It is an incorrect value(numNotifications).
702 ///       - It is an incorrect value(pNotificationArray) or pNotificationArray is NULL.
703 ///       - Allocate memory for deal with original notification array failed.
704 /// \~english @par Detail
705 ///       Copy original notification array to temp allocated memory and then remove the given notifications from the
706 ///       memory.
707 /// \~english @par Classification
708 ///       Public
709 /// \~english @par Type
710 ///       Sync only
711 /// \~english @see
712 ///       FrameworkunifiedNPUnRegisterNotifications
713 //////////////////////////////////////////////////////////////////////////////////////////////
714 EFrameworkunifiedStatus NPUnRegisterNotifications(HANDLE hNPMsgQ, PCSTR pPublisherName, UI_32 numNotifications,
715                                      NotificationInfo *pNotificationArray);
716
717 ////////////////////////////////////////////////////////////////////////////////////////////
718 /// \ingroup NPPublishNotification
719 /// \~english @par Brief
720 ///        API to send message to Notification Service to notify subscribers
721 /// \~english @param[in] hNPMsgQ
722 ///        HANDLE - Handle to message queue of Notification service.
723 /// \~english @param[in] pPublisherName
724 ///        PCSTR - Name of Publisher message queue
725 /// \~english @param[in] pNotification
726 ///        PCSTR - Name of Notification
727 /// \~english @param[in] pData
728 ///        PVOID - Data buffer
729 /// \~english @param[in] iLength
730 ///        const UI_32 - Size of data buffer
731 /// \~english @retval eFrameworkunifiedStatusOK
732 /// \~english @retval eFrameworkunifiedStatusInvldParam
733 /// \~english @retval eFrameworkunifiedStatusMsgQFull
734 /// \~english @retval eFrameworkunifiedStatusErrNoEBAD
735 /// \~english @retval eFrameworkunifiedStatusErrNoEINTR
736 /// \~english @retval eFrameworkunifiedStatusInvldBufSize
737 /// \~english @retval eFrameworkunifiedStatusFail
738 /// \~english @retval eFrameworkunifiedStatusErrOther
739 /// \~english @par Preconditons
740 ///               - none
741 /// \~english @par Change of internal status
742 ///               - none
743 /// \~english @par Conditions of processing failure
744 ///       - queue handle(hNPMsgQ,designated by parameter)is NULL[eFrameworkunifiedStatusInvldParam]
745 ///       - pubulisher name(pPublisherName,designated by parameter)is NULL[eFrameworkunifiedStatusInvldParam]
746 ///       - Notification name(pNotification)is NULL[eFrameworkunifiedStatusInvldParam]
747 ///       - pubulisher name(pPublisherName,designated by parameter)is nullbuffer[eFrameworkunifiedStatusInvldParam]
748 ///       - Notification name(pNotification,designated by parameter)is nullbuffer[eFrameworkunifiedStatusInvldParam]
749 ///       - message queue is full [eFrameworkunifiedStatusMsgQFull]
750 ///       - wrong file discriptor for message sending [eFrameworkunifiedStatusErrNoEBAD]
751 ///       - system call disruput during message sending process[eFrameworkunifiedStatusErrNoEINTR]
752 ///       - wrong buffer size for sending message[eFrameworkunifiedStatusInvldBufSize]
753 ///       - message sending failed[eFrameworkunifiedStatusFail]
754 ///       - failed access to shared memmory for message sending[eFrameworkunifiedStatusErrOther]
755 /// \~english @par Detail
756 ///        send system info as Notification name and command[NPS_PUBLISH_EV_REQ] through McSendWithSysInfo()
757 ///        NPP service wii process according to command[NPS_PUBLISH_EV_REQ]when get the message above
758 /// \~english @par Classification
759 ///       - pubulic
760 /// \~english @par Type
761 ///          Pub-Sub
762 /// \~english @see McSendWithSysInfo
763 ////////////////////////////////////////////////////////////////////////////////////////////
764 EFrameworkunifiedStatus NPPublishNotification(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pNotification,
765                                  PCVOID pData, const UI_32 iLength);
766
767
768 //////////////////////////////////////////////////////////////////////////////////////////////
769 /// \ingroup NPSubscribeToNotification
770 /// \~english @par Brief
771 ///        API to send message to Notification Service to add to subscription list for.
772 /// \~english @param[in] hNPMsgQ
773 ///        HANDLE - Handle to message queue of Notification service.
774 /// \~english @param[in] pSubscriberName
775 ///        PCSTR - Name of subscriber message queue
776 /// \~english @param[in] notif_name
777 ///        PCSTR - Name of Notification
778 /// \~english @retval EFrameworkunifiedStatus indicates success or error
779 /// \~english @retval Success(eFrameworkunifiedStatusOK)
780 /// \~english @retval Error(anything else)
781 /// \~english @par
782 ///        EFrameworkunifiedStatus Enum
783 /// \~english @code
784 ///           typedef enum eFrameworkunifiedStatus {
785 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
786 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
787 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
788 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
789 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
790 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
791 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
792 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
793 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
794 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
795 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
796 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
797 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
798 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
799 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
800 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
801 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
802 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
803 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
804 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
805 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
806 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
807 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
808 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
809 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
810 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
811 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
812 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
813 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
814 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
815 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
816 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
817 ///             eFrameworkunifiedStatusNullPointer       = 22,
818 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
819 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
820 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
821 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
822 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
823 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
824 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
825 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
826 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
827 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
828 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
829 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
830 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
831 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
832 ///            @endcode
833 /// \~english @par Preconditons
834 ///       none
835 /// \~english @par Change of internal status
836 ///       - The internal state is not changed.
837 /// \~english @par Conditions of processing failure
838 ///       - Function pointer specified by the argument is NULL.
839 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
840 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
841 ///       - It is an incorrect value(notif_name) or notif_name is NULL.
842 /// \~english @par Detail
843 ///       Invoke callback function to send message to Notification Service to add to subscription list for given
844 ///       notification.\n
845 ///       If callback function is null and expectedCalls is '0', using default function 'NPSubscribeToNotification' to
846 ///       Notification Service to add to subscription list for given notification.
847 /// \~english @par Classification
848 ///       Public
849 /// \~english @par Type
850 ///       Sync only
851 /// \~english @see
852 ///       FrameworkunifiedNPSubscribeToNotification
853 //////////////////////////////////////////////////////////////////////////////////////////////
854 EFrameworkunifiedStatus NPSubscribeToNotification(HANDLE hNPMsgQ, PCSTR pSubscriberName, PCSTR notif_name);
855
856
857 //////////////////////////////////////////////////////////////////////////////////////////////
858 /// \ingroup NPSubscribeToNotifications
859 /// \~english @par Brief
860 ///        API to send message to Notification Service to add multiple subscriptions for a set of notification.
861 /// \~english @param[in] hNPMsgQ
862 ///        HANDLE - Handle to message queue of Notification service.
863 /// \~english @param[in] pSubscriberName
864 ///        PCSTR - Name of subscriber message queue
865 /// \~english @param[in] numNotifications
866 ///        UI_32 - Number of Notifications
867 /// \~english @param[in] pSubscribeInfoArray
868 ///        SubscribeInfo* - Array of SubscribeInfo
869 /// \~english @retval EFrameworkunifiedStatus indicates success or error
870 /// \~english @retval Success(eFrameworkunifiedStatusOK)
871 /// \~english @retval Error(anything else)
872 /// \~english @par
873 ///        EFrameworkunifiedStatus Enum
874 /// \~english @code
875 ///           typedef enum eFrameworkunifiedStatus {
876 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
877 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
878 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
879 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
880 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
881 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
882 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
883 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
884 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
885 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
886 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
887 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
888 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
889 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
890 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
891 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
892 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
893 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
894 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
895 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
896 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
897 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
898 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
899 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
900 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
901 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
902 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
903 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
904 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
905 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
906 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
907 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
908 ///             eFrameworkunifiedStatusNullPointer       = 22,
909 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
910 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
911 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
912 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
913 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
914 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
915 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
916 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
917 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
918 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
919 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
920 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
921 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
922 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
923 ///            @endcode
924 /// \~english @par Preconditons
925 ///       none
926 /// \~english @par Change of internal status
927 ///       - The internal state is not changed.
928 /// \~english @par Conditions of processing failure
929 ///       - Function pointer specified by the argument is NULL.
930 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
931 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
932 ///       - It is an incorrect value(numNotifications).
933 ///       - It is an incorrect value(pSubscribeInfoArray) or pSubscribeInfoArray is NULL.
934 /// \~english @par Detail
935 ///       Invoke callback function to send message to Notification Service to add multiple subscriptions for a set of
936 ///       notification.\n
937 ///       If callback function is null and expectedCalls is '0', using default function 'NPSubscribeToNotifications' to
938 ///       Notification Service to add multiple subscriptions for a set of notification.
939 /// \~english @par Classification
940 ///       Public
941 /// \~english @par Type
942 ///       Sync only
943 /// \~english @see
944 ///       FrameworkunifiedNPSubscribeToNotifications
945 EFrameworkunifiedStatus NPSubscribeToNotifications(HANDLE hNPMsgQ, PCSTR pSubscriberName, UI_32 numNotifications,
946                                       SubscribeInfo *pSubscribeInfoArray);
947
948 //////////////////////////////////////////////////////////////////////////////////////////////
949 /// \ingroup NPUnsubscribeFromNotification
950 /// \~english @par Brief
951 ///        API to send message to Notification Service to remove from subscription list for given notification.
952 /// \~english @param[in] hNPMsgQ
953 ///        HANDLE - Handle to message queue of Notification service.
954 /// \~english @param[in] pSubscriberName
955 ///        PCSTR - Name of subscriber message queue
956 /// \~english @param[in] pNotification
957 ///        PCSTR - Name of Notification
958 /// \~english @retval EFrameworkunifiedStatus indicates success or error
959 /// \~english @retval Success(eFrameworkunifiedStatusOK)
960 /// \~english @retval Error(anything else)
961 /// \~english @par
962 ///        EFrameworkunifiedStatus Enum
963 /// \~english @code
964 ///           typedef enum eFrameworkunifiedStatus {
965 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
966 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
967 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
968 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
969 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
970 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
971 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
972 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
973 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
974 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
975 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
976 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
977 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
978 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
979 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
980 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
981 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
982 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
983 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
984 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
985 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
986 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
987 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
988 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
989 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
990 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
991 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
992 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
993 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
994 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
995 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
996 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
997 ///             eFrameworkunifiedStatusNullPointer       = 22,
998 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
999 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1000 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1001 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1002 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1003 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1004 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1005 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1006 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1007 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1008 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1009 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1010 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1011 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1012 ///            @endcode
1013 /// \~english @par Preconditons
1014 ///       none
1015 /// \~english @par Change of internal status
1016 ///       - The internal state is not changed.
1017 /// \~english @par Conditions of processing failure
1018 ///       - Function pointer specified by the argument is NULL.
1019 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1020 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
1021 ///       - It is an incorrect value(pNotification) or pNotification is NULL.
1022 /// \~english @par Detail
1023 ///       Invoke callback function to send message to Notification Service to remove from subscription list for given
1024 ///       notification.\n
1025 ///       If callback function is null and expectedCalls is '0', using default function 'NPUnsubscribeFromNotification'
1026 ///       to send message to Notification Service to remove from subscription list for given notification.
1027 /// \~english @par Classification
1028 ///       Public
1029 /// \~english @par Type
1030 ///       Sync only
1031 /// \~english @see
1032 ///       FrameworkunifiedNPUnsubscribeFromNotification
1033 EFrameworkunifiedStatus NPUnsubscribeFromNotification(HANDLE hNPMsgQ, PCSTR pSubscriberName, PCSTR pNotification);
1034
1035 //////////////////////////////////////////////////////////////////////////////////////////////
1036 /// \ingroup NPUnsubscribeFromNotifications
1037 /// \~english @par Brief
1038 ///        API to send message to Notification Service to unsubscribe multiple subscriptions for a set of notification.
1039 /// \~english @param[in] hNPMsgQ
1040 ///        HANDLE - Handle to message queue of Notification service.
1041 /// \~english @param[in] pSubscriberName
1042 ///        PCSTR - Name of subscriber message queue
1043 /// \~english @param[in] numNotifications
1044 ///        UI_32 - Number of Notifications
1045 /// \~english @param[in] pUnSubscribeInfoArray
1046 ///        SubscribeInfo - Array of notifications
1047 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1048 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1049 /// \~english @retval Error(anything else)
1050 /// \~english @par
1051 ///        EFrameworkunifiedStatus Enum
1052 /// \~english @code
1053 ///           typedef enum eFrameworkunifiedStatus {
1054 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1055 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1056 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1057 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1058 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1059 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1060 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1061 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1062 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1063 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1064 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1065 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1066 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1067 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1068 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1069 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1070 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1071 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1072 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1073 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1074 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1075 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1076 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1077 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1078 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1079 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1080 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1081 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1082 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1083 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1084 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1085 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1086 ///             eFrameworkunifiedStatusNullPointer       = 22,
1087 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1088 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1089 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1090 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1091 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1092 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1093 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1094 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1095 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1096 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1097 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1098 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1099 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1100 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1101 ///            @endcode
1102 /// \~english @par Preconditons
1103 ///       none
1104 /// \~english @par Change of internal status
1105 ///       - The internal state is not changed.
1106 /// \~english @par Conditions of processing failure
1107 ///       - Function pointer specified by the argument is NULL.
1108 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1109 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
1110 ///       - It is an incorrect value(numNotifications).
1111 ///       - It is an incorrect value(pUnSubscribeInfoArray) or pUnSubscribeInfoArray is NULL.
1112 /// \~english @par Detail
1113 ///       Invoke callback function to send message to Notification Service to unsubscribe multiple subscriptions for a
1114 ///       set of notification.\n
1115 ///       If callback function is null and expectedCalls is '0', using default function 'NPUnsubscribeFromNotifications'
1116 ///       to send message to Notification Service to unsubscribe multiple subscriptions for a set of notification.
1117 /// \~english @par Classification
1118 ///       Public
1119 /// \~english @par Type
1120 ///       Sync only
1121 /// \~english @see
1122 ///       FrameworkunifiedNPUnsubscribeFromNotifications
1123 EFrameworkunifiedStatus NPUnsubscribeFromNotifications(HANDLE hNPMsgQ, PCSTR pUnSubscriberName, UI_32 numNotifications,
1124                                           SubscribeInfo *pUnSubscribeInfoArray);
1125
1126 //////////////////////////////////////////////////////////////////////////////////////////////
1127 /// \ingroup NPReadPersistedData
1128 /// \~english @par Brief
1129 ///        API to requested the persistent data corresponding to the notification if available.
1130 /// \~english @param[in] hNPMsgQ
1131 ///        HANDLE - Handle to message queue of Notification service.
1132 /// \~english @param[in] pPublisherName
1133 ///        PCSTR - Name of publisher message queue
1134 /// \~english @param[in] notification
1135 ///        PCSTR - Name of Notification
1136 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1137 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1138 /// \~english @retval Error(anything else)
1139 /// \~english @par
1140 ///        EFrameworkunifiedStatus Enum
1141 /// \~english @code
1142 ///           typedef enum eFrameworkunifiedStatus {
1143 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1144 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1145 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1146 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1147 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1148 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1149 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1150 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1151 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1152 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1153 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1154 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1155 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1156 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1157 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1158 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1159 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1160 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1161 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1162 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1163 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1164 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1165 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1166 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1167 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1168 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1169 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1170 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1171 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1172 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1173 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1174 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1175 ///             eFrameworkunifiedStatusNullPointer       = 22,
1176 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1177 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1178 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1179 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1180 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1181 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1182 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1183 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1184 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1185 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1186 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1187 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1188 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1189 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1190 ///            @endcode
1191 /// \~english @par Preconditons
1192 ///       none
1193 /// \~english @par Change of internal status
1194 ///       - The internal state is not changed.
1195 /// \~english @par Conditions of processing failure
1196 ///       - Function pointer specified by the argument is NULL.
1197 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1198 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
1199 ///       - It is an incorrect value(notification) or notification is NULL.
1200 /// \~english @par Detail
1201 ///       Invoke callback function to send message to requested the persistent data corresponding to the notification if
1202 ///       available.\n
1203 ///       If callback function is null and expectedCalls is '0', using default function 'NPReadPersistedData' to
1204 ///       requested the persistent data corresponding to the notification if available.
1205 /// \~english @par Classification
1206 ///       Public
1207 /// \~english @par Type
1208 ///       Sync only
1209 /// \~english @see
1210 ///       FrameworkunifiedNPReadPersistedData
1211 EFrameworkunifiedStatus NPReadPersistedData(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR notification);
1212
1213 //////////////////////////////////////////////////////////////////////////////////////////////
1214 /// \ingroup NPSavePersistentData
1215 /// \~english @par Brief
1216 ///        API to send message to Notification Service to save all persisted data that in Ram to the file system via a
1217 ///        file write.
1218 /// \~english @param[in] hNPMsgQ
1219 ///        HANDLE - Handle to message queue of Notification service.
1220 /// \~english @param[in] pPublisherName
1221 ///        PCSTR - Name of publisher message queue
1222 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1223 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1224 /// \~english @retval Error(anything else)
1225 /// \~english @par
1226 ///        EFrameworkunifiedStatus Enum
1227 /// \~english @code
1228 ///           typedef enum eFrameworkunifiedStatus {
1229 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1230 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1231 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1232 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1233 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1234 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1235 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1236 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1237 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1238 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1239 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1240 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1241 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1242 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1243 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1244 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1245 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1246 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1247 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1248 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1249 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1250 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1251 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1252 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1253 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1254 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1255 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1256 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1257 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1258 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1259 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1260 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1261 ///             eFrameworkunifiedStatusNullPointer       = 22,
1262 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1263 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1264 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1265 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1266 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1267 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1268 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1269 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1270 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1271 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1272 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1273 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1274 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1275 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1276 ///            @endcode
1277 /// \~english @par Preconditons
1278 ///       none
1279 /// \~english @par Change of internal status
1280 ///       - The internal state is not changed.
1281 /// \~english @par Conditions of processing failure
1282 ///       - Function pointer specified by the argument is NULL.
1283 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1284 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
1285 /// \~english @par Detail
1286 ///       Invoke callback function to send message to Notification Service to save all persisted data.\n
1287 ///       If callback function is null and expectedCalls is '0', using default function 'NPSavePersistentData' to send
1288 ///       message to Notification Service to save all persisted data.
1289 /// \~english @par Classification
1290 ///       Public
1291 /// \~english @par Type
1292 ///       Sync only
1293 /// \~english @see
1294 ///       FrameworkunifiedNPSavePersistentData
1295 EFrameworkunifiedStatus NPSavePersistentData(HANDLE hNPMsgQ, PCSTR pPublisherName);
1296
1297 //////////////////////////////////////////////////////////////////////////////////////////////
1298 /// \ingroup NPRegisterPersistentFile
1299 /// \~english @par Brief
1300 ///        API to send message to Notification Service to add a file path as to be persisted.
1301 /// \~english @param[in] hNPMsgQ
1302 ///        HANDLE - Handle to message queue of Notification service.
1303 /// \~english @param[in] pPublisherName
1304 ///        PCSTR - Name of publisher message queue.
1305 /// \~english @param[in] pTag
1306 ///        PCSTR - A unique identifier for the file path specified, this is used in retrieve/Load the file later.
1307 /// \~english @param[in] bIsUserFile
1308 ///        BOOL - Set TRUE, if registering user file.
1309 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1310 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1311 /// \~english @retval Error(anything else)
1312 /// \~english @par
1313 ///        EFrameworkunifiedStatus Enum
1314 /// \~english @code
1315 ///           typedef enum eFrameworkunifiedStatus {
1316 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1317 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1318 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1319 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1320 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1321 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1322 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1323 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1324 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1325 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1326 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1327 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1328 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1329 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1330 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1331 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1332 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1333 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1334 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1335 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1336 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1337 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1338 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1339 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1340 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1341 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1342 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1343 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1344 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1345 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1346 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1347 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1348 ///             eFrameworkunifiedStatusNullPointer       = 22,
1349 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1350 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1351 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1352 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1353 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1354 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1355 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1356 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1357 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1358 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1359 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1360 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1361 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1362 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1363 ///            @endcode
1364 /// \~english @par Preconditons
1365 ///       none
1366 /// \~english @par Change of internal status
1367 ///       - The internal state is not changed.
1368 /// \~english @par Conditions of processing failure
1369 ///       - Function pointer specified by the argument is NULL.
1370 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1371 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
1372 ///       - It is an incorrect value(pTag) or pTag is NULL.
1373 /// \~english @par Detail
1374 ///       Invoke callback function to send message to Notification Service to add a file path as to be persisted.\n
1375 ///       If callback function is null and expectedCalls is '0', using default function 'NPRegisterPersistentFile' to
1376 ///       send message to Notification Service to add a file path as to be persisted.
1377 /// \~english @par Classification
1378 ///       Public
1379 /// \~english @par Type
1380 ///       Sync only
1381 /// \~english @see
1382 ///       FrameworkunifiedNPRegisterPersistentFile
1383 EFrameworkunifiedStatus NPRegisterPersistentFile(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pTag, BOOL bIsUserFile);
1384
1385 //////////////////////////////////////////////////////////////////////////////////////////////
1386 /// \ingroup NPSetFilePersistentType
1387 /// \~english @par Brief
1388 ///        API to send message to Notification Service to add a file path as to be persisted.
1389 /// \~english @param[in] hNPMsgQ
1390 ///        HANDLE - Handle to message queue of Notification service.
1391 /// \~english @param[in] pPublisherName
1392 ///        PCSTR - Name of publisher message queue.
1393 /// \~english @param[in] pTag
1394 ///        PCSTR - A unique identifier for the file path specified, this is used in retrieve/Load the file later.
1395 /// \~english @param[in] ePersistCategory
1396 ///        EFrameworkunifiedPersistCategory - persist category
1397 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1398 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1399 /// \~english @retval Error(anything else)
1400 /// \~english @par
1401 ///        EFrameworkunifiedStatus Enum
1402 /// \~english @code
1403 ///           typedef enum eFrameworkunifiedStatus {
1404 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1405 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1406 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1407 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1408 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1409 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1410 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1411 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1412 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1413 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1414 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1415 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1416 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1417 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1418 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1419 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1420 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1421 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1422 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1423 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1424 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1425 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1426 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1427 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1428 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1429 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1430 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1431 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1432 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1433 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1434 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1435 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1436 ///             eFrameworkunifiedStatusNullPointer       = 22,
1437 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1438 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1439 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1440 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1441 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1442 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1443 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1444 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1445 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1446 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1447 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1448 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1449 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1450 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1451 ///            @endcode
1452 /// \~english @par Preconditons
1453 ///       none
1454 /// \~english @par Change of internal status
1455 ///       - The internal state is not changed.
1456 /// \~english @par Conditions of processing failure
1457 ///       - Function pointer specified by the argument is NULL.
1458 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1459 ///       - It is an incorrect value(pSubscriberName) or pSubscriberName is NULL.
1460 ///       - It is an incorrect value(pTag) or pTag is NULL.
1461 /// \~english @par Detail
1462 ///       Invoke callback function to send message to Notification Service to add a file path as to be persisted. \n
1463 ///       If callback function is null and expectedCalls is '0', using default function 'NPSetFilePersistentType' to
1464 ///       send message to Notification Service to add a file path as to be persisted.
1465 /// \~english @par Classification
1466 ///       Public
1467 /// \~english @par Type
1468 ///       Sync only
1469 /// \~english @see
1470 ///       FrameworkunifiedNPSetFilePersistentType
1471 EFrameworkunifiedStatus NPSetFilePersistentType(HANDLE hNPMsgQ, PCSTR pPublisherName,
1472                                    PCSTR pTag, EFrameworkunifiedPersistCategory ePersistCategory);
1473
1474 //////////////////////////////////////////////////////////////////////////////////////////////
1475 /// \ingroup NPLoadPersistentFile
1476 /// \~english @par Brief
1477 ///        API to send message to Notification Service to copy file from persistent memory to
1478 ///        specified path. The caller recieves an acknowledgement once NPS completes file copy
1479 /// \~english @param[in] hNPMsgQ
1480 ///        HANDLE - Handle to message queue of Notification service.
1481 /// \~english @param[in] pPublisherName
1482 ///        PCSTR - Name of publisher message queue.
1483 /// \~english @param[in] pDstFilePath
1484 ///        PCSTR - Complete file path to which the file should be copied from persistent area.
1485 /// \~english @param[in] pTag
1486 ///        PCSTR - Tag associated with the file that needs to be copied to pDstFilePath.
1487 /// \~english @param[in] hUser
1488 ///        HANDLE - Load the file for the specified user.
1489 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1490 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1491 /// \~english @retval Error(anything else)
1492 /// \~english @par
1493 ///        EFrameworkunifiedStatus Enum
1494 /// \~english @code
1495 ///           typedef enum eFrameworkunifiedStatus {
1496 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1497 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1498 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1499 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1500 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1501 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1502 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1503 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1504 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1505 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1506 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1507 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1508 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1509 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1510 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1511 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1512 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1513 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1514 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1515 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1516 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1517 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1518 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1519 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1520 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1521 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1522 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1523 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1524 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1525 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1526 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1527 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1528 ///             eFrameworkunifiedStatusNullPointer       = 22,
1529 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1530 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1531 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1532 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1533 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1534 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1535 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1536 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1537 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1538 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1539 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1540 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1541 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1542 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1543 ///            @endcode
1544 /// \~english @par Preconditons
1545 ///       none
1546 /// \~english @par Change of internal status
1547 ///       - The internal state is not changed.
1548 /// \~english @par Conditions of processing failure
1549 ///       - Function pointer specified by the argument is NULL.
1550 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1551 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
1552 ///       - It is an incorrect value(pDstFilePath) or pDstFilePath is NULL.
1553 ///       - It is an incorrect value(pTag) or pTag is NULL.
1554 ///       - It is an incorrect value(hUser) or hUser is NULL.
1555 /// \~english @par Detail
1556 ///       Invoke callback function to send message to Notification Service to copy file from persistent memory to
1557 ///       specified path. \n
1558 ///       If callback function is null and expectedCalls is '0', using default function 'NPLoadPersistentFile' to send
1559 ///       message to Notification Service to copy file from persistent memory to specified path.
1560 /// \~english @par Classification
1561 ///       Public
1562 /// \~english @par Type
1563 ///       Sync only
1564 /// \~english @see
1565 ///       FrameworkunifiedNPLoadPersistentFile
1566 EFrameworkunifiedStatus NPLoadPersistentFile(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pDstFilePath,
1567                                 PCSTR pTag, HANDLE hUser);
1568
1569 //////////////////////////////////////////////////////////////////////////////////////////////
1570 /// \ingroup NPReleasePersistentFile
1571 /// \~english @par Brief
1572 ///        API to send message to Notification Service to notify that the file can be persisted.
1573 /// \~english @param[in] hNPMsgQ
1574 ///        HANDLE - Handle to message queue of Notification service.
1575 /// \~english @param[in] pPublisherName
1576 ///        PCSTR - Name of publisher message queue.
1577 /// \~english @param[in]  eReleaseType
1578 ///        EFrameworkunifiedReleaseType - eFrameworkunifiedNotOnRelease:not on release
1579 ///                          eFrameworkunifiedPersistOnShutdown:persist on shutdown
1580 ///                          eFrameworkunifiedPersistInstantly:persist instantly
1581 /// \~english @param[in] pTag
1582 ///        PCSTR - Tag associated with the file released
1583 /// \~english @param[in] pFullFilePath
1584 ///        PCSTR - Full path name of the file to be persisted
1585 /// \~english @param[in] hUser
1586 ///        HANDLE - Release the file for the specified user.
1587 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1588 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1589 /// \~english @retval Error(anything else)
1590 /// \~english @par
1591 ///        EFrameworkunifiedStatus Enum
1592 /// \~english @code
1593 ///           typedef enum eFrameworkunifiedStatus {
1594 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1595 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1596 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1597 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1598 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1599 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1600 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1601 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1602 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1603 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1604 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1605 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1606 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1607 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1608 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1609 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1610 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1611 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1612 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1613 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1614 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1615 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1616 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1617 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1618 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1619 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1620 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1621 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1622 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1623 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1624 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1625 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1626 ///             eFrameworkunifiedStatusNullPointer       = 22,
1627 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1628 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1629 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1630 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1631 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1632 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1633 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1634 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1635 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1636 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1637 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1638 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1639 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1640 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1641 ///            @endcode
1642 /// \~english @par Preconditons
1643 ///       none
1644 /// \~english @par Change of internal status
1645 ///       - The internal state is not changed.
1646 /// \~english @par Conditions of processing failure
1647 ///       - Function pointer specified by the argument is NULL.
1648 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1649 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
1650 ///       - It is an incorrect value(pDstFilePath) or pDstFilePath is NULL.
1651 ///       - It is an incorrect value(pTag) or pTag is NULL.
1652 ///       - It is an incorrect value(pFullFilePath) or pFullFilePath is NULL.
1653 ///       - It is an incorrect value(hUser) or hUser is NULL.
1654 /// \~english @par Detail
1655 ///       Invoke callback function to send message to Notification Service to notify that the file can be persisted. \n
1656 ///       If callback function is null and expectedCalls is '0', using default function 'NPReleasePersistentFile' to
1657 ///       send message to Notification Service to notify that the file can be persisted.
1658 /// \~english @par Classification
1659 ///       Public
1660 /// \~english @par Type
1661 ///       Sync only
1662 /// \~english @see
1663 ///       FrameworkunifiedNPReleasePersistentFile
1664 EFrameworkunifiedStatus NPReleasePersistentFile(HANDLE hNPMsgQ, PCSTR pPublisherName, EFrameworkunifiedReleaseType eReleaseType, PCSTR pTag,
1665                                    PCSTR pFullFilePath, HANDLE hUser);
1666
1667 //////////////////////////////////////////////////////////////////////////////////////////////
1668 /// \ingroup NPPersistentSync
1669 /// \~english @par Brief
1670 ///        API to synchronizes by NPPService.
1671 /// \~english @param[in] hNPMsgQ
1672 ///        HANDLE - Handle to message queue of Notification service.
1673 /// \~english @param[in] pPublisherName
1674 ///        PCSTR - Name of publisher message queue.
1675 /// \~english @param[in]  eReleaseType
1676 ///        EFrameworkunifiedReleaseType - eFrameworkunifiedNotOnRelease:not on release
1677 ///                          eFrameworkunifiedPersistOnShutdown:persist on shutdown
1678 ///                          eFrameworkunifiedPersistInstantly:persist instantly
1679 /// \~english @param[in] SrcName
1680 ///        PCSTR - source service name.
1681 /// \~english @param[in] sessionid
1682 ///        UI_32 - session ID
1683 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1684 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1685 /// \~english @retval Error(anything else)
1686 /// \~english @par
1687 ///        EFrameworkunifiedStatus Enum
1688 /// \~english @code
1689 ///           typedef enum eFrameworkunifiedStatus {
1690 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1691 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1692 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1693 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1694 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1695 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1696 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1697 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1698 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1699 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1700 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1701 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1702 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1703 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1704 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1705 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1706 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1707 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1708 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1709 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1710 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1711 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1712 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1713 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1714 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1715 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1716 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1717 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1718 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1719 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1720 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1721 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1722 ///             eFrameworkunifiedStatusNullPointer       = 22,
1723 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1724 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1725 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1726 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1727 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1728 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1729 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1730 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1731 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1732 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1733 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1734 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1735 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1736 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1737 ///            @endcode
1738 /// \~english @par Preconditons
1739 ///       none
1740 /// \~english @par Change of internal status
1741 ///       - The internal state is not changed.
1742 /// \~english @par Conditions of processing failure
1743 ///       - Function pointer specified by the argument is NULL.
1744 ///       - It is an incorrect value(SrcName) or SrcName is NULL.
1745 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1746 ///       - It is an incorrect value(sessionid).
1747 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
1748 /// \~english @par Detail
1749 ///       Invoke callback function to synchronizes by NPPService. \n
1750 ///       If callback function is null and expectedCalls is '0', using default function 'NPPersistentSync' to
1751 ///       synchronizes by NPPService.
1752 /// \~english @par Classification
1753 ///       Public
1754 /// \~english @par Type
1755 ///       Sync only
1756 /// \~english @see
1757 ///       FrameworkunifiedNPPersistentSync
1758 EFrameworkunifiedStatus NPPersistentSync(PCSTR SrcName, HANDLE hNPMsgQ, UI_32 sessionid, PCSTR pPublisherName);
1759
1760 //////////////////////////////////////////////////////////////////////////////////////////////
1761 /// \ingroup NPSetPersonality
1762 /// \~english @par Brief
1763 ///        API to send message to Notification Service to set the Personality.
1764 /// \~english @param[in] hNPMsgQ
1765 ///        HANDLE - Handle to message queue of Notification service.
1766 /// \~english @param[in] pPublisherName
1767 ///        PCSTR - Name of publisher message queue.
1768 /// \~english @param[in] pUserName
1769 ///        PCSTR - Name of new Personality
1770 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1771 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1772 /// \~english @retval Error(anything else)
1773 /// \~english @par
1774 ///        EFrameworkunifiedStatus Enum
1775 /// \~english @code
1776 ///           typedef enum eFrameworkunifiedStatus {
1777 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1778 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1779 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1780 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1781 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1782 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1783 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1784 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1785 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1786 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1787 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1788 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1789 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1790 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1791 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1792 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1793 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1794 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1795 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1796 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1797 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1798 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1799 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1800 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1801 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1802 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1803 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1804 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1805 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1806 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1807 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1808 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1809 ///             eFrameworkunifiedStatusNullPointer       = 22,
1810 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1811 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1812 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1813 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1814 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1815 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1816 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1817 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1818 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1819 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1820 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1821 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1822 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1823 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1824 ///            @endcode
1825 /// \~english @par Preconditons
1826 ///       none
1827 /// \~english @par Change of internal status
1828 ///       - The internal state is not changed.
1829 /// \~english @par Conditions of processing failure
1830 ///       - Function pointer specified by the argument is NULL.
1831 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1832 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
1833 ///       - It is an incorrect value(pUserName) or pUserName is NULL.
1834 /// \~english @par Detail
1835 ///       Invoke callback function to send message to Notification Service to set the Personality. \n
1836 ///       If callback function is null and expectedCalls is '0', using default function 'NPSetPersonality' to send
1837 ///       message to Notification Service to set the Personality.
1838 /// \~english @par Classification
1839 ///       Public
1840 /// \~english @par Type
1841 ///       Sync only
1842 /// \~english @see
1843 ///       FrameworkunifiedNPSetPersonality
1844 EFrameworkunifiedStatus NPSetPersonality(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pUserName);
1845
1846 //////////////////////////////////////////////////////////////////////////////////////////////
1847 /// \ingroup NPChangePersonality
1848 /// \~english @par Brief
1849 ///        API to send message to Notification Service to change the current Personality.
1850 /// \~english @param[in] hNPMsgQ
1851 ///        HANDLE - Handle to message queue of Notification service.
1852 /// \~english @param[in] pPublisherName
1853 ///        PCSTR - Name of publisher message queue.
1854 /// \~english @param[in] pUserName
1855 ///        PCSTR - Name of new Personality
1856 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1857 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1858 /// \~english @retval Error(anything else)
1859 /// \~english @par
1860 ///        EFrameworkunifiedStatus Enum
1861 /// \~english @code
1862 ///           typedef enum eFrameworkunifiedStatus {
1863 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1864 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1865 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1866 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1867 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1868 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1869 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1870 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1871 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1872 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1873 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1874 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1875 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1876 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1877 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1878 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1879 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1880 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1881 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1882 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1883 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1884 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1885 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1886 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1887 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1888 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1889 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1890 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1891 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1892 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1893 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1894 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1895 ///             eFrameworkunifiedStatusNullPointer       = 22,
1896 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1897 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1898 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1899 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1900 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1901 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1902 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1903 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1904 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1905 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1906 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1907 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1908 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1909 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1910 ///            @endcode
1911 /// \~english @par Preconditons
1912 ///       none
1913 /// \~english @par Change of internal status
1914 ///       - The internal state is not changed.
1915 /// \~english @par Conditions of processing failure
1916 ///       - Function pointer specified by the argument is NULL.
1917 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
1918 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
1919 ///       - It is an incorrect value(pUserName) or pUserName is NULL.
1920 /// \~english @par Detail
1921 ///       Invoke callback function to send message to Notification Service to change the current Personality. \n
1922 ///       If callback function is null and expectedCalls is '0', using default function 'NPChangePersonality' to send
1923 ///       message to Notification Service to change the current Personality.
1924 /// \~english @par Classification
1925 ///       Public
1926 /// \~english @par Type
1927 ///       Sync only
1928 /// \~english @see
1929 ///       FrameworkunifiedNPChangePersonality
1930 EFrameworkunifiedStatus NPChangePersonality(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pUserName);
1931
1932 //////////////////////////////////////////////////////////////////////////////////////////////
1933 /// \ingroup NPGetReadyStatusOfNPP
1934 /// \~english @par Brief
1935 ///        To be used by System Manager Service only. SystemManager will use this API to get the ready status of
1936 ///        NPPService.
1937 /// \~english @param[in] hNPMsgQ
1938 ///        HANDLE - Handle to message queue of Notification service.
1939 /// \~english @param[in] pRequesterName
1940 ///        PCSTR - Name of the requesters message queue.
1941 /// \~english @param[in] pUserName
1942 ///        PCSTR - Name of new Personality
1943 /// \~english @retval EFrameworkunifiedStatus indicates success or error
1944 /// \~english @retval Success(eFrameworkunifiedStatusOK)
1945 /// \~english @retval Error(anything else)
1946 /// \~english @par
1947 ///        EFrameworkunifiedStatus Enum
1948 /// \~english @code
1949 ///           typedef enum eFrameworkunifiedStatus {
1950 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
1951 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
1952 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
1953 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
1954 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
1955 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
1956 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
1957 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
1958 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
1959 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
1960 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
1961 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
1962 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
1963 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
1964 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
1965 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
1966 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
1967 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
1968 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
1969 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
1970 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
1971 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
1972 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
1973 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
1974 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
1975 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
1976 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
1977 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
1978 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
1979 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
1980 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
1981 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
1982 ///             eFrameworkunifiedStatusNullPointer       = 22,
1983 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
1984 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
1985 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
1986 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
1987 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
1988 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
1989 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
1990 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
1991 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
1992 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
1993 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
1994 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
1995 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
1996 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
1997 ///            @endcode
1998 /// \~english @par Preconditons
1999 ///       none
2000 /// \~english @par Change of internal status
2001 ///       - The internal state is not changed.
2002 /// \~english @par Conditions of processing failure
2003 ///       - Function pointer specified by the argument is NULL.
2004 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
2005 ///       - It is an incorrect value(pRequesterName) or pRequesterName is NULL.
2006 ///       - It is an incorrect value(pUserName) or pUserName is NULL.
2007 /// \~english @par Detail
2008 ///       Invoke callback function to get the ready status of NPPService. \n
2009 ///       If callback function is null and expectedCalls is '0', using default function 'NPGetReadyStatusOfNPP' to get
2010 ///       the ready status of NPPService.
2011 /// \~english @par Classification
2012 ///       Public
2013 /// \~english @par Type
2014 ///       Sync only
2015 /// \~english @see
2016 ///       FrameworkunifiedNPGetReadyStatusOfNPP
2017 EFrameworkunifiedStatus NPGetReadyStatusOfNPP(HANDLE hNPMsgQ, PCSTR pRequesterName);
2018
2019 //////////////////////////////////////////////////////////////////////////////////////////////
2020 /// \ingroup NPClearPersistedData
2021 /// \~english @par Brief
2022 ///        API to delete the persisted data of NS_NPS.
2023 ///        Note: Currently to be used by HMI service only
2024 /// \~english @param[in] hNPMsgQ
2025 ///        HANDLE - Handle to message queue of Notification service.
2026 /// \~english @param[in] pRequesterName
2027 ///        PCSTR - Name of the requesters message queue.
2028 /// \~english @param[in] eFrameworkunifiedClearPersistenceScope
2029 ///        EFrameworkunifiedClearPersistence - specifies what data to delete from persistent memory.
2030 /// \~english @retval EFrameworkunifiedStatus indicates success or error
2031 /// \~english @retval Success(eFrameworkunifiedStatusOK)
2032 /// \~english @retval Error(anything else)
2033 /// \~english @par
2034 ///        EFrameworkunifiedStatus Enum
2035 /// \~english @code
2036 ///           typedef enum eFrameworkunifiedStatus {
2037 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
2038 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
2039 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
2040 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
2041 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
2042 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
2043 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
2044 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
2045 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
2046 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
2047 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
2048 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
2049 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
2050 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
2051 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
2052 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
2053 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
2054 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
2055 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
2056 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
2057 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
2058 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
2059 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
2060 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
2061 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
2062 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
2063 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
2064 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
2065 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
2066 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
2067 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
2068 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
2069 ///             eFrameworkunifiedStatusNullPointer       = 22,
2070 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
2071 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
2072 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
2073 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
2074 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
2075 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
2076 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
2077 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
2078 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
2079 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
2080 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
2081 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
2082 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
2083 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
2084 ///            @endcode
2085 /// \~english @par Preconditons
2086 ///       none
2087 /// \~english @par Change of internal status
2088 ///       - The internal state is not changed.
2089 /// \~english @par Conditions of processing failure
2090 ///       - Function pointer specified by the argument is NULL.
2091 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
2092 ///       - It is an incorrect value(pRequesterName) or pRequesterName is NULL.
2093 /// \~english @par Detail
2094 ///       Invoke callback function to delete the persisted data of NS_NPS.\n
2095 ///       If callback function is null and expectedCalls is '0', using default function 'NPClearPersistedData' to delete
2096 ///       the persisted data of NS_NPS.
2097 /// \~english @par Classification
2098 ///       Public
2099 /// \~english @par Type
2100 ///       Sync only
2101 /// \~english @see
2102 ///       FrameworkunifiedNPClearPersistedData
2103 EFrameworkunifiedStatus NPClearPersistedData(HANDLE hNPMsgQ, PCSTR pRequesterName, EFrameworkunifiedClearPersistence eFrameworkunifiedClearPersistenceScope);
2104
2105 //////////////////////////////////////////////////////////////////////////////////////////////
2106 /// \ingroup NPRegisterPersistentFolder
2107 /// \~english @par Brief
2108 ///        API to send message to Notification Service to add a folder path as to be persisted.
2109 /// \~english @param[in] hNPMsgQ
2110 ///        HANDLE - Handle to message queue of Notification service.
2111 /// \~english @param[in] pPublisherName
2112 ///        PCSTR - Name of publisher message queue.
2113 /// \~english @param[in] pTag
2114 ///        PCSTR - A unique identifier for the folder path specified, this is used in retrieve/Load the folder later.
2115 /// \~english @param[in] bIsUserFolder
2116 ///        BOOL - Set TRUE, if registering user folder.
2117 /// \~english @retval EFrameworkunifiedStatus indicates success or error
2118 /// \~english @retval Success(eFrameworkunifiedStatusOK)
2119 /// \~english @retval Error(anything else)
2120 /// \~english @par
2121 ///        EFrameworkunifiedStatus Enum
2122 /// \~english @code
2123 ///           typedef enum eFrameworkunifiedStatus {
2124 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
2125 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
2126 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
2127 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
2128 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
2129 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
2130 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
2131 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
2132 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
2133 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
2134 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
2135 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
2136 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
2137 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
2138 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
2139 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
2140 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
2141 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
2142 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
2143 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
2144 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
2145 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
2146 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
2147 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
2148 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
2149 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
2150 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
2151 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
2152 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
2153 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
2154 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
2155 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
2156 ///             eFrameworkunifiedStatusNullPointer       = 22,
2157 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
2158 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
2159 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
2160 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
2161 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
2162 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
2163 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
2164 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
2165 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
2166 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
2167 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
2168 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
2169 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
2170 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
2171 ///            @endcode
2172 /// \~english @par Preconditons
2173 ///       none
2174 /// \~english @par Change of internal status
2175 ///       - The internal state is not changed.
2176 /// \~english @par Conditions of processing failure
2177 ///       - Function pointer specified by the argument is NULL.
2178 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
2179 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
2180 ///       - It is an incorrect value(pTag) or pTag is NULL.
2181 /// \~english @par Detail
2182 ///       Invoke callback function to send message to Notification Service to add a folder path as to be persisted.\n
2183 ///       If callback function is null and expectedCalls is '0', using default function 'NPRegisterPersistentFolder' to
2184 ///       send message to Notification Service to add a folder path as to be persisted.
2185 /// \~english @par Classification
2186 ///       Public
2187 /// \~english @par Type
2188 ///       Sync only
2189 /// \~english @see
2190 ///       FrameworkunifiedNPRegisterPersistentFolder
2191 EFrameworkunifiedStatus NPRegisterPersistentFolder(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pTag, BOOL bIsUserFolder);
2192
2193 //////////////////////////////////////////////////////////////////////////////////////////////
2194 /// \ingroup NPSetFolderPersistentType
2195 /// \~english @par Brief
2196 ///        API to send message to Notification Service to set the persist category of file.
2197 /// \~english @param[in] hNPMsgQ
2198 ///        HANDLE - Handle to message queue of Notification service.
2199 /// \~english @param[in] pPublisherName
2200 ///        PCSTR - Name of publisher message queue.
2201 /// \~english @param[in] pTag
2202 ///        PCSTR - A unique identifier for the file path specified, this is used in retrieve/Load the file later
2203 /// \~english @param[in] ePersistCategory
2204 ///        EFrameworkunifiedPersistCategory - persist category
2205 /// \~english @retval EFrameworkunifiedStatus indicates success or error
2206 /// \~english @retval Success(eFrameworkunifiedStatusOK)
2207 /// \~english @retval Error(anything else)
2208 /// \~english @par
2209 ///        EFrameworkunifiedStatus Enum
2210 /// \~english @code
2211 ///           typedef enum eFrameworkunifiedStatus {
2212 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
2213 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
2214 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
2215 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
2216 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
2217 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
2218 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
2219 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
2220 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
2221 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
2222 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
2223 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
2224 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
2225 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
2226 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
2227 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
2228 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
2229 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
2230 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
2231 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
2232 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
2233 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
2234 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
2235 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
2236 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
2237 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
2238 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
2239 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
2240 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
2241 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
2242 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
2243 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
2244 ///             eFrameworkunifiedStatusNullPointer       = 22,
2245 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
2246 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
2247 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
2248 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
2249 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
2250 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
2251 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
2252 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
2253 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
2254 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
2255 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
2256 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
2257 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
2258 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
2259 ///            @endcode
2260 /// \~english @par Preconditons
2261 ///       none
2262 /// \~english @par Change of internal status
2263 ///       - The internal state is not changed.
2264 /// \~english @par Conditions of processing failure
2265 ///       - Function pointer specified by the argument is NULL.
2266 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
2267 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
2268 ///       - It is an incorrect value(pTag) or pTag is NULL.
2269 /// \~english @par Detail
2270 ///       Invoke callback function to send message to Notification Service to set the persist category of file.\n
2271 ///       If callback function is null and expectedCalls is '0', using default function 'NPSetFolderPersistentType' to
2272 ///       send message to Notification Service to set the persist category of file.
2273 /// \~english @par Classification
2274 ///       Public
2275 /// \~english @par Type
2276 ///       Sync only
2277 /// \~english @see
2278 ///       FrameworkunifiedNPSetFolderPersistentType
2279 EFrameworkunifiedStatus NPSetFolderPersistentType(HANDLE hNPMsgQ, PCSTR pPublisherName,
2280                                      PCSTR pTag, EFrameworkunifiedPersistCategory ePersistCategory);
2281
2282 //////////////////////////////////////////////////////////////////////////////////////////////
2283 /// \ingroup NPLoadPersistentFolder
2284 /// \~english @par Brief
2285 ///        API to send message to Notification Service to copy folder from persistent memory to
2286 ///        specified path. The caller recieves an acknowledgement once NPS completes folder copy.
2287 /// \~english @param[in] hNPMsgQ
2288 ///        HANDLE - Handle to message queue of Notification service.
2289 /// \~english @param[in] pPublisherName
2290 ///        PCSTR - Name of publisher message queue.
2291 /// \~english @param[in] pDstFolderPath
2292 ///        PCSTR - Complete folder path to which the folder should be copied from persistent area
2293 /// \~english @param[in] pTag
2294 ///        PCSTR - Tag associated with the folder that needs to be copied to pDstFolderPath
2295 /// \~english @param[in] hUser
2296 ///        HANDLE - Name of new Personality
2297 /// \~english @retval EFrameworkunifiedStatus indicates success or error
2298 /// \~english @retval Success(eFrameworkunifiedStatusOK)
2299 /// \~english @retval Error(anything else)
2300 /// \~english @par
2301 ///        EFrameworkunifiedStatus Enum
2302 /// \~english @code
2303 ///           typedef enum eFrameworkunifiedStatus {
2304 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
2305 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
2306 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
2307 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
2308 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
2309 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
2310 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
2311 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
2312 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
2313 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
2314 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
2315 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
2316 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
2317 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
2318 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
2319 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
2320 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
2321 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
2322 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
2323 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
2324 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
2325 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
2326 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
2327 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
2328 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
2329 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
2330 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
2331 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
2332 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
2333 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
2334 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
2335 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
2336 ///             eFrameworkunifiedStatusNullPointer       = 22,
2337 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
2338 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
2339 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
2340 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
2341 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
2342 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
2343 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
2344 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
2345 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
2346 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
2347 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
2348 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
2349 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
2350 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
2351 ///            @endcode
2352 /// \~english @par Preconditons
2353 ///       none
2354 /// \~english @par Change of internal status
2355 ///       - The internal state is not changed.
2356 /// \~english @par Conditions of processing failure
2357 ///       - Function pointer specified by the argument is NULL.
2358 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
2359 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
2360 ///       - It is an incorrect value(pDstFolderPath) or pDstFolderPath is NULL.
2361 ///       - It is an incorrect value(pTag) or pTag is NULL.
2362 ///       - It is an incorrect value(hUser) or hUser is NULL.
2363 /// \~english @par Detail
2364 ///       Invoke callback function to send message to Notification Service to copy folder from persistent memory to
2365 ///       specified path.\n
2366 ///       If callback function is null and expectedCalls is '0', using default function 'NPLoadPersistentFolder' to send
2367 ///       message to Notification Service to copy folder from persistent memory to specified path.
2368 /// \~english @par Classification
2369 ///       Public
2370 /// \~english @par Type
2371 ///       Sync only
2372 /// \~english @see
2373 ///       FrameworkunifiedNPLoadPersistentFolder
2374 EFrameworkunifiedStatus NPLoadPersistentFolder(HANDLE hNPMsgQ, PCSTR pPublisherName, PCSTR pDstFolderPath,
2375                                   PCSTR pTag, HANDLE hUser);
2376
2377 //////////////////////////////////////////////////////////////////////////////////////////////
2378 /// \ingroup NPReleasePersistentFolder
2379 /// \~english @par Brief
2380 ///        API to send message to Notification Service to notify that the folder can be persisted.
2381 /// \~english @param[in] hNPMsgQ
2382 ///        HANDLE - Handle to the Framework
2383 /// \~english @param[in] pPublisherName
2384 ///        PCSTR - Name of publisher message queue.
2385 /// \~english @param[in] eFrameworkunifiedReleaseType
2386 ///        EFrameworkunifiedReleaseType - eFrameworkunifiedNotOnRelease     :not on release
2387 ///                          eFrameworkunifiedPersistOnShutdown:persist on shutdown
2388 ///                          eFrameworkunifiedPersistInstantly :persist instantly
2389 /// \~english @param[in] pTag
2390 ///        PCSTR - Tag associated with the folder released
2391 /// \~english @param[in] pFullFolderPath
2392 ///        PCSTR - Full path name of the folder to be persisted
2393 /// \~english @param[in] hUser
2394 ///        HANDLE - Name of new Personality
2395 /// \~english @retval EFrameworkunifiedStatus indicates success or error
2396 /// \~english @retval Success(eFrameworkunifiedStatusOK)
2397 /// \~english @retval Error(anything else)
2398 /// \~english @par
2399 ///        EFrameworkunifiedStatus Enum
2400 /// \~english @code
2401 ///           typedef enum eFrameworkunifiedStatus {
2402 ///             eFrameworkunifiedStatusEmptyMediaList    = -10, ///< Empty media list
2403 ///             eFrameworkunifiedStatusSessionLimitMaxedOut  = -9,  ///< Maximum session limit reached
2404 ///             eFrameworkunifiedStatusDbRecNotFound       = -8, ///< Database record not found
2405 ///             eFrameworkunifiedStatusDbResultError       = -7, ///< Database result error
2406 ///             eFrameworkunifiedStatusDbExecuteFail       = -6, ///< Database execute fail
2407 ///             eFrameworkunifiedStatusSemCloseFail        = -5, ///< Semaphore close failed
2408 ///             eFrameworkunifiedStatusSemUnlockFail       = -4, ///< Semaphore unlock failed
2409 ///             eFrameworkunifiedStatusSemLockFail         = -3, ///< Semaphore lock failed
2410 ///             eFrameworkunifiedStatusFail                = -2, ///< Failed
2411 ///             eFrameworkunifiedStatusErrOther            = -1, ///< Unknown error
2412 ///             eFrameworkunifiedStatusOK                  = 0,  ///< Success / Pass / OK
2413 ///             eFrameworkunifiedStatusInvldBuf            = 1,  ///< Invalid buffer
2414 ///             eFrameworkunifiedStatusInvldHandle         = 2,  ///< Invalid handle
2415 ///             eFrameworkunifiedStatusInvldHndlType       = 3,  ///< Invalid handle type
2416 ///             eFrameworkunifiedStatusInvldQName        = 4,  ///< Invalid messasge queue name
2417 ///             eFrameworkunifiedStatusMsgQFull            = 5,  ///< Message queue full
2418 ///             eFrameworkunifiedStatusInvldNotification   = 6,///< The Notification event not present
2419 ///             eFrameworkunifiedStatusInvldParam        = 7,  ///< Invalid parameter
2420 ///             eFrameworkunifiedStatusInvldBufSize        = 8,  ///< Buf size too small
2421 ///             eFrameworkunifiedStatusInvldID             = 9,  ///< Unrecognized ID
2422 ///             eFrameworkunifiedStatusCannotRelease       = 10, ///< Cannot release resource
2423 ///             eFrameworkunifiedStatusBadConnection       = 11, ///< Could not locate resource
2424 ///             eFrameworkunifiedStatusExit            = 12,  ///< Normal application termination
2425 ///             eFrameworkunifiedStatusNotImplemented      = 13,  ///< incomplete feature
2426 ///             eFrameworkunifiedStatusThreadBusy          = 14,  ///< Joined thread is already being joined
2427 ///             eFrameworkunifiedStatusThreadSelfJoin      = 15,  ///< Thread is joining itself
2428 ///             eFrameworkunifiedStatusThreadInvalidVal    = 16, ///< Invalid value passed
2429 ///             eFrameworkunifiedStatusThreadNotExist      = 17,  ///< The thread does not exist
2430 ///             eFrameworkunifiedStatusFault               = 18,  ///< A fault occurred while attempting to make call
2431 ///             eFrameworkunifiedStatusServNotFound        = 19,  ///< Service not present in serv dir
2432 ///             eFrameworkunifiedStatusServerInUse         = 20,  ///< Service already processing 1 client request
2433 ///             eFrameworkunifiedStatusDbIndexing        = 21,  ///< Database Indexing in progress
2434 ///             eFrameworkunifiedStatusNullPointer       = 22,
2435 ///             eFrameworkunifiedStatusMsgNotProcessed     = 23,
2436 ///             eFrameworkunifiedStatusFileLoadSuccess     = 24, ///< File Load Success
2437 ///             eFrameworkunifiedStatusFileLoadError       = 25, ///< File Load Error
2438 ///             eFrameworkunifiedStatusAccessError         = 26, ///< Error when accessing resource
2439 ///             eFrameworkunifiedStatusDuplicate           = 27, ///< Duplicate entry
2440 ///             eFrameworkunifiedStatusMsgQEmpty             = 28, ///< Message queue empty
2441 ///             eFrameworkunifiedStatusThreadAlreadyRunning  = 29,
2442 ///             eFrameworkunifiedStatusErrNoEBADF            = 30,  ///< Bad file descriptor
2443 ///             eFrameworkunifiedStatusErrNoEAGAIN           = 31,  ///< Resource unavailable, try again
2444 ///             eFrameworkunifiedStatusErrNoEINTR            = 32,  ///< Interrupted system call
2445 ///             eFrameworkunifiedStatusSessionErr      = 33,  ///< Error in session handling
2446 ///             eFrameworkunifiedStatusDBCorrupt       = 34,  ///< Database corrupt
2447 ///             eFrameworkunifiedStatusDBFileNotFound    = 35  ///< Database file not found
2448 ///           } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus;
2449 ///            @endcode
2450 /// \~english @par Preconditons
2451 ///       none
2452 /// \~english @par Change of internal status
2453 ///       - The internal state is not changed.
2454 /// \~english @par Conditions of processing failure
2455 ///       - Function pointer specified by the argument is NULL.
2456 ///       - It is an incorrect value(hNPMsgQ) or hNPMsgQ is NULL.
2457 ///       - It is an incorrect value(pPublisherName) or pPublisherName is NULL.
2458 ///       - It is an incorrect value(pDstFolderPath) or pDstFolderPath is NULL.
2459 ///       - It is an incorrect value(pTag) or pTag is NULL.
2460 ///       - It is an incorrect value(hUser) or hUser is NULL.
2461 /// \~english @par Detail
2462 ///       Invoke callback function to send message to Notification Service to notify that the folder can be persisted.\n
2463 ///       If callback function is null and expectedCalls is '0', using default function 'NPReleasePersistentFolder' to
2464 ///       send message to Notification Service to notify that the folder can be persisted.
2465 /// \~english @par Classification
2466 ///       Public
2467 /// \~english @par Type
2468 ///       Sync only
2469 /// \~english @see
2470 ///       FrameworkunifiedNPReleasePersistentFolder
2471 EFrameworkunifiedStatus NPReleasePersistentFolder(HANDLE hNPMsgQ, PCSTR pPublisherName, EFrameworkunifiedReleaseType eFrameworkunifiedReleaseType, PCSTR pTag,
2472                                      PCSTR pFullFolderPath, HANDLE hUser);
2473
2474 #ifdef __cplusplus
2475 }
2476 #endif
2477
2478 #endif /* __NATIVESERVICES_NP_SERVICE_IF_H__ */  // NOLINT  (build/header_guard)
2479 /** @}*/  // end of notification_persistent_service
2480 /** @}*/  // end of native_service
2481 /** @}*/  // end of BaseSystem
2482 // EOF