This library cluster has 95 classes.
ECF: base.ecf
Source code: directory list
Various hash-table, array, list, chain and linear types
Hash Tables
HASH_TABLE [G, K -> HASHABLE] EL_COUNTER_TABLE [K -> HASHABLE] EL_STRING_ESCAPER [S -> STRING_GENERAL create make end] EL_FUNCTION_RESULT_TABLE [TARGET, R] EL_HTTP_COOKIE_TABLE EL_CODE_TABLE [K -> HASHABLE] EL_UNIQUE_CODE_TABLE [K -> HASHABLE] EL_ESCAPE_TABLE EL_IMMUTABLE_STRING_TABLE* [GENERAL -> STRING_GENERAL create make end, IMMUTABLE -> IMMUTABLE_STRING_GENERAL] EL_TUPLE_FIELD_TABLE EL_STRING_GENERAL_UNESCAPER* [R -> READABLE_STRING_GENERAL, G -> STRING_GENERAL] EL_GROUP_TABLE [G, K -> HASHABLE] EL_FUNCTION_GROUP_TABLE [G, K -> HASHABLE] ECD_INDEX_TABLE* [G -> EL_STORABLE create make_default end, K -> HASHABLE] ECD_REFLECTIVE_INDEX_TABLE [G -> EL_REFLECTIVELY_SETTABLE_STORABLE create make_default end, K -> HASHABLE] EL_CACHE_TABLE* [G, K -> HASHABLE] EL_INITIALIZED_OBJECT_FACTORY [F -> EL_FACTORY [G], G] EL_INITIALIZED_FIELD_FACTORY EL_AGENT_CACHE_TABLE [G, K -> HASHABLE] EL_HASH_TABLE [G, K -> HASHABLE] EL_STRING_GENERAL_TABLE [G] EL_CONFORMING_INSTANCE_TABLE [G] EL_STRING_HASH_TABLE [G, K -> STRING_GENERAL create make end] EL_STRING_CONVERSION_TABLE EL_TYPE_TABLE [G] EL_IMMUTABLE_KEY_8_TABLE [G] EL_FUNCTION_CACHE_TABLE [G, OPEN_ARGS -> TUPLE create default_create end] EL_FILLED_STRING_8_TABLE EL_FILLED_STRING_TABLE* [STR -> READABLE_STRING_GENERAL]
Linear Chains
EL_LINEAR* [G] EL_FILE_GENERAL_LINE_SOURCE* [S -> STRING_GENERAL create make end] EL_STRING_8_IO_MEDIUM_LINE_SOURCE EL_PLAIN_TEXT_LINE_SOURCE EL_ENCRYPTED_PLAIN_TEXT_LINE_SOURCE EL_ZSTRING_IO_MEDIUM_LINE_SOURCE EL_LINEAR_STRINGS* [S -> STRING_GENERAL create make end] EL_SPLIT_STRING_LIST [S -> STRING_GENERAL create make end] EL_STRING_CHAIN* [S -> STRING_GENERAL create make end] EL_LINKED_STRING_LIST [S -> STRING_GENERAL create make, make_empty end] EL_STRING_LIST [S -> STRING_GENERAL create make end] EL_CHAIN* [G] EL_QUERYABLE_CHAIN* [G] EL_QUERYABLE_ARRAYED_LIST [G] ECD_ARRAYED_LIST [G -> EL_STORABLE create make_default end] ECD_STORABLE_ARRAYED_LIST [G -> EL_STORABLE create make_default end] EL_ARRAYED_LIST [G] EL_NAMEABLES_LIST [G -> EL_NAMEABLE [READABLE_STRING_GENERAL]] EL_UNIQUE_ARRAYED_LIST [G -> HASHABLE] EL_ARRAYED_COMPACT_INTERVAL_LIST EL_CALL_SEQUENCE [CALL_ARGS -> TUPLE create default_create end] EL_DISCARDING_ARRAYED_LIST [G] EL_DIRECTORY_LIST EL_SORTABLE_ARRAYED_LIST [G -> COMPARABLE] EL_ARRAYED_RESULT_LIST [G, R] EL_SPLIT_READABLE_STRING_LIST [S -> READABLE_STRING_GENERAL create make end] EL_TRANSLATION_ITEMS_LIST EL_ARRAYED_INTERVAL_LIST EL_SEQUENTIAL_INTERVALS EL_OCCURRENCE_INTERVALS EL_ARRAYED_MAP_LIST [K, G] EL_KEY_INDEXED_ARRAYED_MAP_LIST [K -> COMPARABLE, G] EL_CONFORMING_INSTANCE_TYPE_MAP [G] EL_HASHABLE_KEY_ARRAYED_MAP_LIST [K -> HASHABLE, G] EL_STYLED_TEXT_LIST* [S -> STRING_GENERAL] EL_STRING_CHAIN* [S -> STRING_GENERAL create make end]
Container Structure Extensions
This EL_CONTAINER_STRUCTURE [G] abstraction provides many extra facilities for classes that implement the CONTAINER [G] base class. It inherits class EL_CONTAINER_NUMERIC_CALCULATER [G].
EL_CONTAINER_STRUCTURE* [G] EL_HASH_SET [H -> HASHABLE] EL_MEMBER_SET [G -> EL_SET_MEMBER [G]] EL_FIELD_NAME_SET EL_CONTAINER_WRAPPER [G] EL_SAVED_CURSOR [G] EL_RESULT_SUMMATOR [G, N -> NUMERIC] EL_CONTAINER_ITEM [G] EL_RESULT_MAXIMUM [G, N -> (NUMERIC, COMPARABLE)] EL_LINEAR* [G] EL_CHAIN* [G] EL_QUERYABLE_CHAIN* [G] EL_QUERYABLE_ARRAYED_LIST [G] EL_ARRAYED_LIST [G]
Other Classes
Allows expression like: choose [48, 24] #? Executable.is_finalized
Further Information
Click on class link to see client examples.
Provide access to container internals like area: SPECIAL [G]
A data cell with deferred initialization of the item
Further Information
Click on class link to see client examples.
Abstraction for indexing a data array with
Shared cell
Further Information
Click on class link to see client examples.
State machine
Array that is indexable by a BOOLEAN value
Further Information
Click on class link to see client examples.
Array of 8 bit bytes: TO_SPECIAL [NATURAL_8]
Further Information
Click on class link to see descendants and client examples.
Abstraction with extendible area of type SPECIAL [G] area. It can be implemented with the aid of class EL_EXTENDABLE_AREA_IMP [G]
Further Information
Click on class link to see descendants.
Class to make descendants of abstract class EL_EXTENDABLE_AREA createable.
bytes with a count equal to muliple of a_block_size. Creation area arguments that do not fit exactly are padded with bytes of value equal to the padding count.
Slicing of a SPECIAL [G] array using zero based modulo indexing so that item (0, 1) is a special array containing the first two items and item (-2, -1) the last two.
Further Information
Click on class link to see notes.
Sub arrays implemented using shared memory areas rather than copied memory area. For large arrays, subarray memory copies can incurr a significant performance overhead. Using shared memory subarrays can in some applications reduce execution time by as much as 50%. (hard to believe I know)
Sub array can be referenced using either lower to upper indexes of parent array or 1 based index.
Further Information
Click on class link to see client examples.
An array of decimal version numbers that can be compacted into a NATURAL_32 number
Further Information
Click on class link to see notes and client examples.
EL_CACHE_TABLE with new_item calling a supplied agent function
Further Information
Click on class link to see client examples.
Table to cache results of new_item creation procedure
Map an array of base types to associated shared objects to function as an alternative to the following kind of **elseif* branching:
if attached {TYPE_A} obj then Result := thing_for_type_a elseif attached {TYPE_B} obj then Result := thing_for_type_b elseif attached {TYPE_C} obj then Result := thing_for_type_c end
Further Information
Click on class link to see notes and client examples.
Table to count number of attempts to insert key with put routine
Further Information
Click on class link to see client examples.
Extended version of base class HASH_TABLE
Further Information
Click on class link to see descendants and client examples.
Hash table conforming to EL_HASH_TABLE [G, IMMUTABLE_STRING_8]
Further Information
Click on class link to see descendants.
Lookup objects by type_id
Further Information
Click on class link to see client examples.
Table of procedures with latin-1 encoded keys
Further Information
Click on class link to see client examples.
Table with keys conforming to READABLE_STRING_32
Further Information
Click on class link to see client examples.
Table with keys conforming to READABLE_STRING_8
Further Information
Click on class link to see descendants and client examples.
Caches objects associated with a type
Code table
Unique code table
A table of unique words used to create tokenized strings that can be reassembled into the original string.
Further Information
Click on class link to see client examples.
Query an object conforming to type EL_REFLECTIVE for fields of parameter type G or optionally conforming to type G
Further Information
Click on class link to see client examples.
Table of field values of type G from an object conforming to EL_REFLECTIVE
Further Information
Click on class link to see client examples.
Table to cache results of a function with multiple hashable arguments
Further Information
Click on class link to see descendants.
Object for caching the result of a call to function new_item for each generating type of the generic parameter TARGET.
Table for grouping items of type G into lists of type EL_ARRAYED_LIST [G] according to the result of applying a function agent of type FUNCTION [G, K] where K conforms to HASHABLE.
Table for grouping items of type G into sets of type EL_ARRAYED_LIST [G] according to the result of applying a function agent of type FUNCTION [G, K] where K conforms to HASHABLE.
Further Information
Click on class link to see client examples.
Table for grouping items into lists according to a hashable key. The lists items are implemented as EL_ARRAYED_LIST [G].
Further Information
Click on class link to see notes, descendants and client examples.
Table for grouping items into sets according to a hashable key. The set items are implemented as EL_ARRAYED_LIST [G].
Further Information
Click on class link to see notes and client examples.
HASH_TABLE_ITERATION_CURSOR for EL_GROUPED_LIST_TABLE
Iteration cursor for EL_HASH_TABLE [ANY, HASHABLE] to fix problem with cursor_index when items have been deleted
Abstraction for looking up tables with keys of type IMMUTABLE_STRING_8 with a key conforming to READABLE_STRING_GENERAL
Base class for shared singleton cache table
Sequence of items
Further Information
Click on class link to see tests and descendants.
Code value list
Further Information
Click on class link to see client examples.
Extension to LINEAR [G] abstract structure whose items may be accessed sequentially, one-way
Further Information
Click on class link to see descendants.
Object that uses run length encoding to data compress a sequence of numeric values that tend to repeat a lot.
Further Information
Click on class link to see client examples.
Alternative implementation of EL_ARRAYED_INTERVAL_LIST by bit-shifting each 32-bit upper and lower into a INTEGER_64. Turns out to be not as efficient as using a SPECIAL [INTEGER_32] with twice as many items.
Further Information
Click on class link to see client examples.
Iteration cursor for EL_ARRAYED_INTERVAL_LIST
Sequence of INTEGER_32 intervals (compressed as INTEGER_64's for better performance)
Further Information
Click on class link to see descendants and client examples.
ARRAYED_LIST [G] with extra features
Further Information
Click on class link to see notes, tests, descendants and client examples.
An arrayed list abstraction of objects of type R, that are representations of a seed object of type N. Only the seed objects are actually stored and the representations are created on the fly during iteration. More often that not, the seed object will conform to type NUMERIC.
Further Information
Click on class link to see client examples.
An EL_ARRAYED_LIST [R] that is the result of applying a function to all the items in a container conforming to CONTAINER [G] where R is the result type, and G is the function operand type.
Further Information
Click on class link to see client examples.
Call sequence
Further Information
Click on class link to see client examples.
EL_ARRAYED_LIST that starts discarding items from the head once the capacity has been reached
Further Information
Click on class link to see client examples.
Sequence of consecutive INTEGER_32 intervals (compressed as INTEGER_64's for better performance)
<< a1..b1, a2..b2, .. >>
such that b(n) < a(n + 1)
Further Information
Click on class link to see descendants and client examples.
Sortable arrayed list
Further Information
Click on class link to see descendants and client examples.
List of unique hashable items
Further Information
Click on class link to see client examples.
An arrayed list implementation of EL_QUERYABLE_CHAIN
Further Information
Click on class link to see descendants and client examples.
A chain that is queryable using query condition objects that can be combined using the Eiffel logical operators: and, or, not.
Further Information
Click on class link to see notes.
Supporting class for lists implementing EL_QUERYABLE_CHAIN Use it to create various compound query conditions and derive a query condition object from an agent predicate.
Further Information
Click on class link to see client examples.
All of query condition
And query condition
Query condition that returns True for every item if type G
Further Information
Click on class link to see tests and client examples.
A query condition to test if a container has an item
Query condition to test if value of function with target G is equal to a specified value
Condition is met if EL_STORABLE item is deleted
Further Information
Click on class link to see client examples.
Not query condition
One of query condition
Or query condition
Predicate query condition
Further Information
Click on class link to see tests and client examples.
Query condition
Further Information
Click on class link to see tests and client examples.
A query condition that involves applying a routine agent to determine condition
Iteration cursor for EL_ARRAYED_REPRESENTATION_LIST
Object to add together the NUMERIC results of a function applied to a CONTAINER [G] list of items filtered by an optional query condition EL_QUERY_CONDITION [G].
Further Information
Click on class link to see tests and client examples.
Convert CONTAINER [G] to type conforming to EL_CONTAINER_STRUCTURE [G]
Routines that can be applied to current object if it conforms to CONTAINER [G]. Inherits routines from class EL_CUMULATIVE_CONTAINER_ARITHMETIC.
Further Information
Click on class link to see descendants.
Createable version of class EL_CONTAINER_STRUCTURE
Numeric calculations that can be applied across container items
Further Information
Click on class link to see descendants.
Routines acting on array of type SPECIAL [INTEGER_32] containing substring interval indices. The current item is determined by the implementation of index.
Repeated numeric
List of sorted indices for SPECIAL [COMPARABLE] array
Iteration cursor for EL_ARRAYED_MAP_LIST
Arrayed list of key-value pair tuples
Further Information
Click on class link to see descendants and client examples.
Map an array of base types to associated shared objects to function as an alternative to the following kind of **elseif* branching:
if attached {TYPE_A} obj then Result := thing_for_type_a elseif attached {TYPE_B} obj then Result := thing_for_type_b elseif attached {TYPE_C} obj then Result := thing_for_type_c end
Further Information
Click on class link to see notes and client examples.
A EL_ARRAYED_MAP_LIST indexed by key conforming to COMPARABLE
Further Information
Click on class link to see client examples.
Implementation of EL_FACTORY_POOL [G] using a supplied agent to create new items
Further Information
Click on class link to see client examples.
Iteration cursor defining a scope in which a single item can be borrowed from a factory pool and then returned when across loop exits after first iteration. See class EL_BORROWED_OBJECT_SCOPE
Further Information
Click on class link to see client examples.
Defines an across-loop scope in which a resource can be borrowed from a factory pool and then automatically returned after the first and only iteration of the cursor.
Pool of reuseable objects that are either created or lent to client
Further Information
Click on class link to see client examples.
Iterable across loop scope during which a object can be borrowed from a pool factory and then automatically returned after the first and only iteration.
Further Information
Click on class link to see client examples.
Iteration cursor defining a scope in which multiple items can be borrowed from a factory pool and then all returned when across loop exits after first iteration. See class EL_ITERABLE_POOL_SCOPE
Further Information
Click on class link to see client examples.
Hash set implementing EL_SET [H]
Further Information
Click on class link to see descendants and client examples.
Implementation of EL_HASH_SET [HASHABLE]
ITERATION_CURSOR for EL_HASH_SET.
Set of objects conforming to EL_SET_MEMBER [HASHABLE]
Further Information
Click on class link to see client examples.
Abstract set of objects with membership test
Further Information
Click on class link to see descendants and client examples.
Object that is a member of a set of type EL_MEMBER_SET [EL_SET_MEMBER]