Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

client.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _GCONFMM_CLIENT_H
00004 #define _GCONFMM_CLIENT_H
00005 
00006 #include <glibmm.h>
00007 
00008 // -*- Mode: C++; c-basic-offset: 4 -*-
00009 /* $Id: client.hg,v 1.16 2004/02/13 17:26:18 murrayc Exp $ */
00010 
00011 /* client.hg
00012  * 
00013  * Copyright (C) 2000-2002 GConfmm Development Team
00014  *
00015  * This library is free software; you can redistribute it and/or
00016  * modify it under the terms of the GNU Library General Public
00017  * License as published by the Free Software Foundation; either
00018  * version 2 of the License, or (at your option) any later version.
00019  *
00020  * This library is distributed in the hope that it will be useful,
00021  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00023  * Library General Public License for more details.
00024  *
00025  * You should have received a copy of the GNU Library General Public
00026  * License along with this library; if not, write to the Free
00027  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00028  */
00029 
00030 #include <gconf/gconf-client.h>
00031 
00032 #include <glibmm/object.h>
00033 
00034 #include <glibmm/error.h>
00035 #include <gconfmm/value.h>
00036 #include <gconfmm/callback.h>
00037 #include <gconfmm/entry.h>
00038 #include <gconfmm/schema.h>
00039 #include <gconfmm/setinterface.h>
00040 #include <gconfmm/changeset.h>
00041 
00042 
00043 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00044 typedef struct _GConfClient GConfClient;
00045 typedef struct _GConfClientClass GConfClientClass;
00046 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00047 
00048 
00049 namespace Gnome
00050 {
00051 
00052 namespace Conf
00053 { class Client_Class; } // namespace Conf
00054 
00055 } // namespace Gnome
00056 namespace Gnome
00057 {
00058 namespace Conf
00059 {
00060 
00066 enum ClientErrorHandlingMode
00067 {
00068   CLIENT_HANDLE_NONE,
00069   CLIENT_HANDLE_UNRETURNED,
00070   CLIENT_HANDLE_ALL
00071 };
00072 
00073 } // namespace Conf
00074 
00075 } // namespace Gnome
00076 
00077 
00078 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00079 namespace Glib
00080 {
00081 
00082 template <>
00083 class Value<Gnome::Conf::ClientErrorHandlingMode> : public Glib::Value_Enum<Gnome::Conf::ClientErrorHandlingMode>
00084 {
00085 public:
00086   static GType value_type() G_GNUC_CONST;
00087 };
00088 
00089 } // namespace Glib
00090 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00091 
00092 
00093 namespace Gnome
00094 {
00095 
00096 namespace Conf
00097 {
00098 
00102 enum ClientPreloadType
00103 {
00104   CLIENT_PRELOAD_NONE,
00105   CLIENT_PRELOAD_ONELEVEL,
00106   CLIENT_PRELOAD_RECURSIVE
00107 };
00108 
00109 } // namespace Conf
00110 
00111 } // namespace Gnome
00112 
00113 
00114 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00115 namespace Glib
00116 {
00117 
00118 template <>
00119 class Value<Gnome::Conf::ClientPreloadType> : public Glib::Value_Enum<Gnome::Conf::ClientPreloadType>
00120 {
00121 public:
00122   static GType value_type() G_GNUC_CONST;
00123 };
00124 
00125 } // namespace Glib
00126 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00127 
00128 
00129 namespace Gnome
00130 {
00131 
00132 namespace Conf
00133 {
00134 
00135 
00138 class Error : public Glib::Error
00139 {
00140 public:
00141   enum Code
00142   {
00143     SUCCESS = 0,
00144     NO_SERVER = 2,
00145     NO_PERMISSION = 3,
00146     BAD_ADDRESS = 4,
00147     PARSE_ERROR = 6,
00148     CORRUPT = 7,
00149     TYPE_MISMATCH = 8,
00150     IS_DIR = 9,
00151     IS_KEY = 10,
00152     OVERRIDDEN = 11,
00153     OAF_ERROR = 12,
00154     LOCAL_ENGINE = 13,
00155     LOCK_FAILED = 14,
00156     NO_WRITABLE_DATABASE = 15,
00157     IN_SHUTDOWN = 16
00158   };
00159 
00160   Error(Code error_code, const Glib::ustring& error_message);
00161   explicit Error(GError* gobject);
00162   Code code() const;
00163 
00164 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00165 private:
00166   static void throw_func(GError* gobject);
00167   friend void wrap_init(); // uses throw_func()
00168 #endif
00169 };
00170 
00171 } // namespace Conf
00172 
00173 } // namespace Gnome
00174 
00175 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00176 namespace Glib
00177 {
00178 
00179 template <>
00180 class Value<Gnome::Conf::Error::Code> : public Glib::Value_Enum<Gnome::Conf::Error::Code>
00181 {
00182 public:
00183   static GType value_type() G_GNUC_CONST;
00184 };
00185 
00186 } // namespace Glib
00187 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00188 
00189 
00190 namespace Gnome
00191 {
00192 
00193 namespace Conf
00194 {
00195 
00196 
00207 class Client : public Glib::Object, public SetInterface
00208 {
00209     
00210 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00211 
00212 public:
00213   typedef Client CppObjectType;
00214   typedef Client_Class CppClassType;
00215   typedef GConfClient BaseObjectType;
00216   typedef GConfClientClass BaseClassType;
00217 
00218 private:  friend class Client_Class;
00219   static CppClassType client_class_;
00220 
00221 private:
00222   // noncopyable
00223   Client(const Client&);
00224   Client& operator=(const Client&);
00225 
00226 protected:
00227   explicit Client(const Glib::ConstructParams& construct_params);
00228   explicit Client(GConfClient* castitem);
00229 
00230 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00231 
00232 public:
00233   virtual ~Client();
00234 
00235 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00236   static GType get_type()      G_GNUC_CONST;
00237   static GType get_base_type() G_GNUC_CONST;
00238 #endif
00239 
00241   GConfClient*       gobj()       { return reinterpret_cast<GConfClient*>(gobject_); }
00242 
00244   const GConfClient* gobj() const { return reinterpret_cast<GConfClient*>(gobject_); }
00245 
00247   GConfClient* gobj_copy();
00248 
00249 private:
00250 
00251     
00252 public:
00253     
00257     static Glib::RefPtr<Client> get_default_client();
00258     static Glib::RefPtr<Client> get_client_for_engine(GConfEngine* engine);
00259     
00273   void add_dir(const Glib::ustring& dir, ClientPreloadType preload = CLIENT_PRELOAD_NONE);
00274 
00278   void remove_dir(const Glib::ustring& dir);
00279 
00280     // API-TODO: Should this return a Connection ?
00299     guint notify_add(const Glib::ustring& namespace_section, Callback callback);
00300     
00301     
00307   void notify_remove(guint cnxn);
00308     
00309     
00310   void set_error_handling(ClientErrorHandlingMode mode);
00311     
00314   void clear_cache();
00315     
00322   void preload(const Glib::ustring& dirname, ClientPreloadType type);
00323     
00330   Value get(const Glib::ustring& key) const;
00331 
00340   Value get_without_default(const Glib::ustring& key) const;
00341 
00348   Value get_default_from_schema(const Glib::ustring& key) const;
00349 
00358     Entry get_entry(const Glib::ustring& key, bool use_schema_default = true) const;
00359       
00369   Entry get_entry(const Glib::ustring& key, const char* locale, bool use_schema_default = true) const;
00370     
00376   void unset(const Glib::ustring& key);
00377     
00385   Glib::SListHandle<Entry> all_entries(const Glib::ustring& dir) const;
00386 
00393   Glib::SListHandle<Glib::ustring> all_dirs(const Glib::ustring& dir) const;
00394     
00400   void suggest_sync();
00401 
00407   bool dir_exists(const Glib::ustring&) const;
00408 
00414   bool key_is_writable(const Glib::ustring&) const;
00415     
00423   double get_float(const Glib::ustring& key) const;
00424 
00428   gint get_int(const Glib::ustring& key) const;
00429 
00433   bool get_bool(const Glib::ustring& key) const;
00434 
00438   Glib::ustring get_string(const Glib::ustring& key) const;
00439 
00443   Schema get_schema(const Glib::ustring& key) const;
00444 
00452     SListHandle_ValueInt    get_int_list(const Glib::ustring& key) const;
00453 
00456     SListHandle_ValueBool   get_bool_list(const Glib::ustring& key) const;
00457 
00460     SListHandle_ValueFloat  get_float_list(const Glib::ustring& key) const;
00461 
00464     SListHandle_ValueSchema get_schema_list(const Glib::ustring& key) const;
00465 
00468     SListHandle_ValueString get_string_list(const Glib::ustring& key) const;
00469     
00470     
00479     ValuePair get_pair(const Glib::ustring& key, ValueTypePair types) const;
00480     
00481     
00488   void set(const Glib::ustring& key, int what);
00489 
00493   void set(const Glib::ustring& key, bool what);
00494 
00498   void set(const Glib::ustring& key,double what);
00499 
00503   void set(const Glib::ustring& key, const Glib::ustring& what);
00504 
00508   void set(const Glib::ustring& key, const Schema& what);
00509 
00514   void set(const Glib::ustring& key, const Value& what);
00515     
00516     
00526   ChangeSet change_set_from_current(const Glib::SArray& set);
00527     
00528 
00540   void change_set_commit(ChangeSet& set, bool remove_commited);
00541 
00553   ChangeSet change_set_reverse(const ChangeSet& set);
00554 
00560   Glib::SignalProxy2< void,const Glib::ustring&,const Value& > signal_value_changed();
00561 
00562     
00563   void value_changed(const Glib::ustring& key, const Value& value);
00564 
00565 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00566     // unreturned_error will never be called, as gconfmm
00567     // catches all GError's and throw()s them as Gnome::Conf::Error's.
00568     
00569 
00570   Glib::SignalProxy1< void,const Glib::Error& > signal_unreturned_error();
00571 
00572     
00573   void unreturned_error(const Glib::Error& error);
00574 #endif
00575 
00581   Glib::SignalProxy1< void,const Glib::Error& > signal_error();
00582 
00583     
00584   void error(const Glib::Error& error);
00585     
00586 private:
00587     void handle_error(GError* pError) const;
00588     
00589     GSList* get_list(const Glib::ustring& key, GConfValueType list_type) const;
00590 
00591 
00592 public:
00593 
00594 public:
00595   //C++ methods used to invoke GTK+ virtual functions:
00596 
00597 protected:
00598   //GTK+ Virtual Functions (override these to change behaviour):
00599 
00600   //Default Signal Handlers::
00601   virtual void on_value_changed(const Glib::ustring& key, const Value& value);
00602   virtual void on_unreturned_error(const Glib::Error& error);
00603   virtual void on_error(const Glib::Error& error);
00604 
00605 
00606 };
00607 
00608 } /* namespace Conf */
00609 } /* namespace Gnome */
00610 
00611 
00612 namespace Glib
00613 {
00619   Glib::RefPtr<Gnome::Conf::Client> wrap(GConfClient* object, bool take_copy = false);
00620 }
00621 
00622 
00623 #endif /* _GCONFMM_CLIENT_H */
00624 

Generated on Tue Feb 1 03:36:32 2005 for gconfmm by  doxygen 1.4.1