Automatic generation produced by ISE Eiffel
note description: "Encapsulation of standard implementation of IStream interface." legal: "See notice at end of class." status: "See notice at end of class." date: "$Date: 2017-04-13 08:48:42 -0800 (Thu, 13 Apr 2017) $" revision: "$Revision: 100178 $" class interface ECOM_STREAM create make_from_other (other: ECOM_INTERFACE) -- Make from other Queriable. -- (from ECOM_QUERIABLE) require -- from ECOM_QUERIABLE non_void_other: other /= Void ensure -- from ECOM_QUERIABLE valid_initializer: initializer /= default_pointer exists: exists make_from_pointer (cpp_obj: POINTER) -- Make from pointer require -- from ECOM_QUERIABLE non_default_pointer: cpp_obj /= default_pointer ensure -- from ECOM_QUERIABLE valid_initializer: initializer /= default_pointer exists: exists feature -- Access access_time: WEL_FILE_TIME -- Access time creation_time: WEL_FILE_TIME -- Creation time description (stat_flag: INTEGER_32): ECOM_STATSTG -- STATSTG structure -- See class ECOM_STAT_FLAGS for stat_flag values. require valid_stat_flag: is_valid_stat_flag (stat_flag) ensure Result /= Void end_of_stream: BOOLEAN -- Is current seek pointer at end of stream? -- Valid only after `read` ,`update_end_of_stream`, `start`, or `finish`. Exception_manager: EXCEPTION_MANAGER -- Exception manager -- (from EXCEPTION_MANAGER_FACTORY) ensure -- from EXCEPTION_MANAGER_FACTORY instance_free: class exception_manager_not_void: Result /= Void exists: BOOLEAN -- Is wrapped structure initialized? -- (from ECOM_QUERIABLE) generating_type: TYPE [ECOM_STREAM] -- Type of current object -- (type of which it is a direct instance) -- (from ANY) ensure -- from ANY generating_type_not_void: Result /= Void generator: STRING_8 -- Name of current object's generating class -- (base class of the type of which it is a direct instance) -- (from ANY) ensure -- from ANY generator_not_void: Result /= Void generator_not_empty: not Result.is_empty is_valid_lock (lock: INTEGER_32): BOOLEAN -- Is lock a valid locktype? -- (from ECOM_LOCK_TYPES) is_valid_seek (seek: INTEGER_32): BOOLEAN -- Is `seek` a valid IStorage and IStream seek flag? -- (from ECOM_STREAM_SEEK) is_valid_stat_flag (flag: INTEGER_32): BOOLEAN -- Is flag a valid stat flag? -- (from ECOM_STAT_FLAGS) item: POINTER -- Pointer to COM object wrapper. -- (from ECOM_QUERIABLE) last_boolean: BOOLEAN -- last read BOOLEAN last_character: CHARACTER_8 -- last read CHARACTER last_integer: INTEGER_32 -- last read INTEGER last_real: REAL_32 -- last read REAL last_string: STRING_8 -- last read STRING lock_exclusive: INTEGER_32 -- Attempts to read or write this stream by other stream openings -- return error EOLE_STG_E_ACCESSDENIED. -- (from ECOM_LOCK_TYPES) lock_onlyonce: INTEGER_32 -- If lock is granted, no other EOLE_LOCK_ONLYONCE lock can be -- obtained on bytes in given region. Usually this lock type -- is an alias for some other lock type and other semantics might occur -- as a side effect. -- (from ECOM_LOCK_TYPES) lock_write: INTEGER_32 -- If lock is granted, specified region of stream -- can be read by calling IStream.Read from any opening of -- this stream. Attempts to write to this region from any opening -- of this stream other than the one to which lock was granted -- returns error EOLE_STG_E_ACCESSDENIED. -- (from ECOM_LOCK_TYPES) locks_supported: INTEGER_32 -- Types of region locking supported by stream modification_time: WEL_FILE_TIME -- Modification time name: READABLE_STRING_32 -- Name size: ECOM_ULARGE_INTEGER -- Size in bytes statflag_default: INTEGER_32 -- Indicate that this is not used for property -- (from ECOM_STAT_FLAGS) statflag_noname: INTEGER_32 -- Indicate that this is not used for property -- (from ECOM_STAT_FLAGS) stream_seek_cur: INTEGER_32 -- Sets seek position relative to -- current position of stream -- (from ECOM_STREAM_SEEK) stream_seek_end: INTEGER_32 -- Sets seek position relative to -- current end of stream -- (from ECOM_STREAM_SEEK) stream_seek_set: INTEGER_32 -- Sets seek position relative to -- beginning of stream -- (from ECOM_STREAM_SEEK) feature -- Comparison frozen deep_equal (a: ANY; b: like arg #1): BOOLEAN -- Are a and b either both void -- or attached to isomorphic object structures? -- (from ANY) ensure -- from ANY instance_free: class shallow_implies_deep: standard_equal (a, b) implies Result both_or_none_void: (a = Void) implies (Result = (b = Void)) same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b)) symmetric: Result implies deep_equal (b, a) frozen equal (a: ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached -- to objects considered equal? -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b)) frozen is_deep_equal alias "≡≡≡" (other: ECOM_STREAM): BOOLEAN -- Are Current and other attached to isomorphic object structures? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY shallow_implies_deep: standard_is_equal (other) implies Result same_type: Result implies same_type (other) symmetric: Result implies other.is_deep_equal (Current) is_equal (other: ECOM_STREAM): BOOLEAN -- Is other attached to an object considered -- equal to current object? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY symmetric: Result implies other ~ Current consistent: standard_is_equal (other) implies Result frozen standard_equal (a: ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached to -- field-by-field identical objects of the same type? -- Always uses default object comparison criterion. -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b)) frozen standard_is_equal alias "≜" (other: ECOM_STREAM): BOOLEAN -- Is other attached to an object of the same type -- as current object, and field-by-field identical to it? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY same_type: Result implies same_type (other) symmetric: Result implies other.standard_is_equal (Current) feature -- Status report conforms_to (other: ANY): BOOLEAN -- Does type of current object conform to type -- of other (as per Eiffel: The Language, chapter 13)? -- (from ANY) require -- from ANY other_not_void: other /= Void same_type (other: ANY): BOOLEAN -- Is type of current object identical to type of other? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY definition: Result = (conforms_to (other) and other.conforms_to (Current)) feature -- Duplication copy (other: ECOM_STREAM) -- Update current object using fields of object attached -- to other, so as to yield equal objects. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_equal: Current ~ other frozen deep_copy (other: ECOM_STREAM) -- Effect equivalent to that of: -- `copy` (other . `deep_twin`) -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY deep_equal: deep_equal (Current, other) frozen deep_twin: ECOM_STREAM -- New object structure recursively duplicated from Current. -- (from ANY) ensure -- from ANY deep_twin_not_void: Result /= Void deep_equal: deep_equal (Current, Result) frozen standard_copy (other: ECOM_STREAM) -- Copy every field of other onto corresponding field -- of current object. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_standard_equal: standard_is_equal (other) frozen standard_twin: ECOM_STREAM -- New object field-by-field identical to other. -- Always uses default copying semantics. -- (from ANY) ensure -- from ANY standard_twin_not_void: Result /= Void equal: standard_equal (Result, Current) frozen twin: ECOM_STREAM -- New object equal to Current -- `twin` calls `copy`; to change copying/twinning semantics, redefine `copy`. -- (from ANY) ensure -- from ANY twin_not_void: Result /= Void is_equal: Result ~ Current feature -- Basic operations frozen default: ECOM_STREAM -- Default value of object's type -- (from ANY) frozen default_pointer: POINTER -- Default value of type POINTER -- (Avoid the need to write p.`default` for -- some p of type POINTER.) -- (from ANY) ensure -- from ANY instance_free: class default_rescue -- Process exception for routines with no Rescue clause. -- (Default: do nothing.) -- (from ANY) frozen do_nothing -- Execute a null action. -- (from ANY) ensure -- from ANY instance_free: class feature -- Implementation dispose -- Delete C++ wrapper. require -- from DISPOSABLE True feature -- Basic Operations clone_stream: ECOM_STREAM -- New stream referencing -- the same bytes as Current -- Seek pointer is also cloned ensure clone_created: Result /= Void and then Result.exists copy_to (destination: ECOM_STREAM; bytes: ECOM_ULARGE_INTEGER) -- Copy bytes number of bytes from current seek pointer -- in stream to current seek pointer in -- destination. require valid_destination: destination /= Void and then destination.exists valid_bytes_number: bytes /= Void and then bytes.exists finish -- Set seek pointer to end of stream. ensure at_end: end_of_stream lock_region (offset, count: ECOM_ULARGE_INTEGER; lock: INTEGER_32) -- Restricts access to range of bytes defined by -- offset and count. require valid_offset: offset /= Void and then offset.exists valid_count: count /= Void and then count.exists valid_lock: is_valid_lock (lock) read (buffer: POINTER; bytes: INTEGER_32) -- Reads bytes number of bytes from stream -- into buffer starting at current seek pointer. require valid_buffer: buffer /= default_pointer valid_bytes: bytes >= 0 read_boolean -- Read boolean from stream. read_character -- Read character from stream. read_integer -- Read integer from stream. read_real -- Read real from stream. read_string -- Read string from stream. seek (displacement: ECOM_LARGE_INTEGER; origin: INTEGER_32) -- Move seek pointer by displacement -- relative to origin. -- See class ECOM_STREAM_SEEK for origin values. require non_void_displacement: displacement /= Void valid_displacement: displacement.exists valid_seek_origin: is_valid_seek (origin) set_size (new_size: ECOM_ULARGE_INTEGER) -- Change size of stream to new_size. require valid_new_size: new_size /= Void and then new_size.exists ensure size = new_size start -- Set seek pointer to beginning of stream. ensure not_end: not end_of_stream unlock_region (offset, count: ECOM_ULARGE_INTEGER; lock: INTEGER_32) -- Removes access restriction to range of bytes defined by -- offset and count. require valid_offset: offset /= Void and then offset.exists valid_count: count /= Void and then count.exists valid_lock: is_valid_lock (lock) update_end_of_stream -- Update value of `end_of_stream`. write (buffer: POINTER; bytes: INTEGER_32) -- Writes bytes number of bytes into stream -- starting at current seek pointer. require valid_buffer: buffer /= default_pointer write_boolean (boolean: BOOLEAN) -- Write boolean into stream. write_character (character: CHARACTER_8) -- Write character into stream. write_integer (integer: INTEGER_32) -- Write integer into stream. write_real (real: REAL_32) -- Write real into stream. write_string (string: READABLE_STRING_GENERAL) -- Write string into stream. require string /= Void feature -- Output Io: STD_FILES -- Handle to standard file setup -- (from ANY) ensure -- from ANY instance_free: class io_not_void: Result /= Void out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY out_not_void: Result /= Void print (o: ANY) -- Write terse external representation of o -- on standard output. -- (from ANY) ensure -- from ANY instance_free: class frozen tagged_out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY tagged_out_not_void: Result /= Void feature -- Platform Operating_environment: OPERATING_ENVIRONMENT -- Objects available from the operating system -- (from ANY) ensure -- from ANY instance_free: class operating_environment_not_void: Result /= Void invariant -- from ECOM_QUERIABLE queriable_invariant: initializer /= default_pointer and then exists -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) note copyright: "Copyright (c) 1984-2017, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class ECOM_STREAM -- Generated by Eiffel Studio --
For more details: eiffel.org