indexing description: "[ The EGS_EVENT_SESSION_FACTORY is a service class that create EGS_DATA_EVENT_SESSION - for handling data events. Once a factory has been created, it can be used to create sessions. Eevery session is configured according to an EGS_EVENT_SESSION_CONFIG object and is bounded to a transaction. ]" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date$" revision: "$Revision$" class EGS_EVENT_SESSION_FACTORY inherit EGS_EXTERNAL_CPP_OBJECT EGS_SHARED_EXCEPTION_HANDLER create make feature -- Initialisation make (space_proxy: EGS_SPACE_PROXY) is -- Creates the factory according to the space. -- -- @param space the associated space require space_proxy_not_void: space_proxy /= Void do make_from_external (cpp_create (space_proxy.object_ptr)) end feature new_data_event_session (config: EGS_EVENT_SESSION_CONFIG; txn: EGS_TRANSACTION): EGS_DATA_EVENT_SESSION is -- creates a new EGS_DATA_EVENT_SESSION bounded to the specified transaction -- according to the configuration object. -- -- @param config the set of configuration params used to configure the session. -- @param tx the bounded transaction. Void if no transaction is needed. -- @return the newly created DataEventSession. require was_not_exception: not was_exception confid_not_void: config /= Void local txn_pointer: POINTER res: POINTER do if txn /= Void then txn_pointer := txn.object_ptr end res := cpp_new_data_event_session (exception_handler, object_ptr, config.object_ptr, txn_pointer) if res /= default_pointer then create Result.make_from_external (res) end end feature {NONE} -- externals cpp_create (space_ptr: POINTER): POINTER is require space_ptr_not_null: space_ptr /= default_pointer external "C++ inline use " alias "new OpenSpaces::EventSessionFactoryPtr(OpenSpaces::EventSessionFactory::getFactory(*((OpenSpaces::SpaceProxyPtr*)$space_ptr)))" end cpp_new_data_event_session (eh: EGS_EXCEPTION_HANDLER; obj_ptr: POINTER; config: POINTER; txn: POINTER): POINTER is require eh_not_void: eh /= Void obj_ptr_not_null: obj_ptr /= default_pointer config_not_null: config /= default_pointer external "C++ inline use " alias "[ try { return new OpenSpaces::DataEventSessionPtr((*((OpenSpaces::EventSessionFactoryPtr*)$obj_ptr))->newDataEventSession(*((OpenSpaces::EventSessionConfigPtr*)$config), ($txn != 0?(*((OpenSpaces::TransactionPtr*)$txn)):OpenSpaces::NULL_TX))); } catch(OpenSpaces::XAPException& e) { EGS_HANDLE_XAP_EXCEPTION($eh, e); return 0; } ]" end cpp_delete (obj_ptr: POINTER) is external "C++ inline use " alias "delete ((OpenSpaces::EventSessionFactoryPtr*)$obj_ptr)" end indexing library: "egigs-cpp: Library for accessing the GigaSpaces platform, POCO library based implementation." copyright: "Copyright (c) 2008, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 356 Storke Road, Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end