+
Point of view
All features
deferred class WRAPPER_FACTORY [ITEM_ -> WRAPPER]
Summary
A wrapper factory returns the "fittest" wrapper object given a pointer to a wrapped "thing". A wrapper factory would implement the typing policy described in the wrapper library documentation. In fact some libraries implement their own type system like GObject, while other having smaller scopes will describe the types of each returned pointer, sometime being polymorphic. If the developer needs to create wrappers of several different types and those types are pre-defined, known during the development of the wrapper, for example when the actual returned type is explained in the documentation of the library it is sometimes better to use (as a client) one of its expanded variant, i.e. G_OBJECT_EXPANDED_FACTORY.
Direct parents
Inherit list: WRAPPER_HANDLER
Known children
Inherit list: CACHING_FACTORY, WRAPPER_COLLECTION
Insert list: READ_LINE_HISTORY
Overview
Features
Implementation
{WRAPPER, WRAPPER_HANDLER}
  • wrapper (a_pointer: POINTER): ITEM_
    The wrapper for a_pointer.
  • wrapper_or_void (a_pointer: POINTER): ITEM_
    A wrapper for a_pointer or Void if a_pointer default_pointer (NULL in C).
Utility features
{}
Wrapper related exceptions
{}
Various exceptions codes:
{ANY}
{ANY}
Status report:
{ANY}
Basic operations:
{ANY}
  • die (code: INTEGER_32)
    Terminate execution with exit status code, without triggering an exception.
  • raise (name: STRING)
    Raise a developer exception of name name.
  • throw (a_exception: EXCEPTION)
Non-Standard Extensions:
{ANY}
{}
wrapper (a_pointer: POINTER): ITEM_
deferred function
The wrapper for a_pointer.
wrapper_or_void (a_pointer: POINTER): ITEM_
effective function
A wrapper for a_pointer or Void if a_pointer default_pointer (NULL in C).
null_or (a_wrapper: WRAPPER): POINTER
effective function
{}
The handle of a_wrapper, or the default_pointer if a_wrapper is Void
null_or_string (a_string: ABSTRACT_STRING): POINTER
effective function
{}
A pointer to a memory area containing the content of a_string or default_pointer if a_string is Void.
null_or_array (a_collection: WRAPPER_COLLECTION[WRAPPER]): POINTER
effective function
{}
A pointer to the contenct of a_collection or NULL (default_pointer) if a_collection is Void
collection_to_c_array (a_collection: COLLECTION[WRAPPER]): FAST_ARRAY[POINTER]
effective function
{}
An array containing the pointers to the objects wrapped by a_collection wrappers.
pointer_to_unwrapped_deferred_object: STRING
is "A C function returned a pointer to an unwrapped object which is wrapped by a deferred class. It is not possible to create a correct wrapper."
constant attribute
{}
retrieved_object_mismatch: STRING
is "Retrieved_object_mismatch: the Eiffel wrapper associated with a pointer is not an actual wrapper for the object referred by that pointer "
constant attribute
{}
copying_an_uncopyable: STRING
is "Trying to copy an uncopyable wrapper: such objects are usually shortly lived"
constant attribute
{}
Check_instruction: INTEGER_32
is 1
constant attribute
{ANY}
Exception code for violated check.
Class_invariant: INTEGER_32
is 2
constant attribute
{ANY}
Exception code for violated class invariant.
Developer_exception: INTEGER_32
is 3
constant attribute
{ANY}
Exception code for developer exception.
Incorrect_inspect_value: INTEGER_32
is 4
constant attribute
{ANY}
Exception code for inspect statement.
Loop_invariant: INTEGER_32
is 5
constant attribute
{ANY}
Exception code for violated loop invariant
Loop_variant: INTEGER_32
is 6
constant attribute
{ANY}
Exception code for non-decreased loop variant
No_more_memory: INTEGER_32
is 7
constant attribute
{ANY}
Exception code for failed memory allocation
Postcondition: INTEGER_32
is 8
constant attribute
{ANY}
Exception code for violated postcondition.
Precondition: INTEGER_32
is 9
constant attribute
{ANY}
Exception code for violated precondition.
Routine_failure: INTEGER_32
is 10
constant attribute
{ANY}
Exception code for failed routine.
Os_signal: INTEGER_32
is 11
constant attribute
{ANY}
Exception code for a signal received from the OS.
Void_attached_to_expanded: INTEGER_32
is 12
constant attribute
{ANY}
Exception code for attachment of Void value to expanded entity.
Void_call_target: INTEGER_32
is 13
constant attribute
{ANY}
Exception code for feature applied to Void reference
System_level_type_error: INTEGER_32
is 14
constant attribute
{ANY}
Exception code for the system-level type error (this kind of error mostly arise with covariant redefinition).
exception_name: STRING
effective function
{ANY}
name_of_exception (a_exception: INTEGER_32): STRING
effective function
{ANY}
developer_exception: EXCEPTION
effective function
{ANY}
The last developer-thrown exception.
developer_exception_name: STRING
effective function
{ANY}
Name of last developer-raised exception.
is_developer_exception: BOOLEAN
effective function
{ANY}
Is the last exception originally due to a developer exception?
is_developer_named_exception: BOOLEAN
effective function
{ANY}
Is the last exception originally due to a developer exception?
is_developer_exception_of_name (name: STRING): BOOLEAN
effective function
{ANY}
Is the last exception originally due to a developer exception of name name?
assertion_violation: BOOLEAN
effective function
{ANY}
Is last exception originally due to a violated assertion or non-decreasing variant?
exception: INTEGER_32
{ANY}
Code of last exception that occurred.
is_signal: BOOLEAN
effective function
{ANY}
Is last exception originally due to an external event (operating system signal) ?
die (code: INTEGER_32)
effective procedure
{ANY}
Terminate execution with exit status code, without triggering an exception.
raise (name: STRING)
effective procedure
{ANY}
Raise a developer exception of name name.
throw (a_exception: EXCEPTION)
effective procedure
{ANY}
signal_number: INTEGER_32
{ANY}
Signal Number received from OS.
named_exception: NAMED_EXCEPTION
once function
{}
developer_exception_memory: REFERENCE[EXCEPTION]
once function
{}
raise_exception (code: INTEGER_32)
{}