Man Linux: Main Page and Category List

NAME

       libhandoff - handoff library for GPE calendar.

SYNOPSIS

       extern GType handoff_get_type(void);

       typedef void (*HandoffCallback)(Handoff *handoff, char * data);

       extern Handoff * handoff_new(void);

       extern gboolean handoff_handoff(Handoff *handoff,
                                       const char *rendezvous,
                                       const char *data,
                                       gboolean display_relevant,
                                       char *(*serialize) (Handoff *),
                                       void (*exit)(Handoff *));

DESCRIPTION

       This manual page briefly describes the libhandoff0 API.

       This manual page was written for the Debian distribution because the
       original program does not have a manual page.

       libhandoff is used in the GPE Palmtop Environment to cause another
       program instance to come to the foreground. This is used when alarm
       triggers (like atd) wake the device and then need to load another
       program to show the reason for the device waking up. When gpe-calendar
       starts it looks at a well known location to find another instance of
       itself. If it does, it tells that instance to grab the focus.

       This man page is for libhandoff0 version 0.1.

FUNCTIONS

       The Handoff and HandoffClass structs are opaque. Use handoff_new to
       return a new Handoff * instance.

       typedef void (*HandoffCallback)(Handoff *handoff, char * data);

       The "handoff" signal is triggered when another instance successfully
       negotiates a handoff to this instance. DATA is the data sent by other
       instance, normally a serialization of state this instance should use.

       extern Handoff * handoff_new(void);

       Create a new passive handoff. Before calling handoff_handoff, the
       caller should connect a handler to the "handoff" signal.

       extern gboolean handoff_handoff(Handoff *handoff,
                                       const char *rendezvous,
                                       const char *data,
                                       gboolean display_relevant,
                                       char *(*serialize) (Handoff *),
                                       void (*exit)(Handoff *));

       Try to handoff this instance to an already running process.

       rendezvous is the address which all instances of this program
       rendezvous with.

       If another instance of the program is contacted then: if
       display_relevant is true, the value of the environment variable DISPLAY
       is sent; and if data is non-NULL, its value is sent. If the handoff
       request (DISPLAY is either not sent or they are identical), this
       function returns TRUE and this instance should proceed to exit.
       Otherwise, if the other instance punts, it sends a serialization of its
       state and the "handoff" signal is fired and TRUE is returned.

       If no running instance is found to be listening on rendezvous or the
       instance punts, this instance attempts to bind to rendezvous so that
       subsequent instances can find this instance and FALSE is returned.

       After connecting, this instance waits on rendezvous for other instances
       to connect. When an instance connects and hands off its state, the
       "handoff" signal is fired. If this instance decides to yield (based on
       the above criteria), then serialize is called to serialize any state.
       Once the handoff completes, exit is called and this instance should
       proceed to do any final clean up and exit.

AUTHOR

       This manual page was written by Neil Williams <linux@codehelp.co.uk>
       for the Debian system (but may be used by others). Permission is
       granted to copy, distribute and/or modify this document under the terms
       of the GNU General Public License, Version 2 any later version
       published by the Free Software Foundation.

       On Debian systems, the complete text of the GNU General Public License
       can be found in /usr/share/common-licenses/GPL.