Просмотр исходного кода

added event message types and associated data structures.

(Logical change 1.46)


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@143 fd59a12c-fef9-0310-b244-a6a79926bd2f
Mark Haverkamp 21 лет назад
Родитель
Сommit
f6bad576fa
1 измененных файлов с 243 добавлено и 1 удалено
  1. 243 1
      include/ais_msg.h

+ 243 - 1
include/ais_msg.h

@@ -53,7 +53,8 @@ enum req_init_types {
 	MESSAGE_REQ_AMF_INIT,
 	MESSAGE_REQ_CKPT_INIT,
 	MESSAGE_REQ_CKPT_CHECKPOINT_INIT,
-	MESSAGE_REQ_CKPT_SECTIONITERATOR_INIT
+	MESSAGE_REQ_CKPT_SECTIONITERATOR_INIT,
+	MESSAGE_REQ_EVT_INIT
 };
 
 enum res_init_types {
@@ -174,6 +175,26 @@ enum nodeexec_message_types {
 	MESSAGE_REQ_EXEC_CKPT_SECTIONREAD
 };
 
+enum req_evt_types {
+	MESSAGE_REQ_EVT_OPEN_CHANNEL = 1,
+	MESSAGE_REQ_EVT_CLOSE_CHANNEL,
+	MESSAGE_REQ_EVT_SUBSCRIBE,
+	MESSAGE_REQ_EVT_UNSUBSCRIBE,
+	MESSAGE_REQ_EVT_PUBLISH,
+	MESSAGE_REQ_EVT_CLEAR_RETENTIONTIME
+};
+
+enum res_evt_types {
+	MESSAGE_RES_EVT_OPEN_CHANNEL = 1,
+	MESSAGE_RES_EVT_CLOSE_CHANNEL,
+	MESSAGE_RES_EVT_SUBSCRIBE,
+	MESSAGE_RES_EVT_UNSUBSCRIBE,
+	MESSAGE_RES_EVT_PUBLISH,
+	MESSAGE_RES_EVT_CLEAR_RETENTIONTIME,
+	MESSAGE_RES_EVT_CHAN_OPEN_CALLBACK,
+	MESSAGE_RES_EVT_EVENT_DATA
+};
+
 #define MESSAGE_MAGIC 0x5a6b7c8d
 struct message_header {
 	int magic;
@@ -718,4 +739,225 @@ struct req_exec_clm_nodejoin {
 	SaClmClusterNodeT clusterNode;
 };
 
+
+/* 
+ * MESSAGE_REQ_EVT_OPEN_CHANNEL
+ *
+ * ico_head				Request head
+ * ico_open_flag:		Channel open flags
+ * ico_channel_name:	Name of channel to open
+ * ico_c_handle:		Local lib channel handle (used in returned event data)
+ * ico_timeout:			Used only by open
+ * ico_invocation:		Used only by async open
+ *
+ */
+struct req_evt_channel_open {
+
+	struct message_header	ico_head;
+	SaUint8T				ico_open_flag;
+	SaNameT					ico_channel_name;
+	SaEvtChannelHandleT		ico_c_handle;	/* client chan handle */
+	SaTimeT					ico_timeout;    /* open only */
+	SaInvocationT			ico_invocation; /* open async only */
+};
+
+/*
+ * MESSAGE_RES_EVT_OPEN_CHANNEL
+ * 
+ *
+ * ico_head:			Results head
+ * ico_error:			Request results
+ * ico_channel_handle:	Server side channel handle (used in channel ops)
+ *
+ */
+struct res_evt_channel_open {
+
+	struct message_header	ico_head;
+	SaErrorT				ico_error;
+	uint32_t				ico_channel_handle;/* svr chan handle */
+
+};
+
+/*
+ * MESSAGE_RES_EVT_CHAN_OPEN_CALLBACK
+ *
+ * TODO: Define this
+ */
+struct res_evt_open_chan_async {
+	struct message_header	ico_head;
+};
+
+
+/*
+ * MESSAGE_REQ_EVT_CLOSE_CHANNEL
+ *
+ * icc_head:			Request head
+ * icc_channel_handle:	Server handle of channel to close
+ *
+ */
+struct req_evt_channel_close {
+
+	struct message_header	icc_head;
+	uint32_t				icc_channel_handle;
+};
+
+/*
+ * MESSAGE_RES_EVT_CLOSE_CHANNEL
+ *
+ * icc_head:		Results head
+ * icc_error:		Request result
+ *
+ */
+struct res_evt_channel_close {
+	struct message_header	icc_head;
+	SaErrorT				icc_error;
+};
+
+/* 
+ * MESSAGE_REQ_EVT_SUBSCRIBE
+ *
+ * ics_head:			Request head
+ * ics_channel_handle:	Server handle of channel
+ * ics_sub_id:			Subscription ID
+ * ics_filter_size:		Size of supplied filter data
+ * ics_filter_count:	Number of filters supplied
+ * ics_filter_data:		Filter data
+ *
+ */
+struct req_evt_channel_subscribe {
+
+	struct message_header	ics_head;
+	uint32_t				ics_channel_handle;
+	SaEvtSubscriptionIdT	ics_sub_id;
+	uint32_t				ics_filter_size;
+	uint32_t				ics_filter_count;
+	uint8_t					ics_filter_data[0];
+
+};
+
+/*
+ * MESSAGE_RES_EVT_SUBSCRIBE
+ *
+ * ics_head:		Result head
+ * ics_error:		Request results
+ *
+ */
+struct res_evt_channel_subscribe {
+	struct message_header	ics_head;
+	SaErrorT				ics_error;
+};
+
+/*
+ * MESSAGE_REQ_EVT_UNSUBSCRIBE
+ *
+ * icu_head:			Request head
+ * icu_channel_handle:	Server handle of channel
+ * icu_sub_id:			Subscription ID
+ *
+ */
+struct req_evt_channel_unsubscribe {
+
+	struct message_header	icu_head;
+	uint32_t				icu_channel_handle;
+	SaEvtSubscriptionIdT	icu_sub_id;
+};
+
+
+/*
+ * MESSAGE_RES_EVT_UNSUBSCRIBE
+ *
+ * icu_head:		Results head
+ * icu_error:		request result
+ *
+ */
+struct res_evt_channel_unsubscribe {
+	struct message_header	icu_head;
+	SaErrorT				icu_error;
+
+};
+
+
+/*
+ * MESSAGE_REQ_EVT_PUBLISH
+ * MESSAGE_RES_EVT_EVENT_DATA
+ *
+ * led_head:				Request/Results head
+ * led_svr_channel_handle:	Server channel handle (Publish only)
+ * led_lib_channel_handle:	Lib channel handle (Event Data only)
+ * led_event_id:			Event ID (Event Data only)
+ * led_sub_id:				Subscription ID (Event Data only)
+ * led_publisher_node_id:	Node ID of event publisher
+ * led_publisher_name:		Node name of event publisher
+ * led_retention_time:		Event retention time
+ * led_publish_time:		Publication time of the event
+ * led_priority:			Event priority
+ * led_user_data_offset:	Offset to user data
+ * led_user_data_size:		Size of user data
+ * led_patterns_number:		Number of patterns in the event
+ * led_body:				Pattern and user data
+ */
+struct lib_event_data {
+	struct message_header	led_head;
+	uint32_t				led_svr_channel_handle;
+	uint32_t				led_lib_channel_handle;
+	SaEvtEventIdT			led_event_id;
+	SaEvtSubscriptionIdT	led_sub_id;
+	SaClmNodeIdT			led_publisher_node_id;
+	SaNameT					led_publisher_name;
+	SaTimeT					led_retention_time;
+	SaTimeT					led_publish_time;
+	SaEvtEventPriorityT		led_priority;
+	uint32_t				led_user_data_offset;
+	uint32_t				led_user_data_size;
+	uint32_t				led_patterns_number;
+	uint8_t					led_body[0];
+
+};
+
+/*
+ * MESSAGE_RES_EVT_PUBLISH
+ *
+ * iep_head:		Result head
+ * iep_error:		Request results
+ * iep_event_id:	Event ID of published message
+ *
+ */
+struct res_evt_event_publish {
+
+	struct message_header	iep_head;
+	SaErrorT				iep_error;
+	SaEvtEventIdT			iep_event_id;
+};
+
+/*
+ * MESSAGE_REQ_EVT_CLEAR_RETENTIONTIME
+ *
+ * Request message:
+ *
+ * iec_head:			Request head
+ * iec_event_id:		ID of event to clear
+ * iec_channel_handle:	Server handle of associate channel
+ *
+ */
+struct req_evt_event_clear_retentiontime {
+
+	struct message_header	iec_head;
+	uint64_t				iec_event_id;
+	uint32_t				iec_channel_handle;
+
+};
+
+/*
+ * MESSAGE_RES_EVT_CLEAR_RETENTIONTIME
+ *
+ * iec_head:		Results head
+ * iec_error:		Request result
+ *
+ */
+struct res_evt_event_clear_retentiontime {
+	struct message_header	iec_head;
+	SaErrorT				iec_error;
+};
+
+
 #endif /* AIS_MSG_H_DEFINED */