Main Page | Modules | Namespace List | Class Hierarchy | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals

global_settings.h

Go to the documentation of this file.
00001 /********************************************************************
00002 
00003 Copyright 2006, ACCESS Systems Americas, Inc. All rights reserved.
00004 
00005 The contents of this file are subject to the Mozilla Public License Version
00006 1.1 (the "License"); you may not use this file except in compliance with
00007 the License. You may obtain a copy of the License at
00008 http://www.mozilla.org/MPL/
00009 
00010 Software distributed under the License is distributed on an "AS IS" basis,
00011 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012 for the specific language governing rights and limitations under the
00013 License.
00014 
00015 The Original Code is the entire contents of this file.
00016 
00017 The Initial Developer of the Original Code is ACCESS Systems Americas, Inc.
00018 
00019 Portions created by ACCESS Systems Americas, Inc. are Copyright © 2006. All
00020 Rights Reserved.
00021 
00022 Contributor(s): none.
00023 
00024 ********************************************************************/
00032 #ifndef ALP_GLOBAL_SETTINGS_H_
00033 #define ALP_GLOBAL_SETTINGS_H_ 1
00034 
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038 
00045 #include <glib.h>
00046 
00047 #include <hiker/config.h>
00048 #include <hiker/sysclass.h>
00049 #include <hiker/types.h>
00050 #include <sys/types.h>          /* for mode_t */
00051 
00052 #define ALP_GLOBAL_SETTINGS_RPC
00053 /* functions labelled with ALP_GLOBAL_SETTINGS_RPC invokes remote operations to the server */
00054 
00055 #define ALP_GLOBAL_SETTINGS_VERSION 1
00056 
00057 #define GLOBAL_SETTINGS_APP_ID  "com.access.sys.global_settings"
00058 #define GLOBAL_SETTINGS_CHANNEL_NAME  "global settings"
00059 #define GLOBAL_SETTINGS_TIMEOUT 500000
00060 
00061 
00062 /* for key change notification via the Notification Manager */
00063 
00064 #define ALP_NOTIFY_EVENT_GLOBAL_SETTINGS_KEY_CHANGE  "/alp/globalsettings/keychange"
00065 
00066 /* status constants */
00067 
00068 #define ALP_STATUS_GLOBAL_SETTINGS_ERROR ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00010000)
00069 #define ALP_STATUS_GLOBAL_SETTINGS_KEY_NOT_FOUND ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00020000)
00070 #define ALP_STATUS_GLOBAL_SETTINGS_VALUE_NOT_FOUND ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00030000)
00071 #define ALP_STATUS_GLOBAL_SETTINGS_ENTRY_ITERATOR_AT_END ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00040000)
00072 #define ALP_STATUS_GLOBAL_SETTINGS_ENTRY_ITERATOR_INVALID ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00050000)
00073 #define ALP_STATUS_GLOBAL_SETTINGS_VALUE_NOT_DIR ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00060000)
00074 #define ALP_STATUS_GLOBAL_SETTINGS_INCORRECT_TYPE ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00070000)
00075 #define ALP_STATUS_GLOBAL_SETTINGS_ENTRY_INVALID ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00080000)
00076 #define ALP_STATUS_GLOBAL_SETTINGS_VALUE_INVALID ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x00090000)
00077 #define ALP_STATUS_GLOBAL_SETTINGS_ARGUMENT_INVALID ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x000a0000)
00078 #define ALP_STATUS_GLOBAL_SETTINGS_BUFFER_TOO_SMALL ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x000b0000)
00079 #define ALP_STATUS_GLOBAL_SETTINGS_PERMISSION_DENIED ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x000c0000)
00080 #define ALP_STATUS_GLOBAL_SETTINGS_KEY_EXISTS ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x000d0000)
00081 #define ALP_STATUS_GLOBAL_SETTINGS_VERSION_MISMATCH ((alp_status_t) ALP_CLASS_GLOBAL_SETTINGS | 0x000e0000)
00082 
00083 
00084 //
00085 //   Value types
00086 //
00087 
00091 typedef enum { 
00092     ALP_GLOBAL_SETTINGS_TYPE_INVALID = 0,
00093     ALP_GLOBAL_SETTINGS_TYPE_STRING,
00094     ALP_GLOBAL_SETTINGS_TYPE_INT,
00095     ALP_GLOBAL_SETTINGS_TYPE_FLOAT,
00096     ALP_GLOBAL_SETTINGS_TYPE_BOOL,
00097     ALP_GLOBAL_SETTINGS_TYPE_LIST,
00098     ALP_GLOBAL_SETTINGS_TYPE_DIR,
00099     ALP_GLOBAL_SETTINGS_TYPE_BLOB,
00100 }  AlpGlobalSettingsValueType; 
00101        
00102 
00103 // 
00104 // Opaque typedef's
00105 //
00106 
00110 typedef struct _AlpGlobalSettingsContext AlpGlobalSettingsContext;
00111 
00112 
00116 typedef struct _AlpGlobalSettingsValue AlpGlobalSettingsValue ; 
00117 struct _AlpGlobalSettingsValue 
00118 {
00119    AlpGlobalSettingsValueType type;
00120        int int_value;
00121        double float_value;
00122        gboolean bool_value;
00123        GList *list_value;
00124        GString *string_value;
00125        GByteArray blob_value;
00126   
00127 } ;
00128 
00129 #define   GLOBAL_SETTINGS_VALUE_INITIALIZER { ALP_GLOBAL_SETTINGS_TYPE_INVALID, 0, 0, 0, 0, 0, { 0, 0 } } 
00130 
00134 typedef struct _AlpGlobalSettingsEntry  AlpGlobalSettingsEntry ; 
00135 struct _AlpGlobalSettingsEntry
00136 {
00137    GString *key;
00138    AlpGlobalSettingsValue value; 
00139 } ;
00140 
00141 
00145 typedef struct _AlpGlobalSettingsEntryIterator  AlpGlobalSettingsEntryIterator  ; 
00146   
00147   
00148 
00154 AlpGlobalSettingsEntry*alp_global_settings_entry_alloc(void);
00155 
00162 void alp_global_settings_entry_free(AlpGlobalSettingsEntry *e);
00163 
00164 
00170 AlpGlobalSettingsValue *alp_global_settings_value_alloc(void);
00171 
00172 
00179 void alp_global_settings_value_free(AlpGlobalSettingsValue *e);
00180 
00181 
00182 
00189 void alp_global_settings_value_clean(AlpGlobalSettingsValue *e);
00190 
00191 
00192 
00199 void alp_global_settings_value_list_free(GList *l);
00200 
00209 alp_status_t 
00210 alp_global_settings_init(void);
00211 
00212 
00213 
00224 alp_status_t 
00225 alp_global_settings_open(AlpGlobalSettingsContext **context);
00226 
00235 alp_status_t 
00236 alp_global_settings_close(AlpGlobalSettingsContext *context);
00237 
00246 ALP_GLOBAL_SETTINGS_RPC
00247 alp_status_t 
00248 alp_global_settings_begin_transaction(AlpGlobalSettingsContext *context);
00249 
00259 ALP_GLOBAL_SETTINGS_RPC
00260 alp_status_t 
00261 alp_global_settings_complete_transaction(AlpGlobalSettingsContext *context);
00262 
00263 
00273 ALP_GLOBAL_SETTINGS_RPC
00274 alp_status_t 
00275 alp_global_settings_cancel_transaction(AlpGlobalSettingsContext *context);
00276 
00277 
00289 alp_status_t 
00290 alp_global_settings_set_cwd(AlpGlobalSettingsContext *context, const char *cwd);
00291 
00292 
00306 alp_status_t 
00307 alp_global_settings_get_cwd(AlpGlobalSettingsContext *context, char *buf, size_t buf_size);
00308 
00319 ALP_GLOBAL_SETTINGS_RPC
00320 alp_status_t 
00321 alp_global_settings_set_default_mode(AlpGlobalSettingsContext *context, mode_t mode);
00322 
00323 
00334 ALP_GLOBAL_SETTINGS_RPC
00335 alp_status_t 
00336 alp_global_settings_get_default_mode(AlpGlobalSettingsContext *context, mode_t *mode);
00337 
00338 
00351 ALP_GLOBAL_SETTINGS_RPC
00352 alp_status_t 
00353 alp_global_settings_set_mode(AlpGlobalSettingsContext *context, const char *key, mode_t mode);
00354 
00355 
00368 ALP_GLOBAL_SETTINGS_RPC
00369 alp_status_t 
00370 alp_global_settings_get_mode(AlpGlobalSettingsContext *context, const char *key, mode_t *mode);
00371 
00384 ALP_GLOBAL_SETTINGS_RPC
00385 alp_status_t 
00386 alp_global_settings_set_uid(AlpGlobalSettingsContext *context, const char *key, uid_t id);
00387 
00388 
00401 ALP_GLOBAL_SETTINGS_RPC
00402 alp_status_t 
00403 alp_global_settings_get_uid(AlpGlobalSettingsContext *context, const char *key, uid_t *id);
00404 
00405 
00418 ALP_GLOBAL_SETTINGS_RPC
00419 alp_status_t 
00420 alp_global_settings_set_gid(AlpGlobalSettingsContext *context, const char *key, gid_t id);
00421 
00422 
00435 ALP_GLOBAL_SETTINGS_RPC
00436 alp_status_t 
00437 alp_global_settings_get_gid(AlpGlobalSettingsContext *context, const char *key, gid_t *id);
00438 
00439 
00440 
00441 
00442 
00457 ALP_GLOBAL_SETTINGS_RPC
00458 alp_status_t 
00459 alp_global_settings_set( AlpGlobalSettingsContext *context, 
00460                      const char *key, 
00461                      const AlpGlobalSettingsValue *value);
00462 
00475 ALP_GLOBAL_SETTINGS_RPC
00476 alp_status_t 
00477 alp_global_settings_get( AlpGlobalSettingsContext *context, 
00478                      const char *key, 
00479                      AlpGlobalSettingsValue *value);
00480 
00481 
00494 ALP_GLOBAL_SETTINGS_RPC
00495 alp_status_t 
00496 alp_global_settings_delete( AlpGlobalSettingsContext *context, 
00497                            const char *key);  // revert to default if there is one
00498 
00499 
00512 ALP_GLOBAL_SETTINGS_RPC
00513 alp_status_t 
00514 alp_global_settings_delete_tree( AlpGlobalSettingsContext *context, 
00515                            const char *key);  
00516 
00517 
00530 ALP_GLOBAL_SETTINGS_RPC
00531 alp_status_t 
00532 alp_global_settings_delete_tree_keeping_defaults( AlpGlobalSettingsContext *context, 
00533                            const char *key);  
00534 
00535 
00536 
00549 ALP_GLOBAL_SETTINGS_RPC
00550 alp_status_t 
00551 alp_global_settings_get_type( AlpGlobalSettingsContext *context, 
00552                      const char *key, 
00553                      AlpGlobalSettingsValueType *type);
00554 
00555 
00568 ALP_GLOBAL_SETTINGS_RPC
00569 alp_status_t 
00570 alp_global_settings_get_value_size( AlpGlobalSettingsContext *context, 
00571                      const char *key, 
00572                      size_t *size);
00573 
00574 
00575 
00586 ALP_GLOBAL_SETTINGS_RPC
00587 alp_status_t 
00588 alp_global_settings_set_notification_on_off(AlpGlobalSettingsContext *context, int on_off);
00589 
00590 
00604 ALP_GLOBAL_SETTINGS_RPC
00605 alp_status_t 
00606 alp_global_settings_findkeys_start( AlpGlobalSettingsContext *context, 
00607                                  const char *dir_path,
00608                                  AlpGlobalSettingsEntryIterator **iterator);
00609 
00610 
00611 
00623 alp_status_t 
00624 alp_global_settings_findkeys_next(AlpGlobalSettingsEntryIterator *iterator);
00625 
00636 alp_status_t 
00637 alp_global_settings_findkeys_end(AlpGlobalSettingsEntryIterator *iterator);
00638 
00639 
00651 alp_status_t
00652 alp_global_settings_findkeys_get_key(AlpGlobalSettingsEntryIterator  *iterator, 
00653                                char *key, 
00654                                unsigned int key_size);
00655 
00656 
00669 alp_status_t
00670 alp_global_settings_entry_get_key_value(const AlpGlobalSettingsEntry *entry, 
00671                                char *key, 
00672                                        unsigned int key_size, 
00673                                        AlpGlobalSettingsValue *value);
00674 
00675 
00688 alp_status_t
00689 alp_global_settings_entry_set_key_value(AlpGlobalSettingsEntry *entry, 
00690                                const char *key, 
00691                                            const AlpGlobalSettingsValue *value);
00692 
00693 
00694 
00703 alp_status_t
00704 alp_global_settings_value_set_string(AlpGlobalSettingsValue *value, 
00705                              const char *string);
00706 
00707 
00708 
00717 alp_status_t
00718 alp_global_settings_value_set_int(AlpGlobalSettingsValue *value, 
00719                              int i);
00720 
00721 
00722 
00731 alp_status_t
00732 alp_global_settings_value_set_float(AlpGlobalSettingsValue *value, 
00733                              double f);
00734 
00735 
00736 
00745 alp_status_t
00746 alp_global_settings_value_set_bool(AlpGlobalSettingsValue *value, 
00747                              gboolean b);
00748 
00749 
00750 
00759 alp_status_t
00760 alp_global_settings_value_set_list(AlpGlobalSettingsValue *value, 
00761                              const GList *list);
00762 
00763 
00764 
00765 
00777 alp_status_t
00778 alp_global_settings_value_get_string(AlpGlobalSettingsValue *value, 
00779                              char *string, 
00780                                  unsigned int string_size);
00781 
00782 
00783 
00794 alp_status_t
00795 alp_global_settings_value_get_int(AlpGlobalSettingsValue *value, 
00796                              int *i);
00797 
00798 
00799 
00810 alp_status_t
00811 alp_global_settings_value_get_float(AlpGlobalSettingsValue *value, 
00812                              double *f);
00813 
00814 
00815 
00826 alp_status_t
00827 alp_global_settings_value_get_bool(AlpGlobalSettingsValue *value, 
00828                              gboolean *b);
00829 
00830 
00831 
00843 alp_status_t
00844 alp_global_settings_value_get_list(AlpGlobalSettingsValue *value, 
00845                              GList **list);
00846 
00847 
00848 
00864 alp_status_t
00865 alp_global_settings_get_key_string_value(AlpGlobalSettingsContext *context, 
00866                                    const char *key, 
00867                                    char *value, 
00868                                    unsigned int value_size);
00869                              
00870 
00882 alp_status_t
00883 alp_global_settings_set_key_string_value(AlpGlobalSettingsContext *context, 
00884                                    const char *key, 
00885                                    const char *value);
00886                              
00887 
00888 
00901 alp_status_t
00902 alp_global_settings_get_key_bool_value(AlpGlobalSettingsContext *context, 
00903                                    const char *key, 
00904                                    gboolean *value);
00905 
00917 alp_status_t
00918 alp_global_settings_set_key_bool_value(AlpGlobalSettingsContext *context, 
00919                                    const char *key, 
00920                                    gboolean value);
00921                              
00922 
00923 
00937 alp_status_t
00938 alp_global_settings_get_key_int_value(AlpGlobalSettingsContext *context, 
00939                                    const char *key, 
00940                                    int *value);
00941 
00953 alp_status_t
00954 alp_global_settings_set_key_int_value(AlpGlobalSettingsContext *context, 
00955                                    const char *key, 
00956                                    int value);
00957                              
00958 
00959 
00973 alp_status_t
00974 alp_global_settings_get_key_float_value(AlpGlobalSettingsContext *context, 
00975                                    const char *key, 
00976                                    double *value);
00977 
00978 
00979 
00990 alp_status_t
00991 alp_global_settings_set_key_float_value(AlpGlobalSettingsContext *context, 
00992                                    const char *key, 
00993                                    double value);
00994 
00995 
00996 
00997 
01014 alp_status_t
01015 alp_global_settings_get_key_blob_value(AlpGlobalSettingsContext *context, 
01016                                    const char *key, 
01017                                    char  *value,
01018                                    int buffer_size,
01019                                    int * value_size);
01020 
01032 alp_status_t
01033 alp_global_settings_set_key_blob_value(AlpGlobalSettingsContext *context, 
01034                                    const char *key, 
01035                                    const char *value,
01036                                    int value_size);
01037 
01038 
01051 alp_status_t
01052 alp_global_settings_set_key_directory(AlpGlobalSettingsContext *context, 
01053                                    const char *key);
01054 
01066 ALP_GLOBAL_SETTINGS_RPC
01067 alp_status_t
01068 alp_global_settings_import_from_file(AlpGlobalSettingsContext *context, 
01069                                    const char *file);
01070 
01084 ALP_GLOBAL_SETTINGS_RPC
01085 alp_status_t
01086 alp_global_settings_list_keys( AlpGlobalSettingsContext *context, const gchar *pattern, AlpGlobalSettingsEntryIterator **iterator);
01087 
01088 
01093 #ifdef __cplusplus
01094 }       // extern "C"
01095 #endif
01096 
01097 #endif  // #ifndef ALP_GLOBAL_SETTINGS_H_

Generated on Sat Dec 16 20:29:47 2006 for hiker-0.9 by  doxygen 1.4.4