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.


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.


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.


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.


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.


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.


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.


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.


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


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


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


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


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


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


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