Query and Activation

Query and Activation — Querying for components and Activating them

Synopsis

#include <bonobo-activation/bonobo-activation.h>

typedef             Bonobo_ImplementationID;
typedef             Bonobo_ActivationID;
typedef             Bonobo_ActivationFlags;
                    Bonobo_ActivationResultType;
Bonobo_ServerInfoList * bonobo_activation_query         (const char *requirements,
                                                         char *const *selection_order,
                                                         CORBA_Environment *ev);
CORBA_Object        bonobo_activation_activate          (const char *requirements,
                                                         char *const *selection_order,
                                                         Bonobo_ActivationFlags flags,
                                                         Bonobo_ActivationID *ret_aid,
                                                         CORBA_Environment *ev);
CORBA_Object        bonobo_activation_activate_from_id  (const Bonobo_ActivationID aid,
                                                         Bonobo_ActivationFlags flags,
                                                         Bonobo_ActivationID *ret_aid,
                                                         CORBA_Environment *ev);
void                (*BonoboActivationCallback)         (CORBA_Object activated_object,
                                                         const char *error_reason,
                                                         gpointer user_data);
void                bonobo_activation_activate_async    (const char *requirements,
                                                         char *const *selection_order,
                                                         Bonobo_ActivationFlags flags,
                                                         BonoboActivationCallback callback,
                                                         gpointer user_data,
                                                         CORBA_Environment *ev);
void                bonobo_activation_activate_from_id_async
                                                        (const Bonobo_ActivationID aid,
                                                         Bonobo_ActivationFlags flags,
                                                         BonoboActivationCallback callback,
                                                         gpointer user_data,
                                                         CORBA_Environment *ev);
void                bonobo_activation_set_activation_env_value
                                                        (const char *name,
                                                         const char *value);

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

Bonobo_ImplementationID

typedef CORBA_string Bonobo_ImplementationID;


Bonobo_ActivationID

typedef CORBA_string Bonobo_ActivationID;


Bonobo_ActivationFlags

typedef CORBA_long Bonobo_ActivationFlags;


Bonobo_ActivationResultType

typedef struct {
 CORBA_unsigned_long _maximum, _length; Bonobo_ActivationEnvValue* _buffer; CORBA_boolean _release; } CORBA_sequence_Bonobo_ActivationEnvValue;
#endif
#if !defined(TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_0)
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_0 'B'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_1 'o'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_2 'n'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_3 'o'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_4 'b'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_5 'o'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_6 '_'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_7 'A'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_8 'c'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_9 't'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_10 'i'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_11 'v'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_12 'a'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_13 't'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_14 'i'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_15 'o'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_16 'n'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_17 '_'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_18 't'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_19 'y'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_20 'p'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_21 'e'
#define TC_IMPL_TC_CORBA_sequence_Bonobo_ActivationEnvValue_22 's'
#ifdef ORBIT_IDL_C_IMODULE_Bonobo_Activation_types
static
#else
extern
#endif
ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_CORBA_sequence_Bonobo_ActivationEnvValue_struct;
#define TC_CORBA_sequence_Bonobo_ActivationEnvValue ((CORBA_TypeCode)&TC_CORBA_sequence_Bonobo_ActivationEnvValue_struct)
#endif
#define CORBA_sequence_Bonobo_ActivationEnvValue__alloc() ((CORBA_sequence_Bonobo_ActivationEnvValue *)ORBit_small_alloc (TC_CORBA_sequence_Bonobo_ActivationEnvValue))
#define CORBA_sequence_Bonobo_ActivationEnvValue__freekids(m,d) ORBit_small_freekids (TC_CORBA_sequence_Bonobo_ActivationEnvValue,(m),(d))
#define CORBA_sequence_Bonobo_ActivationEnvValue_allocbuf(l) ((Bonobo_ActivationEnvValue*)ORBit_small_allocbuf (TC_CORBA_sequence_Bonobo_ActivationEnvValue, (l)))
#define CORBA_sequence_Bonobo_ActivationEnvValue_allocbuf(l) ((Bonobo_ActivationEnvValue*)ORBit_small_allocbuf (TC_CORBA_sequence_Bonobo_ActivationEnvValue, (l)))
#endif
#if !defined(_Bonobo_ActivationEnvironment_defined)
#define _Bonobo_ActivationEnvironment_defined 1
typedef CORBA_sequence_Bonobo_ActivationEnvValue Bonobo_ActivationEnvironment;
#define Bonobo_ActivationEnvironment_marshal(x,y,z) CORBA_sequence_Bonobo_ActivationEnvValue_marshal((x),(y),(z))
#define Bonobo_ActivationEnvironment_demarshal(x,y,z,i) CORBA_sequence_Bonobo_ActivationEnvValue_demarshal((x),(y),(z),(i))
#if !defined(TC_IMPL_TC_Bonobo_ActivationEnvironment_0)
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_0 'B'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_1 'o'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_2 'n'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_3 'o'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_4 'b'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_5 'o'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_6 '_'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_7 'A'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_8 'c'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_9 't'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_10 'i'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_11 'v'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_12 'a'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_13 't'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_14 'i'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_15 'o'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_16 'n'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_17 '_'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_18 't'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_19 'y'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_20 'p'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_21 'e'
#define TC_IMPL_TC_Bonobo_ActivationEnvironment_22 's'
#ifdef ORBIT_IDL_C_IMODULE_Bonobo_Activation_types
static
#else
extern
#endif
ORBIT2_MAYBE_CONST struct CORBA_TypeCode_struct TC_Bonobo_ActivationEnvironment_struct;
#define TC_Bonobo_ActivationEnvironment ((CORBA_TypeCode)&TC_Bonobo_ActivationEnvironment_struct)
#endif
#define Bonobo_ActivationEnvironment__alloc() ((Bonobo_ActivationEnvironment *)ORBit_small_alloc (TC_CORBA_sequence_Bonobo_ActivationEnvValue))
#define Bonobo_ActivationEnvironment__freekids(m,d) ORBit_small_freekids (TC_CORBA_sequence_Bonobo_ActivationEnvValue,(m),(d))
#define Bonobo_ActivationEnvironment_allocbuf(l) ((Bonobo_ActivationEnvValue*)ORBit_small_allocbuf (TC_CORBA_sequence_Bonobo_ActivationEnvValue, (l)))
#endif
#if !defined(_Bonobo_ActivationResultType_defined)
#define _Bonobo_ActivationResultType_defined 1
typedef enum {
  Bonobo_ACTIVATION_RESULT_OBJECT,
  Bonobo_ACTIVATION_RESULT_SHLIB,
  Bonobo_ACTIVATION_RESULT_NONE
} Bonobo_ActivationResultType;


bonobo_activation_query ()

Bonobo_ServerInfoList * bonobo_activation_query         (const char *requirements,
                                                         char *const *selection_order,
                                                         CORBA_Environment *ev);

Executes the requirements query on the bonobo-activation-server. 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, or NULL

Returns :

the list of servers matching the requirements.

bonobo_activation_activate ()

CORBA_Object        bonobo_activation_activate          (const char *requirements,
                                                         char *const *selection_order,
                                                         Bonobo_ActivationFlags flags,
                                                         Bonobo_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.

bonobo_activation_activate_from_id ()

CORBA_Object        bonobo_activation_activate_from_id  (const Bonobo_ActivationID aid,
                                                         Bonobo_ActivationFlags flags,
                                                         Bonobo_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!!

BonoboActivationCallback ()

void                (*BonoboActivationCallback)         (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.


bonobo_activation_activate_async ()

void                bonobo_activation_activate_async    (const char *requirements,
                                                         char *const *selection_order,
                                                         Bonobo_ActivationFlags flags,
                                                         BonoboActivationCallback 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 bonobo-activation 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.

bonobo_activation_activate_from_id_async ()

void                bonobo_activation_activate_from_id_async
                                                        (const Bonobo_ActivationID aid,
                                                         Bonobo_ActivationFlags flags,
                                                         BonoboActivationCallback 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.

bonobo_activation_set_activation_env_value ()

void                bonobo_activation_set_activation_env_value
                                                        (const char *name,
                                                         const char *value);