GNU
|
Liberty Eiffel
|
Automated Tests
|
Wiki
|
Savannah project
|
Debian packages
|
Documentation
>
libraries
>
LOG_INTERNAL_CONF
+
Point of view
All features
ANY
EIFFEL_NON_TERMINAL_NODE_IMPL
EIFFEL_TERMINAL_NODE_IMPL
EIFFEL_LIST_NODE_IMPL
LOG_CONFIGURATION
All features
class LOG_INTERNAL_CONF
Summary
top
The internal logging configuration manager
Direct parents
Inherit list:
EIFFEL_LIST_NODE_IMPL_VISITOR
,
EIFFEL_NON_TERMINAL_NODE_IMPL_VISITOR
,
EIFFEL_TERMINAL_NODE_IMPL_VISITOR
Insert list:
SINGLETON
Class invariant
top
current_is_not_an_expanded_type
is_real_singleton
Overview
top
Creation features
{
LOG_CONFIGURATION
}
make
Features
{}
root
:
LOGGER
loggers
:
HASHED_DICTIONARY
[
LOGGER
,
FIXED_STRING
]
outputs
:
HASHED_DICTIONARY
[
LOG_OUTPUT
,
FIXED_STRING
]
{
EIFFEL_NON_TERMINAL_NODE_IMPL
}
visit_eiffel_non_terminal_node_impl
(node:
EIFFEL_NON_TERMINAL_NODE_IMPL
)
{}
do_pass_1
(on_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], path_resolver:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
], node:
EIFFEL_NON_TERMINAL_NODE_IMPL
)
Create outputs and loggers
do_pass_2
(on_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], node:
EIFFEL_NON_TERMINAL_NODE_IMPL
)
Attach loggers' parents
file_options
:
LOG_FILE_OPTIONS
each_days
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
each_weeks
(stream:
FILE_STREAM
, number:
INTEGER_64
, week_day:
INTEGER_32
):
BOOLEAN
each_months
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
each_years
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
each_hours
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
each_minutes
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
each_bytes
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
ft
:
FILE_TOOLS
{
EIFFEL_TERMINAL_NODE_IMPL
}
visit_eiffel_terminal_node_impl
(node:
EIFFEL_TERMINAL_NODE_IMPL
)
fatal_error
(message:
STRING
)
default_path_resolver
:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
]
resolve_path
(a_path:
STRING
):
STRING
{
EIFFEL_LIST_NODE_IMPL
}
visit_eiffel_list_node_impl
(node:
EIFFEL_LIST_NODE_IMPL
)
{
LOG_CONFIGURATION
}
load
(a_stream:
INPUT_STREAM
, when_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], a_path_resolver:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
], a_load_completion:
PROCEDURE
[
TUPLE
])
conf_logger
(a_tag:
FIXED_STRING
):
LOGGER
generation_id
:
INTEGER_32
{}
load_queue
:
RING_ARRAY
[
TUPLE 4
[
INPUT_STREAM
,
PROCEDURE
[
TUPLE 1
[
STRING
]],
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
],
PROCEDURE
[
TUPLE
]]]
loading
:
BOOLEAN
load_
(a_stream:
INPUT_STREAM
, when_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], a_path_resolver:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
], a_load_completion:
PROCEDURE
[
TUPLE
])
{}
make
load_default
last_class_name
:
STRING
last_entity_name
:
STRING
last_string
:
STRING
last_number
:
EIFFEL_IMAGE
last_level
:
LOG_LEVEL
last_format
:
FIXED_STRING
last_retention
:
INTEGER_64
current_logger
:
LOGGER
pass
:
PROCEDURE
[
TUPLE 1
[
EIFFEL_NON_TERMINAL_NODE_IMPL
]]
levels
:
LOG_LEVELS
grammar
:
LOG_GRAMMAR
parser_buffer
:
MINI_PARSER_BUFFER
parser
:
DESCENDING_PARSER
default_output
:
LOG_OUTPUT
generations
:
COUNTER
pass_through
(a_output:
OUTPUT_STREAM
):
OUTPUT_STREAM
{}
_inline_agent9
(a_in:
TEXT_FILE_READ
)
{
ANY
}
is_equal
(other: LOG_INTERNAL_CONF):
BOOLEAN
Is
other
attached to an object considered equal to current object?
{}
is_real_singleton
:
BOOLEAN
singleton_memory_pool
:
HASHED_DICTIONARY
[
POINTER
,
STRING
]
This pool is unique in the whole system.
current_is_not_an_expanded_type
:
BOOLEAN
Check that the dynamic type of the
SINGLETON
is not an expanded type.
root
:
LOGGER
writable attribute
{}
top
loggers
:
HASHED_DICTIONARY
[
LOGGER
,
FIXED_STRING
]
writable attribute
{}
top
outputs
:
HASHED_DICTIONARY
[
LOG_OUTPUT
,
FIXED_STRING
]
writable attribute
{}
top
visit_eiffel_non_terminal_node_impl
(node:
EIFFEL_NON_TERMINAL_NODE_IMPL
)
effective procedure
{
EIFFEL_NON_TERMINAL_NODE_IMPL
}
top
require
node /= Void
do_pass_1
(on_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], path_resolver:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
], node:
EIFFEL_NON_TERMINAL_NODE_IMPL
)
effective procedure
{}
top
Create outputs and loggers
require
on_error /= Void
do_pass_2
(on_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], node:
EIFFEL_NON_TERMINAL_NODE_IMPL
)
effective procedure
{}
top
Attach loggers' parents
require
on_error /= Void
file_options
:
LOG_FILE_OPTIONS
writable attribute
{}
top
each_days
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
effective function
{}
top
require
number > 0
each_weeks
(stream:
FILE_STREAM
, number:
INTEGER_64
, week_day:
INTEGER_32
):
BOOLEAN
effective function
{}
top
require
number > 0
week_day.in_range(0, 6)
each_months
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
effective function
{}
top
require
number > 0
each_years
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
effective function
{}
top
require
number > 0
each_hours
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
effective function
{}
top
require
number > 0
each_minutes
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
effective function
{}
top
require
number > 0
each_bytes
(stream:
FILE_STREAM
, number:
INTEGER_64
):
BOOLEAN
effective function
{}
top
require
number > 0
ft
:
FILE_TOOLS
writable attribute
{}
top
visit_eiffel_terminal_node_impl
(node:
EIFFEL_TERMINAL_NODE_IMPL
)
effective procedure
{
EIFFEL_TERMINAL_NODE_IMPL
}
top
require
node /= Void
fatal_error
(message:
STRING
)
effective procedure
{
EIFFEL_TERMINAL_NODE_IMPL
}
top
default_path_resolver
:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
]
once function
{
EIFFEL_TERMINAL_NODE_IMPL
}
top
resolve_path
(a_path:
STRING
):
STRING
effective function
{
EIFFEL_TERMINAL_NODE_IMPL
}
top
visit_eiffel_list_node_impl
(node:
EIFFEL_LIST_NODE_IMPL
)
effective procedure
{
EIFFEL_LIST_NODE_IMPL
}
top
require
node /= Void
load
(a_stream:
INPUT_STREAM
, when_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], a_path_resolver:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
], a_load_completion:
PROCEDURE
[
TUPLE
])
effective procedure
{
LOG_CONFIGURATION
}
top
conf_logger
(a_tag:
FIXED_STRING
):
LOGGER
effective function
{
LOG_CONFIGURATION
}
top
require
a_tag.intern = a_tag
ensure
Result.tag = a_tag
generation_id
:
INTEGER_32
effective function
{
LOG_CONFIGURATION
}
top
load_queue
:
RING_ARRAY
[
TUPLE 4
[
INPUT_STREAM
,
PROCEDURE
[
TUPLE 1
[
STRING
]],
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
],
PROCEDURE
[
TUPLE
]]]
writable attribute
{}
top
loading
:
BOOLEAN
writable attribute
{}
top
load_
(a_stream:
INPUT_STREAM
, when_error:
PROCEDURE
[
TUPLE 1
[
STRING
]], a_path_resolver:
FUNCTION
[
TUPLE 1
[
STRING
],
STRING
], a_load_completion:
PROCEDURE
[
TUPLE
])
effective procedure
{}
top
require
a_stream.is_connected
make
effective procedure
{}
top
load_default
once procedure
{}
top
last_class_name
:
STRING
writable attribute
{}
top
last_entity_name
:
STRING
writable attribute
{}
top
last_string
:
STRING
writable attribute
{}
top
last_number
:
EIFFEL_IMAGE
writable attribute
{}
top
last_level
:
LOG_LEVEL
writable attribute
{}
top
last_format
:
FIXED_STRING
writable attribute
{}
top
last_retention
:
INTEGER_64
writable attribute
{}
top
current_logger
:
LOGGER
writable attribute
{}
top
pass
:
PROCEDURE
[
TUPLE 1
[
EIFFEL_NON_TERMINAL_NODE_IMPL
]]
writable attribute
{}
top
levels
:
LOG_LEVELS
writable attribute
{}
top
grammar
:
LOG_GRAMMAR
once function
{}
top
parser_buffer
:
MINI_PARSER_BUFFER
once function
{}
top
parser
:
DESCENDING_PARSER
once function
{}
top
default_output
:
LOG_OUTPUT
once function
{}
top
generations
:
COUNTER
writable attribute
{}
top
pass_through
(a_output:
OUTPUT_STREAM
):
OUTPUT_STREAM
effective function
{}
top
_inline_agent9
(a_in:
TEXT_FILE_READ
)
frozen
effective procedure
{}
top
is_equal
(other: LOG_INTERNAL_CONF):
BOOLEAN
effective function
{
ANY
}
top
Is
other
attached to an object considered equal to current object?
require
other /= Void
ensure
commutative:
generating_type = other.generating_type implies Result = other.is_equal(Current)
is_real_singleton
:
BOOLEAN
effective function
{}
top
ensure
assertion_check_only:
Result
singleton_memory_pool
:
HASHED_DICTIONARY
[
POINTER
,
STRING
]
once function
{}
top
This pool is unique in the whole system.
A memory is kept for each singleton type (type, not class) in the system.
current_is_not_an_expanded_type
:
BOOLEAN
effective function
{}
top
Check that the dynamic type of the
SINGLETON
is not an expanded type.