GalagoService

GalagoService — A messaging or VoIP service.

Synopsis




enum        GalagoServiceFlags;
            GalagoService;
#define     GALAGO_DBUS_SERVICE_INTERFACE
#define     GALAGO_SERVICE_ID_AIM
#define     GALAGO_SERVICE_ID_GADUGADU
#define     GALAGO_SERVICE_ID_GROUPWISE
#define     GALAGO_SERVICE_ID_ICQ
#define     GALAGO_SERVICE_ID_IRC
#define     GALAGO_SERVICE_ID_JABBER
#define     GALAGO_SERVICE_ID_MSN
#define     GALAGO_SERVICE_ID_NAPSTER
#define     GALAGO_SERVICE_ID_SILC
#define     GALAGO_SERVICE_ID_TREPIA
#define     GALAGO_SERVICE_ID_YAHOO
#define     GALAGO_SERVICE_ID_ZEPHYR
const char* galago_service_get_id           (const GalagoService *service);
const char* galago_service_get_name         (const GalagoService *service);
GalagoServiceFlags galago_service_get_flags (const GalagoService *service);
GalagoAccount* galago_service_create_account
                                            (GalagoService *service,
                                             GalagoPerson *person,
                                             const char *username);
GalagoAccount* galago_service_get_account   (const GalagoService *service,
                                             const char *username,
                                             gboolean query);
GalagoCallHandle galago_service_get_account_async
                                            (const GalagoService *service,
                                             const char *username,
                                             GalagoServiceAccountCb cb,
                                             gpointer user_data,
                                             GFreeFunc free_func);
GList*      galago_service_get_accounts     (const GalagoService *service,
                                             gboolean query);
char*       galago_service_normalize        (const GalagoService *service,
                                             const char *username);

Object Hierarchy


  GObject
   +----GalagoObject
         +----GalagoService

Properties


  "flags"                GalagoServiceFlags    : Read / Write / Construct Only
  "id"                   gchararray            : Read / Write / Construct Only
  "name"                 gchararray            : Read / Write / Construct Only

Signals


"account-added"
            void        user_function      (GalagoService *service,
                                            gpointer       account,
                                            gpointer       user_data)      : Run last / Action
"account-removed"
            void        user_function      (GalagoService *service,
                                            gpointer       account,
                                            gpointer       user_data)      : Run last / Action

Description

GalagoService represents a service of some kind, typically used for messaging or VoIP. It owns a list of GalagoAccounts, and contains rules determining how account usernames should be normalized and compared.

GalagoServices are created through galago_create_service().

By default, account usernames are converted to lowercase and all spaces are removed when normalizing them for comparison. GalagoServiceFlags can change this behavior.

Details

enum GalagoServiceFlags

typedef enum
{
	/* Preserve spaces during normalization */
	GALAGO_PRESERVE_SPACES = 1 << 0,

	/* Preserve case during normalization */
	GALAGO_PRESERVE_CASE   = 1 << 1,

	/* Strip a slash and everything after it during normalization. */
	GALAGO_STRIP_SLASH     = 1 << 2

} GalagoServiceFlags;

A list of flags specifying rules for the service. Currently this consists of flags dictating how account usernames should be normalized when comparing the usernames.

GALAGO_PRESERVE_SPACES Preserve spaces in the account usernames when normalizing.
GALAGO_PRESERVE_CASE Preserve casing in the account usernames when normalizing.
GALAGO_STRIP_SLASH Strip the first slash and everything after it in the account usernames when normalizing. This is used for services such as Jabber.

GalagoService

typedef struct _GalagoService GalagoService;

This is an opaque structure representing a service. This should not be used directly. Use the accessor functions below.


GALAGO_DBUS_SERVICE_INTERFACE

#define     GALAGO_DBUS_SERVICE_INTERFACE

The D-BUS interface that GalagoService maps to.


GALAGO_SERVICE_ID_AIM

#define     GALAGO_SERVICE_ID_AIM

AOL Instant Messenger.


GALAGO_SERVICE_ID_GADUGADU

#define     GALAGO_SERVICE_ID_GADUGADU

Gadu-Gadu.


GALAGO_SERVICE_ID_GROUPWISE

#define     GALAGO_SERVICE_ID_GROUPWISE

Novell GroupWise.


GALAGO_SERVICE_ID_ICQ

#define     GALAGO_SERVICE_ID_ICQ

ICQ.


GALAGO_SERVICE_ID_IRC

#define     GALAGO_SERVICE_ID_IRC

Internet Relay Chat.


GALAGO_SERVICE_ID_JABBER

#define     GALAGO_SERVICE_ID_JABBER

Jabber.


GALAGO_SERVICE_ID_MSN

#define     GALAGO_SERVICE_ID_MSN

MSN Messenger.


GALAGO_SERVICE_ID_NAPSTER

#define     GALAGO_SERVICE_ID_NAPSTER

Napster Chat.


GALAGO_SERVICE_ID_SILC

#define     GALAGO_SERVICE_ID_SILC

Secure Internet Live Conferencing.


GALAGO_SERVICE_ID_TREPIA

#define     GALAGO_SERVICE_ID_TREPIA

Trepia Instant Messenger.


GALAGO_SERVICE_ID_YAHOO

#define     GALAGO_SERVICE_ID_YAHOO

Yahoo! Messenger.


GALAGO_SERVICE_ID_ZEPHYR

#define     GALAGO_SERVICE_ID_ZEPHYR

Zephyr.


galago_service_get_id ()

const char* galago_service_get_id           (const GalagoService *service);

Returns a service's ID.

service : The service.
Returns : The service's ID.

galago_service_get_name ()

const char* galago_service_get_name         (const GalagoService *service);

Returns a service's name.

service : The service.
Returns : The service's name.

galago_service_get_flags ()

GalagoServiceFlags galago_service_get_flags (const GalagoService *service);

Returns a service's flags.

service : The service.
Returns : The flags.

galago_service_create_account ()

GalagoAccount* galago_service_create_account
                                            (GalagoService *service,
                                             GalagoPerson *person,
                                             const char *username);

Creates an account belonging to this service.

If the account already exists, the existing account will be returned.

service : The service.
person : The person the account belongs to.
username : The account username.
Returns : The account.

galago_service_get_account ()

GalagoAccount* galago_service_get_account   (const GalagoService *service,
                                             const char *username,
                                             gboolean query);

Returns the account with the specified username from a service.

service : The service.
username : The account's username.
query : TRUE if a remote query should be done if there is no local account found, or FALSE.
Returns : The account, if found, or NULL.

galago_service_get_account_async ()

GalagoCallHandle galago_service_get_account_async
                                            (const GalagoService *service,
                                             const char *username,
                                             GalagoServiceAccountCb cb,
                                             gpointer user_data,
                                             GFreeFunc free_func);

Asynchronously retrieves the account with the specified username from a service.

For example:

 static void
 account_received_cb(GalagoService *service,
                     GalagoAccount *account,
                     gpointer user_data)
 {
 }
 
 static void
 get_bob_account(GalagoService *service)
 {
     GalagoCallHandle handle;
 
     handle = galago_service_get_account_async(service, "Bob",
                                               account_received_cb,
                                               NULL, NULL);
 }

service : The service.
username : The account's username.
cb : The callback function that will be passed the account.
user_data : Custom data to pass to the callback function.
free_func : Optional function to free user_data when the request completes.
Returns : A valid GalagoCallHandle on success. On error, this will return GALAGO_CALL_HANDLE_INVALID.

Since 0.5.2


galago_service_get_accounts ()

GList*      galago_service_get_accounts     (const GalagoService *service,
                                             gboolean query);

Returns a list of all accounts in the service.

This may emit an account-added signal for every object that returns. If your code connects to this signal and calls galago_service_get_accounts() as a result, you will want to add a lock so that you don't end up with unwanted side-effects.

service : The service.
query : TRUE if a remote query should be done if there is no local account found, or FALSE.
Returns : A list of all accounts in the service.

galago_service_normalize ()

char*       galago_service_normalize        (const GalagoService *service,
                                             const char *username);

Normalizes an account username based on the service's normalization flags.

service : The service.
username : The username to normalize.
Returns : The string. This must be freed.

Property Details

The "flags" property

  "flags"                GalagoServiceFlags    : Read / Write / Construct Only

The service flags.


The "id" property

  "id"                   gchararray            : Read / Write / Construct Only

The service's unique ID.

Default value: NULL


The "name" property

  "name"                 gchararray            : Read / Write / Construct Only

The service's name.

Default value: NULL

Signal Details

The "account-added" signal

void        user_function                  (GalagoService *service,
                                            gpointer       account,
                                            gpointer       user_data)      : Run last / Action

Emitted when an account is added to the service.

service : The object which received the signal.
account : The account that was added.
user_data : user data set when the signal handler was connected.

The "account-removed" signal

void        user_function                  (GalagoService *service,
                                            gpointer       account,
                                            gpointer       user_data)      : Run last / Action

Emitted when an account is removed to the service.

service : The object which received the signal.
account : The account that was removed.
user_data : user data set when the signal handler was connected.

See Also

GalagoAccount