ICDHandler Module: INI_EXAMPLE

ICDHandler Module
INI_EXAMPLE
[Globals]
(IniScript=<path_to_file>{.py} )
(StyleSheet=<path_to_file>)
(Icon=<path_to_file>)
(LegacyName=<legacy_code_string>)
(Font=<string>)
(Geometry=<string>)
InterfaceSize=<n>
[Interface_(i=0..n)]
Name=First Interface
ConfigFile=<path_to_file>{.xml}
BusDriver=<path_to_file>{.dll|.so|.py}
UiFile=<path_to_file>{.ui}
(Plugin=<path_to_file>{.dll|.so}.py})
(CurrentLogPath=<path>)
(IniScript=<path_to_file>{.py} )
(CommitOnTheFly = {1|0} )
(HideControlWidget = {1|0} )
[Tools]
(Plugin_0=<path_to_file>{.dll|.so|.py})
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: DTD_DOC

DTD_DOC
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ICDHandler [
<!ELEMENT ICDHandler (HiLevel,LowLevel,Mapping)>
<!ELEMENT HiLevel (Message+)>
<!ELEMENT Message (Field+)>
<!ELEMENT Field (Values|CDATA)>
<!ELEMENT Values (Value+)>
<!ELEMENT Value (#PCDATA)>
<!ATTLIST ICDHandler
Name CDATA #REQUIRED
Version CDATA #REQUIRED
Endianness (bigendian|littleendian) "littleendian"
StreamFormat (byte|word|dword) "byte"
Ui (all_tab|all_vertical|all_horizontal|by_iotype) "by_iotype"
>
<!ATTLIST Message
Id CDATA #REQUIRED
Name CDATA #REQUIRED
Width CDATA #REQUIRED
IOType (tx|rx) #REQUIRED
uSecPeriodTime CDATA #IMPLIED
Priority CDATA #IMPLIED
Virtual (true|false) "false" #IMPLIED
>
<!ATTLIST Field
Name CDATA #REQUIRED
Width CDATA #REQUIRED
Offset CDATA #REQUIRED
Min CDATA #IMPLIED
Max CDATA #IMPLIED
Weight CDATA "1"
OffsetValue CDATA "0"
Type (spare|boolean|short|ushort|int|uint|long|ulong|long64|ulong64|double|float|string|enum) #REQUIRED
Unit CDATA #IMPLIED
Display (binary|decimal|hexadecimal) "decimal"
Default CDATA #IMPLIED
Encoding (sign_module|bcd|binary|real|swapbyte|swapword|swapdword|formula) ) "binary"
Resolution CDATA "0.000001"
Reserved (true|false) "false"
Ui (default|hidden|label|entry|spinbox|knob|slider|combobox|listbox|checkbox|radiobox|progressbar|textarea|button) "default"
>
<!ATTLIST Value
Name CDATA #REQUIRED
>
]>
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: DTD_NOTES

DTD_NOTES

#DTD Notes#

Encoding Types

sign_module : MSB is the sign, [(MSB-1),LSB] module bcd : Binary-Code-Digit standard conversion binary : number is converted to byte array real : (float and double only) in native format ( mantissa, exponent ) swapbyte : swap number using byte size swapword : swap number using word size swapdword : swap number using double-word size formula : =<expr>

Encoding Formula

The string must contains a mathematic expresion.

The followings variables can be used:

  • f_min : Field Min
  • f_max : Field Max
  • f_lsb : Field Weight
  • f_off : Field OffsetValue
  • f_len : Field Width
  • f_raw : Field Value not En/Decoded

The following C math functions are also supported:

  • abs (calls to fabs)
  • acos, asin, atan, atan2, cos, cosh, sin, sinh, tan, tanh
  • ceil, exp, floor
  • ln (calls to log)
  • log (calls to log10 by default, see below), log10
  • pow, sqrt

Also, the following constants are available:

  • pi, e
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: README

README

TinyExpr

TinyExpr is a very small recursive descent parser and evaluation engine for math expressions. It's handy when you want to add the ability to evaluation math expressions at runtime without adding a bunch of cruft to you project.

In addition to the standard math operators and precedence, TinyExpr also supports the standard C math functions and runtime binding of variables.

Features

  • ANSI C with no dependencies.
  • Single source file and header file.
  • Simple and fast.
  • Implements standard operators precedence.
  • Exposes standard C math functions (sin, sqrt, ln, etc.).
  • Can add custom functions and variables easily.
  • Can bind variables at eval-time.
  • Released under the zlib license - free for nearly any use.
  • Easy to use and integrate with your code
  • Thread-safe, provided that your malloc is.

Building

TinyExpr is self-contained in two files: tinyexpr.c and tinyexpr.h. To use TinyExpr, simply add those two files to your project.

Short Example

Here is a minimal example to evaluate an expression at runtime.

#include "tinyexpr.h"
printf("%f\n", te_interp("5*5", 0)); /* Prints 25. */

Usage

TinyExpr defines only four functions:

double te_interp(const char *expression, int *error);
te_expr *te_compile(const char *expression, const te_variable *variables, int var_count, int *error);
double te_eval(const te_expr *expr);
void te_free(te_expr *expr);

## te_interp

double te_interp(const char *expression, int *error);

te_interp() takes an expression and immediately returns the result of it. If there is a parse error, te_interp() returns NaN.

If the error pointer argument is not 0, then te_interp() will set *error to the position of the parse error on failure, and set *error to 0 on success.

example usage:

int error;
double a = te_interp("(5+5)", 0); /* Returns 10. */
double b = te_interp("(5+5)", &error); /* Returns 10, error is set to 0. */
double c = te_interp("(5+5", &error); /* Returns NaN, error is set to 4. */

## te_compile, te_eval, te_free

te_expr *te_compile(const char *expression, const te_variable *lookup, int lookup_len, int *error);
double te_eval(const te_expr *n);
void te_free(te_expr *n);

Give te_compile() an expression with unbound variables and a list of variable names and pointers. te_compile() will return a te_expr* which can be evaluated later using te_eval(). On failure, te_compile() will return 0 and optionally set the passed in *error to the location of the parse error.

You may also compile expressions without variables by passing te_compile()'s second and thrid arguments as 0.

Give te_eval() a te_expr* from te_compile(). te_eval() will evaluate the expression using the current variable values.

After you're finished, make sure to call te_free().

example usage:

double x, y;
/* Store variable names and pointers. */
te_variable vars[] = {{"x", &x}, {"y", &y}};
int err;
/* Compile the expression with variables. */
te_expr *expr = te_compile("sqrt(x^2+y^2)", vars, 2, &err);
if (expr) {
x = 3; y = 4;
const double h1 = te_eval(expr); /* Returns 5. */
x = 5; y = 12;
const double h2 = te_eval(expr); /* Returns 13. */
te_free(expr);
} else {
printf("Parse error at %d\n", err);
}

Longer Example

Here is a complete example that will evaluate an expression passed in from the command line. It also does error checking and binds the variables x and y to 3 and 4, respectively.

#include "tinyexpr.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
if (argc < 2) {
printf("Usage: example2 \"expression\"\n");
return 0;
}
const char *expression = argv[1];
printf("Evaluating:\n\t%s\n", expression);
/* This shows an example where the variables
* x and y are bound at eval-time. */
double x, y;
te_variable vars[] = {{"x", &x}, {"y", &y}};
/* This will compile the expression and check for errors. */
int err;
te_expr *n = te_compile(expression, vars, 2, &err);
if (n) {
/* The variables can be changed here, and eval can be called as many
* times as you like. This is fairly efficient because the parsing has
* already been done. */
x = 3; y = 4;
const double r = te_eval(n); printf("Result:\n\t%f\n", r);
te_free(n);
} else {
/* Show the user where the error is at. */
printf("\t%*s^\nError near here", err-1, "");
}
return 0;
}

This produces the output:

$ example2 "sqrt(x^2+y2)"
    Evaluating:
            sqrt(x^2+y2)
                      ^
    Error near here

$ example2 "sqrt(x^2+y^2)"
    Evaluating:
            sqrt(x^2+y^2)
    Result:
            5.000000

Binding to Custom Functions

TinyExpr can also call to custom functions implemented in C. Here is a short example:

double my_sum(double a, double b) {
/* Example C function that adds two numbers together. */
return a + b;
}
te_variable vars[] = {
{"mysum", my_sum, TE_FUNCTION2} /* TE_FUNCTION2 used because my_sum takes two arguments. */
};
te_expr *n = te_compile("mysum(5, 6)", vars, 1, 0);

How it works

te_compile() uses a simple recursive descent parser to compile your expression into a syntax tree. For example, the expression "sin x + 1/4" parses as:

example syntax tree

te_compile() also automatically prunes constant branches. In this example, the compiled expression returned by te_compile() would become:

example syntax tree

te_eval() will automatically load in any variables by their pointer, and then evaluate and return the result of the expression.

te_free() should always be called when you're done with the compiled expression.

Speed

TinyExpr is pretty fast compared to C when the expression is short, when the expression does hard calculations (e.g. exponentiation), and when some of the work can be simplified by te_compile(). TinyExpr is slow compared to C when the expression is long and involves only basic arithmetic.

Here is some example performance numbers taken from the included benchmark.c program:

Expression | te_eval time | native C time |
sqrt(a^1.5+a^2.5) | 15,641 ms | 14,478 ms | 8% slower
a+5 | 765 ms | 563 ms | 36% slower
a+(5*2) | 765 ms | 563 ms | 36% slower
(a+5)*2 | 1422 ms | 563 ms | 153% slower
(1/(a+1)+2/(a+2)+3/(a+3)) | 5,516 ms | 1,266 ms | 336% slower

Grammar

TinyExpr parses the following grammar:

<list>      =    <expr> {"," <expr>}
<expr>      =    <term> {("+" | "-") <term>}
<term>      =    <factor> {("*" | "/" | "%") <factor>}
<factor>    =    <power> {"^" <power>}
<power>     =    {("-" | "+")} <base>
<base>      =    <constant>
               | <variable>
               | <function-0> {"(" ")"}
               | <function-1> <power>
               | <function-X> "(" <expr> {"," <expr>} ")"
               | "(" <list> ")"

In addition, whitespace between tokens is ignored.

Valid variable names consist of a lower case letter followed by any combination of: lower case letters a through z, the digits 0 through 9, and underscore. Constants can be integers, decimal numbers, or in scientific notation (e.g. 1e3 for 1000). A leading zero is not required (e.g. *.5* for 0.5)

Functions supported

TinyExpr supports addition (+), subtraction/negation (-), multiplication (*), division (/), exponentiation (^) and modulus (%) with the normal operator precedence (the one exception being that exponentiation is evaluated left-to-right, but this can be changed - see below).

The following C math functions are also supported:

  • abs (calls to fabs), acos, asin, atan, atan2, ceil, cos, cosh, exp, floor, ln (calls to log), log (calls to log10 by default, see below), log10, pow, sin, sinh, sqrt, tan, tanh

The following functions are also built-in and provided by TinyExpr:

  • fac (factorials e.g. fac 5 == 120)
  • ncr (combinations e.g. ncr(6,2) == 15)
  • npr (permutations e.g. npr(6,2) == 30)

Also, the following constants are available:

  • pi, e

Compile-time options

By default, TinyExpr does exponentiation from left to right. For example:

a^b^c == (a^b)^c and -a^b == (-a)^b

This is by design. It's the way that spreadsheets do it (e.g. Excel, Google Sheets).

If you would rather have exponentiation work from right to left, you need to define TE_POW_FROM_RIGHT when compiling tinyexpr.c. There is a commented-out define near the top of that file. With this option enabled, the behaviour is:

a^b^c == a^(b^c) and -a^b == -(a^b)

That will match how many scripting languages do it (e.g. Python, Ruby).

Also, if you'd like log to default to the natural log instead of log10, then you can define TE_NAT_LOG.

Hints

  • All functions/types start with the letters te.
  • To allow constant optimization, surround constant expressions in parentheses. For example "x+(1+5)" will evaluate the "(1+5)" expression at compile time and compile the entire expression as "x+6", saving a runtime calculation. The parentheses are important, because TinyExpr will not change the order of evaluation. If you instead compiled "x+1+5" TinyExpr will insist that "1" is added to "x" first, and "5" is added the result second.
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Class List

Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
▼N ICDUtils |
C XMLParser |
▼N pu |
C Dequeueable |
C Event |
C Interruptable |
C Pool |
C Queue |
C Task |
▼N rapidxml |
C attribute_iterator | Iterator of child attributes of xml_node
C eof_error |
C file | Represents data loaded from a file
C memory_pool |
C node_iterator | Iterator of child nodes of xml_node
C parse_error |
C validation_error |
C xml_attribute |
C xml_base |
C xml_document |
C xml_node |
C EventImpl |
C GenericBusObject | The GenericBusObject class: proxy implementation class for GenericDriver
C GenericDriver | Bus Interface Class
C ICDAbstractContainer |
C ICDAbstractFactory | The ICDAbstractFactory class It it used to return a generic oject implementations of the required ICD object
C ICDAbstractRaw |
C ICDBCDTranscoder | The ICDBCDTranscoder class : implements a BCD transcoder based on standard ( nibbles with range 0-9 )
C ICDBooleanMessageField | The ICDBooleanMessageField class
C ICDCodeSignedTranscoder | The ICDCodeSignedTranscoder class : implements a sign/value transcoder
C ICDCodingMessageField | The ICDCodingMessageField class
C ICDDefaultStringTranscoder |
C ICDDefaultTranscoder | The ICDDefaultTranscoder class: used for numerical fields
C ICDDictionary |
C ICDEnumMessageField | The ICDEnumMessageField class
C ICDGenericContainer |
C ICDGenericMessageField | The ICDGenericMessageField class
C ICDGenericTranscoder |
C ICDHandler | The ICDHandler class
C ICDHandlersManager |
C ICDIndexedContainer |
C ICDMessage | The ICDMessage class
C ICDMessageContainer |
C ICDNamedItem |
C ICDNumericMessageField |
C ICDRawData |
C ICDRawMessage |
C ICDRawMessageField |
C ICDRealFloatingPointTranscoder | The ICDRealFloatingPointTranscoder class : implements a real floating transcoder
C ICDSpareTranscoder |
C ICDStringExprTranscoder |
C ICDStringMessageField |
C ICDStringTranscoder | The ICDStringTranscoder class
C ICDSwapTranscoder | The ICDSwapTranscoder class : implements a full swap transcoder ( first byte is the most significative )
C ICDUiAbstractItem |
C ICDUiAbstractObject |
C ICDUiBusObject | The ICDUiBusObject class
C ICDUiGenericMessageField |
C ICDUiHandler |
C ICDUiMessage |
C ICDUiObject |
C IGenericBusEqp | Interface Class: it defines the methods that shall be implemented by a bus user (Equipment)
C IGenericLoggerInterface |
C state |
C te_expr |
C te_variable |
C test_case |
C test_equ |
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUtils::XMLParser Class Reference

  • ICDUtils
  • XMLParser
Public Member Functions | Protected Attributes | List of all members
ICDUtils::XMLParser Class Reference

Public Member Functions

bool | parse (const std::string &filename)
bool | fromstring (const std::string &xml)
bool | save ()
bool | saveAs (const std::string &filename)
std::string | getXMLFilename ()
std::string | getErrorString ()
xml_document< char > * | getXMLDoc ()

Protected Attributes

xml_document< char > * | _doc
std::string | _doc_text
std::string | _error
std::string | _filename
The documentation for this class was generated from the following files:
  • include/icdutils.h
  • src/icdutils.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: pu::Dequeueable Class Reference

  • pu
  • Dequeueable
Public Member Functions | List of all members
pu::Dequeueable Class Referenceabstract
Inheritance diagram for pu::Dequeueable:
pu::Event EventImpl

Public Member Functions

virtual void dequeue (unsigned int req_id, unsigned long event_number)=0

Detailed Description

Tutti gli oggetti che vogliono essere inseriti nella coda di eventi devono implementare questa interfaccia. Internamente la classe Pool ha una Queue di dipo Event (classe di appoggio per salvarsi il puntatore Dequeueable con i suoi parametri).

The documentation for this class was generated from the following file:
  • include/putilsqueue.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: pu::Event Class Reference

  • pu
  • Event
Public Member Functions | Protected Attributes | Friends | List of all members
pu::Event Class Reference
Inheritance diagram for pu::Event:
pu::Dequeueable EventImpl

Public Member Functions

void | init (void *ptr_p, unsigned int req_id_p, unsigned long event_number_p)
- Public Member Functions inherited from pu::Dequeueable
virtual void | dequeue (unsigned int req_id, unsigned long event_number)=0

Protected Attributes

void * | ptr
unsigned int | req_id
unsigned long | event_number

Friends

class Task
The documentation for this class was generated from the following files:
  • include/putilsqueue.h
  • src/putilsqueue.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: pu::Interruptable Class Reference

  • pu
  • Interruptable
Public Member Functions | List of all members
pu::Interruptable Class Referenceabstract
Inheritance diagram for pu::Interruptable:
pu::Task

Public Member Functions

Interruptable (Interruptable &&obj)
Interruptable & | operator= (Interruptable &&obj)
virtual void | run ()=0
void | operator() ()
bool | is_running ()
void | stop ()
num_task_t | get_number ()
The documentation for this class was generated from the following file:
  • include/putilsqueue.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: pu::Pool Class Reference

  • pu
  • Pool
Public Member Functions | Static Public Member Functions | List of all members
pu::Pool Class Reference

Public Member Functions

Pool (Pool const &)=delete
void | operator= (Pool const &)=delete
std::shared_ptr< Queue< Event * > > | get_shared_queue ()
void | init_pool ()
void | init_task ()
void | offer (Event *evt)
void | stop ()
unsigned int | in_queue ()
void | inc_free_task ()
void | dec_free_task ()
unsigned int | get_number_free_task () const
bool | in_progress (Event *evt, Task *&task)
void | print_threads_handles ()
void | terminate_task (num_task_t id)

Static Public Member Functions

static Pool & get_instance ()

Member Function Documentation

◆ offer()

void pu::Pool::offer ( Event * evt )

Inserisce nella coda un puntatore di tipo Dequeueable associato ad i suoi parametri, che vengono incapsulati in una classe di appoggio.

Parameters
v
req_id
event_number
The documentation for this class was generated from the following files:
  • include/putilsqueue.h
  • src/putilsqueue.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: pu::Queue< T > Class Template Reference

  • pu
  • Queue
Public Member Functions | List of all members
pu::Queue< T > Class Template Reference

Public Member Functions

void | push (const T &value)
T | pop ()
unsigned | in_queue ()
The documentation for this class was generated from the following file:
  • include/putilsqueue.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: pu::Task Class Reference

  • pu
  • Task
Public Member Functions | List of all members
pu::Task Class Reference
Inheritance diagram for pu::Task:
pu::Interruptable

Public Member Functions

Task (Pool *p)
Task (const Task &t)
void | run ()
bool | in_progress (Event *evt)
- Public Member Functions inherited from pu::Interruptable
Interruptable (Interruptable &&obj)
Interruptable & | operator= (Interruptable &&obj)
void | operator() ()
bool | is_running ()
void | stop ()
num_task_t | get_number ()
The documentation for this class was generated from the following files:
  • include/putilsqueue.h
  • src/putilsqueue.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::attribute_iterator< Ch > Class Template Reference

  • rapidxml
  • attribute_iterator
Public Types | Public Member Functions | List of all members
rapidxml::attribute_iterator< Ch > Class Template Reference

Iterator of child attributes of xml_node. More...

Public Types

typedef xml_attribute< Ch > | value_type
typedef xml_attribute< Ch > & | reference
typedef xml_attribute< Ch > * | pointer
typedef std::ptrdiff_t | difference_type
typedef std::bidirectional_iterator_tag | iterator_category

Public Member Functions

attribute_iterator (xml_node< Ch > *node)
reference | operator* () const
pointer | operator-> () const
attribute_iterator & | operator++ ()
attribute_iterator | operator++ (int)
attribute_iterator & | operator-- ()
attribute_iterator | operator-- (int)
bool | operator== (const attribute_iterator< Ch > &rhs)
bool | operator!= (const attribute_iterator< Ch > &rhs)

Detailed Description

template<class Ch>
class rapidxml::attribute_iterator< Ch >

Iterator of child attributes of xml_node.

The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml_iterators.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::eof_error Class Reference

  • rapidxml
  • eof_error
Public Member Functions | List of all members
rapidxml::eof_error Class Reference
Inheritance diagram for rapidxml::eof_error:
rapidxml::parse_error

Public Member Functions

eof_error (const char *what, void *where)
- Public Member Functions inherited from rapidxml::parse_error
parse_error (const char *what, void *where)
Constructs parse error.
template<class Ch >
Ch * where () const
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::file< Ch > Class Template Reference

  • rapidxml
  • file
Public Member Functions | List of all members
rapidxml::file< Ch > Class Template Reference

Represents data loaded from a file. More...

Public Member Functions

file (const char *filename)
file (std::basic_istream< Ch > &stream)
Ch * | data ()
const Ch * | data () const
std::size_t | size () const

Detailed Description

template<class Ch = char>
class rapidxml::file< Ch >

Represents data loaded from a file.

Constructor & Destructor Documentation

◆ file() [1/2]

template<class Ch = char>
rapidxml::file< Ch >::file ( const char * filename )
inline

Loads file into the memory. Data will be automatically destroyed by the destructor.

Parameters
filename Filename to load.

◆ file() [2/2]

template<class Ch = char>
rapidxml::file< Ch >::file ( std::basic_istream< Ch > & stream )
inline

Loads file into the memory. Data will be automatically destroyed by the destructor

Parameters
stream Stream to load from

Member Function Documentation

◆ data() [1/2]

template<class Ch = char>
Ch* rapidxml::file< Ch >::data ( )
inline

Gets file data.

Returns
Pointer to data of file.

◆ data() [2/2]

template<class Ch = char>
const Ch* rapidxml::file< Ch >::data ( ) const
inline

Gets file data.

Returns
Pointer to data of file.

◆ size()

template<class Ch = char>
std::size_t rapidxml::file< Ch >::size ( ) const
inline

Gets file data size.

Returns
Size of file data, in characters.
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml_utils.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::memory_pool< Ch > Class Template Reference

  • rapidxml
  • memory_pool
Classes | Public Member Functions | List of all members
rapidxml::memory_pool< Ch > Class Template Reference
Inheritance diagram for rapidxml::memory_pool< Ch >:
rapidxml::xml_document< Ch >

Public Member Functions

memory_pool ()
Constructs empty pool with default allocator functions.
~memory_pool ()
xml_node< Ch > * | allocate_node (node_type type, const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0)
xml_attribute< Ch > * | allocate_attribute (const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0)
template<typename Sch >
Ch * | allocate_string (const Sch *source=0, std::size_t size=0)
Ch * | nullstr ()
Ch * | xmlns_xml (std::size_t &xmlns_size)
Ch * | xmlns_xmlns (std::size_t &xmlns_size)
xml_node< Ch > * | clone_node (const xml_node< Ch > *source, xml_node< Ch > *result=0)
void | clear ()
void | set_allocator (alloc_func *af, free_func *ff)

Detailed Description

template<class Ch = char>
class rapidxml::memory_pool< Ch >

This class is used by the parser to create new nodes and attributes, without overheads of dynamic memory allocation. In most cases, you will not need to use this class directly. However, if you need to create nodes manually or modify names/values of nodes, you are encouraged to use memory_pool of relevant xml_document to allocate the memory. Not only is this faster than allocating them by using new operator, but also their lifetime will be tied to the lifetime of document, possibly simplyfing memory management.

Call allocate_node() or allocate_attribute() functions to obtain new nodes or attributes from the pool. You can also call allocate_string() function to allocate strings. Such strings can then be used as names or values of nodes without worrying about their lifetime. Note that there is no free() function – all allocations are freed at once when clear() function is called, or when the pool is destroyed.

It is also possible to create a standalone memory_pool, and use it to allocate nodes, whose lifetime will not be tied to any document.

Pool maintains RAPIDXML_STATIC_POOL_SIZE bytes of statically allocated memory. Until static memory is exhausted, no dynamic memory allocations are done. When static memory is exhausted, pool allocates additional blocks of memory of size RAPIDXML_DYNAMIC_POOL_SIZE each, by using global new[] and delete[] operators. This behaviour can be changed by setting custom allocation routines. Use set_allocator() function to set them.

Allocations for nodes, attributes and strings are aligned at RAPIDXML_ALIGNMENT bytes. This value defaults to the size of pointer on target architecture.

To obtain absolutely top performance from the parser, it is important that all nodes are allocated from a single, contiguous block of memory. Otherwise, cache misses when jumping between two (or more) disjoint blocks of memory can slow down parsing quite considerably. If required, you can tweak RAPIDXML_STATIC_POOL_SIZE, RAPIDXML_DYNAMIC_POOL_SIZE and RAPIDXML_ALIGNMENT to obtain best wasted memory to performance compromise. To do it, define their values before rapidxml.hpp file is included.

Parameters
Ch Character type of created nodes.

Constructor & Destructor Documentation

◆ ~memory_pool()

template<class Ch = char>
rapidxml::memory_pool< Ch >::~memory_pool ( )
inline

Destroys pool and frees all the memory. This causes memory occupied by nodes allocated by the pool to be freed. Nodes allocated from the pool are no longer valid.

Member Function Documentation

◆ allocate_attribute()

template<class Ch = char>
xml_attribute<Ch>* rapidxml::memory_pool< Ch >::allocate_attribute | ( | const Ch * | name = 0,
 |  | const Ch * | value = 0,
 |  | std::size_t | name_size = 0,
 |  | std::size_t | value_size = 0
 | ) |  |
inline

Allocates a new attribute from the pool, and optionally assigns name and value to it. If the allocation request cannot be accomodated, this function will throw std::bad_alloc. If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function will call rapidxml::parse_error_handler() function.

Parameters
name | Name to assign to the attribute, or 0 to assign no name.
value | Value to assign to the attribute, or 0 to assign no value.
name_size | Size of name to assign, or 0 to automatically calculate size from name string.
value_size | Size of value to assign, or 0 to automatically calculate size from value string.
Returns
Pointer to allocated attribute. This pointer will never be NULL.

◆ allocate_node()

template<class Ch = char>
xml_node<Ch>* rapidxml::memory_pool< Ch >::allocate_node | ( | node_type | type,
 |  | const Ch * | name = 0,
 |  | const Ch * | value = 0,
 |  | std::size_t | name_size = 0,
 |  | std::size_t | value_size = 0
 | ) |  |
inline

Allocates a new node from the pool, and optionally assigns name and value to it. If the allocation request cannot be accomodated, this function will throw std::bad_alloc. If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function will call rapidxml::parse_error_handler() function.

Parameters
type | Type of node to create.
name | Name to assign to the node, or 0 to assign no name.
value | Value to assign to the node, or 0 to assign no value.
name_size | Size of name to assign, or 0 to automatically calculate size from name string.
value_size | Size of value to assign, or 0 to automatically calculate size from value string.
Returns
Pointer to allocated node. This pointer will never be NULL.

◆ allocate_string()

template<class Ch = char>
template<typename Sch >
Ch* rapidxml::memory_pool< Ch >::allocate_string | ( | const Sch * | source = 0,
 |  | std::size_t | size = 0
 | ) |  |
inline

Allocates a char array of given size from the pool, and optionally copies a given string to it. If the allocation request cannot be accomodated, this function will throw std::bad_alloc. If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function will call rapidxml::parse_error_handler() function.

Parameters
source | String to initialize the allocated memory with, or 0 to not initialize it.
size | Number of characters to allocate, or zero to calculate it automatically from source string length; if size is 0, source string must be specified and null terminated.
Returns
Pointer to allocated char array. This pointer will never be NULL.

◆ clear()

template<class Ch = char>
void rapidxml::memory_pool< Ch >::clear ( )
inline

Clears the pool. This causes memory occupied by nodes allocated by the pool to be freed. Any nodes or strings allocated from the pool will no longer be valid.

◆ clone_node()

template<class Ch = char>
xml_node<Ch>* rapidxml::memory_pool< Ch >::clone_node | ( | const xml_node< Ch > * | source,
 |  | xml_node< Ch > * | result = 0
 | ) |  |
inline

Clones an xml_node and its hierarchy of child nodes and attributes. Nodes and attributes are allocated from this memory pool. Names and values are not cloned, they are shared between the clone and the source. Result node can be optionally specified as a second parameter, in which case its contents will be replaced with cloned source node. This is useful when you want to clone entire document.

Parameters
source | Node to clone.
result | Node to put results in, or 0 to automatically allocate result node
Returns
Pointer to cloned node. This pointer will never be NULL.

◆ set_allocator()

template<class Ch = char>
void rapidxml::memory_pool< Ch >::set_allocator | ( | alloc_func * | af,
 |  | free_func * | ff
 | ) |  |
inline

Sets or resets the user-defined memory allocation functions for the pool. This can only be called when no memory is allocated from the pool yet, otherwise results are undefined. Allocation function must not return invalid pointer on failure. It should either throw, stop the program, or use longjmp() function to pass control to other place of program. If it returns invalid pointer, results are undefined.

User defined allocation functions must have the following forms:

void *allocate(std::size_t size);
void free(void *pointer);

Parameters
af | Allocation function, or 0 to restore default function
ff | Free function, or 0 to restore default function
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::node_iterator< Ch > Class Template Reference

  • rapidxml
  • node_iterator
Public Types | Public Member Functions | List of all members
rapidxml::node_iterator< Ch > Class Template Reference

Iterator of child nodes of xml_node. More...

Public Types

typedef xml_node< Ch > | value_type
typedef xml_node< Ch > & | reference
typedef xml_node< Ch > * | pointer
typedef std::ptrdiff_t | difference_type
typedef std::bidirectional_iterator_tag | iterator_category

Public Member Functions

node_iterator (xml_node< Ch > *node)
reference | operator* () const
pointer | operator-> () const
node_iterator & | operator++ ()
node_iterator | operator++ (int)
node_iterator & | operator-- ()
node_iterator | operator-- (int)
bool | operator== (const node_iterator< Ch > &rhs)
bool | operator!= (const node_iterator< Ch > &rhs)

Detailed Description

template<class Ch>
class rapidxml::node_iterator< Ch >

Iterator of child nodes of xml_node.

The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml_iterators.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::parse_error Class Reference

  • rapidxml
  • parse_error
Public Member Functions | List of all members
rapidxml::parse_error Class Reference
Inheritance diagram for rapidxml::parse_error:
rapidxml::eof_error

Public Member Functions

parse_error (const char *what, void *where)
Constructs parse error.
template<class Ch >
Ch * where () const

Detailed Description

Parse error exception. This exception is thrown by the parser when an error occurs. Use what() function to get human-readable error message. Use where() function to get a pointer to position within source text where error was detected.

If throwing exceptions by the parser is undesirable, it can be disabled by defining RAPIDXML_NO_EXCEPTIONS macro before rapidxml.hpp is included. This will cause the parser to call rapidxml::parse_error_handler() function instead of throwing an exception. This function must be defined by the user.

This class derives from std::exception class.

Member Function Documentation

◆ where()

template<class Ch >
Ch* rapidxml::parse_error::where ( ) const
inline

Gets pointer to character data where error happened. Ch should be the same as char type of xml_document that produced the error.

Returns
Pointer to location within the parsed string where error occured.
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::validation_error Class Reference

  • rapidxml
  • validation_error
Public Member Functions | List of all members
rapidxml::validation_error Class Reference
Inheritance diagram for rapidxml::validation_error:

Public Member Functions

validation_error (const char *what)
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::xml_attribute< Ch > Class Template Reference

  • rapidxml
  • xml_attribute
Public Member Functions | Friends | List of all members
rapidxml::xml_attribute< Ch > Class Template Reference
Inheritance diagram for rapidxml::xml_attribute< Ch >:
rapidxml::xml_base< Ch >

Public Member Functions

xml_attribute ()
xml_document< Ch > * | document () const
Ch * | xmlns () const
std::size_t | xmlns_size () const
xml_attribute< Ch > * | previous_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
xml_attribute< Ch > * | next_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Ch * | local_name () const
std::size_t | local_name_size () const
- Public Member Functions inherited from rapidxml::xml_base< Ch >
Ch * | name () const
std::size_t | name_size () const
Ch * | value () const
std::size_t | value_size () const
void | name (const Ch *name, std::size_t size)
void | name (const Ch *name)
void | value (const Ch *value, std::size_t size)
void | value (const Ch *value)
xml_node< Ch > * | parent () const

Friends

class xml_node< Ch >

Additional Inherited Members

- Protected Attributes inherited from rapidxml::xml_base< Ch >
Ch * | m_name
Ch * | m_value
std::size_t | m_name_size
std::size_t | m_value_size
xml_node< Ch > * | m_parent

Detailed Description

template<class Ch = char>
class rapidxml::xml_attribute< Ch >

Class representing attribute node of XML document. Each attribute has name and value strings, which are available through name() and value() functions (inherited from xml_base). Note that after parse, both name and value of attribute will point to interior of source text used for parsing. Thus, this text must persist in memory for the lifetime of attribute.

Parameters
Ch Character type to use.

Constructor & Destructor Documentation

◆ xml_attribute()

template<class Ch = char>
rapidxml::xml_attribute< Ch >::xml_attribute ( )
inline

Constructs an empty attribute with the specified type. Consider using memory_pool of appropriate xml_document if allocating attributes manually.

Member Function Documentation

◆ document()

template<class Ch = char>
xml_document<Ch>* rapidxml::xml_attribute< Ch >::document ( ) const
inline

Gets document of which attribute is a child.

Returns
Pointer to document that contains this attribute, or 0 if there is no parent document.

◆ next_attribute()

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_attribute< Ch >::next_attribute | ( | const Ch * | name = 0,
 |  | std::size_t | name_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets next attribute, optionally matching attribute name.

Parameters
name | Name of attribute to find, or 0 to return next attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found attribute, or 0 if not found.

◆ previous_attribute()

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_attribute< Ch >::previous_attribute | ( | const Ch * | name = 0,
 |  | std::size_t | name_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets previous attribute, optionally matching attribute name.

Parameters
name | Name of attribute to find, or 0 to return previous attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found attribute, or 0 if not found.
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::xml_base< Ch > Class Template Reference

  • rapidxml
  • xml_base
Public Member Functions | Protected Attributes | List of all members
rapidxml::xml_base< Ch > Class Template Reference
Inheritance diagram for rapidxml::xml_base< Ch >:
rapidxml::xml_attribute< Ch > rapidxml::xml_node< Ch > rapidxml::xml_document< Ch >

Public Member Functions

Ch * | name () const
std::size_t | name_size () const
Ch * | value () const
std::size_t | value_size () const
void | name (const Ch *name, std::size_t size)
void | name (const Ch *name)
void | value (const Ch *value, std::size_t size)
void | value (const Ch *value)
xml_node< Ch > * | parent () const

Protected Attributes

Ch * | m_name
Ch * | m_value
std::size_t | m_name_size
std::size_t | m_value_size
xml_node< Ch > * | m_parent

Detailed Description

template<class Ch = char>
class rapidxml::xml_base< Ch >

Base class for xml_node and xml_attribute implementing common functions: name(), name_size(), value(), value_size() and parent().

Parameters
Ch Character type to use

Member Function Documentation

◆ name() [1/3]

template<class Ch = char>
Ch* rapidxml::xml_base< Ch >::name ( ) const
inline

Gets name of the node. Interpretation of name depends on type of node. Note that name will not be zero-terminated if rapidxml::parse_no_string_terminators option was selected during parse.

Use name_size() function to determine length of the name.

Returns
Name of node, or empty string if node has no name.

◆ name() [2/3]

template<class Ch = char>
void rapidxml::xml_base< Ch >::name | ( | const Ch * | name,
 |  | std::size_t | size
 | ) |  |
inline

Sets name of node to a non zero-terminated string. See ownership_of_strings.

Note that node does not own its name or value, it only stores a pointer to it. It will not delete or otherwise free the pointer on destruction. It is reponsibility of the user to properly manage lifetime of the string. The easiest way to achieve it is to use memory_pool of the document to allocate the string - on destruction of the document the string will be automatically freed.

Size of name must be specified separately, because name does not have to be zero terminated. Use name(const Ch *) function to have the length automatically calculated (string must be zero terminated).

Parameters
name | Name of node to set. Does not have to be zero terminated.
size | Size of name, in characters. This does not include zero terminator, if one is present.

◆ name() [3/3]

template<class Ch = char>
void rapidxml::xml_base< Ch >::name ( const Ch * name )
inline

Sets name of node to a zero-terminated string. See also ownership_of_strings and xml_node::name(const Ch *, std::size_t).

Parameters
name Name of node to set. Must be zero terminated.

◆ name_size()

template<class Ch = char>
std::size_t rapidxml::xml_base< Ch >::name_size ( ) const
inline

Gets size of node name, not including terminator character. This function works correctly irrespective of whether name is or is not zero terminated.

Returns
Size of node name, in characters.

◆ parent()

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_base< Ch >::parent ( ) const
inline

Gets node parent.

Returns
Pointer to parent node, or 0 if there is no parent.

◆ value() [1/3]

template<class Ch = char>
Ch* rapidxml::xml_base< Ch >::value ( ) const
inline

Gets value of node. Interpretation of value depends on type of node. Note that value will not be zero-terminated if rapidxml::parse_no_string_terminators option was selected during parse.

Use value_size() function to determine length of the value.

Returns
Value of node, or empty string if node has no value.

◆ value() [2/3]

template<class Ch = char>
void rapidxml::xml_base< Ch >::value | ( | const Ch * | value,
 |  | std::size_t | size
 | ) |  |
inline

Sets value of node to a non zero-terminated string. See ownership_of_strings.

Note that node does not own its name or value, it only stores a pointer to it. It will not delete or otherwise free the pointer on destruction. It is reponsibility of the user to properly manage lifetime of the string. The easiest way to achieve it is to use memory_pool of the document to allocate the string - on destruction of the document the string will be automatically freed.

Size of value must be specified separately, because it does not have to be zero terminated. Use value(const Ch *) function to have the length automatically calculated (string must be zero terminated).

If an element has a child node of type node_data, it will take precedence over element value when printing. If you want to manipulate data of elements using values, use parser flag rapidxml::parse_no_data_nodes to prevent creation of data nodes by the parser.

Parameters
value | value of node to set. Does not have to be zero terminated.
size | Size of value, in characters. This does not include zero terminator, if one is present.

◆ value() [3/3]

template<class Ch = char>
void rapidxml::xml_base< Ch >::value ( const Ch * value )
inline

Sets value of node to a zero-terminated string. See also ownership_of_strings and xml_node::value(const Ch *, std::size_t).

Parameters
value Vame of node to set. Must be zero terminated.

◆ value_size()

template<class Ch = char>
std::size_t rapidxml::xml_base< Ch >::value_size ( ) const
inline

Gets size of node value, not including terminator character. This function works correctly irrespective of whether value is or is not zero terminated.

Returns
Size of node value, in characters.
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::xml_document< Ch > Class Template Reference

  • rapidxml
  • xml_document
Classes | Public Member Functions | List of all members
rapidxml::xml_document< Ch > Class Template Reference
Inheritance diagram for rapidxml::xml_document< Ch >:
rapidxml::xml_node< Ch > rapidxml::memory_pool< Ch > rapidxml::xml_base< Ch >

Public Member Functions

xml_document ()
Constructs empty XML document.
template<int Flags>
Ch * | parse (Ch *text, xml_document< Ch > *parent=0)
template<int Flags>
Ch * | parse (Ch *text, xml_document< Ch > &parent)
void | clear ()
template<int Flags>
void | fixup (xml_node< Ch > *element, bool recurse)
void | validate () const
- Public Member Functions inherited from rapidxml::xml_node< Ch >
xml_node (node_type type)
node_type | type () const
void | prefix (const Ch *prefix, std::size_t size)
void | prefix (const Ch *prefix)
Ch * | prefix () const
std::size_t | prefix_size () const
void | contents (Ch const *contents, std::size_t contents_size)
Ch const * | contents () const
std::size_t | contents_size () const
Ch * | xmlns () const
void | xmlns_lookup (Ch *&xmlns, size_t &xmlns_size, Ch *prefix, size_t prefix_size) const
std::size_t | xmlns_size () const
xml_document< Ch > * | document () const
xml_node< Ch > * | first_node (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_node< Ch > * | last_node (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_node< Ch > * | previous_sibling (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_node< Ch > * | next_sibling (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_attribute< Ch > * | first_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
xml_attribute< Ch > * | last_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
void | type (node_type type)
void | prepend_node (xml_node< Ch > *child)
void | append_node (xml_node< Ch > *child)
void | insert_node (xml_node< Ch > *where, xml_node< Ch > *child)
void | remove_first_node ()
void | remove_last_node ()
void | remove_node (xml_node< Ch > *where)
Removes specified child from the node.
void | remove_all_nodes ()
Removes all child nodes (but not attributes).
void | prepend_attribute (xml_attribute< Ch > *attribute)
void | append_attribute (xml_attribute< Ch > *attribute)
void | insert_attribute (xml_attribute< Ch > *where, xml_attribute< Ch > *attribute)
void | remove_first_attribute ()
void | remove_last_attribute ()
void | remove_attribute (xml_attribute< Ch > *where)
void | remove_all_attributes ()
Removes all attributes of node.
void | validate () const
- Public Member Functions inherited from rapidxml::xml_base< Ch >
Ch * | name () const
std::size_t | name_size () const
Ch * | value () const
std::size_t | value_size () const
void | name (const Ch *name, std::size_t size)
void | name (const Ch *name)
void | value (const Ch *value, std::size_t size)
void | value (const Ch *value)
xml_node< Ch > * | parent () const
- Public Member Functions inherited from rapidxml::memory_pool< Ch >
memory_pool ()
Constructs empty pool with default allocator functions.
~memory_pool ()
xml_node< Ch > * | allocate_node (node_type type, const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0)
xml_attribute< Ch > * | allocate_attribute (const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0)
template<typename Sch >
Ch * | allocate_string (const Sch *source=0, std::size_t size=0)
Ch * | nullstr ()
Ch * | xmlns_xml (std::size_t &xmlns_size)
Ch * | xmlns_xmlns (std::size_t &xmlns_size)
xml_node< Ch > * | clone_node (const xml_node< Ch > *source, xml_node< Ch > *result=0)
void | clear ()
void | set_allocator (alloc_func *af, free_func *ff)

Additional Inherited Members

- Protected Attributes inherited from rapidxml::xml_base< Ch >
Ch * | m_name
Ch * | m_value
std::size_t | m_name_size
std::size_t | m_value_size
xml_node< Ch > * | m_parent

Detailed Description

template<class Ch = char>
class rapidxml::xml_document< Ch >

This class represents root of the DOM hierarchy. It is also an xml_node and a memory_pool through public inheritance. Use parse() function to build a DOM tree from a zero-terminated XML text string. parse() function allocates memory for nodes and attributes by using functions of xml_document, which are inherited from memory_pool. To access root node of the document, use the document itself, as if it was an xml_node.

Parameters
Ch Character type to use.

Member Function Documentation

◆ clear()

template<class Ch = char>
void rapidxml::xml_document< Ch >::clear ( )
inline

Clears the document by deleting all nodes and clearing the memory pool. All nodes owned by document pool are destroyed.

◆ fixup()

template<class Ch = char>
template<int Flags>
void rapidxml::xml_document< Ch >::fixup | ( | xml_node< Ch > * | element,
 |  | bool | recurse
 | ) |  |
inline

Terminates and/or decodes existing parsed tree, optionally recursively.

◆ parse()

template<class Ch = char>
template<int Flags>
Ch* rapidxml::xml_document< Ch >::parse | ( | Ch * | text,
 |  | xml_document< Ch > * | parent = 0
 | ) |  |
inline

Parses zero-terminated XML string according to given flags. Passed string will be modified by the parser, unless rapidxml::parse_non_destructive flag is used. The string must persist for the lifetime of the document. In case of error, rapidxml::parse_error exception will be thrown.

If you want to parse contents of a file, you must first load the file into the memory, and pass pointer to its beginning. Make sure that data is zero-terminated.

Document can be parsed into multiple times. Each new call to parse removes previous nodes and attributes (if any), but does not clear memory pool.

Parameters
text XML data to parse; pointer is non-const to denote fact that this data may be modified by the parser.
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: rapidxml::xml_node< Ch > Class Template Reference

  • rapidxml
  • xml_node
Public Member Functions | List of all members
rapidxml::xml_node< Ch > Class Template Reference
Inheritance diagram for rapidxml::xml_node< Ch >:
rapidxml::xml_base< Ch > rapidxml::xml_document< Ch >

Public Member Functions

xml_node (node_type type)
node_type | type () const
void | prefix (const Ch *prefix, std::size_t size)
void | prefix (const Ch *prefix)
Ch * | prefix () const
std::size_t | prefix_size () const
void | contents (Ch const *contents, std::size_t contents_size)
Ch const * | contents () const
std::size_t | contents_size () const
Ch * | xmlns () const
void | xmlns_lookup (Ch *&xmlns, size_t &xmlns_size, Ch *prefix, size_t prefix_size) const
std::size_t | xmlns_size () const
xml_document< Ch > * | document () const
xml_node< Ch > * | first_node (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_node< Ch > * | last_node (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_node< Ch > * | previous_sibling (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_node< Ch > * | next_sibling (const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
xml_attribute< Ch > * | first_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
xml_attribute< Ch > * | last_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
void | type (node_type type)
void | prepend_node (xml_node< Ch > *child)
void | append_node (xml_node< Ch > *child)
void | insert_node (xml_node< Ch > *where, xml_node< Ch > *child)
void | remove_first_node ()
void | remove_last_node ()
void | remove_node (xml_node< Ch > *where)
Removes specified child from the node.
void | remove_all_nodes ()
Removes all child nodes (but not attributes).
void | prepend_attribute (xml_attribute< Ch > *attribute)
void | append_attribute (xml_attribute< Ch > *attribute)
void | insert_attribute (xml_attribute< Ch > *where, xml_attribute< Ch > *attribute)
void | remove_first_attribute ()
void | remove_last_attribute ()
void | remove_attribute (xml_attribute< Ch > *where)
void | remove_all_attributes ()
Removes all attributes of node.
void | validate () const
- Public Member Functions inherited from rapidxml::xml_base< Ch >
Ch * | name () const
std::size_t | name_size () const
Ch * | value () const
std::size_t | value_size () const
void | name (const Ch *name, std::size_t size)
void | name (const Ch *name)
void | value (const Ch *value, std::size_t size)
void | value (const Ch *value)
xml_node< Ch > * | parent () const

Additional Inherited Members

- Protected Attributes inherited from rapidxml::xml_base< Ch >
Ch * | m_name
Ch * | m_value
std::size_t | m_name_size
std::size_t | m_value_size
xml_node< Ch > * | m_parent

Detailed Description

template<class Ch = char>
class rapidxml::xml_node< Ch >

Class representing a node of XML document. Each node may have associated name and value strings, which are available through name() and value() functions. Interpretation of name and value depends on type of the node. Type of node can be determined by using type() function.

Note that after parse, both name and value of node, if any, will point interior of source text used for parsing. Thus, this text must persist in the memory for the lifetime of node.

Parameters
Ch Character type to use.

Constructor & Destructor Documentation

◆ xml_node()

template<class Ch = char>
rapidxml::xml_node< Ch >::xml_node ( node_type type )
inline

Constructs an empty node with the specified type. Consider using memory_pool of appropriate document to allocate nodes manually.

Parameters
type Type of node to construct.

Member Function Documentation

◆ append_attribute()

template<class Ch = char>
void rapidxml::xml_node< Ch >::append_attribute ( xml_attribute< Ch > * attribute )
inline

Appends a new attribute to the node.

Parameters
attribute Attribute to append.

◆ append_node()

template<class Ch = char>
void rapidxml::xml_node< Ch >::append_node ( xml_node< Ch > * child )
inline

Appends a new child node. The appended child becomes the last child.

Parameters
child Node to append.

◆ document()

template<class Ch = char>
xml_document<Ch>* rapidxml::xml_node< Ch >::document ( ) const
inline

Gets document of which node is a child.

Returns
Pointer to document that contains this node, or 0 if there is no parent document.

◆ first_attribute()

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_node< Ch >::first_attribute | ( | const Ch * | name = 0,
 |  | std::size_t | name_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets first attribute of node, optionally matching attribute name.

Parameters
name | Name of attribute to find, or 0 to return first attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found attribute, or 0 if not found.

◆ first_node()

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::first_node | ( | const Ch * | name = 0,
 |  | const Ch * | xmlns = 0,
 |  | std::size_t | name_size = 0,
 |  | std::size_t | xmlns_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets first child node, optionally matching node name.

Parameters
name | Name of child to find, or 0 to return first child regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found child, or 0 if not found.

◆ insert_attribute()

template<class Ch = char>
void rapidxml::xml_node< Ch >::insert_attribute | ( | xml_attribute< Ch > * | where,
 |  | xml_attribute< Ch > * | attribute
 | ) |  |
inline

Inserts a new attribute at specified place inside the node. All attributes after and including the specified attribute are moved one position back.

Parameters
where | Place where to insert the attribute, or 0 to insert at the back.
attribute | Attribute to insert.

◆ insert_node()

template<class Ch = char>
void rapidxml::xml_node< Ch >::insert_node | ( | xml_node< Ch > * | where,
 |  | xml_node< Ch > * | child
 | ) |  |
inline

Inserts a new child node at specified place inside the node. All children after and including the specified node are moved one position back.

Parameters
where | Place where to insert the child, or 0 to insert at the back.
child | Node to insert.

◆ last_attribute()

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_node< Ch >::last_attribute | ( | const Ch * | name = 0,
 |  | std::size_t | name_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets last attribute of node, optionally matching attribute name.

Parameters
name | Name of attribute to find, or 0 to return last attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found attribute, or 0 if not found.

◆ last_node()

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::last_node | ( | const Ch * | name = 0,
 |  | const Ch * | xmlns = 0,
 |  | std::size_t | name_size = 0,
 |  | std::size_t | xmlns_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets last child node, optionally matching node name. Behaviour is undefined if node has no children. Use first_node() to test if node has children.

Parameters
name | Name of child to find, or 0 to return last child regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found child, or 0 if not found.

◆ next_sibling()

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::next_sibling | ( | const Ch * | name = 0,
 |  | const Ch * | xmlns = 0,
 |  | std::size_t | name_size = 0,
 |  | std::size_t | xmlns_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets next sibling node, optionally matching node name. Behaviour is undefined if node has no parent. Use parent() to test if node has a parent.

Parameters
name | Name of sibling to find, or 0 to return next sibling regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found sibling, or 0 if not found.

◆ prepend_attribute()

template<class Ch = char>
void rapidxml::xml_node< Ch >::prepend_attribute ( xml_attribute< Ch > * attribute )
inline

Prepends a new attribute to the node.

Parameters
attribute Attribute to prepend.

◆ prepend_node()

template<class Ch = char>
void rapidxml::xml_node< Ch >::prepend_node ( xml_node< Ch > * child )
inline

Prepends a new child node. The prepended child becomes the first child, and all existing children are moved one position back.

Parameters
child Node to prepend.

◆ previous_sibling()

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::previous_sibling | ( | const Ch * | name = 0,
 |  | const Ch * | xmlns = 0,
 |  | std::size_t | name_size = 0,
 |  | std::size_t | xmlns_size = 0,
 |  | bool | case_sensitive = true
 | ) |  | const
 inline

Gets previous sibling node, optionally matching node name. Behaviour is undefined if node has no parent. Use parent() to test if node has a parent.

Parameters
name | Name of sibling to find, or 0 to return previous sibling regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_size | Size of name, in characters, or 0 to have size calculated automatically from string
case_sensitive | Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns
Pointer to found sibling, or 0 if not found.

◆ remove_attribute()

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_attribute ( xml_attribute< Ch > * where )
inline

Removes specified attribute from node.

Parameters
where Pointer to attribute to be removed.

◆ remove_first_attribute()

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_first_attribute ( )
inline

Removes first attribute of the node. If node has no attributes, behaviour is undefined. Use first_attribute() to test if node has attributes.

◆ remove_first_node()

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_first_node ( )
inline

Removes first child node. If node has no children, behaviour is undefined. Use first_node() to test if node has children.

◆ remove_last_attribute()

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_last_attribute ( )
inline

Removes last attribute of the node. If node has no attributes, behaviour is undefined. Use first_attribute() to test if node has attributes.

◆ remove_last_node()

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_last_node ( )
inline

Removes last child of the node. If node has no children, behaviour is undefined. Use first_node() to test if node has children.

◆ type() [1/2]

template<class Ch = char>
node_type rapidxml::xml_node< Ch >::type ( ) const
inline

Gets type of node.

Returns
Type of node.

◆ type() [2/2]

template<class Ch = char>
void rapidxml::xml_node< Ch >::type ( node_type type )
inline

Sets type of node.

Parameters
type Type of node to set.
The documentation for this class was generated from the following file:
  • include/rapidxml/rapidxml.hpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: EventImpl Class Reference

Public Member Functions | List of all members
EventImpl Class Reference
Inheritance diagram for EventImpl:
pu::Event pu::Dequeueable

Public Member Functions

void | dequeue (unsigned int req_id, unsigned long event_number)
- Public Member Functions inherited from pu::Event
void | init (void *ptr_p, unsigned int req_id_p, unsigned long event_number_p)

Additional Inherited Members

- Protected Attributes inherited from pu::Event
void * | ptr
unsigned int | req_id
unsigned long | event_number
The documentation for this class was generated from the following file:
  • src/icduiobjects.cpp
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: GenericBusObject Class Reference

Public Member Functions | List of all members
GenericBusObject Class Reference

The GenericBusObject class: proxy implementation class for GenericDriver. More...

Public Member Functions

GenericBusObject (GenericDriver *d)
bool | parseXMLConfig (std::string filename, IGenericBusEqp *eq=0)
bool | bind (ICDHandler *h)
bool | start ()
void | stop ()
int | configure ()
bool | isStarted ()
bool | sendMessage (int msg_id, unsigned char *data, size_t sz)
unsigned long | getClockPeriod ()
int | getCommHandler ()
std::string | getVersion ()
bool | setErrorInjection (int err)
int | getErrorInjection () const
std::vector< std::string > | getErrorInjectionList ()
long | msgSent ()
long | msgReceived ()
long | msgError ()
int | logStart (int level, std::string fileName)
bool | logIsStarted () const
void | logStop ()
bool | setAsMasterLogTimeTag ()

Detailed Description

The GenericBusObject class: proxy implementation class for GenericDriver.

The documentation for this class was generated from the following files:
  • include/genericbusobject.h
  • src/genericbusobject.cpp
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: GenericDriver Class Reference

Public Member Functions | List of all members
GenericDriver Class Referenceabstract

Bus Interface Class. More...

Public Member Functions

virtual | ~GenericDriver ()
virtual destructor
virtual int | LoadICDXML (std::string XMLfile_name, IGenericBusEqp *pBusUser=NULL)=0
Load ICD information by xml file; pBusUser (if passed) is for error forwarding.
virtual bool | RegisterToBus (IGenericBusEqp *pBusUser)=0
It bind the Equipment to the Bus.
virtual bool | Start ()=0
It Start the bus.
virtual bool | Stop ()=0
It Stop the bus.
virtual bool | Send (int msgId, unsigned char *data, size_t sz, int err_type=-1)=0
It Send the message identified by msgId ( err_type is optional )
virtual unsigned long | GetClockPeriod ()=0
It returns the clock period [in microseconds].
virtual bool | IsStarted ()=0
Retrun the status of bus; True if started, False otherwise.
virtual long | MessageSent ()=0
It returns the number of transmitted messages.
virtual long | MessageRead ()=0
It returns the number of received messages.
virtual long | MessageError ()=0
It returns the number of wrong messages ( both received and transmitted )
virtual int | StartLog (int LogLevel, std::string FileLogName)=0
Start Log activity : LogLevel values: 1 = Errors only 2 = Errors and data changes only 3 = Errors and all data.
virtual void | StopLog ()=0
Stop the log activity.
virtual std::string | GetVersion ()=0
Ritorna la versione come stringa.
virtual std::vector< std::string > | GetErrorInjectionList ()=0
Metodo che restituisce una lista di stringhe corrispondenti al tipo di errore iniettabile. More...
virtual bool | setAsMasterTimeTag ()

Detailed Description

Bus Interface Class.

Member Function Documentation

◆ GetErrorInjectionList()

virtual std::vector<std::string> GenericDriver::GetErrorInjectionList ( )
pure virtual

Metodo che restituisce una lista di stringhe corrispondenti al tipo di errore iniettabile.

Metodo che indica al driver di imporre a livello globale una propria funzionalita' (se implementata) per la generazione del log time-tag [ stringa ]

The documentation for this class was generated from the following file:
  • include/ext/genericBusInterface.h
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDAbstractContainer< T > Class Template Reference

Public Member Functions | List of all members
ICDAbstractContainer< T > Class Template Referenceabstract
Inheritance diagram for ICDAbstractContainer< T >:
ICDGenericContainer< T > ICDIndexedContainer< T >

Public Member Functions

virtual bool | addItem (T *, bool)=0
virtual bool | removeItem (unsigned int)=0
virtual bool | removeItem (T *)=0
virtual T * | getItem (unsigned int)=0
virtual int | indexOf (T *)=0
virtual T * | findItem (const std::string &)=0
virtual size_t | size ()=0
The documentation for this class was generated from the following file:
  • include/icdcontainers.h
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDAbstractFactory Class Reference

Public Member Functions | List of all members
ICDAbstractFactory Class Reference

The ICDAbstractFactory class It it used to return a generic oject implementations of the required ICD object. More...

Public Member Functions

virtual ICDMessage * | new_ICDMessage (unsigned int msg_id, std::string name, size_t bitlength, bool periodic=false, bool readonly=true)
new_ICDMessage More...
virtual ICDGenericMessageField * | new_ICDEnumMessageField (unsigned int start, unsigned int length, std::string name, ICDEnumMap &values, bool readonly=true)
new_ICDEnumMessageField: build a ICDEnumMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDBooleanMessageField (unsigned int start, string name, bool readonly=true)
new_ICDBooleanMessageField: build a ICDBooleanMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDStringMessageField (unsigned int start, unsigned int length, std::string name, bool readonly=true)
new_ICDStringMessageField: build a ICDStringMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDIntegerMessageField (unsigned int start, unsigned int length, std::string name, int min, int max, int lsb, int offset, bool readonly=true)
new_ICDIntegerMessageField: build a int typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDUnsignedIntegerMessageField (unsigned int start, unsigned int length, std::string name, unsigned int min, unsigned int max, unsigned int lsb, unsigned int offset, bool readonly=true)
new_ICDUnsignedIntegerMessageField: build a unsigned int typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDShortMessageField (unsigned int start, unsigned int length, std::string name, short min, short max, short lsb, short offset, bool readonly=true)
new_ICDShortMessageField: build a short typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDUnsignedShortMessageField (unsigned int start, unsigned int length, std::string name, unsigned short min, unsigned short max, unsigned short lsb, unsigned short offset, bool readonly=true)
new_ICDUnsignedShortMessageField: build a unsigned short typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDLongMessageField (unsigned int start, unsigned int length, std::string name, long min, long max, long lsb, long offset, bool readonly=true)
new_ICDLongMessageField: build a long typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDUnsignedLongMessageField (unsigned int start, unsigned int length, std::string name, unsigned long min, unsigned long max, unsigned long lsb, unsigned long offset, bool readonly=true)
new_ICDUnsignedLongMessageField: build a unsigned long typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDLongLongMessageField (unsigned int start, unsigned int length, std::string name, long long min, long long max, long long lsb, long long offset, bool readonly=true)
new_ICDLongLongMessageField: build a long long typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDUnsignedLongLongMessageField (unsigned int start, unsigned int length, std::string name, unsigned long long min, unsigned long long max, unsigned long long lsb, unsigned long long offset, bool readonly=true)
new_ICDUnsignedLongLongMessageField: build a unsigned long long typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDFloatMessageField (unsigned int start, unsigned int length, std::string name, float min, float max, float lsb, float offset, bool readonly=true)
new_ICDFloatMessageField: build a float typed ICDNumericMessageField with the given arguments More...
virtual ICDGenericMessageField * | new_ICDDoubleMessageField (unsigned int start, unsigned int length, std::string name, double min, double max, double lsb, double offset, bool readonly=true)
new_ICDDoubleMessageField: build a double typed ICDNumericMessageField with the given arguments More...

Detailed Description

The ICDAbstractFactory class It it used to return a generic oject implementations of the required ICD object.

Member Function Documentation

◆ new_ICDBooleanMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDBooleanMessageField | ( | unsigned int | start,
 |  | string | name,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDBooleanMessageField: build a ICDBooleanMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
name | the messagefield name
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDDoubleMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDDoubleMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | double | min,
 |  | double | max,
 |  | double | lsb,
 |  | double | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDDoubleMessageField: build a double typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDEnumMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDEnumMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | ICDEnumMap & | values,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDEnumMessageField: build a ICDEnumMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
values | ICDEnumMap object containing the string to binary rapresentation binding
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDFloatMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDFloatMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | float | min,
 |  | float | max,
 |  | float | lsb,
 |  | float | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDFloatMessageField: build a float typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDIntegerMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDIntegerMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | int | min,
 |  | int | max,
 |  | int | lsb,
 |  | int | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDIntegerMessageField: build a int typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDLongLongMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDLongLongMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | long long | min,
 |  | long long | max,
 |  | long long | lsb,
 |  | long long | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDLongLongMessageField: build a long long typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDLongMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDLongMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | long | min,
 |  | long | max,
 |  | long | lsb,
 |  | long | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDLongMessageField: build a long typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDMessage()

virtual ICDMessage* ICDAbstractFactory::new_ICDMessage | ( | unsigned int | msg_id,
 |  | std::string | name,
 |  | size_t | bitlength,
 |  | bool | periodic = false,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDMessage

Parameters
msg_id | the message identifier
name | the message name
bitlength | the length of the message in bit unit
readonly | the read/write attribute
Returns
a new ICDMessage object

◆ new_ICDShortMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDShortMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | short | min,
 |  | short | max,
 |  | short | lsb,
 |  | short | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDShortMessageField: build a short typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDStringMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDStringMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDStringMessageField: build a ICDStringMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDUnsignedIntegerMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDUnsignedIntegerMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | unsigned int | min,
 |  | unsigned int | max,
 |  | unsigned int | lsb,
 |  | unsigned int | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDUnsignedIntegerMessageField: build a unsigned int typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDUnsignedLongLongMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDUnsignedLongLongMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | unsigned long long | min,
 |  | unsigned long long | max,
 |  | unsigned long long | lsb,
 |  | unsigned long long | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDUnsignedLongLongMessageField: build a unsigned long long typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDUnsignedLongMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDUnsignedLongMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | unsigned long | min,
 |  | unsigned long | max,
 |  | unsigned long | lsb,
 |  | unsigned long | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDUnsignedLongMessageField: build a unsigned long typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object

◆ new_ICDUnsignedShortMessageField()

virtual ICDGenericMessageField* ICDAbstractFactory::new_ICDUnsignedShortMessageField | ( | unsigned int | start,
 |  | unsigned int | length,
 |  | std::string | name,
 |  | unsigned short | min,
 |  | unsigned short | max,
 |  | unsigned short | lsb,
 |  | unsigned short | offset,
 |  | bool | readonly = true
 | ) |  |
inlinevirtual

new_ICDUnsignedShortMessageField: build a unsigned short typed ICDNumericMessageField with the given arguments

Parameters
start | the relative offset position respect to the message
length | the length of the messagefield in bit unit
name | the messagefield name
min | the lower range limit value
max | the higher range limit value
lsb | the bit weigth value
offset | the offset value
readonly | the read/write attribute
Returns
a new ICDGenericMessageField messagefield object
The documentation for this class was generated from the following file:
  • include/icdabstractfactory.h
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDAbstractRaw Class Reference

Public Member Functions | Protected Attributes | List of all members
ICDAbstractRaw Class Reference
Inheritance diagram for ICDAbstractRaw:
ICDRawMessage ICDRawMessageField ICDMessage ICDGenericMessageField ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
virtual bool | setBitStream (ICDEndianness, ICDStreamFormat)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const

Protected Attributes

size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat
The documentation for this class was generated from the following files:
  • include/icdrawstream.h
  • src/icdrawstream.cpp
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDBCDTranscoder< T > Class Template Reference

Public Member Functions | List of all members
ICDBCDTranscoder< T > Class Template Reference

The ICDBCDTranscoder class : implements a BCD transcoder based on standard ( nibbles with range 0-9 ) More...

Inheritance diagram for ICDBCDTranscoder< T >:
ICDGenericTranscoder< T >

Public Member Functions

ICDBCDTranscoder (unsigned numDecimal=0, const std::string &n="BCD")
bool | encode (T val, UnsignedICD *u)
bool | decode (UnsignedICD u, T *val)
bool | decode (SignedICD, T *)
- Public Member Functions inherited from ICDGenericTranscoder< T >
ICDGenericTranscoder (std::string n)
std::string | getName ()

Additional Inherited Members

- Protected Attributes inherited from ICDGenericTranscoder< T >
std::string _name

Detailed Description

template<class T>
class ICDBCDTranscoder< T >

The ICDBCDTranscoder class : implements a BCD transcoder based on standard ( nibbles with range 0-9 )

The documentation for this class was generated from the following files:
  • include/icdtranscoder.h
  • include/icdtranscoder.inl
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDBooleanMessageField Class Reference

Public Member Functions | List of all members
ICDBooleanMessageField Class Reference

The ICDBooleanMessageField class. More...

Inheritance diagram for ICDBooleanMessageField:
ICDEnumMessageField ICDGenericMessageField ICDNamedItem ICDUiGenericMessageField ICDRawMessageField ICDCodingMessageField ICDUiAbstractItem ICDAbstractRaw ICDUiObject ICDUiAbstractObject

Public Member Functions

ICDBooleanMessageField (unsigned int start, string name, bool readonly=true)
bool | set (bool b) override
bool | getAsBoolean (bool *) override
- Public Member Functions inherited from ICDEnumMessageField
ICDEnumMessageField (unsigned int start, unsigned int length, std::string name, ICDEnumMap &values, bool readonly=true)
bool | set (std::string) override
bool | set (unsigned int) override
std::string | get () override
bool | getAsUInt (unsigned int *v) override
bool | setEncodingFrom (ICDGenericTranscoder< unsigned int > *) override
std::string | getEncoderName () override
ICDStringList | getAll () override
bool | isInRange () override
bool | isSigned () override
double | getRangeMin () override
double | getRangeMax () override
double | getBoundMin () override
double | getBoundMax () override
bool | pack (ICDRawData *) override
bool | unpack (ICDRawData) override
- Public Member Functions inherited from ICDGenericMessageField
ICDGenericMessageField (unsigned int s, unsigned int l, std::string n, bool r)
virtual bool | set (int)
virtual bool | set (unsigned short)
virtual bool | set (short)
virtual bool | set (unsigned long)
virtual bool | set (long)
virtual bool | set (unsigned long long)
virtual bool | set (long long)
virtual bool | set (float)
virtual bool | set (double)
virtual bool | getAsStdString (std::string *)
virtual bool | getAsInt (int *)
virtual bool | getAsUShort (unsigned short *)
virtual bool | getAsShort (short *)
virtual bool | getAsULong (unsigned long *)
virtual bool | getAsLong (long *)
virtual bool | getAsULongLong (unsigned long long *)
virtual bool | getAsLongLong (long long *)
virtual bool | getAsFloat (float *)
virtual bool | getAsDouble (double *)
virtual void | setDataResolution (double)
virtual double | getBitWeigth ()
virtual double | getOffsetVal ()
void | setDisplayDigitBase (std::string)
void | setDisplayDigitBase (ICD__digit_display_base)
ICD__digit_display_base | getDisplayDigitBase ()
bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
std::string | getFieldType ()
ICD__data_type | getDataType ()
double | getDataResolution ()
bool | isNeverBeenUnpacked ()
std::string | getUnit ()
void | setUnit (std::string)
void | setType (std::string)
unsigned int | getStart ()
unsigned int | getLength ()
unsigned int | getEnd ()
virtual bool | overlaps (ICDGenericMessageField *)
- Public Member Functions inherited from ICDNamedItem
ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...
- Public Member Functions inherited from ICDUiGenericMessageField
ICDUiGenericMessageField (bool)
ICDUiGenericMessageField::ICDUiGenericMessageField. More...
unsigned short | getUiMask ()
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...
void | sendICDEvent (unsigned int req_id)
ICDUiGenericMessageField::sendICDEvent. More...
bool | setReservationTo (ICDUiObject *)
ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by argument untill it is released. More...
bool | releaseReservationTo (ICDUiObject *)
ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj. More...
bool | isReserved ()
bool | isReadOnly ()
bool | hasPendingChanges ()
void | flushPendingChanges ()
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...
- Public Member Functions inherited from ICDRawMessageField
ICDRawMessageField (size_t start, size_t len)
bool | setBitStream (ICDEndianness, ICDStreamFormat)
ICDRawMessageField::setBitStream. More...
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const
- Public Member Functions inherited from ICDCodingMessageField
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< float > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< double > *)
virtual bool | setEncodingFrom (ICDStringTranscoder *)

Additional Inherited Members

- Static Public Member Functions inherited from ICDNamedItem
static std::string | s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...
- Protected Member Functions inherited from ICDEnumMessageField
bool | append (unsigned int)
bool | isInBound (unsigned int)
bool | assignNumber (unsigned int)
- Protected Member Functions inherited from ICDUiAbstractItem
virtual void | raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...
- Protected Member Functions inherited from ICDRawMessageField
bool | packAsCharArray (ICDByte *v, ICDRawData *a, size_t qty)
ICDRawMessageField::packAsCharArray. More...
bool | unpackAsCharArray (ICDRawData a, ICDByte *v, size_t qty)
ICDRawMessageField::unpackAsCharArray. More...
bool | packUnsigned (UnsignedICD v, ICDRawData *a)
ICDRawMessageField::packUnsigned. More...
bool | unpackUnsigned (ICDRawData a, UnsignedICD *v)
ICDRawMessageField::unpackUnsigned. More...
bool | unpackSigned (ICDRawData a, SignedICD *v)
ICDRawMessageField::unpackSigned. More...
- Protected Attributes inherited from ICDEnumMessageField
ICDEnumMap::iterator | _cur
ICDEnumMap | _enum_map
ICDEnumMap | _enum_map_original
unsigned int | _range_min
unsigned int | _range_max
unsigned int | _bound_min
unsigned int | _bound_max
bool | _never_set
- Protected Attributes inherited from ICDGenericMessageField
unsigned int | _end
std::string | _unit
std::string | _field_type
double | _data_resolution
bool | _never_been_unpacked
ICD__data_type | _data_type
ICD__digit_display_base | _digit_display
- Protected Attributes inherited from ICDNamedItem
std::string | _name
std::string | _ui_id
- Protected Attributes inherited from ICDUiGenericMessageField
bool | _readonly
ICDUiObject * | _obj_reserved
unsigned short | _ui_mask
bool | _incoming_changes
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display
- Protected Attributes inherited from ICDRawMessageField
size_t | _bit_shift
size_t | _qty
UnsignedICD | _array_index
size_t | _start
size_t | _len
UnsignedICD | _bit_mask
UnsignedICD | _sign_mask
std::mutex | mutex_set
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat

Detailed Description

The ICDBooleanMessageField class.

The documentation for this class was generated from the following files:
  • include/icdmessagefield.h
  • src/icdmessagefield.cpp
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDCodeSignedTranscoder< T > Class Template Reference

Public Member Functions | List of all members
ICDCodeSignedTranscoder< T > Class Template Reference

The ICDCodeSignedTranscoder class : implements a sign/value transcoder. More...

Inheritance diagram for ICDCodeSignedTranscoder< T >:
ICDGenericTranscoder< T >

Public Member Functions

ICDCodeSignedTranscoder (unsigned lenModule, const std::string &n="CodeSigned")
bool | encode (T val, UnsignedICD *u)
bool | decode (UnsignedICD u, T *val)
bool | decode (SignedICD s, T *val)
- Public Member Functions inherited from ICDGenericTranscoder< T >
ICDGenericTranscoder (std::string n)
std::string | getName ()

Additional Inherited Members

- Protected Attributes inherited from ICDGenericTranscoder< T >
std::string _name

Detailed Description

template<class T>
class ICDCodeSignedTranscoder< T >

The ICDCodeSignedTranscoder class : implements a sign/value transcoder.

The documentation for this class was generated from the following files:
  • include/icdtranscoder.h
  • include/icdtranscoder.inl
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDCodingMessageField Class Reference

Public Member Functions | List of all members
ICDCodingMessageField Class Reference

The ICDCodingMessageField class. More...

Inheritance diagram for ICDCodingMessageField:
ICDGenericMessageField ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< float > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< double > *)
virtual bool | setEncodingFrom (ICDStringTranscoder *)

Detailed Description

The ICDCodingMessageField class.

/////////////////////////////////////////////////////////////////////////////////

Attention
: each time a new Encoder is set a commit ( at least of singe field ) is recommented in order to generate the right encoding and avoid possible errors in case of revert
The documentation for this class was generated from the following file:
  • include/icdtranscoder.h
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDDefaultStringTranscoder Class Reference

Public Member Functions | List of all members
ICDDefaultStringTranscoder Class Reference
Inheritance diagram for ICDDefaultStringTranscoder:
ICDStringTranscoder

Public Member Functions

ICDDefaultStringTranscoder (const std::string &n="DeafultStringTranscoder")
bool | encode (std::string, std::string *)
bool | decode (std::string, std::string *)
- Public Member Functions inherited from ICDStringTranscoder
ICDStringTranscoder (const std::string &n="StringTranscoder")
std::string | getName ()
The documentation for this class was generated from the following files:
  • include/icdtranscoder.h
  • src/icdtranscoder.cpp
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDDefaultTranscoder< T > Class Template Reference

Public Member Functions | List of all members
ICDDefaultTranscoder< T > Class Template Reference

The ICDDefaultTranscoder class: used for numerical fields. More...

Inheritance diagram for ICDDefaultTranscoder< T >:
ICDGenericTranscoder< T > ICDSwapTranscoder< T >

Public Member Functions

ICDDefaultTranscoder (T lsb, T offset=0, const std::string &n="Default")
bool | encode (T val, UnsignedICD *u)
bool | decode (UnsignedICD u, T *val)
bool | decode (SignedICD s, T *val)
- Public Member Functions inherited from ICDGenericTranscoder< T >
ICDGenericTranscoder (std::string n)
std::string | getName ()

Additional Inherited Members

- Protected Attributes inherited from ICDGenericTranscoder< T >
std::string _name

Detailed Description

template<class T>
class ICDDefaultTranscoder< T >

The ICDDefaultTranscoder class: used for numerical fields.

////////////////////////////////////////////////////////////////////////////////

The documentation for this class was generated from the following files:
  • include/icdtranscoder.h
  • include/icdtranscoder.inl
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDDictionary Class Reference

Classes | Public Member Functions | List of all members
ICDDictionary Class Reference

Public Member Functions

bool | set (std::string k, bool v)
bool | set (std::string k, long v)
bool | set (std::string k, double v)
bool | set (std::string k, std::string v)
bool | set (std::string k, const char *v)
bool | get (std::string k, bool *v)
bool | get (std::string k, long *v)
bool | get (std::string k, double *v)
bool | get (std::string k, std::string *v)
bool | isBoolean (std::string k)
bool | isLong (std::string k)
bool | isDouble (std::string k)
bool | isString (std::string k)
bool | contains (std::string k)
std::vector< std::string > | keys ()
The documentation for this class was generated from the following files:
  • include/icddictionary.h
  • src/icddictionary.cpp
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDEnumMessageField Class Reference

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ICDEnumMessageField Class Reference

The ICDEnumMessageField class. More...

Inheritance diagram for ICDEnumMessageField:
ICDGenericMessageField ICDNamedItem ICDUiGenericMessageField ICDRawMessageField ICDCodingMessageField ICDUiAbstractItem ICDAbstractRaw ICDUiObject ICDUiAbstractObject ICDBooleanMessageField

Public Member Functions

ICDEnumMessageField (unsigned int start, unsigned int length, std::string name, ICDEnumMap &values, bool readonly=true)
bool | set (std::string) override
bool | set (unsigned int) override
std::string | get () override
bool | getAsUInt (unsigned int *v) override
bool | setEncodingFrom (ICDGenericTranscoder< unsigned int > *) override
std::string | getEncoderName () override
ICDStringList | getAll () override
bool | isInRange () override
bool | isSigned () override
double | getRangeMin () override
double | getRangeMax () override
double | getBoundMin () override
double | getBoundMax () override
bool | pack (ICDRawData *) override
bool | unpack (ICDRawData) override
- Public Member Functions inherited from ICDGenericMessageField
ICDGenericMessageField (unsigned int s, unsigned int l, std::string n, bool r)
virtual bool | set (int)
virtual bool | set (unsigned short)
virtual bool | set (short)
virtual bool | set (unsigned long)
virtual bool | set (long)
virtual bool | set (unsigned long long)
virtual bool | set (long long)
virtual bool | set (float)
virtual bool | set (double)
virtual bool | set (bool)
virtual bool | getAsStdString (std::string *)
virtual bool | getAsInt (int *)
virtual bool | getAsUShort (unsigned short *)
virtual bool | getAsShort (short *)
virtual bool | getAsULong (unsigned long *)
virtual bool | getAsLong (long *)
virtual bool | getAsULongLong (unsigned long long *)
virtual bool | getAsLongLong (long long *)
virtual bool | getAsFloat (float *)
virtual bool | getAsDouble (double *)
virtual bool | getAsBoolean (bool *)
virtual void | setDataResolution (double)
virtual double | getBitWeigth ()
virtual double | getOffsetVal ()
void | setDisplayDigitBase (std::string)
void | setDisplayDigitBase (ICD__digit_display_base)
ICD__digit_display_base | getDisplayDigitBase ()
bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
std::string | getFieldType ()
ICD__data_type | getDataType ()
double | getDataResolution ()
bool | isNeverBeenUnpacked ()
std::string | getUnit ()
void | setUnit (std::string)
void | setType (std::string)
unsigned int | getStart ()
unsigned int | getLength ()
unsigned int | getEnd ()
virtual bool | overlaps (ICDGenericMessageField *)
- Public Member Functions inherited from ICDNamedItem
ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...
- Public Member Functions inherited from ICDUiGenericMessageField
ICDUiGenericMessageField (bool)
ICDUiGenericMessageField::ICDUiGenericMessageField. More...
unsigned short | getUiMask ()
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...
void | sendICDEvent (unsigned int req_id)
ICDUiGenericMessageField::sendICDEvent. More...
bool | setReservationTo (ICDUiObject *)
ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by argument untill it is released. More...
bool | releaseReservationTo (ICDUiObject *)
ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj. More...
bool | isReserved ()
bool | isReadOnly ()
bool | hasPendingChanges ()
void | flushPendingChanges ()
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...
- Public Member Functions inherited from ICDRawMessageField
ICDRawMessageField (size_t start, size_t len)
bool | setBitStream (ICDEndianness, ICDStreamFormat)
ICDRawMessageField::setBitStream. More...
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const
- Public Member Functions inherited from ICDCodingMessageField
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< float > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< double > *)
virtual bool | setEncodingFrom (ICDStringTranscoder *)

Protected Member Functions

bool | append (unsigned int)
bool | isInBound (unsigned int)
bool | assignNumber (unsigned int)
- Protected Member Functions inherited from ICDUiAbstractItem
virtual void | raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...
- Protected Member Functions inherited from ICDRawMessageField
bool | packAsCharArray (ICDByte *v, ICDRawData *a, size_t qty)
ICDRawMessageField::packAsCharArray. More...
bool | unpackAsCharArray (ICDRawData a, ICDByte *v, size_t qty)
ICDRawMessageField::unpackAsCharArray. More...
bool | packUnsigned (UnsignedICD v, ICDRawData *a)
ICDRawMessageField::packUnsigned. More...
bool | unpackUnsigned (ICDRawData a, UnsignedICD *v)
ICDRawMessageField::unpackUnsigned. More...
bool | unpackSigned (ICDRawData a, SignedICD *v)
ICDRawMessageField::unpackSigned. More...

Protected Attributes

ICDEnumMap::iterator | _cur
ICDEnumMap | _enum_map
ICDEnumMap | _enum_map_original
unsigned int | _range_min
unsigned int | _range_max
unsigned int | _bound_min
unsigned int | _bound_max
bool | _never_set
- Protected Attributes inherited from ICDGenericMessageField
unsigned int | _end
std::string | _unit
std::string | _field_type
double | _data_resolution
bool | _never_been_unpacked
ICD__data_type | _data_type
ICD__digit_display_base | _digit_display
- Protected Attributes inherited from ICDNamedItem
std::string | _name
std::string | _ui_id
- Protected Attributes inherited from ICDUiGenericMessageField
bool | _readonly
ICDUiObject * | _obj_reserved
unsigned short | _ui_mask
bool | _incoming_changes
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display
- Protected Attributes inherited from ICDRawMessageField
size_t | _bit_shift
size_t | _qty
UnsignedICD | _array_index
size_t | _start
size_t | _len
UnsignedICD | _bit_mask
UnsignedICD | _sign_mask
std::mutex | mutex_set
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat

Additional Inherited Members

- Static Public Member Functions inherited from ICDNamedItem
static std::string s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...

Detailed Description

The ICDEnumMessageField class.

The documentation for this class was generated from the following files:
  • include/icdmessagefield.h
  • src/icdmessagefield.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDGenericContainer< T > Class Template Reference

Public Member Functions | Protected Attributes | List of all members
ICDGenericContainer< T > Class Template Reference
Inheritance diagram for ICDGenericContainer< T >:
ICDAbstractContainer< T > ICDIndexedContainer< T >

Public Member Functions

virtual bool | addItem (T *item, bool front=false)
virtual bool | removeItem (unsigned int pos)
virtual bool | removeItem (T *el)
virtual T * | getItem (unsigned int pos)
virtual int | indexOf (T *el)
virtual T * | findItem (const std::string &)
virtual bool | removeItem (const std::string &)
size_t | size ()

Protected Attributes

std::vector< T * > | _item_vect
std::vector< T * >::iterator | it
The documentation for this class was generated from the following file:
  • include/icdcontainers.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDGenericMessageField Class Reference

Public Member Functions | Protected Attributes | List of all members
ICDGenericMessageField Class Referenceabstract

The ICDGenericMessageField class. More...

Inheritance diagram for ICDGenericMessageField:
ICDNamedItem ICDUiGenericMessageField ICDRawMessageField ICDCodingMessageField ICDUiAbstractItem ICDAbstractRaw ICDUiObject ICDUiAbstractObject ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

ICDGenericMessageField (unsigned int s, unsigned int l, std::string n, bool r)
virtual bool | set (std::string)
virtual bool | set (unsigned int)
virtual bool | set (int)
virtual bool | set (unsigned short)
virtual bool | set (short)
virtual bool | set (unsigned long)
virtual bool | set (long)
virtual bool | set (unsigned long long)
virtual bool | set (long long)
virtual bool | set (float)
virtual bool | set (double)
virtual bool | set (bool)
virtual bool | getAsStdString (std::string *)
virtual bool | getAsUInt (unsigned int *)
virtual bool | getAsInt (int *)
virtual bool | getAsUShort (unsigned short *)
virtual bool | getAsShort (short *)
virtual bool | getAsULong (unsigned long *)
virtual bool | getAsLong (long *)
virtual bool | getAsULongLong (unsigned long long *)
virtual bool | getAsLongLong (long long *)
virtual bool | getAsFloat (float *)
virtual bool | getAsDouble (double *)
virtual bool | getAsBoolean (bool *)
virtual ICDStringList | getAll ()
virtual void | setDataResolution (double)
virtual double | getBitWeigth ()
virtual double | getRangeMin ()
virtual double | getRangeMax ()
virtual double | getBoundMin ()
virtual double | getBoundMax ()
virtual double | getOffsetVal ()
virtual std::string | getEncoderName ()
virtual std::string | get ()=0
virtual bool | isInRange ()=0
virtual bool | isSigned ()=0
void | setDisplayDigitBase (std::string)
void | setDisplayDigitBase (ICD__digit_display_base)
ICD__digit_display_base | getDisplayDigitBase ()
bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
std::string | getFieldType ()
ICD__data_type | getDataType ()
double | getDataResolution ()
bool | isNeverBeenUnpacked ()
std::string | getUnit ()
void | setUnit (std::string)
void | setType (std::string)
unsigned int | getStart ()
unsigned int | getLength ()
unsigned int | getEnd ()
virtual bool | overlaps (ICDGenericMessageField *)
- Public Member Functions inherited from ICDNamedItem
ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...
- Public Member Functions inherited from ICDUiGenericMessageField
ICDUiGenericMessageField (bool)
ICDUiGenericMessageField::ICDUiGenericMessageField. More...
unsigned short | getUiMask ()
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...
void | sendICDEvent (unsigned int req_id)
ICDUiGenericMessageField::sendICDEvent. More...
bool | setReservationTo (ICDUiObject *)
ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by argument untill it is released. More...
bool | releaseReservationTo (ICDUiObject *)
ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj. More...
bool | isReserved ()
bool | isReadOnly ()
bool | hasPendingChanges ()
void | flushPendingChanges ()
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...
- Public Member Functions inherited from ICDRawMessageField
ICDRawMessageField (size_t start, size_t len)
bool | setBitStream (ICDEndianness, ICDStreamFormat)
ICDRawMessageField::setBitStream. More...
virtual bool | pack (ICDRawData *)=0
virtual bool | unpack (ICDRawData)=0
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const
- Public Member Functions inherited from ICDCodingMessageField
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< float > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< double > *)
virtual bool | setEncodingFrom (ICDStringTranscoder *)

Protected Attributes

unsigned int | _end
std::string | _unit
std::string | _field_type
double | _data_resolution
bool | _never_been_unpacked
ICD__data_type | _data_type
ICD__digit_display_base | _digit_display
- Protected Attributes inherited from ICDNamedItem
std::string | _name
std::string | _ui_id
- Protected Attributes inherited from ICDUiGenericMessageField
bool | _readonly
ICDUiObject * | _obj_reserved
unsigned short | _ui_mask
bool | _incoming_changes
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display
- Protected Attributes inherited from ICDRawMessageField
size_t | _bit_shift
size_t | _qty
UnsignedICD | _array_index
size_t | _start
size_t | _len
UnsignedICD | _bit_mask
UnsignedICD | _sign_mask
std::mutex | mutex_set
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat

Additional Inherited Members

- Static Public Member Functions inherited from ICDNamedItem
static std::string | s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...
- Protected Member Functions inherited from ICDUiAbstractItem
virtual void | raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...
- Protected Member Functions inherited from ICDRawMessageField
bool | packAsCharArray (ICDByte *v, ICDRawData *a, size_t qty)
ICDRawMessageField::packAsCharArray. More...
bool | unpackAsCharArray (ICDRawData a, ICDByte *v, size_t qty)
ICDRawMessageField::unpackAsCharArray. More...
bool | packUnsigned (UnsignedICD v, ICDRawData *a)
ICDRawMessageField::packUnsigned. More...
bool | unpackUnsigned (ICDRawData a, UnsignedICD *v)
ICDRawMessageField::unpackUnsigned. More...
bool | unpackSigned (ICDRawData a, SignedICD *v)
ICDRawMessageField::unpackSigned. More...

Detailed Description

The ICDGenericMessageField class.

The documentation for this class was generated from the following files:
  • include/icdmessagefield.h
  • src/icdmessagefield.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDGenericTranscoder< T > Class Template Reference

Public Member Functions | Protected Attributes | List of all members
ICDGenericTranscoder< T > Class Template Referenceabstract
Inheritance diagram for ICDGenericTranscoder< T >:
ICDBCDTranscoder< T > ICDCodeSignedTranscoder< T > ICDDefaultTranscoder< T > ICDRealFloatingPointTranscoder< T > ICDSpareTranscoder< T > ICDStringExprTranscoder< T > ICDSwapTranscoder< T >

Public Member Functions

ICDGenericTranscoder (std::string n)
std::string | getName ()
virtual bool | encode (T, UnsignedICD *)=0
virtual bool | decode (UnsignedICD, T *)=0
virtual bool | decode (SignedICD, T *)=0

Protected Attributes

std::string _name
The documentation for this class was generated from the following file:
  • include/icdtranscoder.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDHandler Class Reference

Classes | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
ICDHandler Class Reference

The ICDHandler class. More...

Inheritance diagram for ICDHandler:
ICDNamedItem ICDUiHandler IGenericBusEqp ICDUiAbstractItem ICDUiObject ICDUiAbstractObject

Public Member Functions

ICDHandler (std::string n)
std::string | getVersion () const
void | setVersion (std::string v)
bool | OnMessageReceive (unsigned int msgId, unsigned char *data, unsigned short size) override
Method that shall manages the data reception coming from the bus object.
virtual void | OnBusClock () override
Method that contains operation linked to the bus clock.
virtual void | OnBusError (std::string err, BusErrorSeverity severity) override
Handling of the error coming from the bus object.
virtual void | OnChangeStateRequest (EqpStateRequest req) override
Handling of a state chanhe request coming from the bus object.
virtual ICDEndianness | GetEndianness () override
It returns the Endiannes.
virtual ICDStreamFormat | GetStreamFormat () override
It returns the Stream Format.
std::string | getBusErrorNotitication ()
bool | consumeICDEvent (unsigned int req_id, unsigned long event_number) override
ICDUiAbstractItem::consumeICDEvent. More...
bool | setPreferredUiRapresentation (std::string) override
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
size_t | size ()
int | indexOf (ICDMessage *el)
bool | addMessage (ICDMessage *item)
bool | removeMessage (unsigned int pos)
bool | removeMessage (ICDMessage *el)
ICDMessage * | findMessage (std::string n)
ICDMessage * | findMessageById (unsigned int id)
ICDMessage * | getMessage (unsigned int pos)
ICDMessage * getLastReceivedMessage ()
ICDHandler::getLastReceivedMessage. More...
std::vector< ICDMessage * > | getLastSentMessages ()
std::vector< ICDMessage * > | getChangedMessages ()
ICDHandler::getChangedMessages. More...
bool | parseXMLConfig (std::string filename, ICDAbstractFactory *factory=new ICDAbstractFactory())
std::string | getXMLConfigFileName ()
std::string | getparseXMLError ()
unsigned long | getBusClockPeriod ()
ICDHandler::getBusClockPeriod. More...
virtual void | setBusClockPeriod (unsigned long period)
ICDHandler::setBusClockPeriod. More...
bool | isEnabled ()
bool | setEndianness (std::string)
bool | setStreamFormat (std::string)
void | setCallbackOnMsgReceived (unsigned int msgId, std::function< void(ICDRawData)> func)
- Public Member Functions inherited from ICDNamedItem
ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...
- Public Member Functions inherited from ICDUiHandler
void | processICDEvent (unsigned int)
- Public Member Functions inherited from ICDUiAbstractItem
virtual void | sendICDEvent (unsigned int req_id)
ICDUiAbstractItem::sendICDEvent. More...
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Static Public Member Functions

static std::string | s_tolower (std::string in)
static std::string | s_toBase10 (std::string in)
- Static Public Member Functions inherited from ICDNamedItem
static std::string | s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...
- Static Public Member Functions inherited from ICDUiHandler
static unsigned short | getUiMask ()

Protected Attributes

std::string | _version
std::string | _bus_error_msg
ICDMessageContainer | _messages
- Protected Attributes inherited from ICDNamedItem
std::string | _name
std::string | _ui_id
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Friends

class ICDUiBusObject

Additional Inherited Members

- Protected Member Functions inherited from ICDUiHandler
virtual void raiseICDEvent (unsigned int req_id)
ICDUiEventDispatcher::raiseICDEvent. More...

Detailed Description

The ICDHandler class.

Member Function Documentation

◆ consumeICDEvent()

bool ICDHandler::consumeICDEvent | ( | unsigned int | req_id,
 |  | unsigned long | event_number
 | ) |  |
overridevirtual

ICDUiAbstractItem::consumeICDEvent.

Parameters
req_id
event_number

Reimplemented from ICDUiAbstractItem.

◆ getBusClockPeriod()

unsigned long ICDHandler::getBusClockPeriod ( )

ICDHandler::getBusClockPeriod.

Returns
unsigned long the clock period time expressed in usec

◆ getChangedMessages()

std::vector< ICDMessage * > ICDHandler::getChangedMessages ( )

ICDHandler::getChangedMessages.

Returns
list of messages that are currently changed

◆ getLastReceivedMessage()

ICDMessage * ICDHandler::getLastReceivedMessage ( )

ICDHandler::getLastReceivedMessage.

Returns
pointer to last received message

◆ parseXMLConfig()

bool ICDHandler::parseXMLConfig | ( | std::string | filename,
 |  | ICDAbstractFactory * | factory = new ICDAbstractFactory()
 | ) |  |

msg->commitChanges();

◆ setBusClockPeriod()

void ICDHandler::setBusClockPeriod ( unsigned long period )
virtual

ICDHandler::setBusClockPeriod.

Parameters
unsigned long period it is the time expressed in usec
The documentation for this class was generated from the following files:
  • include/icdhandler.h
  • src/icdhandler.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDHandlersManager Class Reference

Static Public Member Functions | List of all members
ICDHandlersManager Class Reference
Inheritance diagram for ICDHandlersManager:
ICDGenericContainer< ICDHandler > ICDAbstractContainer< ICDHandler >

Static Public Member Functions

static ICDHandlersManager * getInstance ()

Additional Inherited Members

- Public Member Functions inherited from ICDGenericContainer< ICDHandler >
virtual bool | addItem (ICDHandler *item, bool front=false)
virtual bool | removeItem (unsigned int pos)
virtual bool | removeItem (ICDHandler *el)
virtual bool | removeItem (const std::string &)
virtual ICDHandler * | getItem (unsigned int pos)
virtual int | indexOf (ICDHandler *el)
virtual ICDHandler * | findItem (const std::string &)
size_t | size ()
- Protected Attributes inherited from ICDGenericContainer< ICDHandler >
std::vector< ICDHandler *> | _item_vect
std::vector< ICDHandler *>::iterator | it
The documentation for this class was generated from the following files:
  • include/icdhandlersmanager.h
  • src/icdhandlersmanager.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDIndexedContainer< T > Class Template Reference

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ICDIndexedContainer< T > Class Template Reference
Inheritance diagram for ICDIndexedContainer< T >:
ICDGenericContainer< T > ICDAbstractContainer< T >

Public Member Functions

ICDIndexedContainer (std::function< std::string(T *)> keygen)
virtual bool | addItem (T *item, bool front=false) override
virtual int | indexOf (T *item) override
virtual T * | findItem (const std::string &key) override
virtual bool | removeItem (const std::string &key) override
virtual bool | removeItem (unsigned int pos) override
virtual bool | removeItem (T *item) override
- Public Member Functions inherited from ICDGenericContainer< T >
virtual T * | getItem (unsigned int pos)
size_t | size ()

Protected Member Functions

bool contains (const std::string &name, std::function< void(unsigned int)> func=nullptr) const

Protected Attributes

std::map< std::string, unsigned int > | _item_map
std::function< std::string(T *)> | _keygen
- Protected Attributes inherited from ICDGenericContainer< T >
std::vector< T * > | _item_vect
std::vector< T * >::iterator | it
The documentation for this class was generated from the following file:
  • include/icdcontainers.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDMessage Class Reference

Public Member Functions | Protected Attributes | Friends | List of all members
ICDMessage Class Reference

The ICDMessage class. More...

Inheritance diagram for ICDMessage:
ICDNamedItem ICDUiMessage ICDRawMessage ICDUiAbstractItem ICDAbstractRaw ICDUiObject ICDUiAbstractObject

Public Member Functions

unsigned long | getMsgReceived ()
unsigned long | getMsgSent ()
unsigned int | getMsgId ()
bool | isPeriodic ()
unsigned long | getUsPeriodTime ()
void | setUsPeriodTime (unsigned long t)
ICDMessage (unsigned int msg_id, std::string name, size_t length, bool periodic=false, bool readonly=true)
ICDMessage::ICDMessage constructor. More...
void | commitChanges ()
ICDMessage::commitChanges.
void | revertChanges ()
ICDMessage::revertChanges.
void | flushChanges ()
void | enulateChanges ()
ICDMessage::enulateChanges Emulate event changes with no changes by using event notifications.
void | touch ()
ICDMessage::touch Set changed flag to true in order to set message changed winthout event notifications.
bool | isChanged ()
bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiMessage::consumeICDEvent.
bool | commitSingleField (ICDGenericMessageField *)
ICDMessage::commitSingleField: perform pack operation on target field only. More...
bool | unpack (ICDRawData, bool is_revert=false)
ICDMessage::unpack. More...
bool | pack (ICDRawData)
void | setRequested (bool b)
bool | isRequested ()
bool | addMessageField (ICDGenericMessageField *item)
ICDMessage::addMessageField Needed to perform some check above the field. More...
bool | removeMessageField (unsigned int pos)
ICDMessage::removeMessageField it remove the field item at given position. More...
bool | removeMessageField (ICDGenericMessageField *el)
ICDMessage::removeMessageField it remove the given field. More...
int | indexOf (ICDGenericMessageField *el)
ICDGenericMessageField * | findMessageField (std::string n)
ICDMessage::findMessageField. More...
ICDGenericMessageField * | getMessageField (unsigned int pos)
ICDMessage::getMessageField it returns the field item at given position. More...
size_t | size ()
ICDMessage::size it returns the number of fields pushed into the message. More...
ICDRawDataError | getLastRawDataError () const
bool | setBitStream (ICDEndianness e, ICDStreamFormat f) override
void | setPriority (int p)
setPriority : it changes the order in which the messages are processed. Highers are processed first. By default all messages have priority 0 and are processed by using the id attribute as sort order More...
int | getPriority () const
getPriority More...
void | setAsVirtual (bool v)
setAsVirtual : the purpose of setting the message as virtual is to exploit the generation of send and receive events and use the encoding/decoding objects linked to the contained fields as backdoors in order to operate over other fields belonging to different fields. For example the transcoder object shall be built by passing references of another real fields in order to create a relationship with the virtual one. This approach is useful in cases where it is necessary to represent a field(s) as aggregates of others belonging to different messages. More...
bool | isVirtual () const
isVirtual More...
- Public Member Functions inherited from ICDNamedItem
ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...
- Public Member Functions inherited from ICDUiMessage
ICDUiMessage (bool readonly)
ICDUiMessage::ICDUiMessage. More...
bool | isReadOnly ()
void | sendICDEvent (unsigned int req_id)
ICDUiAbstractItem::sendICDEvent. More...
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...
- Public Member Functions inherited from ICDRawMessage
ICDByte * | getRawBuffer ()
size_t | getRawBufferSize ()
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const

Protected Attributes

unsigned int | _msg_id
unsigned long | _us_period_time
bool | _periodic
bool | _changed
bool | _rd_request
ICDIndexedContainer< ICDGenericMessageField > | _fields
- Protected Attributes inherited from ICDNamedItem
std::string | _name
std::string | _ui_id
- Protected Attributes inherited from ICDUiMessage
bool | _readonly
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display
- Protected Attributes inherited from ICDRawMessage
std::mutex | mutex_pack
ICDRawData | _raw_buff
ICDRawData | _temp_raw_buff
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat

Friends

class ICDUiBusObject

Additional Inherited Members

- Static Public Member Functions inherited from ICDNamedItem
static std::string | s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...
- Static Public Member Functions inherited from ICDUiMessage
static unsigned short | getUiMask ()
- Protected Member Functions inherited from ICDUiAbstractItem
virtual void | raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...
- Protected Member Functions inherited from ICDRawMessage
ICDRawMessage (size_t)

Detailed Description

The ICDMessage class.

Constructor & Destructor Documentation

◆ ICDMessage()

ICDMessage::ICDMessage | ( | unsigned int | msg_id,
 |  | std::string | name,
 |  | size_t | length,
 |  | bool | periodic = false,
 |  | bool | readonly = true
 | ) |  |

ICDMessage::ICDMessage constructor.

Parameters
msg_id | the message identifier
name | the message name
length | the message length in terms of bit
readonly | true is for incoming message

Member Function Documentation

◆ addMessageField()

bool ICDMessage::addMessageField ( ICDGenericMessageField * item )

ICDMessage::addMessageField Needed to perform some check above the field.

Parameters
item

◆ commitSingleField()

bool ICDMessage::commitSingleField ( ICDGenericMessageField * target )

ICDMessage::commitSingleField: perform pack operation on target field only.

Parameters
target
Returns

◆ findMessageField()

ICDGenericMessageField * ICDMessage::findMessageField ( std::string n )

ICDMessage::findMessageField.

Parameters
n
Returns
ICDGenericMessageField with name n pointer or NULL

◆ getMessageField()

ICDGenericMessageField * ICDMessage::getMessageField ( unsigned int pos )

ICDMessage::getMessageField it returns the field item at given position.

Parameters
pos
Returns

◆ getPriority()

int ICDMessage::getPriority ( ) const
inline

getPriority

Returns
[int] the priority value

◆ isVirtual()

bool ICDMessage::isVirtual ( ) const
inline

isVirtual

Returns
boolean settings for virtual message

◆ removeMessageField() [1/2]

bool ICDMessage::removeMessageField ( unsigned int pos )

ICDMessage::removeMessageField it remove the field item at given position.

Parameters
pos
Returns

◆ removeMessageField() [2/2]

bool ICDMessage::removeMessageField ( ICDGenericMessageField * el )

ICDMessage::removeMessageField it remove the given field.

Parameters
el
Returns

◆ setAsVirtual()

void ICDMessage::setAsVirtual ( bool v )
inline

setAsVirtual : the purpose of setting the message as virtual is to exploit the generation of send and receive events and use the encoding/decoding objects linked to the contained fields as backdoors in order to operate over other fields belonging to different fields. For example the transcoder object shall be built by passing references of another real fields in order to create a relationship with the virtual one. This approach is useful in cases where it is necessary to represent a field(s) as aggregates of others belonging to different messages.

Parameters
v [Boolean]

◆ setPriority()

void ICDMessage::setPriority ( int p )
inline

setPriority : it changes the order in which the messages are processed. Highers are processed first. By default all messages have priority 0 and are processed by using the id attribute as sort order

Parameters
p [int] the priority value

◆ size()

size_t ICDMessage::size ( )

ICDMessage::size it returns the number of fields pushed into the message.

Returns

◆ unpack()

bool ICDMessage::unpack | ( | ICDRawData | incoming,
 |  | bool | is_revert = false
 | ) |  |
virtual

ICDMessage::unpack.

Parameters
incoming
Returns

Implements ICDRawMessage.

The documentation for this class was generated from the following files:
  • include/icdmessage.h
  • src/icdmessage.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDMessageContainer Class Reference

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ICDMessageContainer Class Reference
Inheritance diagram for ICDMessageContainer:
ICDIndexedContainer< ICDMessage > ICDGenericContainer< ICDMessage > ICDAbstractContainer< ICDMessage >

Public Member Functions

bool | addItem (ICDMessage *item, bool front=false) override
ICDMessage * | findItem (const int &key)
ICDMessage * | findItem (const std::string &key) override
int | indexOf (ICDMessage *item) override
bool | removeItem (const std::string &key) override
bool | removeItem (unsigned int pos) override
bool | removeItem (ICDMessage *item) override
- Public Member Functions inherited from ICDIndexedContainer< ICDMessage >
ICDIndexedContainer (std::function< std::string(ICDMessage *)> keygen)
- Public Member Functions inherited from ICDGenericContainer< ICDMessage >
virtual ICDMessage * | getItem (unsigned int pos)
size_t | size ()

Protected Member Functions

unsigned int | id_keygen (ICDMessage *m)
- Protected Member Functions inherited from ICDIndexedContainer< ICDMessage >
bool | contains (const std::string &name, std::function< void(unsigned int)> func=nullptr) const

Protected Attributes

std::map< int, unsigned int > | map_msg_id
- Protected Attributes inherited from ICDIndexedContainer< ICDMessage >
std::map< std::string, unsigned int > | _item_map
std::function< std::string(ICDMessage *)> | _keygen
- Protected Attributes inherited from ICDGenericContainer< ICDMessage >
std::vector< ICDMessage *> | _item_vect
std::vector< ICDMessage *>::iterator | it
The documentation for this class was generated from the following file:
  • include/icdhandler.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDNamedItem Class Reference

Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ICDNamedItem Class Reference
Inheritance diagram for ICDNamedItem:
ICDGenericMessageField ICDHandler ICDMessage ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...

Static Public Member Functions

static std::string s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...

Protected Attributes

std::string | _name
std::string | _ui_id

Constructor & Destructor Documentation

◆ ICDNamedItem()

ICDNamedItem::ICDNamedItem ( const std::string & n )
explicit

ICDNamedItem::ICDNamedItem.

Parameters
n the name of the object

Member Function Documentation

◆ getName()

std::string ICDNamedItem::getName ( ) const

ICDNamedItem::getName.

Returns
the name of the object

◆ getUiIdentifierName()

std::string ICDNamedItem::getUiIdentifierName ( ) const

ICDNamedItem::getUiIdentifierName.

Returns
the Ui Name of the Object ( punct characters are converted to _ )

◆ s_toUiString()

std::string ICDNamedItem::s_toUiString ( std::string in )
static

ICDNamedItem::s_toUiString return a string where punct characters are converted to _.

Parameters
in
Returns
string

◆ setName()

void ICDNamedItem::setName ( const std::string & n )

ICDNamedItem::setName.

Parameters
n input
The documentation for this class was generated from the following files:
  • include/icdnameditem.h
  • src/icdnameditem.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDNumericMessageField< T > Class Template Reference

Public Member Functions | Protected Attributes | List of all members
ICDNumericMessageField< T > Class Template Reference
Inheritance diagram for ICDNumericMessageField< T >:
ICDGenericMessageField ICDNamedItem ICDUiGenericMessageField ICDRawMessageField ICDCodingMessageField ICDUiAbstractItem ICDAbstractRaw ICDUiObject ICDUiAbstractObject

Public Member Functions

ICDNumericMessageField (unsigned int start, unsigned int length, std::string name, T min, T max, T lsb=1, T offset=0, bool readonly=true)
bool | setEncodingFrom (ICDGenericTranscoder< T > *obj)
std::string | getEncoderName ()
bool | isSigned ()
bool | set (std::string x)
bool | set (T val)
void | setDataResolution (double)
std::string | get ()
bool | getAsUInt (unsigned int *v)
bool | getAsInt (int *v)
bool | getAsUShort (unsigned short *v)
bool | getAsShort (short *v)
bool | getAsULong (unsigned long *v)
bool | getAsLong (long *v)
bool | getAsULongLong (unsigned long long *v)
bool | getAsLongLong (long long *v)
bool | getAsFloat (float *v)
bool | getAsDouble (double *v)
bool | isInRange ()
bool | isInBound (T val)
double | getBitWeigth ()
double | getRangeMin ()
double | getRangeMax ()
double | getBoundMin ()
double | getBoundMax ()
double | getOffsetVal ()
virtual bool | pack (ICDRawData *a)
virtual bool | unpack (ICDRawData a)
- Public Member Functions inherited from ICDGenericMessageField
ICDGenericMessageField (unsigned int s, unsigned int l, std::string n, bool r)
virtual bool | set (unsigned int)
virtual bool | set (int)
virtual bool | set (unsigned short)
virtual bool | set (short)
virtual bool | set (unsigned long)
virtual bool | set (long)
virtual bool | set (unsigned long long)
virtual bool | set (long long)
virtual bool | set (float)
virtual bool | set (double)
virtual bool | set (bool)
virtual bool | getAsStdString (std::string *)
virtual bool | getAsBoolean (bool *)
virtual ICDStringList | getAll ()
void | setDisplayDigitBase (std::string)
void | setDisplayDigitBase (ICD__digit_display_base)
ICD__digit_display_base | getDisplayDigitBase ()
bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
std::string | getFieldType ()
ICD__data_type | getDataType ()
double | getDataResolution ()
bool | isNeverBeenUnpacked ()
std::string | getUnit ()
void | setUnit (std::string)
void | setType (std::string)
unsigned int | getStart ()
unsigned int | getLength ()
unsigned int | getEnd ()
virtual bool | overlaps (ICDGenericMessageField *)
- Public Member Functions inherited from ICDNamedItem
ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...
- Public Member Functions inherited from ICDUiGenericMessageField
ICDUiGenericMessageField (bool)
ICDUiGenericMessageField::ICDUiGenericMessageField. More...
unsigned short | getUiMask ()
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...
void | sendICDEvent (unsigned int req_id)
ICDUiGenericMessageField::sendICDEvent. More...
bool | setReservationTo (ICDUiObject *)
ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by argument untill it is released. More...
bool | releaseReservationTo (ICDUiObject *)
ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj. More...
bool | isReserved ()
bool | isReadOnly ()
bool | hasPendingChanges ()
void | flushPendingChanges ()
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...
- Public Member Functions inherited from ICDRawMessageField
ICDRawMessageField (size_t start, size_t len)
bool | setBitStream (ICDEndianness, ICDStreamFormat)
ICDRawMessageField::setBitStream. More...
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const
- Public Member Functions inherited from ICDCodingMessageField
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< float > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< double > *)
virtual bool | setEncodingFrom (ICDStringTranscoder *)

Protected Attributes

T | _val
T | _min
T | _max
T | _lsb
T | _offset
bool | _is_signed
T | _bound_min
T | _bound_max
- Protected Attributes inherited from ICDGenericMessageField
unsigned int | _end
std::string | _unit
std::string | _field_type
double | _data_resolution
bool | _never_been_unpacked
ICD__data_type | _data_type
ICD__digit_display_base | _digit_display
- Protected Attributes inherited from ICDNamedItem
std::string | _name
std::string | _ui_id
- Protected Attributes inherited from ICDUiGenericMessageField
bool | _readonly
ICDUiObject * | _obj_reserved
unsigned short | _ui_mask
bool | _incoming_changes
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display
- Protected Attributes inherited from ICDRawMessageField
size_t | _bit_shift
size_t | _qty
UnsignedICD | _array_index
size_t | _start
size_t | _len
UnsignedICD | _bit_mask
UnsignedICD | _sign_mask
std::mutex | mutex_set
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat

Additional Inherited Members

- Static Public Member Functions inherited from ICDNamedItem
static std::string | s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...
- Protected Member Functions inherited from ICDUiAbstractItem
virtual void | raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...
- Protected Member Functions inherited from ICDRawMessageField
bool | packAsCharArray (ICDByte *v, ICDRawData *a, size_t qty)
ICDRawMessageField::packAsCharArray. More...
bool | unpackAsCharArray (ICDRawData a, ICDByte *v, size_t qty)
ICDRawMessageField::unpackAsCharArray. More...
bool | packUnsigned (UnsignedICD v, ICDRawData *a)
ICDRawMessageField::packUnsigned. More...
bool | unpackUnsigned (ICDRawData a, UnsignedICD *v)
ICDRawMessageField::unpackUnsigned. More...
bool | unpackSigned (ICDRawData a, SignedICD *v)
ICDRawMessageField::unpackSigned. More...

Member Function Documentation

◆ set() [1/2]

template<class T >
bool ICDNumericMessageField< T >::set ( std::string x )
virtual

< on changes [any field]

Reimplemented from ICDGenericMessageField.

◆ set() [2/2]

template<typename T >
bool ICDNumericMessageField< T >::set ( T val )

< on changes [any field]

The documentation for this class was generated from the following files:
  • include/icdmessagefield.h
  • include/icdmessagefield.inl
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDRawData Struct Reference

Public Member Functions | Public Attributes | List of all members
ICDRawData Struct Reference

Public Member Functions

ICDRawData & operator= (ICDRawData other)

Public Attributes

ICDByte * | _data
size_t | _sz
unsigned int | _bit_length
ICDRawDataError | _error_type
The documentation for this struct was generated from the following file:
  • include/icdrawstream.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDRawMessage Class Reference

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ICDRawMessage Class Referenceabstract
Inheritance diagram for ICDRawMessage:
ICDAbstractRaw ICDMessage

Public Member Functions

ICDByte * | getRawBuffer ()
size_t | getRawBufferSize ()
virtual bool | setBitStream (ICDEndianness, ICDStreamFormat)
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const

Protected Member Functions

ICDRawMessage (size_t)
virtual bool | pack (ICDRawData)=0
virtual bool | unpack (ICDRawData, bool is_revert)=0

Protected Attributes

std::mutex | mutex_pack
ICDRawData | _raw_buff
ICDRawData | _temp_raw_buff
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat
The documentation for this class was generated from the following files:
  • include/icdrawstream.h
  • src/icdrawstream.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDRawMessageField Class Reference

Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
ICDRawMessageField Class Referenceabstract
Inheritance diagram for ICDRawMessageField:
ICDAbstractRaw ICDGenericMessageField ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

ICDRawMessageField (size_t start, size_t len)
bool | setBitStream (ICDEndianness, ICDStreamFormat)
ICDRawMessageField::setBitStream. More...
virtual bool | pack (ICDRawData *)=0
virtual bool | unpack (ICDRawData)=0
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const

Protected Member Functions

bool | packAsCharArray (ICDByte *v, ICDRawData *a, size_t qty)
ICDRawMessageField::packAsCharArray. More...
bool | unpackAsCharArray (ICDRawData a, ICDByte *v, size_t qty)
ICDRawMessageField::unpackAsCharArray. More...
bool | packUnsigned (UnsignedICD v, ICDRawData *a)
ICDRawMessageField::packUnsigned. More...
bool | unpackUnsigned (ICDRawData a, UnsignedICD *v)
ICDRawMessageField::unpackUnsigned. More...
bool | unpackSigned (ICDRawData a, SignedICD *v)
ICDRawMessageField::unpackSigned. More...

Protected Attributes

size_t | _bit_shift
size_t | _qty
UnsignedICD | _array_index
size_t | _start
size_t | _len
UnsignedICD | _bit_mask
UnsignedICD | _sign_mask
std::mutex | mutex_set
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat

Friends

class ICDRawMessage

Member Function Documentation

◆ packAsCharArray()

bool ICDRawMessageField::packAsCharArray | ( | ICDByte * | v,
 |  | ICDRawData * | a,
 |  | size_t | qty
 | ) |  |
protected

ICDRawMessageField::packAsCharArray.

Parameters
v | ICDByte vector pointer as source
a | ICDRawData pointer as destination
qty | number of element to pack
Returns
boolean true if pack success, false otherwise ( no source or destination, size mismatching )

◆ packUnsigned()

bool ICDRawMessageField::packUnsigned | ( | UnsignedICD | v,
 |  | ICDRawData * | a
 | ) |  |
protected

ICDRawMessageField::packUnsigned.

Parameters
v | ICDByte vector pointer as source
a | ICDRawData pointer as destination
Returns
boolean true if pack success, false otherwise ( size mismatching )

◆ setBitStream()

bool ICDRawMessageField::setBitStream | ( | ICDEndianness | e,
 |  | ICDStreamFormat | f
 | ) |  |
virtual

ICDRawMessageField::setBitStream.

Parameters
e | Endianness
f | stream Format
Returns

Reimplemented from ICDAbstractRaw.

◆ unpackAsCharArray()

bool ICDRawMessageField::unpackAsCharArray | ( | ICDRawData | a,
 |  | ICDByte * | v,
 |  | size_t | qty
 | ) |  |
protected

ICDRawMessageField::unpackAsCharArray.

Parameters
a | ICDRawData pointer as source
v | ICDByte pointer as destination
qty | number of element to unpack
Returns
boolean true if unpack success, false otherwise ( no destination or size mismatching )

◆ unpackSigned()

bool ICDRawMessageField::unpackSigned | ( | ICDRawData | a,
 |  | SignedICD * | v
 | ) |  |
protected

ICDRawMessageField::unpackSigned.

Parameters
a
v
Returns

◆ unpackUnsigned()

bool ICDRawMessageField::unpackUnsigned | ( | ICDRawData | a,
 |  | UnsignedICD * | v
 | ) |  |
protected

ICDRawMessageField::unpackUnsigned.

Parameters
a
v
Returns
The documentation for this class was generated from the following files:
  • include/icdrawstream.h
  • src/icdrawstream.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDRealFloatingPointTranscoder< T > Class Template Reference

Public Member Functions | List of all members
ICDRealFloatingPointTranscoder< T > Class Template Reference

The ICDRealFloatingPointTranscoder class : implements a real floating transcoder. More...

Inheritance diagram for ICDRealFloatingPointTranscoder< T >:
ICDGenericTranscoder< T >

Public Member Functions

ICDRealFloatingPointTranscoder (T lsb, T offset=0, const std::string &n="RealFloatingPoint")
bool | encode (T val, UnsignedICD *u)
bool | decode (UnsignedICD u, T *val)
bool | decode (SignedICD s, T *val)
- Public Member Functions inherited from ICDGenericTranscoder< T >
ICDGenericTranscoder (std::string n)
std::string | getName ()

Additional Inherited Members

- Protected Attributes inherited from ICDGenericTranscoder< T >
std::string _name

Detailed Description

template<class T>
class ICDRealFloatingPointTranscoder< T >

The ICDRealFloatingPointTranscoder class : implements a real floating transcoder.

The documentation for this class was generated from the following files:
  • include/icdtranscoder.h
  • include/icdtranscoder.inl
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDSpareTranscoder< T > Class Template Reference

Public Member Functions | List of all members
ICDSpareTranscoder< T > Class Template Reference
Inheritance diagram for ICDSpareTranscoder< T >:
ICDGenericTranscoder< T >

Public Member Functions

ICDSpareTranscoder (const std::string &n)
bool | encode (T, UnsignedICD *)
bool | decode (UnsignedICD, T *)
bool | decode (SignedICD, T *)
- Public Member Functions inherited from ICDGenericTranscoder< T >
ICDGenericTranscoder (std::string n)
std::string | getName ()

Additional Inherited Members

- Protected Attributes inherited from ICDGenericTranscoder< T >
std::string _name
The documentation for this class was generated from the following file:
  • src/icdhandler.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDStringExprTranscoder< T > Class Template Reference

Public Member Functions | List of all members
ICDStringExprTranscoder< T > Class Template Reference
Inheritance diagram for ICDStringExprTranscoder< T >:
ICDGenericTranscoder< T >

Public Member Functions

ICDStringExprTranscoder (double lsb, double offset, double min, double max, const std::string &expr, const std::string &n="String Expression")
bool | encode (T val, UnsignedICD *u)
bool | decode (UnsignedICD u, T *val)
bool | decode (SignedICD s, T *val)
- Public Member Functions inherited from ICDGenericTranscoder< T >
ICDGenericTranscoder (std::string n)
std::string | getName ()

Additional Inherited Members

- Protected Attributes inherited from ICDGenericTranscoder< T >
std::string _name
The documentation for this class was generated from the following files:
  • include/icdtranscoder.h
  • include/icdtranscoder.inl
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDStringMessageField Class Reference

Public Member Functions | Protected Attributes | List of all members
ICDStringMessageField Class Reference
Inheritance diagram for ICDStringMessageField:
ICDGenericMessageField ICDNamedItem ICDUiGenericMessageField ICDRawMessageField ICDCodingMessageField ICDUiAbstractItem ICDAbstractRaw ICDUiObject ICDUiAbstractObject

Public Member Functions

ICDStringMessageField (unsigned int start, unsigned int length, std::string name, bool readonly=true)
bool | set (std::string)
std::string | get ()
bool | isInRange ()
bool | isSigned ()
bool | setEncodingFrom (ICDStringTranscoder *)
std::string | getEncoderName ()
bool | pack (ICDRawData *)
ICDStringMessageField::pack. More...
bool | unpack (ICDRawData)
ICDStringMessageField::unpack. More...
- Public Member Functions inherited from ICDGenericMessageField
ICDGenericMessageField (unsigned int s, unsigned int l, std::string n, bool r)
virtual bool | set (unsigned int)
virtual bool | set (int)
virtual bool | set (unsigned short)
virtual bool | set (short)
virtual bool | set (unsigned long)
virtual bool | set (long)
virtual bool | set (unsigned long long)
virtual bool | set (long long)
virtual bool | set (float)
virtual bool | set (double)
virtual bool | set (bool)
virtual bool | getAsStdString (std::string *)
virtual bool | getAsUInt (unsigned int *)
virtual bool | getAsInt (int *)
virtual bool | getAsUShort (unsigned short *)
virtual bool | getAsShort (short *)
virtual bool | getAsULong (unsigned long *)
virtual bool | getAsLong (long *)
virtual bool | getAsULongLong (unsigned long long *)
virtual bool | getAsLongLong (long long *)
virtual bool | getAsFloat (float *)
virtual bool | getAsDouble (double *)
virtual bool | getAsBoolean (bool *)
virtual ICDStringList | getAll ()
virtual void | setDataResolution (double)
virtual double | getBitWeigth ()
virtual double | getRangeMin ()
virtual double | getRangeMax ()
virtual double | getBoundMin ()
virtual double | getBoundMax ()
virtual double | getOffsetVal ()
void | setDisplayDigitBase (std::string)
void | setDisplayDigitBase (ICD__digit_display_base)
ICD__digit_display_base | getDisplayDigitBase ()
bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
std::string | getFieldType ()
ICD__data_type | getDataType ()
double | getDataResolution ()
bool | isNeverBeenUnpacked ()
std::string | getUnit ()
void | setUnit (std::string)
void | setType (std::string)
unsigned int | getStart ()
unsigned int | getLength ()
unsigned int | getEnd ()
virtual bool | overlaps (ICDGenericMessageField *)
- Public Member Functions inherited from ICDNamedItem
ICDNamedItem (const std::string &n)
ICDNamedItem::ICDNamedItem. More...
void | setName (const std::string &n)
ICDNamedItem::setName. More...
std::string | getName () const
ICDNamedItem::getName. More...
std::string | getUiIdentifierName () const
ICDNamedItem::getUiIdentifierName. More...
- Public Member Functions inherited from ICDUiGenericMessageField
ICDUiGenericMessageField (bool)
ICDUiGenericMessageField::ICDUiGenericMessageField. More...
unsigned short | getUiMask ()
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...
void | sendICDEvent (unsigned int req_id)
ICDUiGenericMessageField::sendICDEvent. More...
bool | setReservationTo (ICDUiObject *)
ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by argument untill it is released. More...
bool | releaseReservationTo (ICDUiObject *)
ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj. More...
bool | isReserved ()
bool | isReadOnly ()
bool | hasPendingChanges ()
void | flushPendingChanges ()
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...
- Public Member Functions inherited from ICDRawMessageField
ICDRawMessageField (size_t start, size_t len)
bool | setBitStream (ICDEndianness, ICDStreamFormat)
ICDRawMessageField::setBitStream. More...
- Public Member Functions inherited from ICDAbstractRaw
ICDAbstractRaw (size_t)
size_t | getBitLength ()
size_t | getNumOf (size_t data_sz, size_t bit_sz)
size_t | getNumOfByte (size_t bit_sz)
size_t | getNumOfWord (size_t bit_sz)
size_t | getNumOfDWord (size_t bit_sz)
ICDEndianness | getEndianness () const
ICDStreamFormat | getStreamFormat () const
- Public Member Functions inherited from ICDCodingMessageField
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< short > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< int > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< unsigned long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< long long > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< float > *)
virtual bool | setEncodingFrom (ICDGenericTranscoder< double > *)

Protected Attributes

ICDByte * | _byte_val
size_t | _str_sz
std::string | _val
- Protected Attributes inherited from ICDGenericMessageField
unsigned int | _end
std::string | _unit
std::string | _field_type
double | _data_resolution
bool | _never_been_unpacked
ICD__data_type | _data_type
ICD__digit_display_base | _digit_display
- Protected Attributes inherited from ICDNamedItem
std::string | _name
std::string | _ui_id
- Protected Attributes inherited from ICDUiGenericMessageField
bool | _readonly
ICDUiObject * | _obj_reserved
unsigned short | _ui_mask
bool | _incoming_changes
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display
- Protected Attributes inherited from ICDRawMessageField
size_t | _bit_shift
size_t | _qty
UnsignedICD | _array_index
size_t | _start
size_t | _len
UnsignedICD | _bit_mask
UnsignedICD | _sign_mask
std::mutex | mutex_set
- Protected Attributes inherited from ICDAbstractRaw
size_t | _sz
size_t | _bit_length
ICDEndianness | _endianness
ICDStreamFormat | _streamformat

Additional Inherited Members

- Static Public Member Functions inherited from ICDNamedItem
static std::string | s_toUiString (std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _. More...
- Protected Member Functions inherited from ICDUiAbstractItem
virtual void | raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...
- Protected Member Functions inherited from ICDRawMessageField
bool | packAsCharArray (ICDByte *v, ICDRawData *a, size_t qty)
ICDRawMessageField::packAsCharArray. More...
bool | unpackAsCharArray (ICDRawData a, ICDByte *v, size_t qty)
ICDRawMessageField::unpackAsCharArray. More...
bool | packUnsigned (UnsignedICD v, ICDRawData *a)
ICDRawMessageField::packUnsigned. More...
bool | unpackUnsigned (ICDRawData a, UnsignedICD *v)
ICDRawMessageField::unpackUnsigned. More...
bool | unpackSigned (ICDRawData a, SignedICD *v)
ICDRawMessageField::unpackSigned. More...

Member Function Documentation

◆ pack()

bool ICDStringMessageField::pack ( ICDRawData * a )
virtual

ICDStringMessageField::pack.

Parameters
a ICDRawData pointer as destination
Returns
boolean the pack operation ( true if ok )

Implements ICDRawMessageField.

◆ unpack()

bool ICDStringMessageField::unpack ( ICDRawData a )
virtual

ICDStringMessageField::unpack.

Parameters
a ICDRawData as source
Returns
boolean the pack operation ( true if ok )

Implements ICDRawMessageField.

The documentation for this class was generated from the following files:
  • include/icdmessagefield.h
  • src/icdmessagefield.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDStringTranscoder Class Reference

Public Member Functions | List of all members
ICDStringTranscoder Class Referenceabstract

The ICDStringTranscoder class. More...

Inheritance diagram for ICDStringTranscoder:
ICDDefaultStringTranscoder

Public Member Functions

ICDStringTranscoder (const std::string &n="StringTranscoder")
std::string | getName ()
virtual bool | encode (std::string, std::string *)=0
virtual bool | decode (std::string, std::string *)=0

Detailed Description

The ICDStringTranscoder class.

////////////////////////////////////////////////////////////////////////////////

The documentation for this class was generated from the following file:
  • include/icdtranscoder.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDSwapTranscoder< T > Class Template Reference

Public Member Functions | List of all members
ICDSwapTranscoder< T > Class Template Reference

The ICDSwapTranscoder class : implements a full swap transcoder ( first byte is the most significative ) More...

Inheritance diagram for ICDSwapTranscoder< T >:
ICDDefaultTranscoder< T > ICDGenericTranscoder< T >

Public Member Functions

ICDSwapTranscoder (T lsb, T offset=0, size_t qty=sizeof(T), size_t blk=1, const std::string &n="SwapTranscoder")
bool | encode (T val, UnsignedICD *u)
bool | decode (UnsignedICD u, T *val)
bool | decode (SignedICD s, T *val)
- Public Member Functions inherited from ICDDefaultTranscoder< T >
ICDDefaultTranscoder (T lsb, T offset=0, const std::string &n="Default")
- Public Member Functions inherited from ICDGenericTranscoder< T >
ICDGenericTranscoder (std::string n)
std::string | getName ()

Additional Inherited Members

- Protected Attributes inherited from ICDGenericTranscoder< T >
std::string _name

Detailed Description

template<class T>
class ICDSwapTranscoder< T >

The ICDSwapTranscoder class : implements a full swap transcoder ( first byte is the most significative )

The documentation for this class was generated from the following files:
  • include/icdtranscoder.h
  • include/icdtranscoder.inl
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUiAbstractItem Class Reference

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ICDUiAbstractItem Class Reference
Inheritance diagram for ICDUiAbstractItem:
ICDUiObject ICDUiAbstractObject ICDUiGenericMessageField ICDUiHandler ICDUiMessage ICDGenericMessageField ICDHandler ICDMessage ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

virtual void | sendICDEvent (unsigned int req_id)
ICDUiAbstractItem::sendICDEvent. More...
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Protected Member Functions

virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...
virtual void | raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...

Protected Attributes

ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Member Function Documentation

◆ consumeICDEvent()

bool ICDUiAbstractItem::consumeICDEvent | ( | unsigned int | req_id,
 |  | unsigned long | event_number
 | ) |  |
protectedvirtual

ICDUiAbstractItem::consumeICDEvent.

Parameters
req_id
event_number

Reimplemented from ICDUiAbstractObject.

Reimplemented in ICDUiMessage, ICDHandler, ICDMessage, and ICDUiGenericMessageField.

◆ getDefaultUi()

std::string ICDUiAbstractItem::getDefaultUi ( )
virtual

ICDUiAbstractItem::getDefaultUi.

Returns
empty string ( default implementation that shall be reimplemented )

◆ getUiObject()

ICDUiObject * ICDUiAbstractItem::getUiObject ( size_t index )

ICDUiAbstractItem::getUiObject.

Parameters
index
Returns
the item at index

◆ raiseICDEvent()

void ICDUiAbstractItem::raiseICDEvent ( unsigned int req_id )
protectedvirtual

ICDUiAbstractItem::raiseICDEvent.

Parameters
req_id

Reimplemented from ICDUiAbstractObject.

Reimplemented in ICDUiHandler.

◆ registerUiObject()

void ICDUiAbstractItem::registerUiObject ( ICDUiObject * item )

ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events.

Parameters
item

◆ sendICDEvent()

void ICDUiAbstractItem::sendICDEvent ( unsigned int req_id )
virtual

ICDUiAbstractItem::sendICDEvent.

Parameters
req_id

Reimplemented in ICDUiMessage, and ICDUiGenericMessageField.

◆ unregisterUiObject()

void ICDUiAbstractItem::unregisterUiObject ( ICDUiObject * item )

ICDUiAbstractItem::unregisterUiObject.

Parameters
item
The documentation for this class was generated from the following files:
  • include/icduiobjects.h
  • src/icduiobjects.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUiAbstractObject Class Reference

Public Member Functions | Protected Attributes | List of all members
ICDUiAbstractObject Class Reference
Inheritance diagram for ICDUiAbstractObject:
ICDUiObject ICDUiAbstractItem ICDUiBusObject ICDUiGenericMessageField ICDUiHandler ICDUiMessage ICDGenericMessageField ICDHandler ICDMessage ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
virtual void | raiseICDEvent (unsigned int req_id)
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Protected Attributes

std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Member Function Documentation

◆ getPreferredUiRapresentation()

ICD__ui_display ICDUiAbstractObject::getPreferredUiRapresentation ( )
virtual

ICDUiAbstractObject::getPreferredUiRapresentation.

Returns
The documentation for this class was generated from the following files:
  • include/icduiobjects.h
  • src/icduiobjects.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUiBusObject Class Reference

Public Member Functions | List of all members
ICDUiBusObject Class Reference

The ICDUiBusObject class. More...

Inheritance diagram for ICDUiBusObject:
ICDUiObject ICDUiAbstractObject

Public Member Functions

ICDUiBusObject (GenericBusObject *b, ICDHandler *h)
bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
virtual void | raiseICDEvent (unsigned int req_id)
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Additional Inherited Members

- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Detailed Description

The ICDUiBusObject class.

The documentation for this class was generated from the following files:
  • include/icduibusobject.h
  • src/icduibusobject.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUiGenericMessageField Class Reference

Public Member Functions | Protected Attributes | Friends | List of all members
ICDUiGenericMessageField Class Reference
Inheritance diagram for ICDUiGenericMessageField:
ICDUiAbstractItem ICDUiObject ICDUiAbstractObject ICDGenericMessageField ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

ICDUiGenericMessageField (bool)
ICDUiGenericMessageField::ICDUiGenericMessageField. More...
unsigned short | getUiMask ()
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...
void | sendICDEvent (unsigned int req_id)
ICDUiGenericMessageField::sendICDEvent. More...
bool | setReservationTo (ICDUiObject *)
ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by argument untill it is released. More...
bool | releaseReservationTo (ICDUiObject *)
ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj. More...
bool | isReserved ()
bool | isReadOnly ()
bool | hasPendingChanges ()
void | flushPendingChanges ()
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Protected Attributes

bool | _readonly
ICDUiObject * | _obj_reserved
unsigned short | _ui_mask
bool | _incoming_changes
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Friends

class | ICDUiMessage
class | ICDHandler

Additional Inherited Members

- Protected Member Functions inherited from ICDUiAbstractItem
virtual void raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...

Constructor & Destructor Documentation

◆ ICDUiGenericMessageField()

ICDUiGenericMessageField::ICDUiGenericMessageField ( bool r )

ICDUiGenericMessageField::ICDUiGenericMessageField.

Parameters
r

Member Function Documentation

◆ consumeICDEvent()

bool ICDUiGenericMessageField::consumeICDEvent | ( | unsigned int | req_id,
 |  | unsigned long | event_number
 | ) |  |
virtual

ICDUiAbstractItem::consumeICDEvent.

Parameters
req_id
event_number

Reimplemented from ICDUiAbstractItem.

◆ releaseReservationTo()

bool ICDUiGenericMessageField::releaseReservationTo ( ICDUiObject * obj )

ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj.

Parameters
obj ICDUiObject*
Returns

◆ sendICDEvent()

void ICDUiGenericMessageField::sendICDEvent ( unsigned int req_id )
virtual

ICDUiGenericMessageField::sendICDEvent.

Parameters
req_id

Reimplemented from ICDUiAbstractItem.

◆ setReservationTo()

bool ICDUiGenericMessageField::setReservationTo ( ICDUiObject * obj )

ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by argument untill it is released.

Parameters
obj ICDUiObject*
Returns
The documentation for this class was generated from the following files:
  • include/icduiobjects.h
  • src/icduiobjects.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUiHandler Class Reference

Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
ICDUiHandler Class Reference
Inheritance diagram for ICDUiHandler:
ICDUiAbstractItem ICDUiObject ICDUiAbstractObject ICDHandler

Public Member Functions

void | processICDEvent (unsigned int)
- Public Member Functions inherited from ICDUiAbstractItem
virtual void | sendICDEvent (unsigned int req_id)
ICDUiAbstractItem::sendICDEvent. More...
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Static Public Member Functions

static unsigned short getUiMask ()

Protected Member Functions

virtual void | raiseICDEvent (unsigned int req_id)
ICDUiEventDispatcher::raiseICDEvent. More...
- Protected Member Functions inherited from ICDUiAbstractItem
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent. More...

Additional Inherited Members

- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Member Function Documentation

◆ raiseICDEvent()

void ICDUiHandler::raiseICDEvent ( unsigned int req_id )
protectedvirtual

ICDUiEventDispatcher::raiseICDEvent.

Parameters
req_id

Reimplemented from ICDUiAbstractItem.

The documentation for this class was generated from the following files:
  • include/icduiobjects.h
  • src/icduiobjects.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUiMessage Class Reference

Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
ICDUiMessage Class Reference
Inheritance diagram for ICDUiMessage:
ICDUiAbstractItem ICDUiObject ICDUiAbstractObject ICDMessage

Public Member Functions

ICDUiMessage (bool readonly)
ICDUiMessage::ICDUiMessage. More...
bool | isReadOnly ()
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
ICDUiMessage::consumeICDEvent.
void | sendICDEvent (unsigned int req_id)
ICDUiAbstractItem::sendICDEvent. More...
- Public Member Functions inherited from ICDUiAbstractItem
virtual std::string | getDefaultUi ()
ICDUiAbstractItem::getDefaultUi. More...
void | registerUiObject (ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events. More...
void | unregisterUiObject (ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject. More...
size_t | getUiObjectsSize ()
ICDUiObject * | getUiObject (size_t index)
ICDUiAbstractItem::getUiObject. More...
- Public Member Functions inherited from ICDUiObject
ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Static Public Member Functions

static unsigned short getUiMask ()

Protected Attributes

bool | _readonly
- Protected Attributes inherited from ICDUiAbstractItem
ICDGenericContainer< ICDUiObject > | ui_objects
- Protected Attributes inherited from ICDUiObject
ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Additional Inherited Members

- Protected Member Functions inherited from ICDUiAbstractItem
virtual void raiseICDEvent (unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent. More...

Constructor & Destructor Documentation

◆ ICDUiMessage()

ICDUiMessage::ICDUiMessage ( bool readonly )

ICDUiMessage::ICDUiMessage.

Parameters
readonly

Member Function Documentation

◆ sendICDEvent()

void ICDUiMessage::sendICDEvent ( unsigned int req_id )
virtual

ICDUiAbstractItem::sendICDEvent.

Parameters
req_id

Reimplemented from ICDUiAbstractItem.

The documentation for this class was generated from the following files:
  • include/icduiobjects.h
  • src/icduiobjects.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: ICDUiObject Class Reference

Public Member Functions | Protected Attributes | List of all members
ICDUiObject Class Reference
Inheritance diagram for ICDUiObject:
ICDUiAbstractObject ICDUiAbstractItem ICDUiBusObject ICDUiGenericMessageField ICDUiHandler ICDUiMessage ICDGenericMessageField ICDHandler ICDMessage ICDEnumMessageField ICDNumericMessageField< T > ICDStringMessageField ICDBooleanMessageField

Public Member Functions

ICDUiObject ()
ICDUiObject::ICDUiObject.
virtual bool | connectUi ()
void | setParentItem (ICDUiAbstractObject *p)
ICDUiObject::setParentItem. More...
ICDUiAbstractObject * getParentItem ()
ICDUiObject::getParentItem. More...
- Public Member Functions inherited from ICDUiAbstractObject
virtual bool | consumeICDEvent (unsigned int req_id, unsigned long event_number)
virtual void | raiseICDEvent (unsigned int req_id)
std::string | getAbstractObjectName ()
virtual bool | setPreferredUiRapresentation (std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one )
virtual ICD__ui_display | getPreferredUiRapresentation ()
ICDUiAbstractObject::getPreferredUiRapresentation. More...

Protected Attributes

ICDUiAbstractObject * | _parent
- Protected Attributes inherited from ICDUiAbstractObject
std::string | _abstract_obj_name
ICD__ui_display | _preferred_ui_display

Member Function Documentation

◆ getParentItem()

ICDUiAbstractObject * ICDUiObject::getParentItem ( )

ICDUiObject::getParentItem.

Returns
parent object

◆ setParentItem()

void ICDUiObject::setParentItem ( ICDUiAbstractObject * p )

ICDUiObject::setParentItem.

Parameters
p of type ICDUiAbstractObject*
The documentation for this class was generated from the following files:
  • include/icduiobjects.h
  • src/icduiobjects.cpp
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: IGenericBusEqp Class Reference

Public Member Functions | List of all members
IGenericBusEqp Class Referenceabstract

Interface Class: it defines the methods that shall be implemented by a bus user (Equipment) More...

Inheritance diagram for IGenericBusEqp:
ICDHandler

Public Member Functions

virtual void | OnBusError (std::string err, BusErrorSeverity severity)=0
Handling of the error coming from the bus object.
virtual void | OnChangeStateRequest (EqpStateRequest req)=0
Handling of a state chanhe request coming from the bus object.
virtual bool | OnMessageReceive (unsigned int msgId, unsigned char *data, unsigned short size)=0
Method that shall manages the data reception coming from the bus object.
virtual void | OnBusClock ()=0
Method that contains operation linked to the bus clock.
virtual ICDEndianness | GetEndianness ()=0
It returns the Endiannes.
virtual ICDStreamFormat | GetStreamFormat ()=0
It returns the Stream Format.

Detailed Description

Interface Class: it defines the methods that shall be implemented by a bus user (Equipment)

The documentation for this class was generated from the following file:
  • include/ext/GenericBusEqp.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: IGenericLoggerInterface Class Reference

Public Member Functions | Public Attributes | List of all members
IGenericLoggerInterface Class Referenceabstract

Public Member Functions

virtual void | configure (std::string conf_path)=0
virtual void | setLevel (int l)=0
virtual int | getLevel ()=0
virtual bool | isStarted ()=0
virtual void | setDataHeader (std::string)=0
virtual bool | start (int level, std::string logfile)=0
virtual void | stop ()=0
virtual void | logMessage (int level, bool is_tx, int msg_id, unsigned char *buff, size_t sz)=0
virtual void | logMessage (int level, bool is_tx, int msg_id, unsigned short *buff, size_t sz)=0
virtual void | logMessage (int level, bool is_tx, int msg_id, unsigned int *buff, size_t sz)=0
virtual void | logMessage (int level, bool is_tx, int msg_id, std::string)=0
virtual bool | setMasterTimeCallback ()=0

Public Attributes

TimeTagCallback timeTagclbk
The documentation for this class was generated from the following file:
  • include/ext/GenericLoggerInterface.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: state Struct Reference

Public Attributes | List of all members
state Struct Reference

Public Attributes

const char * | start
const char * | next
int | type
union {
double value
const double * bound
const void * function
};
void * | context
const te_variable * | lookup
int | lookup_len
The documentation for this struct was generated from the following file:
  • include/tinyexpr/tinyexpr.c
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: te_expr Struct Reference

Public Attributes | List of all members
te_expr Struct Reference

Public Attributes

int | type
union {
double value
const double * bound
const void * function
};
void * | parameters [1]
The documentation for this struct was generated from the following file:
  • include/tinyexpr/tinyexpr.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: te_variable Struct Reference

Public Attributes | List of all members
te_variable Struct Reference

Public Attributes

const char * | name
const void * | address
int | type
void * | context
The documentation for this struct was generated from the following file:
  • include/tinyexpr/tinyexpr.h
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: test_case Struct Reference

Public Attributes | List of all members
test_case Struct Reference

Public Attributes

const char * | expr
double | answer
The documentation for this struct was generated from the following file:
  • include/tinyexpr/test.c
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: test_equ Struct Reference

Public Attributes | List of all members
test_equ Struct Reference

Public Attributes

const char * | expr1
const char * | expr2
The documentation for this struct was generated from the following file:
  • include/tinyexpr/test.c
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Class Index

Class Index
a | d | e | f | g | i | m | n | p | q | s | t | v | x
a
ICDAbstractFactory ICDNumericMessageField Interruptable (pu) te_expr
ICDAbstractRaw ICDRawData
m
te_variable
attribute_iterator (rapidxml) | ICDBCDTranscoder | ICDRawMessage | test_case
d
ICDBooleanMessageField ICDRawMessageField memory_pool (rapidxml) test_equ
ICDCodeSignedTranscoder ICDRealFloatingPointTranscoder
n
v
Dequeueable (pu) | ICDCodingMessageField | ICDSpareTranscoder
e
ICDDefaultStringTranscoder ICDStringExprTranscoder node_iterator (rapidxml) validation_error (rapidxml)
ICDDefaultTranscoder ICDStringMessageField
p
x
eof_error (rapidxml) | ICDDictionary | ICDStringTranscoder
Event (pu) | ICDEnumMessageField | ICDSwapTranscoder | parse_error (rapidxml) | xml_attribute (rapidxml)
EventImpl | ICDGenericContainer | ICDUiAbstractItem | Pool (pu) | xml_base (rapidxml)
f
ICDGenericMessageField ICDUiAbstractObject
q
xml_document (rapidxml)
ICDGenericTranscoder | ICDUiBusObject | xml_node (rapidxml)
file (rapidxml) | ICDHandler | ICDUiGenericMessageField | Queue (pu) | XMLParser (ICDUtils)
g
ICDHandlersManager ICDUiHandler
s
ICDIndexedContainer ICDUiMessage
GenericBusObject ICDMessage ICDUiObject state
GenericDriver ICDMessageContainer IGenericBusEqp
t
i
ICDNamedItem IGenericLoggerInterface
Task (pu)
ICDAbstractContainer
a | d | e | f | g | i | m | n | p | q | s | t | v | x
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Class Hierarchy

Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123456]
C rapidxml::attribute_iterator< Ch > | Iterator of child attributes of xml_node
▼C pu::Dequeueable |
▼C pu::Event |
C EventImpl |
C rapidxml::file< Ch > | Represents data loaded from a file
C GenericBusObject | The GenericBusObject class: proxy implementation class for GenericDriver
C GenericDriver | Bus Interface Class
▼C ICDAbstractContainer< T > |
▼C ICDGenericContainer< T > |
C ICDIndexedContainer< T > |
▼C ICDAbstractContainer< ICDGenericMessageField > |
▼C ICDGenericContainer< ICDGenericMessageField > |
C ICDIndexedContainer< ICDGenericMessageField > |
▼C ICDAbstractContainer< ICDHandler > |
▼C ICDGenericContainer< ICDHandler > |
C ICDHandlersManager |
▼C ICDAbstractContainer< ICDMessage > |
▼C ICDGenericContainer< ICDMessage > |
▼C ICDIndexedContainer< ICDMessage > |
C ICDMessageContainer |
▼C ICDAbstractContainer< ICDUiObject > |
C ICDGenericContainer< ICDUiObject > |
C ICDAbstractFactory | The ICDAbstractFactory class It it used to return a generic oject implementations of the required ICD object
▼C ICDAbstractRaw |
▼C ICDRawMessage |
C ICDMessage | The ICDMessage class
▼C ICDRawMessageField |
▼C ICDGenericMessageField | The ICDGenericMessageField class
▼C ICDEnumMessageField | The ICDEnumMessageField class
C ICDBooleanMessageField | The ICDBooleanMessageField class
C ICDNumericMessageField< T > |
C ICDStringMessageField |
▼C ICDCodingMessageField | The ICDCodingMessageField class
C ICDGenericMessageField | The ICDGenericMessageField class
C ICDDictionary |
▼C ICDGenericTranscoder< T > |
C ICDBCDTranscoder< T > | The ICDBCDTranscoder class : implements a BCD transcoder based on standard ( nibbles with range 0-9 )
C ICDCodeSignedTranscoder< T > | The ICDCodeSignedTranscoder class : implements a sign/value transcoder
▼C ICDDefaultTranscoder< T > | The ICDDefaultTranscoder class: used for numerical fields
C ICDSwapTranscoder< T > | The ICDSwapTranscoder class : implements a full swap transcoder ( first byte is the most significative )
C ICDRealFloatingPointTranscoder< T > | The ICDRealFloatingPointTranscoder class : implements a real floating transcoder
C ICDSpareTranscoder< T > |
C ICDStringExprTranscoder< T > |
C ICDGenericTranscoder< unsigned int > |
▼C ICDNamedItem |
C ICDGenericMessageField | The ICDGenericMessageField class
C ICDHandler | The ICDHandler class
C ICDMessage | The ICDMessage class
C ICDRawData |
▼C ICDStringTranscoder | The ICDStringTranscoder class
C ICDDefaultStringTranscoder |
▼C ICDUiEventConsumer |
▼C ICDUiAbstractObject |
▼C ICDUiObject |
▼C ICDUiAbstractItem |
▼C ICDUiGenericMessageField |
C ICDGenericMessageField | The ICDGenericMessageField class
▼C ICDUiHandler |
C ICDHandler | The ICDHandler class
▼C ICDUiMessage |
C ICDMessage | The ICDMessage class
C ICDUiBusObject | The ICDUiBusObject class
▼C ICDUiEventDispatcher |
C ICDUiHandler |
▼C ICDUiEventProducer |
C ICDUiAbstractItem |
▼C IGenericBusEqp | Interface Class: it defines the methods that shall be implemented by a bus user (Equipment)
C ICDHandler | The ICDHandler class
C IGenericLoggerInterface |
▼C pu::Interruptable |
C pu::Task |
▼C rapidxml::memory_pool< Ch > |
C rapidxml::xml_document< Ch > |
▼C rapidxml::memory_pool< char > |
C rapidxml::xml_document< char > |
C rapidxml::node_iterator< Ch > | Iterator of child nodes of xml_node
C pu::Pool |
C pu::Queue< T > |
▼C runtime_error |
▼C rapidxml::parse_error |
C rapidxml::eof_error |
C rapidxml::validation_error |
C state |
C te_expr |
C te_variable |
C test_case |
C test_equ |
▼C rapidxml::xml_base< Ch > |
C rapidxml::xml_attribute< Ch > |
▼C rapidxml::xml_node< Ch > |
C rapidxml::xml_document< Ch > |
▼C rapidxml::xml_base< char > |
C rapidxml::xml_attribute< char > |
▼C rapidxml::xml_node< char > |
C rapidxml::xml_document< char > |
C ICDUtils::XMLParser |
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Class Members

Here is a list of all documented class members with links to the class documentation for each member:

- a -

  • addMessageField() : ICDMessage
  • allocate_attribute() : rapidxml::memory_pool< Ch >
  • allocate_node() : rapidxml::memory_pool< Ch >
  • allocate_string() : rapidxml::memory_pool< Ch >
  • append_attribute() : rapidxml::xml_node< Ch >
  • append_node() : rapidxml::xml_node< Ch >

- c -

  • clear()
: rapidxml::memory_pool< Ch >
, rapidxml::xml_document< Ch >
  • clone_node() : rapidxml::memory_pool< Ch >
  • commitChanges() : ICDMessage
  • commitSingleField() : ICDMessage
  • consumeICDEvent() : ICDHandler , ICDMessage , ICDUiAbstractItem , ICDUiGenericMessageField , ICDUiMessage

- d -

  • data() : rapidxml::file< Ch >
  • document()
: rapidxml::xml_attribute< Ch >
, rapidxml::xml_node< Ch >

- e -

  • enulateChanges() : ICDMessage

- f -

  • file() : rapidxml::file< Ch >
  • findMessageField() : ICDMessage
  • first_attribute() : rapidxml::xml_node< Ch >
  • first_node() : rapidxml::xml_node< Ch >
  • fixup() : rapidxml::xml_document< Ch >

- g -

  • getBusClockPeriod() : ICDHandler
  • getChangedMessages() : ICDHandler
  • GetClockPeriod() : GenericDriver
  • getDefaultUi() : ICDUiAbstractItem
  • GetEndianness() : ICDHandler , IGenericBusEqp
  • GetErrorInjectionList() : GenericDriver
  • getLastReceivedMessage() : ICDHandler
  • getMessageField() : ICDMessage
  • getName() : ICDNamedItem
  • getParentItem() : ICDUiObject
  • getPreferredUiRapresentation() : ICDUiAbstractObject
  • getPriority() : ICDMessage
  • GetStreamFormat() : ICDHandler , IGenericBusEqp
  • getUiIdentifierName() : ICDNamedItem
  • getUiObject() : ICDUiAbstractItem
  • GetVersion() : GenericDriver

- i -

  • ICDMessage() : ICDMessage
  • ICDNamedItem() : ICDNamedItem
  • ICDUiGenericMessageField() : ICDUiGenericMessageField
  • ICDUiMessage() : ICDUiMessage
  • ICDUiObject() : ICDUiObject
  • insert_attribute() : rapidxml::xml_node< Ch >
  • insert_node() : rapidxml::xml_node< Ch >
  • IsStarted() : GenericDriver
  • isVirtual() : ICDMessage

- l -

  • last_attribute() : rapidxml::xml_node< Ch >
  • last_node() : rapidxml::xml_node< Ch >
  • LoadICDXML() : GenericDriver

- m -

  • memory_pool() : rapidxml::memory_pool< Ch >
  • MessageError() : GenericDriver
  • MessageRead() : GenericDriver
  • MessageSent() : GenericDriver

- n -

  • name() : rapidxml::xml_base< Ch >
  • name_size() : rapidxml::xml_base< Ch >
  • new_ICDBooleanMessageField() : ICDAbstractFactory
  • new_ICDDoubleMessageField() : ICDAbstractFactory
  • new_ICDEnumMessageField() : ICDAbstractFactory
  • new_ICDFloatMessageField() : ICDAbstractFactory
  • new_ICDIntegerMessageField() : ICDAbstractFactory
  • new_ICDLongLongMessageField() : ICDAbstractFactory
  • new_ICDLongMessageField() : ICDAbstractFactory
  • new_ICDMessage() : ICDAbstractFactory
  • new_ICDShortMessageField() : ICDAbstractFactory
  • new_ICDStringMessageField() : ICDAbstractFactory
  • new_ICDUnsignedIntegerMessageField() : ICDAbstractFactory
  • new_ICDUnsignedLongLongMessageField() : ICDAbstractFactory
  • new_ICDUnsignedLongMessageField() : ICDAbstractFactory
  • new_ICDUnsignedShortMessageField() : ICDAbstractFactory
  • next_attribute() : rapidxml::xml_attribute< Ch >
  • next_sibling() : rapidxml::xml_node< Ch >

- o -

  • offer() : pu::Pool
  • OnBusClock() : ICDHandler , IGenericBusEqp
  • OnBusError() : ICDHandler , IGenericBusEqp
  • OnChangeStateRequest() : ICDHandler , IGenericBusEqp
  • OnMessageReceive() : ICDHandler , IGenericBusEqp

- p -

  • pack() : ICDStringMessageField
  • packAsCharArray() : ICDRawMessageField
  • packUnsigned() : ICDRawMessageField
  • parent() : rapidxml::xml_base< Ch >
  • parse() : rapidxml::xml_document< Ch >
  • parse_error() : rapidxml::parse_error
  • parseXMLConfig() : ICDHandler
  • prepend_attribute() : rapidxml::xml_node< Ch >
  • prepend_node() : rapidxml::xml_node< Ch >
  • previous_attribute() : rapidxml::xml_attribute< Ch >
  • previous_sibling() : rapidxml::xml_node< Ch >

- r -

  • raiseICDEvent() : ICDUiAbstractItem , ICDUiHandler
  • RegisterToBus() : GenericDriver
  • registerUiObject() : ICDUiAbstractItem
  • releaseReservationTo() : ICDUiGenericMessageField
  • remove_all_attributes() : rapidxml::xml_node< Ch >
  • remove_all_nodes() : rapidxml::xml_node< Ch >
  • remove_attribute() : rapidxml::xml_node< Ch >
  • remove_first_attribute() : rapidxml::xml_node< Ch >
  • remove_first_node() : rapidxml::xml_node< Ch >
  • remove_last_attribute() : rapidxml::xml_node< Ch >
  • remove_last_node() : rapidxml::xml_node< Ch >
  • remove_node() : rapidxml::xml_node< Ch >
  • removeMessageField() : ICDMessage
  • revertChanges() : ICDMessage

- s -

  • s_toUiString() : ICDNamedItem
  • Send() : GenericDriver
  • sendICDEvent() : ICDUiAbstractItem , ICDUiGenericMessageField , ICDUiMessage
  • set() : ICDNumericMessageField< T >
  • set_allocator() : rapidxml::memory_pool< Ch >
  • setAsVirtual() : ICDMessage
  • setBitStream() : ICDRawMessageField
  • setBusClockPeriod() : ICDHandler
  • setName() : ICDNamedItem
  • setParentItem() : ICDUiObject
  • setPreferredUiRapresentation() : ICDGenericMessageField , ICDHandler , ICDUiAbstractObject
  • setPriority() : ICDMessage
  • setReservationTo() : ICDUiGenericMessageField
  • size() : ICDMessage , rapidxml::file< Ch >
  • Start() : GenericDriver
  • StartLog() : GenericDriver
  • Stop() : GenericDriver
  • StopLog() : GenericDriver

- t -

  • touch() : ICDMessage
  • type() : rapidxml::xml_node< Ch >

- u -

  • unpack() : ICDMessage , ICDStringMessageField
  • unpackAsCharArray() : ICDRawMessageField
  • unpackSigned() : ICDRawMessageField
  • unpackUnsigned() : ICDRawMessageField
  • unregisterUiObject() : ICDUiAbstractItem

- v -

  • value() : rapidxml::xml_base< Ch >
  • value_size() : rapidxml::xml_base< Ch >

- w -

  • where() : rapidxml::parse_error

- x -

  • xml_attribute() : rapidxml::xml_attribute< Ch >
  • xml_document() : rapidxml::xml_document< Ch >
  • xml_node() : rapidxml::xml_node< Ch >

- ~ -

  • ~GenericDriver() : GenericDriver
  • ~memory_pool() : rapidxml::memory_pool< Ch >
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Class Members - Functions

- a -

  • addMessageField() : ICDMessage
  • allocate_attribute() : rapidxml::memory_pool< Ch >
  • allocate_node() : rapidxml::memory_pool< Ch >
  • allocate_string() : rapidxml::memory_pool< Ch >
  • append_attribute() : rapidxml::xml_node< Ch >
  • append_node() : rapidxml::xml_node< Ch >

- c -

  • clear()
: rapidxml::memory_pool< Ch >
, rapidxml::xml_document< Ch >
  • clone_node() : rapidxml::memory_pool< Ch >
  • commitChanges() : ICDMessage
  • commitSingleField() : ICDMessage
  • consumeICDEvent() : ICDHandler , ICDMessage , ICDUiAbstractItem , ICDUiGenericMessageField , ICDUiMessage

- d -

  • data() : rapidxml::file< Ch >
  • document()
: rapidxml::xml_attribute< Ch >
, rapidxml::xml_node< Ch >

- e -

  • enulateChanges() : ICDMessage

- f -

  • file() : rapidxml::file< Ch >
  • findMessageField() : ICDMessage
  • first_attribute() : rapidxml::xml_node< Ch >
  • first_node() : rapidxml::xml_node< Ch >
  • fixup() : rapidxml::xml_document< Ch >

- g -

  • getBusClockPeriod() : ICDHandler
  • getChangedMessages() : ICDHandler
  • GetClockPeriod() : GenericDriver
  • getDefaultUi() : ICDUiAbstractItem
  • GetEndianness() : ICDHandler , IGenericBusEqp
  • GetErrorInjectionList() : GenericDriver
  • getLastReceivedMessage() : ICDHandler
  • getMessageField() : ICDMessage
  • getName() : ICDNamedItem
  • getParentItem() : ICDUiObject
  • getPreferredUiRapresentation() : ICDUiAbstractObject
  • getPriority() : ICDMessage
  • GetStreamFormat() : ICDHandler , IGenericBusEqp
  • getUiIdentifierName() : ICDNamedItem
  • getUiObject() : ICDUiAbstractItem
  • GetVersion() : GenericDriver

- i -

  • ICDMessage() : ICDMessage
  • ICDNamedItem() : ICDNamedItem
  • ICDUiGenericMessageField() : ICDUiGenericMessageField
  • ICDUiMessage() : ICDUiMessage
  • ICDUiObject() : ICDUiObject
  • insert_attribute() : rapidxml::xml_node< Ch >
  • insert_node() : rapidxml::xml_node< Ch >
  • IsStarted() : GenericDriver
  • isVirtual() : ICDMessage

- l -

  • last_attribute() : rapidxml::xml_node< Ch >
  • last_node() : rapidxml::xml_node< Ch >
  • LoadICDXML() : GenericDriver

- m -

  • memory_pool() : rapidxml::memory_pool< Ch >
  • MessageError() : GenericDriver
  • MessageRead() : GenericDriver
  • MessageSent() : GenericDriver

- n -

  • name() : rapidxml::xml_base< Ch >
  • name_size() : rapidxml::xml_base< Ch >
  • new_ICDBooleanMessageField() : ICDAbstractFactory
  • new_ICDDoubleMessageField() : ICDAbstractFactory
  • new_ICDEnumMessageField() : ICDAbstractFactory
  • new_ICDFloatMessageField() : ICDAbstractFactory
  • new_ICDIntegerMessageField() : ICDAbstractFactory
  • new_ICDLongLongMessageField() : ICDAbstractFactory
  • new_ICDLongMessageField() : ICDAbstractFactory
  • new_ICDMessage() : ICDAbstractFactory
  • new_ICDShortMessageField() : ICDAbstractFactory
  • new_ICDStringMessageField() : ICDAbstractFactory
  • new_ICDUnsignedIntegerMessageField() : ICDAbstractFactory
  • new_ICDUnsignedLongLongMessageField() : ICDAbstractFactory
  • new_ICDUnsignedLongMessageField() : ICDAbstractFactory
  • new_ICDUnsignedShortMessageField() : ICDAbstractFactory
  • next_attribute() : rapidxml::xml_attribute< Ch >
  • next_sibling() : rapidxml::xml_node< Ch >

- o -

  • offer() : pu::Pool
  • OnBusClock() : ICDHandler , IGenericBusEqp
  • OnBusError() : ICDHandler , IGenericBusEqp
  • OnChangeStateRequest() : ICDHandler , IGenericBusEqp
  • OnMessageReceive() : ICDHandler , IGenericBusEqp

- p -

  • pack() : ICDStringMessageField
  • packAsCharArray() : ICDRawMessageField
  • packUnsigned() : ICDRawMessageField
  • parent() : rapidxml::xml_base< Ch >
  • parse() : rapidxml::xml_document< Ch >
  • parse_error() : rapidxml::parse_error
  • parseXMLConfig() : ICDHandler
  • prepend_attribute() : rapidxml::xml_node< Ch >
  • prepend_node() : rapidxml::xml_node< Ch >
  • previous_attribute() : rapidxml::xml_attribute< Ch >
  • previous_sibling() : rapidxml::xml_node< Ch >

- r -

  • raiseICDEvent() : ICDUiAbstractItem , ICDUiHandler
  • RegisterToBus() : GenericDriver
  • registerUiObject() : ICDUiAbstractItem
  • releaseReservationTo() : ICDUiGenericMessageField
  • remove_all_attributes() : rapidxml::xml_node< Ch >
  • remove_all_nodes() : rapidxml::xml_node< Ch >
  • remove_attribute() : rapidxml::xml_node< Ch >
  • remove_first_attribute() : rapidxml::xml_node< Ch >
  • remove_first_node() : rapidxml::xml_node< Ch >
  • remove_last_attribute() : rapidxml::xml_node< Ch >
  • remove_last_node() : rapidxml::xml_node< Ch >
  • remove_node() : rapidxml::xml_node< Ch >
  • removeMessageField() : ICDMessage
  • revertChanges() : ICDMessage

- s -

  • s_toUiString() : ICDNamedItem
  • Send() : GenericDriver
  • sendICDEvent() : ICDUiAbstractItem , ICDUiGenericMessageField , ICDUiMessage
  • set() : ICDNumericMessageField< T >
  • set_allocator() : rapidxml::memory_pool< Ch >
  • setAsVirtual() : ICDMessage
  • setBitStream() : ICDRawMessageField
  • setBusClockPeriod() : ICDHandler
  • setName() : ICDNamedItem
  • setParentItem() : ICDUiObject
  • setPreferredUiRapresentation() : ICDGenericMessageField , ICDHandler , ICDUiAbstractObject
  • setPriority() : ICDMessage
  • setReservationTo() : ICDUiGenericMessageField
  • size() : ICDMessage , rapidxml::file< Ch >
  • Start() : GenericDriver
  • StartLog() : GenericDriver
  • Stop() : GenericDriver
  • StopLog() : GenericDriver

- t -

  • touch() : ICDMessage
  • type() : rapidxml::xml_node< Ch >

- u -

  • unpack() : ICDMessage , ICDStringMessageField
  • unpackAsCharArray() : ICDRawMessageField
  • unpackSigned() : ICDRawMessageField
  • unpackUnsigned() : ICDRawMessageField
  • unregisterUiObject() : ICDUiAbstractItem

- v -

  • value() : rapidxml::xml_base< Ch >
  • value_size() : rapidxml::xml_base< Ch >

- w -

  • where() : rapidxml::parse_error

- x -

  • xml_attribute() : rapidxml::xml_attribute< Ch >
  • xml_document() : rapidxml::xml_document< Ch >
  • xml_node() : rapidxml::xml_node< Ch >

- ~ -

  • ~GenericDriver() : GenericDriver
  • ~memory_pool() : rapidxml::memory_pool< Ch >
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: File List

File List
Here is a list of all documented files with brief descriptions:
[detail level 123]
▼ include |
▼ ext |
GenericBusEqp.h |
genericBusInterface.h |
GenericLoggerInterface.h |
▼ rapidxml |
rapidxml.hpp | This file contains rapidxml parser and DOM implementation
rapidxml_iterators.hpp | This file contains rapidxml iterators
rapidxml_print.hpp | This file contains rapidxml printer implementation
rapidxml_utils.hpp |
▼ tinyexpr |
minctest.h |
tinyexpr.h |
genericbusobject.h |
icd_apiversion.h |
icdabstractfactory.h |
icdcontainers.h |
icddictionary.h |
icdevents.h | Event management for icdhandler engine
icdhandler.h |
icdhandler_global.h |
icdhandlersmanager.h |
icdinitags.h | Definitions for ini file ( that define the session )
icdmessage.h |
icdmessagefield.h |
icdnameditem.h |
icdrapresentation.h |
icdrawstream.h |
icdtranscoder.h |
icduibusobject.h |
icduiobjects.h |
icdutils.h |
icdversion.h |
icdxmltags.h | Xml strings definitions for icd parsing
portable_endian.h |
putilsqueue.h |
▼ src |
icdabstractfactory.cpp |
icdhandler.cpp |
icdhandlersmanager.cpp |
icdmessage.cpp |
icdmessagefield.cpp |
icdrawstream.cpp |
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include Directory Reference

  • include
include Directory Reference

Directories

Files

file | icdabstractfactory.h [code]
file | icdcontainers.h [code]
file | icdevents.h [code]
event management for icdhandler engine
file | icdhandler.h [code]
file | icdhandler_global.h [code]
file | icdhandlersmanager.h [code]
file | icdinitags.h [code]
definitions for ini file ( that define the session )
file | icdmessage.h [code]
file | icdmessagefield.h [code]
file | icdrapresentation.h [code]
file | icdrawstream.h [code]
file | icdxmltags.h [code]
xml strings definitions for icd parsing
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/ext Directory Reference

  • include
  • ext
ext Directory Reference

Files

file | GenericBusEqp.h [code]
file | genericBusInterface.h [code]
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/ext/GenericBusEqp.h File Reference

  • include
  • ext
Classes | Typedefs | Enumerations
GenericBusEqp.h File Reference

Go to the source code of this file.

Classes

class IGenericBusEqp
Interface Class: it defines the methods that shall be implemented by a bus user (Equipment) More...

Typedefs

typedef enum _bus_error_severity | BusErrorSeverity
typedef enum _eqp_state_request | EqpStateRequest
typedef enum _icd_endianness | ICDEndianness
typedef enum _icd_stream_format | ICDStreamFormat

Enumerations

enum | _bus_error_severity { BUS_ERROR_NONE = 0, BUS_ERROR_LOW, BUS_ERROR_MEDIUM, BUS_ERROR_HIGH }
enum | _eqp_state_request { STATE_REQUEST_RESUME, STATE_REQUEST_STOP, STATE_REQUEST_SUSPEND }
enum | _icd_endianness { ICD_LITTLE_ENDIAN, ICD_BIG_ENDIAN }
enum | _icd_stream_format { ICD_STREAM_FORMAT_BYTE = 8, ICD_STREAM_FORMAT_WORD = 16, ICD_STREAM_FORMAT_DOUBLEWORD = 32 }

Detailed Description

Owner
Mirko Micheletti, revision Federico Paoletti
Purpose
Richiede all'utente del generico driver l'implementazione dei metodi qui specificati.
Description
Funzionalita` fornite: OnMessageReceive: per poter elaborare il messaggio ricevuto dal driver. OnBusClock: per poter schedulare attivita` sincronizandosi con il clock del driver. OnBusError: per poter gestire eventuali errori. OnChangeStateRequest: pilota lo stato del dispositivo Ognuna delle precedenti funzioni anche se non necessarie devono essere comunque definite. Possono invece non essere implementate.

COPYRIGHT (C) 2019 by Leonardo Company s.p.a.

Typedef Documentation

◆ EqpStateRequest

typedef enum _eqp_state_request EqpStateRequest

Operation that bus object requests to a bus client

◆ ICDEndianness

typedef enum _icd_endianness ICDEndianness

Endiannes

◆ ICDStreamFormat

typedef enum _icd_stream_format ICDStreamFormat

Block size of stream

Enumeration Type Documentation

◆ _bus_error_severity

enum _bus_error_severity
Enumerator
BUS_ERROR_LOW | no error.. just info
BUS_ERROR_MEDIUM | low error..
BUS_ERROR_HIGH | medium error high error

◆ _eqp_state_request

enum _eqp_state_request

Operation that bus object requests to a bus client

Enumerator
STATE_REQUEST_STOP | bus tell to the client to resume rx/tx after a bloking state resolution
STATE_REQUEST_SUSPEND | bus tell to the client to stop rx/tx due to a critical error bus tell to the client to suspend rx/tx due a bloking state

◆ _icd_endianness

enum _icd_endianness

Endiannes

Enumerator
ICD_BIG_ENDIAN

stream is little endian mode
stream is big endian mode

◆ _icd_stream_format

enum _icd_stream_format

Block size of stream

Enumerator
ICD_STREAM_FORMAT_WORD | stream is composed of a sequence of bytes
ICD_STREAM_FORMAT_DOUBLEWORD | stream is composed of a sequence of words
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/ext/genericBusInterface.h File Reference

  • include
  • ext
Classes | Macros | Functions
genericBusInterface.h File Reference

Go to the source code of this file.

Classes

class GenericDriver
Bus Interface Class. More...

Macros

#define | _EXPORT_GENERICINTERFACE
#define | GENERICINTERFACE_API_VERSION "$Revision: 122971 $"

Functions

GenericDriver * CreateGenericDriver ()
Return a pointer (in term of GenericDriver) of a derived bus object.
int | DestroyGenericDriver (GenericDriver *driver)
Destroy the bus object passed as argument.
std::string | GetGenericDriverAPIVersion ()
Return the revision string of the GenericDriver.

Detailed Description

Owner
Caterina Calcagno, Federico Paoletti
Purpose
Bus Interface Class
Description
This interface is the one used by the platform simulator in order to connect to all driver classes

COPYRIGHT (C) 2017 by Selex Es S.P.A.

Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/ext/GenericLoggerInterface.h Source File

  • include
  • ext
GenericLoggerInterface.h
1
8 #ifndef GenericLoggerInterface
9 #define GenericLoggerInterface
10
11 #ifdef WIN32
12 #define _EXPORT __declspec(dllexport)
13 #else
14 #define _EXPORT
15 #endif
16
17 #define USE_TIMETAG
18
19 #include <string>
20
21 #define LOGGER_INTERFACE_VERSION 3.0.0
22
23 //LOG LEVEL CODE
24 #define ERRORS_ONLY 1
25 #define ERRORS_AND_CHANGES 2
26 #define ALWAYS 3
27
28 #ifdef USE_TIMETAG
29 #include <functional>
35 typedef std::function<std::string(bool)> TimeTagCallback;
36 #endif
37
38
39 class IGenericLoggerInterface {
40 public :
41 virtual ~IGenericLoggerInterface() {}
42
43 virtual void configure(std::string conf_path) = 0;
44 virtual void setLevel(int l) = 0;
45 virtual int getLevel() = 0;
46
47 virtual bool isStarted() = 0;
48
49 virtual void setDataHeader(std::string) = 0;
50
51 virtual bool start( int level, std::string logfile) = 0;
52 virtual void stop() = 0;
53
54 virtual void logMessage(int level, bool is_tx, int msg_id, unsigned char *buff,size_t sz) = 0;
55 virtual void logMessage(int level, bool is_tx, int msg_id, unsigned short *buff,size_t sz) = 0;
56 virtual void logMessage(int level, bool is_tx, int msg_id, unsigned int *buff,size_t sz) = 0;
57 virtual void logMessage(int level, bool is_tx, int msg_id, std::string) = 0;
58 #ifdef USE_TIMETAG
59 public:
60 virtual bool setMasterTimeCallback() = 0;
61 TimeTagCallback timeTagclbk;
62 #endif
63 };
64
65
66
68 extern "C" _EXPORT IGenericLoggerInterface *CreateLogger();
70 extern "C" _EXPORT void DestroyLogger(IGenericLoggerInterface *p);
71
72 #endif
IGenericLoggerInterface
Definition: GenericLoggerInterface.h:39
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml Directory Reference

  • include
  • rapidxml
rapidxml Directory Reference

Files

file | rapidxml.hpp [code]
This file contains rapidxml parser and DOM implementation.
file | rapidxml_iterators.hpp [code]
This file contains rapidxml iterators.
file | rapidxml_print.hpp [code]
This file contains rapidxml printer implementation.
file | rapidxml_utils.hpp [code]
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml.hpp File Reference

  • include
  • rapidxml
Classes | Macros | Enumerations | Variables
rapidxml.hpp File Reference

This file contains rapidxml parser and DOM implementation. More...

Go to the source code of this file.

Classes

class | rapidxml::parse_error
class | rapidxml::eof_error
class | rapidxml::validation_error
class | rapidxml::xml_node< Ch >
class | rapidxml::xml_attribute< Ch >
class | rapidxml::xml_document< Ch >
class | rapidxml::memory_pool< Ch >
class | rapidxml::xml_base< Ch >
class | rapidxml::xml_attribute< Ch >
class | rapidxml::xml_node< Ch >
class | rapidxml::xml_document< Ch >

Macros

#define | RAPIDXML_PARSE_ERROR(what, where) {if (*where == Ch(0)) throw eof_error(what, where); else throw parse_error(what, where);} (void)0
#define | RAPIDXML_EOF_ERROR(what, where) throw eof_error(what, where)
#define | RAPIDXML_STATIC_POOL_SIZE (64 * 1024)
#define | RAPIDXML_DYNAMIC_POOL_SIZE (64 * 1024)
#define | RAPIDXML_ALIGNMENT sizeof(void *)

Enumerations

enum rapidxml::node_type {
rapidxml::node_document, rapidxml::node_element, rapidxml::node_data, rapidxml::node_cdata,
rapidxml::node_comment, rapidxml::node_declaration, rapidxml::node_doctype, rapidxml::node_pi,
rapidxml::node_literal
}

Variables

const int | rapidxml::parse_no_data_nodes = 0x1
const int | rapidxml::parse_no_element_values = 0x2
const int | rapidxml::parse_no_string_terminators = 0x4
const int | rapidxml::parse_no_entity_translation = 0x8
const int | rapidxml::parse_no_utf8 = 0x10
const int | rapidxml::parse_declaration_node = 0x20
const int | rapidxml::parse_comment_nodes = 0x40
const int | rapidxml::parse_doctype_node = 0x80
const int | rapidxml::parse_pi_nodes = 0x100
const int | rapidxml::parse_validate_closing_tags = 0x200
const int | rapidxml::parse_trim_whitespace = 0x400
const int | rapidxml::parse_normalize_whitespace = 0x800
const int | rapidxml::parse_open_only = 0x1000
const int | rapidxml::parse_parse_one = 0x2000
const int | rapidxml::parse_validate_xmlns = 0x4000
const int | rapidxml::parse_default = 0
const int | rapidxml::parse_non_destructive = parse_no_string_terminators | parse_no_entity_translation
const int | rapidxml::parse_fastest = parse_non_destructive | parse_no_data_nodes
const int | rapidxml::parse_full = parse_declaration_node | parse_comment_nodes | parse_doctype_node | parse_pi_nodes | parse_validate_closing_tags

Detailed Description

This file contains rapidxml parser and DOM implementation.

Enumeration Type Documentation

◆ node_type

enum rapidxml::node_type

Enumeration listing all node types produced by the parser. Use xml_node::type() function to query node type.

Enumerator
node_document | A document node. Name and value are empty.
node_element | An element node. Name contains element name. Value contains text of first data node.
node_data | A data node. Name is empty. Value contains data text.
node_cdata | A CDATA node. Name is empty. Value contains data text.
node_comment | A comment node. Name is empty. Value contains comment text.
node_declaration | A declaration node. Name and value are empty. Declaration parameters (version, encoding and standalone) are in node attributes.
node_doctype | A DOCTYPE node. Name is empty. Value contains DOCTYPE text.
node_pi | A PI node. Name contains target. Value contains instructions.
node_literal | Value is unencoded text (used for inserting pre-rendered XML).

Variable Documentation

◆ parse_comment_nodes

const int rapidxml::parse_comment_nodes = 0x40

Parse flag instructing the parser to create comments nodes. By default, comment nodes are not created. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_declaration_node

const int rapidxml::parse_declaration_node = 0x20

Parse flag instructing the parser to create XML declaration node. By default, declaration node is not created. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_default

const int rapidxml::parse_default = 0

Parse flags which represent default behaviour of the parser. This is always equal to 0, so that all other flags can be simply ored together. Normally there is no need to inconveniently disable flags by anding with their negated (~) values. This also means that meaning of each flag is a negation of the default setting. For example, if flag name is rapidxml::parse_no_utf8, it means that utf-8 is enabled by default, and using the flag will disable it.

See xml_document::parse() function.

◆ parse_doctype_node

const int rapidxml::parse_doctype_node = 0x80

Parse flag instructing the parser to create DOCTYPE node. By default, doctype node is not created. Although W3C specification allows at most one DOCTYPE node, RapidXml will silently accept documents with more than one. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_fastest

const int rapidxml::parse_fastest = parse_non_destructive | parse_no_data_nodes

A combination of parse flags resulting in fastest possible parsing, without sacrificing important data.

See xml_document::parse() function.

◆ parse_full

const int rapidxml::parse_full = parse_declaration_node | parse_comment_nodes | parse_doctype_node | parse_pi_nodes | parse_validate_closing_tags

A combination of parse flags resulting in largest amount of data being extracted. This usually results in slowest parsing.

See xml_document::parse() function.

◆ parse_no_data_nodes

const int rapidxml::parse_no_data_nodes = 0x1

Parse flag instructing the parser to not create data nodes. Text of first data node will still be placed in value of parent element, unless rapidxml::parse_no_element_values flag is also specified. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_no_element_values

const int rapidxml::parse_no_element_values = 0x2

Parse flag instructing the parser to not use text of first data node as a value of parent element. Can be combined with other flags by use of | operator. Note that child data nodes of element node take precendence over its value when printing. That is, if element has one or more child data nodes and a value, the value will be ignored. Use rapidxml::parse_no_data_nodes flag to prevent creation of data nodes if you want to manipulate data using values of elements.

See xml_document::parse() function.

◆ parse_no_entity_translation

const int rapidxml::parse_no_entity_translation = 0x8

Parse flag instructing the parser to not translate entities in the source text. By default entities are translated, modifying source text. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_no_string_terminators

const int rapidxml::parse_no_string_terminators = 0x4

Parse flag instructing the parser to not place zero terminators after strings in the source text. By default zero terminators are placed, modifying source text. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_no_utf8

const int rapidxml::parse_no_utf8 = 0x10

Parse flag instructing the parser to disable UTF-8 handling and assume plain 8 bit characters. By default, UTF-8 handling is enabled. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_non_destructive

const int rapidxml::parse_non_destructive = parse_no_string_terminators | parse_no_entity_translation

A combination of parse flags that forbids any modifications of the source text. This also results in faster parsing. However, note that the following will occur:

  • names and values of nodes will not be zero terminated, you have to use xml_base::name_size() and xml_base::value_size() functions to determine where name and value ends
  • entities will not be translated
  • whitespace will not be normalized

See xml_document::parse() function.

◆ parse_normalize_whitespace

const int rapidxml::parse_normalize_whitespace = 0x800

Parse flag instructing the parser to condense all whitespace runs of data nodes to a single space character. Trimming of leading and trailing whitespace of data is controlled by rapidxml::parse_trim_whitespace flag. By default, whitespace is not normalized. If this flag is specified, source text will be modified. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_open_only

const int rapidxml::parse_open_only = 0x1000

Parse flag to say "Parse only the initial element opening." Useful for XMLstreams used in XMPP.

◆ parse_parse_one

const int rapidxml::parse_parse_one = 0x2000

Parse flag to say "Toss the children of the top node and parse off one element. Useful for parsing off XMPP top-level elements.

◆ parse_pi_nodes

const int rapidxml::parse_pi_nodes = 0x100

Parse flag instructing the parser to create PI nodes. By default, PI nodes are not created. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_trim_whitespace

const int rapidxml::parse_trim_whitespace = 0x400

Parse flag instructing the parser to trim all leading and trailing whitespace of data nodes. By default, whitespace is not trimmed. This flag does not cause the parser to modify source text. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_validate_closing_tags

const int rapidxml::parse_validate_closing_tags = 0x200

Parse flag instructing the parser to validate closing tag names. If not set, name inside closing tag is irrelevant to the parser. By default, closing tags are not validated. Can be combined with other flags by use of | operator.

See xml_document::parse() function.

◆ parse_validate_xmlns

const int rapidxml::parse_validate_xmlns = 0x4000

Parse flag to say "Validate XML namespaces fully." This will generate additional errors, including unbound prefixes and duplicate attributes (with different prefices)

Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml_iterators.hpp File Reference

  • include
  • rapidxml
Classes
rapidxml_iterators.hpp File Reference

This file contains rapidxml iterators. More...

Go to the source code of this file.

Classes

class | rapidxml::node_iterator< Ch >
Iterator of child nodes of xml_node. More...
class | rapidxml::attribute_iterator< Ch >
Iterator of child attributes of xml_node. More...

Detailed Description

This file contains rapidxml iterators.

Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml_print.hpp File Reference

  • include
  • rapidxml
Functions | Variables
rapidxml_print.hpp File Reference

This file contains rapidxml printer implementation. More...

Go to the source code of this file.

Functions

template<class OutIt , class Ch >
OutIt | rapidxml::print (OutIt out, const xml_node< Ch > &node, int flags=0)
template<class Ch >
std::basic_ostream< Ch > & | rapidxml::print (std::basic_ostream< Ch > &out, const xml_node< Ch > &node, int flags=0)
template<class Ch >
std::basic_ostream< Ch > & | rapidxml::operator<< (std::basic_ostream< Ch > &out, const xml_node< Ch > &node)

Variables

const int rapidxml::print_no_indenting = 0x1
Printer flag instructing the printer to suppress indenting of XML. See print() function.

Detailed Description

This file contains rapidxml printer implementation.

Function Documentation

◆ operator<<()

template<class Ch >
std::basic_ostream<Ch>& rapidxml::operator<< | ( | std::basic_ostream< Ch > & | out,
 |  | const xml_node< Ch > & | node
 | ) |  |
inline

Prints formatted XML to given output stream. Uses default printing flags. Use print() function to customize printing process.

Parameters
out | Output stream to print to.
node | Node to be printed.
Returns
Output stream.

◆ print() [1/2]

template<class OutIt , class Ch >
OutIt rapidxml::print | ( | OutIt | out,
 |  | const xml_node< Ch > & | node,
 |  | int | flags = 0
 | ) |  |
inline

Prints XML to given output iterator.

Parameters
out | Output iterator to print to.
node | Node to be printed. Pass xml_document to print entire document.
flags | Flags controlling how XML is printed.
Returns
Output iterator pointing to position immediately after last character of printed text.

◆ print() [2/2]

template<class Ch >
std::basic_ostream<Ch>& rapidxml::print | ( | std::basic_ostream< Ch > & | out,
 |  | const xml_node< Ch > & | node,
 |  | int | flags = 0
 | ) |  |
inline

Prints XML to given output stream.

Parameters
out | Output stream to print to.
node | Node to be printed. Pass xml_document to print entire document.
flags | Flags controlling how XML is printed.
Returns
Output stream.
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml_utils.hpp File Reference

  • include
  • rapidxml
Classes | Functions
rapidxml_utils.hpp File Reference

Go to the source code of this file.

Classes

class rapidxml::file< Ch >
Represents data loaded from a file. More...

Functions

template<class Ch >
std::size_t | rapidxml::count_children (xml_node< Ch > *node)
template<class Ch >
std::size_t | rapidxml::count_attributes (xml_node< Ch > *node)

Detailed Description

This file contains high-level rapidxml utilities that can be useful in certain simple scenarios. They should probably not be used if maximizing performance is the main objective.

Function Documentation

◆ count_attributes()

template<class Ch >
std::size_t rapidxml::count_attributes ( xml_node< Ch > * node )
inline

Counts attributes of node. Time complexity is O(n).

Returns
Number of attributes of node

◆ count_children()

template<class Ch >
std::size_t rapidxml::count_children ( xml_node< Ch > * node )
inline

Counts children of node. Time complexity is O(n).

Returns
Number of children of node
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/tinyexpr Directory Reference

  • include
  • tinyexpr
tinyexpr Directory Reference
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/tinyexpr/minctest.h Source File

  • include
  • tinyexpr
minctest.h
1 /*
2 *
3 * MINCTEST - Minimal C Test Library - 0.1
4 *
5 * Copyright (c) 2014, 2015 Lewis Van Winkle
6 *
7 * http://CodePlea.com
8 *
9 * This software is provided 'as-is', without any express or implied
10 * warranty. In no event will the authors be held liable for any damages
11 * arising from the use of this software.
12 *
13 * Permission is granted to anyone to use this software for any purpose,
14 * including commercial applications, and to alter it and redistribute it
15 * freely, subject to the following restrictions:
16 *
17 * 1. The origin of this software must not be misrepresented; you must not
18 * claim that you wrote the original software. If you use this software
19 * in a product, an acknowledgement in the product documentation would be
20 * appreciated but is not required.
21 * 2. Altered source versions must be plainly marked as such, and must not be
22 * misrepresented as being the original software.
23 * 3. This notice may not be removed or altered from any source distribution.
24 *
25 */
26
27
28
29 /*
30 * MINCTEST - Minimal testing library for C
31 *
32 *
33 * Example:
34 *
35 * void test1() {
36 * lok('a' == 'a');
37 * }
38 *
39 * void test2() {
40 * lequal(5, 6);
41 * lfequal(5.5, 5.6);
42 * }
43 *
44 * int main() {
45 * lrun("test1", test1);
46 * lrun("test2", test2);
47 * lresults();
48 * return lfails != 0;
49 * }
50 *
51 *
52 *
53 * Hints:
54 * All functions/variables start with the letter 'l'.
55 *
56 */
57
58
59 #ifndef __MINCTEST_H__
60 #define __MINCTEST_H__
61
62 #include <stdio.h>
63 #include <math.h>
64 #include <time.h>
65
66
67 /* How far apart can floats be before we consider them unequal. */
68 #define LTEST_FLOAT_TOLERANCE 0.001
69
70
71 /* Track the number of passes, fails. */
72 /* NB this is made for all tests to be in one file. */
73 static int ltests = 0;
74 static int lfails = 0;
75
76
77 /* Display the test results. */
78 #define lresults() do {\
79 if (lfails == 0) {\
80 printf("ALL TESTS PASSED (%d/%d)\n", ltests, ltests);\
81 } else {\
82 printf("SOME TESTS FAILED (%d/%d)\n", ltests-lfails, ltests);\
83 }\
84 } while (0)
85
86
87 /* Run a test. Name can be any string to print out, test is the function name to call. */
88 #define lrun(name, test) do {\
89 const int ts = ltests;\
90 const int fs = lfails;\
91 const clock_t start = clock();\
92 printf("\t%-14s", name);\
93 test();\
94 printf("pass:%2d fail:%2d %4dms\n",\
95 (ltests-ts)-(lfails-fs), lfails-fs,\
96 (int)((clock() - start) * 1000 / CLOCKS_PER_SEC));\
97 } while (0)
98
99
100 /* Assert a true statement. */
101 #define lok(test) do {\
102 ++ltests;\
103 if (!(test)) {\
104 ++lfails;\
105 printf("%s:%d error \n", __FILE__, __LINE__);\
106 }} while (0)
107
108
109 /* Assert two integers are equal. */
110 #define lequal(a, b) do {\
111 ++ltests;\
112 if ((a) != (b)) {\
113 ++lfails;\
114 printf("%s:%d (%d != %d)\n", __FILE__, __LINE__, (a), (b));\
115 }} while (0)
116
117
118 /* Assert two floats are equal (Within LTEST_FLOAT_TOLERANCE). */
119 #define lfequal(a, b) do {\
120 ++ltests;\
121 const double __LF_COMPARE = fabs((double)(a)-(double)(b));\
122 if (__LF_COMPARE > LTEST_FLOAT_TOLERANCE || (__LF_COMPARE != __LF_COMPARE)) {\
123 ++lfails;\
124 printf("%s:%d (%f != %f)\n", __FILE__, __LINE__, (double)(a), (double)(b));\
125 }} while (0)
126
127
128 #endif /*__MINCTEST_H__*/
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/tinyexpr/tinyexpr.h Source File

  • include
  • tinyexpr
tinyexpr.h
1 /*
2 * TINYEXPR - Tiny recursive descent parser and evaluation engine in C
3 *
4 * Copyright (c) 2015-2018 Lewis Van Winkle
5 *
6 * http://CodePlea.com
7 *
8 * This software is provided 'as-is', without any express or implied
9 * warranty. In no event will the authors be held liable for any damages
10 * arising from the use of this software.
11 *
12 * Permission is granted to anyone to use this software for any purpose,
13 * including commercial applications, and to alter it and redistribute it
14 * freely, subject to the following restrictions:
15 *
16 * 1. The origin of this software must not be misrepresented; you must not
17 * claim that you wrote the original software. If you use this software
18 * in a product, an acknowledgement in the product documentation would be
19 * appreciated but is not required.
20 * 2. Altered source versions must be plainly marked as such, and must not be
21 * misrepresented as being the original software.
22 * 3. This notice may not be removed or altered from any source distribution.
23 */
24
25 #ifndef __TINYEXPR_H__
26 #define __TINYEXPR_H__
27
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33
34
35 typedef struct te_expr {
36 int type;
37 union {double value; const double *bound; const void *function;};
38 void *parameters[1];
39 } te_expr;
40
41
42 enum {
43 TE_VARIABLE = 0,
44
45 TE_FUNCTION0 = 8, TE_FUNCTION1, TE_FUNCTION2, TE_FUNCTION3,
46 TE_FUNCTION4, TE_FUNCTION5, TE_FUNCTION6, TE_FUNCTION7,
47
48 TE_CLOSURE0 = 16, TE_CLOSURE1, TE_CLOSURE2, TE_CLOSURE3,
49 TE_CLOSURE4, TE_CLOSURE5, TE_CLOSURE6, TE_CLOSURE7,
50
51 TE_FLAG_PURE = 32
52 };
53
54 typedef struct te_variable {
55 const char *name;
56 const void *address;
57 int type;
58 void *context;
59 } te_variable;
60
61
62
63 /* Parses the input expression, evaluates it, and frees it. */
64 /* Returns NaN on error. */
65 double te_interp(const char *expression, int *error);
66
67 /* Parses the input expression and binds variables. */
68 /* Returns NULL on error. */
69 te_expr *te_compile(const char *expression, const te_variable *variables, int var_count, int *error);
70
71 /* Evaluates the expression. */
72 double te_eval(const te_expr *n);
73
74 /* Prints debugging information on the syntax tree. */
75 void te_print(const te_expr *n);
76
77 /* Frees the expression. */
78 /* This is safe to call on NULL pointers. */
79 void te_free(te_expr *n);
80
81
82 #ifdef __cplusplus
83 }
84 #endif
85
86 #endif /*__TINYEXPR_H__*/
te_variable
Definition: tinyexpr.h:54
te_expr
Definition: tinyexpr.h:35
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/genericbusobject.h Source File

  • include
genericbusobject.h
1 #ifndef GENERIC_BUS_OBJECT_H
2 #define GENERIC_BUS_OBJECT_H
3 #include <string>
4 #include "genericBusInterface.h"
5
6 #include "GenericLoggerInterface.h"
7
8
9 #define GENERICDRIVER_SYM_CREATOR "CreateGenericDriver"
10 #define GENERICDRIVER_SYM_DESTROYER "DestroyGenericDriver"
11 #define GENERICDRIVER_SYM_APIVERSION "GetGenericDriverAPIVersion"
12
13 #define ERROR_INJECTION_NONE -1
14 class ICDHandler;
15 class GPBusConfigDialog;
16
20 class GenericBusObject {
21 private:
22 int _comm_handler;
23 GenericDriver *_d;
24 int _error_injection;
25 GPBusConfigDialog *_configdialog;
26 std::string _filename;
27 IGenericBusEqp *_eq;
28 bool _islogging {false};
29 public:
30
31 explicit GenericBusObject( GenericDriver* d );
32 ~GenericBusObject();
33 bool parseXMLConfig(std::string filename, IGenericBusEqp *eq=0);
34 bool bind(ICDHandler *h);
35 bool start();
36 void stop();
37 int configure();
38 bool isStarted();
39 bool sendMessage(int msg_id, unsigned char *data, size_t sz);
40 unsigned long getClockPeriod();
41
42 int getCommHandler() { return this->_comm_handler; }
43 std::string getVersion();
44
45 bool setErrorInjection(int err);
46 int getErrorInjection() const;
47 std::vector<std::string> getErrorInjectionList();
48
49 long msgSent();
50 long msgReceived();
51 long msgError();
52
53 int logStart(int level, std::string fileName);
54 bool logIsStarted() const;
55 void logStop();
56
57 bool setAsMasterLogTimeTag();
58 };
59
60
65 typedef GenericDriver* on_genericdriver_create_t(void);
70 typedef int on_genericdriver_destroy_t(GenericDriver *);
75 typedef std::string on_genericdriver_apiversion_t(void);
76 #endif
GenericDriver
Bus Interface Class.
Definition: genericBusInterface.h:39
GenericBusObject
The GenericBusObject class: proxy implementation class for GenericDriver.
Definition: genericbusobject.h:20
ICDHandler
The ICDHandler class.
Definition: icdhandler.h:59
genericBusInterface.h
IGenericBusEqp
Interface Class: it defines the methods that shall be implemented by a bus user (Equipment) ...
Definition: GenericBusEqp.h:66
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icd_apiversion.h Source File

  • include
icd_apiversion.h
1 #ifndef ICD_APIVERSION_H
2 #define ICD_APIVERSION_H
3
4 #define ICD_HANDLER_API_VERSION 8
5
6 //aggiorna il .dox
12 #endif // ICD_APIVERSION_H
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdabstractfactory.h File Reference

  • include
Classes
icdabstractfactory.h File Reference

Go to the source code of this file.

Classes

class ICDAbstractFactory
The ICDAbstractFactory class It it used to return a generic oject implementations of the required ICD object. More...

Detailed Description

Define an interface for creating an ICD object, but let subclasses decide which class to instantiate.

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdcontainers.h File Reference

  • include
Classes | Macros
icdcontainers.h File Reference

Go to the source code of this file.

Classes

class | ICDAbstractContainer< T >
class | ICDGenericContainer< T >
class | ICDIndexedContainer< T >

Macros

#define USE_INDEXED_CONTAINER 1

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icddictionary.h Source File

  • include
icddictionary.h
1 #ifndef ICDDICTIONARY_H
2 #define ICDDICTIONARY_H
3
4 #include <map>
5 #include <string>
6 #include <vector>
7
8 class ICDDictionary {
9 public:
10 ICDDictionary();
11 bool set(std::string k,bool v);
12 bool set(std::string k,long v);
13 bool set(std::string k,double v);
14 bool set(std::string k,std::string v);
15 bool set(std::string k,const char *v);
16
17 bool get(std::string k, bool *v);
18 bool get(std::string k, long *v);
19 bool get(std::string k, double *v);
20 bool get(std::string k, std::string *v);
21
22 bool isBoolean(std::string k);
23 bool isLong(std::string k);
24 bool isDouble(std::string k);
25 bool isString(std::string k);
26
27 bool contains(std::string k);
28
29 std::vector<std::string> keys();
30
31 private:
32
33 typedef enum _icd_value_type_ { ICD_T_NONE, ICD_T_BOOL, ICD_T_LONG, ICD_T_DOUBLE, ICD_T_STRING } icd_value_type;
34 struct icd_value {
35 icd_value_type type;
36 long l_value;
37 double d_value;
38 bool b_value;
39 std::string s_value;
40 };
41
42 std::map<std::string, struct icd_value*> _mapper;
43 std::map<std::string, struct icd_value*>::iterator _it;
44 private:
45 struct icd_value *get_bytype(std::string k, enum _icd_value_type_ t );
46 bool insert_bytype(std::string k,void *v, enum _icd_value_type_ t );
47 };
48
49 #endif // ICDDICTIONARY_H
ICDDictionary
Definition: icddictionary.h:8
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdevents.h File Reference

  • include
Macros
icdevents.h File Reference

event management for icdhandler engine More...

Go to the source code of this file.

Macros

#define | ICD_EVENT_ONBUSCLOCK 1001
#define | ICD_EVENT_ONBUSSTART 1002
#define | ICD_EVENT_ONBUSSTOP 1003
#define | ICD_EVENT_ONBUSERRORNONE 1004
#define | ICD_EVENT_ONBUSERRORLOW 1005
#define | ICD_EVENT_ONBUSERRORMEDIUM 1006
#define | ICD_EVENT_ONBUSERRORHIGH 1007
#define | ICD_EVENT_ONBUSERRORINJECTIONSET 1008
#define | ICD_EVENT_ONBUSERRORINJECTIONRESET 1009
#define | ICD_EVENT_ONBUSLOGSTART 1010
#define | ICD_EVENT_ONBUSLOGSTOP 1011
#define | ICD_EVENT_ONBUSCONFIGURED 1099
#define | ICD_EVENT_ONCHANGE 2000
#define | ICD_EVENT_ONSENDMESSAGE 2100
#define | ICD_EVENT_ONSENTMESSAGES 2101
#define | ICD_EVENT_ONCOMMITCHANGES 2200
#define | ICD_EVENT_ONCOMMITTED 2201
#define | ICD_EVENT_ONREVERTCHANGES 2202
#define | ICD_EVENT_ONREVERTED 2203
#define | ICD_EVENT_ONRECEIVEDMESSAGE 2300
#define | ICD_EVENT_ONUPDATE 3000
#define | ICD_EVENT_STATE_REQUEST_RESUME 4000
#define | ICD_EVENT_STATE_REQUEST_STOP 4001
#define | ICD_EVENT_STATE_REQUEST_SUSPEND 4002
#define | ICD_EVENT_PYTHONSTART_REQ 5000
#define | ICD_EVENT_PYTHONSTOP_REQ 5001
#define | ICD_EVENT_INTERFACE_LOCK 7000
#define | ICD_EVENT_REQUEST_FOR_MESSAGE 7002
#define | ICD_EVENT_PLUGIN_UPDATE 8000

Detailed Description

event management for icdhandler engine

Macro Definition Documentation

◆ ICD_EVENT_ONBUSCLOCK

#define ICD_EVENT_ONBUSCLOCK 1001

clock event

◆ ICD_EVENT_ONBUSCONFIGURED

#define ICD_EVENT_ONBUSCONFIGURED 1099

on bus configured

◆ ICD_EVENT_ONBUSERRORHIGH

#define ICD_EVENT_ONBUSERRORHIGH 1007

on bus error [high]

◆ ICD_EVENT_ONBUSERRORINJECTIONRESET

#define ICD_EVENT_ONBUSERRORINJECTIONRESET 1009

or error injection turned off

◆ ICD_EVENT_ONBUSERRORINJECTIONSET

#define ICD_EVENT_ONBUSERRORINJECTIONSET 1008

on error injection turned on

◆ ICD_EVENT_ONBUSERRORLOW

#define ICD_EVENT_ONBUSERRORLOW 1005

on bus error [low]

◆ ICD_EVENT_ONBUSERRORMEDIUM

#define ICD_EVENT_ONBUSERRORMEDIUM 1006

on bus error [medium]

◆ ICD_EVENT_ONBUSLOGSTART

#define ICD_EVENT_ONBUSLOGSTART 1010

on bus log start

◆ ICD_EVENT_ONBUSLOGSTOP

#define ICD_EVENT_ONBUSLOGSTOP 1011

on bus log stop

◆ ICD_EVENT_ONBUSSTART

#define ICD_EVENT_ONBUSSTART 1002

bus start event

◆ ICD_EVENT_ONBUSSTOP

#define ICD_EVENT_ONBUSSTOP 1003

bus stop event

◆ ICD_EVENT_ONCHANGE

#define ICD_EVENT_ONCHANGE 2000

on changes [any field]

◆ ICD_EVENT_ONCOMMITCHANGES

#define ICD_EVENT_ONCOMMITCHANGES 2200

on committing changes

◆ ICD_EVENT_ONCOMMITTED

#define ICD_EVENT_ONCOMMITTED 2201

on changes committed

◆ ICD_EVENT_ONRECEIVEDMESSAGE

#define ICD_EVENT_ONRECEIVEDMESSAGE 2300

on message received

◆ ICD_EVENT_ONREVERTCHANGES

#define ICD_EVENT_ONREVERTCHANGES 2202

on reverting changes

◆ ICD_EVENT_ONREVERTED

#define ICD_EVENT_ONREVERTED 2203

on changes reverted

◆ ICD_EVENT_ONSENDMESSAGE

#define ICD_EVENT_ONSENDMESSAGE 2100

on sending message

◆ ICD_EVENT_ONSENTMESSAGES

#define ICD_EVENT_ONSENTMESSAGES 2101

on message sent

◆ ICD_EVENT_ONUPDATE

#define ICD_EVENT_ONUPDATE 3000

on update (GUI)

Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdhandler.h File Reference

  • include
Classes | Macros
icdhandler.h File Reference

Go to the source code of this file.

Classes

class | ICDMessageContainer
class | ICDHandler
The ICDHandler class. More...

Macros

#define USE_MESSAGE_CONTAINER USE_INDEXED_CONTAINER

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdhandler_global.h File Reference

  • include
Macros
icdhandler_global.h File Reference

Go to the source code of this file.

Macros

#define ICDHANDLERSHARED_EXPORT Q_DECL_IMPORT

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdhandlersmanager.h File Reference

  • include
Classes
icdhandlersmanager.h File Reference

Go to the source code of this file.

Classes

class ICDHandlersManager

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdinitags.h File Reference

  • include
Macros
icdinitags.h File Reference

definitions for ini file ( that define the session ) More...

Go to the source code of this file.

Macros

#define | iniString(grp, key) grp "/" key
#define | _INI_MAX_OPTIONAL_PLUGIN 99
#define | _INI_PROP "INI"
#define | _INI_GLOBALS_GROUP "Globals"
#define | _INI_INTERFACE_GROUP "Interface"
#define | _INI_OPTIONAL_TOOLS_GROUP "Tools"
#define | _INI_ICON_KEY "Icon"
#define | _INI_GEOMETRY_KEY "Geometry"
#define | _INI_FONT_KEY "Font"
#define | _INI_INTERFACES_SIZE "InterfaceSize"
#define | _INI_LEGACY_NAME_KEY "LegacyName"
#define | _INI_LEGACY_VERSION_KEY "LegacyVersion"
#define | _INI_LOG_TIMETAG_INTERFACE "LogTimeTagInterface"
#define | _INI_INITIALSCRIPT_KEY "IniScript"
#define | _INI_ICDXML_KEY "ConfigFile"
#define | _INI_BUSDRIVER_KEY "BusDriver"
#define | _INI_ICDPLUGIN_KEY "Plugin"
#define | _INI_ICDUI_KEY "UiFile"
#define | _INI_STYLESHEET_KEY "StyleSheet"
#define | _INI_COMMIT_ON_THE_FLY "CommitOnTheFly"
#define | _INI_HIDE_CTRL_WIDGETS "HideControlWidget"
#define | _INI_LAST_LOG_DIR_KEY "CurrentLogPath"

Detailed Description

definitions for ini file ( that define the session )

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a

Macro Definition Documentation

◆ _INI_BUSDRIVER_KEY

#define _INI_BUSDRIVER_KEY "BusDriver"

key that specifies the path to the bus driver file used (interface) [required]

◆ _INI_COMMIT_ON_THE_FLY

#define _INI_COMMIT_ON_THE_FLY "CommitOnTheFly"

key that set the Commit On The Fly feature {0=off;1=on} ( default off ) [optional]

◆ _INI_FONT_KEY

#define _INI_FONT_KEY "Font"

last font used (Globals) [auto]

◆ _INI_GEOMETRY_KEY

#define _INI_GEOMETRY_KEY "Geometry"

last geometry used (Globals) [auto]

◆ _INI_GLOBALS_GROUP

#define _INI_GLOBALS_GROUP "Globals"

Globals group

◆ _INI_HIDE_CTRL_WIDGETS

#define _INI_HIDE_CTRL_WIDGETS "HideControlWidget"

key that hide interface toolbar and bottombars {0=off;1=on} ( default off ) [optional]

◆ _INI_ICDPLUGIN_KEY

#define _INI_ICDPLUGIN_KEY "Plugin"

key that specifies the path to the plugin file applied to interface only (interface) [optional]

◆ _INI_ICDUI_KEY

#define _INI_ICDUI_KEY "UiFile"

key that specifies the layout file [required]

◆ _INI_ICDXML_KEY

#define _INI_ICDXML_KEY "ConfigFile"

key that specifies the path to the icd xml file (interface) [required]

◆ _INI_ICON_KEY

#define _INI_ICON_KEY "Icon"

Icon used for session gui (Globals)

◆ _INI_INITIALSCRIPT_KEY

#define _INI_INITIALSCRIPT_KEY "IniScript"

key that specifies the initial script to be executed once the paltform simulator raise up (Globals/Interface) [optional]

◆ _INI_INTERFACE_GROUP

#define _INI_INTERFACE_GROUP "Interface"

Interface group (manage the interface)

◆ _INI_INTERFACES_SIZE

#define _INI_INTERFACES_SIZE "InterfaceSize"

key number of used interfaces (Globals)

◆ _INI_LAST_LOG_DIR_KEY

#define _INI_LAST_LOG_DIR_KEY "CurrentLogPath"

key that specifies tha last directory used to store bus log files (interface) [auto]

◆ _INI_LEGACY_NAME_KEY

#define _INI_LEGACY_NAME_KEY "LegacyName"

key name for legacy (Globals)

◆ _INI_LEGACY_VERSION_KEY

#define _INI_LEGACY_VERSION_KEY "LegacyVersion"

key version for legacy (Globals)

◆ _INI_LOG_TIMETAG_INTERFACE

#define _INI_LOG_TIMETAG_INTERFACE "LogTimeTagInterface"

key used to indicate what interface-id shall drive the log-time-tag function

◆ _INI_MAX_OPTIONAL_PLUGIN

#define _INI_MAX_OPTIONAL_PLUGIN 99

Maximum number of handled optional plugins

◆ _INI_OPTIONAL_TOOLS_GROUP

#define _INI_OPTIONAL_TOOLS_GROUP "Tools"

Tools group (optional plugins)

◆ _INI_PROP

#define _INI_PROP "INI"

Qt Property for plugin (useful for developers)

◆ _INI_STYLESHEET_KEY

#define _INI_STYLESHEET_KEY "StyleSheet"

key that specifies the path to the css like file [optional]

Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdmessage.h File Reference

  • include
Classes | Macros
icdmessage.h File Reference

Go to the source code of this file.

Classes

class ICDMessage
The ICDMessage class. More...

Macros

#define USE_INDEXED_MESSAGEFIELD_CONTAINER USE_INDEXED_CONTAINER

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdmessagefield.h File Reference

  • include
Classes | Macros | Typedefs | Enumerations
icdmessagefield.h File Reference

Go to the source code of this file.

Classes

class | ICDGenericMessageField
The ICDGenericMessageField class. More...
class | ICDEnumMessageField
The ICDEnumMessageField class. More...
class | ICDBooleanMessageField
The ICDBooleanMessageField class. More...
class | ICDStringMessageField
class | ICDNumericMessageField< T >

Macros

#define | ICD_VIRTUAL_FIELD_SZ 0
#define | ICD_STRING_FALSE "false"
#define | ICD_STRING_TRUE "true"
#define | ICD_VALUE_FALSE 0
#define | ICD_VALUE_TRUE 1
#define | ICD_ENUM_UNKNOWN "<unknown>"
#define | BOUND_MIN(is_signed, lsb, len, offset) ( is_signed ) ? (( lsb * -1 * powl(2,(len -1 )) ) + offset) : offset
#define | BOUND_MAX(is_signed, lsb, len, offset) ( is_signed ) ? (( lsb * (powl(2,(len -1)) -1 ) ) + offset) : (( lsb * (powl(2,len) -1) ) + offset)

Typedefs

typedef enum _ICD__data_type_ | ICD__data_type
The ICD__data_type enum.
typedef enum _ICD__digit_display_base_ | ICD__digit_display_base
typedef std::map< std::string, unsigned int > | ICDEnumMap
typedef std::vector< std::string > | ICDStringList

Enumerations

enum _ICD__data_type_ {
ICD_DATATYPE__UNKNOWN = 501, ICD_DATATYPE__BOOL, ICD_DATATYPE__SHORT, ICD_DATATYPE__USHORT,
ICD_DATATYPE__INT, ICD_DATATYPE__UINT, ICD_DATATYPE__LONG, ICD_DATATYPE__ULONG,
ICD_DATATYPE__LONG_LONG, ICD_DATATYPE__ULONG_LONG, ICD_DATATYPE__FLOAT, ICD_DATATYPE__DOUBLE,
ICD_DATATYPE__STRING
}
The ICD__data_type enum.
enum _ICD__digit_display_base_ { ICD_DIGITDISPLAY__AS_DEFAULT = 4000, ICD_DIGITDISPLAY__AS_DEC, ICD_DIGITDISPLAY__AS_HEX, ICD_DIGITDISPLAY__AS_BIN }

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdnameditem.h Source File

  • include
icdnameditem.h
1 #include <iostream>
2 #include <string>
3
4 class ICDNamedItem {
5 public:
6 explicit ICDNamedItem(const std::string &n);
7 void setName(const std::string &n);
8 std::string getName() const;
9 std::string getUiIdentifierName() const;
10 protected:
11 std::string _name;
12 std::string _ui_id;
13 public:
14 static std::string s_toUiString(std::string in);
15 };
ICDNamedItem::s_toUiString
static std::string s_toUiString(std::string in)
ICDNamedItem::s_toUiString return a string where punct characters are converted to _...
Definition: icdnameditem.cpp:48
ICDNamedItem::ICDNamedItem
ICDNamedItem(const std::string &n)
ICDNamedItem::ICDNamedItem.
Definition: icdnameditem.cpp:16
ICDNamedItem::getUiIdentifierName
std::string getUiIdentifierName() const
ICDNamedItem::getUiIdentifierName.
Definition: icdnameditem.cpp:39
ICDNamedItem
Definition: icdnameditem.h:4
ICDNamedItem::setName
void setName(const std::string &n)
ICDNamedItem::setName.
Definition: icdnameditem.cpp:24
ICDNamedItem::getName
std::string getName() const
ICDNamedItem::getName.
Definition: icdnameditem.cpp:31
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdrapresentation.h File Reference

  • include
Typedefs | Enumerations
icdrapresentation.h File Reference

Go to the source code of this file.

Typedefs

typedef enum ICD__ui_display ICD__ui_display

Enumerations

enum ICD__ui_display {
ICD_UIDISPLAY__AS_DEFAULT = 8000, ICD_UIDISPLAY__AS_SPINBOX, ICD_UIDISPLAY__AS_ENTRY, ICD_UIDISPLAY__AS_LISTBOX,
ICD_UIDISPLAY__AS_MENU, ICD_UIDISPLAY__AS_RADIO, ICD_UIDISPLAY__AS_CHECK, ICD_UIDISPLAY__AS_SLIDEBAR,
ICD_UIDISPLAY__AS_PROGRESSBAR, ICD_UIDISPLAY__AS_KNOB, ICD_UIDISPLAY__AS_TEXTAREA, ICD_UIDISPLAY__AS_BUTTON,
ICD_UIDISPLAY__AS_ALL_TAB, ICD_UIDISPLAY__AS_ALL_FRAME_VERTICAL, ICD_UIDISPLAY__AS_ALL_FRAME_HORIZONTAL, ICD_UIDISPLAY__AS_IOTYPE_H_FRAME_TAB,
ICD_UIDISPLAY__HIDDEN
}
enum ICDUiMask {
MASK_UNKNOWN =0, MASK_LABEL =1, MASK_ENTRY =2, MASK_SPINBOXI =4,
MASK_SPINBOXD =8, MASK_KNOB =16, MASK_SLIDER =32, MASK_COMBOBOX =64,
MASK_LISTBOX =128, MASK_CHECKBTNS =256, MASK_RADIOBTNS =512, MASK_PROGRESSBAR =1024,
MASK_TEXTAREA =2048, MASK_BUTTON =4096
}

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdrawstream.h File Reference

  • include
Classes | Typedefs | Enumerations | Functions
icdrawstream.h File Reference

Go to the source code of this file.

Classes

struct | ICDRawData
class | ICDAbstractRaw
class | ICDRawMessage
class | ICDRawMessageField

Typedefs

typedef unsigned char | ICDByte
typedef unsigned long long | UnsignedICD
typedef signed long long | SignedICD
typedef enum enum_icd_raw_data_error | ICDRawDataError

Enumerations

enum enum_icd_raw_data_error {
ICD_NO_ERROR = 0, ICD_ERROR_OVERFLOW, ICD_ERROR_CODING, ICD_ERROR_UNKNOWN,
ICD_ERROR_WRONG_SIZE
}

Functions

template<typename T >
T swapNumber (T in, size_t pos=sizeof(T))

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdtranscoder.h Source File

  • include
icdtranscoder.h
1 #ifndef ICDTRANSCODER_H
2 #define ICDTRANSCODER_H
3 #include <string>
4 #include <typeinfo>
5 #include "icdrawstream.h"
6
7 class ICDGenericMessageField;
8 class te_variable;
9
10 template <class T>
11 class ICDGenericTranscoder
12 {
13 protected:
14 std::string _name;
15 public:
16
17 ICDGenericTranscoder(std::string n):_name(n) {}
18 virtual ~ICDGenericTranscoder() {}
19 inline std::string getName() { return this->_name; }
20
21 virtual bool encode(T,UnsignedICD*) = 0;
22 virtual bool decode(UnsignedICD,T*) = 0;
23 virtual bool decode(SignedICD,T*) = 0;
24 };
25
29 template <class T>
30 class ICDDefaultTranscoder: public ICDGenericTranscoder<T> {
31 T _lsb;
32 T _offset_val;
33 T _tol;
34 public:
35 ICDDefaultTranscoder(T lsb, T offset=0, const std::string &n="Default");
36 bool encode(T val, UnsignedICD *u);
37 bool decode(UnsignedICD u, T *val);
38 bool decode(SignedICD s, T *val);
39 };
40
44 template <class T>
45 class ICDCodeSignedTranscoder: public ICDGenericTranscoder<T>
46 {
47 unsigned _lenModule;
48 unsigned _maxLenModule;
49 public:
50 ICDCodeSignedTranscoder(unsigned lenModule, const std::string &n="CodeSigned");
51 bool encode(T val, UnsignedICD *u);
52 bool decode(UnsignedICD u, T *val);
53 bool decode(SignedICD s, T *val);
54 };
55
56 template <class T>
57 class ICDStringExprTranscoder: public ICDGenericTranscoder<T>
58 {
59 double _lsb, _offset_val, _min, _max, _raw;
60 std::string _expression;
61 te_variable *_vars;
62 int _err;
63 public:
64 ICDStringExprTranscoder(double lsb, double offset, double min, double max, const std::string &expr, const std::string &n="String Expression");
65 ~ICDStringExprTranscoder();
66 bool encode(T val, UnsignedICD *u);
67 bool decode(UnsignedICD u, T *val);
68 bool decode(SignedICD s, T *val);
69 };
70
74 template <class T>
75 class ICDBCDTranscoder: public ICDGenericTranscoder<T>
76 {
77 unsigned _numDecimal;
78 public:
79 ICDBCDTranscoder(unsigned numDecimal=0, const std::string &n="BCD");
80 bool encode(T val, UnsignedICD *u);
81 bool decode(UnsignedICD u, T *val);
82 bool decode(SignedICD, T *);
83 };
84
88 template <class T>
89 class ICDRealFloatingPointTranscoder: public ICDGenericTranscoder<T>
90 {
91 T _lsb;
92 T _offset_val;
93 public:
94 ICDRealFloatingPointTranscoder(T lsb, T offset=0, const std::string &n="RealFloatingPoint");
95 bool encode(T val, UnsignedICD *u);
96 bool decode(UnsignedICD u, T *val);
97 bool decode(SignedICD s, T *val);
98 };
99
103 template <class T>
104 class ICDSwapTranscoder: public ICDDefaultTranscoder<T>
105 {
106 size_t _qty,_blk;
107 bool _ok;
108 private:
109 template <class K>
110 K swap(K in, size_t blk=1, size_t numofbytes=sizeof(K));
111 public:
112 ICDSwapTranscoder(T lsb, T offset=0, size_t qty=sizeof(T), size_t blk=1, const std::string &n="SwapTranscoder");
113 bool encode(T val, UnsignedICD *u);
114 bool decode(UnsignedICD u, T *val);
115 bool decode(SignedICD s, T *val);
116 };
117
121 class ICDStringTranscoder
122 {
123 private:
124 std::string _name;
125 public:
126 ICDStringTranscoder(const std::string &n="StringTranscoder"):_name(n){}
127 virtual ~ICDStringTranscoder() {}
128 inline std::string getName() { return this->_name; }
129 virtual bool encode(std::string, std::string *) = 0;
130 virtual bool decode(std::string, std::string *) = 0;
131 };
132
133 class ICDDefaultStringTranscoder: public ICDStringTranscoder
134 {
135 public:
136 ICDDefaultStringTranscoder(const std::string &n="DeafultStringTranscoder");
137 ~ICDDefaultStringTranscoder() {}
138 bool encode(std::string, std::string *);
139 bool decode(std::string, std::string *);
140 };
141
148 #include <iostream>
149 class ICDCodingMessageField {
150 public:
151 virtual bool setEncodingFrom(ICDGenericTranscoder<unsigned short> *) { return false; }
152 virtual bool setEncodingFrom(ICDGenericTranscoder<short> *) { return false; }
153 virtual bool setEncodingFrom(ICDGenericTranscoder<unsigned int> *) { return false; }
154 virtual bool setEncodingFrom(ICDGenericTranscoder<int> *) { return false; }
155 virtual bool setEncodingFrom(ICDGenericTranscoder<unsigned long> *) { return false; }
156 virtual bool setEncodingFrom(ICDGenericTranscoder<long> *) { return false; }
157 virtual bool setEncodingFrom(ICDGenericTranscoder<unsigned long long> *) { return false; }
158 virtual bool setEncodingFrom(ICDGenericTranscoder<long long> *) { return false; }
159 virtual bool setEncodingFrom(ICDGenericTranscoder<float> *) { return false; }
160 virtual bool setEncodingFrom(ICDGenericTranscoder<double> *) { return false; }
161 virtual bool setEncodingFrom(ICDStringTranscoder *) { return false; }
162 };
163
164 #include "icdtranscoder.inl"
165 #endif // ICDTRANSCODER_H
166
167
te_variable
Definition: tinyexpr.h:54
icdrawstream.h
ICDBCDTranscoder
The ICDBCDTranscoder class : implements a BCD transcoder based on standard ( nibbles with range 0-9 )...
Definition: icdtranscoder.h:75
ICDGenericTranscoder
Definition: icdtranscoder.h:11
ICDCodingMessageField
The ICDCodingMessageField class.
Definition: icdtranscoder.h:149
ICDSwapTranscoder
The ICDSwapTranscoder class : implements a full swap transcoder ( first byte is the most significativ...
Definition: icdtranscoder.h:104
ICDRealFloatingPointTranscoder
The ICDRealFloatingPointTranscoder class : implements a real floating transcoder. ...
Definition: icdtranscoder.h:89
ICDStringTranscoder
The ICDStringTranscoder class.
Definition: icdtranscoder.h:121
ICDGenericMessageField
The ICDGenericMessageField class.
Definition: icdmessagefield.h:76
ICDDefaultTranscoder
The ICDDefaultTranscoder class: used for numerical fields.
Definition: icdtranscoder.h:30
ICDDefaultStringTranscoder
Definition: icdtranscoder.h:133
ICDCodeSignedTranscoder
The ICDCodeSignedTranscoder class : implements a sign/value transcoder.
Definition: icdtranscoder.h:45
ICDStringExprTranscoder
Definition: icdtranscoder.h:57
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icduibusobject.h Source File

  • include
icduibusobject.h
1 #ifndef ICDUIBUSOBJECT_H
2 #define ICDUIBUSOBJECT_H
3
4 #include "icduiobjects.h"
5
6 class GenericBusObject;
7 class ICDHandler;
8 class ICDMessage;
12 class ICDUiBusObject : public ICDUiObject {
13 GenericBusObject *_bus_object;
14 ICDHandler *_handler;
15
16 public:
17 ICDUiBusObject(GenericBusObject *b, ICDHandler *h);
18 ~ICDUiBusObject();
19 bool consumeICDEvent(unsigned int req_id,unsigned long event_number);
20
21 };
22
23 #endif // ICDUIBUSOBJECT_H
GenericBusObject
The GenericBusObject class: proxy implementation class for GenericDriver.
Definition: genericbusobject.h:20
ICDHandler
The ICDHandler class.
Definition: icdhandler.h:59
ICDMessage
The ICDMessage class.
Definition: icdmessage.h:24
ICDUiBusObject
The ICDUiBusObject class.
Definition: icduibusobject.h:12
ICDUiObject
Definition: icduiobjects.h:25
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icduiobjects.h Source File

  • include
icduiobjects.h
1 #ifndef ICDUIOBJECTS_H
2 #define ICDUIOBJECTS_H
3
4 #include "icdrapresentation.h"
5 #include "icdnameditem.h"
6 #include "icdevents.h"
7
8
9 //---------------------------------------------------------------//
10
11 class ICDUiAbstractObject: public ICDUiEventConsumer
12 {
13 public:
14 ICDUiAbstractObject();
15 virtual bool consumeICDEvent(unsigned int req_id, unsigned long event_number);
16 virtual void raiseICDEvent(unsigned int req_id);
17 std::string getAbstractObjectName();
18 virtual bool setPreferredUiRapresentation(std::string);
19 virtual ICD__ui_display getPreferredUiRapresentation();
20 protected:
21 std::string _abstract_obj_name;
22 ICD__ui_display _preferred_ui_display;
23 };
24
25 class ICDUiObject: public ICDUiAbstractObject
26 {
27 public:
28 ICDUiObject();
29 virtual bool connectUi() {return false;}
30 protected:
31 ICDUiAbstractObject *_parent;
32
33 public:
34 void setParentItem(ICDUiAbstractObject *p);
35 ICDUiAbstractObject *getParentItem();
36 };
37
38
39 class ICDUiAbstractItem: public ICDUiObject, public ICDUiEventProducer {
40 public:
41 ICDUiAbstractItem();
42 protected:
43 ICDGenericContainer<ICDUiObject> ui_objects;
44
45 public:
46 virtual void sendICDEvent(unsigned int req_id);
47 virtual std::string getDefaultUi();
48
49
50 void registerUiObject(ICDUiObject *item);
51 void unregisterUiObject(ICDUiObject *item);
52 inline size_t getUiObjectsSize() { return ui_objects.size(); }
53 ICDUiObject *getUiObject(size_t index);
54
55 protected:
56
57 virtual bool consumeICDEvent(unsigned int req_id, unsigned long event_number);
58 virtual void raiseICDEvent(unsigned int req_id);
59 };
60
61
62
63 class ICDUiGenericMessageField: public ICDUiAbstractItem {
64 public:
65 ICDUiGenericMessageField(bool);
66
67 inline unsigned short getUiMask() { return this->_ui_mask; }
68
69 public:
70 virtual bool consumeICDEvent(unsigned int req_id,unsigned long event_number);
71 void sendICDEvent(unsigned int req_id);
72
73 public:
74 bool setReservationTo(ICDUiObject*);
75 bool releaseReservationTo(ICDUiObject*);
76 bool isReserved();
77 bool isReadOnly();
78 bool hasPendingChanges();
79 void flushPendingChanges();
80 private:
81 inline void setReadOnly(bool b) { this->_readonly=b; }
82
83 protected:
84 bool _readonly;
85 ICDUiObject *_obj_reserved;
86 unsigned short _ui_mask;
87 bool _incoming_changes;
88
89 friend class ICDUiMessage;
90 friend class ICDHandler;
91 };
92
93 class ICDUiMessage: public ICDUiAbstractItem {
94 protected:
95 bool _readonly;
96
97 public:
98 ICDUiMessage(bool readonly);
99 inline bool isReadOnly() { return this->_readonly; }
100
101 virtual bool consumeICDEvent(unsigned int req_id,unsigned long event_number);
102 void sendICDEvent(unsigned int req_id);
103
104 static unsigned short getUiMask();
105 };
106
107 class ICDUiHandler: public ICDUiAbstractItem, public ICDUiEventDispatcher {
108 public:
109 ICDUiHandler();
110 static unsigned short getUiMask();
111 void processICDEvent(unsigned int );
112 protected:
113 virtual void raiseICDEvent(unsigned int req_id);
114 };
115
116 #endif // ICDUIOBJECTS_H
ICDUiHandler::raiseICDEvent
virtual void raiseICDEvent(unsigned int req_id)
ICDUiEventDispatcher::raiseICDEvent.
Definition: icduiobjects.cpp:326
icdevents.h
event management for icdhandler engine
ICDUiAbstractItem::consumeICDEvent
virtual bool consumeICDEvent(unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent.
Definition: icduiobjects.cpp:147
ICDUiHandler
Definition: icduiobjects.h:107
ICDUiGenericMessageField::ICDUiGenericMessageField
ICDUiGenericMessageField(bool)
ICDUiGenericMessageField::ICDUiGenericMessageField.
Definition: icduiobjects.cpp:213
ICDUiGenericMessageField
Definition: icduiobjects.h:63
ICDUiMessage::ICDUiMessage
ICDUiMessage(bool readonly)
ICDUiMessage::ICDUiMessage.
Definition: icduiobjects.cpp:298
ICDUiAbstractItem::raiseICDEvent
virtual void raiseICDEvent(unsigned int req_id)
ICDUiAbstractItem::raiseICDEvent.
Definition: icduiobjects.cpp:118
ICDHandler
The ICDHandler class.
Definition: icdhandler.h:59
ICDUiAbstractItem::getDefaultUi
virtual std::string getDefaultUi()
ICDUiAbstractItem::getDefaultUi.
Definition: icduiobjects.cpp:128
ICDUiMessage::sendICDEvent
void sendICDEvent(unsigned int req_id)
ICDUiAbstractItem::sendICDEvent.
Definition: icduiobjects.cpp:303
ICDUiAbstractObject::getPreferredUiRapresentation
virtual ICD__ui_display getPreferredUiRapresentation()
ICDUiAbstractObject::getPreferredUiRapresentation.
Definition: icduiobjects.cpp:84
ICDUiAbstractObject
Definition: icduiobjects.h:11
icdrapresentation.h
ICDUiAbstractItem::unregisterUiObject
void unregisterUiObject(ICDUiObject *item)
ICDUiAbstractItem::unregisterUiObject.
Definition: icduiobjects.cpp:193
ICDGenericContainer< ICDUiObject >
ICDUiObject::getParentItem
ICDUiAbstractObject * getParentItem()
ICDUiObject::getParentItem.
Definition: icduiobjects.cpp:68
ICDUiAbstractObject::setPreferredUiRapresentation
virtual bool setPreferredUiRapresentation(std::string)
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one ) ...
Definition: icduiobjects.cpp:77
ICDUiAbstractItem
Definition: icduiobjects.h:39
ICDUiAbstractItem::sendICDEvent
virtual void sendICDEvent(unsigned int req_id)
ICDUiAbstractItem::sendICDEvent.
Definition: icduiobjects.cpp:138
ICDUiMessage
Definition: icduiobjects.h:93
ICDUiGenericMessageField::releaseReservationTo
bool releaseReservationTo(ICDUiObject *)
ICDUiGenericMessageField::releaseReservationTo release reservation taken from obj.
Definition: icduiobjects.cpp:275
ICDUiGenericMessageField::sendICDEvent
void sendICDEvent(unsigned int req_id)
ICDUiGenericMessageField::sendICDEvent.
Definition: icduiobjects.cpp:223
ICDUiGenericMessageField::setReservationTo
bool setReservationTo(ICDUiObject *)
ICDUiGenericMessageField::setReservationTo set field handling reservation to the object passed by arg...
Definition: icduiobjects.cpp:258
ICDUiGenericMessageField::consumeICDEvent
virtual bool consumeICDEvent(unsigned int req_id, unsigned long event_number)
ICDUiAbstractItem::consumeICDEvent.
Definition: icduiobjects.cpp:239
ICDUiObject
Definition: icduiobjects.h:25
ICDUiObject::ICDUiObject
ICDUiObject()
ICDUiObject::ICDUiObject.
Definition: icduiobjects.cpp:93
ICDUiMessage::consumeICDEvent
virtual bool consumeICDEvent(unsigned int req_id, unsigned long event_number)
ICDUiMessage::consumeICDEvent.
Definition: icduiobjects.cpp:310
ICDUiAbstractItem::getUiObject
ICDUiObject * getUiObject(size_t index)
ICDUiAbstractItem::getUiObject.
Definition: icduiobjects.cpp:203
ICDUiAbstractItem::registerUiObject
void registerUiObject(ICDUiObject *item)
ICDUiAbstractItem::registerUiObject used to store object that will be notified for all ICD events...
Definition: icduiobjects.cpp:185
ICDUiObject::setParentItem
void setParentItem(ICDUiAbstractObject *p)
ICDUiObject::setParentItem.
Definition: icduiobjects.cpp:106
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdutils.h Source File

  • include
icdutils.h
1 #ifndef XMLPARSER_H
2 #define XMLPARSER_H
3 #include <string>
4 #include <iostream>
5 #include <sstream>
6 #include <fstream>
7 #include "rapidxml/rapidxml_print.hpp"
8 #include "rapidxml/rapidxml.hpp"
9
10 #ifdef WIN32
11 #include <direct.h>
12 #endif
13 #include <sys/stat.h>
14
15 using namespace rapidxml;
16 namespace ICDUtils {
17
18 class XMLParser
19 {
20 protected:
21 xml_document<char> *_doc;
22 std::string _doc_text;
23 std::string _error;
24 std::string _filename;
25 private:
26 bool saveToFile(const std::string &filename);
27 public:
28 XMLParser();
29 bool parse(const std::string &filename);
30 bool fromstring(const std::string &xml);
31 bool save();
32 bool saveAs(const std::string &filename);
33 inline std::string getXMLFilename() { return _filename; }
34 inline std::string getErrorString() { return _error; }
35 inline xml_document<char> *getXMLDoc() { return _doc; }
36 };
37
38 bool dirExists(std::string path);
39 std::string dirName(std::string path);
40 bool mkdir(std::string path);
41
42
43 }
44 #endif // XMLPARSER_H
rapidxml.hpp
This file contains rapidxml parser and DOM implementation.
ICDUtils
Definition: icdutils.h:16
ICDUtils::XMLParser
Definition: icdutils.h:18
rapidxml_print.hpp
This file contains rapidxml printer implementation.
rapidxml::xml_document< char >
rapidxml
Definition: rapidxml.hpp:59
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdversion.h Source File

  • include
icdversion.h
1 #ifndef ICD_HANDLER_VERSION_H
2 #define ICD_HANDLER_VERSION_H
3
4 #include "icd_apiversion.h"
5
6
7 #define STR_HELPER(x) #x
8 #define STR(x) STR_HELPER(x)
9
10 #define ICD_HANDLER_VER_ORGANIZATION "LeonardoCompany"
11 #define ICD_HANDLER_VER_APPLICATION_NAME "ICDHandler"
12
13 #define ICD_HANDLER_VER_MAJOR ICD_HANDLER_API_VERSION
14 #define ICD_HANDLER_VER_MINOR 4
15 #define ICD_HANDLER_VER_REVISION 0
16 #define ICD_HANDLER_VER_BUILD 4
17
18
19 #define ICD_HANDLER_VER_FILEVERSION ICD_HANDLER_VER_MAJOR,ICD_HANDLER_VER_MINOR,ICD_HANDLER_VER_REVISION,ICD_HANDLER_VER_BUILD
20 #define ICD_HANDLER_VER_FILEVERSION_STR STR(ICD_HANDLER_VER_MAJOR) "." STR(ICD_HANDLER_VER_MINOR) "." STR(ICD_HANDLER_VER_REVISION) "." STR(ICD_HANDLER_VER_BUILD) "\0"
21
22 #define ICD_HANDLER_VER_PRODUCTVERSION ICD_HANDLER_VER_MAJOR,ICD_HANDLER_VER_MINOR,ICD_HANDLER_VER_REVISION,ICD_HANDLER_VER_BUILD
23 #define ICD_HANDLER_VER_PRODUCTVERSION_STR STR(ICD_HANDLER_VER_MAJOR) "." STR(ICD_HANDLER_VER_MINOR) "\0"
24
25 #define ICD_HANDLER_VER_COMPANYNAME_STR ICD_HANDLER_VER_ORGANIZATION
26 #define ICD_HANDLER_VER_FILEDESCRIPTION_STR ICD_HANDLER_VER_APPLICATION_NAME
27 #define ICD_HANDLER_VER_INTERNALNAME_STR ICD_HANDLER_VER_APPLICATION_NAME
28 #define ICD_HANDLER_VER_LEGALCOPYRIGHT_STR "Copyright (c) 2020 " ICD_HANDLER_VER_COMPANYNAME_STR
29 #define ICD_HANDLER_VER_LEGALTRADEMARKS1_STR "All Rights Reserved"
30 #define ICD_HANDLER_VER_LEGALTRADEMARKS2_STR ICD_HANDLER_VER_LEGALTRADEMARKS1_STR
31 #define ICD_HANDLER_VER_ORIGINALFILENAME_STR ICD_HANDLER_VER_APPLICATION_NAME
32 #define ICD_HANDLER_VER_PRODUCTNAME_STR ICD_HANDLER_VER_APPLICATION_NAME
33
34 #define ICD_HANDLER_VER_COMPANYDOMAIN_STR ""
35
36
37
38
39 #endif // VERSION_H
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdxmltags.h File Reference

  • include
Macros
icdxmltags.h File Reference

xml strings definitions for icd parsing More...

Go to the source code of this file.

Macros

#define | STR__ROOT_NODE_NAME "icdhandler"
#define | STR__NODE_UI_LEVEL "hilevel"
#define | STR__NODE_LOW_LEVEL "lowlevel"
#define | STR__NODE_MAPPING "mapping"
#define | STR__NODE_MESSAGE "message"
#define | STR__NODE_FIELD "field"
#define | STR__NODE_VALUES "values"
#define | STR__NODE_VALUE "value"
#define | STR__ATTR_NAME "name"
#define | STR__ATTR_WIDTH "width"
#define | STR__ATTR_UI "ui"
#define | STR__ATTR_ENDIANESS "endianness"
#define | STR__ATTR_STREAMFORMAT "streamformat"
#define | STR__ATTR_VERSION "version"
#define | STR__ATTR_ID "id"
#define | STR__ATTR_IOTYPE "iotype"
#define | STR__ATTR_US_PERIOD "usecperiodtime"
#define | STR__ATTR_PRIORITY "priority"
#define | STR__ATTR_VIRTUAL "virtual"
#define | STR__ATTR_OFFSET "offset"
#define | STR__ATTR_MIN "min"
#define | STR__ATTR_MAX "max"
#define | STR__ATTR_WEIGHT "weight"
#define | STR__ATTR_TYPE "type"
#define | STR__ATTR_UNIT "unit"
#define | STR__ATTR_DEFAULT "default"
#define | STR__ATTR_OFFSETVAL "offsetvalue"
#define | STR__ATTR_ENCODING "encoding"
#define | STR__ATTR_DIGIT "display"
#define | STR__ATTR_RESOLUTION "resolution"
#define | STR__ATTR_RESERVED "reserved"
#define | STR__HANDLER_UI_DISPLAY_AS_TAB "all_tab"
#define | STR__HANDLER_UI_DISPLAY_AS_V_FRAME "all_vertical"
#define | STR__HANDLER_UI_DISPLAY_AS_H_FRAME "all_horizontal"
#define | STR__HANDLER_UI_DISPLAY_AS_IO_GRP "by_iotype"
#define | STR__HANDLER_STREAMFORMAT_BYTE "byte"
#define | STR__HANDLER_STREAMFORMAT_WORD "word"
#define | STR__HANDLER_STREAMFORMAT_DWORD "dword"
#define | STR__HANDLER_ENDIANNESS_LITTLE "littleendian"
#define | STR__HANDLER_ENDIANNESS_BIG "bigendian"
#define | STR__MESSAGE_IOTYPE_TX "tx"
#define | STR__MESSAGE_IOTYPE_RX "rx"
#define | STR__FIELD_TYPE_SPARE "spare"
#define | STR__FIELD_TYPE_ENUM "enum"
#define | STR__FIELD_TYPE_BOOLEAN "boolean"
#define | STR__FIELD_TYPE_STRING "string"
#define | STR__FIELD_TYPE_INT "int"
#define | STR__FIELD_TYPE_UINT "uint"
#define | STR__FIELD_TYPE_SHORT "short"
#define | STR__FIELD_TYPE_USHORT "ushort"
#define | STR__FIELD_TYPE_LONG "long"
#define | STR__FIELD_TYPE_ULONG "ulong"
#define | STR__FIELD_TYPE_LONG_LONG "long64"
#define | STR__FIELD_TYPE_ULONG_LONG "ulong64"
#define | STR__FIELD_TYPE_DOUBLE "double"
#define | STR__FIELD_TYPE_FLOAT "float"
#define | STR__FIELD_DIGIT_AS_DEC "decimal"
#define | STR__FIELD_DIGIT_AS_HEX "hexadecimal"
#define | STR__FIELD_DIGIT_AS_BIN "binary"
#define | STR__FIELD_UI_DISPLAY_HIDDEN "hidden"
#define | STR__FIELD_UI_DISPLAY_AS_ENTRY "entry"
#define | STR__FIELD_UI_DISPLAY_AS_SPINBOX "spinbox"
#define | STR__FIELD_UI_DISPLAY_AS_MENU "combobox"
#define | STR__FIELD_UI_DISPLAY_AS_RADIO "radiobox"
#define | STR__FIELD_UI_DISPLAY_AS_CHECK "checkbox"
#define | STR__FIELD_UI_DISPLAY_AS_LISTBOX "listbox"
#define | STR__FIELD_UI_DISPLAY_AS_SLIDE "slider"
#define | STR__FIELD_UI_DISPLAY_AS_PROGBAR "progressbar"
#define | STR__FIELD_UI_DISPLAY_AS_KNOB "knob"
#define | STR__FIELD_UI_DISPLAY_AS_TEXTAREA "textarea"
#define | STR__FIELD_UI_DISPLAY_AS_BUTTON "button"
#define | STR__FIELD_ENCODER_BCD "bcd"
#define | STR__FIELD_ENCODER_SIGN_MOD "sign_module"
#define | STR__FIELD_ENCODER_DEFAULT "binary"
#define | STR__FIELD_ENCODER_REAL "real"
#define | STR__FIELD_ENCODER_SWAPBYTE "swapbyte"
#define | STR__FIELD_ENCODER_SWAPWORD "swapword"
#define | STR__FIELD_ENCODER_SWAPDWORD "swapdword"
#define | STR__FIELD_ENCODER_FORMULA "="

Detailed Description

xml strings definitions for icd parsing

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a

Macro Definition Documentation

◆ STR__ATTR_DEFAULT

#define STR__ATTR_DEFAULT "default"

attribute used to set the initial value of the data

◆ STR__ATTR_DIGIT

#define STR__ATTR_DIGIT "display"

attribute used to specify how the data is displayed

◆ STR__ATTR_ENCODING

#define STR__ATTR_ENCODING "encoding"

attribute used to specify how the data is encoded

◆ STR__ATTR_ENDIANESS

#define STR__ATTR_ENDIANESS "endianness"

attribute used to set the endianess ( default littleEndian )

◆ STR__ATTR_ID

#define STR__ATTR_ID "id"

attribute used to set the message identifier (mapping)

◆ STR__ATTR_IOTYPE

#define STR__ATTR_IOTYPE "iotype"

attribute used to set the message direction ( transmission or reception )

◆ STR__ATTR_MAX

#define STR__ATTR_MAX "max"

attribute used to set the maximum value (range) (numerical data)

◆ STR__ATTR_MIN

#define STR__ATTR_MIN "min"

attribute used to set the minimum value (range) (numerical data)

◆ STR__ATTR_NAME

#define STR__ATTR_NAME "name"

attribute used to set the message/field name

◆ STR__ATTR_OFFSET

#define STR__ATTR_OFFSET "offset"

attribute used to set the data field offset for bitstream composition

◆ STR__ATTR_OFFSETVAL

#define STR__ATTR_OFFSETVAL "offsetvalue"

attribute used to set the offset value when raw data is 0 (numerical data)

◆ STR__ATTR_PRIORITY

#define STR__ATTR_PRIORITY "priority"

attribute used to set the message priority ( higher is processed first ) [ default 0 ]

◆ STR__ATTR_RESERVED

#define STR__ATTR_RESERVED "reserved"

attribute used to specify that this field is reserved ( the value is fixed and no changes are admitted ) [The value can be setted by using default attribute or CDATA value ]

◆ STR__ATTR_RESOLUTION

#define STR__ATTR_RESOLUTION "resolution"

attribute used to specify the how to show data resolution ( 0.001 data will be showed rounded after 3 decimal )

◆ STR__ATTR_STREAMFORMAT

#define STR__ATTR_STREAMFORMAT "streamformat"

attribute user to set the stream format ( default byte )

◆ STR__ATTR_TYPE

#define STR__ATTR_TYPE "type"

attribute used to set the data type ( double, float, etc )

◆ STR__ATTR_UI

#define STR__ATTR_UI "ui"

attribute used to specify the item layout

◆ STR__ATTR_UNIT

#define STR__ATTR_UNIT "unit"

attribute used to set the data unit ( dB, mt, sec, etc )

◆ STR__ATTR_US_PERIOD

#define STR__ATTR_US_PERIOD "usecperiodtime"

attribute used to set the message periodicity expressend in microseconds ( when periodical )

◆ STR__ATTR_VERSION

#define STR__ATTR_VERSION "version"

attribute used to set the document version

◆ STR__ATTR_VIRTUAL

#define STR__ATTR_VIRTUAL "virtual"

attribute used to set the message rx as virtual [boolean]( usefull when encoding is triggered by another message reception )

◆ STR__ATTR_WEIGHT

#define STR__ATTR_WEIGHT "weight"

attribute used to set the bit weight ( used in en/de-coding operations) (numerical data)

◆ STR__ATTR_WIDTH

#define STR__ATTR_WIDTH "width"

attribute used to set the the message/field lenght

◆ STR__FIELD_DIGIT_AS_BIN

#define STR__FIELD_DIGIT_AS_BIN "binary"

data digit layout is base 2

◆ STR__FIELD_DIGIT_AS_DEC

#define STR__FIELD_DIGIT_AS_DEC "decimal"

data digit layout is base 10

◆ STR__FIELD_DIGIT_AS_HEX

#define STR__FIELD_DIGIT_AS_HEX "hexadecimal"

data digit layout is base 16

◆ STR__FIELD_ENCODER_BCD

#define STR__FIELD_ENCODER_BCD "bcd"

data is encoded/decoded in BCD notation

◆ STR__FIELD_ENCODER_DEFAULT

#define STR__FIELD_ENCODER_DEFAULT "binary"

[DEFAULT ENCODING] data is encoded/decoded in two's complement

◆ STR__FIELD_ENCODER_FORMULA

#define STR__FIELD_ENCODER_FORMULA "="

<expression> data is encoded/decoded by reading math expression by using the macro: -$V : encoded/decoded value; - $O : offsetValue; - $W : (lsb value) bit weight; $m : value min; $M: value max;

◆ STR__FIELD_ENCODER_REAL

#define STR__FIELD_ENCODER_REAL "real"

(float and double only) in native format ( mantissa, exponent )

◆ STR__FIELD_ENCODER_SIGN_MOD

#define STR__FIELD_ENCODER_SIGN_MOD "sign_module"

data is encoded/decoded by using MSB as sign and the others as module

◆ STR__FIELD_ENCODER_SWAPBYTE

#define STR__FIELD_ENCODER_SWAPBYTE "swapbyte"

data is encoded/decoded by swapping the binary value by bytes

◆ STR__FIELD_ENCODER_SWAPDWORD

#define STR__FIELD_ENCODER_SWAPDWORD "swapdword"

data is encoded/decoded by swapping the binary value by double word

◆ STR__FIELD_ENCODER_SWAPWORD

#define STR__FIELD_ENCODER_SWAPWORD "swapword"

data is encoded/decoded by swapping the binary value by word

◆ STR__FIELD_TYPE_BOOLEAN

#define STR__FIELD_TYPE_BOOLEAN "boolean"

data type is boolean ( true/false )

◆ STR__FIELD_TYPE_DOUBLE

#define STR__FIELD_TYPE_DOUBLE "double"

data type is double

◆ STR__FIELD_TYPE_ENUM

#define STR__FIELD_TYPE_ENUM "enum"

data type is enumeral ( a sequence of pairs of key-value )

◆ STR__FIELD_TYPE_FLOAT

#define STR__FIELD_TYPE_FLOAT "float"

data type is float

◆ STR__FIELD_TYPE_INT

#define STR__FIELD_TYPE_INT "int"

data type is integer

◆ STR__FIELD_TYPE_LONG

#define STR__FIELD_TYPE_LONG "long"

data type is long

◆ STR__FIELD_TYPE_LONG_LONG

#define STR__FIELD_TYPE_LONG_LONG "long64"

data type is long long

◆ STR__FIELD_TYPE_SHORT

#define STR__FIELD_TYPE_SHORT "short"

data type is short

◆ STR__FIELD_TYPE_SPARE

#define STR__FIELD_TYPE_SPARE "spare"

data type is spare ( it means that will be discharged )

◆ STR__FIELD_TYPE_STRING

#define STR__FIELD_TYPE_STRING "string"

data type is string

◆ STR__FIELD_TYPE_UINT

#define STR__FIELD_TYPE_UINT "uint"

data type is unsigned integer

◆ STR__FIELD_TYPE_ULONG

#define STR__FIELD_TYPE_ULONG "ulong"

data type is unsigned long

◆ STR__FIELD_TYPE_ULONG_LONG

#define STR__FIELD_TYPE_ULONG_LONG "ulong64"

data type is unsigned long long

◆ STR__FIELD_TYPE_USHORT

#define STR__FIELD_TYPE_USHORT "ushort"

data type is unsigned short

◆ STR__FIELD_UI_DISPLAY_AS_BUTTON

#define STR__FIELD_UI_DISPLAY_AS_BUTTON "button"

preferred data layout is button

◆ STR__FIELD_UI_DISPLAY_AS_CHECK

#define STR__FIELD_UI_DISPLAY_AS_CHECK "checkbox"

preferred data layout is checkbox

◆ STR__FIELD_UI_DISPLAY_AS_ENTRY

#define STR__FIELD_UI_DISPLAY_AS_ENTRY "entry"

preferred data layout is entry

◆ STR__FIELD_UI_DISPLAY_AS_KNOB

#define STR__FIELD_UI_DISPLAY_AS_KNOB "knob"

preferred data layout is knob

◆ STR__FIELD_UI_DISPLAY_AS_LISTBOX

#define STR__FIELD_UI_DISPLAY_AS_LISTBOX "listbox"

preferred data layout is listbox

◆ STR__FIELD_UI_DISPLAY_AS_MENU

#define STR__FIELD_UI_DISPLAY_AS_MENU "combobox"

preferred data layout is combobox

◆ STR__FIELD_UI_DISPLAY_AS_PROGBAR

#define STR__FIELD_UI_DISPLAY_AS_PROGBAR "progressbar"

preferred data layout is progressbar

◆ STR__FIELD_UI_DISPLAY_AS_RADIO

#define STR__FIELD_UI_DISPLAY_AS_RADIO "radiobox"

preferred data layout is radiobox

◆ STR__FIELD_UI_DISPLAY_AS_SLIDE

#define STR__FIELD_UI_DISPLAY_AS_SLIDE "slider"

preferred data layout is slider

◆ STR__FIELD_UI_DISPLAY_AS_SPINBOX

#define STR__FIELD_UI_DISPLAY_AS_SPINBOX "spinbox"

preferred data layout is spinbox

◆ STR__FIELD_UI_DISPLAY_AS_TEXTAREA

#define STR__FIELD_UI_DISPLAY_AS_TEXTAREA "textarea"

preferred data layout is textarea

◆ STR__FIELD_UI_DISPLAY_HIDDEN

#define STR__FIELD_UI_DISPLAY_HIDDEN "hidden"

preferred data layout is hidden

◆ STR__HANDLER_ENDIANNESS_BIG

#define STR__HANDLER_ENDIANNESS_BIG "bigendian"

big-endian: byte ordering with the first byte is the most significant

◆ STR__HANDLER_ENDIANNESS_LITTLE

#define STR__HANDLER_ENDIANNESS_LITTLE "littleendian"

little-endian: byte ordering with the first byte is the least significant

◆ STR__HANDLER_STREAMFORMAT_BYTE

#define STR__HANDLER_STREAMFORMAT_BYTE "byte"

stream is a sequence of byte (8)

◆ STR__HANDLER_STREAMFORMAT_DWORD

#define STR__HANDLER_STREAMFORMAT_DWORD "dword"

stream is a sequence of double word (32)

◆ STR__HANDLER_STREAMFORMAT_WORD

#define STR__HANDLER_STREAMFORMAT_WORD "word"

stream is a sequence of word (16)

◆ STR__HANDLER_UI_DISPLAY_AS_H_FRAME

#define STR__HANDLER_UI_DISPLAY_AS_H_FRAME "all_horizontal"

all messages are displayed horizontally

◆ STR__HANDLER_UI_DISPLAY_AS_IO_GRP

#define STR__HANDLER_UI_DISPLAY_AS_IO_GRP "by_iotype"

[DEFAULT LAYOUT] messages are grouped as tab in two different groupBox

◆ STR__HANDLER_UI_DISPLAY_AS_TAB

#define STR__HANDLER_UI_DISPLAY_AS_TAB "all_tab"

all messages are displayed into tabs

◆ STR__HANDLER_UI_DISPLAY_AS_V_FRAME

#define STR__HANDLER_UI_DISPLAY_AS_V_FRAME "all_vertical"

all messages are displayed vertically

◆ STR__MESSAGE_IOTYPE_RX

#define STR__MESSAGE_IOTYPE_RX "rx"

message is in receiving mode

◆ STR__MESSAGE_IOTYPE_TX

#define STR__MESSAGE_IOTYPE_TX "tx"

message is in transmission mode

◆ STR__NODE_FIELD

#define STR__NODE_FIELD "field"

message sub node

◆ STR__NODE_LOW_LEVEL

#define STR__NODE_LOW_LEVEL "lowlevel"

lowlevel node

◆ STR__NODE_MAPPING

#define STR__NODE_MAPPING "mapping"

mapping node

◆ STR__NODE_MESSAGE

#define STR__NODE_MESSAGE "message"

hilevel sub node

◆ STR__NODE_UI_LEVEL

#define STR__NODE_UI_LEVEL "hilevel"

hilevel node

◆ STR__NODE_VALUE

#define STR__NODE_VALUE "value"

values sub node (optional)

◆ STR__NODE_VALUES

#define STR__NODE_VALUES "values"

field sub node (optional)

◆ STR__ROOT_NODE_NAME

#define STR__ROOT_NODE_NAME "icdhandler"

root node

Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/portable_endian.h Source File

  • include
portable_endian.h
1 // "License": Public Domain
2 // I, Mathias Panzenböck, place this file hereby into the public domain. Use it at your own risk for whatever you like.
3 // In case there are jurisdictions that don't support putting things in the public domain you can also consider it to
4 // be "dual licensed" under the BSD, MIT and Apache licenses, if you want to. This code is trivial anyway. Consider it
5 // an example on how to get the endian conversion functions on different platforms.
6
7 #ifndef PORTABLE_ENDIAN_H__
8 #define PORTABLE_ENDIAN_H__
9
10 #if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__)
11
12 # define __WINDOWS__
13
14 #endif
15
16 #if defined(__linux__) || defined(__CYGWIN__)
17
18 # include <endian.h>
19
20 #elif defined(__APPLE__)
21
22 # include <libkern/OSByteOrder.h>
23
24 # define htobe16(x) OSSwapHostToBigInt16(x)
25 # define htole16(x) OSSwapHostToLittleInt16(x)
26 # define be16toh(x) OSSwapBigToHostInt16(x)
27 # define le16toh(x) OSSwapLittleToHostInt16(x)
28
29 # define htobe32(x) OSSwapHostToBigInt32(x)
30 # define htole32(x) OSSwapHostToLittleInt32(x)
31 # define be32toh(x) OSSwapBigToHostInt32(x)
32 # define le32toh(x) OSSwapLittleToHostInt32(x)
33
34 # define htobe64(x) OSSwapHostToBigInt64(x)
35 # define htole64(x) OSSwapHostToLittleInt64(x)
36 # define be64toh(x) OSSwapBigToHostInt64(x)
37 # define le64toh(x) OSSwapLittleToHostInt64(x)
38
39 # define __BYTE_ORDER BYTE_ORDER
40 # define __BIG_ENDIAN BIG_ENDIAN
41 # define __LITTLE_ENDIAN LITTLE_ENDIAN
42 # define __PDP_ENDIAN PDP_ENDIAN
43
44 #elif defined(__OpenBSD__)
45
46 # include <sys/endian.h>
47
48 #elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
49
50 # include <sys/endian.h>
51
52 # define be16toh(x) betoh16(x)
53 # define le16toh(x) letoh16(x)
54
55 # define be32toh(x) betoh32(x)
56 # define le32toh(x) letoh32(x)
57
58 # define be64toh(x) betoh64(x)
59 # define le64toh(x) letoh64(x)
60
61 #elif defined(__WINDOWS__)
62
63 # include <winsock2.h>
64 # include <sys/param.h>
65
66 # if BYTE_ORDER == LITTLE_ENDIAN
67
68 # define htobe16(x) htons(x)
69 # define htole16(x) (x)
70 # define be16toh(x) ntohs(x)
71 # define le16toh(x) (x)
72
73 # define htobe32(x) htonl(x)
74 # define htole32(x) (x)
75 # define be32toh(x) ntohl(x)
76 # define le32toh(x) (x)
77
78 # define htobe64(x) htonll(x)
79 # define htole64(x) (x)
80 # define be64toh(x) ntohll(x)
81 # define le64toh(x) (x)
82
83 # elif BYTE_ORDER == BIG_ENDIAN
84
85 /* that would be xbox 360 */
86 # define htobe16(x) (x)
87 # define htole16(x) __builtin_bswap16(x)
88 # define be16toh(x) (x)
89 # define le16toh(x) __builtin_bswap16(x)
90
91 # define htobe32(x) (x)
92 # define htole32(x) __builtin_bswap32(x)
93 # define be32toh(x) (x)
94 # define le32toh(x) __builtin_bswap32(x)
95
96 # define htobe64(x) (x)
97 # define htole64(x) __builtin_bswap64(x)
98 # define be64toh(x) (x)
99 # define le64toh(x) __builtin_bswap64(x)
100
101 # else
102
103 # error byte order not supported
104
105 # endif
106
107 # define __BYTE_ORDER BYTE_ORDER
108 # define __BIG_ENDIAN BIG_ENDIAN
109 # define __LITTLE_ENDIAN LITTLE_ENDIAN
110 # define __PDP_ENDIAN PDP_ENDIAN
111
112 #else
113
114 # error platform not supported
115 #endif
116
117 #endif // PORTABLE_ENDIAN_H
118
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/putilsqueue.h Source File

  • include
putilsqueue.h
1 /*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6
7 /*
8 * File: putils_queue.h
9 * Author: riccardo
10 *
11 * Created on 24 aprile 2021, 21.15
12 */
13
14 #ifndef PUTILS_QUEUE_H
15 #define PUTILS_QUEUE_H
16
17 #include <iostream>
18 #include <vector>
19 #include <string>
20 #include <random>
21 #include <thread>
22 #include <chrono>
23 #include <mutex>
24 #include <condition_variable>
25 #include <deque>
26 #include <atomic>
27 #include <ctime>
28 #include <future>
29 #include <set>
30 #include <map>
31 #include <fstream>
32 #include <cstdlib>
33 #include <sstream>
34 #include <exception>
35 #include <stdexcept>
36 #include <pthread.h>
37
41 #if defined(WIN32) || defined(WIN32)
42 #include <winsock2.h>
43 #include <windows.h>
44 #define __run_on_windows__
45 #endif
46
47 //----------------------------------------------------------------------------//
48 //----------------------------------------------------------------------------//
49 //----------------------------------------------------------------------------//
50
51 #define PREFIX_LOG_NAME "logs/PLOG_" // Prefisso file di log
52 #define PRINT_PROBE_DBG 0 // Scrive nel file di log
53 #define PUTILS_AS_QUEUE 0 // Abilita TUTTA la coda
54 #define NUM_TASK_THREAD 10 // Num max di thread
55 #define DEBUG___PUTILSQ 0 // Debug della coda
56 #define APLOG___PUTILSQ 0 // Debug su file di log
57 #define AUTO_CANCEL_TSK 0 // Stop task se necessario
58 #define DEBUG_SLEEP_INI 10 // Sleep startup fra task
59 #define MAX_MS_WAIT_TSK 30 // Max time per consume
60
61 //----------------------------------------------------------------------------//
62 //----------------------------------------------------------------------------//
63 //----------------------------------------------------------------------------//
64
65 #define SUPPRESS_WARNING(a) (void)a
66
67
68
69 //----------------------------------------------------------------------------//
70 //----------------------------------------------------------------------------//
71 //----------------------------------------------------------------------------//
72
73 typedef std::thread::native_handle_type std_th_native_t;
74 typedef unsigned short num_task_t;
75
76 //----------------------------------------------------------------------------//
77 //----------------------------------------------------------------------------//
78 //----------------------------------------------------------------------------//
79
80 namespace pl {
81 static std::ofstream __log;
82 void close();
83 void open();
84 void log(const std::string s);
85 void append(const std::string s);
86 }
87
88 namespace pu {
89 inline unsigned long mills() {
90 auto now = std::chrono::system_clock::now();
91 std::chrono::milliseconds ms = std::chrono::duration_cast<std::chrono::milliseconds> (now.time_since_epoch());
92 return ms.count();
93 }
94
95
96 template <typename T> class Queue;
97 class Pool;
98 class Dequeueable;
99 class Interruptable;
100 class Task;
101 class Event;
102
109 class Dequeueable {
110 public:
111 virtual void dequeue(unsigned int req_id, unsigned long event_number) = 0;
112 };
113
114 class Event: public Dequeueable {
115 protected:
116 void *ptr;
117 unsigned int req_id;
118 unsigned long event_number;
119 public:
120 Event() = default;
121 virtual ~Event() {}
122 public:
123 void init(void *ptr_p,
124 unsigned int req_id_p,
125 unsigned long event_number_p);
126 friend class Task;
127 };
128
129 template <typename T>
130 class Queue {
131 private:
132 std::mutex mutex;
133 std::condition_variable condv;
134 std::deque<T> myqueue;
135 public:
136 void push(const T &value) {
137 /* Creo il lock del thread chiamato */
138 std::unique_lock<std::mutex> lock(this->mutex);
139
140 /* Inserisco in testa l'elemento */
141 myqueue.push_front(value);
142
143 /* Ad solo un thread notifico il cambiamento */
144 this->condv.notify_one();
145 }
146 T pop() {
147 std::unique_lock<std::mutex> lock(this->mutex);
148
149 /* Blocco il thread finche la coda e' vuota */
150 this->condv.wait(lock, [=]{return !this->myqueue.empty();});
151
152 /* Scodo e rimuovo l'elemento dalla coda */
153 T element(std::move(this->myqueue.back()));
154 this->myqueue.pop_back();
155 return element;
156 }
157 unsigned in_queue() {
158 return myqueue.size();
159 }
160 };
161
162 class Interruptable
163 {
164 private:
165 unsigned long time { pu::mills() };
166 num_task_t number;
167 std::promise<void> exit;
168 std::future<void> future;
169
170 public:
171 Interruptable() : future(exit.get_future())
172 {
173 /* Tutti i task hanno un identificativo univoco */
174 static num_task_t n = 0;
175 if (n == 65534) {
176 std::cerr << "[Rewind Task id]" << std::endl;
177 n = 0;
178 }
179 number = ++n;
180 }
181 Interruptable(Interruptable &&obj) : number(std::move(obj.number)),exit(std::move(obj.exit)), future(std::move(obj.future)){}
182 Interruptable & operator=(Interruptable && obj)
183 {
184 number = std::move(obj.number);
185 exit = std::move(obj.exit);
186 future = std::move(obj.future);
187 return *this;
188 }
189
190 /* Implementato dal Task */
191 virtual void run() = 0;
192
193 void operator()()
194 {
195 run();
196 }
197
198 bool is_running()
199 {
200 /* Se si richiede lo stop il valore diventa false */
201 bool running = (future.wait_for(std::chrono::milliseconds(0)) == std::future_status::timeout);
202 return running;
203 }
204
205 void stop()
206 {
207 /* Per interrompere il while dei task imposto la promise ad un valore */
208 exit.set_value();
209 }
210
211 num_task_t get_number() {
212 return number;
213 }
214 };
215
216 class Task: public Interruptable
217 {
218 private:
219 std::shared_ptr<Queue<Event*>> queue;
220 Pool *pool = nullptr;
221 Event *current_event = nullptr;
222 std::mutex mutex;
223 public:
224 Task() = delete;
225 Task(Pool *p);
226 Task(const Task& t);
227 virtual ~Task() {
228 if ( current_event ) delete current_event;
229 }
230
231 void run();
232 bool in_progress(Event *evt);
233 };
234
235 class Pool
236 {
237 private:
238 std::atomic<unsigned int> free_task{0};
239 std::map<num_task_t, pthread_t*> threads;
240 std::map<num_task_t, Task*> tasks;
241 std::shared_ptr<Queue<Event*>> shared_queue;
242
243 explicit Pool();
244
245 public:
246 Pool(Pool const&) = delete;
247 void operator=(Pool const&) = delete;
248
249 static Pool &get_instance() {
250 static Pool instance;
251 return instance;
252 }
253
254 std::shared_ptr<Queue<Event*>> get_shared_queue() {
255 return shared_queue;
256 }
257
258 void init_pool ();
259 void init_task ();
260 void offer (Event *evt);
261 void stop ();
262 unsigned int in_queue ();
263 void inc_free_task ();
264 void dec_free_task ();
265 unsigned int get_number_free_task () const;
266 bool in_progress (Event *evt, Task *&task);
267 void print_threads_handles ();
268 void terminate_task (num_task_t id);
269 };
270 }
271
272 #endif /* PUTILS_QUEUE_H */
273
pu::Interruptable
Definition: putilsqueue.h:162
pu
Definition: putilsqueue.h:88
pu::Queue
Definition: putilsqueue.h:96
pu::Event
Definition: putilsqueue.h:114
pu::Pool
Definition: putilsqueue.h:235
pu::Task
Definition: putilsqueue.h:216
pu::Pool::offer
void offer(Event *evt)
Definition: putilsqueue.cpp:343
pu::Dequeueable
Definition: putilsqueue.h:109
pl
Definition: putilsqueue.h:80
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: src Directory Reference

  • src
src Directory Reference

Files

file | icdabstractfactory.cpp
file | icdhandler.cpp
file | icdhandlersmanager.cpp
file | icdmessage.cpp
file | icdmessagefield.cpp
file | icdrawstream.cpp
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: src/icdabstractfactory.cpp File Reference

  • src
icdabstractfactory.cpp File Reference

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: src/icdhandler.cpp File Reference

  • src
Classes | Macros | Functions
icdhandler.cpp File Reference

Classes

class ICDSpareTranscoder< T >

Macros

#define | USE_ROUND 1
#define | STRING_FOR_VALUE_IS_NOT_IN_RANGE(s) {_xmlerr << s << " is not in range [ ";for ( it = valid_values.begin(); it != valid_values.end(); ++it ) _xmlerr << it->first << ", ";_xmlerr << "]";}

Functions

template<typename T >
bool | strtonumber (const std::string &s, T *val, T fallback, int radix=10)
template<typename T >
bool | set_numeric_field (const std::string &sLsb, T *ptr_lsb, const std::string &sMax, T *ptr_max, const std::string &sMin, T *ptr_min, const std::string &sOffsetValue, T *ptr_offsetval, size_t len, std::string *err)
template<typename T >
bool | bound_consistency (T range_min, T range_max, T _len, T _lsb, T _offset, bool _is_signed, string *err)
template<typename T >
bool | setNumericEncoding (ICDGenericMessageField *field, T lsb, T offsetVal, std::string attrEncoding)

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: src/icdhandlersmanager.cpp File Reference

  • src
icdhandlersmanager.cpp File Reference

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: src/icdmessage.cpp File Reference

  • src
icdmessage.cpp File Reference

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: src/icdmessagefield.cpp File Reference

  • src
icdmessagefield.cpp File Reference

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: src/icdrawstream.cpp File Reference

  • src
Macros
icdrawstream.cpp File Reference

Macros

#define | BYTE_LEN 8
#define | WORD_LEN 16
#define | DWORD_LEN 32

Detailed Description

Date
2017
Author
Federico Paoletti
Copyright
Leonardo Company s.p.a
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: File Members

Here is a list of all documented file members with links to the documentation:

- _ -

  • _bus_error_severity : GenericBusEqp.h
  • _eqp_state_request : GenericBusEqp.h
  • _ICD__data_type_ : icdmessagefield.h
  • _icd_endianness : GenericBusEqp.h
  • _icd_stream_format : GenericBusEqp.h
  • _INI_BUSDRIVER_KEY : icdinitags.h
  • _INI_COMMIT_ON_THE_FLY : icdinitags.h
  • _INI_FONT_KEY : icdinitags.h
  • _INI_GEOMETRY_KEY : icdinitags.h
  • _INI_GLOBALS_GROUP : icdinitags.h
  • _INI_HIDE_CTRL_WIDGETS : icdinitags.h
  • _INI_ICDPLUGIN_KEY : icdinitags.h
  • _INI_ICDUI_KEY : icdinitags.h
  • _INI_ICDXML_KEY : icdinitags.h
  • _INI_ICON_KEY : icdinitags.h
  • _INI_INITIALSCRIPT_KEY : icdinitags.h
  • _INI_INTERFACE_GROUP : icdinitags.h
  • _INI_INTERFACES_SIZE : icdinitags.h
  • _INI_LAST_LOG_DIR_KEY : icdinitags.h
  • _INI_LEGACY_NAME_KEY : icdinitags.h
  • _INI_LEGACY_VERSION_KEY : icdinitags.h
  • _INI_LOG_TIMETAG_INTERFACE : icdinitags.h
  • _INI_MAX_OPTIONAL_PLUGIN : icdinitags.h
  • _INI_OPTIONAL_TOOLS_GROUP : icdinitags.h
  • _INI_PROP : icdinitags.h
  • _INI_STYLESHEET_KEY : icdinitags.h

- b -

  • BUS_ERROR_HIGH : GenericBusEqp.h
  • BUS_ERROR_LOW : GenericBusEqp.h
  • BUS_ERROR_MEDIUM : GenericBusEqp.h

- c -

  • CreateGenericDriver() : genericBusInterface.h

- d -

  • DestroyGenericDriver() : genericBusInterface.h

- e -

  • EqpStateRequest : GenericBusEqp.h

- g -

  • GetGenericDriverAPIVersion() : genericBusInterface.h

- i -

  • ICD__data_type : icdmessagefield.h
  • ICD_BIG_ENDIAN : GenericBusEqp.h
  • ICD_EVENT_ONBUSCLOCK : icdevents.h
  • ICD_EVENT_ONBUSCONFIGURED : icdevents.h
  • ICD_EVENT_ONBUSERRORHIGH : icdevents.h
  • ICD_EVENT_ONBUSERRORINJECTIONRESET : icdevents.h
  • ICD_EVENT_ONBUSERRORINJECTIONSET : icdevents.h
  • ICD_EVENT_ONBUSERRORLOW : icdevents.h
  • ICD_EVENT_ONBUSERRORMEDIUM : icdevents.h
  • ICD_EVENT_ONBUSLOGSTART : icdevents.h
  • ICD_EVENT_ONBUSLOGSTOP : icdevents.h
  • ICD_EVENT_ONBUSSTART : icdevents.h
  • ICD_EVENT_ONBUSSTOP : icdevents.h
  • ICD_EVENT_ONCHANGE : icdevents.h
  • ICD_EVENT_ONCOMMITCHANGES : icdevents.h
  • ICD_EVENT_ONCOMMITTED : icdevents.h
  • ICD_EVENT_ONRECEIVEDMESSAGE : icdevents.h
  • ICD_EVENT_ONREVERTCHANGES : icdevents.h
  • ICD_EVENT_ONREVERTED : icdevents.h
  • ICD_EVENT_ONSENDMESSAGE : icdevents.h
  • ICD_EVENT_ONSENTMESSAGES : icdevents.h
  • ICD_EVENT_ONUPDATE : icdevents.h
  • ICD_STREAM_FORMAT_DOUBLEWORD : GenericBusEqp.h
  • ICD_STREAM_FORMAT_WORD : GenericBusEqp.h
  • ICDEndianness : GenericBusEqp.h
  • ICDStreamFormat : GenericBusEqp.h

- s -

  • STATE_REQUEST_STOP : GenericBusEqp.h
  • STATE_REQUEST_SUSPEND : GenericBusEqp.h
  • STR__ATTR_DEFAULT : icdxmltags.h
  • STR__ATTR_DIGIT : icdxmltags.h
  • STR__ATTR_ENCODING : icdxmltags.h
  • STR__ATTR_ENDIANESS : icdxmltags.h
  • STR__ATTR_ID : icdxmltags.h
  • STR__ATTR_IOTYPE : icdxmltags.h
  • STR__ATTR_MAX : icdxmltags.h
  • STR__ATTR_MIN : icdxmltags.h
  • STR__ATTR_NAME : icdxmltags.h
  • STR__ATTR_OFFSET : icdxmltags.h
  • STR__ATTR_OFFSETVAL : icdxmltags.h
  • STR__ATTR_PRIORITY : icdxmltags.h
  • STR__ATTR_RESERVED : icdxmltags.h
  • STR__ATTR_RESOLUTION : icdxmltags.h
  • STR__ATTR_STREAMFORMAT : icdxmltags.h
  • STR__ATTR_TYPE : icdxmltags.h
  • STR__ATTR_UI : icdxmltags.h
  • STR__ATTR_UNIT : icdxmltags.h
  • STR__ATTR_US_PERIOD : icdxmltags.h
  • STR__ATTR_VERSION : icdxmltags.h
  • STR__ATTR_VIRTUAL : icdxmltags.h
  • STR__ATTR_WEIGHT : icdxmltags.h
  • STR__ATTR_WIDTH : icdxmltags.h
  • STR__FIELD_DIGIT_AS_BIN : icdxmltags.h
  • STR__FIELD_DIGIT_AS_DEC : icdxmltags.h
  • STR__FIELD_DIGIT_AS_HEX : icdxmltags.h
  • STR__FIELD_ENCODER_BCD : icdxmltags.h
  • STR__FIELD_ENCODER_DEFAULT : icdxmltags.h
  • STR__FIELD_ENCODER_FORMULA : icdxmltags.h
  • STR__FIELD_ENCODER_REAL : icdxmltags.h
  • STR__FIELD_ENCODER_SIGN_MOD : icdxmltags.h
  • STR__FIELD_ENCODER_SWAPBYTE : icdxmltags.h
  • STR__FIELD_ENCODER_SWAPDWORD : icdxmltags.h
  • STR__FIELD_ENCODER_SWAPWORD : icdxmltags.h
  • STR__FIELD_TYPE_BOOLEAN : icdxmltags.h
  • STR__FIELD_TYPE_DOUBLE : icdxmltags.h
  • STR__FIELD_TYPE_ENUM : icdxmltags.h
  • STR__FIELD_TYPE_FLOAT : icdxmltags.h
  • STR__FIELD_TYPE_INT : icdxmltags.h
  • STR__FIELD_TYPE_LONG : icdxmltags.h
  • STR__FIELD_TYPE_LONG_LONG : icdxmltags.h
  • STR__FIELD_TYPE_SHORT : icdxmltags.h
  • STR__FIELD_TYPE_SPARE : icdxmltags.h
  • STR__FIELD_TYPE_STRING : icdxmltags.h
  • STR__FIELD_TYPE_UINT : icdxmltags.h
  • STR__FIELD_TYPE_ULONG : icdxmltags.h
  • STR__FIELD_TYPE_ULONG_LONG : icdxmltags.h
  • STR__FIELD_TYPE_USHORT : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_BUTTON : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_CHECK : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_ENTRY : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_KNOB : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_LISTBOX : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_MENU : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_PROGBAR : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_RADIO : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_SLIDE : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_SPINBOX : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_TEXTAREA : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_HIDDEN : icdxmltags.h
  • STR__HANDLER_ENDIANNESS_BIG : icdxmltags.h
  • STR__HANDLER_ENDIANNESS_LITTLE : icdxmltags.h
  • STR__HANDLER_STREAMFORMAT_BYTE : icdxmltags.h
  • STR__HANDLER_STREAMFORMAT_DWORD : icdxmltags.h
  • STR__HANDLER_STREAMFORMAT_WORD : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_H_FRAME : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_IO_GRP : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_TAB : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_V_FRAME : icdxmltags.h
  • STR__MESSAGE_IOTYPE_RX : icdxmltags.h
  • STR__MESSAGE_IOTYPE_TX : icdxmltags.h
  • STR__NODE_FIELD : icdxmltags.h
  • STR__NODE_LOW_LEVEL : icdxmltags.h
  • STR__NODE_MAPPING : icdxmltags.h
  • STR__NODE_MESSAGE : icdxmltags.h
  • STR__NODE_UI_LEVEL : icdxmltags.h
  • STR__NODE_VALUE : icdxmltags.h
  • STR__NODE_VALUES : icdxmltags.h
  • STR__ROOT_NODE_NAME : icdxmltags.h
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: File Members

  • CreateGenericDriver() : genericBusInterface.h
  • DestroyGenericDriver() : genericBusInterface.h
  • GetGenericDriverAPIVersion() : genericBusInterface.h
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: File Members

  • EqpStateRequest : GenericBusEqp.h
  • ICD__data_type : icdmessagefield.h
  • ICDEndianness : GenericBusEqp.h
  • ICDStreamFormat : GenericBusEqp.h
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: File Members

  • _bus_error_severity : GenericBusEqp.h
  • _eqp_state_request : GenericBusEqp.h
  • _ICD__data_type_ : icdmessagefield.h
  • _icd_endianness : GenericBusEqp.h
  • _icd_stream_format : GenericBusEqp.h
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: File Members

  • BUS_ERROR_HIGH : GenericBusEqp.h
  • BUS_ERROR_LOW : GenericBusEqp.h
  • BUS_ERROR_MEDIUM : GenericBusEqp.h
  • ICD_BIG_ENDIAN : GenericBusEqp.h
  • ICD_STREAM_FORMAT_DOUBLEWORD : GenericBusEqp.h
  • ICD_STREAM_FORMAT_WORD : GenericBusEqp.h
  • STATE_REQUEST_STOP : GenericBusEqp.h
  • STATE_REQUEST_SUSPEND : GenericBusEqp.h
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: File Members

- _ -

  • _INI_BUSDRIVER_KEY : icdinitags.h
  • _INI_COMMIT_ON_THE_FLY : icdinitags.h
  • _INI_FONT_KEY : icdinitags.h
  • _INI_GEOMETRY_KEY : icdinitags.h
  • _INI_GLOBALS_GROUP : icdinitags.h
  • _INI_HIDE_CTRL_WIDGETS : icdinitags.h
  • _INI_ICDPLUGIN_KEY : icdinitags.h
  • _INI_ICDUI_KEY : icdinitags.h
  • _INI_ICDXML_KEY : icdinitags.h
  • _INI_ICON_KEY : icdinitags.h
  • _INI_INITIALSCRIPT_KEY : icdinitags.h
  • _INI_INTERFACE_GROUP : icdinitags.h
  • _INI_INTERFACES_SIZE : icdinitags.h
  • _INI_LAST_LOG_DIR_KEY : icdinitags.h
  • _INI_LEGACY_NAME_KEY : icdinitags.h
  • _INI_LEGACY_VERSION_KEY : icdinitags.h
  • _INI_LOG_TIMETAG_INTERFACE : icdinitags.h
  • _INI_MAX_OPTIONAL_PLUGIN : icdinitags.h
  • _INI_OPTIONAL_TOOLS_GROUP : icdinitags.h
  • _INI_PROP : icdinitags.h
  • _INI_STYLESHEET_KEY : icdinitags.h

- i -

  • ICD_EVENT_ONBUSCLOCK : icdevents.h
  • ICD_EVENT_ONBUSCONFIGURED : icdevents.h
  • ICD_EVENT_ONBUSERRORHIGH : icdevents.h
  • ICD_EVENT_ONBUSERRORINJECTIONRESET : icdevents.h
  • ICD_EVENT_ONBUSERRORINJECTIONSET : icdevents.h
  • ICD_EVENT_ONBUSERRORLOW : icdevents.h
  • ICD_EVENT_ONBUSERRORMEDIUM : icdevents.h
  • ICD_EVENT_ONBUSLOGSTART : icdevents.h
  • ICD_EVENT_ONBUSLOGSTOP : icdevents.h
  • ICD_EVENT_ONBUSSTART : icdevents.h
  • ICD_EVENT_ONBUSSTOP : icdevents.h
  • ICD_EVENT_ONCHANGE : icdevents.h
  • ICD_EVENT_ONCOMMITCHANGES : icdevents.h
  • ICD_EVENT_ONCOMMITTED : icdevents.h
  • ICD_EVENT_ONRECEIVEDMESSAGE : icdevents.h
  • ICD_EVENT_ONREVERTCHANGES : icdevents.h
  • ICD_EVENT_ONREVERTED : icdevents.h
  • ICD_EVENT_ONSENDMESSAGE : icdevents.h
  • ICD_EVENT_ONSENTMESSAGES : icdevents.h
  • ICD_EVENT_ONUPDATE : icdevents.h

- s -

  • STR__ATTR_DEFAULT : icdxmltags.h
  • STR__ATTR_DIGIT : icdxmltags.h
  • STR__ATTR_ENCODING : icdxmltags.h
  • STR__ATTR_ENDIANESS : icdxmltags.h
  • STR__ATTR_ID : icdxmltags.h
  • STR__ATTR_IOTYPE : icdxmltags.h
  • STR__ATTR_MAX : icdxmltags.h
  • STR__ATTR_MIN : icdxmltags.h
  • STR__ATTR_NAME : icdxmltags.h
  • STR__ATTR_OFFSET : icdxmltags.h
  • STR__ATTR_OFFSETVAL : icdxmltags.h
  • STR__ATTR_PRIORITY : icdxmltags.h
  • STR__ATTR_RESERVED : icdxmltags.h
  • STR__ATTR_RESOLUTION : icdxmltags.h
  • STR__ATTR_STREAMFORMAT : icdxmltags.h
  • STR__ATTR_TYPE : icdxmltags.h
  • STR__ATTR_UI : icdxmltags.h
  • STR__ATTR_UNIT : icdxmltags.h
  • STR__ATTR_US_PERIOD : icdxmltags.h
  • STR__ATTR_VERSION : icdxmltags.h
  • STR__ATTR_VIRTUAL : icdxmltags.h
  • STR__ATTR_WEIGHT : icdxmltags.h
  • STR__ATTR_WIDTH : icdxmltags.h
  • STR__FIELD_DIGIT_AS_BIN : icdxmltags.h
  • STR__FIELD_DIGIT_AS_DEC : icdxmltags.h
  • STR__FIELD_DIGIT_AS_HEX : icdxmltags.h
  • STR__FIELD_ENCODER_BCD : icdxmltags.h
  • STR__FIELD_ENCODER_DEFAULT : icdxmltags.h
  • STR__FIELD_ENCODER_FORMULA : icdxmltags.h
  • STR__FIELD_ENCODER_REAL : icdxmltags.h
  • STR__FIELD_ENCODER_SIGN_MOD : icdxmltags.h
  • STR__FIELD_ENCODER_SWAPBYTE : icdxmltags.h
  • STR__FIELD_ENCODER_SWAPDWORD : icdxmltags.h
  • STR__FIELD_ENCODER_SWAPWORD : icdxmltags.h
  • STR__FIELD_TYPE_BOOLEAN : icdxmltags.h
  • STR__FIELD_TYPE_DOUBLE : icdxmltags.h
  • STR__FIELD_TYPE_ENUM : icdxmltags.h
  • STR__FIELD_TYPE_FLOAT : icdxmltags.h
  • STR__FIELD_TYPE_INT : icdxmltags.h
  • STR__FIELD_TYPE_LONG : icdxmltags.h
  • STR__FIELD_TYPE_LONG_LONG : icdxmltags.h
  • STR__FIELD_TYPE_SHORT : icdxmltags.h
  • STR__FIELD_TYPE_SPARE : icdxmltags.h
  • STR__FIELD_TYPE_STRING : icdxmltags.h
  • STR__FIELD_TYPE_UINT : icdxmltags.h
  • STR__FIELD_TYPE_ULONG : icdxmltags.h
  • STR__FIELD_TYPE_ULONG_LONG : icdxmltags.h
  • STR__FIELD_TYPE_USHORT : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_BUTTON : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_CHECK : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_ENTRY : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_KNOB : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_LISTBOX : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_MENU : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_PROGBAR : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_RADIO : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_SLIDE : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_SPINBOX : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_AS_TEXTAREA : icdxmltags.h
  • STR__FIELD_UI_DISPLAY_HIDDEN : icdxmltags.h
  • STR__HANDLER_ENDIANNESS_BIG : icdxmltags.h
  • STR__HANDLER_ENDIANNESS_LITTLE : icdxmltags.h
  • STR__HANDLER_STREAMFORMAT_BYTE : icdxmltags.h
  • STR__HANDLER_STREAMFORMAT_DWORD : icdxmltags.h
  • STR__HANDLER_STREAMFORMAT_WORD : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_H_FRAME : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_IO_GRP : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_TAB : icdxmltags.h
  • STR__HANDLER_UI_DISPLAY_AS_V_FRAME : icdxmltags.h
  • STR__MESSAGE_IOTYPE_RX : icdxmltags.h
  • STR__MESSAGE_IOTYPE_TX : icdxmltags.h
  • STR__NODE_FIELD : icdxmltags.h
  • STR__NODE_LOW_LEVEL : icdxmltags.h
  • STR__NODE_MAPPING : icdxmltags.h
  • STR__NODE_MESSAGE : icdxmltags.h
  • STR__NODE_UI_LEVEL : icdxmltags.h
  • STR__NODE_VALUE : icdxmltags.h
  • STR__NODE_VALUES : icdxmltags.h
  • STR__ROOT_NODE_NAME : icdxmltags.h
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/ext/GenericBusEqp.h Source File

  • include
  • ext
GenericBusEqp.h
Go to the documentation of this file.
1
26 #ifndef WrapperBus_GenericBusEqp_H
27 #define WrapperBus_GenericBusEqp_H
28
29 #include <string>
30
31 typedef enum _bus_error_severity {
32 BUS_ERROR_NONE = 0,
33 BUS_ERROR_LOW,
34 BUS_ERROR_MEDIUM,
35 BUS_ERROR_HIGH
36 } BusErrorSeverity;
37
41 typedef enum _eqp_state_request {
42 STATE_REQUEST_RESUME,
43 STATE_REQUEST_STOP,
44 STATE_REQUEST_SUSPEND
45 } EqpStateRequest;
46
50 typedef enum _icd_endianness {
51 ICD_LITTLE_ENDIAN,
52 ICD_BIG_ENDIAN
53 } ICDEndianness;
54
58 typedef enum _icd_stream_format {
59 ICD_STREAM_FORMAT_BYTE = 8,
60 ICD_STREAM_FORMAT_WORD = 16,
61 ICD_STREAM_FORMAT_DOUBLEWORD = 32,
62 } ICDStreamFormat;
63
64
66 class IGenericBusEqp {
67 public :
68
70 virtual void OnBusError(std::string err, BusErrorSeverity severity) = 0;
71
73 virtual void OnChangeStateRequest(EqpStateRequest req) = 0;
74
76 virtual bool OnMessageReceive(unsigned int msgId, unsigned char *data, unsigned short size) = 0;
77
79 virtual void OnBusClock() = 0;
80
82 virtual ICDEndianness GetEndianness() = 0;
83
85 virtual ICDStreamFormat GetStreamFormat() = 0;
86
87 };
88 #endif
_icd_stream_format
_icd_stream_format
Definition: GenericBusEqp.h:58
STATE_REQUEST_SUSPEND
Definition: GenericBusEqp.h:44
IGenericBusEqp::OnChangeStateRequest
virtual void OnChangeStateRequest(EqpStateRequest req)=0
Handling of a state chanhe request coming from the bus object.
IGenericBusEqp::OnBusClock
virtual void OnBusClock()=0
Method that contains operation linked to the bus clock.
_eqp_state_request
_eqp_state_request
Definition: GenericBusEqp.h:41
IGenericBusEqp::OnMessageReceive
virtual bool OnMessageReceive(unsigned int msgId, unsigned char *data, unsigned short size)=0
Method that shall manages the data reception coming from the bus object.
IGenericBusEqp::GetStreamFormat
virtual ICDStreamFormat GetStreamFormat()=0
It returns the Stream Format.
BUS_ERROR_MEDIUM
Definition: GenericBusEqp.h:34
IGenericBusEqp::OnBusError
virtual void OnBusError(std::string err, BusErrorSeverity severity)=0
Handling of the error coming from the bus object.
BUS_ERROR_HIGH
Definition: GenericBusEqp.h:35
_bus_error_severity
_bus_error_severity
Definition: GenericBusEqp.h:31
ICDStreamFormat
enum _icd_stream_format ICDStreamFormat
ICD_BIG_ENDIAN
Definition: GenericBusEqp.h:52
ICD_STREAM_FORMAT_WORD
Definition: GenericBusEqp.h:60
BUS_ERROR_LOW
Definition: GenericBusEqp.h:33
ICDEndianness
enum _icd_endianness ICDEndianness
IGenericBusEqp::GetEndianness
virtual ICDEndianness GetEndianness()=0
It returns the Endiannes.
STATE_REQUEST_STOP
Definition: GenericBusEqp.h:43
EqpStateRequest
enum _eqp_state_request EqpStateRequest
_icd_endianness
_icd_endianness
Definition: GenericBusEqp.h:50
ICD_STREAM_FORMAT_DOUBLEWORD
Definition: GenericBusEqp.h:61
IGenericBusEqp
Interface Class: it defines the methods that shall be implemented by a bus user (Equipment) ...
Definition: GenericBusEqp.h:66
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

EventImpl Member List

This is the complete list of members for EventImpl, including all inherited members.

dequeue(unsigned int req_id, unsigned long event_number) (defined in EventImpl) | EventImpl | virtual
Event()=default (defined in pu::Event) | pu::Event |
event_number (defined in pu::Event) | pu::Event | protected
init(void *ptr_p, unsigned int req_id_p, unsigned long event_number_p) (defined in pu::Event) | pu::Event |
ptr (defined in pu::Event) | pu::Event | protected
req_id (defined in pu::Event) | pu::Event | protected
~Event() (defined in pu::Event) | pu::Event | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

GenericBusObject Member List

This is the complete list of members for GenericBusObject, including all inherited members.

bind(ICDHandler *h) (defined in GenericBusObject) | GenericBusObject |
configure() (defined in GenericBusObject) | GenericBusObject |
GenericBusObject(GenericDriver *d) (defined in GenericBusObject) | GenericBusObject | explicit
getClockPeriod() (defined in GenericBusObject) | GenericBusObject |
getCommHandler() (defined in GenericBusObject) | GenericBusObject | inline
getErrorInjection() const (defined in GenericBusObject) | GenericBusObject |
getErrorInjectionList() (defined in GenericBusObject) | GenericBusObject |
getVersion() (defined in GenericBusObject) | GenericBusObject |
isStarted() (defined in GenericBusObject) | GenericBusObject |
logIsStarted() const (defined in GenericBusObject) | GenericBusObject |
logStart(int level, std::string fileName) (defined in GenericBusObject) | GenericBusObject |
logStop() (defined in GenericBusObject) | GenericBusObject |
msgError() (defined in GenericBusObject) | GenericBusObject |
msgReceived() (defined in GenericBusObject) | GenericBusObject |
msgSent() (defined in GenericBusObject) | GenericBusObject |
parseXMLConfig(std::string filename, IGenericBusEqp *eq=0) (defined in GenericBusObject) | GenericBusObject |
sendMessage(int msg_id, unsigned char *data, size_t sz) (defined in GenericBusObject) | GenericBusObject |
setAsMasterLogTimeTag() (defined in GenericBusObject) | GenericBusObject |
setErrorInjection(int err) (defined in GenericBusObject) | GenericBusObject |
start() (defined in GenericBusObject) | GenericBusObject |
stop() (defined in GenericBusObject) | GenericBusObject |
~GenericBusObject() (defined in GenericBusObject) | GenericBusObject |
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

GenericDriver Member List

This is the complete list of members for GenericDriver, including all inherited members.

GetClockPeriod()=0 | GenericDriver | pure virtual
GetErrorInjectionList()=0 | GenericDriver | pure virtual
GetVersion()=0 | GenericDriver | pure virtual
IsStarted()=0 | GenericDriver | pure virtual
LoadICDXML(std::string XMLfile_name, IGenericBusEqp *pBusUser=NULL)=0 | GenericDriver | pure virtual
MessageError()=0 | GenericDriver | pure virtual
MessageRead()=0 | GenericDriver | pure virtual
MessageSent()=0 | GenericDriver | pure virtual
RegisterToBus(IGenericBusEqp *pBusUser)=0 | GenericDriver | pure virtual
Send(int msgId, unsigned char *data, size_t sz, int err_type=-1)=0 | GenericDriver | pure virtual
setAsMasterTimeTag() (defined in GenericDriver) | GenericDriver | inlinevirtual
Start()=0 | GenericDriver | pure virtual
StartLog(int LogLevel, std::string FileLogName)=0 | GenericDriver | pure virtual
Stop()=0 | GenericDriver | pure virtual
StopLog()=0 | GenericDriver | pure virtual
~GenericDriver() | GenericDriver | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDAbstractContainer< T > Member List

This is the complete list of members for ICDAbstractContainer< T >, including all inherited members.

addItem(T *, bool)=0 (defined in ICDAbstractContainer< T >) | ICDAbstractContainer< T > | pure virtual
findItem(const std::string &)=0 (defined in ICDAbstractContainer< T >) | ICDAbstractContainer< T > | pure virtual
getItem(unsigned int)=0 (defined in ICDAbstractContainer< T >) | ICDAbstractContainer< T > | pure virtual
indexOf(T *)=0 (defined in ICDAbstractContainer< T >) | ICDAbstractContainer< T > | pure virtual
removeItem(unsigned int)=0 (defined in ICDAbstractContainer< T >) | ICDAbstractContainer< T > | pure virtual
removeItem(T *)=0 (defined in ICDAbstractContainer< T >) | ICDAbstractContainer< T > | pure virtual
size()=0 (defined in ICDAbstractContainer< T >) | ICDAbstractContainer< T > | pure virtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDAbstractFactory Member List

This is the complete list of members for ICDAbstractFactory, including all inherited members.

ICDAbstractFactory() (defined in ICDAbstractFactory) | ICDAbstractFactory | inline
new_ICDBooleanMessageField(unsigned int start, string name, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDDoubleMessageField(unsigned int start, unsigned int length, std::string name, double min, double max, double lsb, double offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDEnumMessageField(unsigned int start, unsigned int length, std::string name, ICDEnumMap &values, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDFloatMessageField(unsigned int start, unsigned int length, std::string name, float min, float max, float lsb, float offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDIntegerMessageField(unsigned int start, unsigned int length, std::string name, int min, int max, int lsb, int offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDLongLongMessageField(unsigned int start, unsigned int length, std::string name, long long min, long long max, long long lsb, long long offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDLongMessageField(unsigned int start, unsigned int length, std::string name, long min, long max, long lsb, long offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDMessage(unsigned int msg_id, std::string name, size_t bitlength, bool periodic=false, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDShortMessageField(unsigned int start, unsigned int length, std::string name, short min, short max, short lsb, short offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDStringMessageField(unsigned int start, unsigned int length, std::string name, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDUnsignedIntegerMessageField(unsigned int start, unsigned int length, std::string name, unsigned int min, unsigned int max, unsigned int lsb, unsigned int offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDUnsignedLongLongMessageField(unsigned int start, unsigned int length, std::string name, unsigned long long min, unsigned long long max, unsigned long long lsb, unsigned long long offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDUnsignedLongMessageField(unsigned int start, unsigned int length, std::string name, unsigned long min, unsigned long max, unsigned long lsb, unsigned long offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
new_ICDUnsignedShortMessageField(unsigned int start, unsigned int length, std::string name, unsigned short min, unsigned short max, unsigned short lsb, unsigned short offset, bool readonly=true) | ICDAbstractFactory | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDAbstractRaw Member List

This is the complete list of members for ICDAbstractRaw, including all inherited members.

_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
setBitStream(ICDEndianness, ICDStreamFormat) (defined in ICDAbstractRaw) | ICDAbstractRaw | virtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDBCDTranscoder< T > Member List

This is the complete list of members for ICDBCDTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD u, T *val) (defined in ICDBCDTranscoder< T >) | ICDBCDTranscoder< T > | virtual
decode(SignedICD, T *) (defined in ICDBCDTranscoder< T >) | ICDBCDTranscoder< T > | virtual
encode(T val, UnsignedICD *u) (defined in ICDBCDTranscoder< T >) | ICDBCDTranscoder< T > | virtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDBCDTranscoder(unsigned numDecimal=0, const std::string &n="BCD") (defined in ICDBCDTranscoder< T >) | ICDBCDTranscoder< T > |
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDBooleanMessageField Member List

This is the complete list of members for ICDBooleanMessageField, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_array_index (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_bit_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_shift (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bound_max (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_bound_min (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_cur (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_data_resolution (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_data_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_digit_display (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_end (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_enum_map (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_enum_map_original (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_field_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_incoming_changes (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_len (defined in ICDRawMessageField) | ICDRawMessageField | protected
_name (defined in ICDNamedItem) | ICDNamedItem | protected
_never_been_unpacked (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_never_set (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_obj_reserved (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_qty (defined in ICDRawMessageField) | ICDRawMessageField | protected
_range_max (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_range_min (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_readonly (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_sign_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_start (defined in ICDRawMessageField) | ICDRawMessageField | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
_ui_mask (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_unit (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
append(unsigned int) (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
assignNumber(unsigned int) (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiGenericMessageField | virtual
flushPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
get() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getAll() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getAsBoolean(bool *) override (defined in ICDBooleanMessageField) | ICDBooleanMessageField | virtual
getAsDouble(double *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsFloat(float *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsInt(int *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLong(long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLongLong(long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsShort(short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsStdString(std::string *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUInt(unsigned int *v) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getAsULong(unsigned long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsULongLong(unsigned long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUShort(unsigned short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getBitWeigth() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBoundMax() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getBoundMin() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getDataResolution() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDataType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDefaultUi() | ICDUiAbstractItem | virtual
getDisplayDigitBase() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEncoderName() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getEnd() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getFieldType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getLength() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getName() const | ICDNamedItem |
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getOffsetVal() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getRangeMax() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getRangeMin() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getStart() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getUiIdentifierName() const | ICDNamedItem |
getUiMask() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | inline
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
getUnit() (defined in ICDGenericMessageField) | ICDGenericMessageField |
hasPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDBooleanMessageField(unsigned int start, string name, bool readonly=true) (defined in ICDBooleanMessageField) | ICDBooleanMessageField |
ICDEnumMessageField(unsigned int start, unsigned int length, std::string name, ICDEnumMap &values, bool readonly=true) (defined in ICDEnumMessageField) | ICDEnumMessageField |
ICDGenericMessageField(unsigned int s, unsigned int l, std::string n, bool r) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
ICDRawMessageField(size_t start, size_t len) (defined in ICDRawMessageField) | ICDRawMessageField |
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiGenericMessageField(bool) | ICDUiGenericMessageField |
ICDUiObject() | ICDUiObject |
isInBound(unsigned int) (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
isInRange() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
isNeverBeenUnpacked() (defined in ICDGenericMessageField) | ICDGenericMessageField |
isReadOnly() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isReserved() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isSigned() override (defined in ICDEnumMessageField) | ICDEnumMessageField | inlinevirtual
mutex_set (defined in ICDRawMessageField) | ICDRawMessageField | protected
overlaps(ICDGenericMessageField *) (defined in ICDGenericMessageField) | ICDGenericMessageField | virtual
pack(ICDRawData *) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
packAsCharArray(ICDByte *v, ICDRawData *a, size_t qty) | ICDRawMessageField | protected
packUnsigned(UnsignedICD v, ICDRawData *a) | ICDRawMessageField | protected
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
releaseReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
s_toUiString(std::string in) | ICDNamedItem | static
sendICDEvent(unsigned int req_id) | ICDUiGenericMessageField | virtual
set(bool b) override (defined in ICDBooleanMessageField) | ICDBooleanMessageField | virtual
set(std::string) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
set(unsigned int) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
set(int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned long long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(float) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setBitStream(ICDEndianness, ICDStreamFormat) | ICDRawMessageField | virtual
setDataResolution(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setDisplayDigitBase(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setDisplayDigitBase(ICD__digit_display_base) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setEncodingFrom(ICDGenericTranscoder< unsigned int > *) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
setEncodingFrom(ICDGenericTranscoder< unsigned short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< float > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< double > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDStringTranscoder *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setName(const std::string &n) | ICDNamedItem |
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDGenericMessageField | virtual
setReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
setType(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setUnit(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unpack(ICDRawData) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
unpackAsCharArray(ICDRawData a, ICDByte *v, size_t qty) | ICDRawMessageField | protected
unpackSigned(ICDRawData a, SignedICD *v) | ICDRawMessageField | protected
unpackUnsigned(ICDRawData a, UnsignedICD *v) | ICDRawMessageField | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
~ICDRawMessageField() (defined in ICDRawMessageField) | ICDRawMessageField | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDCodeSignedTranscoder< T > Member List

This is the complete list of members for ICDCodeSignedTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD u, T *val) (defined in ICDCodeSignedTranscoder< T >) | ICDCodeSignedTranscoder< T > | virtual
decode(SignedICD s, T *val) (defined in ICDCodeSignedTranscoder< T >) | ICDCodeSignedTranscoder< T > | virtual
encode(T val, UnsignedICD *u) (defined in ICDCodeSignedTranscoder< T >) | ICDCodeSignedTranscoder< T > | virtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDCodeSignedTranscoder(unsigned lenModule, const std::string &n="CodeSigned") (defined in ICDCodeSignedTranscoder< T >) | ICDCodeSignedTranscoder< T > |
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDCodingMessageField Member List

This is the complete list of members for ICDCodingMessageField, including all inherited members.

setEncodingFrom(ICDGenericTranscoder< unsigned short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< float > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< double > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDStringTranscoder *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDDefaultStringTranscoder Member List

This is the complete list of members for ICDDefaultStringTranscoder, including all inherited members.

decode(std::string, std::string *) (defined in ICDDefaultStringTranscoder) | ICDDefaultStringTranscoder | virtual
encode(std::string, std::string *) (defined in ICDDefaultStringTranscoder) | ICDDefaultStringTranscoder | virtual
getName() (defined in ICDStringTranscoder) | ICDStringTranscoder | inline
ICDDefaultStringTranscoder(const std::string &n="DeafultStringTranscoder") (defined in ICDDefaultStringTranscoder) | ICDDefaultStringTranscoder |
ICDStringTranscoder(const std::string &n="StringTranscoder") (defined in ICDStringTranscoder) | ICDStringTranscoder | inline
~ICDDefaultStringTranscoder() (defined in ICDDefaultStringTranscoder) | ICDDefaultStringTranscoder | inline
~ICDStringTranscoder() (defined in ICDStringTranscoder) | ICDStringTranscoder | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDDefaultTranscoder< T > Member List

This is the complete list of members for ICDDefaultTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD u, T *val) (defined in ICDDefaultTranscoder< T >) | ICDDefaultTranscoder< T > | virtual
decode(SignedICD s, T *val) (defined in ICDDefaultTranscoder< T >) | ICDDefaultTranscoder< T > | virtual
encode(T val, UnsignedICD *u) (defined in ICDDefaultTranscoder< T >) | ICDDefaultTranscoder< T > | virtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDDefaultTranscoder(T lsb, T offset=0, const std::string &n="Default") (defined in ICDDefaultTranscoder< T >) | ICDDefaultTranscoder< T > |
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDDictionary Member List

This is the complete list of members for ICDDictionary, including all inherited members.

contains(std::string k) (defined in ICDDictionary) | ICDDictionary
get(std::string k, bool *v) (defined in ICDDictionary) | ICDDictionary
get(std::string k, long *v) (defined in ICDDictionary) | ICDDictionary
get(std::string k, double *v) (defined in ICDDictionary) | ICDDictionary
get(std::string k, std::string *v) (defined in ICDDictionary) | ICDDictionary
ICDDictionary() (defined in ICDDictionary) | ICDDictionary
isBoolean(std::string k) (defined in ICDDictionary) | ICDDictionary
isDouble(std::string k) (defined in ICDDictionary) | ICDDictionary
isLong(std::string k) (defined in ICDDictionary) | ICDDictionary
isString(std::string k) (defined in ICDDictionary) | ICDDictionary
keys() (defined in ICDDictionary) | ICDDictionary
set(std::string k, bool v) (defined in ICDDictionary) | ICDDictionary
set(std::string k, long v) (defined in ICDDictionary) | ICDDictionary
set(std::string k, double v) (defined in ICDDictionary) | ICDDictionary
set(std::string k, std::string v) (defined in ICDDictionary) | ICDDictionary
set(std::string k, const char *v) (defined in ICDDictionary) | ICDDictionary
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDEnumMessageField Member List

This is the complete list of members for ICDEnumMessageField, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_array_index (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_bit_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_shift (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bound_max (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_bound_min (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_cur (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_data_resolution (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_data_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_digit_display (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_end (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_enum_map (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_enum_map_original (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_field_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_incoming_changes (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_len (defined in ICDRawMessageField) | ICDRawMessageField | protected
_name (defined in ICDNamedItem) | ICDNamedItem | protected
_never_been_unpacked (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_never_set (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_obj_reserved (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_qty (defined in ICDRawMessageField) | ICDRawMessageField | protected
_range_max (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_range_min (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
_readonly (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_sign_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_start (defined in ICDRawMessageField) | ICDRawMessageField | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
_ui_mask (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_unit (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
append(unsigned int) (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
assignNumber(unsigned int) (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiGenericMessageField | virtual
flushPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
get() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getAll() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getAsBoolean(bool *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsDouble(double *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsFloat(float *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsInt(int *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLong(long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLongLong(long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsShort(short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsStdString(std::string *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUInt(unsigned int *v) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getAsULong(unsigned long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsULongLong(unsigned long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUShort(unsigned short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getBitWeigth() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBoundMax() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getBoundMin() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getDataResolution() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDataType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDefaultUi() | ICDUiAbstractItem | virtual
getDisplayDigitBase() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEncoderName() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getEnd() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getFieldType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getLength() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getName() const | ICDNamedItem |
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getOffsetVal() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getRangeMax() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getRangeMin() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
getStart() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getUiIdentifierName() const | ICDNamedItem |
getUiMask() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | inline
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
getUnit() (defined in ICDGenericMessageField) | ICDGenericMessageField |
hasPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDEnumMessageField(unsigned int start, unsigned int length, std::string name, ICDEnumMap &values, bool readonly=true) (defined in ICDEnumMessageField) | ICDEnumMessageField |
ICDGenericMessageField(unsigned int s, unsigned int l, std::string n, bool r) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
ICDRawMessageField(size_t start, size_t len) (defined in ICDRawMessageField) | ICDRawMessageField |
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiGenericMessageField(bool) | ICDUiGenericMessageField |
ICDUiObject() | ICDUiObject |
isInBound(unsigned int) (defined in ICDEnumMessageField) | ICDEnumMessageField | protected
isInRange() override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
isNeverBeenUnpacked() (defined in ICDGenericMessageField) | ICDGenericMessageField |
isReadOnly() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isReserved() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isSigned() override (defined in ICDEnumMessageField) | ICDEnumMessageField | inlinevirtual
mutex_set (defined in ICDRawMessageField) | ICDRawMessageField | protected
overlaps(ICDGenericMessageField *) (defined in ICDGenericMessageField) | ICDGenericMessageField | virtual
pack(ICDRawData *) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
packAsCharArray(ICDByte *v, ICDRawData *a, size_t qty) | ICDRawMessageField | protected
packUnsigned(UnsignedICD v, ICDRawData *a) | ICDRawMessageField | protected
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
releaseReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
s_toUiString(std::string in) | ICDNamedItem | static
sendICDEvent(unsigned int req_id) | ICDUiGenericMessageField | virtual
set(std::string) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
set(unsigned int) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
set(int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned long long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(float) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(bool) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setBitStream(ICDEndianness, ICDStreamFormat) | ICDRawMessageField | virtual
setDataResolution(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setDisplayDigitBase(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setDisplayDigitBase(ICD__digit_display_base) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setEncodingFrom(ICDGenericTranscoder< unsigned int > *) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
setEncodingFrom(ICDGenericTranscoder< unsigned short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< float > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< double > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDStringTranscoder *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setName(const std::string &n) | ICDNamedItem |
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDGenericMessageField | virtual
setReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
setType(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setUnit(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unpack(ICDRawData) override (defined in ICDEnumMessageField) | ICDEnumMessageField | virtual
unpackAsCharArray(ICDRawData a, ICDByte *v, size_t qty) | ICDRawMessageField | protected
unpackSigned(ICDRawData a, SignedICD *v) | ICDRawMessageField | protected
unpackUnsigned(ICDRawData a, UnsignedICD *v) | ICDRawMessageField | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
~ICDRawMessageField() (defined in ICDRawMessageField) | ICDRawMessageField | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDGenericContainer< T > Member List

This is the complete list of members for ICDGenericContainer< T >, including all inherited members.

_item_vect (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | protected
addItem(T *item, bool front=false) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
findItem(const std::string &) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
getItem(unsigned int pos) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
ICDGenericContainer() (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inline
indexOf(T *el) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
it (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | protected
removeItem(unsigned int pos) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
removeItem(T *el) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
removeItem(const std::string &) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
size() (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
~ICDGenericContainer() (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDGenericMessageField Member List

This is the complete list of members for ICDGenericMessageField, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_array_index (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_bit_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_shift (defined in ICDRawMessageField) | ICDRawMessageField | protected
_data_resolution (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_data_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_digit_display (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_end (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_field_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_incoming_changes (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_len (defined in ICDRawMessageField) | ICDRawMessageField | protected
_name (defined in ICDNamedItem) | ICDNamedItem | protected
_never_been_unpacked (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_obj_reserved (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_qty (defined in ICDRawMessageField) | ICDRawMessageField | protected
_readonly (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_sign_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_start (defined in ICDRawMessageField) | ICDRawMessageField | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
_ui_mask (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_unit (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiGenericMessageField | virtual
flushPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
get()=0 (defined in ICDGenericMessageField) | ICDGenericMessageField | pure virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getAll() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsBoolean(bool *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsDouble(double *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsFloat(float *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsInt(int *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLong(long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLongLong(long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsShort(short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsStdString(std::string *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUInt(unsigned int *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsULong(unsigned long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsULongLong(unsigned long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUShort(unsigned short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getBitWeigth() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBoundMax() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBoundMin() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getDataResolution() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDataType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDefaultUi() | ICDUiAbstractItem | virtual
getDisplayDigitBase() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEncoderName() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getEnd() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getFieldType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getLength() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getName() const | ICDNamedItem |
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getOffsetVal() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getRangeMax() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getRangeMin() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getStart() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getUiIdentifierName() const | ICDNamedItem |
getUiMask() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | inline
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
getUnit() (defined in ICDGenericMessageField) | ICDGenericMessageField |
hasPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDGenericMessageField(unsigned int s, unsigned int l, std::string n, bool r) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
ICDRawMessageField(size_t start, size_t len) (defined in ICDRawMessageField) | ICDRawMessageField |
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiGenericMessageField(bool) | ICDUiGenericMessageField |
ICDUiObject() | ICDUiObject |
isInRange()=0 (defined in ICDGenericMessageField) | ICDGenericMessageField | pure virtual
isNeverBeenUnpacked() (defined in ICDGenericMessageField) | ICDGenericMessageField |
isReadOnly() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isReserved() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isSigned()=0 (defined in ICDGenericMessageField) | ICDGenericMessageField | pure virtual
mutex_set (defined in ICDRawMessageField) | ICDRawMessageField | protected
overlaps(ICDGenericMessageField *) (defined in ICDGenericMessageField) | ICDGenericMessageField | virtual
pack(ICDRawData *)=0 (defined in ICDRawMessageField) | ICDRawMessageField | pure virtual
packAsCharArray(ICDByte *v, ICDRawData *a, size_t qty) | ICDRawMessageField | protected
packUnsigned(UnsignedICD v, ICDRawData *a) | ICDRawMessageField | protected
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
releaseReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
s_toUiString(std::string in) | ICDNamedItem | static
sendICDEvent(unsigned int req_id) | ICDUiGenericMessageField | virtual
set(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned long long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(long long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(float) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(bool) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setBitStream(ICDEndianness, ICDStreamFormat) | ICDRawMessageField | virtual
setDataResolution(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setDisplayDigitBase(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setDisplayDigitBase(ICD__digit_display_base) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setEncodingFrom(ICDGenericTranscoder< unsigned short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< float > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< double > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDStringTranscoder *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setName(const std::string &n) | ICDNamedItem |
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDGenericMessageField | virtual
setReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
setType(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setUnit(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unpack(ICDRawData)=0 (defined in ICDRawMessageField) | ICDRawMessageField | pure virtual
unpackAsCharArray(ICDRawData a, ICDByte *v, size_t qty) | ICDRawMessageField | protected
unpackSigned(ICDRawData a, SignedICD *v) | ICDRawMessageField | protected
unpackUnsigned(ICDRawData a, UnsignedICD *v) | ICDRawMessageField | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
~ICDRawMessageField() (defined in ICDRawMessageField) | ICDRawMessageField | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDGenericTranscoder< T > Member List

This is the complete list of members for ICDGenericTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD, T *)=0 (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | pure virtual
decode(SignedICD, T *)=0 (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | pure virtual
encode(T, UnsignedICD *)=0 (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | pure virtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDHandler Member List

This is the complete list of members for ICDHandler, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_bus_error_msg (defined in ICDHandler) | ICDHandler | protected
_messages (defined in ICDHandler) | ICDHandler | protected
_name (defined in ICDNamedItem) | ICDNamedItem | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
_version (defined in ICDHandler) | ICDHandler | protected
addMessage(ICDMessage *item) (defined in ICDHandler) | ICDHandler |
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) override | ICDHandler | virtual
findMessage(std::string n) (defined in ICDHandler) | ICDHandler |
findMessageById(unsigned int id) (defined in ICDHandler) | ICDHandler |
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getBusClockPeriod() | ICDHandler |
getBusErrorNotitication() (defined in ICDHandler) | ICDHandler |
getChangedMessages() | ICDHandler |
getDefaultUi() | ICDUiAbstractItem | virtual
GetEndianness() override | ICDHandler | virtual
getLastReceivedMessage() | ICDHandler |
getLastSentMessages() (defined in ICDHandler) | ICDHandler |
getMessage(unsigned int pos) (defined in ICDHandler) | ICDHandler |
getName() const | ICDNamedItem |
getParentItem() | ICDUiObject |
getparseXMLError() (defined in ICDHandler) | ICDHandler |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
GetStreamFormat() override | ICDHandler | virtual
getUiIdentifierName() const | ICDNamedItem |
getUiMask() (defined in ICDUiHandler) | ICDUiHandler | static
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
getVersion() const (defined in ICDHandler) | ICDHandler | inline
getXMLConfigFileName() (defined in ICDHandler) | ICDHandler |
ICDHandler(std::string n) (defined in ICDHandler) | ICDHandler |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiBusObject (defined in ICDHandler) | ICDHandler | friend
ICDUiHandler() (defined in ICDUiHandler) | ICDUiHandler |
ICDUiObject() | ICDUiObject |
indexOf(ICDMessage *el) (defined in ICDHandler) | ICDHandler |
isEnabled() (defined in ICDHandler) | ICDHandler | inline
OnBusClock() override | ICDHandler | virtual
OnBusError(std::string err, BusErrorSeverity severity) override | ICDHandler | virtual
OnChangeStateRequest(EqpStateRequest req) override | ICDHandler | virtual
OnMessageReceive(unsigned int msgId, unsigned char *data, unsigned short size) override | ICDHandler | virtual
parseXMLConfig(std::string filename, ICDAbstractFactory *factory=new ICDAbstractFactory()) | ICDHandler |
processICDEvent(unsigned int) (defined in ICDUiHandler) | ICDUiHandler |
raiseICDEvent(unsigned int req_id) | ICDUiHandler | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
removeMessage(unsigned int pos) (defined in ICDHandler) | ICDHandler |
removeMessage(ICDMessage *el) (defined in ICDHandler) | ICDHandler |
s_toBase10(std::string in) (defined in ICDHandler) | ICDHandler | static
s_tolower(std::string in) (defined in ICDHandler) | ICDHandler | static
s_toUiString(std::string in) | ICDNamedItem | static
sendICDEvent(unsigned int req_id) | ICDUiAbstractItem | virtual
setBusClockPeriod(unsigned long period) | ICDHandler | virtual
setCallbackOnMsgReceived(unsigned int msgId, std::function< void(ICDRawData)> func) (defined in ICDHandler) | ICDHandler | inline
setEndianness(std::string) (defined in ICDHandler) | ICDHandler |
setName(const std::string &n) | ICDNamedItem |
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) override | ICDHandler | virtual
setStreamFormat(std::string) (defined in ICDHandler) | ICDHandler |
setVersion(std::string v) (defined in ICDHandler) | ICDHandler | inline
size() (defined in ICDHandler) | ICDHandler |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDHandlersManager Member List

This is the complete list of members for ICDHandlersManager, including all inherited members.

_item_vect (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | protected
addItem(ICDHandler *item, bool front=false) (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
findItem(const std::string &) (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
getInstance() (defined in ICDHandlersManager) | ICDHandlersManager | static
getItem(unsigned int pos) (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
ICDGenericContainer() (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inline
indexOf(ICDHandler *el) (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
it (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | protected
removeItem(unsigned int pos) (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
removeItem(ICDHandler *el) (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
removeItem(const std::string &) (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
size() (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inlinevirtual
~ICDGenericContainer() (defined in ICDGenericContainer< ICDHandler >) | ICDGenericContainer< ICDHandler > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDIndexedContainer< T > Member List

This is the complete list of members for ICDIndexedContainer< T >, including all inherited members.

_item_map (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | protected
_item_vect (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | protected
_keygen (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | protected
addItem(T *item, bool front=false) override (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inlinevirtual
contains(const std::string &name, std::function< void(unsigned int)> func=nullptr) const (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inlineprotected
findItem(const std::string &key) override (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inlinevirtual
getItem(unsigned int pos) (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
ICDGenericContainer() (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inline
ICDIndexedContainer()=default (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > |
ICDIndexedContainer(std::function< std::string(T *)> keygen) (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inline
indexOf(T *item) override (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inlinevirtual
it (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | protected
removeItem(const std::string &key) override (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inlinevirtual
removeItem(unsigned int pos) override (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inlinevirtual
removeItem(T *item) override (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inlinevirtual
size() (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inlinevirtual
~ICDGenericContainer() (defined in ICDGenericContainer< T >) | ICDGenericContainer< T > | inline
~ICDIndexedContainer() (defined in ICDIndexedContainer< T >) | ICDIndexedContainer< T > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDMessage Member List

This is the complete list of members for ICDMessage, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_changed (defined in ICDMessage) | ICDMessage | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_fields (defined in ICDMessage) | ICDMessage | protected
_msg_id (defined in ICDMessage) | ICDMessage | protected
_name (defined in ICDNamedItem) | ICDNamedItem | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_periodic (defined in ICDMessage) | ICDMessage | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_raw_buff (defined in ICDRawMessage) | ICDRawMessage | protected
_rd_request (defined in ICDMessage) | ICDMessage | protected
_readonly (defined in ICDUiMessage) | ICDUiMessage | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_temp_raw_buff (defined in ICDRawMessage) | ICDRawMessage | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
_us_period_time (defined in ICDMessage) | ICDMessage | protected
addMessageField(ICDGenericMessageField *item) | ICDMessage |
commitChanges() | ICDMessage |
commitSingleField(ICDGenericMessageField *) | ICDMessage |
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDMessage | virtual
enulateChanges() | ICDMessage |
findMessageField(std::string n) | ICDMessage |
flushChanges() (defined in ICDMessage) | ICDMessage |
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getDefaultUi() | ICDUiAbstractItem | virtual
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getLastRawDataError() const (defined in ICDMessage) | ICDMessage |
getMessageField(unsigned int pos) | ICDMessage |
getMsgId() (defined in ICDMessage) | ICDMessage | inline
getMsgReceived() (defined in ICDMessage) | ICDMessage | inline
getMsgSent() (defined in ICDMessage) | ICDMessage | inline
getName() const | ICDNamedItem |
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getPriority() const | ICDMessage | inline
getRawBuffer() (defined in ICDRawMessage) | ICDRawMessage | inline
getRawBufferSize() (defined in ICDRawMessage) | ICDRawMessage | inline
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getUiIdentifierName() const | ICDNamedItem |
getUiMask() (defined in ICDUiMessage) | ICDUiMessage | static
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
getUsPeriodTime() (defined in ICDMessage) | ICDMessage | inline
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDMessage(unsigned int msg_id, std::string name, size_t length, bool periodic=false, bool readonly=true) | ICDMessage |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
ICDRawMessage(size_t) (defined in ICDRawMessage) | ICDRawMessage | protected
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiBusObject (defined in ICDMessage) | ICDMessage | friend
ICDUiMessage(bool readonly) | ICDUiMessage |
ICDUiObject() | ICDUiObject |
indexOf(ICDGenericMessageField *el) (defined in ICDMessage) | ICDMessage |
isChanged() (defined in ICDMessage) | ICDMessage | inline
isPeriodic() (defined in ICDMessage) | ICDMessage | inline
isReadOnly() (defined in ICDUiMessage) | ICDUiMessage | inline
isRequested() (defined in ICDMessage) | ICDMessage |
isVirtual() const | ICDMessage | inline
mutex_pack (defined in ICDRawMessage) | ICDRawMessage | protected
pack(ICDRawData) (defined in ICDMessage) | ICDMessage | virtual
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
removeMessageField(unsigned int pos) | ICDMessage |
removeMessageField(ICDGenericMessageField *el) | ICDMessage |
revertChanges() | ICDMessage |
s_toUiString(std::string in) | ICDNamedItem | static
sendICDEvent(unsigned int req_id) | ICDUiMessage | virtual
setAsVirtual(bool v) | ICDMessage | inline
setBitStream(ICDEndianness e, ICDStreamFormat f) override (defined in ICDMessage) | ICDMessage | virtual
setName(const std::string &n) | ICDNamedItem |
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
setPriority(int p) | ICDMessage | inline
setRequested(bool b) (defined in ICDMessage) | ICDMessage |
setUsPeriodTime(unsigned long t) (defined in ICDMessage) | ICDMessage | inline
size() | ICDMessage |
touch() | ICDMessage |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unpack(ICDRawData, bool is_revert=false) | ICDMessage | virtual
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
~ICDRawMessage() (defined in ICDRawMessage) | ICDRawMessage | inlineprotectedvirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDMessageContainer Member List

This is the complete list of members for ICDMessageContainer, including all inherited members.

_item_map (defined in ICDIndexedContainer< ICDMessage >) | ICDIndexedContainer< ICDMessage > | protected
_item_vect (defined in ICDGenericContainer< ICDMessage >) | ICDGenericContainer< ICDMessage > | protected
_keygen (defined in ICDIndexedContainer< ICDMessage >) | ICDIndexedContainer< ICDMessage > | protected
addItem(ICDMessage *item, bool front=false) override (defined in ICDMessageContainer) | ICDMessageContainer | inlinevirtual
contains(const std::string &name, std::function< void(unsigned int)> func=nullptr) const (defined in ICDIndexedContainer< ICDMessage >) | ICDIndexedContainer< ICDMessage > | inlineprotected
findItem(const int &key) (defined in ICDMessageContainer) | ICDMessageContainer | inline
findItem(const std::string &key) override (defined in ICDMessageContainer) | ICDMessageContainer | inlinevirtual
getItem(unsigned int pos) (defined in ICDGenericContainer< ICDMessage >) | ICDGenericContainer< ICDMessage > | inlinevirtual
ICDGenericContainer() (defined in ICDGenericContainer< ICDMessage >) | ICDGenericContainer< ICDMessage > | inline
ICDIndexedContainer()=default (defined in ICDIndexedContainer< ICDMessage >) | ICDIndexedContainer< ICDMessage > |
ICDIndexedContainer(std::function< std::string(ICDMessage *)> keygen) (defined in ICDIndexedContainer< ICDMessage >) | ICDIndexedContainer< ICDMessage > | inline
ICDMessageContainer() (defined in ICDMessageContainer) | ICDMessageContainer | inline
id_keygen(ICDMessage *m) (defined in ICDMessageContainer) | ICDMessageContainer | inlineprotected
indexOf(ICDMessage *item) override (defined in ICDMessageContainer) | ICDMessageContainer | inlinevirtual
it (defined in ICDGenericContainer< ICDMessage >) | ICDGenericContainer< ICDMessage > | protected
map_msg_id (defined in ICDMessageContainer) | ICDMessageContainer | protected
removeItem(const std::string &key) override (defined in ICDMessageContainer) | ICDMessageContainer | inlinevirtual
removeItem(unsigned int pos) override (defined in ICDMessageContainer) | ICDMessageContainer | inlinevirtual
removeItem(ICDMessage *item) override (defined in ICDMessageContainer) | ICDMessageContainer | inlinevirtual
size() (defined in ICDGenericContainer< ICDMessage >) | ICDGenericContainer< ICDMessage > | inlinevirtual
~ICDGenericContainer() (defined in ICDGenericContainer< ICDMessage >) | ICDGenericContainer< ICDMessage > | inline
~ICDIndexedContainer() (defined in ICDIndexedContainer< ICDMessage >) | ICDIndexedContainer< ICDMessage > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDNamedItem Member List

This is the complete list of members for ICDNamedItem, including all inherited members.

_name (defined in ICDNamedItem) | ICDNamedItem | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
getName() const | ICDNamedItem |
getUiIdentifierName() const | ICDNamedItem |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
s_toUiString(std::string in) | ICDNamedItem | static
setName(const std::string &n) | ICDNamedItem |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDNumericMessageField< T > Member List

This is the complete list of members for ICDNumericMessageField< T >, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_array_index (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_bit_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_shift (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bound_max (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
_bound_min (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
_data_resolution (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_data_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_digit_display (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_end (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_field_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_incoming_changes (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_is_signed (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
_len (defined in ICDRawMessageField) | ICDRawMessageField | protected
_lsb (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
_max (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
_min (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
_name (defined in ICDNamedItem) | ICDNamedItem | protected
_never_been_unpacked (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_obj_reserved (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_offset (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_qty (defined in ICDRawMessageField) | ICDRawMessageField | protected
_readonly (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_sign_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_start (defined in ICDRawMessageField) | ICDRawMessageField | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
_ui_mask (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_unit (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_val (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiGenericMessageField | virtual
flushPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
get() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getAll() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsBoolean(bool *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsDouble(double *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsFloat(float *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsInt(int *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsLong(long *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsLongLong(long long *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsShort(short *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsStdString(std::string *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUInt(unsigned int *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsULong(unsigned long *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsULongLong(unsigned long long *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getAsUShort(unsigned short *v) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getBitWeigth() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getBoundMax() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getBoundMin() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getDataResolution() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDataType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDefaultUi() | ICDUiAbstractItem | virtual
getDisplayDigitBase() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEncoderName() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getEnd() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getFieldType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getLength() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getName() const | ICDNamedItem |
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getOffsetVal() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getRangeMax() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getRangeMin() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
getStart() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getUiIdentifierName() const | ICDNamedItem |
getUiMask() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | inline
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
getUnit() (defined in ICDGenericMessageField) | ICDGenericMessageField |
hasPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDGenericMessageField(unsigned int s, unsigned int l, std::string n, bool r) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
ICDNumericMessageField(unsigned int start, unsigned int length, std::string name, T min, T max, T lsb=1, T offset=0, bool readonly=true) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > |
ICDRawMessageField(size_t start, size_t len) (defined in ICDRawMessageField) | ICDRawMessageField |
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiGenericMessageField(bool) | ICDUiGenericMessageField |
ICDUiObject() | ICDUiObject |
isInBound(T val) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > |
isInRange() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
isNeverBeenUnpacked() (defined in ICDGenericMessageField) | ICDGenericMessageField |
isReadOnly() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isReserved() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isSigned() (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
mutex_set (defined in ICDRawMessageField) | ICDRawMessageField | protected
overlaps(ICDGenericMessageField *) (defined in ICDGenericMessageField) | ICDGenericMessageField | virtual
pack(ICDRawData *a) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
packAsCharArray(ICDByte *v, ICDRawData *a, size_t qty) | ICDRawMessageField | protected
packUnsigned(UnsignedICD v, ICDRawData *a) | ICDRawMessageField | protected
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
releaseReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
s_toUiString(std::string in) | ICDNamedItem | static
sendICDEvent(unsigned int req_id) | ICDUiGenericMessageField | virtual
set(std::string x) | ICDNumericMessageField< T > | virtual
set(T val) | ICDNumericMessageField< T > |
set(unsigned int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned long long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(float) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(bool) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setBitStream(ICDEndianness, ICDStreamFormat) | ICDRawMessageField | virtual
setDataResolution(double) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
setDisplayDigitBase(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setDisplayDigitBase(ICD__digit_display_base) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setEncodingFrom(ICDGenericTranscoder< T > *obj) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > |
setEncodingFrom(ICDGenericTranscoder< unsigned short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< float > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< double > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDStringTranscoder *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setName(const std::string &n) | ICDNamedItem |
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDGenericMessageField | virtual
setReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
setType(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setUnit(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unpack(ICDRawData a) (defined in ICDNumericMessageField< T >) | ICDNumericMessageField< T > | virtual
unpackAsCharArray(ICDRawData a, ICDByte *v, size_t qty) | ICDRawMessageField | protected
unpackSigned(ICDRawData a, SignedICD *v) | ICDRawMessageField | protected
unpackUnsigned(ICDRawData a, UnsignedICD *v) | ICDRawMessageField | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
~ICDRawMessageField() (defined in ICDRawMessageField) | ICDRawMessageField | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDRawMessage Member List

This is the complete list of members for ICDRawMessage, including all inherited members.

_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_raw_buff (defined in ICDRawMessage) | ICDRawMessage | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_temp_raw_buff (defined in ICDRawMessage) | ICDRawMessage | protected
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getRawBuffer() (defined in ICDRawMessage) | ICDRawMessage | inline
getRawBufferSize() (defined in ICDRawMessage) | ICDRawMessage | inline
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDRawMessage(size_t) (defined in ICDRawMessage) | ICDRawMessage | protected
mutex_pack (defined in ICDRawMessage) | ICDRawMessage | protected
pack(ICDRawData)=0 (defined in ICDRawMessage) | ICDRawMessage | protectedpure virtual
setBitStream(ICDEndianness, ICDStreamFormat) (defined in ICDRawMessage) | ICDRawMessage | virtual
unpack(ICDRawData, bool is_revert)=0 (defined in ICDRawMessage) | ICDRawMessage | protectedpure virtual
~ICDRawMessage() (defined in ICDRawMessage) | ICDRawMessage | inlineprotectedvirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDRawMessageField Member List

This is the complete list of members for ICDRawMessageField, including all inherited members.

_array_index (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_bit_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_shift (defined in ICDRawMessageField) | ICDRawMessageField | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_len (defined in ICDRawMessageField) | ICDRawMessageField | protected
_qty (defined in ICDRawMessageField) | ICDRawMessageField | protected
_sign_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_start (defined in ICDRawMessageField) | ICDRawMessageField | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDRawMessage (defined in ICDRawMessageField) | ICDRawMessageField | friend
ICDRawMessageField(size_t start, size_t len) (defined in ICDRawMessageField) | ICDRawMessageField |
mutex_set (defined in ICDRawMessageField) | ICDRawMessageField | protected
pack(ICDRawData *)=0 (defined in ICDRawMessageField) | ICDRawMessageField | pure virtual
packAsCharArray(ICDByte *v, ICDRawData *a, size_t qty) | ICDRawMessageField | protected
packUnsigned(UnsignedICD v, ICDRawData *a) | ICDRawMessageField | protected
setBitStream(ICDEndianness, ICDStreamFormat) | ICDRawMessageField | virtual
unpack(ICDRawData)=0 (defined in ICDRawMessageField) | ICDRawMessageField | pure virtual
unpackAsCharArray(ICDRawData a, ICDByte *v, size_t qty) | ICDRawMessageField | protected
unpackSigned(ICDRawData a, SignedICD *v) | ICDRawMessageField | protected
unpackUnsigned(ICDRawData a, UnsignedICD *v) | ICDRawMessageField | protected
~ICDRawMessageField() (defined in ICDRawMessageField) | ICDRawMessageField | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDRealFloatingPointTranscoder< T > Member List

This is the complete list of members for ICDRealFloatingPointTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD u, T *val) (defined in ICDRealFloatingPointTranscoder< T >) | ICDRealFloatingPointTranscoder< T > | virtual
decode(SignedICD s, T *val) (defined in ICDRealFloatingPointTranscoder< T >) | ICDRealFloatingPointTranscoder< T > | virtual
encode(T val, UnsignedICD *u) (defined in ICDRealFloatingPointTranscoder< T >) | ICDRealFloatingPointTranscoder< T > | virtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDRealFloatingPointTranscoder(T lsb, T offset=0, const std::string &n="RealFloatingPoint") (defined in ICDRealFloatingPointTranscoder< T >) | ICDRealFloatingPointTranscoder< T > |
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDSpareTranscoder< T > Member List

This is the complete list of members for ICDSpareTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD, T *) (defined in ICDSpareTranscoder< T >) | ICDSpareTranscoder< T > | inlinevirtual
decode(SignedICD, T *) (defined in ICDSpareTranscoder< T >) | ICDSpareTranscoder< T > | inlinevirtual
encode(T, UnsignedICD *) (defined in ICDSpareTranscoder< T >) | ICDSpareTranscoder< T > | inlinevirtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDSpareTranscoder(const std::string &n) (defined in ICDSpareTranscoder< T >) | ICDSpareTranscoder< T > | inline
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDStringExprTranscoder< T > Member List

This is the complete list of members for ICDStringExprTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD u, T *val) (defined in ICDStringExprTranscoder< T >) | ICDStringExprTranscoder< T > | virtual
decode(SignedICD s, T *val) (defined in ICDStringExprTranscoder< T >) | ICDStringExprTranscoder< T > | virtual
encode(T val, UnsignedICD *u) (defined in ICDStringExprTranscoder< T >) | ICDStringExprTranscoder< T > | virtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDStringExprTranscoder(double lsb, double offset, double min, double max, const std::string &expr, const std::string &n="String Expression") (defined in ICDStringExprTranscoder< T >) | ICDStringExprTranscoder< T > |
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
~ICDStringExprTranscoder() (defined in ICDStringExprTranscoder< T >) | ICDStringExprTranscoder< T > |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDStringMessageField Member List

This is the complete list of members for ICDStringMessageField, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_array_index (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_length (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_bit_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_bit_shift (defined in ICDRawMessageField) | ICDRawMessageField | protected
_byte_val (defined in ICDStringMessageField) | ICDStringMessageField | protected
_data_resolution (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_data_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_digit_display (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_end (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_endianness (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_field_type (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_incoming_changes (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_len (defined in ICDRawMessageField) | ICDRawMessageField | protected
_name (defined in ICDNamedItem) | ICDNamedItem | protected
_never_been_unpacked (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_obj_reserved (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_qty (defined in ICDRawMessageField) | ICDRawMessageField | protected
_readonly (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_sign_mask (defined in ICDRawMessageField) | ICDRawMessageField | protected
_start (defined in ICDRawMessageField) | ICDRawMessageField | protected
_str_sz (defined in ICDStringMessageField) | ICDStringMessageField | protected
_streamformat (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_sz (defined in ICDAbstractRaw) | ICDAbstractRaw | protected
_ui_id (defined in ICDNamedItem) | ICDNamedItem | protected
_ui_mask (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_unit (defined in ICDGenericMessageField) | ICDGenericMessageField | protected
_val (defined in ICDStringMessageField) | ICDStringMessageField | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiGenericMessageField | virtual
flushPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
get() (defined in ICDStringMessageField) | ICDStringMessageField | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getAll() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsBoolean(bool *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsDouble(double *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsFloat(float *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsInt(int *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLong(long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsLongLong(long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsShort(short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsStdString(std::string *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUInt(unsigned int *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsULong(unsigned long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsULongLong(unsigned long long *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getAsUShort(unsigned short *) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBitLength() (defined in ICDAbstractRaw) | ICDAbstractRaw |
getBitWeigth() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBoundMax() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getBoundMin() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getDataResolution() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDataType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getDefaultUi() | ICDUiAbstractItem | virtual
getDisplayDigitBase() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEncoderName() (defined in ICDStringMessageField) | ICDStringMessageField | virtual
getEnd() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getEndianness() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getFieldType() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getLength() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getName() const | ICDNamedItem |
getNumOf(size_t data_sz, size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfByte(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfDWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getNumOfWord(size_t bit_sz) (defined in ICDAbstractRaw) | ICDAbstractRaw |
getOffsetVal() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getRangeMax() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getRangeMin() (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
getStart() (defined in ICDGenericMessageField) | ICDGenericMessageField |
getStreamFormat() const (defined in ICDAbstractRaw) | ICDAbstractRaw | inline
getUiIdentifierName() const | ICDNamedItem |
getUiMask() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | inline
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
getUnit() (defined in ICDGenericMessageField) | ICDGenericMessageField |
hasPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
ICDAbstractRaw(size_t) (defined in ICDAbstractRaw) | ICDAbstractRaw |
ICDGenericMessageField(unsigned int s, unsigned int l, std::string n, bool r) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ICDNamedItem(const std::string &n) | ICDNamedItem | explicit
ICDRawMessageField(size_t start, size_t len) (defined in ICDRawMessageField) | ICDRawMessageField |
ICDStringMessageField(unsigned int start, unsigned int length, std::string name, bool readonly=true) (defined in ICDStringMessageField) | ICDStringMessageField |
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiGenericMessageField(bool) | ICDUiGenericMessageField |
ICDUiObject() | ICDUiObject |
isInRange() (defined in ICDStringMessageField) | ICDStringMessageField | virtual
isNeverBeenUnpacked() (defined in ICDGenericMessageField) | ICDGenericMessageField |
isReadOnly() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isReserved() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isSigned() (defined in ICDStringMessageField) | ICDStringMessageField | inlinevirtual
mutex_set (defined in ICDRawMessageField) | ICDRawMessageField | protected
overlaps(ICDGenericMessageField *) (defined in ICDGenericMessageField) | ICDGenericMessageField | virtual
pack(ICDRawData *) | ICDStringMessageField | virtual
packAsCharArray(ICDByte *v, ICDRawData *a, size_t qty) | ICDRawMessageField | protected
packUnsigned(UnsignedICD v, ICDRawData *a) | ICDRawMessageField | protected
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
releaseReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
s_toUiString(std::string in) | ICDNamedItem | static
sendICDEvent(unsigned int req_id) | ICDUiGenericMessageField | virtual
set(std::string) (defined in ICDStringMessageField) | ICDStringMessageField | virtual
set(unsigned int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(int) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(short) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(unsigned long long) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(float) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
set(bool) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setBitStream(ICDEndianness, ICDStreamFormat) | ICDRawMessageField | virtual
setDataResolution(double) (defined in ICDGenericMessageField) | ICDGenericMessageField | inlinevirtual
setDisplayDigitBase(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setDisplayDigitBase(ICD__digit_display_base) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setEncodingFrom(ICDStringTranscoder *) (defined in ICDStringMessageField) | ICDStringMessageField | virtual
setEncodingFrom(ICDGenericTranscoder< unsigned short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< short > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< int > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< unsigned long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< long long > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< float > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setEncodingFrom(ICDGenericTranscoder< double > *) (defined in ICDCodingMessageField) | ICDCodingMessageField | inlinevirtual
setName(const std::string &n) | ICDNamedItem |
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDGenericMessageField | virtual
setReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
setType(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
setUnit(std::string) (defined in ICDGenericMessageField) | ICDGenericMessageField |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unpack(ICDRawData) | ICDStringMessageField | virtual
unpackAsCharArray(ICDRawData a, ICDByte *v, size_t qty) | ICDRawMessageField | protected
unpackSigned(ICDRawData a, SignedICD *v) | ICDRawMessageField | protected
unpackUnsigned(ICDRawData a, UnsignedICD *v) | ICDRawMessageField | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
~ICDRawMessageField() (defined in ICDRawMessageField) | ICDRawMessageField | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDStringTranscoder Member List

This is the complete list of members for ICDStringTranscoder, including all inherited members.

decode(std::string, std::string *)=0 (defined in ICDStringTranscoder) | ICDStringTranscoder | pure virtual
encode(std::string, std::string *)=0 (defined in ICDStringTranscoder) | ICDStringTranscoder | pure virtual
getName() (defined in ICDStringTranscoder) | ICDStringTranscoder | inline
ICDStringTranscoder(const std::string &n="StringTranscoder") (defined in ICDStringTranscoder) | ICDStringTranscoder | inline
~ICDStringTranscoder() (defined in ICDStringTranscoder) | ICDStringTranscoder | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDSwapTranscoder< T > Member List

This is the complete list of members for ICDSwapTranscoder< T >, including all inherited members.

_name (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | protected
decode(UnsignedICD u, T *val) (defined in ICDSwapTranscoder< T >) | ICDSwapTranscoder< T > | virtual
decode(SignedICD s, T *val) (defined in ICDSwapTranscoder< T >) | ICDSwapTranscoder< T > | virtual
encode(T val, UnsignedICD *u) (defined in ICDSwapTranscoder< T >) | ICDSwapTranscoder< T > | virtual
getName() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDDefaultTranscoder(T lsb, T offset=0, const std::string &n="Default") (defined in ICDDefaultTranscoder< T >) | ICDDefaultTranscoder< T > |
ICDGenericTranscoder(std::string n) (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inline
ICDSwapTranscoder(T lsb, T offset=0, size_t qty=sizeof(T), size_t blk=1, const std::string &n="SwapTranscoder") (defined in ICDSwapTranscoder< T >) | ICDSwapTranscoder< T > |
~ICDGenericTranscoder() (defined in ICDGenericTranscoder< T >) | ICDGenericTranscoder< T > | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDUiAbstractItem Member List

This is the complete list of members for ICDUiAbstractItem, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiAbstractItem | protectedvirtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getDefaultUi() | ICDUiAbstractItem | virtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiObject() | ICDUiObject |
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
sendICDEvent(unsigned int req_id) | ICDUiAbstractItem | virtual
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDUiAbstractObject Member List

This is the complete list of members for ICDUiAbstractObject, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
consumeICDEvent(unsigned int req_id, unsigned long event_number) (defined in ICDUiAbstractObject) | ICDUiAbstractObject | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
raiseICDEvent(unsigned int req_id) (defined in ICDUiAbstractObject) | ICDUiAbstractObject | virtual
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDUiBusObject Member List

This is the complete list of members for ICDUiBusObject, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) (defined in ICDUiBusObject) | ICDUiBusObject | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiBusObject(GenericBusObject *b, ICDHandler *h) (defined in ICDUiBusObject) | ICDUiBusObject |
ICDUiObject() | ICDUiObject |
raiseICDEvent(unsigned int req_id) (defined in ICDUiAbstractObject) | ICDUiAbstractObject | virtual
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
~ICDUiBusObject() (defined in ICDUiBusObject) | ICDUiBusObject |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDUiGenericMessageField Member List

This is the complete list of members for ICDUiGenericMessageField, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_incoming_changes (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_obj_reserved (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_readonly (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
_ui_mask (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiGenericMessageField | virtual
flushPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getDefaultUi() | ICDUiAbstractItem | virtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getUiMask() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | inline
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
hasPendingChanges() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
ICDHandler (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | friend
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiGenericMessageField(bool) | ICDUiGenericMessageField |
ICDUiMessage (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField | friend
ICDUiObject() | ICDUiObject |
isReadOnly() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
isReserved() (defined in ICDUiGenericMessageField) | ICDUiGenericMessageField |
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
releaseReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
sendICDEvent(unsigned int req_id) | ICDUiGenericMessageField | virtual
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
setReservationTo(ICDUiObject *) | ICDUiGenericMessageField |
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDUiHandler Member List

This is the complete list of members for ICDUiHandler, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiAbstractItem | protectedvirtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getDefaultUi() | ICDUiAbstractItem | virtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getUiMask() (defined in ICDUiHandler) | ICDUiHandler | static
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiHandler() (defined in ICDUiHandler) | ICDUiHandler |
ICDUiObject() | ICDUiObject |
processICDEvent(unsigned int) (defined in ICDUiHandler) | ICDUiHandler |
raiseICDEvent(unsigned int req_id) | ICDUiHandler | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
sendICDEvent(unsigned int req_id) | ICDUiAbstractItem | virtual
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDUiMessage Member List

This is the complete list of members for ICDUiMessage, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_readonly (defined in ICDUiMessage) | ICDUiMessage | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) | ICDUiMessage | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getDefaultUi() | ICDUiAbstractItem | virtual
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
getUiMask() (defined in ICDUiMessage) | ICDUiMessage | static
getUiObject(size_t index) | ICDUiAbstractItem |
getUiObjectsSize() (defined in ICDUiAbstractItem) | ICDUiAbstractItem | inline
ICDUiAbstractItem() (defined in ICDUiAbstractItem) | ICDUiAbstractItem |
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiMessage(bool readonly) | ICDUiMessage |
ICDUiObject() | ICDUiObject |
isReadOnly() (defined in ICDUiMessage) | ICDUiMessage | inline
raiseICDEvent(unsigned int req_id) | ICDUiAbstractItem | protectedvirtual
registerUiObject(ICDUiObject *item) | ICDUiAbstractItem |
sendICDEvent(unsigned int req_id) | ICDUiMessage | virtual
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
ui_objects (defined in ICDUiAbstractItem) | ICDUiAbstractItem | protected
unregisterUiObject(ICDUiObject *item) | ICDUiAbstractItem |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDUiObject Member List

This is the complete list of members for ICDUiObject, including all inherited members.

_abstract_obj_name (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
_parent (defined in ICDUiObject) | ICDUiObject | protected
_preferred_ui_display (defined in ICDUiAbstractObject) | ICDUiAbstractObject | protected
connectUi() (defined in ICDUiObject) | ICDUiObject | inlinevirtual
consumeICDEvent(unsigned int req_id, unsigned long event_number) (defined in ICDUiAbstractObject) | ICDUiAbstractObject | virtual
getAbstractObjectName() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
getParentItem() | ICDUiObject |
getPreferredUiRapresentation() | ICDUiAbstractObject | virtual
ICDUiAbstractObject() (defined in ICDUiAbstractObject) | ICDUiAbstractObject |
ICDUiObject() | ICDUiObject |
raiseICDEvent(unsigned int req_id) (defined in ICDUiAbstractObject) | ICDUiAbstractObject | virtual
setParentItem(ICDUiAbstractObject *p) | ICDUiObject |
setPreferredUiRapresentation(std::string) | ICDUiAbstractObject | virtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • ICDUtils
  • XMLParser
ICDUtils::XMLParser Member List

This is the complete list of members for ICDUtils::XMLParser, including all inherited members.

_doc (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser | protected
_doc_text (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser | protected
_error (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser | protected
_filename (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser | protected
fromstring(const std::string &xml) (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser |
getErrorString() (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser | inline
getXMLDoc() (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser | inline
getXMLFilename() (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser | inline
parse(const std::string &filename) (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser |
save() (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser |
saveAs(const std::string &filename) (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser |
XMLParser() (defined in ICDUtils::XMLParser) | ICDUtils::XMLParser |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

IGenericBusEqp Member List

This is the complete list of members for IGenericBusEqp, including all inherited members.

GetEndianness()=0 | IGenericBusEqp | pure virtual
GetStreamFormat()=0 | IGenericBusEqp | pure virtual
OnBusClock()=0 | IGenericBusEqp | pure virtual
OnBusError(std::string err, BusErrorSeverity severity)=0 | IGenericBusEqp | pure virtual
OnChangeStateRequest(EqpStateRequest req)=0 | IGenericBusEqp | pure virtual
OnMessageReceive(unsigned int msgId, unsigned char *data, unsigned short size)=0 | IGenericBusEqp | pure virtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

IGenericLoggerInterface Member List

This is the complete list of members for IGenericLoggerInterface, including all inherited members.

configure(std::string conf_path)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
getLevel()=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
isStarted()=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
logMessage(int level, bool is_tx, int msg_id, unsigned char *buff, size_t sz)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
logMessage(int level, bool is_tx, int msg_id, unsigned short *buff, size_t sz)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
logMessage(int level, bool is_tx, int msg_id, unsigned int *buff, size_t sz)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
logMessage(int level, bool is_tx, int msg_id, std::string)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
setDataHeader(std::string)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
setLevel(int l)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
setMasterTimeCallback()=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
start(int level, std::string logfile)=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
stop()=0 (defined in IGenericLoggerInterface) | IGenericLoggerInterface | pure virtual
timeTagclbk (defined in IGenericLoggerInterface) | IGenericLoggerInterface |
~IGenericLoggerInterface() (defined in IGenericLoggerInterface) | IGenericLoggerInterface | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • pu
  • Dequeueable
pu::Dequeueable Member List

This is the complete list of members for pu::Dequeueable, including all inherited members.

dequeue(unsigned int req_id, unsigned long event_number)=0 (defined in pu::Dequeueable) pu::Dequeueable pure virtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • pu
  • Event
pu::Event Member List

This is the complete list of members for pu::Event, including all inherited members.

dequeue(unsigned int req_id, unsigned long event_number)=0 (defined in pu::Dequeueable) | pu::Dequeueable | pure virtual
Event()=default (defined in pu::Event) | pu::Event |
event_number (defined in pu::Event) | pu::Event | protected
init(void *ptr_p, unsigned int req_id_p, unsigned long event_number_p) (defined in pu::Event) | pu::Event |
ptr (defined in pu::Event) | pu::Event | protected
req_id (defined in pu::Event) | pu::Event | protected
Task (defined in pu::Event) | pu::Event | friend
~Event() (defined in pu::Event) | pu::Event | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • pu
  • Interruptable
pu::Interruptable Member List

This is the complete list of members for pu::Interruptable, including all inherited members.

get_number() (defined in pu::Interruptable) | pu::Interruptable | inline
Interruptable() (defined in pu::Interruptable) | pu::Interruptable | inline
Interruptable(Interruptable &&obj) (defined in pu::Interruptable) | pu::Interruptable | inline
is_running() (defined in pu::Interruptable) | pu::Interruptable | inline
operator()() (defined in pu::Interruptable) | pu::Interruptable | inline
operator=(Interruptable &&obj) (defined in pu::Interruptable) | pu::Interruptable | inline
run()=0 (defined in pu::Interruptable) | pu::Interruptable | pure virtual
stop() (defined in pu::Interruptable) | pu::Interruptable | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • pu
  • Pool
pu::Pool Member List

This is the complete list of members for pu::Pool, including all inherited members.

dec_free_task() (defined in pu::Pool) | pu::Pool |
get_instance() (defined in pu::Pool) | pu::Pool | inlinestatic
get_number_free_task() const (defined in pu::Pool) | pu::Pool |
get_shared_queue() (defined in pu::Pool) | pu::Pool | inline
in_progress(Event *evt, Task *&task) (defined in pu::Pool) | pu::Pool |
in_queue() (defined in pu::Pool) | pu::Pool |
inc_free_task() (defined in pu::Pool) | pu::Pool |
init_pool() (defined in pu::Pool) | pu::Pool |
init_task() (defined in pu::Pool) | pu::Pool |
offer(Event *evt) | pu::Pool |
operator=(Pool const &)=delete (defined in pu::Pool) | pu::Pool |
Pool(Pool const &)=delete (defined in pu::Pool) | pu::Pool |
print_threads_handles() (defined in pu::Pool) | pu::Pool |
stop() (defined in pu::Pool) | pu::Pool |
terminate_task(num_task_t id) (defined in pu::Pool) | pu::Pool |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • pu
  • Queue
pu::Queue< T > Member List

This is the complete list of members for pu::Queue< T >, including all inherited members.

in_queue() (defined in pu::Queue< T >) | pu::Queue< T > | inline
pop() (defined in pu::Queue< T >) | pu::Queue< T > | inline
push(const T &value) (defined in pu::Queue< T >) | pu::Queue< T > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • pu
  • Task
pu::Task Member List

This is the complete list of members for pu::Task, including all inherited members.

get_number() (defined in pu::Interruptable) | pu::Interruptable | inline
in_progress(Event *evt) (defined in pu::Task) | pu::Task |
Interruptable() (defined in pu::Interruptable) | pu::Interruptable | inline
Interruptable(Interruptable &&obj) (defined in pu::Interruptable) | pu::Interruptable | inline
is_running() (defined in pu::Interruptable) | pu::Interruptable | inline
operator()() (defined in pu::Interruptable) | pu::Interruptable | inline
operator=(Interruptable &&obj) (defined in pu::Interruptable) | pu::Interruptable | inline
run() (defined in pu::Task) | pu::Task | virtual
stop() (defined in pu::Interruptable) | pu::Interruptable | inline
Task()=delete (defined in pu::Task) | pu::Task |
Task(Pool *p) (defined in pu::Task) | pu::Task |
Task(const Task &t) (defined in pu::Task) | pu::Task |
~Task() (defined in pu::Task) | pu::Task | inlinevirtual
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • attribute_iterator
rapidxml::attribute_iterator< Ch > Member List

This is the complete list of members for rapidxml::attribute_iterator< Ch >, including all inherited members.

attribute_iterator() (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
attribute_iterator(xml_node< Ch > *node) (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
difference_type typedef (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > |
iterator_category typedef (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > |
operator!=(const attribute_iterator< Ch > &rhs) (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
operator*() const (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
operator++() (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
operator++(int) (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
operator--() (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
operator--(int) (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
operator->() const (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
operator==(const attribute_iterator< Ch > &rhs) (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > | inline
pointer typedef (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > |
reference typedef (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > |
value_type typedef (defined in rapidxml::attribute_iterator< Ch >) | rapidxml::attribute_iterator< Ch > |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • eof_error
rapidxml::eof_error Member List

This is the complete list of members for rapidxml::eof_error, including all inherited members.

eof_error(const char *what, void *where) (defined in rapidxml::eof_error) | rapidxml::eof_error | inline
parse_error(const char *what, void *where) | rapidxml::parse_error | inline
where() const | rapidxml::parse_error | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • file
rapidxml::file< Ch > Member List

This is the complete list of members for rapidxml::file< Ch >, including all inherited members.

data() | rapidxml::file< Ch > | inline
data() const | rapidxml::file< Ch > | inline
file(const char *filename) | rapidxml::file< Ch > | inline
file(std::basic_istream< Ch > &stream) | rapidxml::file< Ch > | inline
size() const | rapidxml::file< Ch > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • memory_pool
rapidxml::memory_pool< Ch > Member List

This is the complete list of members for rapidxml::memory_pool< Ch >, including all inherited members.

allocate_attribute(const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0) | rapidxml::memory_pool< Ch > | inline
allocate_node(node_type type, const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0) | rapidxml::memory_pool< Ch > | inline
allocate_string(const Sch *source=0, std::size_t size=0) | rapidxml::memory_pool< Ch > | inline
clear() | rapidxml::memory_pool< Ch > | inline
clone_node(const xml_node< Ch > *source, xml_node< Ch > *result=0) | rapidxml::memory_pool< Ch > | inline
memory_pool() | rapidxml::memory_pool< Ch > | inline
nullstr() (defined in rapidxml::memory_pool< Ch >) | rapidxml::memory_pool< Ch > | inline
set_allocator(alloc_func *af, free_func *ff) | rapidxml::memory_pool< Ch > | inline
xmlns_xml(std::size_t &xmlns_size) (defined in rapidxml::memory_pool< Ch >) | rapidxml::memory_pool< Ch > | inline
xmlns_xmlns(std::size_t &xmlns_size) (defined in rapidxml::memory_pool< Ch >) | rapidxml::memory_pool< Ch > | inline
~memory_pool() | rapidxml::memory_pool< Ch > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • node_iterator
rapidxml::node_iterator< Ch > Member List

This is the complete list of members for rapidxml::node_iterator< Ch >, including all inherited members.

difference_type typedef (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > |
iterator_category typedef (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > |
node_iterator() (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
node_iterator(xml_node< Ch > *node) (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator!=(const node_iterator< Ch > &rhs) (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator*() const (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator++() (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator++(int) (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator--() (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator--(int) (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator->() const (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
operator==(const node_iterator< Ch > &rhs) (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > | inline
pointer typedef (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > |
reference typedef (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > |
value_type typedef (defined in rapidxml::node_iterator< Ch >) | rapidxml::node_iterator< Ch > |
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • parse_error
rapidxml::parse_error Member List

This is the complete list of members for rapidxml::parse_error, including all inherited members.

parse_error(const char *what, void *where) | rapidxml::parse_error | inline
where() const | rapidxml::parse_error | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • validation_error
rapidxml::validation_error Member List

This is the complete list of members for rapidxml::validation_error, including all inherited members.

validation_error(const char *what) (defined in rapidxml::validation_error) rapidxml::validation_error inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • xml_attribute
rapidxml::xml_attribute< Ch > Member List

This is the complete list of members for rapidxml::xml_attribute< Ch >, including all inherited members.

document() const | rapidxml::xml_attribute< Ch > | inline
local_name() const (defined in rapidxml::xml_attribute< Ch >) | rapidxml::xml_attribute< Ch > | inline
local_name_size() const (defined in rapidxml::xml_attribute< Ch >) | rapidxml::xml_attribute< Ch > | inline
m_name (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_name_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_parent (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
name() const | rapidxml::xml_base< Ch > | inline
name(const Ch *name, std::size_t size) | rapidxml::xml_base< Ch > | inline
name(const Ch *name) | rapidxml::xml_base< Ch > | inline
name_size() const | rapidxml::xml_base< Ch > | inline
next_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const | rapidxml::xml_attribute< Ch > | inline
parent() const | rapidxml::xml_base< Ch > | inline
previous_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const | rapidxml::xml_attribute< Ch > | inline
value() const | rapidxml::xml_base< Ch > | inline
value(const Ch *value, std::size_t size) | rapidxml::xml_base< Ch > | inline
value(const Ch *value) | rapidxml::xml_base< Ch > | inline
value_size() const | rapidxml::xml_base< Ch > | inline
xml_attribute() | rapidxml::xml_attribute< Ch > | inline
xml_base() (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | inline
xml_node< Ch > (defined in rapidxml::xml_attribute< Ch >) | rapidxml::xml_attribute< Ch > | friend
xmlns() const (defined in rapidxml::xml_attribute< Ch >) | rapidxml::xml_attribute< Ch > | inline
xmlns_size() const (defined in rapidxml::xml_attribute< Ch >) | rapidxml::xml_attribute< Ch > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • xml_base
rapidxml::xml_base< Ch > Member List

This is the complete list of members for rapidxml::xml_base< Ch >, including all inherited members.

m_name (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_name_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_parent (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
name() const | rapidxml::xml_base< Ch > | inline
name(const Ch *name, std::size_t size) | rapidxml::xml_base< Ch > | inline
name(const Ch *name) | rapidxml::xml_base< Ch > | inline
name_size() const | rapidxml::xml_base< Ch > | inline
parent() const | rapidxml::xml_base< Ch > | inline
value() const | rapidxml::xml_base< Ch > | inline
value(const Ch *value, std::size_t size) | rapidxml::xml_base< Ch > | inline
value(const Ch *value) | rapidxml::xml_base< Ch > | inline
value_size() const | rapidxml::xml_base< Ch > | inline
xml_base() (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • xml_document
rapidxml::xml_document< Ch > Member List

This is the complete list of members for rapidxml::xml_document< Ch >, including all inherited members.

allocate_attribute(const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0) | rapidxml::memory_pool< Ch > | inline
allocate_node(node_type type, const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0) | rapidxml::memory_pool< Ch > | inline
allocate_string(const Sch *source=0, std::size_t size=0) | rapidxml::memory_pool< Ch > | inline
append_attribute(xml_attribute< Ch > *attribute) | rapidxml::xml_node< Ch > | inline
append_node(xml_node< Ch > *child) | rapidxml::xml_node< Ch > | inline
clear() | rapidxml::xml_document< Ch > | inline
clone_node(const xml_node< Ch > *source, xml_node< Ch > *result=0) | rapidxml::memory_pool< Ch > | inline
contents(Ch const *contents, std::size_t contents_size) (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
contents() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
contents_size() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
document() const | rapidxml::xml_node< Ch > | inline
first_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
first_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
fixup(xml_node< Ch > *element, bool recurse) | rapidxml::xml_document< Ch > | inline
insert_attribute(xml_attribute< Ch > *where, xml_attribute< Ch > *attribute) | rapidxml::xml_node< Ch > | inline
insert_node(xml_node< Ch > *where, xml_node< Ch > *child) | rapidxml::xml_node< Ch > | inline
last_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
last_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
m_name (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_name_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_parent (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
memory_pool() | rapidxml::memory_pool< Ch > | inline
name() const | rapidxml::xml_base< Ch > | inline
name(const Ch *name, std::size_t size) | rapidxml::xml_base< Ch > | inline
name(const Ch *name) | rapidxml::xml_base< Ch > | inline
name_size() const | rapidxml::xml_base< Ch > | inline
next_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
nullstr() (defined in rapidxml::memory_pool< Ch >) | rapidxml::memory_pool< Ch > | inline
parent() const | rapidxml::xml_base< Ch > | inline
parse(Ch *text, xml_document< Ch > *parent=0) | rapidxml::xml_document< Ch > | inline
parse(Ch *text, xml_document< Ch > &parent) (defined in rapidxml::xml_document< Ch >) | rapidxml::xml_document< Ch > | inline
prefix(const Ch *prefix, std::size_t size) (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prefix(const Ch *prefix) (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prefix() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prefix_size() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prepend_attribute(xml_attribute< Ch > *attribute) | rapidxml::xml_node< Ch > | inline
prepend_node(xml_node< Ch > *child) | rapidxml::xml_node< Ch > | inline
previous_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
remove_all_attributes() | rapidxml::xml_node< Ch > | inline
remove_all_nodes() | rapidxml::xml_node< Ch > | inline
remove_attribute(xml_attribute< Ch > *where) | rapidxml::xml_node< Ch > | inline
remove_first_attribute() | rapidxml::xml_node< Ch > | inline
remove_first_node() | rapidxml::xml_node< Ch > | inline
remove_last_attribute() | rapidxml::xml_node< Ch > | inline
remove_last_node() | rapidxml::xml_node< Ch > | inline
remove_node(xml_node< Ch > *where) | rapidxml::xml_node< Ch > | inline
set_allocator(alloc_func *af, free_func *ff) | rapidxml::memory_pool< Ch > | inline
type() const | rapidxml::xml_node< Ch > | inline
type(node_type type) | rapidxml::xml_node< Ch > | inline
validate() const (defined in rapidxml::xml_document< Ch >) | rapidxml::xml_document< Ch > | inline
value() const | rapidxml::xml_base< Ch > | inline
value(const Ch *value, std::size_t size) | rapidxml::xml_base< Ch > | inline
value(const Ch *value) | rapidxml::xml_base< Ch > | inline
value_size() const | rapidxml::xml_base< Ch > | inline
xml_base() (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | inline
xml_document() | rapidxml::xml_document< Ch > | inline
xml_node(node_type type) | rapidxml::xml_node< Ch > | inline
xmlns() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
xmlns_lookup(Ch *&xmlns, size_t &xmlns_size, Ch *prefix, size_t prefix_size) const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
xmlns_size() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
xmlns_xml(std::size_t &xmlns_size) (defined in rapidxml::memory_pool< Ch >) | rapidxml::memory_pool< Ch > | inline
xmlns_xmlns(std::size_t &xmlns_size) (defined in rapidxml::memory_pool< Ch >) | rapidxml::memory_pool< Ch > | inline
~memory_pool() | rapidxml::memory_pool< Ch > | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

  • rapidxml
  • xml_node
rapidxml::xml_node< Ch > Member List

This is the complete list of members for rapidxml::xml_node< Ch >, including all inherited members.

append_attribute(xml_attribute< Ch > *attribute) | rapidxml::xml_node< Ch > | inline
append_node(xml_node< Ch > *child) | rapidxml::xml_node< Ch > | inline
contents(Ch const *contents, std::size_t contents_size) (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
contents() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
contents_size() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
document() const | rapidxml::xml_node< Ch > | inline
first_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
first_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
insert_attribute(xml_attribute< Ch > *where, xml_attribute< Ch > *attribute) | rapidxml::xml_node< Ch > | inline
insert_node(xml_node< Ch > *where, xml_node< Ch > *child) | rapidxml::xml_node< Ch > | inline
last_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
last_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
m_name (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_name_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_parent (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
m_value_size (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | protected
name() const | rapidxml::xml_base< Ch > | inline
name(const Ch *name, std::size_t size) | rapidxml::xml_base< Ch > | inline
name(const Ch *name) | rapidxml::xml_base< Ch > | inline
name_size() const | rapidxml::xml_base< Ch > | inline
next_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
parent() const | rapidxml::xml_base< Ch > | inline
prefix(const Ch *prefix, std::size_t size) (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prefix(const Ch *prefix) (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prefix() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prefix_size() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
prepend_attribute(xml_attribute< Ch > *attribute) | rapidxml::xml_node< Ch > | inline
prepend_node(xml_node< Ch > *child) | rapidxml::xml_node< Ch > | inline
previous_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const | rapidxml::xml_node< Ch > | inline
remove_all_attributes() | rapidxml::xml_node< Ch > | inline
remove_all_nodes() | rapidxml::xml_node< Ch > | inline
remove_attribute(xml_attribute< Ch > *where) | rapidxml::xml_node< Ch > | inline
remove_first_attribute() | rapidxml::xml_node< Ch > | inline
remove_first_node() | rapidxml::xml_node< Ch > | inline
remove_last_attribute() | rapidxml::xml_node< Ch > | inline
remove_last_node() | rapidxml::xml_node< Ch > | inline
remove_node(xml_node< Ch > *where) | rapidxml::xml_node< Ch > | inline
type() const | rapidxml::xml_node< Ch > | inline
type(node_type type) | rapidxml::xml_node< Ch > | inline
validate() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
value() const | rapidxml::xml_base< Ch > | inline
value(const Ch *value, std::size_t size) | rapidxml::xml_base< Ch > | inline
value(const Ch *value) | rapidxml::xml_base< Ch > | inline
value_size() const | rapidxml::xml_base< Ch > | inline
xml_base() (defined in rapidxml::xml_base< Ch >) | rapidxml::xml_base< Ch > | inline
xml_node(node_type type) | rapidxml::xml_node< Ch > | inline
xmlns() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
xmlns_lookup(Ch *&xmlns, size_t &xmlns_size, Ch *prefix, size_t prefix_size) const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
xmlns_size() const (defined in rapidxml::xml_node< Ch >) | rapidxml::xml_node< Ch > | inline
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/ext/genericBusInterface.h Source File

  • include
  • ext
genericBusInterface.h
Go to the documentation of this file.
1
21 #ifndef GENERICINTERFACE
22 #define GENERICINTERFACE
23
24 #ifdef WIN32__
25 #define _EXPORT_GENERICINTERFACE __declspec(dllexport)
26 #else
27 #define _EXPORT_GENERICINTERFACE
28 #endif
29
30 #include <string>
31 #include <vector>
32
33 //Stringa utuilizzata per verificare la compatibilita' tra bus driver e bus user interface (gestita da svn )
34 #define GENERICINTERFACE_API_VERSION "$Revision: 122971 $"
35
36 class IGenericBusEqp;
37
39 class GenericDriver
40 {
41
42 public:
44 virtual ~GenericDriver() {}
45
47 virtual int LoadICDXML(std::string XMLfile_name, IGenericBusEqp *pBusUser = NULL) = 0;
48
50 virtual bool RegisterToBus(IGenericBusEqp *pBusUser) = 0;
51
53 virtual bool Start() = 0;
54
56 virtual bool Stop() = 0;
57
59 virtual bool Send(int msgId, unsigned char *data, size_t sz, int err_type = -1) = 0;
60
62 virtual unsigned long GetClockPeriod() = 0;
63
65 virtual bool IsStarted() = 0;
66
68 virtual long MessageSent() = 0;
69
71 virtual long MessageRead() = 0;
72
74 virtual long MessageError() = 0;
75
82 virtual int StartLog(int LogLevel, std::string FileLogName) = 0;
83
85 virtual void StopLog() = 0;
86
88 virtual std::string GetVersion() = 0;
89
91 virtual std::vector<std::string> GetErrorInjectionList() = 0;
92
96 virtual bool setAsMasterTimeTag() { return false; }
97 };
98
99
101 extern "C" _EXPORT_GENERICINTERFACE GenericDriver *CreateGenericDriver();
102
104 extern "C" _EXPORT_GENERICINTERFACE int DestroyGenericDriver(GenericDriver *driver);
105
107 extern "C" _EXPORT_GENERICINTERFACE std::string GetGenericDriverAPIVersion();
108 #endif // GENERICINTERFACE
GenericDriver::GetClockPeriod
virtual unsigned long GetClockPeriod()=0
It returns the clock period [in microseconds].
GenericDriver
Bus Interface Class.
Definition: genericBusInterface.h:39
GenericDriver::~GenericDriver
virtual ~GenericDriver()
virtual destructor
Definition: genericBusInterface.h:44
GenericDriver::MessageRead
virtual long MessageRead()=0
It returns the number of received messages.
GenericDriver::IsStarted
virtual bool IsStarted()=0
Retrun the status of bus; True if started, False otherwise.
GenericDriver::LoadICDXML
virtual int LoadICDXML(std::string XMLfile_name, IGenericBusEqp *pBusUser=NULL)=0
Load ICD information by xml file; pBusUser (if passed) is for error forwarding.
CreateGenericDriver
GenericDriver * CreateGenericDriver()
Return a pointer (in term of GenericDriver) of a derived bus object.
GenericDriver::GetVersion
virtual std::string GetVersion()=0
Ritorna la versione come stringa.
GenericDriver::MessageSent
virtual long MessageSent()=0
It returns the number of transmitted messages.
GenericDriver::StartLog
virtual int StartLog(int LogLevel, std::string FileLogName)=0
Start Log activity : LogLevel values: 1 = Errors only 2 = Errors and data changes only 3 = Errors and...
GenericDriver::Send
virtual bool Send(int msgId, unsigned char *data, size_t sz, int err_type=-1)=0
It Send the message identified by msgId ( err_type is optional )
GetGenericDriverAPIVersion
std::string GetGenericDriverAPIVersion()
Return the revision string of the GenericDriver.
GenericDriver::StopLog
virtual void StopLog()=0
Stop the log activity.
GenericDriver::Start
virtual bool Start()=0
It Start the bus.
GenericDriver::MessageError
virtual long MessageError()=0
It returns the number of wrong messages ( both received and transmitted )
DestroyGenericDriver
int DestroyGenericDriver(GenericDriver *driver)
Destroy the bus object passed as argument.
GenericDriver::Stop
virtual bool Stop()=0
It Stop the bus.
GenericDriver::RegisterToBus
virtual bool RegisterToBus(IGenericBusEqp *pBusUser)=0
It bind the Equipment to the Bus.
GenericDriver::GetErrorInjectionList
virtual std::vector< std::string > GetErrorInjectionList()=0
Metodo che restituisce una lista di stringhe corrispondenti al tipo di errore iniettabile.
IGenericBusEqp
Interface Class: it defines the methods that shall be implemented by a bus user (Equipment) ...
Definition: GenericBusEqp.h:66
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdabstractfactory.h Source File

  • include
icdabstractfactory.h
Go to the documentation of this file.
1
9 #ifndef ICDABSTRACTFACTORY_H
10 #define ICDABSTRACTFACTORY_H
11
12 #include "icdmessage.h"
13 #include "icdmessagefield.h"
14
15
20 class ICDAbstractFactory
21 {
22 public:
23 ICDAbstractFactory() {}
24
33 virtual ICDMessage *new_ICDMessage(unsigned int msg_id,
34 std::string name,
35 size_t bitlength,
36 bool periodic=false,
37 bool readonly=true )
38 {
39 return new ICDMessage(msg_id,name,bitlength,periodic,readonly);
40 }
41
51 virtual ICDGenericMessageField *new_ICDEnumMessageField(unsigned int start,
52 unsigned int length,
53 std::string name,
54 ICDEnumMap &values,
55 bool readonly=true ) {
56 return new ICDEnumMessageField(start,length,name,values,readonly);
57 }
58
66 virtual ICDGenericMessageField *new_ICDBooleanMessageField(unsigned int start,
67 string name,
68 bool readonly=true) {
69 return new ICDBooleanMessageField(start,name,readonly);
70 }
71
80 virtual ICDGenericMessageField *new_ICDStringMessageField(unsigned int start,
81 unsigned int length,
82 std::string name,
83 bool readonly=true) {
84 return new ICDStringMessageField(start,length,name,readonly);
85 }
86
99 virtual ICDGenericMessageField *new_ICDIntegerMessageField(
100 unsigned int start,
101 unsigned int length,
102 std::string name,
103 int min,
104 int max,
105 int lsb,
106 int offset,
107 bool readonly=true) {
108 return new ICDNumericMessageField<int>(start,length,name,min,max,lsb,offset,readonly);
109 }
110
123 virtual ICDGenericMessageField *new_ICDUnsignedIntegerMessageField(
124 unsigned int start,
125 unsigned int length,
126 std::string name,
127 unsigned int min,
128 unsigned int max,
129 unsigned int lsb,
130 unsigned int offset,
131 bool readonly=true) {
132 return new ICDNumericMessageField<unsigned int>(start,length,name,min,max,lsb,offset,readonly);
133 }
134
147 virtual ICDGenericMessageField *new_ICDShortMessageField(
148 unsigned int start,
149 unsigned int length,
150 std::string name,
151 short min,
152 short max,
153 short lsb,
154 short offset,
155 bool readonly=true) {
156 return new ICDNumericMessageField<short>(start,length,name,min,max,lsb,offset,readonly);
157 }
158
171 virtual ICDGenericMessageField *new_ICDUnsignedShortMessageField(
172 unsigned int start,
173 unsigned int length,
174 std::string name,
175 unsigned short min,
176 unsigned short max,
177 unsigned short lsb,
178 unsigned short offset,
179 bool readonly=true) {
180 return new ICDNumericMessageField<unsigned short>(start,length,name,min,max,lsb,offset,readonly);
181 }
182
195 virtual ICDGenericMessageField *new_ICDLongMessageField(
196 unsigned int start,
197 unsigned int length,
198 std::string name,
199 long min,
200 long max,
201 long lsb,
202 long offset,
203 bool readonly=true) {
204 return new ICDNumericMessageField<long>(start,length,name,min,max,lsb,offset,readonly);
205 }
206
219 virtual ICDGenericMessageField *new_ICDUnsignedLongMessageField(
220 unsigned int start,
221 unsigned int length,
222 std::string name,
223 unsigned long min,
224 unsigned long max,
225 unsigned long lsb,
226 unsigned long offset,
227 bool readonly=true) {
228 return new ICDNumericMessageField<unsigned long>(start,length,name,min,max,lsb,offset,readonly);
229 }
230
231
244 virtual ICDGenericMessageField *new_ICDLongLongMessageField(
245 unsigned int start,
246 unsigned int length,
247 std::string name,
248 long long min,
249 long long max,
250 long long lsb,
251 long long offset,
252 bool readonly=true) {
253 return new ICDNumericMessageField<long long>(start,length,name,min,max,lsb,offset,readonly);
254 }
255
268 virtual ICDGenericMessageField *new_ICDUnsignedLongLongMessageField(
269 unsigned int start,
270 unsigned int length,
271 std::string name,
272 unsigned long long min,
273 unsigned long long max,
274 unsigned long long lsb,
275 unsigned long long offset,
276 bool readonly=true) {
277 return new ICDNumericMessageField<unsigned long long>(start,length,name,min,max,lsb,offset,readonly);
278 }
279
292 virtual ICDGenericMessageField *new_ICDFloatMessageField(
293 unsigned int start,
294 unsigned int length,
295 std::string name,
296 float min,
297 float max,
298 float lsb,
299 float offset,
300 bool readonly=true) {
301 return new ICDNumericMessageField<float>(start,length,name,min,max,lsb,offset,readonly);
302 }
303
316 virtual ICDGenericMessageField *new_ICDDoubleMessageField(
317 unsigned int start,
318 unsigned int length,
319 std::string name ,
320 double min,
321 double max,
322 double lsb,
323 double offset,
324 bool readonly=true) {
325 return new ICDNumericMessageField<double>(start,length,name,min,max,lsb,offset,readonly);
326 }
327 };
328
329 #endif // ICDABSTRACTFACTORY_H
ICDStringMessageField
Definition: icdmessagefield.h:227
ICDAbstractFactory::new_ICDUnsignedShortMessageField
virtual ICDGenericMessageField * new_ICDUnsignedShortMessageField(unsigned int start, unsigned int length, std::string name, unsigned short min, unsigned short max, unsigned short lsb, unsigned short offset, bool readonly=true)
new_ICDUnsignedShortMessageField: build a unsigned short typed ICDNumericMessageField with the given ...
Definition: icdabstractfactory.h:171
ICDAbstractFactory::new_ICDEnumMessageField
virtual ICDGenericMessageField * new_ICDEnumMessageField(unsigned int start, unsigned int length, std::string name, ICDEnumMap &values, bool readonly=true)
new_ICDEnumMessageField: build a ICDEnumMessageField with the given arguments
Definition: icdabstractfactory.h:51
ICDAbstractFactory::new_ICDMessage
virtual ICDMessage * new_ICDMessage(unsigned int msg_id, std::string name, size_t bitlength, bool periodic=false, bool readonly=true)
new_ICDMessage
Definition: icdabstractfactory.h:33
ICDEnumMessageField
The ICDEnumMessageField class.
Definition: icdmessagefield.h:170
ICDAbstractFactory::new_ICDShortMessageField
virtual ICDGenericMessageField * new_ICDShortMessageField(unsigned int start, unsigned int length, std::string name, short min, short max, short lsb, short offset, bool readonly=true)
new_ICDShortMessageField: build a short typed ICDNumericMessageField with the given arguments ...
Definition: icdabstractfactory.h:147
icdmessage.h
ICDAbstractFactory
The ICDAbstractFactory class It it used to return a generic oject implementations of the required ICD...
Definition: icdabstractfactory.h:20
ICDMessage
The ICDMessage class.
Definition: icdmessage.h:24
ICDNumericMessageField
Definition: icdmessagefield.h:254
ICDAbstractFactory::new_ICDDoubleMessageField
virtual ICDGenericMessageField * new_ICDDoubleMessageField(unsigned int start, unsigned int length, std::string name, double min, double max, double lsb, double offset, bool readonly=true)
new_ICDDoubleMessageField: build a double typed ICDNumericMessageField with the given arguments ...
Definition: icdabstractfactory.h:316
ICDBooleanMessageField
The ICDBooleanMessageField class.
Definition: icdmessagefield.h:218
ICDAbstractFactory::new_ICDFloatMessageField
virtual ICDGenericMessageField * new_ICDFloatMessageField(unsigned int start, unsigned int length, std::string name, float min, float max, float lsb, float offset, bool readonly=true)
new_ICDFloatMessageField: build a float typed ICDNumericMessageField with the given arguments ...
Definition: icdabstractfactory.h:292
ICDAbstractFactory::new_ICDUnsignedIntegerMessageField
virtual ICDGenericMessageField * new_ICDUnsignedIntegerMessageField(unsigned int start, unsigned int length, std::string name, unsigned int min, unsigned int max, unsigned int lsb, unsigned int offset, bool readonly=true)
new_ICDUnsignedIntegerMessageField: build a unsigned int typed ICDNumericMessageField with the given ...
Definition: icdabstractfactory.h:123
ICDAbstractFactory::new_ICDUnsignedLongLongMessageField
virtual ICDGenericMessageField * new_ICDUnsignedLongLongMessageField(unsigned int start, unsigned int length, std::string name, unsigned long long min, unsigned long long max, unsigned long long lsb, unsigned long long offset, bool readonly=true)
new_ICDUnsignedLongLongMessageField: build a unsigned long long typed ICDNumericMessageField with the...
Definition: icdabstractfactory.h:268
ICDAbstractFactory::new_ICDUnsignedLongMessageField
virtual ICDGenericMessageField * new_ICDUnsignedLongMessageField(unsigned int start, unsigned int length, std::string name, unsigned long min, unsigned long max, unsigned long lsb, unsigned long offset, bool readonly=true)
new_ICDUnsignedLongMessageField: build a unsigned long typed ICDNumericMessageField with the given ar...
Definition: icdabstractfactory.h:219
icdmessagefield.h
ICDGenericMessageField
The ICDGenericMessageField class.
Definition: icdmessagefield.h:76
ICDAbstractFactory::new_ICDBooleanMessageField
virtual ICDGenericMessageField * new_ICDBooleanMessageField(unsigned int start, string name, bool readonly=true)
new_ICDBooleanMessageField: build a ICDBooleanMessageField with the given arguments ...
Definition: icdabstractfactory.h:66
ICDAbstractFactory::new_ICDStringMessageField
virtual ICDGenericMessageField * new_ICDStringMessageField(unsigned int start, unsigned int length, std::string name, bool readonly=true)
new_ICDStringMessageField: build a ICDStringMessageField with the given arguments ...
Definition: icdabstractfactory.h:80
ICDAbstractFactory::new_ICDLongMessageField
virtual ICDGenericMessageField * new_ICDLongMessageField(unsigned int start, unsigned int length, std::string name, long min, long max, long lsb, long offset, bool readonly=true)
new_ICDLongMessageField: build a long typed ICDNumericMessageField with the given arguments ...
Definition: icdabstractfactory.h:195
ICDAbstractFactory::new_ICDIntegerMessageField
virtual ICDGenericMessageField * new_ICDIntegerMessageField(unsigned int start, unsigned int length, std::string name, int min, int max, int lsb, int offset, bool readonly=true)
new_ICDIntegerMessageField: build a int typed ICDNumericMessageField with the given arguments ...
Definition: icdabstractfactory.h:99
ICDAbstractFactory::new_ICDLongLongMessageField
virtual ICDGenericMessageField * new_ICDLongLongMessageField(unsigned int start, unsigned int length, std::string name, long long min, long long max, long long lsb, long long offset, bool readonly=true)
new_ICDLongLongMessageField: build a long long typed ICDNumericMessageField with the given arguments ...
Definition: icdabstractfactory.h:244
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdcontainers.h Source File

  • include
icdcontainers.h
Go to the documentation of this file.
1
9 #ifndef CONTAINERS_H
10 #define CONTAINERS_H
11
12 #include <string>
13 #include <vector>
14
15 #define USE_INDEXED_CONTAINER 1
16
17 #if USE_INDEXED_CONTAINER
18 #include <map>
19 #include <functional>
20 #endif
21
22 template <class T> class ICDAbstractContainer {
23 public:
24 virtual bool addItem(T *,bool) = 0;
25 virtual bool removeItem(unsigned int) = 0;
26 virtual bool removeItem(T *) = 0;
27 virtual T *getItem(unsigned int) = 0;
28 virtual int indexOf(T *) = 0;
29 virtual T *findItem(const std::string&) = 0;
30 virtual size_t size() = 0;
31 };
32
33
34 template <class T> class ICDGenericContainer: public ICDAbstractContainer<T> {
35 public:
36 ICDGenericContainer() {}
37
38 ~ICDGenericContainer() {
39 this->_item_vect.erase(this->_item_vect.begin(),this->_item_vect.end());
40 }
41
42 virtual bool addItem( T *item,bool front=false) {
43 if ( front )
44 {
45 this->_item_vect.insert(this->_item_vect.begin(),item);
46 }
47 else
48 {
49 this->_item_vect.push_back(item);
50 }
51 return true;
52 }
53
54 virtual bool removeItem(unsigned int pos) {
55 this->it = this->_item_vect.begin();
56 this->it +=pos;
57 if ( this->it != this->_item_vect.end() ) {
58 this->_item_vect.erase(this->it);
59 return true;
60 }
61 return false;
62 }
63
64 virtual bool removeItem(T *el) {
65 for(this->it = this->_item_vect.begin(); this->it != this->_item_vect.end(); ++ this->it) {
66 if ( *it == el) { this->_item_vect.erase(this->it); return true; }
67 }
68 return false;
69 }
70
71 virtual T *getItem(unsigned int pos) {
72 return ( pos < this->_item_vect.size() ) ? this->_item_vect.at(pos) : NULL;
73 }
74
75 virtual int indexOf(T *el) {
76 int index=0;
77 for(this->it = this->_item_vect.begin(); this->it != this->_item_vect.end(); ++ this->it,++ index) {
78 if ( *it == el) { return index; }
79 }
80 return -1;
81 }
82
83 virtual T *findItem(const std::string&) { return NULL; }
84 virtual bool removeItem(const std::string& ) { return false; }
85
86 size_t size() { return this->_item_vect.size(); }
87
88 public:
89
90 protected:
91
92 std::vector<T*> _item_vect;
93 typename std::vector<T*>::iterator it;
94 };
95
96 #if USE_INDEXED_CONTAINER
97 template <class T> class ICDIndexedContainer: public ICDGenericContainer<T> {
98
99 protected:
100 std::map<std::string, unsigned int> _item_map;
101 std::function<std::string(T*)> _keygen;
102
103 bool contains(const std::string& name, std::function<void(unsigned int)> func = nullptr) const {
104 auto it = _item_map.find(name);
105 bool ret = (it != _item_map.end());
106 if (func) func(it->second);
107 return ret;
108 }
109
110 public:
111 ICDIndexedContainer() = default;
112 ICDIndexedContainer(std::function<std::string(T*)> keygen):_keygen(keygen) {}
113 ~ICDIndexedContainer() {
114 this->_item_map.erase(this->_item_map.begin(),this->_item_map.end());
115 }
116
117 virtual bool addItem (T *item,bool front=false) override {
118 bool ret = false;
119 std::string key = _keygen(item);
120 if (!key.empty()) {
121 unsigned int value = (front) ? 0 : ICDGenericContainer<T>::size();
122 ret = ICDGenericContainer<T>::addItem(item,front);
123 if ( ret ) {
124 if ( front ) {
125 //scalo gli altri indici
126 for ( auto it = _item_map.begin(); it != _item_map.end(); ++it)
127 {
128 it->second += 1;
129 }
130 }
131 _item_map.insert({key, value});
132 }
133 }
134 return ret;
135 }
136
137 virtual int indexOf(T *item) override {
138 auto it = _item_map.find(_keygen(item));
139 return ( it != _item_map.end() ) ? it->second : -1;
140 }
141
142 virtual T *findItem(const std::string& key) override {
143 auto it = _item_map.find(key);
144 return (it != _item_map.end()) ? ICDGenericContainer<T>::getItem(it->second) : nullptr;
145 }
146
147 virtual bool removeItem(const std::string& key) override {
148 return contains(key, [&](unsigned int p){
149 _item_map.erase(key);
150 ICDGenericContainer<T>::removeItem(p);
151 });
152 }
153
154 virtual bool removeItem(unsigned int pos) override {
155 bool ret = false;
156 if (pos < ICDGenericContainer<T>::size())
157 {
158 T *item = ICDGenericContainer<T>::getItem(pos);
159 if ( item ) ret = removeItem(_keygen(item));
160 }
161 return ret;
162 }
163
164 virtual bool removeItem(T *item) override {
165 return (item) ? removeItem(_keygen(item)) : false;
166 }
167 };
168 #endif
169
170 #endif // CONTAINERS_H
ICDGenericContainer
Definition: icdcontainers.h:34
ICDIndexedContainer
Definition: icdcontainers.h:97
ICDAbstractContainer
Definition: icdcontainers.h:22
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdevents.h Source File

  • include
icdevents.h
Go to the documentation of this file.
1
5 #ifndef ICDEVENTS_HPP
6 #define ICDEVENTS_HPP
7 #include <map>
8 #include <deque>
9 #include <queue>
10
11 #include <thread>
12 #include <mutex>
13 #include <condition_variable>
14
15 //Event Identifiers
16 #define ICD_EVENT_ONBUSCLOCK 1001
17 #define ICD_EVENT_ONBUSSTART 1002
18 #define ICD_EVENT_ONBUSSTOP 1003
20 #define ICD_EVENT_ONBUSERRORNONE 1004
21 #define ICD_EVENT_ONBUSERRORLOW 1005
22 #define ICD_EVENT_ONBUSERRORMEDIUM 1006
23 #define ICD_EVENT_ONBUSERRORHIGH 1007
25 #define ICD_EVENT_ONBUSERRORINJECTIONSET 1008
26 #define ICD_EVENT_ONBUSERRORINJECTIONRESET 1009
28 #define ICD_EVENT_ONBUSLOGSTART 1010
29 #define ICD_EVENT_ONBUSLOGSTOP 1011
31 #define ICD_EVENT_ONBUSCONFIGURED 1099
33 #define ICD_EVENT_ONCHANGE 2000
34 #define ICD_EVENT_ONSENDMESSAGE 2100
35 #define ICD_EVENT_ONSENTMESSAGES 2101
36 #define ICD_EVENT_ONCOMMITCHANGES 2200
37 #define ICD_EVENT_ONCOMMITTED 2201
38 #define ICD_EVENT_ONREVERTCHANGES 2202
39 #define ICD_EVENT_ONREVERTED 2203
41 #define ICD_EVENT_ONRECEIVEDMESSAGE 2300
43 #define ICD_EVENT_ONUPDATE 3000
45 #define ICD_EVENT_STATE_REQUEST_RESUME 4000
46 #define ICD_EVENT_STATE_REQUEST_STOP 4001
47 #define ICD_EVENT_STATE_REQUEST_SUSPEND 4002
48
49 #define ICD_EVENT_PYTHONSTART_REQ 5000
50 #define ICD_EVENT_PYTHONSTOP_REQ 5001
51
52 #define ICD_EVENT_INTERFACE_LOCK 7000
53
54 #define ICD_EVENT_REQUEST_FOR_MESSAGE 7002
55
56 #define ICD_EVENT_PLUGIN_UPDATE 8000
57
58 //#define ICD_EVENT_PYTHONSTATE_EVALUATING 5001
59
62 #define EVENT_DISPATCHER_USE_DEQEUE
63
64
65 class ICDUiEventConsumer {
66 public:
67 virtual bool consumeICDEvent(unsigned int req_id, unsigned long event_number)=0;
68 protected:
69 std::map<unsigned int,unsigned long> _map_consumed_events;
70 };
71
72
73 class ICDUiEventProducer {
74 public:
75 virtual void sendICDEvent(unsigned int req_id) = 0;
76 protected:
77 virtual void raiseICDEvent(unsigned int req_id) = 0;
78 };
79
80
81
82 class ICDUiEventDispatcher {
83 static void dispatcher_loop(ICDUiEventDispatcher *);
84 public:
85 ICDUiEventDispatcher();
86 ~ICDUiEventDispatcher();
87
88 public:
89 virtual void processICDEvent(unsigned int) = 0;
90 void pushICDEvent(unsigned int req_id);
91 unsigned int popICDEvent();
92 bool isEmpty();
93 size_t waitingCount();
94
95
96 protected:
97 unsigned long dispatchICDEvent(unsigned int req_id);
98
99 protected:
100 unsigned long _event_number;
101 unsigned int _event_id;
102 #ifdef EVENT_DISPATCHER_USE_DEQEUE
103 std::deque<unsigned int> _event_queue;
104 #else
105 std::queue<unsigned int> _event_queue;
106 #endif
107 std::mutex _event_mutex;
108 std::thread _event_thread;
109 public:
110 std::mutex _dispatcher_mutex;
111 std::condition_variable _dispatcher_cond;
112 };
113
116 #endif // ICDEVENTS_HPP
117
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdhandler.h Source File

  • include
icdhandler.h
Go to the documentation of this file.
1
9 #ifndef ICDHANDLER_H
10 #define ICDHANDLER_H
11
12 #include "GenericBusEqp.h"
13 #include "icdcontainers.h"
14 #include "icdabstractfactory.h"
15 //#include "icdhandler_global.h"
16
17 //#include "icd_apiversion.h"
18 #include "icdversion.h"
19 #include <mutex>
20 #include <climits>
21
22 #include <map>
23 #include <functional>
24
25
27 #if USE_INDEXED_CONTAINER
28 class ICDMessageContainer: public ICDIndexedContainer<ICDMessage> {
29
30 protected:
31 std::map<int, unsigned int> map_msg_id;
32 unsigned int id_keygen(ICDMessage* m) {return (m) ? m->getMsgId() : UINT_MAX;}
33 public:
34 ICDMessageContainer():ICDIndexedContainer([&](ICDMessage *m){ return (m) ? m->getName() : "";}) {}
35
36 bool addItem (ICDMessage *item,bool front=false) override {
37 unsigned int value = size();
38 bool ret = ICDIndexedContainer<ICDMessage>::addItem(item,front);
39 if ( ret ) map_msg_id.insert({id_keygen(item),value});
40 return ret;
41 }
42
43 ICDMessage *findItem(const int& key) {
44 auto it = map_msg_id.find(key);
45 return (it != map_msg_id.end()) ? ICDGenericContainer<ICDMessage>::getItem(it->second) : nullptr;
46 }
47
48 ICDMessage *findItem(const std::string& key) override {return ICDIndexedContainer<ICDMessage>::findItem(key); }
49 int indexOf(ICDMessage *item) override { return ICDIndexedContainer<ICDMessage>::indexOf(item); }
50 bool removeItem(const std::string& key) override { return ICDIndexedContainer<ICDMessage>::removeItem(key); }
51 bool removeItem(unsigned int pos) override { return ICDIndexedContainer<ICDMessage>::removeItem(pos);}
52 bool removeItem(ICDMessage *item) override { return ICDIndexedContainer<ICDMessage>::removeItem(item); }
53 };
54 #endif
55 #define USE_MESSAGE_CONTAINER USE_INDEXED_CONTAINER
56 class ICDHandler:
60 public ICDNamedItem,
61 public ICDUiHandler,
62 public IGenericBusEqp
63 {
64 public:
65 ICDHandler(std::string n);
66
67 public:
68 static std::string s_tolower(std::string in);
69 static std::string s_toBase10(std::string in);
70
71 protected:
72 std::string _version;
73 public:
74 std::string getVersion() const { return this->_version; }
75 void setVersion(std::string v) { this->_version = v; }
76
77 //reimplementation of IGenericBusEqp interface
78 public:
79 bool OnMessageReceive(unsigned int msgId, unsigned char *data, unsigned short size) override;
80 virtual void OnBusClock() override;
81 virtual void OnBusError(std::string err, BusErrorSeverity severity) override;
82 virtual void OnChangeStateRequest(EqpStateRequest req) override;
83 virtual ICDEndianness GetEndianness() override;
84 virtual ICDStreamFormat GetStreamFormat() override;
85
86 protected:
87 std::string _bus_error_msg;
88 public:
89 std::string getBusErrorNotitication();
90
91 public:
92 // void raiseICDEvent(unsigned int req_id);
93 bool consumeICDEvent(unsigned int req_id,unsigned long event_number) override;
94 bool setPreferredUiRapresentation(std::string) override;
95
96 protected:
97 #if USE_MESSAGE_CONTAINER
98 ICDMessageContainer _messages;
99 #else
100 ICDGenericContainer<ICDMessage> _messages;
101 #endif
102 public:
103 size_t size();
104 int indexOf(ICDMessage *el) ;
105 bool addMessage( ICDMessage *item);
106 bool removeMessage(unsigned int pos);
107 bool removeMessage(ICDMessage *el);
108 ICDMessage *findMessage(std::string n);
109 ICDMessage *findMessageById(unsigned int id);
110 ICDMessage *getMessage(unsigned int pos);
111
112 private:
113 ICDMessage *_last_recv_msg;
114 std::vector<ICDMessage *> _last_sent_msg;
115 public:
116 ICDMessage *getLastReceivedMessage();
117 std::vector<ICDMessage*> getLastSentMessages() ;
118 std::vector<ICDMessage*> getChangedMessages();
119
120 private:
121 ostringstream _xmlerr;
122 std::string _xml_config_file;
123 void appendparseXMLFieldError(std::string msg, std::string field, std::string info);
124 void appendparseXMLMessageError(std::string msg, std::string info);
125 void appendparseXMLHandlerError(std::string info);
126 public:
127 bool parseXMLConfig(std::string filename,ICDAbstractFactory *factory=new ICDAbstractFactory());
128 std::string getXMLConfigFileName();
129 std::string getparseXMLError();
130
131 private:
132 unsigned long _clock_period;
133 public:
134 unsigned long getBusClockPeriod();
135 virtual void setBusClockPeriod(unsigned long period );
136
137 private:
138 bool _enabled;
139 bool _first_start;
140 public:
141 inline bool isEnabled();
142 private:
143 ICDEndianness _endianness;
144 ICDStreamFormat _streamformat;
145 public:
146 bool setEndianness(std::string);
147 bool setStreamFormat(std::string);
148
149 private:
150 std::mutex _handler_mutex;
151
152 //sezione che ha l'obiettivo di inserire una callback per l'avvenuta ricezione di un dato messaggio
153 private:
154 struct sClbk4Msg {
155 sClbk4Msg(unsigned int i,std::function<void(ICDRawData)> f ):msg_id(i),func(f) {}
156 unsigned int msg_id;
157 std::function<void(ICDRawData)> func;
158 };
159 std::vector<struct sClbk4Msg> _vclbks_recv;
160 public:
161 void setCallbackOnMsgReceived(unsigned int msgId, std::function<void(ICDRawData)> func)
162 {
163 _vclbks_recv.push_back(std::move(sClbk4Msg(msgId,func)));
164 }
165
166
167 friend class ICDUiBusObject;
168 };
169
170 #endif // ICDHANDLER_H
171
172
ICDHandler::OnBusError
virtual void OnBusError(std::string err, BusErrorSeverity severity) override
Handling of the error coming from the bus object.
Definition: icdhandler.cpp:480
ICDHandler::getBusClockPeriod
unsigned long getBusClockPeriod()
ICDHandler::getBusClockPeriod.
Definition: icdhandler.cpp:512
ICDUiHandler
Definition: icduiobjects.h:107
ICDHandler::GetStreamFormat
virtual ICDStreamFormat GetStreamFormat() override
It returns the Stream Format.
Definition: icdhandler.cpp:366
ICDHandler::setPreferredUiRapresentation
bool setPreferredUiRapresentation(std::string) override
ICDUiAbstractObject::setPreferredUiRapresentation do nothing ( it is a virtual one ) ...
Definition: icdhandler.cpp:1406
ICDAbstractFactory
The ICDAbstractFactory class It it used to return a generic oject implementations of the required ICD...
Definition: icdabstractfactory.h:20
ICDHandler::consumeICDEvent
bool consumeICDEvent(unsigned int req_id, unsigned long event_number) override
ICDUiAbstractItem::consumeICDEvent.
Definition: icdhandler.cpp:529
ICDHandler
The ICDHandler class.
Definition: icdhandler.h:59
ICDMessageContainer
Definition: icdhandler.h:28
icdabstractfactory.h
ICDMessage
The ICDMessage class.
Definition: icdmessage.h:24
GenericBusEqp.h
ICDRawData
Definition: icdrawstream.h:51
ICDHandler::setBusClockPeriod
virtual void setBusClockPeriod(unsigned long period)
ICDHandler::setBusClockPeriod.
Definition: icdhandler.cpp:520
ICDHandler::OnBusClock
virtual void OnBusClock() override
Method that contains operation linked to the bus clock.
Definition: icdhandler.cpp:501
ICDGenericContainer
Definition: icdcontainers.h:34
ICDUiBusObject
The ICDUiBusObject class.
Definition: icduibusobject.h:12
ICDStreamFormat
enum _icd_stream_format ICDStreamFormat
ICDHandler::getChangedMessages
std::vector< ICDMessage * > getChangedMessages()
ICDHandler::getChangedMessages.
Definition: icdhandler.cpp:416
ICDHandler::getLastReceivedMessage
ICDMessage * getLastReceivedMessage()
ICDHandler::getLastReceivedMessage.
Definition: icdhandler.cpp:401
ICDIndexedContainer
Definition: icdcontainers.h:97
ICDHandler::parseXMLConfig
bool parseXMLConfig(std::string filename, ICDAbstractFactory *factory=new ICDAbstractFactory())
Definition: icdhandler.cpp:609
ICDEndianness
enum _icd_endianness ICDEndianness
ICDHandler::GetEndianness
virtual ICDEndianness GetEndianness() override
It returns the Endiannes.
Definition: icdhandler.cpp:361
ICDNamedItem
Definition: icdnameditem.h:4
ICDHandler::OnMessageReceive
bool OnMessageReceive(unsigned int msgId, unsigned char *data, unsigned short size) override
Method that shall manages the data reception coming from the bus object.
Definition: icdhandler.cpp:429
ICDNamedItem::getName
std::string getName() const
ICDNamedItem::getName.
Definition: icdnameditem.cpp:31
EqpStateRequest
enum _eqp_state_request EqpStateRequest
icdcontainers.h
IGenericBusEqp
Interface Class: it defines the methods that shall be implemented by a bus user (Equipment) ...
Definition: GenericBusEqp.h:66
ICDHandler::OnChangeStateRequest
virtual void OnChangeStateRequest(EqpStateRequest req) override
Handling of a state chanhe request coming from the bus object.
Definition: icdhandler.cpp:371
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdhandler_global.h Source File

  • include
icdhandler_global.h
Go to the documentation of this file.
1
9 #ifndef ICDHANDLER_GLOBAL_H
10 #define ICDHANDLER_GLOBAL_H
11
12 #include <QtCore/qglobal.h>
13
14 #if defined(ICDHANDLER_LIBRARY)
15 # define ICDHANDLERSHARED_EXPORT Q_DECL_EXPORT
16 #else
17 # define ICDHANDLERSHARED_EXPORT Q_DECL_IMPORT
18 #endif
19
20 #endif // ICDHANDLER_GLOBAL_H
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdhandlersmanager.h Source File

  • include
icdhandlersmanager.h
Go to the documentation of this file.
1
9 #ifndef ICDHANDLERSMANAGER_H
10 #define ICDHANDLERSMANAGER_H
11
12 #include "icdhandler.h"
13
14 class ICDHandlersManager:public ICDGenericContainer<ICDHandler>
15 {
16 public:
17 static ICDHandlersManager *getInstance();
18 private:
19 ICDHandlersManager();
20 static ICDHandlersManager *self;
21 };
22
23 #endif // ICDHANDLERSMANAGER_H
ICDHandlersManager
Definition: icdhandlersmanager.h:14
icdhandler.h
ICDGenericContainer
Definition: icdcontainers.h:34
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdinitags.h Source File

  • include
icdinitags.h
Go to the documentation of this file.
1
9 #ifndef ICDINITAGS_H
10 #define ICDINITAGS_H
11
12 #define iniString(grp,key) grp "/" key
13
45 #define _INI_MAX_OPTIONAL_PLUGIN 99
47 #define _INI_PROP "INI"
49 #define _INI_GLOBALS_GROUP "Globals"
50 #define _INI_INTERFACE_GROUP "Interface"
51 //#define _INI_OPTIONAL_PLUGIN_GROUP "Plugins"
52 #define _INI_OPTIONAL_TOOLS_GROUP "Tools"
53 //#define _INI_SCRIPTS_GROUP "Scripts"
54 //#define _INI_LEGACY_GROUP "Legacy"
55 //#define _INI_INTERFACES_GROUP "Interfaces"
58 #define _INI_ICON_KEY "Icon"
59 #define _INI_GEOMETRY_KEY "Geometry"
60 #define _INI_FONT_KEY "Font"
61 #define _INI_INTERFACES_SIZE "InterfaceSize"
62 #define _INI_LEGACY_NAME_KEY "LegacyName"
63 #define _INI_LEGACY_VERSION_KEY "LegacyVersion"
64 #define _INI_LOG_TIMETAG_INTERFACE "LogTimeTagInterface"
66 #define _INI_INITIALSCRIPT_KEY "IniScript"
68 #define _INI_ICDXML_KEY "ConfigFile"
69 #define _INI_BUSDRIVER_KEY "BusDriver"
70 #define _INI_ICDPLUGIN_KEY "Plugin"
72 #define _INI_ICDUI_KEY "UiFile"
73 #define _INI_STYLESHEET_KEY "StyleSheet"
74 #define _INI_COMMIT_ON_THE_FLY "CommitOnTheFly"
75 #define _INI_HIDE_CTRL_WIDGETS "HideControlWidget"
78 #define _INI_LAST_LOG_DIR_KEY "CurrentLogPath"
79 #endif // ICDINITAGS_H
80
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdmessage.h Source File

  • include
icdmessage.h
Go to the documentation of this file.
1
9 #ifndef ICDMESSAGE_H
10 #define ICDMESSAGE_H
11
12 #include "icdcontainers.h"
13 #include "icduiobjects.h"
14 #include "icdrawstream.h"
15
16 class ICDGenericMessageField;
17 class ICDHandler;
18 class ICDUiBusObject;
19 #define USE_INDEXED_MESSAGEFIELD_CONTAINER USE_INDEXED_CONTAINER
20
24 class ICDMessage:
25 // public ICDAbstractContainer<ICDGenericMessageField>,
26 public ICDNamedItem,
27 public ICDUiMessage,
28 public ICDRawMessage
29 {
30 protected:
31 unsigned int _msg_id;
32 unsigned long _us_period_time;
33 bool _periodic;
34 bool _changed;
35 bool _rd_request;
36
37 #if USE_INDEXED_MESSAGEFIELD_CONTAINER
38 ICDIndexedContainer<ICDGenericMessageField> _fields;
39 #else
40 ICDGenericContainer<ICDGenericMessageField> _fields;
41 #endif
42
43 private:
44 unsigned long _msg_recv, _msg_sent;
45
46
47 public:
48 inline unsigned long getMsgReceived() { return this->_msg_recv; }
49 inline unsigned long getMsgSent() { return this->_msg_sent; }
50
51 private:
52 void updateMsgReceived();
53 void updateMsgSent();
54
55 //public:
56 // bool setReservationTo(ICDUiObject*);
57 // bool releaseReservationTo(ICDUiObject*);
58
59 public:
60 inline unsigned int getMsgId() { return this->_msg_id; }
61
62 inline bool isPeriodic() { return this->_periodic; }
63
64 inline unsigned long getUsPeriodTime() { return this->_us_period_time; }
65 inline void setUsPeriodTime(unsigned long t) { this->_us_period_time = t; }
66
67 public:
68 ICDMessage(unsigned int msg_id,std::string name, size_t length, bool periodic=false ,bool readonly=true);
69
70 void commitChanges();
71 void revertChanges();
72 void flushChanges();
73 void enulateChanges();
74 void touch();
75 bool isChanged() { return this->_changed; }
76
77 bool consumeICDEvent(unsigned int req_id,unsigned long event_number);
78
79 bool commitSingleField(ICDGenericMessageField*);
80
81 bool unpack(ICDRawData,bool is_revert=false);
82 bool pack(ICDRawData);
83
84 //for messages Rx that need to be requested
85 void setRequested(bool b);
86 bool isRequested();
87
88 bool addMessageField( ICDGenericMessageField *item);
89 bool removeMessageField(unsigned int pos);
90 bool removeMessageField(ICDGenericMessageField *el);
91 int indexOf(ICDGenericMessageField *el);
92 ICDGenericMessageField *findMessageField(std::string n);
93 ICDGenericMessageField *getMessageField(unsigned int pos);
94 size_t size();
95
96 ICDRawDataError getLastRawDataError() const;
97
98 public:
99 bool setBitStream(ICDEndianness e,ICDStreamFormat f) override;
100
101 private:
102 int _priority;
103 public:
109 inline void setPriority(int p) { _priority = p; }
114 inline int getPriority() const { return _priority; }
115
116
117 private:
118 bool _virtual;
119 public:
127 inline void setAsVirtual(bool v) { _virtual = v; }
132 inline bool isVirtual() const { return _virtual; }
133
134 private:
135 ICDGenericMessageField *_target;
136 ICDRawDataError _last_error;
137
138
139 friend class ICDUiBusObject;
140 };
141
142 #endif // ICDMESSAGE_H
ICDMessage::revertChanges
void revertChanges()
ICDMessage::revertChanges.
Definition: icdmessage.cpp:258
icdrawstream.h
ICDMessage::isVirtual
bool isVirtual() const
isVirtual
Definition: icdmessage.h:132
ICDMessage::addMessageField
bool addMessageField(ICDGenericMessageField *item)
ICDMessage::addMessageField Needed to perform some check above the field.
Definition: icdmessage.cpp:64
ICDMessage::findMessageField
ICDGenericMessageField * findMessageField(std::string n)
ICDMessage::findMessageField.
Definition: icdmessage.cpp:47
ICDHandler
The ICDHandler class.
Definition: icdhandler.h:59
ICDMessage
The ICDMessage class.
Definition: icdmessage.h:24
ICDMessage::removeMessageField
bool removeMessageField(unsigned int pos)
ICDMessage::removeMessageField it remove the field item at given position.
Definition: icdmessage.cpp:138
ICDRawData
Definition: icdrawstream.h:51
ICDMessage::enulateChanges
void enulateChanges()
ICDMessage::enulateChanges Emulate event changes with no changes by using event notifications.
Definition: icdmessage.cpp:237
ICDMessage::commitSingleField
bool commitSingleField(ICDGenericMessageField *)
ICDMessage::commitSingleField: perform pack operation on target field only.
Definition: icdmessage.cpp:177
ICDGenericContainer< ICDGenericMessageField >
ICDUiBusObject
The ICDUiBusObject class.
Definition: icduibusobject.h:12
ICDStreamFormat
enum _icd_stream_format ICDStreamFormat
ICDRawMessage
Definition: icdrawstream.h:94
ICDMessage::getMessageField
ICDGenericMessageField * getMessageField(unsigned int pos)
ICDMessage::getMessageField it returns the field item at given position.
Definition: icdmessage.cpp:156
ICDGenericMessageField
The ICDGenericMessageField class.
Definition: icdmessagefield.h:76
ICDIndexedContainer< ICDGenericMessageField >
ICDUiMessage
Definition: icduiobjects.h:93
ICDMessage::setPriority
void setPriority(int p)
setPriority : it changes the order in which the messages are processed. Highers are processed first...
Definition: icdmessage.h:109
ICDMessage::consumeICDEvent
bool consumeICDEvent(unsigned int req_id, unsigned long event_number)
ICDUiMessage::consumeICDEvent.
Definition: icdmessage.cpp:422
ICDMessage::ICDMessage
ICDMessage(unsigned int msg_id, std::string name, size_t length, bool periodic=false, bool readonly=true)
ICDMessage::ICDMessage constructor.
Definition: icdmessage.cpp:22
ICDEndianness
enum _icd_endianness ICDEndianness
ICDMessage::unpack
bool unpack(ICDRawData, bool is_revert=false)
ICDMessage::unpack.
Definition: icdmessage.cpp:285
ICDMessage::setAsVirtual
void setAsVirtual(bool v)
setAsVirtual : the purpose of setting the message as virtual is to exploit the generation of send and...
Definition: icdmessage.h:127
ICDNamedItem
Definition: icdnameditem.h:4
ICDMessage::getPriority
int getPriority() const
getPriority
Definition: icdmessage.h:114
ICDMessage::touch
void touch()
ICDMessage::touch Set changed flag to true in order to set message changed winthout event notificatio...
Definition: icdmessage.cpp:250
ICDMessage::size
size_t size()
ICDMessage::size it returns the number of fields pushed into the message.
Definition: icdmessage.cpp:164
icdcontainers.h
ICDMessage::commitChanges
void commitChanges()
ICDMessage::commitChanges.
Definition: icdmessage.cpp:201
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdmessagefield.h Source File

  • include
icdmessagefield.h
Go to the documentation of this file.
1
9 #ifndef ICDMESSAGEFIELD_H
10 #define ICDMESSAGEFIELD_H
11 #include <iostream>
12 #include <sstream>
13 #include <map>
14 #include <vector>
15 #include <typeinfo>
16 #include <cmath>
17 #include <limits>
18
19 #include "icduiobjects.h"
20 #include "icdrawstream.h"
21 #include "icdtranscoder.h"
22
23 #define ICD_VIRTUAL_FIELD_SZ 0
24
25 #define ICD_STRING_FALSE "false"
26 #define ICD_STRING_TRUE "true"
27
28 #define ICD_VALUE_FALSE 0
29 #define ICD_VALUE_TRUE 1
30
31 #define ICD_ENUM_UNKNOWN "<unknown>"
32
33 #define BOUND_MIN(is_signed,lsb,len,offset) ( is_signed ) ? (( lsb * -1 * powl(2,(len -1 )) ) + offset) : offset
34 #define BOUND_MAX(is_signed,lsb,len,offset) ( is_signed ) ? (( lsb * (powl(2,(len -1)) -1 ) ) + offset) : (( lsb * (powl(2,len) -1) ) + offset)
35
36
40 typedef enum _ICD__data_type_ {
41 ICD_DATATYPE__UNKNOWN = 501,
42 ICD_DATATYPE__BOOL,
43 ICD_DATATYPE__SHORT,
44 ICD_DATATYPE__USHORT,
45 ICD_DATATYPE__INT,
46 ICD_DATATYPE__UINT,
47 ICD_DATATYPE__LONG,
48 ICD_DATATYPE__ULONG,
49 ICD_DATATYPE__LONG_LONG,
50 ICD_DATATYPE__ULONG_LONG,
51 ICD_DATATYPE__FLOAT,
52 ICD_DATATYPE__DOUBLE,
53 ICD_DATATYPE__STRING
54 } ICD__data_type;
55
56
57 typedef enum _ICD__digit_display_base_ {
58 ICD_DIGITDISPLAY__AS_DEFAULT = 4000,
59 ICD_DIGITDISPLAY__AS_DEC,
60 ICD_DIGITDISPLAY__AS_HEX,
61 ICD_DIGITDISPLAY__AS_BIN
62 } ICD__digit_display_base;
63
64
65
66 using namespace std;
67
68 typedef std::map<std::string,unsigned int> ICDEnumMap;
69 typedef std::vector<std::string> ICDStringList;
70
71 class ICDMessage;
72
76 class ICDGenericMessageField:
77 public ICDNamedItem,
78 public ICDUiGenericMessageField,
79 public ICDRawMessageField,
80 public ICDCodingMessageField
81 {
82 protected:
83 unsigned int _end;
84 std::string _unit,_field_type;
85 double _data_resolution;
86 bool _never_been_unpacked; // used to detect a field ( Rx ) not yet setted
87 ICD__data_type _data_type;
88 ICD__digit_display_base _digit_display;
89
90 public:
91 ICDGenericMessageField(unsigned int s,
92 unsigned int l,
93 std::string n,
94 bool r);
95 public:
96 virtual bool set(std::string) {return false;}
97 virtual bool set(unsigned int) {return false;}
98 virtual bool set(int) {return false;}
99 virtual bool set(unsigned short) {return false;}
100 virtual bool set(short) {return false;}
101 virtual bool set(unsigned long) {return false;}
102 virtual bool set(long) {return false;}
103 virtual bool set(unsigned long long) {return false;}
104 virtual bool set(long long) {return false;}
105 virtual bool set(float) {return false;}
106 virtual bool set(double) {return false;}
107 virtual bool set(bool) {return false;}
108
109 virtual bool getAsStdString(std::string*) {return false;}
110 virtual bool getAsUInt(unsigned int*) {return false;}
111 virtual bool getAsInt(int*) {return false;}
112 virtual bool getAsUShort(unsigned short*) {return false;}
113 virtual bool getAsShort(short*) {return false;}
114 virtual bool getAsULong(unsigned long*) {return false;}
115 virtual bool getAsLong(long*) {return false;}
116 virtual bool getAsULongLong(unsigned long long*) {return false;}
117 virtual bool getAsLongLong(long long*) {return false;}
118 virtual bool getAsFloat(float*) {return false;}
119 virtual bool getAsDouble(double*) {return false;}
120 virtual bool getAsBoolean(bool*) {return false;}
121
122 virtual ICDStringList getAll() { ICDStringList empty; return empty; }
123
124 virtual void setDataResolution(double) {}
125
126
127 virtual double getBitWeigth() { return 1.; }
128 virtual double getRangeMin() { return std::numeric_limits<double>::max(); }
129 virtual double getRangeMax() { return std::numeric_limits<double>::min(); }
130 virtual double getBoundMin() { return std::numeric_limits<double>::max(); }
131 virtual double getBoundMax() { return std::numeric_limits<double>::min(); }
132 virtual double getOffsetVal() { return 0; }
133
134 virtual std::string getEncoderName() { return std::string(); }
135 public:
136 virtual std::string get() = 0;
137 virtual bool isInRange() = 0;
138 virtual bool isSigned() = 0;
139
140 public:
141
142 void setDisplayDigitBase(std::string);
143 void setDisplayDigitBase(ICD__digit_display_base);
144 ICD__digit_display_base getDisplayDigitBase();
145
146 bool setPreferredUiRapresentation(std::string);
147
148 std::string getFieldType();
149 ICD__data_type getDataType();
150
151 double getDataResolution();
152
153 bool isNeverBeenUnpacked();
154
155 std::string getUnit();
156 void setUnit(std::string);
157
158 void setType(std::string);
159
160 unsigned int getStart();
161 unsigned int getLength();
162 unsigned int getEnd();
163
164 virtual bool overlaps(ICDGenericMessageField*);
165 };
166
170 class ICDEnumMessageField: public ICDGenericMessageField
171 {
172 private:
173 ICDGenericTranscoder<unsigned int> *_obj_encoder;
174 public:
175 ICDEnumMessageField(unsigned int start,
176 unsigned int length,
177 std::string name,
178 ICDEnumMap &values,
179 bool readonly=true
180 );
181 bool set(std::string) override;
182 bool set(unsigned int) override;
183
184 std::string get() override;
185 bool getAsUInt(unsigned int* v) override;
186
187 bool setEncodingFrom(ICDGenericTranscoder<unsigned int> *) override;
188 std::string getEncoderName() override;
189
190 //bool appendValue(unsigned int,std::string);
191 ICDStringList getAll() override;
192 bool isInRange() override;
193 bool isSigned() override { return true; }
194
195 double getRangeMin() override;
196 double getRangeMax() override;
197 double getBoundMin() override;
198 double getBoundMax() override;
199
200 bool pack(ICDRawData*) override;
201 bool unpack(ICDRawData) override;
202
203 protected:
204 bool append(unsigned int);
205 bool isInBound(unsigned int);
206 bool assignNumber(unsigned int);
207 ICDEnumMap::iterator _cur;
208 ICDEnumMap _enum_map;
209 ICDEnumMap _enum_map_original;
210 unsigned int _range_min,_range_max,_bound_min,_bound_max;
211 bool _never_set;
212
213 };
214
218 class ICDBooleanMessageField: public ICDEnumMessageField {
219 public:
220 ICDBooleanMessageField(unsigned int start,
221 string name,
222 bool readonly=true);
223 bool set(bool b) override;
224 bool getAsBoolean(bool *) override;
225 };
226
227 class ICDStringMessageField: public ICDGenericMessageField {
228 private:
229 ICDStringTranscoder *_obj_encoder;
230 public:
231 ICDStringMessageField(unsigned int start,
232 unsigned int length,
233 std::string name,
234 bool readonly=true);
235 bool set(std::string);
236 std::string get();
237 bool isInRange();
238 bool isSigned() { return false; }
239
240 bool setEncodingFrom(ICDStringTranscoder *);
241 std::string getEncoderName();
242
243
244 bool pack(ICDRawData*);
245 bool unpack(ICDRawData);
246
247 protected:
248 ICDByte *_byte_val;
249 size_t _str_sz;
250 std::string _val;
251 };
252
253 template <class T>
254 class ICDNumericMessageField:
255 public ICDGenericMessageField
256 {
257 private:
258 ICDGenericTranscoder<T> *_obj_encoder;
259
260 protected:
261 T _val,_min,_max,_lsb,_offset;
262 bool _is_signed;
263 T _bound_min,_bound_max;
264
265 public:
266
267 ICDNumericMessageField(unsigned int start,
268 unsigned int length,
269 std::string name,
270 T min,
271 T max,
272 T lsb=1,
273 T offset=0,
274 bool readonly=true
275 );
276
277 bool setEncodingFrom(ICDGenericTranscoder<T> *obj);
278 std::string getEncoderName();
279
280 bool isSigned();
281
282 bool set(std::string x);
283
284 bool set(T val);
285
286 void setDataResolution(double);
287
288 std::string get();
289
290 bool getAsUInt(unsigned int* v);
291 bool getAsInt(int*v);
292 bool getAsUShort(unsigned short*v);
293 bool getAsShort(short*v);
294 bool getAsULong(unsigned long*v);
295 bool getAsLong(long*v);
296 bool getAsULongLong(unsigned long long*v);
297 bool getAsLongLong(long long*v);
298 bool getAsFloat(float*v);
299 bool getAsDouble(double*v);
300
301
302 bool isInRange();
303 bool isInBound(T val);
304
305 double getBitWeigth();
306 double getRangeMin();
307 double getRangeMax();
308 double getBoundMin();
309 double getBoundMax();
310 double getOffsetVal();
311
312 virtual bool pack(ICDRawData *a);
313 virtual bool unpack(ICDRawData a);
314
315 };
316
317 #include "icdmessagefield.inl"
318 #endif // ICDMESSAGEFIELD_H
ICDStringMessageField
Definition: icdmessagefield.h:227
icdrawstream.h
ICDGenericTranscoder< unsigned int >
ICDUiGenericMessageField
Definition: icduiobjects.h:63
ICDEnumMessageField
The ICDEnumMessageField class.
Definition: icdmessagefield.h:170
std
ICDMessage
The ICDMessage class.
Definition: icdmessage.h:24
ICDNumericMessageField
Definition: icdmessagefield.h:254
ICDCodingMessageField
The ICDCodingMessageField class.
Definition: icdtranscoder.h:149
ICDRawData
Definition: icdrawstream.h:51
ICDBooleanMessageField
The ICDBooleanMessageField class.
Definition: icdmessagefield.h:218
ICD__data_type
enum _ICD__data_type_ ICD__data_type
The ICD__data_type enum.
ICDStringTranscoder
The ICDStringTranscoder class.
Definition: icdtranscoder.h:121
ICDGenericMessageField
The ICDGenericMessageField class.
Definition: icdmessagefield.h:76
ICDRawMessageField
Definition: icdrawstream.h:114
_ICD__data_type_
_ICD__data_type_
The ICD__data_type enum.
Definition: icdmessagefield.h:40
ICDNamedItem
Definition: icdnameditem.h:4
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdrapresentation.h Source File

  • include
icdrapresentation.h
Go to the documentation of this file.
1
9 #ifndef RAPRESENTATION
10 #define RAPRESENTATION
11
12 #include "icdcontainers.h"
13 #include "icdxmltags.h"
14 #include "icdinitags.h"
15
16
17
18 typedef enum ICD__ui_display {
19 ICD_UIDISPLAY__AS_DEFAULT = 8000,
20 ICD_UIDISPLAY__AS_SPINBOX,
21 ICD_UIDISPLAY__AS_ENTRY,
22 ICD_UIDISPLAY__AS_LISTBOX,
23 ICD_UIDISPLAY__AS_MENU,
24 ICD_UIDISPLAY__AS_RADIO,
25 ICD_UIDISPLAY__AS_CHECK,
26 ICD_UIDISPLAY__AS_SLIDEBAR,
27 ICD_UIDISPLAY__AS_PROGRESSBAR,
28 ICD_UIDISPLAY__AS_KNOB,
29 ICD_UIDISPLAY__AS_TEXTAREA,
30 ICD_UIDISPLAY__AS_BUTTON,
31 ICD_UIDISPLAY__AS_ALL_TAB,
32 ICD_UIDISPLAY__AS_ALL_FRAME_VERTICAL,
33 ICD_UIDISPLAY__AS_ALL_FRAME_HORIZONTAL,
34 ICD_UIDISPLAY__AS_IOTYPE_H_FRAME_TAB,
35 ICD_UIDISPLAY__HIDDEN
36 } ICD__ui_display;
37
38 enum ICDUiMask {
39 MASK_UNKNOWN =0,
40 MASK_LABEL =1,
41 MASK_ENTRY =2,
42 MASK_SPINBOXI =4,
43 MASK_SPINBOXD =8,
44 MASK_KNOB =16,
45 MASK_SLIDER =32,
46 MASK_COMBOBOX =64,
47 MASK_LISTBOX =128,
48 MASK_CHECKBTNS =256,
49 MASK_RADIOBTNS =512,
50 MASK_PROGRESSBAR =1024,
51 MASK_TEXTAREA =2048,
52 MASK_BUTTON =4096
53 };
54
55
56 #endif // RAPRESENTATION
57
icdxmltags.h
xml strings definitions for icd parsing
icdinitags.h
definitions for ini file ( that define the session )
icdcontainers.h
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdrawstream.h Source File

  • include
icdrawstream.h
Go to the documentation of this file.
1
9 #ifndef ICDRAWSTREAM_H
10 #define ICDRAWSTREAM_H
11 #include <cstdlib>
12 #include <cstring>
13 #include <cstdio>
14 #include <iostream>
15 #include "genericbusobject.h"
16 #include "GenericBusEqp.h"
17
18 #include "portable_endian.h"
19 #include <mutex>
20
21 typedef unsigned char ICDByte;
22 typedef unsigned long long UnsignedICD;
23 typedef signed long long SignedICD;
24
25 static const ICDEndianness ICD_HOST_ENDIANNESS = ( BYTE_ORDER == LITTLE_ENDIAN ) ? ICD_LITTLE_ENDIAN : ICD_BIG_ENDIAN;
26
27 template <typename T>
28 T swapNumber(T in, size_t pos=sizeof(T) )
29 {
30 size_t sz = sizeof(T);
31 size_t n_pos = ( pos == sz ) ? pos : (pos % sz);
32 T out=0;
33 T n=in;
34 for(size_t i=0; i < n_pos; ++i) {
35 out <<= 8;
36 out |= n & 0xFF;
37 n >>=8;
38 }
39 return out;
40 }
41
42
43 typedef enum enum_icd_raw_data_error {
44 ICD_NO_ERROR = 0,
45 ICD_ERROR_OVERFLOW,
46 ICD_ERROR_CODING,
47 ICD_ERROR_UNKNOWN,
48 ICD_ERROR_WRONG_SIZE
49 } ICDRawDataError;
50
51 struct ICDRawData {
52 ICDByte *_data;
53 size_t _sz; // lunghezza del buffer ( numero di byte )
54 unsigned int _bit_length; //lunghezza del messaggio ( puo' non essere multiplo di sz )
55 ICDRawDataError _error_type; //future
56 ICDRawData& operator=(ICDRawData other)
57 {
58 if ( this != &other )
59 {
60 _sz = other._sz;
61 _bit_length=other._bit_length;
62 _error_type = other._error_type;
63 _data = new ICDByte[_sz];
64 memcpy(_data,other._data,_sz);
65 }
66 return *this;
67 }
68 };
69
70 class ICDAbstractRaw {
71 protected:
72 size_t _sz, _bit_length;
73
74 public:
75 ICDAbstractRaw(size_t);
76 size_t getBitLength();
77 public:
78 size_t getNumOf(size_t data_sz, size_t bit_sz);
79 size_t getNumOfByte(size_t bit_sz);
80 size_t getNumOfWord(size_t bit_sz);
81 size_t getNumOfDWord(size_t bit_sz);
82
83 protected:
84 ICDEndianness _endianness;
85 ICDStreamFormat _streamformat;
86 public:
87 virtual bool setBitStream(ICDEndianness,ICDStreamFormat);
88
89 inline ICDEndianness getEndianness() const { return _endianness; }
90 inline ICDStreamFormat getStreamFormat() const { return _streamformat; }
91 };
92
93
94 class ICDRawMessage: public ICDAbstractRaw
95 {
96 protected:
97 std::mutex mutex_pack;
98 ICDRawData _raw_buff,_temp_raw_buff;
99
100 protected:
101 ICDRawMessage(size_t);
102 virtual ~ICDRawMessage(){}
103
104 virtual bool pack(ICDRawData) = 0;
105 virtual bool unpack(ICDRawData,bool is_revert) = 0;
106
107 public:
108 ICDByte* getRawBuffer() { return this->_raw_buff._data; }
109 size_t getRawBufferSize() { return this->_raw_buff._sz; }
110 public:
111 virtual bool setBitStream(ICDEndianness,ICDStreamFormat);
112 };
113
114 class ICDRawMessageField: public ICDAbstractRaw {
115 protected:
116 size_t _bit_shift;
117 size_t _qty;
118 UnsignedICD _array_index;
119 size_t _start;
120 size_t _len;
121
122 protected:
123 UnsignedICD _bit_mask, _sign_mask;
124
125 public:
126 ICDRawMessageField(size_t start, size_t len);
127 virtual ~ICDRawMessageField() {}
128
129 public:
130 bool setBitStream(ICDEndianness,ICDStreamFormat);
131 virtual bool pack(ICDRawData*) =0;
132 virtual bool unpack(ICDRawData) = 0;
133
134 protected:
135 std::mutex mutex_set;
136
137 protected:
138 bool packAsCharArray( ICDByte *v, ICDRawData *a, size_t qty );
139 bool unpackAsCharArray( ICDRawData a,ICDByte *v, size_t qty );
140 bool packUnsigned(UnsignedICD v, ICDRawData *a);
141 bool unpackUnsigned( ICDRawData a, UnsignedICD *v);
142 bool unpackSigned( ICDRawData a, SignedICD *v);
143
144 private:
145 UnsignedICD raw2number(ICDByte *);
146 bool number2raw(UnsignedICD, ICDByte *ptr);
147 friend class ICDRawMessage;
148 };
149
150 #endif // ICDRAWSTREAM_H
ICDRawMessageField::unpackSigned
bool unpackSigned(ICDRawData a, SignedICD *v)
ICDRawMessageField::unpackSigned.
Definition: icdrawstream.cpp:335
ICDRawMessageField::packUnsigned
bool packUnsigned(UnsignedICD v, ICDRawData *a)
ICDRawMessageField::packUnsigned.
Definition: icdrawstream.cpp:288
ICDRawMessageField::unpackUnsigned
bool unpackUnsigned(ICDRawData a, UnsignedICD *v)
ICDRawMessageField::unpackUnsigned.
Definition: icdrawstream.cpp:322
GenericBusEqp.h
ICDRawData
Definition: icdrawstream.h:51
ICDRawMessageField::setBitStream
bool setBitStream(ICDEndianness, ICDStreamFormat)
ICDRawMessageField::setBitStream.
Definition: icdrawstream.cpp:122
ICDStreamFormat
enum _icd_stream_format ICDStreamFormat
ICDRawMessage
Definition: icdrawstream.h:94
ICD_BIG_ENDIAN
Definition: GenericBusEqp.h:52
ICDRawMessageField
Definition: icdrawstream.h:114
ICDEndianness
enum _icd_endianness ICDEndianness
ICDAbstractRaw
Definition: icdrawstream.h:70
ICDRawMessageField::unpackAsCharArray
bool unpackAsCharArray(ICDRawData a, ICDByte *v, size_t qty)
ICDRawMessageField::unpackAsCharArray.
Definition: icdrawstream.cpp:248
ICDRawMessageField::packAsCharArray
bool packAsCharArray(ICDByte *v, ICDRawData *a, size_t qty)
ICDRawMessageField::packAsCharArray.
Definition: icdrawstream.cpp:193
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/icdxmltags.h Source File

  • include
icdxmltags.h
Go to the documentation of this file.
1
8 #ifndef ICDXMLTAGS_H
9 #define ICDXMLTAGS_H
10
109 // [XML nodes]
110 #define STR__ROOT_NODE_NAME "icdhandler"
111 #define STR__NODE_UI_LEVEL "hilevel"
112 #define STR__NODE_LOW_LEVEL "lowlevel"
113 #define STR__NODE_MAPPING "mapping"
115 #define STR__NODE_MESSAGE "message"
116 #define STR__NODE_FIELD "field"
117 #define STR__NODE_VALUES "values"
118 #define STR__NODE_VALUE "value"
120 // [XML attributes]
121 // (common attributes)
122 #define STR__ATTR_NAME "name"
123 #define STR__ATTR_WIDTH "width"
124 #define STR__ATTR_UI "ui"
126 // (icdhandler attributes)
127 #define STR__ATTR_ENDIANESS "endianness"
128 #define STR__ATTR_STREAMFORMAT "streamformat"
129 #define STR__ATTR_VERSION "version"
131 // (message attributes)
132 #define STR__ATTR_ID "id"
133 #define STR__ATTR_IOTYPE "iotype"
134 //#define STR__ATTR_PERIODICAL "isperiodic"
135 #define STR__ATTR_US_PERIOD "usecperiodtime"
136 #define STR__ATTR_PRIORITY "priority"
137 #define STR__ATTR_VIRTUAL "virtual"
140 // (field attributes)
141 #define STR__ATTR_OFFSET "offset"
142 #define STR__ATTR_MIN "min"
143 #define STR__ATTR_MAX "max"
144 #define STR__ATTR_WEIGHT "weight"
145 #define STR__ATTR_TYPE "type"
146 #define STR__ATTR_UNIT "unit"
147 #define STR__ATTR_DEFAULT "default"
148 #define STR__ATTR_OFFSETVAL "offsetvalue"
149 #define STR__ATTR_ENCODING "encoding"
150 #define STR__ATTR_DIGIT "display"
151 #define STR__ATTR_RESOLUTION "resolution"
153 #define STR__ATTR_RESERVED "reserved"
155 // [XML values]
156 // ( values for ui )
157 #define STR__HANDLER_UI_DISPLAY_AS_TAB "all_tab"
158 #define STR__HANDLER_UI_DISPLAY_AS_V_FRAME "all_vertical"
159 #define STR__HANDLER_UI_DISPLAY_AS_H_FRAME "all_horizontal"
160 #define STR__HANDLER_UI_DISPLAY_AS_IO_GRP "by_iotype"
163 // ( values for block size )
164 #define STR__HANDLER_STREAMFORMAT_BYTE "byte"
165 #define STR__HANDLER_STREAMFORMAT_WORD "word"
166 #define STR__HANDLER_STREAMFORMAT_DWORD "dword"
168 // ( values for endianness )
169 #define STR__HANDLER_ENDIANNESS_LITTLE "littleendian"
170 #define STR__HANDLER_ENDIANNESS_BIG "bigendian"
172 // ( values for message iotype )
173 #define STR__MESSAGE_IOTYPE_TX "tx"
174 #define STR__MESSAGE_IOTYPE_RX "rx"
176 // ( values for field type )
177 #define STR__FIELD_TYPE_SPARE "spare"
178 #define STR__FIELD_TYPE_ENUM "enum"
179 #define STR__FIELD_TYPE_BOOLEAN "boolean"
180 #define STR__FIELD_TYPE_STRING "string"
181 #define STR__FIELD_TYPE_INT "int"
182 #define STR__FIELD_TYPE_UINT "uint"
183 #define STR__FIELD_TYPE_SHORT "short"
184 #define STR__FIELD_TYPE_USHORT "ushort"
185 #define STR__FIELD_TYPE_LONG "long"
186 #define STR__FIELD_TYPE_ULONG "ulong"
187 #define STR__FIELD_TYPE_LONG_LONG "long64"
188 #define STR__FIELD_TYPE_ULONG_LONG "ulong64"
189 #define STR__FIELD_TYPE_DOUBLE "double"
190 #define STR__FIELD_TYPE_FLOAT "float"
192 // ( values for field digit )
193 #define STR__FIELD_DIGIT_AS_DEC "decimal"
194 #define STR__FIELD_DIGIT_AS_HEX "hexadecimal"
195 #define STR__FIELD_DIGIT_AS_BIN "binary"
197 // ( values for field ui )
198 #define STR__FIELD_UI_DISPLAY_HIDDEN "hidden"
199 #define STR__FIELD_UI_DISPLAY_AS_ENTRY "entry"
200 #define STR__FIELD_UI_DISPLAY_AS_SPINBOX "spinbox"
201 #define STR__FIELD_UI_DISPLAY_AS_MENU "combobox"
202 #define STR__FIELD_UI_DISPLAY_AS_RADIO "radiobox"
203 #define STR__FIELD_UI_DISPLAY_AS_CHECK "checkbox"
204 #define STR__FIELD_UI_DISPLAY_AS_LISTBOX "listbox"
205 #define STR__FIELD_UI_DISPLAY_AS_SLIDE "slider"
206 #define STR__FIELD_UI_DISPLAY_AS_PROGBAR "progressbar"
207 #define STR__FIELD_UI_DISPLAY_AS_KNOB "knob"
208 //#define STR__FIELD_UI_DISPLAY_AS_LABEL "label"
209 #define STR__FIELD_UI_DISPLAY_AS_TEXTAREA "textarea"
210 #define STR__FIELD_UI_DISPLAY_AS_BUTTON "button"
214 // ( values for field encoding )
215 #define STR__FIELD_ENCODER_BCD "bcd"
216 #define STR__FIELD_ENCODER_SIGN_MOD "sign_module"
217 #define STR__FIELD_ENCODER_DEFAULT "binary"
218 #define STR__FIELD_ENCODER_REAL "real"
219 #define STR__FIELD_ENCODER_SWAPBYTE "swapbyte"
220 #define STR__FIELD_ENCODER_SWAPWORD "swapword"
221 #define STR__FIELD_ENCODER_SWAPDWORD "swapdword"
222 #define STR__FIELD_ENCODER_FORMULA "="
223 #endif // ICDXMLTAGS_H
224
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Main Page

ICDHandler Module Documentation
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Related Pages

Related Pages
Here is a list of all related documentation pages:
INI_EXAMPLE
DTD_DOC
DTD_NOTES
README
Generated on Mon Feb 6 2023 08:56:25 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml.hpp Source File

  • include
  • rapidxml
rapidxml.hpp
Go to the documentation of this file.
1 #ifndef RAPIDXML_HPP_INCLUDED
2 #define RAPIDXML_HPP_INCLUDED
3
4 // Copyright (C) 2006, 2009 Marcin Kalicinski
5 // Version 1.13
6 // Revision $DateTime: 2009/05/13 01:46:17 $
8
9 // If standard library is disabled, user must provide implementations of required functions and typedefs
10 #if !defined(RAPIDXML_NO_STDLIB)
11 #include <cstdlib> // For std::size_t
12 #include <cassert> // For assert
13 #include <new> // For placement new
14 #endif
15
16 // On MSVC, disable "conditional expression is constant" warning (level 4).
17 // This warning is almost impossible to avoid with certain types of templated code
18 #ifdef _MSC_VER
19 #pragma warning(push)
20 #pragma warning(disable:4127) // Conditional expression is constant
21 #endif
22
24 // RAPIDXML_PARSE_ERROR
25
26 #if defined(RAPIDXML_NO_EXCEPTIONS)
27
28 #define RAPIDXML_PARSE_ERROR(what, where) { parse_error_handler(what, where); assert(0); }
29 #define RAPIDXML_EOF_ERROR(what, where) { parse_error_handler(what, where); assert(0); }
30
31 namespace rapidxml
32 {
49 void parse_error_handler(const char *what, void *where);
50 }
51
52 #else
53
54 #include <stdexcept> // For std::runtime_error
55
56 #define RAPIDXML_PARSE_ERROR(what, where) {if (*where == Ch(0)) throw eof_error(what, where); else throw parse_error(what, where);} (void)0
57 #define RAPIDXML_EOF_ERROR(what, where) throw eof_error(what, where)
58
59 namespace rapidxml
60 {
61
73 class parse_error: public std::runtime_error
74 {
75
76 public:
77
79 parse_error(const char *what, void *where)
80 : std::runtime_error(what)
81 , m_where(where)
82 {
83 }
84
88 template<class Ch>
89 Ch *where() const
90 {
91 return reinterpret_cast<Ch *>(m_where);
92 }
93
94 private:
95 void *m_where;
96 };
97
98 class eof_error : public parse_error {
99 public:
100 eof_error(const char * what, void * where) : parse_error(what, where) {}
101 };
102
103 class validation_error : public std::runtime_error
104 {
105 public:
106 validation_error(const char * what)
107 : std::runtime_error(what) {}
108 };
109 }
110
111 #endif
112
114 // Pool sizes
115
116 #ifndef RAPIDXML_STATIC_POOL_SIZE
117 // Size of static memory block of memory_pool.
118 // Define RAPIDXML_STATIC_POOL_SIZE before including rapidxml.hpp if you want to override the default value.
119 // No dynamic memory allocations are performed by memory_pool until static memory is exhausted.
120 #define RAPIDXML_STATIC_POOL_SIZE (64 * 1024)
121 #endif
122
123 #ifndef RAPIDXML_DYNAMIC_POOL_SIZE
124 // Size of dynamic memory block of memory_pool.
125 // Define RAPIDXML_DYNAMIC_POOL_SIZE before including rapidxml.hpp if you want to override the default value.
126 // After the static block is exhausted, dynamic blocks with approximately this size are allocated by memory_pool.
127 #define RAPIDXML_DYNAMIC_POOL_SIZE (64 * 1024)
128 #endif
129
130 #ifndef RAPIDXML_ALIGNMENT
131 // Memory allocation alignment.
132 // Define RAPIDXML_ALIGNMENT before including rapidxml.hpp if you want to override the default value, which is the size of pointer.
133 // All memory allocations for nodes, attributes and strings will be aligned to this value.
134 // This must be a power of 2 and at least 1, otherwise memory_pool will not work.
135 #define RAPIDXML_ALIGNMENT sizeof(void *)
136 #endif
137
138 namespace rapidxml
139 {
140 // Forward declarations
141 template<class Ch> class xml_node;
142 template<class Ch> class xml_attribute;
143 template<class Ch> class xml_document;
144
147 enum node_type
148 {
149 node_document,
150 node_element,
151 node_data,
152 node_cdata,
153 node_comment,
154 node_declaration,
155 node_doctype,
156 node_pi,
157 node_literal
158 };
159
161 // Parsing flags
162
168 const int parse_no_data_nodes = 0x1;
169
177 const int parse_no_element_values = 0x2;
178
184 const int parse_no_string_terminators = 0x4;
185
191 const int parse_no_entity_translation = 0x8;
192
198 const int parse_no_utf8 = 0x10;
199
205 const int parse_declaration_node = 0x20;
206
212 const int parse_comment_nodes = 0x40;
213
220 const int parse_doctype_node = 0x80;
221
227 const int parse_pi_nodes = 0x100;
228
235 const int parse_validate_closing_tags = 0x200;
236
243 const int parse_trim_whitespace = 0x400;
244
252 const int parse_normalize_whitespace = 0x800;
253
256 const int parse_open_only = 0x1000;
257
261 const int parse_parse_one = 0x2000;
262
266 const int parse_validate_xmlns = 0x4000;
267
268 // Compound flags
269
278 const int parse_default = 0;
279
288 const int parse_non_destructive = parse_no_string_terminators | parse_no_entity_translation;
289
293 const int parse_fastest = parse_non_destructive | parse_no_data_nodes;
294
299 const int parse_full = parse_declaration_node | parse_comment_nodes | parse_doctype_node | parse_pi_nodes | parse_validate_closing_tags;
300
302 // Internals
303
305 namespace internal
306 {
307
308 // Struct that contains lookup tables for the parser
309 // It must be a template to allow correct linking (because it has static data members, which are defined in a header file).
310 template<int Dummy>
311 struct lookup_tables
312 {
313 static const unsigned char lookup_whitespace[256]; // Whitespace table
314 static const unsigned char lookup_node_name[256]; // Node name table
315 static const unsigned char lookup_element_name[256]; // Element name table
316 static const unsigned char lookup_text[256]; // Text table
317 static const unsigned char lookup_text_pure_no_ws[256]; // Text table
318 static const unsigned char lookup_text_pure_with_ws[256]; // Text table
319 static const unsigned char lookup_attribute_name[256]; // Attribute name table
320 static const unsigned char lookup_attribute_data_1[256]; // Attribute data table with single quote
321 static const unsigned char lookup_attribute_data_1_pure[256]; // Attribute data table with single quote
322 static const unsigned char lookup_attribute_data_2[256]; // Attribute data table with double quotes
323 static const unsigned char lookup_attribute_data_2_pure[256]; // Attribute data table with double quotes
324 static const unsigned char lookup_digits[256]; // Digits
325 static const unsigned char lookup_upcase[256]; // To uppercase conversion table for ASCII characters
326 };
327
328 // Find length of the string
329 template<class Ch>
330 inline std::size_t measure(const Ch *p)
331 {
332 const Ch *tmp = p;
333 while (*tmp)
334 ++tmp;
335 return tmp - p;
336 }
337
338 // Compare strings for equality
339 template<class Ch>
340 inline bool compare(const Ch *p1, std::size_t size1, const Ch *p2, std::size_t size2, bool case_sensitive)
341 {
342 if (size1 != size2)
343 return false;
344 if (case_sensitive)
345 {
346 for (const Ch *end = p1 + size1; p1 < end; ++p1, ++p2)
347 if (*p1 != *p2)
348 return false;
349 }
350 else
351 {
352 for (const Ch *end = p1 + size1; p1 < end; ++p1, ++p2)
353 if (lookup_tables<0>::lookup_upcase[static_cast<unsigned char>(*p1)] != lookup_tables<0>::lookup_upcase[static_cast<unsigned char>(*p2)])
354 return false;
355 }
356 return true;
357 }
358 }
360
362 // Memory pool
363
398 template<class Ch = char>
399 class memory_pool
400 {
401
402 public:
403
405 typedef void *(alloc_func)(std::size_t); // Type of user-defined function used to allocate memory
406 typedef void (free_func)(void *); // Type of user-defined function used to free memory
408
410 memory_pool()
411 : m_alloc_func(0)
412 , m_free_func(0)
413 {
414 init();
415 }
416
420 ~memory_pool()
421 {
422 clear();
423 }
424
435 xml_node<Ch> *allocate_node(node_type type,
436 const Ch *name = 0, const Ch *value = 0,
437 std::size_t name_size = 0, std::size_t value_size = 0)
438 {
439 void *memory = allocate_aligned(sizeof(xml_node<Ch>));
440 xml_node<Ch> *node = new(memory) xml_node<Ch>(type);
441 if (name)
442 {
443 if (name_size > 0)
444 node->name(name, name_size);
445 else
446 node->name(name);
447 }
448 else
449 {
450 node->name(this->nullstr(), 0);
451 }
452 if (value)
453 {
454 if (value_size > 0)
455 node->value(value, value_size);
456 else
457 node->value(value);
458 }
459 else
460 {
461 node->value(this->nullstr(), 0);
462 }
463 return node;
464 }
465
475 xml_attribute<Ch> *allocate_attribute(const Ch *name = 0, const Ch *value = 0,
476 std::size_t name_size = 0, std::size_t value_size = 0)
477 {
478 void *memory = allocate_aligned(sizeof(xml_attribute<Ch>));
479 xml_attribute<Ch> *attribute = new(memory) xml_attribute<Ch>;
480 if (name)
481 {
482 if (name_size > 0)
483 attribute->name(name, name_size);
484 else
485 attribute->name(name);
486 }
487 if (value)
488 {
489 if (value_size > 0)
490 attribute->value(value, value_size);
491 else
492 attribute->value(value);
493 }
494 return attribute;
495 }
496
504 template<typename Sch>
505 Ch *allocate_string(const Sch *source = 0, std::size_t size = 0)
506 {
507 assert(source || size); // Either source or size (or both) must be specified
508 if (size == 0)
509 size = internal::measure(source) + 1;
510 Ch *result = static_cast<Ch *>(allocate_aligned(size * sizeof(Ch)));
511 if (source)
512 for (std::size_t i = 0; i < size; ++i)
513 result[i] = source[i];
514 return result;
515 }
516
517 Ch * nullstr()
518 {
519 if (!m_nullstr)
520 m_nullstr = allocate_string("");
521 return m_nullstr;
522 }
523 Ch * xmlns_xml(std::size_t & xmlns_size)
524 {
525 if (!m_xmlns_xml)
526 m_xmlns_xml = allocate_string("http://www.w3.org/XML/1998/namespace");
527 xmlns_size = internal::measure(m_xmlns_xml);
528 return m_xmlns_xml;
529 }
530 Ch * xmlns_xmlns(std::size_t & xmlns_size)
531 {
532 if (!m_xmlns_xmlns)
533 m_xmlns_xmlns = allocate_string("http://www.w3.org/2000/xmlns/");
534 xmlns_size = internal::measure(m_xmlns_xmlns);
535 return m_xmlns_xmlns;
536 }
537
538
548 xml_node<Ch> *clone_node(const xml_node<Ch> *source, xml_node<Ch> *result = 0)
549 {
550 // Prepare result node
551 if (result)
552 {
553 result->remove_all_attributes();
554 result->remove_all_nodes();
555 result->type(source->type());
556 }
557 else
558 result = allocate_node(source->type());
559
560 // Clone name and value
561 result->name(source->name(), source->name_size());
562 result->value(source->value(), source->value_size());
563
564 // Clone child nodes and attributes
565 for (xml_node<Ch> *child = source->first_node(); child; child = child->next_sibling())
566 result->append_node(clone_node(child));
567 for (xml_attribute<Ch> *attr = source->first_attribute(); attr; attr = attr->next_attribute())
568 result->append_attribute(allocate_attribute(attr->name(), attr->value(), attr->name_size(), attr->value_size()));
569
570 return result;
571 }
572
576 void clear()
577 {
578 while (m_begin != m_static_memory)
579 {
580 char *previous_begin = reinterpret_cast<header *>(align(m_begin))->previous_begin;
581 if (m_free_func)
582 m_free_func(m_begin);
583 else
584 delete[] m_begin;
585 m_begin = previous_begin;
586 }
587 init();
588 }
589
603 void set_allocator(alloc_func *af, free_func *ff)
604 {
605 assert(m_begin == m_static_memory && m_ptr == align(m_begin)); // Verify that no memory is allocated yet
606 m_alloc_func = af;
607 m_free_func = ff;
608 }
609
610 private:
611
612 struct header
613 {
614 char *previous_begin;
615 };
616
617 void init()
618 {
619 m_begin = m_static_memory;
620 m_ptr = align(m_begin);
621 m_end = m_static_memory + sizeof(m_static_memory);
622 m_nullstr = 0;
623 m_xmlns_xml = 0;
624 m_xmlns_xmlns = 0;
625 }
626
627 char *align(char *ptr)
628 {
629 std::size_t alignment = ((RAPIDXML_ALIGNMENT - (std::size_t(ptr) & (RAPIDXML_ALIGNMENT - 1))) & (RAPIDXML_ALIGNMENT - 1));
630 return ptr + alignment;
631 }
632
633 char *allocate_raw(std::size_t size)
634 {
635 // Allocate
636 void *memory;
637 if (m_alloc_func) // Allocate memory using either user-specified allocation function or global operator new[]
638 {
639 memory = m_alloc_func(size);
640 assert(memory); // Allocator is not allowed to return 0, on failure it must either throw, stop the program or use longjmp
641 }
642 else
643 {
644 memory = new char[size];
645 #ifdef RAPIDXML_NO_EXCEPTIONS
646 if (!memory) // If exceptions are disabled, verify memory allocation, because new will not be able to throw bad_alloc
647 RAPIDXML_PARSE_ERROR("out of memory", 0);
648 #endif
649 }
650 return static_cast<char *>(memory);
651 }
652
653 void *allocate_aligned(std::size_t size)
654 {
655 // Calculate aligned pointer
656 char *result = align(m_ptr);
657
658 // If not enough memory left in current pool, allocate a new pool
659 if (result + size > m_end)
660 {
661 // Calculate required pool size (may be bigger than RAPIDXML_DYNAMIC_POOL_SIZE)
662 std::size_t pool_size = RAPIDXML_DYNAMIC_POOL_SIZE;
663 if (pool_size < size)
664 pool_size = size;
665
666 // Allocate
667 std::size_t alloc_size = sizeof(header) + (2 * RAPIDXML_ALIGNMENT - 2) + pool_size; // 2 alignments required in worst case: one for header, one for actual allocation
668 char *raw_memory = allocate_raw(alloc_size);
669
670 // Setup new pool in allocated memory
671 char *pool = align(raw_memory);
672 header *new_header = reinterpret_cast<header *>(pool);
673 new_header->previous_begin = m_begin;
674 m_begin = raw_memory;
675 m_ptr = pool + sizeof(header);
676 m_end = raw_memory + alloc_size;
677
678 // Calculate aligned pointer again using new pool
679 result = align(m_ptr);
680 }
681
682 // Update pool and return aligned pointer
683 m_ptr = result + size;
684 return result;
685 }
686
687 char *m_begin; // Start of raw memory making up current pool
688 char *m_ptr; // First free byte in current pool
689 char *m_end; // One past last available byte in current pool
690 char m_static_memory[RAPIDXML_STATIC_POOL_SIZE]; // Static raw memory
691 alloc_func *m_alloc_func; // Allocator function, or 0 if default is to be used
692 free_func *m_free_func; // Free function, or 0 if default is to be used
693 Ch * m_nullstr;
694 Ch * m_xmlns_xml;
695 Ch * m_xmlns_xmlns;
696 };
697
699 // XML base
700
704 template<class Ch = char>
705 class xml_base
706 {
707
708 public:
709
711 // Construction & destruction
712
713 // Construct a base with empty name, value and parent
714 xml_base()
715 : m_name(0)
716 , m_value(0)
717 , m_name_size(0)
718 , m_value_size(0)
719 , m_parent(0)
720 {
721 }
722
724 // Node data access
725
732 Ch *name() const
733 {
734 return m_name;
735 }
736
740 std::size_t name_size() const
741 {
742 return m_name ? m_name_size : 0;
743 }
744
751 Ch *value() const
752 {
753 return m_value;
754 }
755
759 std::size_t value_size() const
760 {
761 return m_value ? m_value_size : 0;
762 }
764 // Node modification
765
779 void name(const Ch *name, std::size_t size)
780 {
781 m_name = const_cast<Ch *>(name);
782 m_name_size = size;
783 }
784
788 void name(const Ch *name)
789 {
790 this->name(name, internal::measure(name));
791 }
792
809 void value(const Ch *value, std::size_t size)
810 {
811 m_value = const_cast<Ch *>(value);
812 m_value_size = size;
813 }
814
818 void value(const Ch *value)
819 {
820 this->value(value, internal::measure(value));
821 }
823 // Related nodes access
824
827 xml_node<Ch> *parent() const
828 {
829 return m_parent;
830 }
831
832 protected:
833 Ch *m_name; // Name of node, or 0 if no name
834 Ch *m_value; // Value of node, or 0 if no value
835 std::size_t m_name_size; // Length of node name, or undefined of no name
836 std::size_t m_value_size; // Length of node value, or undefined if no value
837 xml_node<Ch> *m_parent; // Pointer to parent node, or 0 if none
838
839 };
840
846 template<class Ch = char>
847 class xml_attribute: public xml_base<Ch>
848 {
849
850 friend class xml_node<Ch>;
851
852 public:
853
855 // Construction & destruction
856
859 xml_attribute() : m_prev_attribute(0), m_next_attribute(0), m_xmlns(0), m_xmlns_size(0), m_local_name(0)
860 {
861 }
862
864 // Related nodes access
865
868 xml_document<Ch> *document() const
869 {
870 if (xml_node<Ch> *node = this->parent())
871 {
872 while (node->parent())
873 node = node->parent();
874 return node->type() == node_document ? static_cast< xml_document<Ch> *>(node) : 0;
875 }
876 else
877 return 0;
878 }
879
880 Ch * xmlns() const
881 {
882 if (m_xmlns) return m_xmlns;
883 Ch * p;
884 Ch * name = this->name();
885 for (p = name; *p && *p != ':'; ++p)
886 if ((p - name) >= this->name_size()) break;
887 if (!*p || ((p - name) >= this->name_size())) {
888 m_xmlns = document()->nullstr();
889 m_xmlns_size = 0;
890 return m_xmlns;
891 }
892 xml_node<Ch> * element = this->parent();
893 if (element) element->xmlns_lookup(m_xmlns, m_xmlns_size, name, p - name);
894 return m_xmlns;
895 }
896 std::size_t xmlns_size() const
897 {
898 return this->xmlns() ? m_xmlns_size : 0;
899 }
905 xml_attribute<Ch> *previous_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
906 {
907 if (name)
908 {
909 if (name_size == 0)
910 name_size = internal::measure(name);
911 for (xml_attribute<Ch> *attribute = m_prev_attribute; attribute; attribute = attribute->m_prev_attribute)
912 if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
913 return attribute;
914 return 0;
915 }
916 else
917 return this->m_parent ? m_prev_attribute : 0;
918 }
919
925 xml_attribute<Ch> *next_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
926 {
927 if (name)
928 {
929 if (name_size == 0)
930 name_size = internal::measure(name);
931 for (xml_attribute<Ch> *attribute = m_next_attribute; attribute; attribute = attribute->m_next_attribute)
932 if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
933 return attribute;
934 return 0;
935 }
936 else
937 return this->m_parent ? m_next_attribute : 0;
938 }
939
940 Ch * local_name() const
941 {
942 if (m_local_name) return m_local_name;
943 Ch * p = this->name();
944 for (; *p && *p != Ch(':'); ++p);
945 if (*p)
946 m_local_name = p + 1;
947 else
948 m_local_name = this->name();
949 return m_local_name;
950 }
951
952 std::size_t local_name_size() const
953 {
954 return this->name_size() - (this->local_name() - this->name());
955 }
956
957 private:
958
959 xml_attribute<Ch> *m_prev_attribute; // Pointer to previous sibling of attribute, or 0 if none; only valid if parent is non-zero
960 xml_attribute<Ch> *m_next_attribute; // Pointer to next sibling of attribute, or 0 if none; only valid if parent is non-zero
961 mutable Ch * m_xmlns;
962 mutable std::size_t m_xmlns_size;
963 mutable Ch * m_local_name; // ATTN: points inside m_name.
964 };
965
967 // XML node
968
977 template<class Ch = char>
978 class xml_node: public xml_base<Ch>
979 {
980
981 public:
982
984 // Construction & destruction
985
989 xml_node(node_type type)
990 : m_prefix(0)
991 , m_xmlns(0)
992 , m_prefix_size(0)
993 , m_xmlns_size(0)
994 , m_type(type)
995 , m_first_node(0)
996 , m_last_node(0)
997 , m_first_attribute(0)
998 , m_last_attribute(0)
999 , m_prev_sibling(0)
1000 , m_next_sibling(0)
1001 , m_contents(0)
1002 , m_contents_size(0)
1003 {
1004 }
1005
1007 // Node data access
1008
1011 node_type type() const
1012 {
1013 return m_type;
1014 }
1015
1016 void prefix(const Ch *prefix, std::size_t size)
1017 {
1018 m_prefix = const_cast<Ch *>(prefix);
1019 m_prefix_size = size;
1020 }
1021 void prefix(const Ch *prefix)
1022 {
1023 this->prefix(prefix, internal::measure(prefix));
1024 }
1025
1026 Ch *prefix() const
1027 {
1028 return m_prefix;
1029 }
1030
1031 std::size_t prefix_size() const
1032 {
1033 return m_prefix ? m_prefix_size : 0;
1034 }
1035
1036 void contents(Ch const * contents, std::size_t contents_size)
1037 {
1038 m_contents = contents;
1039 m_contents_size = contents_size;
1040 }
1041 Ch const * contents() const
1042 {
1043 return m_contents;
1044 }
1045 std::size_t contents_size() const
1046 {
1047 return m_contents ? m_contents_size : 0;
1048 }
1049
1050 Ch *xmlns() const
1051 {
1052 if (m_xmlns) return m_xmlns;
1053 xmlns_lookup(m_xmlns, m_xmlns_size, m_prefix, m_prefix_size);
1054 return m_xmlns;
1055 }
1056
1057 void xmlns_lookup(Ch *& xmlns, size_t &xmlns_size, Ch * prefix, size_t prefix_size) const
1058 {
1059 Ch * freeme = 0;
1060 Ch * attrname;
1061 if (prefix) {
1062 // Check if the prefix begins "xml".
1063 if (prefix_size >= 3
1064 && prefix[0] == Ch('x')
1065 && prefix[1] == Ch('m')
1066 && prefix[2] == Ch('l')) {
1067 if (prefix_size == 3) {
1068 xmlns = this->document()->xmlns_xml(xmlns_size);
1069 return;
1070 } else if (prefix_size == 5
1071 && prefix[3] == Ch('n')
1072 && prefix[4] == Ch('s')) {
1073 xmlns = this->document()->xmlns_xmlns(xmlns_size);
1074 return;
1075 }
1076 }
1077 freeme = attrname = new Ch[prefix_size + 7];
1078 const char * p1="xmlns";
1079 while (*p1) *attrname++ = *p1++;
1080 Ch * p = prefix;
1081 *attrname++ = Ch(':');
1082 while (*p) {
1083 *attrname++ = *p++;
1084 if ((attrname - freeme) >= std::ptrdiff_t(prefix_size + 6)) break;
1085 }
1086 *attrname = Ch(0);
1087 attrname = freeme;
1088 } else {
1089 freeme = attrname = new Ch[6];
1090 const char * p1="xmlns";
1091 while (*p1) *attrname++ = *p1++;
1092 *attrname = Ch(0);
1093 attrname = freeme;
1094 }
1095 for (const xml_node<Ch> * node = this;
1096 node;
1097 node = node->parent()) {
1098 const xml_attribute<Ch> * attr = node->first_attribute(attrname);
1099 if (attr) {
1100 xmlns = attr->value();
1101 if (xmlns) {
1102 xmlns_size = attr->value_size();
1103 }
1104 break;
1105 }
1106 }
1107 if (!xmlns) {
1108 if (!prefix) {
1109 xmlns = document()->nullstr();
1110 xmlns_size = 0;
1111 }
1112 }
1113 if (freeme) delete[] freeme;
1114 }
1115
1116 std::size_t xmlns_size() const
1117 {
1118 if (m_xmlns) return m_xmlns_size;
1119 this->xmlns();
1120 return m_xmlns_size;
1121 }
1122
1124 // Related nodes access
1125
1128 xml_document<Ch> *document() const
1129 {
1130 xml_node<Ch> *node = const_cast< xml_node<Ch> *>(this);
1131 while (node->parent())
1132 node = node->parent();
1133 return node->type() == node_document ? static_cast< xml_document<Ch> *>(node) : 0;
1134 }
1135
1141 xml_node<Ch> *first_node(const Ch *name = 0, const Ch *xmlns = 0, std::size_t name_size = 0, std::size_t xmlns_size = 0, bool case_sensitive = true) const
1142 {
1143 if (name && !name_size) name_size = internal::measure(name);
1144 if (xmlns && !xmlns_size) xmlns_size = internal::measure(xmlns);
1145 if (!xmlns && name) {
1146 // No XMLNS asked for, but a name is present.
1147 // Assume "same XMLNS".
1148 xmlns = this->xmlns();
1149 xmlns_size = this->xmlns_size();
1150 }
1151 for (xml_node<Ch> *child = m_first_node; child; child = child->next_sibling())
1152 if ((!name || internal::compare(child->name(), child->name_size(), name, name_size, case_sensitive))
1153 && (!xmlns || internal::compare(child->xmlns(), child->xmlns_size(), xmlns, xmlns_size, case_sensitive)))
1154 return child;
1155 return 0;
1156 }
1157
1165 xml_node<Ch> *last_node(const Ch *name = 0, const Ch *xmlns = 0, std::size_t name_size = 0, std::size_t xmlns_size = 0, bool case_sensitive = true) const
1166 {
1167 assert(m_first_node); // Cannot query for last child if node has no children
1168 if (name && !name_size) name_size = internal::measure(name);
1169 if (xmlns && !xmlns_size) xmlns_size = internal::measure(xmlns);
1170 if (!xmlns && name) {
1171 // No XMLNS asked for, but a name is present.
1172 // Assume "same XMLNS".
1173 xmlns = this->xmlns();
1174 xmlns_size = this->xmlns_size();
1175 }
1176 for (xml_node<Ch> *child = m_last_node; child; child = child->previous_sibling())
1177 if ((!name || internal::compare(child->name(), child->name_size(), name, name_size, case_sensitive))
1178 && (!xmlns || internal::compare(child->xmlns(), child->xmlns_size(), xmlns, xmlns_size, case_sensitive)))
1179 return child;
1180 return 0;
1181 }
1182
1190 xml_node<Ch> *previous_sibling(const Ch *name = 0, const Ch *xmlns = 0, std::size_t name_size = 0, std::size_t xmlns_size = 0, bool case_sensitive = true) const
1191 {
1192 assert(this->m_parent); // Cannot query for siblings if node has no parent
1193 if (name)
1194 {
1195 if (name_size == 0)
1196 name_size = internal::measure(name);
1197 if (xmlns && !xmlns_size) xmlns_size = internal::measure(xmlns);
1198 if (!xmlns && name) {
1199 // No XMLNS asked for, but a name is present.
1200 // Assume "same XMLNS".
1201 xmlns = this->xmlns();
1202 xmlns_size = this->xmlns_size();
1203 }
1204 for (xml_node<Ch> *sibling = m_prev_sibling; sibling; sibling = sibling->m_prev_sibling)
1205 if ((!name || internal::compare(sibling->name(), sibling->name_size(), name, name_size, case_sensitive))
1206 && (!xmlns || internal::compare(sibling->xmlns(), sibling->xmlns_size(), xmlns, xmlns_size, case_sensitive)))
1207 return sibling;
1208 return 0;
1209 }
1210 else
1211 return m_prev_sibling;
1212 }
1213
1221 xml_node<Ch> *next_sibling(const Ch *name = 0, const Ch *xmlns = 0, std::size_t name_size = 0, std::size_t xmlns_size = 0, bool case_sensitive = true) const
1222 {
1223 assert(this->m_parent); // Cannot query for siblings if node has no parent
1224 if (name)
1225 {
1226 if (name_size == 0)
1227 name_size = internal::measure(name);
1228 if (xmlns && !xmlns_size) xmlns_size = internal::measure(xmlns);
1229 if (!xmlns && name) {
1230 // No XMLNS asked for, but a name is present.
1231 // Assume "same XMLNS".
1232 xmlns = this->xmlns();
1233 xmlns_size = this->xmlns_size();
1234 }
1235 for (xml_node<Ch> *sibling = m_next_sibling; sibling; sibling = sibling->m_next_sibling)
1236 if ((!name || internal::compare(sibling->name(), sibling->name_size(), name, name_size, case_sensitive))
1237 && (!xmlns || internal::compare(sibling->xmlns(), sibling->xmlns_size(), xmlns, xmlns_size, case_sensitive)))
1238 return sibling;
1239 return 0;
1240 }
1241 else
1242 return m_next_sibling;
1243 }
1244
1250 xml_attribute<Ch> *first_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
1251 {
1252 if (name)
1253 {
1254 if (name_size == 0)
1255 name_size = internal::measure(name);
1256 for (xml_attribute<Ch> *attribute = m_first_attribute; attribute; attribute = attribute->m_next_attribute)
1257 if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
1258 return attribute;
1259 return 0;
1260 }
1261 else
1262 return m_first_attribute;
1263 }
1264
1270 xml_attribute<Ch> *last_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
1271 {
1272 if (name)
1273 {
1274 if (name_size == 0)
1275 name_size = internal::measure(name);
1276 for (xml_attribute<Ch> *attribute = m_last_attribute; attribute; attribute = attribute->m_prev_attribute)
1277 if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
1278 return attribute;
1279 return 0;
1280 }
1281 else
1282 return m_first_attribute ? m_last_attribute : 0;
1283 }
1284
1286 // Node modification
1287
1290 void type(node_type type)
1291 {
1292 m_type = type;
1293 }
1294
1296 // Node manipulation
1297
1301 void prepend_node(xml_node<Ch> *child)
1302 {
1303 assert(child && !child->parent() && child->type() != node_document);
1304 if (first_node())
1305 {
1306 child->m_next_sibling = m_first_node;
1307 m_first_node->m_prev_sibling = child;
1308 }
1309 else
1310 {
1311 child->m_next_sibling = 0;
1312 m_last_node = child;
1313 }
1314 m_first_node = child;
1315 child->m_parent = this;
1316 child->m_prev_sibling = 0;
1317 }
1318
1322 void append_node(xml_node<Ch> *child)
1323 {
1324 assert(child && !child->parent() && child->type() != node_document);
1325 if (first_node())
1326 {
1327 child->m_prev_sibling = m_last_node;
1328 m_last_node->m_next_sibling = child;
1329 }
1330 else
1331 {
1332 child->m_prev_sibling = 0;
1333 m_first_node = child;
1334 }
1335 m_last_node = child;
1336 child->m_parent = this;
1337 child->m_next_sibling = 0;
1338 }
1339
1344 void insert_node(xml_node<Ch> *where, xml_node<Ch> *child)
1345 {
1346 assert(!where || where->parent() == this);
1347 assert(child && !child->parent() && child->type() != node_document);
1348 if (where == m_first_node)
1349 prepend_node(child);
1350 else if (where == 0)
1351 append_node(child);
1352 else
1353 {
1354 child->m_prev_sibling = where->m_prev_sibling;
1355 child->m_next_sibling = where;
1356 where->m_prev_sibling->m_next_sibling = child;
1357 where->m_prev_sibling = child;
1358 child->m_parent = this;
1359 }
1360 }
1361
1365 void remove_first_node()
1366 {
1367 assert(first_node());
1368 xml_node<Ch> *child = m_first_node;
1369 m_first_node = child->m_next_sibling;
1370 if (child->m_next_sibling)
1371 child->m_next_sibling->m_prev_sibling = 0;
1372 else
1373 m_last_node = 0;
1374 child->m_parent = 0;
1375 }
1376
1380 void remove_last_node()
1381 {
1382 assert(first_node());
1383 xml_node<Ch> *child = m_last_node;
1384 if (child->m_prev_sibling)
1385 {
1386 m_last_node = child->m_prev_sibling;
1387 child->m_prev_sibling->m_next_sibling = 0;
1388 }
1389 else
1390 m_first_node = 0;
1391 child->m_parent = 0;
1392 }
1393
1395 // \param where Pointer to child to be removed.
1396 void remove_node(xml_node<Ch> *where)
1397 {
1398 assert(where && where->parent() == this);
1399 assert(first_node());
1400 if (where == m_first_node)
1401 remove_first_node();
1402 else if (where == m_last_node)
1403 remove_last_node();
1404 else
1405 {
1406 where->m_prev_sibling->m_next_sibling = where->m_next_sibling;
1407 where->m_next_sibling->m_prev_sibling = where->m_prev_sibling;
1408 where->m_parent = 0;
1409 }
1410 }
1411
1413 void remove_all_nodes()
1414 {
1415 for (xml_node<Ch> *node = first_node(); node; node = node->m_next_sibling)
1416 node->m_parent = 0;
1417 m_first_node = 0;
1418 }
1419
1422 void prepend_attribute(xml_attribute<Ch> *attribute)
1423 {
1424 assert(attribute && !attribute->parent());
1425 if (first_attribute())
1426 {
1427 attribute->m_next_attribute = m_first_attribute;
1428 m_first_attribute->m_prev_attribute = attribute;
1429 }
1430 else
1431 {
1432 attribute->m_next_attribute = 0;
1433 m_last_attribute = attribute;
1434 }
1435 m_first_attribute = attribute;
1436 attribute->m_parent = this;
1437 attribute->m_prev_attribute = 0;
1438 }
1439
1442 void append_attribute(xml_attribute<Ch> *attribute)
1443 {
1444 assert(attribute && !attribute->parent());
1445 if (first_attribute())
1446 {
1447 attribute->m_prev_attribute = m_last_attribute;
1448 m_last_attribute->m_next_attribute = attribute;
1449 }
1450 else
1451 {
1452 attribute->m_prev_attribute = 0;
1453 m_first_attribute = attribute;
1454 }
1455 m_last_attribute = attribute;
1456 attribute->m_parent = this;
1457 attribute->m_next_attribute = 0;
1458 }
1459
1464 void insert_attribute(xml_attribute<Ch> *where, xml_attribute<Ch> *attribute)
1465 {
1466 assert(!where || where->parent() == this);
1467 assert(attribute && !attribute->parent());
1468 if (where == m_first_attribute)
1469 prepend_attribute(attribute);
1470 else if (where == 0)
1471 append_attribute(attribute);
1472 else
1473 {
1474 attribute->m_prev_attribute = where->m_prev_attribute;
1475 attribute->m_next_attribute = where;
1476 where->m_prev_attribute->m_next_attribute = attribute;
1477 where->m_prev_attribute = attribute;
1478 attribute->m_parent = this;
1479 }
1480 }
1481
1485 void remove_first_attribute()
1486 {
1487 assert(first_attribute());
1488 xml_attribute<Ch> *attribute = m_first_attribute;
1489 if (attribute->m_next_attribute)
1490 {
1491 attribute->m_next_attribute->m_prev_attribute = 0;
1492 }
1493 else
1494 m_last_attribute = 0;
1495 attribute->m_parent = 0;
1496 m_first_attribute = attribute->m_next_attribute;
1497 }
1498
1502 void remove_last_attribute()
1503 {
1504 assert(first_attribute());
1505 xml_attribute<Ch> *attribute = m_last_attribute;
1506 if (attribute->m_prev_attribute)
1507 {
1508 attribute->m_prev_attribute->m_next_attribute = 0;
1509 m_last_attribute = attribute->m_prev_attribute;
1510 }
1511 else
1512 m_first_attribute = 0;
1513 attribute->m_parent = 0;
1514 }
1515
1518 void remove_attribute(xml_attribute<Ch> *where)
1519 {
1520 assert(first_attribute() && where->parent() == this);
1521 if (where == m_first_attribute)
1522 remove_first_attribute();
1523 else if (where == m_last_attribute)
1524 remove_last_attribute();
1525 else
1526 {
1527 where->m_prev_attribute->m_next_attribute = where->m_next_attribute;
1528 where->m_next_attribute->m_prev_attribute = where->m_prev_attribute;
1529 where->m_parent = 0;
1530 }
1531 }
1532
1534 void remove_all_attributes()
1535 {
1536 for (xml_attribute<Ch> *attribute = first_attribute(); attribute; attribute = attribute->m_next_attribute)
1537 attribute->m_parent = 0;
1538 m_first_attribute = 0;
1539 }
1540
1541 void validate() const
1542 {
1543 if (this->xmlns() == 0)
1544 throw validation_error("Element XMLNS unbound");
1545 for (xml_node<Ch> * child = this->first_node();
1546 child;
1547 child = child->next_sibling()) {
1548 child->validate();
1549 }
1550 for (xml_attribute<Ch> *attribute = first_attribute();
1551 attribute;
1552 attribute = attribute->m_next_attribute) {
1553 if (attribute->xmlns() == 0)
1554 throw validation_error("Attribute XMLNS unbound");
1555 for (xml_attribute<Ch> *otherattr = first_attribute();
1556 otherattr != attribute;
1557 otherattr = otherattr->m_next_attribute) {
1558 if (internal::compare(attribute->name(), attribute->name_size(), otherattr->name(), otherattr->name_size(), true)) {
1559 throw validation_error("Attribute doubled");
1560 }
1561 if (internal::compare(attribute->local_name(), attribute->local_name_size(), otherattr->local_name(), otherattr->local_name_size(), true)
1562 && internal::compare(attribute->xmlns(), attribute->xmlns_size(), otherattr->xmlns(), otherattr->xmlns_size(), true))
1563 throw validation_error("Attribute XMLNS doubled");
1564 }
1565 }
1566 }
1567
1568 private:
1569
1571 // Restrictions
1572
1573 // No copying
1574 xml_node(const xml_node &);
1575 void operator =(const xml_node &);
1576
1578 // Data members
1579
1580 // Note that some of the pointers below have UNDEFINED values if certain other pointers are 0.
1581 // This is required for maximum performance, as it allows the parser to omit initialization of
1582 // unneded/redundant values.
1583 //
1584 // The rules are as follows:
1585 // 1. first_node and first_attribute contain valid pointers, or 0 if node has no children/attributes respectively
1586 // 2. last_node and last_attribute are valid only if node has at least one child/attribute respectively, otherwise they contain garbage
1587 // 3. prev_sibling and next_sibling are valid only if node has a parent, otherwise they contain garbage
1588
1589 Ch *m_prefix;
1590 mutable Ch *m_xmlns; // Cache
1591 std::size_t m_prefix_size;
1592 mutable std::size_t m_xmlns_size;
1593 node_type m_type; // Type of node; always valid
1594 xml_node<Ch> *m_first_node; // Pointer to first child node, or 0 if none; always valid
1595 xml_node<Ch> *m_last_node; // Pointer to last child node, or 0 if none; this value is only valid if m_first_node is non-zero
1596 xml_attribute<Ch> *m_first_attribute; // Pointer to first attribute of node, or 0 if none; always valid
1597 xml_attribute<Ch> *m_last_attribute; // Pointer to last attribute of node, or 0 if none; this value is only valid if m_first_attribute is non-zero
1598 xml_node<Ch> *m_prev_sibling; // Pointer to previous sibling of node, or 0 if none; this value is only valid if m_parent is non-zero
1599 xml_node<Ch> *m_next_sibling; // Pointer to next sibling of node, or 0 if none; this value is only valid if m_parent is non-zero
1600 Ch const *m_contents; // Pointer to original contents in buffer.
1601 std::size_t m_contents_size;
1602 };
1603
1605 // XML document
1606
1614 template<class Ch = char>
1615 class xml_document: public xml_node<Ch>, public memory_pool<Ch>
1616 {
1617
1618 public:
1619
1621 xml_document()
1622 : xml_node<Ch>(node_document)
1623 {
1624 }
1625
1637 template<int Flags>
1638 Ch * parse(Ch * text, xml_document<Ch> * parent = 0)
1639 {
1640 assert(text);
1641
1642 // Remove current contents
1643 this->remove_all_nodes();
1644 this->remove_all_attributes();
1645 this->m_parent = parent ? parent->first_node() : 0;
1646
1647 // Parse BOM, if any
1648 parse_bom<Flags>(text);
1649
1650 // Parse children
1651 while (1)
1652 {
1653 // Skip whitespace before node
1654 skip<whitespace_pred, Flags>(text);
1655 if (*text == 0)
1656 break;
1657
1658 // Parse and append new child
1659 if (*text == Ch('<'))
1660 {
1661 ++text; // Skip '<'
1662 if (xml_node<Ch> *node = parse_node<Flags>(text)) {
1663 this->append_node(node);
1664 if (Flags & (parse_open_only|parse_parse_one)) {
1665 if (node->type() == node_element)
1666 break;
1667 }
1668 }
1669 }
1670 else
1671 RAPIDXML_PARSE_ERROR("expected <", text);
1672 }
1673 return text;
1674 }
1675 template<int Flags>
1676 Ch * parse(Ch * text, xml_document<Ch> & parent)
1677 {
1678 return parse<Flags>(text, &parent);
1679 }
1680
1683 void clear()
1684 {
1685 this->remove_all_nodes();
1686 this->remove_all_attributes();
1687 memory_pool<Ch>::clear();
1688 }
1689
1692 template<int Flags>
1693 void fixup(xml_node<Ch> * element, bool recurse)
1694 {
1695 // Check the type.
1696 if (element->type() == node_element) {
1697 // Terminate name and attributes
1698 if (!(Flags & parse_no_string_terminators))
1699 element->name()[element->name_size()] = 0;
1700 for (xml_attribute<Ch> *attr = element->first_attribute();
1701 attr;
1702 attr = attr->next_attribute()) {
1703 if (!(Flags & parse_no_string_terminators))
1704 attr->name()[attr->name_size()] = 0;
1705 Ch * value = attr->value();
1706 Ch * p = value;
1707 Ch * end;
1708 const int AttFlags = Flags & ~parse_normalize_whitespace; // No whitespace normalization in attributes
1709 Ch quote = value[-1];
1710 if (quote == Ch('\''))
1711 end = skip_and_expand_character_refs<attribute_value_pred<Ch('\'')>, attribute_value_pure_pred<Ch('\'')>, AttFlags>(p);
1712 else
1713 end = skip_and_expand_character_refs<attribute_value_pred<Ch('"')>, attribute_value_pure_pred<Ch('"')>, AttFlags>(p);
1714 attr->value(value, end - value);
1715 if (!(Flags & parse_no_string_terminators))
1716 attr->value()[attr->value_size()] = 0;
1717 }
1718 if (recurse) {
1719 for (xml_node<Ch> *child = element->first_node();
1720 child;
1721 child = child->next_sibling()) {
1722 this->fixup<Flags>(child, true);
1723 }
1724 if (!(Flags & parse_no_string_terminators) && element->value())
1725 element->value()[element->value_size()] = 0;
1726 }
1727 }
1728 }
1729
1730
1731 void validate() const
1732 {
1733 for (xml_node<Ch> * child = this->first_node();
1734 child;
1735 child = child->next_sibling()) {
1736 child->validate();
1737 }
1738 }
1739
1740 private:
1741
1743 // Internal character utility functions
1744
1745 // Detect whitespace character
1746 struct whitespace_pred
1747 {
1748 static unsigned char test(Ch ch)
1749 {
1750 return internal::lookup_tables<0>::lookup_whitespace[static_cast<unsigned char>(ch)];
1751 }
1752 };
1753
1754 // Detect node name character
1755 struct node_name_pred
1756 {
1757 static unsigned char test(Ch ch)
1758 {
1759 return internal::lookup_tables<0>::lookup_node_name[static_cast<unsigned char>(ch)];
1760 }
1761 };
1762
1763 // Detect element name character
1764 struct element_name_pred
1765 {
1766 static unsigned char test(Ch ch)
1767 {
1768 return internal::lookup_tables<0>::lookup_element_name[static_cast<unsigned char>(ch)];
1769 }
1770 };
1771
1772 // Detect attribute name character
1773 struct attribute_name_pred
1774 {
1775 static unsigned char test(Ch ch)
1776 {
1777 return internal::lookup_tables<0>::lookup_attribute_name[static_cast<unsigned char>(ch)];
1778 }
1779 };
1780
1781 // Detect text character (PCDATA)
1782 struct text_pred
1783 {
1784 static unsigned char test(Ch ch)
1785 {
1786 return internal::lookup_tables<0>::lookup_text[static_cast<unsigned char>(ch)];
1787 }
1788 };
1789
1790 // Detect text character (PCDATA) that does not require processing
1791 struct text_pure_no_ws_pred
1792 {
1793 static unsigned char test(Ch ch)
1794 {
1795 return internal::lookup_tables<0>::lookup_text_pure_no_ws[static_cast<unsigned char>(ch)];
1796 }
1797 };
1798
1799 // Detect text character (PCDATA) that does not require processing
1800 struct text_pure_with_ws_pred
1801 {
1802 static unsigned char test(Ch ch)
1803 {
1804 return internal::lookup_tables<0>::lookup_text_pure_with_ws[static_cast<unsigned char>(ch)];
1805 }
1806 };
1807
1808 // Detect attribute value character
1809 template<Ch Quote>
1810 struct attribute_value_pred
1811 {
1812 static unsigned char test(Ch ch)
1813 {
1814 if (Quote == Ch('\''))
1815 return internal::lookup_tables<0>::lookup_attribute_data_1[static_cast<unsigned char>(ch)];
1816 if (Quote == Ch('\"'))
1817 return internal::lookup_tables<0>::lookup_attribute_data_2[static_cast<unsigned char>(ch)];
1818 return 0; // Should never be executed, to avoid warnings on Comeau
1819 }
1820 };
1821
1822 // Detect attribute value character
1823 template<Ch Quote>
1824 struct attribute_value_pure_pred
1825 {
1826 static unsigned char test(Ch ch)
1827 {
1828 if (Quote == Ch('\''))
1829 return internal::lookup_tables<0>::lookup_attribute_data_1_pure[static_cast<unsigned char>(ch)];
1830 if (Quote == Ch('\"'))
1831 return internal::lookup_tables<0>::lookup_attribute_data_2_pure[static_cast<unsigned char>(ch)];
1832 return 0; // Should never be executed, to avoid warnings on Comeau
1833 }
1834 };
1835
1836 // Insert coded character, using UTF8 or 8-bit ASCII
1837 template<int Flags>
1838 static void insert_coded_character(Ch *&text, unsigned long code)
1839 {
1840 if (Flags & parse_no_utf8)
1841 {
1842 // Insert 8-bit ASCII character
1843 // Todo: possibly verify that code is less than 256 and use replacement char otherwise?
1844 text[0] = static_cast<unsigned char>(code);
1845 text += 1;
1846 }
1847 else
1848 {
1849 // Insert UTF8 sequence
1850 if (code < 0x80) // 1 byte sequence
1851 {
1852 text[0] = static_cast<unsigned char>(code);
1853 text += 1;
1854 }
1855 else if (code < 0x800) // 2 byte sequence
1856 {
1857 text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
1858 text[0] = static_cast<unsigned char>(code | 0xC0);
1859 text += 2;
1860 }
1861 else if (code < 0x10000) // 3 byte sequence
1862 {
1863 text[2] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
1864 text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
1865 text[0] = static_cast<unsigned char>(code | 0xE0);
1866 text += 3;
1867 }
1868 else if (code < 0x110000) // 4 byte sequence
1869 {
1870 text[3] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
1871 text[2] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
1872 text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
1873 text[0] = static_cast<unsigned char>(code | 0xF0);
1874 text += 4;
1875 }
1876 else // Invalid, only codes up to 0x10FFFF are allowed in Unicode
1877 {
1878 RAPIDXML_PARSE_ERROR("invalid numeric character entity", text);
1879 }
1880 }
1881 }
1882
1883 // Skip characters until predicate evaluates to true
1884 template<class StopPred, int Flags>
1885 static void skip(Ch *&text)
1886 {
1887 Ch *tmp = text;
1888 while (StopPred::test(*tmp))
1889 ++tmp;
1890 text = tmp;
1891 }
1892
1893 // Skip characters until predicate evaluates to true while doing the following:
1894 // - replacing XML character entity references with proper characters (&apos; &amp; &quot; &lt; &gt; &#...;)
1895 // - condensing whitespace sequences to single space character
1896 template<class StopPred, class StopPredPure, int Flags>
1897 static Ch *skip_and_expand_character_refs(Ch *&text)
1898 {
1899 // If entity translation, whitespace condense and whitespace trimming is disabled, use plain skip
1900 if (Flags & parse_no_entity_translation &&
1901 !(Flags & parse_normalize_whitespace) &&
1902 !(Flags & parse_trim_whitespace))
1903 {
1904 skip<StopPred, Flags>(text);
1905 return text;
1906 }
1907
1908 // Use simple skip until first modification is detected
1909 skip<StopPredPure, Flags>(text);
1910
1911 // Use translation skip
1912 Ch *src = text;
1913 Ch *dest = src;
1914 while (StopPred::test(*src))
1915 {
1916 // If entity translation is enabled
1917 if (!(Flags & parse_no_entity_translation))
1918 {
1919 // Test if replacement is needed
1920 if (src[0] == Ch('&'))
1921 {
1922 switch (src[1])
1923 {
1924
1925 // &amp; &apos;
1926 case Ch('a'):
1927 if (src[2] == Ch('m') && src[3] == Ch('p') && src[4] == Ch(';'))
1928 {
1929 *dest = Ch('&');
1930 ++dest;
1931 src += 5;
1932 continue;
1933 }
1934 if (src[2] == Ch('p') && src[3] == Ch('o') && src[4] == Ch('s') && src[5] == Ch(';'))
1935 {
1936 *dest = Ch('\'');
1937 ++dest;
1938 src += 6;
1939 continue;
1940 }
1941 break;
1942
1943 // &quot;
1944 case Ch('q'):
1945 if (src[2] == Ch('u') && src[3] == Ch('o') && src[4] == Ch('t') && src[5] == Ch(';'))
1946 {
1947 *dest = Ch('"');
1948 ++dest;
1949 src += 6;
1950 continue;
1951 }
1952 break;
1953
1954 // &gt;
1955 case Ch('g'):
1956 if (src[2] == Ch('t') && src[3] == Ch(';'))
1957 {
1958 *dest = Ch('>');
1959 ++dest;
1960 src += 4;
1961 continue;
1962 }
1963 break;
1964
1965 // &lt;
1966 case Ch('l'):
1967 if (src[2] == Ch('t') && src[3] == Ch(';'))
1968 {
1969 *dest = Ch('<');
1970 ++dest;
1971 src += 4;
1972 continue;
1973 }
1974 break;
1975
1976 // &#...; - assumes ASCII
1977 case Ch('#'):
1978 if (src[2] == Ch('x'))
1979 {
1980 unsigned long code = 0;
1981 src += 3; // Skip &#x
1982 while (1)
1983 {
1984 unsigned char digit = internal::lookup_tables<0>::lookup_digits[static_cast<unsigned char>(*src)];
1985 if (digit == 0xFF)
1986 break;
1987 code = code * 16 + digit;
1988 ++src;
1989 }
1990 insert_coded_character<Flags>(dest, code); // Put character in output
1991 }
1992 else
1993 {
1994 unsigned long code = 0;
1995 src += 2; // Skip &#
1996 while (1)
1997 {
1998 unsigned char digit = internal::lookup_tables<0>::lookup_digits[static_cast<unsigned char>(*src)];
1999 if (digit == 0xFF)
2000 break;
2001 code = code * 10 + digit;
2002 ++src;
2003 }
2004 insert_coded_character<Flags>(dest, code); // Put character in output
2005 }
2006 if (*src == Ch(';'))
2007 ++src;
2008 else
2009 RAPIDXML_PARSE_ERROR("expected ;", src);
2010 continue;
2011
2012 // Something else
2013 default:
2014 // Ignore, just copy '&' verbatim
2015 break;
2016
2017 }
2018 }
2019 }
2020
2021 // If whitespace condensing is enabled
2022 if (Flags & parse_normalize_whitespace)
2023 {
2024 // Test if condensing is needed
2025 if (whitespace_pred::test(*src))
2026 {
2027 *dest = Ch(' '); ++dest; // Put single space in dest
2028 ++src; // Skip first whitespace char
2029 // Skip remaining whitespace chars
2030 while (whitespace_pred::test(*src))
2031 ++src;
2032 continue;
2033 }
2034 }
2035
2036 // No replacement, only copy character
2037 *dest++ = *src++;
2038
2039 }
2040
2041 // Return new end
2042 text = src;
2043 return dest;
2044
2045 }
2046
2048 // Internal parsing functions
2049
2050 // Parse BOM, if any
2051 template<int Flags>
2052 void parse_bom(Ch *&text)
2053 {
2054 // UTF-8?
2055 if (static_cast<unsigned char>(text[0]) == 0xEF &&
2056 static_cast<unsigned char>(text[1]) == 0xBB &&
2057 static_cast<unsigned char>(text[2]) == 0xBF)
2058 {
2059 text += 3; // Skup utf-8 bom
2060 }
2061 }
2062
2063 // Parse XML declaration (<?xml...)
2064 template<int Flags>
2065 xml_node<Ch> *parse_xml_declaration(Ch *&text)
2066 {
2067 // If parsing of declaration is disabled
2068 if (!(Flags & parse_declaration_node))
2069 {
2070 // Skip until end of declaration
2071 while (text[0] != Ch('?') || text[1] != Ch('>'))
2072 {
2073 if (!text[0]) RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2074 ++text;
2075 }
2076 text += 2; // Skip '?>'
2077 return 0;
2078 }
2079
2080 // Create declaration
2081 xml_node<Ch> *declaration = this->allocate_node(node_declaration);
2082
2083 // Skip whitespace before attributes or ?>
2084 skip<whitespace_pred, Flags>(text);
2085
2086 // Parse declaration attributes
2087 parse_node_attributes<Flags>(text, declaration);
2088
2089 // Skip ?>
2090 if (text[0] != Ch('?') || text[1] != Ch('>')) RAPIDXML_PARSE_ERROR("expected ?>", text);
2091 text += 2;
2092
2093 return declaration;
2094 }
2095
2096 // Parse XML comment (<!--...)
2097 template<int Flags>
2098 xml_node<Ch> *parse_comment(Ch *&text)
2099 {
2100 // If parsing of comments is disabled
2101 if (!(Flags & parse_comment_nodes))
2102 {
2103 // Skip until end of comment
2104 while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>'))
2105 {
2106 if (!text[0]) RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2107 ++text;
2108 }
2109 text += 3; // Skip '-->'
2110 return 0; // Do not produce comment node
2111 }
2112
2113 // Remember value start
2114 Ch *value = text;
2115
2116 // Skip until end of comment
2117 while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>'))
2118 {
2119 if (!text[0]) RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2120 ++text;
2121 }
2122
2123 // Create comment node
2124 xml_node<Ch> *comment = this->allocate_node(node_comment);
2125 comment->value(value, text - value);
2126
2127 // Place zero terminator after comment value
2128 if (!(Flags & parse_no_string_terminators))
2129 *text = Ch('\0');
2130
2131 text += 3; // Skip '-->'
2132 return comment;
2133 }
2134
2135 // Parse DOCTYPE
2136 template<int Flags>
2137 xml_node<Ch> *parse_doctype(Ch *&text)
2138 {
2139 // Remember value start
2140 Ch *value = text;
2141
2142 // Skip to >
2143 while (*text != Ch('>'))
2144 {
2145 // Determine character type
2146 switch (*text)
2147 {
2148
2149 // If '[' encountered, scan for matching ending ']' using naive algorithm with depth
2150 // This works for all W3C test files except for 2 most wicked
2151 case Ch('['):
2152 {
2153 ++text; // Skip '['
2154 int depth = 1;
2155 while (depth > 0)
2156 {
2157 switch (*text)
2158 {
2159 case Ch('['): ++depth; break;
2160 case Ch(']'): --depth; break;
2161 case 0: RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2162 }
2163 ++text;
2164 }
2165 break;
2166 }
2167
2168 // Error on end of text
2169 case Ch('\0'):
2170 RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2171
2172 // Other character, skip it
2173 default:
2174 ++text;
2175
2176 }
2177 }
2178
2179 // If DOCTYPE nodes enabled
2180 if (Flags & parse_doctype_node)
2181 {
2182 // Create a new doctype node
2183 xml_node<Ch> *doctype = this->allocate_node(node_doctype);
2184 doctype->value(value, text - value);
2185
2186 // Place zero terminator after value
2187 if (!(Flags & parse_no_string_terminators))
2188 *text = Ch('\0');
2189
2190 text += 1; // skip '>'
2191 return doctype;
2192 }
2193 else
2194 {
2195 text += 1; // skip '>'
2196 return 0;
2197 }
2198
2199 }
2200
2201 // Parse PI
2202 template<int Flags>
2203 xml_node<Ch> *parse_pi(Ch *&text)
2204 {
2205 // If creation of PI nodes is enabled
2206 if (Flags & parse_pi_nodes)
2207 {
2208 // Create pi node
2209 xml_node<Ch> *pi = this->allocate_node(node_pi);
2210
2211 // Extract PI target name
2212 Ch *name = text;
2213 skip<node_name_pred, Flags>(text);
2214 if (text == name) RAPIDXML_PARSE_ERROR("expected PI target", text);
2215 pi->name(name, text - name);
2216
2217 // Skip whitespace between pi target and pi
2218 skip<whitespace_pred, Flags>(text);
2219
2220 // Remember start of pi
2221 Ch *value = text;
2222
2223 // Skip to '?>'
2224 while (text[0] != Ch('?') || text[1] != Ch('>'))
2225 {
2226 if (*text == Ch('\0'))
2227 RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2228 ++text;
2229 }
2230
2231 // Set pi value (verbatim, no entity expansion or whitespace normalization)
2232 pi->value(value, text - value);
2233
2234 // Place zero terminator after name and value
2235 if (!(Flags & parse_no_string_terminators))
2236 {
2237 pi->name()[pi->name_size()] = Ch('\0');
2238 pi->value()[pi->value_size()] = Ch('\0');
2239 }
2240
2241 text += 2; // Skip '?>'
2242 return pi;
2243 }
2244 else
2245 {
2246 // Skip to '?>'
2247 while (text[0] != Ch('?') || text[1] != Ch('>'))
2248 {
2249 if (*text == Ch('\0'))
2250 RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2251 ++text;
2252 }
2253 text += 2; // Skip '?>'
2254 return 0;
2255 }
2256 }
2257
2258 // Parse and append data
2259 // Return character that ends data.
2260 // This is necessary because this character might have been overwritten by a terminating 0
2261 template<int Flags>
2262 Ch parse_and_append_data(xml_node<Ch> *node, Ch *&text, Ch *contents_start)
2263 {
2264 // Backup to contents start if whitespace trimming is disabled
2265 if (!(Flags & parse_trim_whitespace))
2266 text = contents_start;
2267
2268 // Skip until end of data
2269 Ch *value = text, *end;
2270 if (Flags & parse_normalize_whitespace)
2271 end = skip_and_expand_character_refs<text_pred, text_pure_with_ws_pred, Flags>(text);
2272 else
2273 end = skip_and_expand_character_refs<text_pred, text_pure_no_ws_pred, Flags>(text);
2274
2275 // Trim trailing whitespace if flag is set; leading was already trimmed by whitespace skip after >
2276 if (Flags & parse_trim_whitespace)
2277 {
2278 if (Flags & parse_normalize_whitespace)
2279 {
2280 // Whitespace is already condensed to single space characters by skipping function, so just trim 1 char off the end
2281 if (*(end - 1) == Ch(' '))
2282 --end;
2283 }
2284 else
2285 {
2286 // Backup until non-whitespace character is found
2287 while (whitespace_pred::test(*(end - 1)))
2288 --end;
2289 }
2290 }
2291
2292 // If characters are still left between end and value (this test is only necessary if normalization is enabled)
2293 // Create new data node
2294 if (!(Flags & parse_no_data_nodes))
2295 {
2296 xml_node<Ch> *data = this->allocate_node(node_data);
2297 data->value(value, end - value);
2298 node->append_node(data);
2299 }
2300
2301 // Add data to parent node if no data exists yet
2302 if (!(Flags & parse_no_element_values))
2303 if (*node->value() == Ch('\0'))
2304 node->value(value, end - value);
2305
2306 // Place zero terminator after value
2307 if (!(Flags & parse_no_string_terminators))
2308 {
2309 Ch ch = *text;
2310 *end = Ch('\0');
2311 return ch; // Return character that ends data; this is required because zero terminator overwritten it
2312 }
2313
2314 // Return character that ends data
2315 return *text;
2316 }
2317
2318 // Parse CDATA
2319 template<int Flags>
2320 xml_node<Ch> *parse_cdata(Ch *&text)
2321 {
2322 // If CDATA is disabled
2323 if (Flags & parse_no_data_nodes)
2324 {
2325 // Skip until end of cdata
2326 while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>'))
2327 {
2328 if (!text[0])
2329 RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2330 ++text;
2331 }
2332 text += 3; // Skip ]]>
2333 return 0; // Do not produce CDATA node
2334 }
2335
2336 // Skip until end of cdata
2337 Ch *value = text;
2338 while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>'))
2339 {
2340 if (!text[0])
2341 RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2342 ++text;
2343 }
2344
2345 // Create new cdata node
2346 xml_node<Ch> *cdata = this->allocate_node(node_cdata);
2347 cdata->value(value, text - value);
2348
2349 // Place zero terminator after value
2350 if (!(Flags & parse_no_string_terminators))
2351 *text = Ch('\0');
2352
2353 text += 3; // Skip ]]>
2354 return cdata;
2355 }
2356
2357 // Parse element node
2358 template<int Flags>
2359 xml_node<Ch> *parse_element(Ch *&text)
2360 {
2361 // Create element node
2362 xml_node<Ch> *element = this->allocate_node(node_element);
2363
2364 // Extract element name
2365 Ch *prefix = text;
2366 skip<element_name_pred, Flags>(text);
2367 if (text == prefix)
2368 RAPIDXML_PARSE_ERROR("expected element name or prefix", text);
2369 if (*text == Ch(':')) {
2370 element->prefix(prefix, text - prefix);
2371 ++text;
2372 Ch *name = text;
2373 skip<node_name_pred, Flags>(text);
2374 if (text == name)
2375 RAPIDXML_PARSE_ERROR("expected element local name", text);
2376 element->name(name, text - name);
2377 } else {
2378 element->name(prefix, text - prefix);
2379 }
2380
2381 // Skip whitespace between element name and attributes or >
2382 skip<whitespace_pred, Flags>(text);
2383
2384 // Parse attributes, if any
2385 parse_node_attributes<Flags>(text, element);
2386
2387 // Determine ending type
2388 if (*text == Ch('>'))
2389 {
2390 Ch const * contents = ++text;
2391 Ch const * contents_end = 0;
2392 if (!(Flags & parse_open_only))
2393 contents_end = parse_node_contents<Flags>(text, element);
2394 std::size_t sz = contents_end - contents;
2395 if (sz) element->contents(contents, sz);
2396 }
2397 else if (*text == Ch('/'))
2398 {
2399 ++text;
2400 if (*text != Ch('>'))
2401 RAPIDXML_PARSE_ERROR("expected >", text);
2402 ++text;
2403 if (Flags & parse_open_only)
2404 RAPIDXML_PARSE_ERROR("open_only, but closed", text);
2405 }
2406 else
2407 RAPIDXML_PARSE_ERROR("expected >", text);
2408
2409 // Place zero terminator after name
2410 if (!(Flags & parse_no_string_terminators)) {
2411 element->name()[element->name_size()] = Ch('\0');
2412 if (element->prefix()) element->prefix()[element->prefix_size()] = Ch('\0');
2413 }
2414
2415 // Return parsed element
2416 return element;
2417 }
2418
2419 // Determine node type, and parse it
2420 template<int Flags>
2421 xml_node<Ch> *parse_node(Ch *&text)
2422 {
2423 // Parse proper node type
2424 switch (text[0])
2425 {
2426
2427 // <...
2428 default:
2429 // Parse and append element node
2430 return parse_element<Flags>(text);
2431
2432 // <?...
2433 case Ch('?'):
2434 ++text; // Skip ?
2435 if ((text[0] == Ch('x') || text[0] == Ch('X')) &&
2436 (text[1] == Ch('m') || text[1] == Ch('M')) &&
2437 (text[2] == Ch('l') || text[2] == Ch('L')) &&
2438 whitespace_pred::test(text[3]))
2439 {
2440 // '<?xml ' - xml declaration
2441 text += 4; // Skip 'xml '
2442 return parse_xml_declaration<Flags>(text);
2443 }
2444 else
2445 {
2446 // Parse PI
2447 return parse_pi<Flags>(text);
2448 }
2449
2450 // <!...
2451 case Ch('!'):
2452
2453 // Parse proper subset of <! node
2454 switch (text[1])
2455 {
2456
2457 // <!-
2458 case Ch('-'):
2459 if (text[2] == Ch('-'))
2460 {
2461 // '<!--' - xml comment
2462 text += 3; // Skip '!--'
2463 return parse_comment<Flags>(text);
2464 }
2465 break;
2466
2467 // <![
2468 case Ch('['):
2469 if (text[2] == Ch('C') && text[3] == Ch('D') && text[4] == Ch('A') &&
2470 text[5] == Ch('T') && text[6] == Ch('A') && text[7] == Ch('['))
2471 {
2472 // '<![CDATA[' - cdata
2473 text += 8; // Skip '![CDATA['
2474 return parse_cdata<Flags>(text);
2475 }
2476 break;
2477
2478 // <!D
2479 case Ch('D'):
2480 if (text[2] == Ch('O') && text[3] == Ch('C') && text[4] == Ch('T') &&
2481 text[5] == Ch('Y') && text[6] == Ch('P') && text[7] == Ch('E') &&
2482 whitespace_pred::test(text[8]))
2483 {
2484 // '<!DOCTYPE ' - doctype
2485 text += 9; // skip '!DOCTYPE '
2486 return parse_doctype<Flags>(text);
2487 }
2488
2489 } // switch
2490
2491 // Attempt to skip other, unrecognized node types starting with <!
2492 ++text; // Skip !
2493 while (*text != Ch('>'))
2494 {
2495 if (*text == 0)
2496 RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2497 ++text;
2498 }
2499 ++text; // Skip '>'
2500 return 0; // No node recognized
2501
2502 }
2503 }
2504
2505 // Parse contents of the node - children, data etc.
2506 // Return end pointer.
2507 template<int Flags>
2508 Ch * parse_node_contents(Ch *&text, xml_node<Ch> *node)
2509 {
2510 Ch * retval = 0;
2511 // For all children and text
2512 while (1)
2513 {
2514 // Skip whitespace between > and node contents
2515 Ch *contents_start = text; // Store start of node contents before whitespace is skipped
2516 skip<whitespace_pred, Flags>(text);
2517 Ch next_char = *text;
2518
2519 // After data nodes, instead of continuing the loop, control jumps here.
2520 // This is because zero termination inside parse_and_append_data() function
2521 // would wreak havoc with the above code.
2522 // Also, skipping whitespace after data nodes is unnecessary.
2523 after_data_node:
2524
2525 // Determine what comes next: node closing, child node, data node, or 0?
2526 switch (next_char)
2527 {
2528
2529 // Node closing or child node
2530 case Ch('<'):
2531 if (text[1] == Ch('/'))
2532 {
2533 // Node closing
2534 retval = text;
2535 text += 2; // Skip '</'
2536 if (Flags & parse_validate_closing_tags)
2537 {
2538 // Skip and validate closing tag name
2539 Ch *closing_name = text;
2540 skip<node_name_pred, Flags>(text);
2541 if (!internal::compare(node->name(), node->name_size(), closing_name, text - closing_name, true))
2542 RAPIDXML_PARSE_ERROR("invalid closing tag name", text);
2543 }
2544 else
2545 {
2546 // No validation, just skip name
2547 skip<node_name_pred, Flags>(text);
2548 }
2549 // Skip remaining whitespace after node name
2550 skip<whitespace_pred, Flags>(text);
2551 if (*text != Ch('>'))
2552 RAPIDXML_PARSE_ERROR("expected >", text);
2553 ++text; // Skip '>'
2554 if (Flags & parse_open_only)
2555 RAPIDXML_PARSE_ERROR("Unclosed element actually closed.", text);
2556 return retval; // Node closed, finished parsing contents
2557 }
2558 else
2559 {
2560 // Child node
2561 ++text; // Skip '<'
2562 if (xml_node<Ch> *child = parse_node<Flags & ~parse_open_only>(text))
2563 node->append_node(child);
2564 }
2565 break;
2566
2567 // End of data - error unless we expected this.
2568 case Ch('\0'):
2569 if (Flags & parse_open_only) {
2570 return 0;
2571 } else {
2572 RAPIDXML_PARSE_ERROR("unexpected end of data", text);
2573 }
2574
2575 // Data node
2576 default:
2577 next_char = parse_and_append_data<Flags>(node, text, contents_start);
2578 goto after_data_node; // Bypass regular processing after data nodes
2579
2580 }
2581 }
2582 }
2583
2584 // Parse XML attributes of the node
2585 template<int Flags>
2586 void parse_node_attributes(Ch *&text, xml_node<Ch> *node)
2587 {
2588 // For all attributes
2589 while (attribute_name_pred::test(*text))
2590 {
2591 // Extract attribute name
2592 Ch *name = text;
2593 ++text; // Skip first character of attribute name
2594 skip<attribute_name_pred, Flags>(text);
2595 if (text == name)
2596 RAPIDXML_PARSE_ERROR("expected attribute name", name);
2597
2598 // Create new attribute
2599 xml_attribute<Ch> *attribute = this->allocate_attribute();
2600 attribute->name(name, text - name);
2601 node->append_attribute(attribute);
2602
2603 // Skip whitespace after attribute name
2604 skip<whitespace_pred, Flags>(text);
2605
2606 // Skip =
2607 if (*text != Ch('='))
2608 RAPIDXML_PARSE_ERROR("expected =", text);
2609 ++text;
2610
2611 // Add terminating zero after name
2612 if (!(Flags & parse_no_string_terminators))
2613 attribute->name()[attribute->name_size()] = 0;
2614
2615 // Skip whitespace after =
2616 skip<whitespace_pred, Flags>(text);
2617
2618 // Skip quote and remember if it was ' or "
2619 Ch quote = *text;
2620 if (quote != Ch('\'') && quote != Ch('"'))
2621 RAPIDXML_PARSE_ERROR("expected ' or \"", text);
2622 ++text;
2623
2624 // Extract attribute value and expand char refs in it
2625 Ch *value = text, *end;
2626 const int AttFlags = Flags & ~parse_normalize_whitespace; // No whitespace normalization in attributes
2627 if (quote == Ch('\''))
2628 end = skip_and_expand_character_refs<attribute_value_pred<Ch('\'')>, attribute_value_pure_pred<Ch('\'')>, AttFlags>(text);
2629 else
2630 end = skip_and_expand_character_refs<attribute_value_pred<Ch('"')>, attribute_value_pure_pred<Ch('"')>, AttFlags>(text);
2631
2632 // Set attribute value
2633 attribute->value(value, end - value);
2634
2635 // Make sure that end quote is present
2636 if (*text != quote)
2637 RAPIDXML_PARSE_ERROR("expected ' or \"", text);
2638 ++text; // Skip quote
2639
2640 // Add terminating zero after value
2641 if (!(Flags & parse_no_string_terminators))
2642 attribute->value()[attribute->value_size()] = 0;
2643
2644 // Skip whitespace after attribute value
2645 skip<whitespace_pred, Flags>(text);
2646 }
2647 }
2648
2649 };
2650
2652 namespace internal
2653 {
2654
2655 // Whitespace (space \n \r \t)
2656 template<int Dummy>
2657 const unsigned char lookup_tables<Dummy>::lookup_whitespace[256] =
2658 {
2659 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, // 0
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1
2662 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 2
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 3
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 5
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6
2667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 7
2668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // A
2671 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // B
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // C
2673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // D
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // E
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // F
2676 };
2677
2678 // Element name (anything but space \n \r \t / > ? \0 and :)
2679 template<int Dummy>
2680 const unsigned char lookup_tables<Dummy>::lookup_element_name[256] =
2681 {
2682 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2683 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, // 0
2684 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2685 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, // 2
2686 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, // 3
2687 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2688 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2689 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2690 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2691 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2692 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2693 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2694 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2695 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2696 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2697 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2698 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2699 };
2700
2701 // Node name (anything but space \n \r \t / > ? \0)
2702 template<int Dummy>
2703 const unsigned char lookup_tables<Dummy>::lookup_node_name[256] =
2704 {
2705 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2706 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, // 0
2707 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2708 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, // 2
2709 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, // 3
2710 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2711 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2713 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2714 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2715 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2716 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2717 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2718 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2719 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2720 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2721 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2722 };
2723
2724 // Text (i.e. PCDATA) (anything but < \0)
2725 template<int Dummy>
2726 const unsigned char lookup_tables<Dummy>::lookup_text[256] =
2727 {
2728 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2729 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0
2730 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2731 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 2
2732 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, // 3
2733 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2734 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2735 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2736 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2737 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2738 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2739 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2740 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2741 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2742 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2743 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2744 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2745 };
2746
2747 // Text (i.e. PCDATA) that does not require processing when ws normalization is disabled
2748 // (anything but < \0 &)
2749 template<int Dummy>
2750 const unsigned char lookup_tables<Dummy>::lookup_text_pure_no_ws[256] =
2751 {
2752 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2753 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0
2754 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2755 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 2
2756 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, // 3
2757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2758 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2759 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2760 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2761 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2762 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2763 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2764 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2765 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2766 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2767 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2768 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2769 };
2770
2771 // Text (i.e. PCDATA) that does not require processing when ws normalizationis is enabled
2772 // (anything but < \0 & space \n \r \t)
2773 template<int Dummy>
2774 const unsigned char lookup_tables<Dummy>::lookup_text_pure_with_ws[256] =
2775 {
2776 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2777 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, // 0
2778 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2779 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 2
2780 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, // 3
2781 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2782 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2783 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2784 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2785 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2786 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2787 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2788 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2789 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2790 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2791 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2792 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2793 };
2794
2795 // Attribute name (anything but space \n \r \t / < > = ? ! \0)
2796 template<int Dummy>
2797 const unsigned char lookup_tables<Dummy>::lookup_attribute_name[256] =
2798 {
2799 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2800 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, // 0
2801 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2802 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, // 2
2803 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, // 3
2804 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2805 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2806 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2807 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2808 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2809 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2810 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2811 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2812 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2813 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2814 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2815 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2816 };
2817
2818 // Attribute data with single quote (anything but ' \0)
2819 template<int Dummy>
2820 const unsigned char lookup_tables<Dummy>::lookup_attribute_data_1[256] =
2821 {
2822 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2823 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0
2824 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2825 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, // 2
2826 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
2827 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2828 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2829 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2830 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2831 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2832 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2833 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2834 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2835 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2836 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2837 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2838 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2839 };
2840
2841 // Attribute data with single quote that does not require processing (anything but ' \0 &)
2842 template<int Dummy>
2843 const unsigned char lookup_tables<Dummy>::lookup_attribute_data_1_pure[256] =
2844 {
2845 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2846 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0
2847 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2848 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, // 2
2849 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
2850 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2851 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2852 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2853 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2854 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2855 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2856 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2857 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2858 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2859 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2860 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2861 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2862 };
2863
2864 // Attribute data with double quote (anything but " \0)
2865 template<int Dummy>
2866 const unsigned char lookup_tables<Dummy>::lookup_attribute_data_2[256] =
2867 {
2868 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2869 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0
2870 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2871 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 2
2872 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
2873 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2874 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2875 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2876 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2877 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2878 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2879 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2880 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2881 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2883 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2884 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2885 };
2886
2887 // Attribute data with double quote that does not require processing (anything but " \0 &)
2888 template<int Dummy>
2889 const unsigned char lookup_tables<Dummy>::lookup_attribute_data_2_pure[256] =
2890 {
2891 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2892 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0
2893 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 1
2894 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 2
2895 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
2896 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
2897 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 5
2898 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
2899 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 7
2900 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
2901 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
2902 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // A
2903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // B
2904 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // C
2905 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // D
2906 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // E
2907 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // F
2908 };
2909
2910 // Digits (dec and hex, 255 denotes end of numeric character reference)
2911 template<int Dummy>
2912 const unsigned char lookup_tables<Dummy>::lookup_digits[256] =
2913 {
2914 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
2915 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // 0
2916 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // 1
2917 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // 2
2918 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,255,255,255,255,255,255, // 3
2919 255, 10, 11, 12, 13, 14, 15,255,255,255,255,255,255,255,255,255, // 4
2920 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // 5
2921 255, 10, 11, 12, 13, 14, 15,255,255,255,255,255,255,255,255,255, // 6
2922 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // 7
2923 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // 8
2924 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // 9
2925 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // A
2926 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // B
2927 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // C
2928 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // D
2929 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, // E
2930 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 // F
2931 };
2932
2933 // Upper case conversion
2934 template<int Dummy>
2935 const unsigned char lookup_tables<Dummy>::lookup_upcase[256] =
2936 {
2937 // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A B C D E F
2938 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // 0
2939 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, // 1
2940 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, // 2
2941 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, // 3
2942 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, // 4
2943 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, // 5
2944 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, // 6
2945 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123,124,125,126,127, // 7
2946 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, // 8
2947 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, // 9
2948 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, // A
2949 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, // B
2950 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, // C
2951 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223, // D
2952 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, // E
2953 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 // F
2954 };
2955 }
2957
2958 }
2959
2960 // Undefine internal macros
2961 #undef RAPIDXML_PARSE_ERROR
2962
2963 // On MSVC, restore warnings state
2964 #ifdef _MSC_VER
2965 #pragma warning(pop)
2966 #endif
2967
2968 #endif
rapidxml::xml_base::parent
xml_node< Ch > * parent() const
Definition: rapidxml.hpp:827
rapidxml::memory_pool::clone_node
xml_node< Ch > * clone_node(const xml_node< Ch > *source, xml_node< Ch > *result=0)
Definition: rapidxml.hpp:548
rapidxml::node_pi
A PI node. Name contains target. Value contains instructions.
Definition: rapidxml.hpp:156
rapidxml::memory_pool::clear
void clear()
Definition: rapidxml.hpp:576
rapidxml::xml_document::parse
Ch * parse(Ch *text, xml_document< Ch > *parent=0)
Definition: rapidxml.hpp:1638
rapidxml::xml_node::xml_node
xml_node(node_type type)
Definition: rapidxml.hpp:989
rapidxml::node_cdata
A CDATA node. Name is empty. Value contains data text.
Definition: rapidxml.hpp:152
rapidxml::node_doctype
A DOCTYPE node. Name is empty. Value contains DOCTYPE text.
Definition: rapidxml.hpp:155
rapidxml::xml_document::clear
void clear()
Definition: rapidxml.hpp:1683
rapidxml::xml_base::name
void name(const Ch *name, std::size_t size)
Definition: rapidxml.hpp:779
rapidxml::xml_base::name_size
std::size_t name_size() const
Definition: rapidxml.hpp:740
rapidxml::xml_node::next_sibling
xml_node< Ch > * next_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1221
rapidxml::xml_base
Definition: rapidxml.hpp:705
rapidxml::xml_node::prepend_attribute
void prepend_attribute(xml_attribute< Ch > *attribute)
Definition: rapidxml.hpp:1422
rapidxml::xml_node::document
xml_document< Ch > * document() const
Definition: rapidxml.hpp:1128
rapidxml::xml_base::value
void value(const Ch *value, std::size_t size)
Definition: rapidxml.hpp:809
rapidxml::xml_node::first_node
xml_node< Ch > * first_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1141
rapidxml::xml_base::value_size
std::size_t value_size() const
Definition: rapidxml.hpp:759
rapidxml::parse_normalize_whitespace
const int parse_normalize_whitespace
Definition: rapidxml.hpp:252
rapidxml::memory_pool::set_allocator
void set_allocator(alloc_func *af, free_func *ff)
Definition: rapidxml.hpp:603
rapidxml::memory_pool::allocate_string
Ch * allocate_string(const Sch *source=0, std::size_t size=0)
Definition: rapidxml.hpp:505
rapidxml::xml_document::xml_document
xml_document()
Constructs empty XML document.
Definition: rapidxml.hpp:1621
rapidxml::memory_pool
Definition: rapidxml.hpp:399
rapidxml::xml_node::append_attribute
void append_attribute(xml_attribute< Ch > *attribute)
Definition: rapidxml.hpp:1442
std
rapidxml::parse_open_only
const int parse_open_only
Definition: rapidxml.hpp:256
rapidxml::parse_non_destructive
const int parse_non_destructive
Definition: rapidxml.hpp:288
rapidxml::memory_pool::memory_pool
memory_pool()
Constructs empty pool with default allocator functions.
Definition: rapidxml.hpp:410
rapidxml::xml_base::name
Ch * name() const
Definition: rapidxml.hpp:732
rapidxml::xml_node::remove_all_nodes
void remove_all_nodes()
Removes all child nodes (but not attributes).
Definition: rapidxml.hpp:1413
rapidxml::xml_node::remove_last_attribute
void remove_last_attribute()
Definition: rapidxml.hpp:1502
rapidxml::xml_node::remove_first_attribute
void remove_first_attribute()
Definition: rapidxml.hpp:1485
rapidxml::parse_default
const int parse_default
Definition: rapidxml.hpp:278
rapidxml::xml_node::insert_node
void insert_node(xml_node< Ch > *where, xml_node< Ch > *child)
Definition: rapidxml.hpp:1344
rapidxml::xml_node::remove_attribute
void remove_attribute(xml_attribute< Ch > *where)
Definition: rapidxml.hpp:1518
rapidxml::parse_doctype_node
const int parse_doctype_node
Definition: rapidxml.hpp:220
rapidxml::eof_error
Definition: rapidxml.hpp:98
rapidxml::node_document
A document node. Name and value are empty.
Definition: rapidxml.hpp:149
rapidxml::parse_error
Definition: rapidxml.hpp:73
rapidxml::validation_error
Definition: rapidxml.hpp:103
rapidxml::xml_base::name
void name(const Ch *name)
Definition: rapidxml.hpp:788
rapidxml::parse_parse_one
const int parse_parse_one
Definition: rapidxml.hpp:261
rapidxml::node_declaration
A declaration node. Name and value are empty. Declaration parameters (version, encoding and standalon...
Definition: rapidxml.hpp:154
rapidxml::parse_fastest
const int parse_fastest
Definition: rapidxml.hpp:293
rapidxml::xml_node::remove_last_node
void remove_last_node()
Definition: rapidxml.hpp:1380
rapidxml::xml_node::previous_sibling
xml_node< Ch > * previous_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1190
rapidxml::parse_no_string_terminators
const int parse_no_string_terminators
Definition: rapidxml.hpp:184
rapidxml::parse_no_utf8
const int parse_no_utf8
Definition: rapidxml.hpp:198
rapidxml::xml_node::remove_node
void remove_node(xml_node< Ch > *where)
Removes specified child from the node.
Definition: rapidxml.hpp:1396
rapidxml::parse_pi_nodes
const int parse_pi_nodes
Definition: rapidxml.hpp:227
rapidxml::xml_attribute
Definition: rapidxml.hpp:142
rapidxml::xml_attribute::previous_attribute
xml_attribute< Ch > * previous_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:905
rapidxml::parse_validate_xmlns
const int parse_validate_xmlns
Definition: rapidxml.hpp:266
rapidxml::parse_comment_nodes
const int parse_comment_nodes
Definition: rapidxml.hpp:212
rapidxml::parse_declaration_node
const int parse_declaration_node
Definition: rapidxml.hpp:205
rapidxml::xml_node::remove_first_node
void remove_first_node()
Definition: rapidxml.hpp:1365
rapidxml::parse_full
const int parse_full
Definition: rapidxml.hpp:299
rapidxml::node_literal
Value is unencoded text (used for inserting pre-rendered XML).
Definition: rapidxml.hpp:157
rapidxml::xml_base::value
Ch * value() const
Definition: rapidxml.hpp:751
rapidxml::xml_node::append_node
void append_node(xml_node< Ch > *child)
Definition: rapidxml.hpp:1322
rapidxml::parse_no_data_nodes
const int parse_no_data_nodes
Definition: rapidxml.hpp:168
rapidxml::xml_document::fixup
void fixup(xml_node< Ch > *element, bool recurse)
Definition: rapidxml.hpp:1693
rapidxml::memory_pool::~memory_pool
~memory_pool()
Definition: rapidxml.hpp:420
rapidxml::xml_attribute::xml_attribute
xml_attribute()
Definition: rapidxml.hpp:859
rapidxml::parse_no_element_values
const int parse_no_element_values
Definition: rapidxml.hpp:177
rapidxml::parse_validate_closing_tags
const int parse_validate_closing_tags
Definition: rapidxml.hpp:235
rapidxml::xml_node::type
node_type type() const
Definition: rapidxml.hpp:1011
rapidxml::parse_trim_whitespace
const int parse_trim_whitespace
Definition: rapidxml.hpp:243
rapidxml::memory_pool::allocate_node
xml_node< Ch > * allocate_node(node_type type, const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0)
Definition: rapidxml.hpp:435
rapidxml::parse_error::where
Ch * where() const
Definition: rapidxml.hpp:89
rapidxml::xml_node::type
void type(node_type type)
Definition: rapidxml.hpp:1290
rapidxml::node_element
An element node. Name contains element name. Value contains text of first data node.
Definition: rapidxml.hpp:150
rapidxml::xml_document
Definition: rapidxml.hpp:143
rapidxml::xml_node
Definition: rapidxml.hpp:141
rapidxml::xml_node::last_attribute
xml_attribute< Ch > * last_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1270
rapidxml::xml_node::last_node
xml_node< Ch > * last_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1165
rapidxml
Definition: rapidxml.hpp:59
rapidxml::node_comment
A comment node. Name is empty. Value contains comment text.
Definition: rapidxml.hpp:153
rapidxml::node_data
A data node. Name is empty. Value contains data text.
Definition: rapidxml.hpp:151
rapidxml::xml_node::prepend_node
void prepend_node(xml_node< Ch > *child)
Definition: rapidxml.hpp:1301
rapidxml::xml_node::insert_attribute
void insert_attribute(xml_attribute< Ch > *where, xml_attribute< Ch > *attribute)
Definition: rapidxml.hpp:1464
rapidxml::parse_error::parse_error
parse_error(const char *what, void *where)
Constructs parse error.
Definition: rapidxml.hpp:79
rapidxml::xml_node::remove_all_attributes
void remove_all_attributes()
Removes all attributes of node.
Definition: rapidxml.hpp:1534
rapidxml::memory_pool::allocate_attribute
xml_attribute< Ch > * allocate_attribute(const Ch *name=0, const Ch *value=0, std::size_t name_size=0, std::size_t value_size=0)
Definition: rapidxml.hpp:475
rapidxml::xml_node::first_attribute
xml_attribute< Ch > * first_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1250
rapidxml::xml_base::value
void value(const Ch *value)
Definition: rapidxml.hpp:818
rapidxml::parse_no_entity_translation
const int parse_no_entity_translation
Definition: rapidxml.hpp:191
rapidxml::node_type
node_type
Definition: rapidxml.hpp:147
rapidxml::xml_attribute::next_attribute
xml_attribute< Ch > * next_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:925
rapidxml::xml_attribute::document
xml_document< Ch > * document() const
Definition: rapidxml.hpp:868
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml_iterators.hpp Source File

  • include
  • rapidxml
rapidxml_iterators.hpp
Go to the documentation of this file.
1 #ifndef RAPIDXML_ITERATORS_HPP_INCLUDED
2 #define RAPIDXML_ITERATORS_HPP_INCLUDED
3
4 // Copyright (C) 2006, 2009 Marcin Kalicinski
5 // Version 1.13
6 // Revision $DateTime: 2009/05/13 01:46:17 $
8
9 #include "rapidxml.hpp"
10
11 namespace rapidxml
12 {
13
15 template<class Ch>
16 class node_iterator
17 {
18
19 public:
20
21 typedef typename xml_node<Ch> value_type;
22 typedef typename xml_node<Ch> &reference;
23 typedef typename xml_node<Ch> *pointer;
24 typedef std::ptrdiff_t difference_type;
25 typedef std::bidirectional_iterator_tag iterator_category;
26
27 node_iterator()
28 : m_node(0)
29 {
30 }
31
32 node_iterator(xml_node<Ch> *node)
33 : m_node(node->first_node())
34 {
35 }
36
37 reference operator *() const
38 {
39 assert(m_node);
40 return *m_node;
41 }
42
43 pointer operator->() const
44 {
45 assert(m_node);
46 return m_node;
47 }
48
49 node_iterator& operator++()
50 {
51 assert(m_node);
52 m_node = m_node->next_sibling();
53 return *this;
54 }
55
56 node_iterator operator++(int)
57 {
58 node_iterator tmp = *this;
59 ++this;
60 return tmp;
61 }
62
63 node_iterator& operator--()
64 {
65 assert(m_node && m_node->previous_sibling());
66 m_node = m_node->previous_sibling();
67 return *this;
68 }
69
70 node_iterator operator--(int)
71 {
72 node_iterator tmp = *this;
73 ++this;
74 return tmp;
75 }
76
77 bool operator ==(const node_iterator<Ch> &rhs)
78 {
79 return m_node == rhs.m_node;
80 }
81
82 bool operator !=(const node_iterator<Ch> &rhs)
83 {
84 return m_node != rhs.m_node;
85 }
86
87 private:
88
89 xml_node<Ch> *m_node;
90
91 };
92
94 template<class Ch>
95 class attribute_iterator
96 {
97
98 public:
99
100 typedef typename xml_attribute<Ch> value_type;
101 typedef typename xml_attribute<Ch> &reference;
102 typedef typename xml_attribute<Ch> *pointer;
103 typedef std::ptrdiff_t difference_type;
104 typedef std::bidirectional_iterator_tag iterator_category;
105
106 attribute_iterator()
107 : m_attribute(0)
108 {
109 }
110
111 attribute_iterator(xml_node<Ch> *node)
112 : m_attribute(node->first_attribute())
113 {
114 }
115
116 reference operator *() const
117 {
118 assert(m_attribute);
119 return *m_attribute;
120 }
121
122 pointer operator->() const
123 {
124 assert(m_attribute);
125 return m_attribute;
126 }
127
128 attribute_iterator& operator++()
129 {
130 assert(m_attribute);
131 m_attribute = m_attribute->next_attribute();
132 return *this;
133 }
134
135 attribute_iterator operator++(int)
136 {
137 attribute_iterator tmp = *this;
138 ++this;
139 return tmp;
140 }
141
142 attribute_iterator& operator--()
143 {
144 assert(m_attribute && m_attribute->previous_attribute());
145 m_attribute = m_attribute->previous_attribute();
146 return *this;
147 }
148
149 attribute_iterator operator--(int)
150 {
151 attribute_iterator tmp = *this;
152 ++this;
153 return tmp;
154 }
155
156 bool operator ==(const attribute_iterator<Ch> &rhs)
157 {
158 return m_attribute == rhs.m_attribute;
159 }
160
161 bool operator !=(const attribute_iterator<Ch> &rhs)
162 {
163 return m_attribute != rhs.m_attribute;
164 }
165
166 private:
167
168 xml_attribute<Ch> *m_attribute;
169
170 };
171
172 }
173
174 #endif
rapidxml.hpp
This file contains rapidxml parser and DOM implementation.
rapidxml::node_iterator
Iterator of child nodes of xml_node.
Definition: rapidxml_iterators.hpp:16
rapidxml::xml_node::first_node
xml_node< Ch > * first_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1141
rapidxml::attribute_iterator
Iterator of child attributes of xml_node.
Definition: rapidxml_iterators.hpp:95
rapidxml::xml_attribute
Definition: rapidxml.hpp:142
rapidxml::xml_node
Definition: rapidxml.hpp:141
rapidxml
Definition: rapidxml.hpp:59
rapidxml::xml_node::first_attribute
xml_attribute< Ch > * first_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1250
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml_print.hpp Source File

  • include
  • rapidxml
rapidxml_print.hpp
Go to the documentation of this file.
1 #ifndef RAPIDXML_PRINT_HPP_INCLUDED
2 #define RAPIDXML_PRINT_HPP_INCLUDED
3
4 // Copyright (C) 2006, 2009 Marcin Kalicinski
5 // Version 1.13
6 // Revision $DateTime: 2009/05/13 01:46:17 $
8
9 #include "rapidxml.hpp"
10
11 // Only include streams if not disabled
12 #ifndef RAPIDXML_NO_STREAMS
13 #include <ostream>
14 #include <iterator>
15 #endif
16
17 namespace rapidxml
18 {
19
21 // Printing flags
22
23 const int print_no_indenting = 0x1;
24
26 // Internal
27
29 namespace internal
30 {
31
33 // Internal character operations
34
35 // Copy characters from given range to given output iterator
36 template<class OutIt, class Ch>
37 inline OutIt copy_chars(const Ch *begin, const Ch *end, OutIt out)
38 {
39 while (begin != end)
40 *out++ = *begin++;
41 return out;
42 }
43
44 // Copy characters from given range to given output iterator and expand
45 // characters into references (&lt; &gt; &apos; &quot; &amp;)
46 template<class OutIt, class Ch>
47 inline OutIt copy_and_expand_chars(const Ch *begin, const Ch *end, Ch noexpand, OutIt out)
48 {
49 while (begin != end)
50 {
51 if (*begin == noexpand)
52 {
53 *out++ = *begin; // No expansion, copy character
54 }
55 else
56 {
57 switch (*begin)
58 {
59 case Ch('<'):
60 *out++ = Ch('&'); *out++ = Ch('l'); *out++ = Ch('t'); *out++ = Ch(';');
61 break;
62 case Ch('>'):
63 *out++ = Ch('&'); *out++ = Ch('g'); *out++ = Ch('t'); *out++ = Ch(';');
64 break;
65 case Ch('\''):
66 *out++ = Ch('&'); *out++ = Ch('a'); *out++ = Ch('p'); *out++ = Ch('o'); *out++ = Ch('s'); *out++ = Ch(';');
67 break;
68 case Ch('"'):
69 *out++ = Ch('&'); *out++ = Ch('q'); *out++ = Ch('u'); *out++ = Ch('o'); *out++ = Ch('t'); *out++ = Ch(';');
70 break;
71 case Ch('&'):
72 *out++ = Ch('&'); *out++ = Ch('a'); *out++ = Ch('m'); *out++ = Ch('p'); *out++ = Ch(';');
73 break;
74 default:
75 *out++ = *begin; // No expansion, copy character
76 }
77 }
78 ++begin; // Step to next character
79 }
80 return out;
81 }
82
83 // Fill given output iterator with repetitions of the same character
84 template<class OutIt, class Ch>
85 inline OutIt fill_chars(OutIt out, int n, Ch ch)
86 {
87 for (int i = 0; i < n; ++i)
88 *out++ = ch;
89 return out;
90 }
91
92 // Find character
93 template<class Ch, Ch ch>
94 inline bool find_char(const Ch *begin, const Ch *end)
95 {
96 while (begin != end)
97 if (*begin++ == ch)
98 return true;
99 return false;
100 }
101
103 // Internal printing operations
104
105 // Print node
106 template<class OutIt, class Ch>
107 inline OutIt print_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
108
109 // Print children of the node
110 template<class OutIt, class Ch>
111 inline OutIt print_children(OutIt out, const xml_node<Ch> *node, int flags, int indent)
112 {
113 for (xml_node<Ch> *child = node->first_node(); child; child = child->next_sibling())
114 out = print_node(out, child, flags, indent);
115 return out;
116 }
117
118 // Print attributes of the node
119 template<class OutIt, class Ch>
120 inline OutIt print_attributes(OutIt out, const xml_node<Ch> *node, int flags)
121 {
122 for (xml_attribute<Ch> *attribute = node->first_attribute(); attribute; attribute = attribute->next_attribute())
123 {
124 if (attribute->name() && attribute->value())
125 {
126 // Print attribute name
127 *out = Ch(' '), ++out;
128 out = copy_chars(attribute->name(), attribute->name() + attribute->name_size(), out);
129 *out = Ch('='), ++out;
130 // Print attribute value using appropriate quote type
131 if (find_char<Ch, Ch('"')>(attribute->value(), attribute->value() + attribute->value_size()))
132 {
133 *out = Ch('\''), ++out;
134 out = copy_and_expand_chars(attribute->value(), attribute->value() + attribute->value_size(), Ch('"'), out);
135 *out = Ch('\''), ++out;
136 }
137 else
138 {
139 *out = Ch('"'), ++out;
140 out = copy_and_expand_chars(attribute->value(), attribute->value() + attribute->value_size(), Ch('\''), out);
141 *out = Ch('"'), ++out;
142 }
143 }
144 }
145 return out;
146 }
147
148 // Print data node
149 template<class OutIt, class Ch>
150 inline OutIt print_data_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
151 {
152 assert(node->type() == node_data);
153 if (!(flags & print_no_indenting))
154 out = fill_chars(out, indent, Ch('\t'));
155 out = copy_and_expand_chars(node->value(), node->value() + node->value_size(), Ch(0), out);
156 return out;
157 }
158
159 // Print data node
160 template<class OutIt, class Ch>
161 inline OutIt print_cdata_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
162 {
163 assert(node->type() == node_cdata);
164 if (!(flags & print_no_indenting))
165 out = fill_chars(out, indent, Ch('\t'));
166 *out = Ch('<'); ++out;
167 *out = Ch('!'); ++out;
168 *out = Ch('['); ++out;
169 *out = Ch('C'); ++out;
170 *out = Ch('D'); ++out;
171 *out = Ch('A'); ++out;
172 *out = Ch('T'); ++out;
173 *out = Ch('A'); ++out;
174 *out = Ch('['); ++out;
175 out = copy_chars(node->value(), node->value() + node->value_size(), out);
176 *out = Ch(']'); ++out;
177 *out = Ch(']'); ++out;
178 *out = Ch('>'); ++out;
179 return out;
180 }
181
182 // Print element node
183 template<class OutIt, class Ch>
184 inline OutIt print_element_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
185 {
186 assert(node->type() == node_element);
187
188 // Print element name and attributes, if any
189 if (!(flags & print_no_indenting))
190 out = fill_chars(out, indent, Ch('\t'));
191 *out = Ch('<'), ++out;
192 out = copy_chars(node->name(), node->name() + node->name_size(), out);
193 out = print_attributes(out, node, flags);
194
195 // If node is childless
196 if (node->value_size() == 0 && !node->first_node())
197 {
198 // Print childless node tag ending
199 *out = Ch('/'), ++out;
200 *out = Ch('>'), ++out;
201 }
202 else
203 {
204 // Print normal node tag ending
205 *out = Ch('>'), ++out;
206
207 // Test if node contains a single data node only (and no other nodes)
208 xml_node<Ch> *child = node->first_node();
209 if (!child)
210 {
211 // If node has no children, only print its value without indenting
212 out = copy_and_expand_chars(node->value(), node->value() + node->value_size(), Ch(0), out);
213 }
214 else if (child->next_sibling() == 0 && child->type() == node_data)
215 {
216 // If node has a sole data child, only print its value without indenting
217 out = copy_and_expand_chars(child->value(), child->value() + child->value_size(), Ch(0), out);
218 }
219 else
220 {
221 // Print all children with full indenting
222 if (!(flags & print_no_indenting))
223 *out = Ch('\n'), ++out;
224 out = print_children(out, node, flags, indent + 1);
225 if (!(flags & print_no_indenting))
226 out = fill_chars(out, indent, Ch('\t'));
227 }
228
229 // Print node end
230 *out = Ch('<'), ++out;
231 *out = Ch('/'), ++out;
232 out = copy_chars(node->name(), node->name() + node->name_size(), out);
233 *out = Ch('>'), ++out;
234 }
235 return out;
236 }
237
238 // Print declaration node
239 template<class OutIt, class Ch>
240 inline OutIt print_declaration_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
241 {
242 // Print declaration start
243 if (!(flags & print_no_indenting))
244 out = fill_chars(out, indent, Ch('\t'));
245 *out = Ch('<'), ++out;
246 *out = Ch('?'), ++out;
247 *out = Ch('x'), ++out;
248 *out = Ch('m'), ++out;
249 *out = Ch('l'), ++out;
250
251 // Print attributes
252 out = print_attributes(out, node, flags);
253
254 // Print declaration end
255 *out = Ch('?'), ++out;
256 *out = Ch('>'), ++out;
257
258 return out;
259 }
260
261 // Print comment node
262 template<class OutIt, class Ch>
263 inline OutIt print_comment_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
264 {
265 assert(node->type() == node_comment);
266 if (!(flags & print_no_indenting))
267 out = fill_chars(out, indent, Ch('\t'));
268 *out = Ch('<'), ++out;
269 *out = Ch('!'), ++out;
270 *out = Ch('-'), ++out;
271 *out = Ch('-'), ++out;
272 out = copy_chars(node->value(), node->value() + node->value_size(), out);
273 *out = Ch('-'), ++out;
274 *out = Ch('-'), ++out;
275 *out = Ch('>'), ++out;
276 return out;
277 }
278
279 // Print doctype node
280 template<class OutIt, class Ch>
281 inline OutIt print_doctype_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
282 {
283 assert(node->type() == node_doctype);
284 if (!(flags & print_no_indenting))
285 out = fill_chars(out, indent, Ch('\t'));
286 *out = Ch('<'), ++out;
287 *out = Ch('!'), ++out;
288 *out = Ch('D'), ++out;
289 *out = Ch('O'), ++out;
290 *out = Ch('C'), ++out;
291 *out = Ch('T'), ++out;
292 *out = Ch('Y'), ++out;
293 *out = Ch('P'), ++out;
294 *out = Ch('E'), ++out;
295 *out = Ch(' '), ++out;
296 out = copy_chars(node->value(), node->value() + node->value_size(), out);
297 *out = Ch('>'), ++out;
298 return out;
299 }
300
301 // Print pi node
302 template<class OutIt, class Ch>
303 inline OutIt print_pi_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
304 {
305 assert(node->type() == node_pi);
306 if (!(flags & print_no_indenting))
307 out = fill_chars(out, indent, Ch('\t'));
308 *out = Ch('<'), ++out;
309 *out = Ch('?'), ++out;
310 out = copy_chars(node->name(), node->name() + node->name_size(), out);
311 *out = Ch(' '), ++out;
312 out = copy_chars(node->value(), node->value() + node->value_size(), out);
313 *out = Ch('?'), ++out;
314 *out = Ch('>'), ++out;
315 return out;
316 }
317
318 // Print literal node
319 template<class OutIt, class Ch>
320 inline OutIt print_literal_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
321 {
322 assert(node->type() == node_literal);
323 if (!(flags & print_no_indenting))
324 out = fill_chars(out, indent, Ch('\t'));
325 out = copy_chars(node->value(), node->value() + node->value_size(), out);
326 return out;
327 }
328
329 // Print node
330 // Print node
331 template<class OutIt, class Ch>
332 inline OutIt print_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
333 {
334 // Print proper node type
335 switch (node->type())
336 {
337
338 // Document
339 case node_document:
340 out = print_children(out, node, flags, indent);
341 break;
342
343 // Element
344 case node_element:
345 out = print_element_node(out, node, flags, indent);
346 break;
347
348 // Data
349 case node_data:
350 out = print_data_node(out, node, flags, indent);
351 break;
352
353 // CDATA
354 case node_cdata:
355 out = print_cdata_node(out, node, flags, indent);
356 break;
357
358 // Declaration
359 case node_declaration:
360 out = print_declaration_node(out, node, flags, indent);
361 break;
362
363 // Comment
364 case node_comment:
365 out = print_comment_node(out, node, flags, indent);
366 break;
367
368 // Doctype
369 case node_doctype:
370 out = print_doctype_node(out, node, flags, indent);
371 break;
372
373 // Pi
374 case node_pi:
375 out = print_pi_node(out, node, flags, indent);
376 break;
377
378 case node_literal:
379 out = print_literal_node(out, node, flags, indent);
380 break;
381
382 // Unknown
383 default:
384 assert(0);
385 break;
386 }
387
388 // If indenting not disabled, add line break after node
389 if (!(flags & print_no_indenting))
390 *out = Ch('\n'), ++out;
391
392 // Return modified iterator
393 return out;
394 }
395
396 }
398
400 // Printing
401
407 template<class OutIt, class Ch>
408 inline OutIt print(OutIt out, const xml_node<Ch> &node, int flags = 0)
409 {
410 return internal::print_node(out, &node, flags, 0);
411 }
412
413 #ifndef RAPIDXML_NO_STREAMS
414
420 template<class Ch>
421 inline std::basic_ostream<Ch> &print(std::basic_ostream<Ch> &out, const xml_node<Ch> &node, int flags = 0)
422 {
423 print(std::ostream_iterator<Ch>(out), node, flags);
424 return out;
425 }
426
431 template<class Ch>
432 inline std::basic_ostream<Ch> &operator <<(std::basic_ostream<Ch> &out, const xml_node<Ch> &node)
433 {
434 return print(out, node);
435 }
436
437 #endif
438
439 }
440
441 #endif
rapidxml.hpp
This file contains rapidxml parser and DOM implementation.
rapidxml::node_pi
A PI node. Name contains target. Value contains instructions.
Definition: rapidxml.hpp:156
rapidxml::node_cdata
A CDATA node. Name is empty. Value contains data text.
Definition: rapidxml.hpp:152
rapidxml::node_doctype
A DOCTYPE node. Name is empty. Value contains DOCTYPE text.
Definition: rapidxml.hpp:155
rapidxml::xml_base::name_size
std::size_t name_size() const
Definition: rapidxml.hpp:740
rapidxml::xml_node::next_sibling
xml_node< Ch > * next_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1221
rapidxml::xml_node::first_node
xml_node< Ch > * first_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1141
rapidxml::xml_base::value_size
std::size_t value_size() const
Definition: rapidxml.hpp:759
rapidxml::xml_base::name
Ch * name() const
Definition: rapidxml.hpp:732
rapidxml::print
OutIt print(OutIt out, const xml_node< Ch > &node, int flags=0)
Definition: rapidxml_print.hpp:408
rapidxml::node_document
A document node. Name and value are empty.
Definition: rapidxml.hpp:149
rapidxml::node_declaration
A declaration node. Name and value are empty. Declaration parameters (version, encoding and standalon...
Definition: rapidxml.hpp:154
rapidxml::print_no_indenting
const int print_no_indenting
Printer flag instructing the printer to suppress indenting of XML. See print() function.
Definition: rapidxml_print.hpp:23
rapidxml::xml_attribute
Definition: rapidxml.hpp:142
rapidxml::node_literal
Value is unencoded text (used for inserting pre-rendered XML).
Definition: rapidxml.hpp:157
rapidxml::xml_base::value
Ch * value() const
Definition: rapidxml.hpp:751
rapidxml::xml_node::type
node_type type() const
Definition: rapidxml.hpp:1011
rapidxml::node_element
An element node. Name contains element name. Value contains text of first data node.
Definition: rapidxml.hpp:150
rapidxml::xml_node
Definition: rapidxml.hpp:141
rapidxml
Definition: rapidxml.hpp:59
rapidxml::node_comment
A comment node. Name is empty. Value contains comment text.
Definition: rapidxml.hpp:153
rapidxml::node_data
A data node. Name is empty. Value contains data text.
Definition: rapidxml.hpp:151
rapidxml::xml_node::first_attribute
xml_attribute< Ch > * first_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1250
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: include/rapidxml/rapidxml_utils.hpp Source File

  • include
  • rapidxml
rapidxml_utils.hpp
Go to the documentation of this file.
1 #ifndef RAPIDXML_UTILS_HPP_INCLUDED
2 #define RAPIDXML_UTILS_HPP_INCLUDED
3
4 // Copyright (C) 2006, 2009 Marcin Kalicinski
5 // Version 1.13
6 // Revision $DateTime: 2009/05/13 01:46:17 $
9
10 #include "rapidxml.hpp"
11 #include <vector>
12 #include <string>
13 #include <fstream>
14 #include <stdexcept>
15
16 namespace rapidxml
17 {
18
20 template<class Ch = char>
21 class file
22 {
23
24 public:
25
28 file(const char *filename)
29 {
30 using namespace std;
31
32 // Open stream
33 basic_ifstream<Ch> stream(filename, ios::binary);
34 if (!stream)
35 throw runtime_error(string("cannot open file ") + filename);
36 stream.unsetf(ios::skipws);
37
38 // Determine stream size
39 stream.seekg(0, ios::end);
40 size_t size = stream.tellg();
41 stream.seekg(0);
42
43 // Load data and add terminating 0
44 m_data.resize(size + 1);
45 stream.read(&m_data.front(), static_cast<streamsize>(size));
46 m_data[size] = 0;
47 }
48
51 file(std::basic_istream<Ch> &stream)
52 {
53 using namespace std;
54
55 // Load data and add terminating 0
56 stream.unsetf(ios::skipws);
57 m_data.assign(istreambuf_iterator<Ch>(stream), istreambuf_iterator<Ch>());
58 if (stream.fail() || stream.bad())
59 throw runtime_error("error reading stream");
60 m_data.push_back(0);
61 }
62
65 Ch *data()
66 {
67 return &m_data.front();
68 }
69
72 const Ch *data() const
73 {
74 return &m_data.front();
75 }
76
79 std::size_t size() const
80 {
81 return m_data.size();
82 }
83
84 private:
85
86 std::vector<Ch> m_data; // File data
87
88 };
89
92 template<class Ch>
93 inline std::size_t count_children(xml_node<Ch> *node)
94 {
95 xml_node<Ch> *child = node->first_node();
96 std::size_t count = 0;
97 while (child)
98 {
99 ++count;
100 child = child->next_sibling();
101 }
102 return count;
103 }
104
107 template<class Ch>
108 inline std::size_t count_attributes(xml_node<Ch> *node)
109 {
110 xml_attribute<Ch> *attr = node->first_attribute();
111 std::size_t count = 0;
112 while (attr)
113 {
114 ++count;
115 attr = attr->next_attribute();
116 }
117 return count;
118 }
119
120 }
121
122 #endif
rapidxml.hpp
This file contains rapidxml parser and DOM implementation.
rapidxml::file::data
Ch * data()
Definition: rapidxml_utils.hpp:65
rapidxml::xml_node::next_sibling
xml_node< Ch > * next_sibling(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1221
rapidxml::file
Represents data loaded from a file.
Definition: rapidxml_utils.hpp:21
rapidxml::xml_node::first_node
xml_node< Ch > * first_node(const Ch *name=0, const Ch *xmlns=0, std::size_t name_size=0, std::size_t xmlns_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1141
rapidxml::count_attributes
std::size_t count_attributes(xml_node< Ch > *node)
Definition: rapidxml_utils.hpp:108
rapidxml::count_children
std::size_t count_children(xml_node< Ch > *node)
Definition: rapidxml_utils.hpp:93
std
rapidxml::file::file
file(const char *filename)
Definition: rapidxml_utils.hpp:28
rapidxml::file::file
file(std::basic_istream< Ch > &stream)
Definition: rapidxml_utils.hpp:51
rapidxml::xml_attribute
Definition: rapidxml.hpp:142
rapidxml::file::data
const Ch * data() const
Definition: rapidxml_utils.hpp:72
rapidxml::xml_node
Definition: rapidxml.hpp:141
rapidxml
Definition: rapidxml.hpp:59
rapidxml::file::size
std::size_t size() const
Definition: rapidxml_utils.hpp:79
rapidxml::xml_node::first_attribute
xml_attribute< Ch > * first_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:1250
rapidxml::xml_attribute::next_attribute
xml_attribute< Ch > * next_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition: rapidxml.hpp:925
Generated on Mon Feb 6 2023 08:56:23 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

ICDRawData Member List

This is the complete list of members for ICDRawData, including all inherited members.

_bit_length (defined in ICDRawData) | ICDRawData |
_data (defined in ICDRawData) | ICDRawData |
_error_type (defined in ICDRawData) | ICDRawData |
_sz (defined in ICDRawData) | ICDRawData |
operator=(ICDRawData other) (defined in ICDRawData) | ICDRawData | inline
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

state Member List

This is the complete list of members for state, including all inherited members.

bound (defined in state) | state
context (defined in state) | state
function (defined in state) | state
lookup (defined in state) | state
lookup_len (defined in state) | state
next (defined in state) | state
start (defined in state) | state
type (defined in state) | state
value (defined in state) | state
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

te_expr Member List

This is the complete list of members for te_expr, including all inherited members.

bound (defined in te_expr) | te_expr
function (defined in te_expr) | te_expr
parameters (defined in te_expr) | te_expr
type (defined in te_expr) | te_expr
value (defined in te_expr) | te_expr
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

te_variable Member List

This is the complete list of members for te_variable, including all inherited members.

address (defined in te_variable) | te_variable
context (defined in te_variable) | te_variable
name (defined in te_variable) | te_variable
type (defined in te_variable) | te_variable
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

test_case Member List

This is the complete list of members for test_case, including all inherited members.

answer (defined in test_case) | test_case
expr (defined in test_case) | test_case
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14


ICDHandler Module: Member List

test_equ Member List

This is the complete list of members for test_equ, including all inherited members.

expr1 (defined in test_equ) | test_equ
expr2 (defined in test_equ) | test_equ
Generated on Mon Feb 6 2023 08:56:24 for ICDHandler Module by doxygen 1.8.14