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