[Pipet Devel] GMS

J.W. Bizzaro bizzaro at geoserve.net
Mon Mar 13 21:51:52 EST 2000


jarl van katwijk wrote:
> 
> (Please first do a 'lpr messaging_mobject_structs.h' and have a look at the
> srtuctures...)

I'll save everyone else the trouble and attach the file.

Jeff
-------------- next part --------------
/*
 * Messaging Object 
 * this is the structure in which data resides inside the
 * messaging system, NO other structure will be used
 *
 * begin : 19-6-1999, BastardAI
 *          8-7-1999, Note Java-varinaming style
 *
 */

#ifndef MOSTRUCT
#define MOSTRUCT
#include <gnome.h>
#include <orb/orbit.h>
#include "messaging_mobject_constants.h"

typedef struct _messaging_data_object messaging_data_object;
typedef struct _messaging_object messaging_object;
typedef struct _messaging_relation messaging_relation;

struct _messaging_data_object {
	gint			name;				/* runtime name\number\key\id */
	gchar			*rawdata;			/* raw data */
	gint			rawdataLen;			/* length of rawdata memory block */
	GString         *String;			/* string data representation */
										/* TODO: String -> non-pointer */
	gint			Integer;			/* Integer data representation */
	gint			Percentage;			/* Percentage data representation */
	gboolean		Boolean;			/* Boolean data representation */
					/* NOTE: The unique data type equals the rawdata */
};

struct _messaging_relation {
	messaging_object	*MO; 	/* Other MO */
	rType_t				rType;	/* Relation description */
};

struct _messaging_object {
	gint 			name;   	  	 	/* runtime name\number\key\id */
	messaging_data_object *MDO;			/* data block of current MO */
	gint            dataSequence;		/* followup number of data block ,
	                                       N = first; N--; 0 = last */
    GString         *dataDescription;   /* Description of data block */
    gboolean        dataPassedOver;     /* db internal detection dead ends */
	gint			dataBlocked;		/* current amount of cached data */
	messaging_data_object *dataBlockedList[32];/* list of blocked data chunks */
	GString			*historyFilename;	/* Filename of .. */
	GIOChannel		*historyIO;			/* .. logfile after dataBlockedList */
	GString			*dname;		   		/* displayed name */
	GString         *dDescription; 		/* displayed description */
	moType_t		moType;		   		/* messaging_object type */
	gint			currentRelations;	/* N of current relations */
	messaging_relation	*relation[256];	/* other MObjects to which current
											one has some sort of relation to.
					   TODO: N=256=fixed, hmmm, a llist should replace ?? */
	GString			*allowedFilter;		/* This string must be matched by
										   offered data in order to accept it */
	gint			(*procedure)(messaging_object *MO);	
										/* operation on data by current mobject */
	statusType_t	status; 			/* status */
	gpointer		configInit;			/* initialize configuration of MO */
	gpointer		configRuntime;		/* runtime configuration of MO */
	gboolean		UIsetup;			/* FALSE until fully setup, see NOTE1 below */
	//GtkWidget*		visualPlug;			/* Socket that holds the visualPanel, also NOTE2 */
	GtkWidget*		(*visualPlug_buildProcedure)(messaging_object *MO,gint XID); /* builds visual UI */
	GtkWidget*		(*configPlug_buildProcedure)(messaging_object *MO,gint XID); /* builds config UI */
	//GtkWidget*		configPlug;			/* Holds the gtkplug widget of the config panel */
	gint			(*init)(messaging_object *MO); /* initialize code */
	gint			(*destruct)(messaging_object *MO); /* destroy code */
};

/* NOTE1 : plugins can be registerd to a ADM, the uisetup field is true after:
			1- the mo is registered to the dfp
			2- if moType==VisualMO, the mo visualSocket must be registered to the ADM
				(= being != NULL)
	Registering to a ADM is not needed for a MO to be operational, but as long as 
	UIsetup == FALSE the MO cannot be manually configured and cannot output information.
	This is only very important to VisualMO's :) */

/* NOTE2 : These sockets are pointers to widgets OUTSIDE the DFP\Plugin data block. These
	are ONLY used by the ADM, which requests the values and uses it locally. The GtkWidget
	wont be a GtkSocket, but the GUI structure that contains the socket */

#endif


More information about the Pipet-Devel mailing list