indexing description: "[ Test for Eiffel-GigaSpaces wrapper loosely based on POCO benchmark example ]" status: "See notice at end of class." legal: "See notice at end of class." date: "$Date$" revision: "$Revision$" class MY_PACKAGE_MY_PARENT_POCO inherit BENCHMARK_BASE_OBJECT redefine cpp_create, cpp_cast_pointer end SERIALIZER_HELPER create make, make_from_external, make_from_entry feature set_my_double_array (an_array: ARRAY[REAL_64]) is require an_array_not_void: an_array /= Void local double_vector_pointer: POINTER do double_vector_pointer := create_vector_from_real_64_array (an_array) cpp_set_my_double_array (object_ptr, double_vector_pointer) delete_real_64_vector (double_vector_pointer) end set_my_string_value (a_value: STRING) is require a_value_not_void: a_value /= Void do create internal_string_value.make (a_value) cpp_set_my_string_value (object_ptr, internal_string_value.item) end feature {NONE} -- Implementation: Access internal_string_value: C_STRING -- Storage for `my_string_value'. feature {NONE} -- Externals cpp_create: POINTER is external "C++ inline use %"benchmarkSerializer.h%"" alias "new MyPackage_MyParentPoco()" end cpp_cast_pointer (obj_ptr: POINTER): POINTER is external "C++ inline use %"benchmarkSerializer.h%"" alias "(dynamic_cast((OpenSpaces::IEntry*)$obj_ptr))" end cpp_set_my_string_value (obj_ptr: POINTER; a_value: POINTER) is require obj_ptr_not_null: obj_ptr /= default_pointer a_value_not_null: a_value /= default_pointer external "C++ inline use %"benchmarkSerializer.h%"" alias "((MyPackage_MyParentPoco*)$obj_ptr)->myStringValue = (const char*)$a_value" end cpp_set_my_double_array (obj_ptr: POINTER; a_value: POINTER) is require obj_ptr_not_null: obj_ptr /= default_pointer a_value_not_null: a_value /= default_pointer external "C++ inline use %"benchmarkSerializer.h%"" alias "((MyPackage_MyParentPoco*)$obj_ptr)->myDoubleArray = (*((std::vector*)$a_value))" end indexing 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