Galago - desktop presence framework

galago-person.h

Go to the documentation of this file.
00001 
00021 #ifndef _GALAGO_PERSON_H_
00022 #define _GALAGO_PERSON_H_
00023 
00024 typedef struct _GalagoPerson        GalagoPerson;
00025 typedef struct _GalagoPersonClass   GalagoPersonClass;
00026 typedef struct _GalagoPersonPrivate GalagoPersonPrivate;
00027 
00028 #include <libgalago/galago-account.h>
00029 #include <libgalago/galago-list.h>
00030 #include <libgalago/galago-object.h>
00031 #include <libgalago/galago-photo.h>
00032 #include <libgalago/galago-service.h>
00033 #include <libgalago/galago-signals.h>
00034 #include <libgalago/galago-value.h>
00035 
00039 struct _GalagoPerson
00040 {
00041     GalagoObject parent_object;
00042 
00043     GalagoPersonPrivate *priv;
00044 
00045     void (*reserved_1)(void);
00046     void (*reserved_2)(void);
00047     void (*reserved_3)(void);
00048     void (*reserved_4)(void);
00049 };
00050 
00054 struct _GalagoPersonClass
00055 {
00056     GalagoObjectClass parent_class;
00057 
00058     void (*reserved_1)(void);
00059     void (*reserved_2)(void);
00060     void (*reserved_3)(void);
00061     void (*reserved_4)(void);
00062 };
00063 
00064 typedef enum
00065 {
00066     GALAGO_PROPERTY_TYPE_UNKNOWN = -1,  
00067     GALAGO_PROPERTY_TYPE_STRING  = 0,   
00068     GALAGO_PROPERTY_TYPE_BOOL,          
00069     GALAGO_PROPERTY_TYPE_UINT32         
00071 } GalagoPropertyType;
00072 
00073 #define GALAGO_CLASS_PERSON (galago_person_get_class())
00074 #define GALAGO_DBUS_PERSON_INTERFACE "org.freedesktop.Galago.Person"
00075 #define GALAGO_IS_PERSON(obj) (GALAGO_IS_OBJECT(obj) && galago_object_check_cast((obj), GALAGO_CLASS_PERSON))
00076 
00077 #ifdef __cplusplus
00078 extern "C" {
00079 #endif
00080 
00081 /**************************************************************************/
00083 /**************************************************************************/
00084 /*{*/
00085 
00086 #define GALAGO_PERSON_PROP_FIRST_NAME   "first-name"
00087 #define GALAGO_PERSON_PROP_MIDDLE_NAME  "middle-name"
00088 #define GALAGO_PERSON_PROP_LAST_NAME    "last-name"
00089 #define GALAGO_PERSON_PROP_ADDRESS      "address"
00090 #define GALAGO_PERSON_PROP_CITY         "city"
00091 #define GALAGO_PERSON_PROP_STATE        "state"
00092 #define GALAGO_PERSON_PROP_COUNTRY      "country"
00093 #define GALAGO_PERSON_PROP_ZIPCODE      "zipcode"
00094 
00097 /**************************************************************************/
00099 /**************************************************************************/
00107 GalagoObjectClass *galago_person_get_class(void);
00108 
00119 GalagoPerson *galago_person_new(const char *id, galago_bool native);
00120 
00128 GalagoPerson *galago_person_me_new(galago_bool native);
00129 
00141 void galago_person_set_me(GalagoPerson *person);
00142 
00150 galago_bool galago_person_is_me(const GalagoPerson *person);
00151 
00159 const char *galago_person_get_id(const GalagoPerson *person);
00160 
00169 galago_bool galago_person_is_native(const GalagoPerson *person);
00170 
00181 const char *galago_person_get_display_name(const GalagoPerson *person);
00182 
00191 void galago_person_set_photo(GalagoPerson *person, GalagoPhoto *photo);
00192 
00202 GalagoPhoto *galago_person_get_photo(const GalagoPerson *person,
00203                                      galago_bool query);
00204 
00214 galago_bool galago_person_has_accounts(const GalagoPerson *person,
00215                                        galago_bool query);
00216 
00226 const GalagoList *galago_person_get_accounts(const GalagoPerson *person,
00227                                              galago_bool query);
00228 
00236 GalagoAccount *galago_person_get_priority_account(const GalagoPerson *person);
00237 
00246 void galago_person_add_account(GalagoPerson *person, GalagoAccount *account);
00247 
00256 void galago_person_remove_account(GalagoPerson *person,
00257                                   GalagoAccount *account);
00258 
00270 GalagoAccount *galago_person_get_account(const GalagoPerson *person,
00271                                          const GalagoService *service,
00272                                          const char *username,
00273                                          galago_bool query);
00274 
00282 void galago_person_set_property_string(GalagoPerson *person, const char *name,
00283                                        const char *value);
00284 
00292 void galago_person_set_property_bool(GalagoPerson *person, const char *name,
00293                                      galago_bool value);
00294 
00302 void galago_person_set_property_uint32(GalagoPerson *person, const char *name,
00303                                        dbus_uint32_t value);
00304 
00314 void galago_person_set_property(GalagoPerson *person, const char *name,
00315                                 GalagoValue *value);
00316 
00325 galago_bool galago_person_remove_property(GalagoPerson *person,
00326                                           const char *name);
00327 
00336 const char *galago_person_get_property_string(const GalagoPerson *person,
00337                                               const char *name);
00338 
00347 galago_bool galago_person_get_property_bool(const GalagoPerson *person,
00348                                             const char *name);
00349 
00358 dbus_uint32_t galago_person_get_property_uint32(const GalagoPerson *person,
00359                                                 const char *name);
00360 
00369 const GalagoValue *galago_person_get_property(const GalagoPerson *person,
00370                                               const char *name);
00371 
00374 #ifdef __cplusplus
00375 }
00376 #endif
00377 
00378 #endif /* _GALAGO_PERSON_H_ */