$Date: 2005/10/25 20:12:11 $
$Revision: 1.60 $
-- Create a new network server.
-- unique_game_identifier is used by the master server to identifiy and manage servers of different games.
-- This identifier must be chosen by hand. You need to ask the masterserver administrator wheter you can use
-- a particular identifier or not (or you setup your own masterserver).
-- Create a new network server.
-- unique_game_identifier is used by the master server to identifiy and manage servers of different games.
-- This identifier must be chosen by hand. You need to ask the masterserver administrator wheter you can use
-- a particular identifier or not (or you setup your own masterserver).
-- Initialisation
-- (From EM_NET_BASE)
-- Init
-- (From EM_DELAYED_PROCEDURES)
-- EiffelMedia network subsystem is
-- (From EM_SHARED_SUBSYSTEMS)
-- Last received packet
-- (From EM_UDP_SOCKET)
-- Returns reference to the singleton
-- (From EM_TIME_SINGLETON)
-- Set net_fps to a_net_fps_value.
-- (From EM_NET_BASE)
-- 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)
-- Add a_procedure which will be called in TIME_OFFSET miliseconds from "now" in the same thread!
-- Use the feature "process" to call all procedures whose time is up.
-- You could use EM_TIME_SINGLETON for global timing: The EM_EVENT_LOOP will call "process" each loop once.
-- You can also use the EM_EVENT_LOOP to have a per scene executeion.
-- (From EM_DELAYED_PROCEDURES)
-- executes all stored procedures whose time is up...
-- Make sure you don't add procedures which use a lot of computation time. Only small, short
-- procedures are appropriate. Otherwise use add_timed_callback which runs functions in a different thread
-- to avoid a laggy reaction to other events.
-- (From EM_DELAYED_PROCEDURES)
-- Send a_string to a_destination.
-- (From EM_UDP_SOCKET)
-- clear the whole "delayed procedure call" list (procedures added with add_procedure, executed with execute)
-- (From EM_DELAYED_PROCEDURES)
-- Handle a received packet.
-- (From EM_UDP_SOCKET)
-- Send failed event.
-- Passed parameter is the error code: Em_error_resolve_ip or Em_error_send_failed
-- (From EM_UDP_SOCKET)
-- Disable discovery response.
-- Disable sending heartbeats.
-- Enable discovery response.
-- Add an object for synchronisation and publish it to all client in a_group.
-- Add an_object to the standard group.
-- (From EM_NET_BASE)
-- Handle object creation request.
-- This is a default handler that does the following:
-- - Send an EM_NET_CREATE_OBJECT_RESPONSE to all clients in the group a_request.object_group_name
-- - Create the object locally in the same group.
-- To use this handler you need to subscribe to EM_NET_CREATE_OBJECT_REQUEST with this feature as agent or
-- call it in your own agent.
-- Handle object destruction request.
-- This is a default handler that does the following:
-- - Send an EM_NET_DESTROY_OBJECT_RESPONSE to all clients in the group a_request.object_group_name
-- - Remove the object locally from the same group.
-- To use this handler you need to subscribe to EM_NET_DESTROY_OBJECT_REQUEST with this feature as agent or
-- call it in your own agent.
-- Does the standard group contain an_object?
-- (From EM_NET_BASE)
-- Remove an object from synchronisation and publish a destroy event to all connection in the same group.
-- Remove an_object from the standard group.
-- (From EM_NET_BASE)
-- Handle client ACK messages.
-- (From EM_NET_BASE)
-- List of pending 2PC events
-- The key of the hashtable is the event_id.
-- The value of the hashtable is the EVENT itself and the list of connections whose ACKs are not received yet.
-- (From EM_NET_BASE)
-- Send an_event to clients that have not sent an acknowledgement yet.
-- (From EM_NET_BASE)
-- Create a new group with a_group_name and make it available in last_created_group.
-- a_group_name must be unique.
-- (From EM_NET_BASE)
-- Group with group_name
-- (From EM_NET_BASE)
-- Does group with a_group_name exist?
-- (From EM_NET_BASE)
-- Last group that was created by create_group
-- (From EM_NET_BASE)
-- Standard group
-- Many convenience features use this group
-- (From EM_NET_BASE)
-- Disable time synchronisation.
-- (From EM_NET_BASE)
-- Enable time synchronisation.
-- (From EM_NET_BASE)
-- Is time synchronisation enabled?
-- (From EM_NET_BASE)
-- Set time_sync_group to a_group.
-- (From EM_NET_BASE)
-- Time in milliseconds!
-- (From EM_NET_BASE)
-- Group used for time synchronisation
-- (From EM_NET_BASE)
-- Create a connection and monitor it for timeouts.
-- (From EM_NET_BASE)
-- Create a connection and don't monitor it for timeouts.
-- Use this for broadcasts and other cases where you have mainly outgoing traffic.
-- (From EM_NET_BASE)
-- Delete a_connection.
-- (From EM_NET_BASE)
-- Last created connection
-- (From EM_NET_BASE)
-- Publish an_event to the standard group.
-- (From EM_NET_BASE)
-- Event that is called if a connection timeout occurs
-- (From EM_NET_BASE)
-- Enable auto transmission of packets.
-- The mechanism tries to send packets with a frequency of net_fps.
-- (From EM_NET_BASE)
-- Send updated objects for each group to clients.
-- (From EM_NET_BASE)
-- Publish an_event to the event queue.
-- (From EM_NET_EVENT_PROCESSOR)
-- Set are_timed_procedures_paused to a_value
-- Use this to pause the procedure callbacks. This is really usefull if you want to pause a game!
-- However, this will not pause functions added with add_timed_callback.
-- (From EM_DELAYED_PROCEDURES)
-- Game identifier
-- (From EM_NET_BASE)
-- Periode between heartbeat messages to the master server
-- Is auto transmit enabled?
-- Use this to automate the sending of outgoing data.
-- This relies on the net_fps frequency.
-- (From EM_NET_BASE)
-- Is discovery response enabled?
-- Is sending heartbeats to the master server enabled?
-- Masterserver group
-- Add a masterserver to this group and he'll receive heartbeat's if sending heartbeats is enabled.
-- Server name
-- This will be sent to the master server. Chose a meaningful name like: "Roxxor server"
-- Network updates per second
-- (From EM_NET_BASE)
-- Object types which can be used in this implementation
-- (From EM_NET_BASE)
-- List of groups
-- (From EM_NET_BASE)
-- List of objects which are synchronized over the network
-- (From EM_NET_BASE)
-- Connection which sent the last update
-- (From EM_NET_BASE)
-- ID manager for events
-- (From EM_NET_BASE)
-- ID manager for net objects
-- (From EM_NET_BASE)
-- Object creation factory
-- (From EM_NET_BASE)
-- Are timed prcedures paused?
-- (From EM_DELAYED_PROCEDURES)
-- Handle data reveived event.
-- (From EM_SOCKET)
-- Handle send failed.
-- (From EM_UDP_SOCKET)
-- Socket id of Net2
-- (From EM_SOCKET)
-- pause started ticks
-- Used to compute a timedifference to implement pause mechanism.
-- (From EM_DELAYED_PROCEDURES)
-- list of procedures
-- (From EM_DELAYED_PROCEDURES)
This is the server side of the client-server implementation of the multiplayer framework.
This is a server that has the ability to let EM_NET_CLIENTs join.