Query and Activation

Query and Activation — Querying for components and Activating them

Functions

Types and Values

Object Hierarchy


Includes

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

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.

Functions

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.

Parameters

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.

Parameters

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.

Parameters

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.

Parameters

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.

Parameters

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);

Types and Values

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;