$Date: 2005/10/25 20:12:11 $
$Revision: 1.36 $
-- Initialize a new socket group.
-- a_name is the unique group name.
-- net_base is an instance of the network base class that manages the group.
-- Network base class, that manages the group
-- Event container object.
-- Add a_connection to the group.
-- Add an_object to the group.
-- Remove a_connection from the group.
-- Remove an_object from the group.
-- Subscribe a_procedure to an_event.
-- (From EM_NET_EVENT_PROCESSOR)
-- Subscribe a_procedure to an event with an_event_type_id.
-- (From EM_NET_EVENT_PROCESSOR)
-- Unsubscribe a_procedure from an_event.
-- (From EM_NET_EVENT_PROCESSOR)
-- Unsubscribe a_procedure from an event with an_event_type_id.
-- (From EM_NET_EVENT_PROCESSOR)
-- Send an acknowledgement for an_id to all clients in the group.
-- Publish an_event to the event queue.
-- (From EM_NET_EVENT_PROCESSOR)
-- Name of the group
-- Does a_connection exist in the group?
-- Does an_object exist in the group?
-- Maximum inactivity time
-- This is not directly involved into the framework.
-- But can be used to implement a more complex timeout mechanism
-- Timeout event
-- This is not directly involved into the framework.
-- But can be used to implement a more complex timeout mechanism
-- Hashtable of acknowledged events.
-- The key is event id.
-- The value is the time of the ack. This is used to cleanup the list prediodically.
-- Linked list of sockets of the current group
-- Linked list of objects of the current group
A group of connections and objects.
Groups are a central concept in the multiplayer framework.
Every group is a set of connections and objects.
A connection may belong to as many groups as it want, but is always member of an
additional personal_group, that only holds one connection and no objects.
Objects on the other hand, can only belong to one single group. Changes in the
objects state are reflected to all other peers (= connections in the group) in the same group.
It is also possible to publish events to all connections of a group using the
net_event_container_object.
A group also manages timeouts in network activity for personal groups.
You may for example use low timeout value for a game group, but a higher for a
chat group.