ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Types | Public Member Functions | Static Public Member Functions | List of all members
anna::Tokenizer Class Reference

#include <Tokenizer.hpp>

Public Types

typedef char *const * const_iterator
 

Public Member Functions

 Tokenizer ()
 
 Tokenizer (const char *str, const char *separator)
 
 Tokenizer (const std::string &str, const char *separator)
 
virtual ~Tokenizer ()
 
bool activateStrip () const
 
void activateStrip (const bool _activateStrip)
 
const char * at (const int i) noexcept(false)
 
const char * at (const int i) const noexcept(false)
 
const char * operator[] (const int i) noexcept(false)
 
const char * operator[] (const int i) const noexcept(false)
 
int apply (const char *str, const char *separator, const char *tokenizeContiguous=NULL) noexcept(false)
 
int apply (const std::string &str, const char *separator, const char *tokenizeContiguous=NULL) noexcept(false)
 
const char * last () const noexcept(false)
 
int size () const
 
const_iterator begin () const
 
const_iterator end () const
 

Static Public Member Functions

static const char * data (const_iterator ii)
 

Detailed Description

Tokenize the input string into several elements

Member Typedef Documentation

◆ const_iterator

typedef char* const* anna::Tokenizer::const_iterator

Constructor & Destructor Documentation

◆ Tokenizer() [1/3]

anna::Tokenizer::Tokenizer ( )

Constructor.

◆ Tokenizer() [2/3]

anna::Tokenizer::Tokenizer ( const char *  str,
const char *  separator 
)

Constructor.

Parameters
strCadena sobre la que aplicar la separacion.
separatorCaracteres que van a actuar como separador de las subcadenas contenidas en el primer parametro.

◆ Tokenizer() [3/3]

anna::Tokenizer::Tokenizer ( const std::string &  str,
const char *  separator 
)

Constructor.

Parameters
strCadena sobre la que aplicar la separacion.
separatorCaracteres que van a actuar como separador de las subcadenas contenidas en el primer parametro.

◆ ~Tokenizer()

virtual anna::Tokenizer::~Tokenizer ( )
virtual

Destructor.

Member Function Documentation

◆ activateStrip() [1/2]

bool anna::Tokenizer::activateStrip ( ) const
inline

Devuelve el estado del indicador de activacion de eliminacion de espacios de los extremos.

Returns
El estado del indicador de activacion de eliminacion de espacios de los extremos.
63 { return a_activateStrip; }

◆ activateStrip() [2/2]

void anna::Tokenizer::activateStrip ( const bool  _activateStrip)
inline

Activa y/o desactiva que activa el sistema que permite recoger los elementos retornadodos por esta clase sin espacios por delante y por detras.

Parameters
_activateStripParametro que indica el estado de activacion o desactivacion.
72 { a_activateStrip = _activateStrip; }
Here is the call graph for this function:

◆ apply() [1/2]

int anna::Tokenizer::apply ( const char *  str,
const char *  separator,
const char *  tokenizeContiguous = NULL 
)
noexcept

Process the separation over the string str with the separator provided.

Internally used strtok_r has these imitations: sequence of two or more contiguous delimiter bytes in the parsed string is considered to be a single delimiter. Delimiter bytes at the start or end of the string are ignored. Put another way: the tokens returned by strtok() are always nonempty strings. To override these limitations, the string provided can be internally modified inserting a artificial token in order to cheat on strtok_r. For this feature, you may provide '<null>' or whatever string (non-empty) you prefer.

Parameters
strString to apply the separation.
separatorCharacters used as separator within the string tokenized
tokenizeContiguousIf provided, it will be the artificial token used internally. The resulting tokens shall store this string in case of contiguous separators. NULL by default (original strtok_r behaviour).
Returns
Number of tokens

◆ apply() [2/2]

int anna::Tokenizer::apply ( const std::string &  str,
const char *  separator,
const char *  tokenizeContiguous = NULL 
)
inlinenoexcept
117  {
118  return apply(str.c_str(), separator, tokenizeContiguous);
119  }
int apply(const char *str, const char *separator, const char *tokenizeContiguous=NULL) noexcept(false)
Here is the call graph for this function:

◆ at() [1/2]

const char* anna::Tokenizer::at ( const int  i)
noexcept
Returns
El elemento que ocupa la posicion i-esima.
Warning
Este método tiene una eficiencia de O(1), mejor usar iteradores.

◆ at() [2/2]

const char* anna::Tokenizer::at ( const int  i) const
noexcept
Returns
El elemento que ocupa la posicion i-esima.
Warning
Este método tiene una eficiencia de O(1), mejor usar iteradores.

◆ begin()

const_iterator anna::Tokenizer::begin ( ) const
inline

Devuelve el iterador el comiento de los elementos obtenidos por apply

Returns
el iterador el comiento de los elementos obtenidos por apply
138 { return a_items; }

◆ data()

static const char* anna::Tokenizer::data ( const_iterator  ii)
inlinestatic

Devuelve la cadena referenciada por el iterator recibido como parametro.

Returns
la cadena referenciada por el iterator recibido como parametro.
150 { return *ii; }

◆ end()

const_iterator anna::Tokenizer::end ( ) const
inline

Devuelve el iterador al final de los elementos obtenidos por apply

Returns
el iterador al final de los elementos obtenidos por apply
144 { return a_items + a_maxItem; }

◆ last()

const char* anna::Tokenizer::last ( ) const
noexcept
Returns
El ultimo elemento obtenido la aplicar la separacion.

◆ operator[]() [1/2]

const char* anna::Tokenizer::operator[] ( const int  i)
inlinenoexcept
Returns
El elemento que ocupa la posicion i-esima.
Warning
Este método tiene una eficiencia de O(1), mejor usar iteradores.
90 { return at(i); }
const char * at(const int i) noexcept(false)
Here is the call graph for this function:

◆ operator[]() [2/2]

const char* anna::Tokenizer::operator[] ( const int  i) const
inlinenoexcept
Returns
El elemento que ocupa la posicion i-esima.
Warning
Este método tiene una eficiencia de O(1), mejor usar iteradores.
96 { return at(i); }
const char * at(const int i) noexcept(false)
Here is the call graph for this function:

◆ size()

int anna::Tokenizer::size ( ) const
inline

Devuelve el número de elementos obtenidos en la separación.

Returns
el número de elementos obtenidos en la separación.
132 { return a_maxItem; }

The documentation for this class was generated from the following file: