bonobo-arg

Name

bonobo-arg -- simplified CORBA_Any wrappers

Synopsis



typedef     BonoboArg;
typedef     BonoboArgType;
#define     BONOBO_ARG_NULL
#define     BONOBO_ARG_BOOLEAN
#define     BONOBO_ARG_INT
#define     BONOBO_ARG_LONG
#define     BONOBO_ARG_STRING
#define     BONOBO_ARG_FLOAT
#define     BONOBO_ARG_DOUBLE
#define     BONOBO_ARG_GET_GENERAL          (a,c,t,e)
#define     BONOBO_ARG_GET_BOOLEAN          (a)
#define     BONOBO_ARG_GET_INT              (a)
#define     BONOBO_ARG_GET_LONG             (a)
#define     BONOBO_ARG_GET_STRING           (a)
#define     BONOBO_ARG_GET_FLOAT            (a)
#define     BONOBO_ARG_GET_DOUBLE           (a)
#define     BONOBO_ARG_SET_GENERAL          (a,v,c,t,e)
#define     BONOBO_ARG_SET_BOOLEAN          (a,v)
#define     BONOBO_ARG_SET_INT              (a,v)
#define     BONOBO_ARG_SET_LONG             (a,v)
#define     BONOBO_ARG_SET_STRING           (a,v)
#define     BONOBO_ARG_SET_FLOAT            (a,v)
#define     BONOBO_ARG_SET_DOUBLE           (a,v)
BonoboArg*  bonobo_arg_new                  (BonoboArgType t);
void        bonobo_arg_release              (BonoboArg *arg);
BonoboArg*  bonobo_arg_copy                 (const BonoboArg *arg);
gboolean    bonobo_arg_is_equal             (BonoboArg *a,
                                             BonoboArg *b,
                                             CORBA_Environment *opt_ev);
GtkType     bonobo_arg_type_to_gtk          (BonoboArgType id);
BonoboArgType bonobo_arg_type_from_gtk      (GtkType t);
void        bonobo_arg_to_gtk               (GtkArg *a,
                                             const BonoboArg *arg);
void        bonobo_arg_from_gtk             (BonoboArg *a,
                                             const GtkArg *arg);
gboolean    bonobo_arg_type_is_equal        (BonoboArgType a,
                                             BonoboArgType b,
                                             CORBA_Environment *opt_ev);

Description

The BonoboArg code, and macros are designed to make the use of CORBA_Any's slightly simpler by providing a glib like binding for them. The bonobo-arg code also provides mappings between Gtk Args and CORBA_anys.

A typical use of the BonoboArg macros would be in

Example 1. Property bag implementation

static void
get_prop (BonoboPropertyBag *bag,
	  BonoboArg         *arg,
	  guint              arg_id,
	  CORBA_Environment *ev,
	  gpointer           user_data)
{
	GtkObject *clock = user_data;

	switch (arg_id) {

	case PROP_RUNNING: {
		BONOBO_ARG_SET_BOOLEAN (arg, is_it_running);
		break;
	}

	default:
		bonobo_exception_set (ev, ex_Bonobo_PropertyBag_NotFound);
		break;
	}
}
     

Details

BonoboArg

typedef CORBA_any      BonoboArg;

A glib style looking type alias for a CORBA_any


BonoboArgType

typedef CORBA_TypeCode BonoboArgType;

A glib style looking typedef for a CORBA type description.


BONOBO_ARG_NULL

#define BONOBO_ARG_NULL    TC_null

the null type


BONOBO_ARG_BOOLEAN

#define BONOBO_ARG_BOOLEAN TC_boolean

the boolean type


BONOBO_ARG_INT

#define BONOBO_ARG_INT     TC_long

the integer type [ in fact a long ]


BONOBO_ARG_LONG

#define BONOBO_ARG_LONG    TC_long

the long type


BONOBO_ARG_STRING

#define BONOBO_ARG_STRING  TC_string

the string type


BONOBO_ARG_FLOAT

#define BONOBO_ARG_FLOAT   TC_float

the float type


BONOBO_ARG_DOUBLE

#define BONOBO_ARG_DOUBLE  TC_double

the double type


BONOBO_ARG_GET_GENERAL()

#define     BONOBO_ARG_GET_GENERAL(a,c,t,e)

A macro to extract a value from a BonoboArg with the given CORBA type t.

a :the BonoboArg
c :a BonoboArgType for checking
t :the C type of the value eg. for BONOBO_ARG_LONG: CORBA_long
e :an optional CORBA_Environment or NULL.


BONOBO_ARG_GET_BOOLEAN()

#define BONOBO_ARG_GET_BOOLEAN(a)   (BONOBO_ARG_GET_GENERAL (a, TC_boolean, CORBA_boolean, NULL))

this macro returns a CORBA_boolean from inside a BonoboArg, if the BonoboArg's type does not match, the behavior is undefined, and may cause faults.

a :the BonoboArg to extract the value from.


BONOBO_ARG_GET_INT()

#define BONOBO_ARG_GET_INT(a)       (BONOBO_ARG_GET_GENERAL (a, TC_long, CORBA_long, NULL))

this macro returns a CORBA_long from inside a BonoboArg, if the BonoboArg's type does not match, the behavior is undefined, and may cause faults.

a :the BonoboArg to extract the value from.


BONOBO_ARG_GET_LONG()

#define BONOBO_ARG_GET_LONG(a)      (BONOBO_ARG_GET_GENERAL (a, TC_long, CORBA_long, NULL))

this macro returns a CORBA_long from from inside a BonoboArg, if the BonoboArg's type does not match, the behavior is undefined, and may cause faults.

a :the BonoboArg to extract the value from.


BONOBO_ARG_GET_STRING()

#define     BONOBO_ARG_GET_STRING(a)

this macro returns a const CORBA_char * from from inside a BonoboArg, if the BonoboArg's type does not match, the behavior is undefined, and may cause faults. The pointer to the string is only valid for the scope of the lifetime of a.

a :the BonoboArg to extract the value from.


BONOBO_ARG_GET_FLOAT()

#define BONOBO_ARG_GET_FLOAT(a)     (BONOBO_ARG_GET_GENERAL (a, TC_float, CORBA_float, NULL))

this macro returns a CORBA_float from inside a BonoboArg, if the BonoboArg's type does not match, the behavior is undefined, and may cause faults.

a :the BonoboArg to extract the value from.


BONOBO_ARG_GET_DOUBLE()

#define BONOBO_ARG_GET_DOUBLE(a)    (BONOBO_ARG_GET_GENERAL (a, TC_double, CORBA_double, NULL))

this macro returns a CORBA_double from inside a BonoboArg, if the BonoboArg's type does not match, the behavior is undefined, and may cause faults.

a :the BonoboArg to extract the value from.


BONOBO_ARG_SET_GENERAL()

#define     BONOBO_ARG_SET_GENERAL(a,v,c,t,e)

A macro to insert a value into an empty BonoboArg with the given CORBA type t.

a :the BonoboArg
v :a pointer to the value to insert.
c :a BonoboArgType for checking
t :the C type of the value eg. for BONOBO_ARG_LONG: CORBA_long
e :an optional CORBA_Environment or NULL.


BONOBO_ARG_SET_BOOLEAN()

#define BONOBO_ARG_SET_BOOLEAN(a,v) (BONOBO_ARG_SET_GENERAL (a, v, TC_boolean, CORBA_boolean, NULL))

This macro sets the value of a to contain v

a :the Bonobo arg to insert the value into
v :a CORBA_boolean.


BONOBO_ARG_SET_INT()

#define BONOBO_ARG_SET_INT(a,v)     (BONOBO_ARG_SET_GENERAL (a, v, TC_long, CORBA_long, NULL))

This macro sets the value of a to contain v

a :the Bonobo arg to insert the value into
v :a CORBA_long.


BONOBO_ARG_SET_LONG()

#define BONOBO_ARG_SET_LONG(a,v)    (BONOBO_ARG_SET_GENERAL (a, v, TC_long, CORBA_long, NULL))

This macro sets the value of a to contain v

a :the Bonobo arg to insert the value into
v :a CORBA_long.


BONOBO_ARG_SET_STRING()

#define     BONOBO_ARG_SET_STRING(a,v)

This macro sets the value of a to contain a duplicated copy of v

a :the Bonobo arg to insert the value into
v :a CORBA_char *.


BONOBO_ARG_SET_FLOAT()

#define BONOBO_ARG_SET_FLOAT(a,v)   (BONOBO_ARG_SET_GENERAL (a, v, TC_float, CORBA_float, NULL))

This macro sets the value of a to contain v

a :the Bonobo arg to insert the value into
v :a CORBA_float.


BONOBO_ARG_SET_DOUBLE()

#define BONOBO_ARG_SET_DOUBLE(a,v)  (BONOBO_ARG_SET_GENERAL (a, v, TC_double, CORBA_double, NULL))

This macro sets the value of a to contain v

a :the Bonobo arg to insert the value into
v :a CORBA_double.


bonobo_arg_new ()

BonoboArg*  bonobo_arg_new                  (BonoboArgType t);

bonobo_arg_release ()

void        bonobo_arg_release              (BonoboArg *arg);

bonobo_arg_copy ()

BonoboArg*  bonobo_arg_copy                 (const BonoboArg *arg);

bonobo_arg_is_equal ()

gboolean    bonobo_arg_is_equal             (BonoboArg *a,
                                             BonoboArg *b,
                                             CORBA_Environment *opt_ev);

bonobo_arg_type_to_gtk ()

GtkType     bonobo_arg_type_to_gtk          (BonoboArgType id);

bonobo_arg_type_from_gtk ()

BonoboArgType bonobo_arg_type_from_gtk      (GtkType t);

bonobo_arg_to_gtk ()

void        bonobo_arg_to_gtk               (GtkArg *a,
                                             const BonoboArg *arg);

bonobo_arg_from_gtk ()

void        bonobo_arg_from_gtk             (BonoboArg *a,
                                             const GtkArg *arg);

bonobo_arg_type_is_equal ()

gboolean    bonobo_arg_type_is_equal        (BonoboArgType a,
                                             BonoboArgType b,
                                             CORBA_Environment *opt_ev);