error.hh File Reference

Go to the source code of this file.

Classes

struct  ERR_throw_t
struct  ERR_triplet_t
class  error_string_t
 Class determined for storing error messages. More...
class  error_vector_t
 The main class in error.hh determined for storing. More...
struct  psh
 Structure determined for causing storing/printing error messages. More...
struct  thr
 Structure determined for causing storing/printing error messages. More...

Defines

#define UNIMPLEMENTED(type)

Typedefs

typedef const ERR_triplet_t ERR_c_triplet_t
 Definition of constant ERR_triplet_t.
typedef const char * ERR_char_string_t
 Header file for error handling //.
typedef int ERR_id_t
 Integer type used for identifiers of errors.
typedef unsigned int ERR_nbr_t
 Integer type used for index of an error in an error vector.
typedef void(* ERR_psh_callback_t )(error_vector_t &terr, const ERR_throw_t)
 Callback function type (for handling of `<< psh()').
typedef const std::string ERR_std_string_t
typedef void(* ERR_thr_callback_t )(error_vector_t &terr, const ERR_throw_t)
 Callback function type (for `<< thr()').
typedef int ERR_type_t
 Integer type used for identifiers of errors.

Functions

void ERR_default_psh_callback (error_vector_t &terr, const ERR_throw_t)
 Default 'warning handling callback'.
void ERR_default_thr_callback (error_vector_t &terr, const ERR_throw_t)
 Default 'error handling callback'.
template<typename T>
noreturn ()

Variables

const ERR_id_t ERR_UNKNOWN_ID = 1
const ERR_type_t ERR_UNKNOWN_TYPE = 1
error_vector_t gerr
 Global error vector `gerr'.


Detailed Description

Header file of a handling unit. This unit is independent of DiVinE and can be used in an arbitrary project.

Extern variable gerr is the global error vector that can be used in arbitrary file that includes error.hh

For more informations see Error Handling Unit page


Define Documentation

#define UNIMPLEMENTED ( type   ) 

Value:

do { \
        gerr << "unimplemented " << __FILE__ << ":" << __LINE__ << thr(); \
        return noreturn<type>(); \
    } while(0)


Typedef Documentation

typedef const char* ERR_char_string_t

Header file for error handling //.

String, which is field of characters finished by ''

typedef void(* ERR_psh_callback_t)(error_vector_t &terr, const ERR_throw_t)

Callback function type (for handling of `<< psh()').

Type of callback function for handling commands like

 terr << psh(); 
where `terr' is an instance of error_vector_t.

We will call functions of this type 'warning handling callbacks'.

typedef void(* ERR_thr_callback_t)(error_vector_t &terr, const ERR_throw_t)

Callback function type (for `<< thr()').

Type of callback function for handling commands like

 terr << psh(); 
where `terr' is an instance of error_vector_t.

We will call functions of this type 'error handling callback'.


Function Documentation

void ERR_default_psh_callback ( error_vector_t terr,
const   ERR_throw_t 
)

Default 'warning handling callback'.

This is a default 'warning handling callback' in error_vector_t.

To exchange this function by another function in an instance of error_vector_t you can call error_vector_t::set_push_callback().

This default callback function has the following behaviour:

  1. Prints the last kept message on the standard error output.
  2. Erases printed message from a memory.

References error_vector_t::perror_back(), and error_vector_t::pop_back().

void ERR_default_thr_callback ( error_vector_t terr,
const   ERR_throw_t 
)

Default 'error handling callback'.

This is a default 'error handling callback'.

To exchange this function by another function in an instance of error_vector_t you can call error_vector_t::set_thr_callback().

This default callback function has the following behaviour:

  1. Flushes all messages stored in a memory to the stadard error output.
  2. Clears the memory of messages.
  3. Throws exception of type ERR_throw_t (parameter error type).

References error_vector_t::flush().


Variable Documentation

Constant that is substituted instead of error ID, if you don't specify any error ID to the function that has error ID as a parameter.

Referenced by error_vector_t::~error_vector_t().

Constant that is substituted instead of of integer sent by throwing, if you don't specify any error ID to the function that has error ID as a parameter.

Referenced by error_vector_t::~error_vector_t().

Global error vector `gerr'.

Global error vector gerr. You can use it in your programs, but you can also declare your own error vector and use it instead of gerr. This global object is proper because of functions which are not wrapped in a structure or class with own error vector.

Referenced by bymoc_process_t::add_transition(), dve_parser_t::assertion_create(), bymoc_expression_t::assign(), dve_expression_t::dve_expression_t(), dve_system_t::fast_eval(), bymoc_transition_t::from_string(), bymoc_process_t::from_string(), bymoc_expression_t::from_string(), por_t::generate_ample_sets(), por_t::generate_composed_ample_sets(), bymoc_system_trans_t::get_count(), dve_system_t::get_property_scc_count(), dve_system_t::get_property_scc_id(), dve_system_t::get_property_scc_type(), bymoc_process_t::get_trans_count(), bymoc_process_t::get_transition(), dve_system_t::is_property_weak(), bymoc_enabled_trans_t::operator=(), bymoc_system_trans_t::operator=(), bymoc_system_trans_t::operator[](), array_t< dve_symbol_t * >::operator[](), bymoc_transition_t::read(), bymoc_process_t::read(), bymoc_expression_t::read(), logger_t::register_double(), logger_t::register_slong_int(), logger_t::register_ulong_int(), bymoc_process_t::remove_transition(), bymoc_system_trans_t::set_count(), distr_reporter_t::set_global_info(), bymoc_expression_t::swap(), dve_parser_t::system_property(), dve_parser_t::system_synchronicity(), bymoc_transition_t::to_string(), bymoc_system_trans_t::to_string(), bymoc_process_t::to_string(), bymoc_expression_t::to_string(), dve_parser_t::trans_sync(), dve_expression_t::write(), bymoc_transition_t::write(), bymoc_system_trans_t::write(), bymoc_process_t::write(), and bymoc_expression_t::write().


Reference Manual for Library, 2006 developed in ParaDiSe laboratory, Faculty of Informatics, Masaryk University