indexing description: "[ Type manager for all network objects and events. This manager registers all predefined network objects and events. If you want create your own network objects, you need to subclass this class and redefine the empty `register' feature. Look at the `make_and_initialize_factory' creation procedure for a sample of how to register object types. Afterwards, you've to instanciate the subclass(es) of EM_NET_BASE with your new EM_NET_OBJECT_TYPES as generic parameter. Every type ID must be unique. Type IDs between 0 and 99 are predefined and must not be used. Use type ID's starting from 100 upwards for your own objects. These boundaries are set in the EM_NET_OBJECT_FACTORY trough `lowest_system_id' and `highest_system_id'. ]" date: "$Date$" revision: "$Revision$" class EM_NET_OBJECT_TYPES create make_and_initialize_factory feature {NONE} -- Initialisation make_and_initialize_factory (an_object_factory: EM_NET_OBJECT_FACTORY) is -- Register system object creation procedures in `an_object_factory'. do net_object_factory := an_object_factory if not net_object_factory.is_initialized then net_object_factory.add (em_net_event_container_object, agent create_em_net_event_container_object) net_object_factory.add (em_net_time_object, agent create_em_net_time_object) net_object_factory.add (em_net_status_request, agent create_em_net_status_request) net_object_factory.add (em_net_status_message, agent create_em_net_status_message) net_object_factory.add (em_net_time_sync_request, agent create_em_net_time_sync_request) net_object_factory.add (em_net_time_sync_response, agent create_em_net_time_sync_response) net_object_factory.add (em_net_server_discovery, agent create_em_net_server_discovery) net_object_factory.add (em_net_server_discovery_response, agent create_em_net_server_discovery_response) net_object_factory.add (em_net_join_request, agent create_em_net_join_request) net_object_factory.add (em_net_join_response, agent create_em_net_join_response) net_object_factory.add (em_net_2pc_ack, agent create_em_net_2pc_ack) net_object_factory.add (em_net_create_object_request, agent create_em_net_create_object_request) net_object_factory.add (em_net_create_object_response, agent create_em_net_create_object_response) net_object_factory.add (em_net_destroy_object_request, agent create_em_net_destroy_object_request) net_object_factory.add (em_net_destroy_object_response, agent create_em_net_destroy_object_response) net_object_factory.add (em_net_leave_event, agent create_em_net_leave_event) net_object_factory.mark_initialized register end ensure factory_initialized: net_object_factory.is_initialized end feature -- Registration register is -- Register user object creation procedures. -- Redefine this feature to add user objects and events. do end -- Predefined system objects feature -- EM_NET_EVENT_CONTAINER_OBJECT Em_net_event_container_object: INTEGER is 1 create_em_net_event_container_object: EM_NET_EVENT_CONTAINER_OBJECT is -- return an instance of the class EM_NET_EVENT_OBJECT do create Result.make_set_type (Em_net_event_container_object) Result.set_id (Em_net_event_container_object) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_TIME_OBJECT Em_net_time_object: INTEGER is 2 create_em_net_time_object: EM_NET_TIME_OBJECT is -- return an instance of the class EM_NET_EVENT_OBJECT do create Result.make_set_type (Em_net_time_object) Result.set_id (Em_net_time_object) ensure an_object_has_been_generated: Result /= Void end -- Events feature -- EM_NET_STATUS_REQUEST Em_net_status_request: INTEGER is 21 -- If you change this value, you need to change the binary string in -- "resources/tools/highscore_server/serverstatus.php" accordingly create_em_net_status_request: EM_NET_STATUS_REQUEST is -- return an instance of the class EM_NET_STATUS_REQUEST do create Result.make_set_type (Em_net_status_request) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_STATUS_MESSAGE Em_net_status_message: INTEGER is 22 create_em_net_status_message: EM_NET_STATUS_MESSAGE is -- return an instance of the class EM_NET_STATUS_REQUEST do create Result.make_set_type (Em_net_status_message) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_TIME_SYNC_REQUEST Em_net_time_sync_request: INTEGER is 23 create_em_net_time_sync_request: EM_NET_TIME_SYNC_REQUEST is -- return an instance of the class EM_NET_TIME_SYNC_REQUEST do create Result.make_set_type (Em_net_time_sync_request) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_TIME_SYNC_RESPONSE Em_net_time_sync_response: INTEGER is 24 create_em_net_time_sync_response: EM_NET_TIME_SYNC_RESPONSE is -- return an instance of the class EM_NET_TIME_SYNC_RESPONSE do create Result.make_set_type (Em_net_time_sync_response) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_SERVER_DISCOVERY_RESPONSE Em_net_server_discovery_response: INTEGER is 25 create_em_net_server_discovery_response: EM_NET_SERVER_DISCOVERY_RESPONSE is -- return an instance of the class do create Result.make_set_type (Em_net_server_discovery_response) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_SERVER_DISCOVERY Em_net_server_discovery: INTEGER is 26 create_em_net_server_discovery: EM_NET_SERVER_DISCOVERY is -- return an instance of the class do create Result.make_set_type (Em_net_server_discovery) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_2PC_ACK Em_net_2pc_ack: INTEGER is 27 create_em_net_2pc_ack: EM_NET_2PC_ACK is -- Return an instance of the class do create Result.make_set_type (Em_net_2pc_ack) ensure an_object_has_been_generated: Result /= Void end -- 2PC events feature -- EM_NET_JOIN_REQUEST Em_net_join_request: INTEGER is 51 create_em_net_join_request: EM_NET_JOIN_REQUEST is -- return an instance of the class do create Result.make_set_type (Em_net_join_request) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_JOIN_RESPONSE Em_net_join_response: INTEGER is 52 create_em_net_join_response: EM_NET_JOIN_RESPONSE is -- return an instance of the class do create Result.make_set_type (Em_net_join_response) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_CREATE_OBJECT_REQUEST Em_net_create_object_request: INTEGER is 53 create_em_net_create_object_request: EM_NET_CREATE_OBJECT_REQUEST is -- Return an instance of the class do create Result.make_set_type (Em_net_create_object_request) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_CREATE_OBJECT_RESPONSE Em_net_create_object_response: INTEGER is 54 create_em_net_create_object_response: EM_NET_CREATE_OBJECT_RESPONSE is -- Return an intance of the class do create Result.make_set_type (Em_net_create_object_response) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_DESTROY_OBJECT_REQUEST Em_net_destroy_object_request: INTEGER is 55 create_em_net_destroy_object_request: EM_NET_DESTROY_OBJECT_REQUEST is -- Return an instance of the class do create Result.make_set_type (Em_net_destroy_object_request) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_DESTROY_OBJECT_RESPONSE Em_net_destroy_object_response: INTEGER is 56 create_em_net_destroy_object_response: EM_NET_DESTROY_OBJECT_RESPONSE is -- Return an intance of the class do create Result.make_set_type (Em_net_destroy_object_response) ensure an_object_has_been_generated: Result /= Void end feature -- EM_NET_DESTROY_OBJECT_RESPONSE Em_net_leave_event: INTEGER is 57 create_em_net_leave_event: EM_NET_LEAVE_EVENT is -- Return an intance of the class do create Result.make_set_type (Em_net_leave_event) ensure an_object_has_been_generated: Result /= Void end feature {EM_NET_OBJECT_TYPES} -- Implementation net_object_factory: EM_NET_OBJECT_FACTORY end