Event Documentation
---------------------


STORE_NODE
	ev_data1		no_id
	ev_data2		no_comment
	ev_data3		no_spool

	storeNode (no_id, no_comment, no_spool)
	storeNode_int (no_id, no_comment, no_spool)

	A new initially deactivated node is created. If the node already
	exists, the no_comment and no_spool fields are updated.


ENABLE_NODE
	ev_data1		no_id

	enableNode (no_id)
	enableNode_int (no_id)

	Enabling a node in turn enables all subscriptions. The
	ENABLE_NODE event must be generated on the local node. When
	processing the event the origin of a set the newly activated node
	is subscribed to will generate an ENABLE_SUBSCRIPTION event.

	Every node will also create sl_confirm rows for the node.
	

DISABLE_NODE
	ev_data1		no_id

	disableNode (no_id)
	disableNode_int (no_id)

	Disabling a node also disables all its subscriptions.


DROP_NODE
	ev_data1		no_id

	dropNode (no_id)
	dropNode_int (no_id)

	This completely removes a node with all its subscriptions, path
	and listen information from the configuration.


STORE_PATH
	ev_data1		pa_server
	ev_data2		pa_client
	ev_data3		pa_conninfo
	ev_data4		pa_connretry

	storePath (pa_server, pa_client, pa_conninfo, pa_connretry)
	storePath_int (pa_server, pa_client, pa_conninfo, pa_connretry)


DROP_PATH
	ev_data1		pa_server
	ev_data2		pa_client

	storePath (pa_server, pa_client)
	storePath_int (pa_server, pa_client)


STORE_LISTEN
	ev_data1		li_origin
	ev_data2		li_provider
	ev_data3		li_receiver

	storeListen (li_origin, li_provider, li_receiver)
	storeListen_int (li_origin, li_provider, li_receiver)


DROP_LISTEN
	ev_data1		li_origin
	ev_data2		li_provider
	ev_data3		li_receiver

	dropListen (li_origin, li_provider, li_receiver)
	dropListen_int (li_origin, li_provider, li_receiver)


STORE_SET
	ev_data1		set_id
	ev_data2		set_origin
	ev_data3		set_comment

	storeSet (set_id, set_comment)
	storeSet_int (set_id, set_origin, set_comment)

	The node on which storeSet is called is automatically the origin
	of the new set.


MOVE_SET
	ev_data1		set_id
	ev_data2		new_set_origin

	moveSet (set_id)
	moveSet_int (set_id, new_set_origin)

	The node on which moveSet is called is the one taking over the
	origin of the set.


ACCEPT_SET
	ev_data1		set_id
	ev_data2		old_set_origin
	ev_data3		new_set_origin

	This was introduced to eliminate a data loss case.
        When MOVE_SET is received by the new origin node, an ACCEPT_SET
	is raised.

	On nodes, then, if we receive the ACCEPT_SET first, then we
	stop processing SYNCs so that a SYNC is not missed in the
	interim.

DROP_SET
	ev_data1		set_id

	dropSet (set_id)
	dropSet_int (set_id)


SET_ADD_TABLE
	ev_data1		set_id
	ev_data2		tab_id
	ev_data3		tab_fqname
	ev_data4		tab_attkind
	ev_data5		tab_comment

	setAddTable (set_id, tab_id, tab_fqname, tab_attkind, tab_comment)
	setAddTable_int (set_id, tab_id, tab_fqname, tab_attkind, tab_comment)
	tableAddTrigger (tab_id, tab_fqname, tab_attkind)

	Only nodes that are currently subscribed to the set will add the
	table to their configuration data. The call also adds the
	replication log trigger to the table.

SET_DROP_TABLE
	ev_data1		tab_id

	setDropTable(tab_id)
	setDropTable_int(tab_id)

	Only nodes that are currently subscribed to the table will drop the
	table from their configuration data.  The call also drops the 
	replication log trigger from the table, and restores the "normal"
	rules/triggers.

SET_DROP_SEQUENCE
	ev_data1		seq_id


	setDropSequence(seq_id)
	setDropSequence_int(seq_id)

	Only nodes that are currently subscribed to the sequence will drop the
	table from their configuration data.

SET_MOVE_TABLE
	ev_data1		tab_id
	ev_data2		set_id

	setMoveTable(tab_id, new_set_id)
	setMoveTable_int(tab_id, new_set_id)

	Only nodes currently subscribed to the table will drop it from
	one set, and move it to another.

SET_MOVE_SEQUENCE
	ev_data1		seq_id
	ev_data2		set_id

	setMoveSequence(seq_id, new_set_id)
	setMoveSequence_int(seq_id, new_set_id)

	
	Only nodes currently subscribed to the sequence will drop it
	from one set, and move it to another.


SUBSCRIBE_SET
	ev_data1		sub_set
	ev_data2		sub_provider
	ev_data3		sub_receiver
	ev_data4		sub_forward

	subscribeSet (sub_set, sub_provider, sub_forward)
	subscribeSet_int (sub_set, sub_provider, sub_receiver, sub_forward)

	The subscribeSet() function is called on the origin.  This will
	cascade through the system so that all nodes that store
	forwarding information for this set are aware of the new
	subscriber before the subscription is actually enabled. The
	origin of the set will react to this with issuing the
	ENABLE_SUBSCRIPTION message.
	
	
UNSUBSCRIBE_SET
	ev_data1		sub_set
	ev_data2		sub_receiver

	unsubscribeSet (sub_set, sub_receiver)
	unsubscribeSet_int (sub_set, sub_receiver)


ENABLE_SUBSCRIPTION
	ev_data1		sub_set
	ev_data2		sub_provider
	ev_data3		sub_receiver
	ev_data4		sub_forward

	enableSubscription (sub_set, sub_receiver)
	enableSubscription_int (sub_set, sub_receiver)

	This is a special message issued by the origin of a set when a
	node subscribes or a deactivated node gets reenabled.



