![]() | ![]() | ![]() | Libbonobo Reference Manual | ![]() |
---|
BonoboXObject — a simplified CORBA server object wrapper
#define BONOBO_X_OBJECT_TYPE #define BONOBO_X_OBJECT_HEADER_SIZE #define BONOBO_X_OBJECT_GET_SERVANT (o) #define BONOBO_X_SERVANT_GET_OBJECT (o) #define BonoboXObject #define BonoboXObjectClass #define bonobo_x_object #define BonoboXObjectPOAFn #define bonobo_x_type_unique #define bonobo_x_type_setup #define BONOBO_X_TYPE_FUNC_FULL (class_name, corba_name, parent, prefix) #define BONOBO_X_TYPE_FUNC (class_name, parent, prefix)
BonoboXObject provides an easy to use way of writing CORBA servers. However, for libbonobo-2.0, all its functionality has been merged with BonoboObject, which is the one that should be used for writing Bonobo/CORBA servers.
Example 1. Setting up the GObjectClass data
typedef struct { BonoboXObject base; BonoboControlPrivate *priv; } BonoboControl; typedef struct { BonoboXObjectClass parent_class; POA_Bonobo_Control__epv epv; /* Signals. */ void (*set_frame) (BonoboControl *control); void (*activate) (BonoboControl *control, gboolean state); } BonoboControlClass;
Example 2. Registering the type with bonobo
GType bonobo_control_get_type (void) { GType ptype; static GType type = 0; if (type == 0) { static GTypeInfo info = { "BonoboControl", NULL, NULL, sizeof (BonoboControlClass), (GClassInitFunc)bonobo_control_class_init, NULL, NULL, sizeof (BonoboControl), 0, (GObjectInitFunc)bonobo_control_init, NULL }; ptype = (parent); type = bonobo_x_type_unique (ptype, POA_Bonobo_Control__init, NULL, G_STRUCT_OFFSET (BonoboControlClass, epv), &info, "BonoboControl"); } return type; }
Example 3. Registering the type more simply
BONOBO_X_TYPE_FUNC_FULL (BonoboControl, Bonobo_Control, PARENT_TYPE, bonobo_control);
Example 4. Setting up the class' methods
static void bonobo_control_class_init (BonoboControlClass *klass) { GObjectClass *object_class = (GObjectClass *)klass; POA_Bonobo_Control__epv *epv = &klass->epv; bonobo_control_parent_class = g_type_class_peek (PARENT_TYPE); ... object_class->finalize = bonobo_control_finalize; epv->activate = impl_Bonobo_Control_activate; epv->setSize = impl_Bonobo_Control_setSize; ... epv->realize = impl_Bonobo_Control_realize; epv->unrealize = impl_Bonobo_Control_unrealize; }
#define BONOBO_X_OBJECT_TYPE BONOBO_TYPE_X_OBJECT /* deprecated, you should use BONOBO_TYPE_X_OBJECT */
#define BONOBO_X_OBJECT_GET_SERVANT(o) ((PortableServer_Servant)&(o)->servant)
o : |
#define BONOBO_X_TYPE_FUNC_FULL(class_name, corba_name, parent, prefix)
class_name : | |
corba_name : | |
parent : | |
prefix : |
<< BonoboObject | BonoboGenericFactory >> |