Query and Activation

Name

Query and Activation -- Querying for components and Activating them

Synopsis


#include <liboaf/liboaf.h>

typedef             OAF_ImplementationID;
typedef             OAF_ActivationID;
                    OAF_ServerInfo;
typedef             OAF_ActivationFlags;
OAF_ServerInfoList* oaf_query                           (const char *requirements,
                                                         char *const *selection_order,
                                                         CORBA_Environment *ev);
CORBA_Object        oaf_activate                        (const char *requirements,
                                                         char *const *selection_order,
                                                         OAF_ActivationFlags flags,
                                                         OAF_ActivationID *ret_aid,
                                                         CORBA_Environment *ev);
CORBA_Object        oaf_activate_from_id                (const OAF_ActivationID aid,
                                                         OAF_ActivationFlags flags,
                                                         OAF_ActivationID *ret_aid,
                                                         CORBA_Environment *ev);
typedef             OAFActivationCallback;
void                oaf_activate_async                  (const char *requirements,
                                                         char *const *selection_order,
                                                         OAF_ActivationFlags flags,
                                                         OAFActivationCallback callback,
                                                         gpointer user_data,
                                                         CORBA_Environment *ev);
void                oaf_activate_from_id_async          (const OAF_ActivationID aid,
                                                         OAF_ActivationFlags flags,
                                                         OAFActivationCallback callback,
                                                         gpointer user_data,
                                                         CORBA_Environment *ev);

Description

This section describes how you can query for components and activate them.

Two set of functions are described: synchronous and asynchronous ones. The asynchronous version of the functions allow you to avoid blocking your application while the CORBA servers are started.

Details

OAF_ImplementationID

   typedef CORBA_char *OAF_ImplementationID;


OAF_ActivationID

   typedef CORBA_char *OAF_ActivationID;


OAF_ServerInfo

typedef struct {
      OAF_ImplementationID iid;
      CORBA_char *server_type;
      CORBA_char *location_info;
      CORBA_char *username;
      CORBA_char *hostname;
      CORBA_char *domain;
      CORBA_sequence_OAF_Property props;
} OAF_ServerInfo;


OAF_ActivationFlags

   typedef CORBA_long OAF_ActivationFlags;
#define OAF_FLAG_NO_LOCAL 1          /* no shared libraries */
#define OAF_FLAG_PRIVATE 2           /* start a new server and don't register it */
#define OAF_FLAG_EXISTING_ONLY 4     /* don't start the server if not started */


oaf_query ()

OAF_ServerInfoList* oaf_query                           (const char *requirements,
                                                         char *const *selection_order,
                                                         CORBA_Environment *ev);

Executes the requirements query on the OAF daemon. The result is sorted according to selection_order. selection_order can safely be NULL as well as ev. The returned list has to be freed with CORBA_free.

requirements :

query string.

selection_order :

sort criterion for returned list.

ev :

a CORBA_Environment structure which will contain the CORBA exception status of the operation.

Returns :

the list of servers matching the requirements.


oaf_activate ()

CORBA_Object        oaf_activate                        (const char *requirements,
                                                         char *const *selection_order,
                                                         OAF_ActivationFlags flags,
                                                         OAF_ActivationID *ret_aid,
                                                         CORBA_Environment *ev);

Activates a given object. ret_aid can be safely NULLed as well as ev and selection_order. flags can be set to zero if you do not what to use.

requirements :

query string.

selection_order :

sort criterion for returned list.

flags :

how to activate the object.

ret_aid :

AID of the activated object.

ev :

CORBA_Environment structure which will contain the CORBA exception status of the operation.

Returns :

the CORBA object reference of the activated object. This value can be CORBA_OBJECT_NIL: you are supposed to check ev for success.


oaf_activate_from_id ()

CORBA_Object        oaf_activate_from_id                (const OAF_ActivationID aid,
                                                         OAF_ActivationFlags flags,
                                                         OAF_ActivationID *ret_aid,
                                                         CORBA_Environment *ev);

Activates the server corresponding to aid. ret_aid can be safely NULLed as well as ev. flags can be zero if you do not know what to do.

aid :

AID or IID of the object to activate.

flags :

activation flag.

ret_aid :

AID of the activated server.

ev :

CORBA_Environment structure which will contain the CORBA exception status of the operation.

Returns :

a CORBA object reference to the newly activated server. Do not forget to check ev for failure!!


OAFActivationCallback

typedef void (*OAFActivationCallback) (CORBA_Object   activated_object, 
				       const char    *error_reason, 
				       gpointer       user_data);

This is the signature of the function which you must pass as a callback to the asynchrounous activation functions.


oaf_activate_async ()

void                oaf_activate_async                  (const char *requirements,
                                                         char *const *selection_order,
                                                         OAF_ActivationFlags flags,
                                                         OAFActivationCallback callback,
                                                         gpointer user_data,
                                                         CORBA_Environment *ev);

This function will asynchronously try to activate a component given the requirements query string. When the component is activated or when the activation fails, it will call callback with the given user_data data as parameter. callback will be called with a CORBA_OBJECT_NIL object if the activation fails. If the activation fails, the callback will be given a human-readable string containing a description of the error. In case of sucess, the error string value is undefined.

selection_order can be safely NULLed as well as ev and user_data. flags can be set to 0 if you do not know what to use.

requirements :

the OAF query string.

selection_order :

preference array.

flags :

activation flags.

callback :

callback function.

user_data :

data to be poassed to the callback function.

ev :

exception structure.


oaf_activate_from_id_async ()

void                oaf_activate_from_id_async          (const OAF_ActivationID aid,
                                                         OAF_ActivationFlags flags,
                                                         OAFActivationCallback callback,
                                                         gpointer user_data,
                                                         CORBA_Environment *ev);

This function will asynchronously try to activate a component with the given aid. When the component is activated or when the activation fails, it will call callback with the given user_data data as parameter. callback will be called with a CORBA_OBJECT_NIL object if the activation fails. If the activation fails, the callback will be given a human-readable string containing a description of the error. In case of sucess, the error string value is undefined.

flags can be 0 if you do not know what to set it to and ev can be safely set to NULL.

aid :

the AID or IID of the component to activate.

flags :

activation flags.

callback :

callback function.

user_data :

data to be poassed to the callback function.

ev :

exception structure.