Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
160
cde/lib/DtSvc/DtUtil2/MsgP.h
Normal file
160
cde/lib/DtSvc/DtUtil2/MsgP.h
Normal file
@@ -0,0 +1,160 @@
|
||||
#ifndef _DT_MSG_P_H
|
||||
#define _DT_MSG_P_H
|
||||
/*
|
||||
* MsgP.h -- Private header file for DT messaging library
|
||||
*
|
||||
* $XConsortium: MsgP.h /main/3 1995/10/26 15:24:51 rswiston $
|
||||
* $XConsortium: MsgP.h /main/3 1995/10/26 15:24:51 rswiston $
|
||||
*
|
||||
* (C) Copyright 1993, Hewlett-Packard, all rights reserved.
|
||||
*/
|
||||
#include <Dt/Msg.h>
|
||||
|
||||
|
||||
/*
|
||||
* Definitions
|
||||
*/
|
||||
|
||||
/* max property size (bytes) */
|
||||
#define DT_MSG_MAX_PROP_SIZE (32768)
|
||||
|
||||
/* atom names */
|
||||
#define DT_MSG_XA_REQUEST "_DT_REQUEST"
|
||||
#define DT_MSG_XA_NOTIFY "_DT_NOTIFY"
|
||||
#define DT_MSG_XA_BROADCAST_REGISTRY "_DT_BROADCAST_REGISTRY"
|
||||
|
||||
/*
|
||||
* _DtMessage handle
|
||||
*/
|
||||
typedef struct _DtMsgHandle {
|
||||
char * pchName; /* handle "name" */
|
||||
Atom atom; /* Selection/Broadcast atom */
|
||||
Widget widget; /* Widget registering this handle */
|
||||
char * pchPropName; /* property name */
|
||||
Atom property; /* atomized property name */
|
||||
|
||||
/* other data */
|
||||
struct _DtMsgServiceContext *
|
||||
service_data; /* service data assoc w/ handle */
|
||||
struct _DtMsgBroadcastData *
|
||||
broadcast_data; /* broadcast data assoc w/ handle */
|
||||
} DtMsgHandle;
|
||||
|
||||
/*
|
||||
* _DtMessage handle accessor "functions"
|
||||
*/
|
||||
#define DtMsgH_Name(h) ((h)->pchName)
|
||||
#define DtMsgH_Widget(h) ((h)->widget)
|
||||
#define DtMsgH_Atom(h) ((h)->atom)
|
||||
#define DtMsgH_SvcData(h) ((h)->service_data)
|
||||
#define DtMsgH_BcData(h) ((h)->broadcast_data)
|
||||
#define DtMsgH_PropertyName(h) ((h)->pchPropName)
|
||||
#define DtMsgH_PropertyAtom(h) ((h)->property)
|
||||
#define DtMsgH_Shandle(h) ((h)->service_data->handle)
|
||||
#define DtMsgH_RequestProc(h) ((h)->service_data->request_proc)
|
||||
#define DtMsgH_ReceiveCD(h) ((h)->service_data->receive_client_data)
|
||||
#define DtMsgH_LoseProc(h) ((h)->service_data->lose_proc)
|
||||
#define DtMsgH_LoseCD(h) ((h)->service_data->lose_client_data)
|
||||
#define DtMsgH_RegistryAtom(h) ((h)->broadcast_data->aRegistry)
|
||||
#define DtMsgH_SharedWindow(h) ((h)->broadcast_data->winShared)
|
||||
#define DtMsgH_SharedWidget(h) ((h)->broadcast_data->wShared)
|
||||
#define DtMsgH_Listener(h) ((h)->broadcast_data->wListener)
|
||||
#define DtMsgH_BreceiveProc(h) ((h)->broadcast_data->Breceive_proc)
|
||||
#define DtMsgH_BclientData(h) ((h)->broadcast_data->Bclient_data)
|
||||
#define DtMsgH_Bprops(h) ((h)->broadcast_data->props)
|
||||
#define DtMsgH_BnumProps(h) ((h)->broadcast_data->numProps)
|
||||
#define DtMsgH_BsizeProps(h) ((h)->broadcast_data->sizeProps)
|
||||
#define DtMsgH_Breceivers(h) ((h)->broadcast_data->pReceivers)
|
||||
#define DtMsgH_BnumReceivers(h) ((h)->broadcast_data->numReceivers)
|
||||
#define DtMsgH_BsizeReceivers(h) ((h)->broadcast_data->sizeReceivers)
|
||||
#define DtMsgH_BSenderInit(h) ((h)->broadcast_data->bSenderInitialized)
|
||||
|
||||
/*
|
||||
* Service context data
|
||||
* (for client that offers a service)
|
||||
*/
|
||||
typedef struct _DtMsgServiceContext {
|
||||
DtMsgHandle handle;
|
||||
DtMsgReceiveProc request_proc;
|
||||
DtMsgStatusProc lose_proc;
|
||||
Pointer receive_client_data;
|
||||
Pointer lose_client_data;
|
||||
} DtMsgServiceContext;
|
||||
|
||||
/*
|
||||
* Request context data
|
||||
* (for client that makes a service request)
|
||||
*/
|
||||
typedef struct _DtMsgRequestContext {
|
||||
DtMsgHandle handle;
|
||||
DtMsgReceiveProc reply_proc;
|
||||
Pointer client_data;
|
||||
} DtMsgRequestContext;
|
||||
|
||||
|
||||
/*
|
||||
* Reply message context data
|
||||
* (for client replying to a request)
|
||||
*/
|
||||
typedef struct _DtMsgReplyMessageContext {
|
||||
DtMsgHandle handle;
|
||||
Window window;
|
||||
Atom target;
|
||||
Atom property;
|
||||
} DtMsgReplyMessageContext;
|
||||
|
||||
|
||||
/*
|
||||
* Broadcast sender data
|
||||
*/
|
||||
|
||||
/* number of props to allocate per memory request */
|
||||
#define DT_MSG_PROP_INC_AMT 10
|
||||
|
||||
typedef struct _DtMsgBroadcastPerReceiverData {
|
||||
Widget widget; /* widget of receiver */
|
||||
Atom * propsUnread; /* list of props */
|
||||
int numPropsUnread; /* number of props */
|
||||
int sizePropsUnread; /* amt of space allocated */
|
||||
} DtMsgBroadcastPerReceiverData;
|
||||
|
||||
typedef struct _DtMsgBroadcastData {
|
||||
Atom aRegistry; /* registry atom name */
|
||||
Window winShared; /* shared window */
|
||||
Widget wShared; /* shared widget */
|
||||
Widget wListener; /* child of shared window */
|
||||
DtMsgReceiveProc Breceive_proc; /* broadcast receive proc */
|
||||
Pointer Bclient_data; /* broadcast client data */
|
||||
|
||||
Boolean bSenderInitialized; /* true if ready for send */
|
||||
Atom * props; /* props to use for messages */
|
||||
int numProps; /* number of message props */
|
||||
int sizeProps; /* number of props allocated */
|
||||
DtMsgBroadcastPerReceiverData * pReceivers; /* rcvr data */
|
||||
int numReceivers; /* number of receivers */
|
||||
int sizeReceivers; /* amt of rcvr space allocated */
|
||||
|
||||
} DtMsgBroadcastData;
|
||||
|
||||
|
||||
/*
|
||||
* Broadcast _DtMessage Registry definitions
|
||||
*/
|
||||
|
||||
/* registry entry size, in words */
|
||||
#define DT_MSG_REGISTRY_ENTRY_SIZE 2
|
||||
|
||||
/* offsets within each registry entry */
|
||||
#define DT_MSG_REGISTRY_NAME_OFFSET 0
|
||||
#define DT_MSG_REGISTRY_WINDOW_OFFSET 1
|
||||
|
||||
/* Macros to compute offset */
|
||||
#define MSG_GROUP_NAME(R, i) \
|
||||
(R[((i)*DT_MSG_REGISTRY_ENTRY_SIZE)+DT_MSG_REGISTRY_NAME_OFFSET])
|
||||
|
||||
#define MSG_GROUP_WINDOW(R, i) \
|
||||
(R[((i)*DT_MSG_REGISTRY_ENTRY_SIZE)+DT_MSG_REGISTRY_WINDOW_OFFSET])
|
||||
|
||||
|
||||
#endif /* not defined _DT_MSG_P_H */
|
||||
/***** END OF FILE ****/
|
||||
Reference in New Issue
Block a user