indexing description: "[ A utility class for use as a return value for event-interest registration methods. Objects of this class are meant to encapsulate the information needed by a client to identify a notification as a response to a registration request and to maintain that registration request. It is not mandatory for an event-interest registration method to use this class. A registration of interest in some kind of event that occurs within the scope of a transaction is leased in the same way as other event interest registrations. However, the duration of the registration is the minimum of the length of the lease and the duration of the transaction. Simply put, when the transaction ends (either because of a commit or an abort) the interest registration also ends. This is true even if the lease for the event registration has not expired and no call has been made to cancel the lease. ]" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date$" revision: "$Revision$" class EGS_EVENT_REGISTRATION inherit EGS_EXTERNAL_CPP_OBJECT create make_from_external feature -- Queries id: INTEGER_64 is -- do Result := cpp_get_id (object_ptr) end lease: EGS_LEASE is -- local lease_ptr: POINTER a_lease: POINTER do lease_ptr := cpp_get_lease_ptr (object_ptr) a_lease := cpp_get_lease (lease_ptr) create Result.make_from_external (a_lease) cpp_delete_lease (lease_ptr) end sequence_number: INTEGER_64 is -- do Result := cpp_get_sequence_number (object_ptr) end feature {NONE} -- externals cpp_delete (obj_ptr: POINTER) is external "C++ inline use " alias "delete ((OpenSpaces::EventRegistrationPtr*)$obj_ptr)" end cpp_get_id (obj_ptr: POINTER): INTEGER_64 is require obj_ptr_not_null: obj_ptr /= default_pointer external "C++ inline use " alias "(*((OpenSpaces::EventRegistrationPtr*)$obj_ptr))->getID()" end cpp_get_sequence_number (obj_ptr: POINTER): INTEGER_64 is require obj_ptr_not_null: obj_ptr /= default_pointer external "C++ inline use " alias "(*((OpenSpaces::EventRegistrationPtr*)$obj_ptr))->getSequenceNumber()" end cpp_get_lease_ptr (obj_ptr: POINTER): POINTER require obj_ptr_not_null: obj_ptr /= default_pointer external "C++ inline use " alias "new OpenSpaces::LeasePtr((*((OpenSpaces::EventRegistrationPtr*)$obj_ptr))->getLease())" end cpp_get_lease (obj_ptr: POINTER): POINTER require obj_ptr_not_null: obj_ptr /= default_pointer external "C++ inline use " alias "((OpenSpaces::LeasePtr*)$obj_ptr)->get()" end cpp_delete_lease (obj_ptr: POINTER) is require obj_ptr_not_null: obj_ptr /= default_pointer external "C++ inline use " alias "delete ((OpenSpaces::LeasePtr*)$obj_ptr)" end feature 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