upload tizen1.0 source
[framework/telephony/libslp-tapi.git] / include / tapi / ITapiProductivity.h
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 /**
22  * @internal
23  * @ingroup             TelephonyAPI
24  * @addtogroup  PRODUCTIVITY_TAPI       PRODUCTIVITY_TAPI
25  * @{
26  *
27  * @file ITapiProductivity.h
28
29  @brief This file serves as a "C" header file defines functions for Tapi productivity Services.\n
30  It contains a sample set of function prototypes that would be required by applications.
31  */
32
33 #ifndef _ITAPI_SERVICE_MODE_H_
34 #define _ITAPI_SERVICE_MODE_H_
35
36 #include <TelDefines.h>
37 #include <TelErr.h>
38 #include <TelUtility.h>
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 #define TAPI_MAX_SERVICE_LINES          16      /** service information display max length */
45 #define TAPI_MAX_LCD_WIDTH                      31      /** LCD max width for display */
46
47 #define MAX_FACTORY_OMISSION_AVOIDANCE_DATA_CNT 90
48 #define TAPI_FACTORY_WIFI_DATA_PDA_MAX  13      /** wifi data pda max length */
49 #define TAPI_FACTORY_WIFI_DATA_PC_MAX   16      /** wifi data pc max length */
50 #define TAPI_FACTORY_BT_MACADDRESS_MAX  6       /** BT mac address max length */
51 #define TAPI_FACTORY_PIN_CODE_MAX               4       /** pin code max length */
52 #define TAPI_FACTORY_LINE_SMS_ADDR_MAX  20      /** line sms address max length */
53 #define TAPI_FACTORY_LINE_SMS_DATA_MAX  256     /** line sms data max length */
54 #define TAPI_FACTORY_AXIS_MAX                   4       /** axis max length */
55 #define TAPI_FACTORY_MEM_TOTAL_SIZE_MAX 8       /** max of memory total size */
56 #define TAPI_FACTORY_MEM_USED_SIZE_MAX  8       /** max of used memory size */
57 #define TAPI_FACTORY_MEM_FREE_SIZE_MAX  8       /** max of free memory size */
58 #define TAPI_FACTORY_TOUCH_STATUS_MAX   4       /** max if touch status */
59
60 #define SMS_NUM_SIZE    64      /**< sms number max size for factory dft*/
61 #define SMS_DATA_SIZE   255     /**< sms data max size for factory dft*/
62
63 /**
64  * @enum tapi_service_mode_t
65  * This enumeration defines the service mode type for test mode.
66  */
67 typedef enum {
68         TAPI_SVC_MODE_TEST_MANUAL = 0x01, /**< 0x01 : Manual test mode */
69         TAPI_SVC_MODE_NAM_EDIT, /**< 0x02 : Full NAM edit mode */
70         TAPI_SVC_MODE_MONITOR, /**<0x03 : Monitor screen mode */
71         TAPI_SVC_MODE_TEST_AUTO, /**< 0x04 : Auto test mode */
72         TAPI_SVC_MODE_NAM_BASIC_EDIT, /**< 0x05 : Basic NAM edit mode */
73         TAPI_SVC_MODE_PHONE_TEST, /**< 0x06 : Phone test mode ( just for the debugging ) */
74         TAPI_SVC_MODE_OPERATOR_SPECIFIC_TEST /**< 0x07: Specific test mode required by operator*/
75 } tapi_service_mode_t;
76
77 /**
78  * @enum tapi_test_mode_sub_t
79  * This enumeration defines the test mode sub type.
80  */
81 typedef enum {
82         TAPI_TESTMODE_ENTER     =       0x1000,                         /**< 0x1000 : Testmode enter */
83         TAPI_TESTMODE_SW_VERSION_ENTER,                         /**< 0x1001 : SW_version enter */
84         TAPI_TESTMODE_FTA_SW_VERSION_ENTER,                     /**< 0x1002 : FTA SW version enter */
85         TAPI_TESTMODE_FTA_HW_VERSION_ENTER,                     /**< 0x1003 : FTA HW version enter */
86         TAPI_TESTMODE_ALL_VERSION_ENTER,                        /**< 0x1004 : All version enter  */
87         TAPI_TESTMODE_BATTERY_INFO_ENTER,                       /**< 0x1005 : Battery Information enter  */
88         TAPI_TESTMODE_CIPHERING_PROTECTION_ENTER,       /**< 0x1006 : Ciphering protection enter */
89         TAPI_TESTMODE_INTEGRITY_PROTECTION_ENTER,       /**< 0x1007 : Integrity protection enter */
90         TAPI_TESTMODE_IMEI_READ_ENTER,                          /**< 0x1008 : IMEI enter */
91         TAPI_TESTMODE_BLUETOOTH_TEST_ENTER,                     /**< 0x1009 : Bluetooth test enter */
92         TAPI_TESTMODE_VIBRATOR_TEST_ENTER,                      /**< 0x100A : Vibrator test enter */
93         TAPI_TESTMODE_MELODY_TEST_ENTER,                        /**< 0x100B : Melody test enter */
94         TAPI_TESTMODE_MP3_TEST_ENTER,                           /**< 0x100C : MP3 test enter */
95         TAPI_TESTMODE_FACTORY_RESET_ENTER,                      /**< 0x100D : Factory test enter */
96         TAPI_TESTMODE_FACTORY_PRECONFIG_ENTER,          /**< 0x100E : Factory preconfig enter */
97         TAPI_TESTMODE_TFS4_EXPLORE_ENTER,                       /**< 0x100F : TFS4 explore enter */
98         TAPI_TESTMODE_RTC_TIME_DISPLAY_ENTER,           /**< 0x1010 : RTC time display enter */
99         TAPI_TESTMODE_RSC_FILE_VERSION_ENTER,           /**< 0x1011 : RSC file version enter */
100         TAPI_TESTMODE_USB_DRIVER_ENTER,                         /**< 0x1012 : USB driver enter */
101         TAPI_TESTMODE_USB_UART_DIAG_CONTROL_ENTER,      /**< 0x1013 : USB UART diag control enter*/
102         TAPI_TESTMODE_RRC_VERSION_ENTER,                        /**< 0x1014 : RRC Version enter */
103         TAPI_TESTMODE_GPSONE_SS_TEST_ENTER,     /**< 0x1015 : GPSone testmode enter */
104         TAPI_TESTMODE_BAND_SEL_ENTER,                           /**< 0x1016 : Band selection mode enter */
105         TAPI_TESTMODE_GCF_TESTMODE_ENTER,                       /**< 0x1017 : GCF Test mode enter */
106         TAPI_TESTMODE_GSM_FACTORY_AUDIO_LB_ENTER,       /**< 0x1018 : GSM Factory Audio Loopback enter */
107         TAPI_TESTMODE_FACTORY_VF_TEST_ENTER,            /**< 0x1019 : VF ADC Test mode enter */
108         TAPI_TESTMODE_TOTAL_CALL_TIME_INFO_ENTER,       /**< 0x101A : Display Total Call time info enter */
109         TAPI_TESTMODE_SELLOUT_SMS_ENABLE_ENTER,         /**< 0x101B : Sell_Out_SMS_Enable_enter */
110         TAPI_TESTMODE_SELLOUT_SMS_DISABLE_ENTER,        /**< 0x101C : Sell_Out_SMS_Disable_enter */
111         TAPI_TESTMODE_SELLOUT_SMS_TEST_MODE_ON,         /**< 0x101D : Sell_Out_SMS_Test_Mode_ON */
112         TAPI_TESTMODE_SELLOUT_SMS_PRODUCT_MODE_ON,      /**< 0x101E : Sell_Out_SMS_Product_Mode_ON */
113         TAPI_TESTMODE_GET_SELLOUT_SMS_INFO_ENTER,       /**< 0x101F Get Sellout SMS info enter  */
114         TAPI_TESTMODE_WCDMA_SET_CHANNEL_ENTER,          /**< 0x1020 WCDMA Set Channel Enter */
115         TAPI_TESTMODE_GPRS_ATTACH_MODEM_ENTER,          /**< 0x1021 GPRS Attach mode Enter */
116
117         /*      In case of  SVC_MODE = SM_NAM  in CDMA  */
118         TAPI_SVC_MODE_NAM_CDMA_EDIT     =       0x2001,         /**< 0x2001 : NAM Full Edit Mode */
119         TAPI_SVC_MODE_NAM_CDMA_BASIC_EDIT,                      /**< 0x2002 : NAM Basic Edit Mode */
120         TAPI_SVC_MODE_NAM_CDMA_ADVANCED_EDIT,           /**< 0x2003 : NAM Advanced Edit Mode */
121
122         TAPI_TESTMODE_SUB_MODE_MAX
123 } tapi_test_mode_sub_t;
124
125 /**
126  * @enum tapi_service_mode_reset_t
127  * This enumeration defines the reset mode type for test mode.
128  */
129 typedef enum {
130         TAPI_SVC_MODE_END_NO_ACTION = 0x00, /**< 0x00 : RESET_NO_ACTION */
131         TAPI_SVC_MODE_END_PHONE_ONLY_RESET, /**< 0x01 : RESET_PHONE_ONLY_REQUIRED */
132         TAPI_SVC_MODE_END_BOTH_RESET /**< 0x02 : RESET_BOTH_REQUIRED */
133 } tapi_service_mode_reset_t;
134
135 /**
136  * @enum tapi_service_mode_debug_cp_dump_t
137  * This enumeration defines the cp dump type.
138  */
139 typedef enum {
140         TAPI_SVC_DBG_CP_DUMP_TARGET_ALL = 0x00, /**< cp dump option - all */
141         TAPI_SVC_DBG_CP_DUMP_TARGET_MSG, /**< cp dump option - message */
142         TAPI_SVC_DBG_CP_DUMP_TARGET_LOG, /**< cp dump option - log */
143         TAPI_SVC_DBG_CP_DUMP_TARGET_LOG2, /**< cp dump option - log2 */
144         TAPI_SVC_DBG_CP_DUMP_TARGET_RAM_DUMP, /**< cp dump option - ram dump */
145         TAPI_SVC_DBG_CP_DUMP_TARGET_MAX /**< RFU */
146 } tapi_service_mode_debug_cp_dump_t;
147
148 /**
149  * @enum tapi_service_mode_debug_ap_dump_t
150  * This enumeration defines the ap dump type.
151  */
152 typedef enum {
153         TAPI_SVC_DBG_AP_DUMP_TARGET_RIL = 0x01, /**< ap dump option - ril */
154         TAPI_SVC_DBG_AP_DUMP_TARGET_SYSTEM, /**< ap dump option - system */
155         TAPI_SVC_DBG_AP_DUMP_TARGET_MAX /**< ap dump -RFU */
156 } tapi_service_mode_debug_ap_dump_t;
157
158 /**
159  * @enum tapi_device_id_t
160  * This enumeration defines the device information for test mode.
161  */
162 typedef enum {
163         TAPI_DEVICE_VIBRATION = 0x01, /**< vibration */
164         TAPI_DEVICE_BACKLIGHT, /**< back light */
165         TAPI_DEVICE_FRONTLCD, /**< front lcd */
166         TAPI_DEVICE_KEYLED, /**< key led */
167         TAPI_DEVICE_ALERTLED /**< alerted */
168 } tapi_device_id_t;
169
170 /**
171  * @enum tapi_device_status_t
172  * This enumeration defines the device status.
173  */
174 typedef enum {
175         TAPI_DEVICE_OFF = 0x00, /**< off */
176         TAPI_DEVICE_ON, /**< on */
177         TAPI_DEVICE_AUTO /**< auto */
178 } tapi_device_status_t;
179
180 /**
181  * @enum tapi_keypad_t
182  * This enumeration defines the keypad requirement.
183  */
184 typedef enum {
185         KEYPAD_NOT_NEEDED = 0x00, /**< keypad required */
186         KEYPAD_NEEDED /**< keypad not required */
187 } tapi_keypad_t;
188
189 /**
190  * @enum tapi_svcmode_event_t
191  * This enumeration defines the service mode event type for test mode.
192  */
193 typedef enum {
194         TAPI_SVCMODE_EVENT_SVCMODE_START = 0, /**< start */
195         TAPI_SVCMODE_EVENT_SVCMODE_END, /**< end */
196         TAPI_SVCMODE_EVENT_SVCMODE_CHANGE, /** changed */
197         TAPI_SVCMODE_EVENT_SVCMODE_SCREEN_CFG, /**< screen config */
198         TAPI_SVCMODE_EVENT_SVCMODE_DISP_SCREEN, /**< display screen */
199         TAPI_SVCMODE_EVENT_SVCMODE_DEVICE_TEST /**< device test */
200 } tapi_svcmode_event_t;
201
202 /**
203  * @enum TelFactoryDftSmsOption_t
204  * This enumeration defines the service mode type for test mode.
205  */
206 typedef enum {
207         TAPI_FACTORY_DFT_SMS_INBOX, /**< sms inbox */
208         TAPI_FACTORY_DFT_SMS_DRAFTS, /**< sms draft */
209         TAPI_FACTORY_DFT_SMS_OUTBOX, /**< sms outbox */
210         TAPI_FACTORY_DFT_SMS_SENTBOX /**< sent box */
211 } TelFactoryDftSmsOption_t;
212
213 typedef enum {
214         TAPI_FACTORY_OMISSION_AVOIDANCE_ITEM_WRITE = 0x01,
215         TAPI_FACTORY_OMISSION_AVOIDANCE_ITEM_WRITE_FULL,
216         TAPI_FACTORY_OMISSION_AVOIDANCE_LOG_ERASE_FULL,
217         TAPI_FACTORY_OMISSION_AVOIDANCE_FAILDATA_WRITE,
218         TAPI_FACTORY_OMISSION_AVOIDANCE_FAILDATA_WRITE_FULL,
219 } tapi_factory_omission_avoidance_write_cmd_t;
220
221 typedef enum {
222         TAPI_FACTORY_OMISSION_AVOIDANCE_ITEM_READ = 0x01,
223         TAPI_FACTORY_OMISSION_AVOIDANCE_ITEM_READ_FULL,
224         TAPI_FACTORY_OMISSION_AVOIDANCE_LOG_READ_FULL,
225         TAPI_FACTORY_OMISSION_AVOIDANCE_FAILDATA_READ,
226         TAPI_FACTORY_OMISSION_AVOIDANCE_FAILDATA_READ_FULL,
227 } tapi_factory_omission_avoidance_read_cmd_t;
228
229 /**
230  * This structure contains service mode end information.
231  */
232 typedef struct {
233         tapi_service_mode_t service_mode; /**< service mode */
234         tapi_service_mode_reset_t reset; /**< service reset mode */
235 } tapi_service_mode_end_t;
236
237 /**
238  * This structure contains screen configuration information.
239  */
240 typedef struct {
241         int line_number; /**< line number */
242         tapi_keypad_t keypad; /**< keypad requirement */
243 } tapi_screen_config_t;
244
245 /**
246  * This structure contains string information to display.
247  */
248 typedef struct {
249         char line; /**< line to display */
250         char string[TAPI_MAX_LCD_WIDTH + 1 ]; /**< string information */
251         int     reverse; /**< reverse mode */
252 } tapi_service_string_info_t;
253
254 /**
255  * This structure contains display information.
256  */
257 typedef struct
258 {
259         char num_of_lines; /**< number of line to display */
260         tapi_service_string_info_t display[ TAPI_MAX_SERVICE_LINES ]; /**< string information */
261 } tapi_service_display_info_t;
262
263 /**
264  * This structure contains device information for test mode.
265  */
266 typedef struct
267 {
268         tapi_device_id_t device_id; /**< device id */
269         tapi_device_status_t device_status; /**< device status */
270 } tapi_device_info_t;
271
272 /**
273  * This structure contains factory dft sms information.
274  */
275 typedef struct {
276         TelFactoryDftSmsOption_t option; /**< factory dft sms option */
277         char number[SMS_NUM_SIZE]; /**< number */
278         char data[SMS_DATA_SIZE]; /**< data */
279  }TelFactoryDftSmsInfo_t;
280
281 typedef union {
282         tapi_factory_omission_avoidance_write_cmd_t write_cmd;
283         tapi_factory_omission_avoidance_read_cmd_t read_cmd;
284 } tapi_factory_omission_avoidance_cmd_t;
285
286 typedef struct {
287         unsigned char test_id;
288         unsigned char test_result;
289 } tapi_factory_omission_avoidance_data_t;
290
291 typedef struct {
292         tapi_factory_omission_avoidance_cmd_t cmd;
293         unsigned int data_cnt;
294         tapi_factory_omission_avoidance_data_t data[MAX_FACTORY_OMISSION_AVOIDANCE_DATA_CNT];
295 } tapi_factory_omission_avoidance_info_t;
296
297 /**
298  *
299  * @brief  This function is invoked to start service mode.
300  *
301  * @par Sync (or) Async:
302  *  This is a Asynchronous API.
303  *
304  * @par Important Notes:
305  * - None.
306  *
307  * @warning
308  * - None.
309  *
310  * @param  [in]  svc_mode, test_sub
311  * -  svc_mode, test_sub. refer #tapi_service_mode_t, #tapi_test_mode_sub_t
312  *
313  * @par Async Response Message:
314  * - NA
315  *
316  * @pre
317  * - None.
318  *
319  * @post
320  * - None.
321  *
322  * @return Return Type (int) \n
323  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
324  * - Negative integer : it provides an error code (Refer #TapiResult_t)
325  *
326  * @par Prospective Clients:
327  *  External Apps.
328  *
329  */
330 TapiResult_t tel_start_svcmode(tapi_service_mode_t svc_mode, tapi_test_mode_sub_t test_sub);
331
332 /**
333  *
334  * @brief  This function is invoked to end service mode.
335  *
336  * @par Sync (or) Async:
337  *  This is a Asynchronous API.
338  *
339  * @par Important Notes:
340  * - None.
341  *
342  * @warning
343  * - None.
344  *
345  * @param  [in]  svc_mode
346  * -  svc_mode. refer #tapi_service_mode_t
347  *
348  * @par Async Response Message:
349  * - NA
350  *
351  * @pre
352  * - None.
353  *
354  * @post
355  * - None.
356  *
357  * @return Return Type (int) \n
358  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
359  * - Negative integer : it provides an error code (Refer #TapiResult_t)
360  *
361  * @par Prospective Clients:
362  *  External Apps.
363  *
364  */
365 int tel_end_svcmode(tapi_service_mode_t svc_mode);
366
367 /**
368  *
369  * @brief  This function is invoked to process key code in service mode.
370  *
371  * @par Sync (or) Async:
372  *  This is a Asynchronous API.
373  *
374  * @par Important Notes:
375  * - None.
376  *
377  * @warning
378  * - None.
379  *
380  * @param  [in]  key_code
381  * -  key_code.
382  *
383  * @par Async Response Message:
384  * - NA
385  *
386  * @pre
387  * - None.
388  *
389  * @post
390  * - None.
391  *
392  * @return Return Type (int) \n
393  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
394  * - Negative integer : it provides an error code (Refer #TapiResult_t)
395  *
396  * @par Prospective Clients:
397  *  External Apps.
398  *
399  */
400 int tel_send_svcmode_keycode(char key_code);
401
402 /**
403  *
404  * @brief  This function is invoked to dump cp debug.
405  *
406  * @par Sync (or) Async:
407  *  This is a Asynchronous API.
408  *
409  * @par Important Notes:
410  * - None.
411  *
412  * @warning
413  * - None.
414  *
415  * @param  [in]  type
416  * -  cp dump type. refer #tapi_service_mode_debug_cp_dump_t
417  *
418  * @par Async Response Message:
419  * - NA
420  *
421  * @pre
422  * - None.
423  *
424  * @post
425  * - None.
426  *
427  * @return Return Type (int) \n
428  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
429  * - Negative integer : it provides an error code (Refer #TapiResult_t)
430  *
431  * @par Prospective Clients:
432  *  External Apps.
433  *
434  */
435 int tel_request_svcmode_dump(tapi_service_mode_debug_cp_dump_t type);
436
437 /**
438  * @brief  This function is used to indicate start factory process to modem,
439  * Telephont will send Get operation to modem to get the items from Modem.
440  *
441  * @par Sync (or) Async:
442  * This is a Asynchronous function.
443  *
444  * @par Important Notes:
445  * - None
446  *
447  * @warning
448  * - None.
449  *
450  * @param void
451  *
452  * @par Async Response Message:
453  * - None
454  *
455  * @pre
456  *  - None.
457  *
458  * @post
459  *  - None.
460  *
461  * @return Return Type (int) \n
462  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
463  * - Negative integer : it provides an error code (Refer #TapiResult_t)
464  *
465  * @par Prospective Clients:
466  * External Apps.(Current, Launcher is)
467  *
468  */
469 int tel_start_imei_process(void);
470
471 /**
472  * @brief  This function is used to Indicate result for comparison item between PDA and Modem.
473  *
474  * @par Sync (or) Async:
475  * This is a Asynchronous function.
476  *
477  * @par Important Notes:
478  * - None
479  *
480  * @warning
481  * - None.
482  *
483  * @param nItemID, bResult
484  * - Index of ItemID and Result after comparison.
485  *
486  * @par Async Response Message:
487  * - None
488  *
489  * @pre
490  *  - None.
491  *
492  * @post
493  *  - None.
494  *
495  * @return Return Type (int) \n
496  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
497  * - Negative integer : it provides an error code (Refer #TapiResult_t)
498  *
499  * @par Prospective Clients:
500  * External Apps.
501  *
502  */
503 int tel_compare_imei_item(unsigned char nItemID, unsigned char bResult);
504
505 /**
506  * @brief  This function is used in factory process omission avoidance.
507  *
508  * @par Sync (or) Async:
509  * This is a Asynchronous function.
510  *
511  * @par Important Notes:
512  * - None
513  *
514  * @warning
515  * - None.
516  *
517  * @param
518  * - cmd : cmd type
519  *
520  * @par Async Response Message:
521  * - None
522  *
523  * @pre
524  *  - None.
525  *
526  * @post
527  *  - None.
528  *
529  * @return Return Type (int) \n
530  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
531  * - Negative integer : it provides an error code (Refer #TapiResult_t)
532  *
533  * @par Prospective Clients:
534  * External Apps.
535  *
536  */
537 int tel_get_factory_omission_avoidance(tapi_factory_omission_avoidance_read_cmd_t cmd);
538
539 /**
540  * @brief  This function is used in factory process omission avoidance.
541  *
542  * @par Sync (or) Async:
543  * This is a Asynchronous function.
544  *
545  * @par Important Notes:
546  * - None
547  *
548  * @warning
549  * - None.
550  *
551  * @param
552  * - info : comman type, test id, test result
553  *
554  * @par Async Response Message:
555  * - None
556  *
557  * @pre
558  *  - None.
559  *
560  * @post
561  *  - None.
562  *
563  * @return Return Type (int) \n
564  * - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
565  * - Negative integer : it provides an error code (Refer #TapiResult_t)
566  *
567  * @par Prospective Clients:
568  * External Apps.
569  *
570  */
571 int tel_set_factory_omission_avoidance(tapi_factory_omission_avoidance_info_t *info);
572
573 #ifdef __cplusplus
574 }
575 #endif
576
577 #endif /*_ITAPI_SERVICE_MODE_H_*/
578
579 /**
580  * @}
581  */