INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES

indexing

project: "Visual Eiffel COM"
copyright: "Object Tools, 1998-2001"
version: "1.1"
key: "COM"
cluster: ecom
class ECOM_LAYOUT
inherit

RTS_MEMORY_MAPPED_AREA_ARRAY [POINTER]
rename
make as make_area
end

MEMORY
undefine
copy,
is_equal
redefine
dispose
end

ECOM_SERVER_GLOBALS
undefine
copy,
is_equal
end
creation

make
feature -- data

iclass_info: RTS_CLASS_INFO
feature -- operations

name: STRING
ensure
non_void_result: Result /= void

cointerface_guid: ECOM_GUID
require
valid_iclass_info: iclass_info.is_extended_ci_format

make (ici: RTS_CLASS_INFO; coclass: ECOM_GLOBALS)
require
non_void_ici: ici /= void
valid_interface: ici.has_ancestor (ns.corootinterface_name) and then not ici.has_ancestor (ns.corootclass_name)
non_void_coclass: coclass /= void
valid_coclass: object2class_info (coclass).has_ancestor (ns.corootclass_name)
classes_consistency: object2class_info (coclass).has_ancestor (ici.name)
ensure
non_empty_interface: count >= 3
non_void_iid: cointerface_guid /= void

dispose

get_methods (ici: RTS_CLASS_INFO; coclass: ECOM_GLOBALS): ARRAY [POINTER]
require
non_void_ici: ici /= void
non_void_coclass: coclass /= void
ensure
non_void_result: Result /= void
valid_result: Result.count >= 3

add_methods (dst: ARRAY [POINTER]; src: RTS_CLASS_INFO_EX; coclass: ECOM_GLOBALS)
require
non_void_dst: dst /= void
non_void_src: src /= void
valid_src: src.is_cointerface_part
non_void_coclass: coclass /= void

get_method_address (a: POINTER; coclass: ECOM_GLOBALS): POINTER
require
valid_address: a /= default_pointer
non_void_coclass: coclass /= void
ensure
valid_result: Result /= default_pointer

get_iparents (ci: RTS_CLASS_INFO): ARRAY [RTS_CLASS_INFO]
require
non_void_class_info: ci /= void
valid_interface: ci.has_ancestor (ns.corootinterface_name) and then not ci.has_ancestor (ns.corootclass_name)
ensure
non_void_result: Result /= void
valid_result: Result.count > 0
valid_parents:

get_stub (a: POINTER; owner: ECOM_GLOBALS): POINTER
require
non_default_address: a /= default_pointer
valid_address: rts_main_data.module_data.is_eiffel_code (a)
ensure
valid_result: Result /= default_pointer
end -- class ECOM_LAYOUT

INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES