Galago - desktop presence framework

galago-presence.h

Go to the documentation of this file.
00001 
00021 #ifndef _GALAGO_PRESENCE_H_
00022 #define _GALAGO_PRESENCE_H_
00023 
00024 #include <sys/time.h>
00025 #include <time.h>
00026 
00027 typedef struct _GalagoPresence        GalagoPresence;
00028 typedef struct _GalagoPresenceClass   GalagoPresenceClass;
00029 typedef struct _GalagoPresencePrivate GalagoPresencePrivate;
00030 
00031 #include <libgalago/galago-account.h>
00032 #include <libgalago/galago-list.h>
00033 #include <libgalago/galago-object.h>
00034 #include <libgalago/galago-person.h>
00035 #include <libgalago/galago-status.h>
00036 #include <libgalago/galago-signals.h>
00037 #include <libgalago/galago-types.h>
00038 
00045 struct _GalagoPresence
00046 {
00047     GalagoObject parent_object;
00048 
00049     GalagoPresencePrivate *priv;
00050 
00051     void (*reserved_1)(void);
00052     void (*reserved_2)(void);
00053     void (*reserved_3)(void);
00054     void (*reserved_4)(void);
00055 };
00056 
00057 struct _GalagoPresenceClass
00058 {
00059     GalagoObjectClass parent_class;
00060 
00061     void (*reserved_1)(void);
00062     void (*reserved_2)(void);
00063     void (*reserved_3)(void);
00064     void (*reserved_4)(void);
00065 };
00066 
00067 #define GALAGO_CLASS_PRESENCE (galago_presence_get_class())
00068 #define GALAGO_DBUS_PRESENCE_INTERFACE "org.freedesktop.Galago.Presence"
00069 #define GALAGO_IS_PRESENCE(obj) (GALAGO_IS_OBJECT(obj) && galago_object_check_cast((obj), GALAGO_CLASS_PRESENCE))
00070 
00071 #ifdef __cplusplus
00072 extern "C" {
00073 #endif
00074 
00075 /**************************************************************************/
00077 /**************************************************************************/
00085 GalagoObjectClass *galago_presence_get_class(void);
00086 
00094 GalagoPresence *galago_presence_new(GalagoAccount *account);
00095 
00103 void galago_presence_set_idle(GalagoPresence *presence, galago_bool idle,
00104                               time_t idle_time);
00105 
00115 void galago_presence_set_statuses(GalagoPresence *presence,
00116                                   GalagoList *statuses);
00117 
00124 void galago_presence_add_status(GalagoPresence *presence,
00125                                 GalagoStatus *status);
00126 
00135 void galago_presence_remove_status(GalagoPresence *presence,
00136                                    const char *status_id);
00137 
00143 void galago_presence_clear_statuses(GalagoPresence *presence);
00144 
00152 GalagoAccount *galago_presence_get_account(const GalagoPresence *presence);
00153 
00161 galago_bool galago_presence_is_idle(const GalagoPresence *presence);
00162 
00170 time_t galago_presence_get_idle_time(const GalagoPresence *presence);
00171 
00182 galago_bool galago_presence_is_discarded(const GalagoPresence *presence);
00183 
00191 galago_bool galago_presence_is_available(const GalagoPresence *presence);
00192 
00200 const GalagoList *galago_presence_get_statuses(const GalagoPresence *presence);
00201 
00209 GalagoStatus *galago_presence_get_active_status(const GalagoPresence *presence);
00210 
00220 galago_bool galago_presence_is_status_exclusive(const GalagoPresence *presence,
00221                                                 const char *status_id);
00222 
00231 GalagoStatus *galago_presence_get_status(const GalagoPresence *presence,
00232                                          const char *status_id);
00233 
00242 galago_bool galago_presence_has_status(const GalagoPresence *presence,
00243                                        const char *status_id);
00244 
00254 galago_bool galago_presence_has_status_type(const GalagoPresence *presence,
00255                                             GalagoStatusType type);
00256 
00267 int galago_presence_compare(const GalagoPresence *presence1,
00268                             const GalagoPresence *presence2);
00269 
00270 /*}@*/
00271 
00272 #ifdef __cplusplus
00273 }
00274 #endif
00275 
00276 #endif /* _GALAGO_PRESENCE_H_ */