Software and Services, Portable Libraries  2019.Mar.01
A library for managing digital certificates
SoftwareAndServices::Library::iCalendar::BaseValueType Class Referenceabstract

All (almost all) values are derived from this base class. More...

#include </home/doug/src/SoftwareAndServices/libSaSiCalendar/BaseValueType.hpp>

+ Inheritance diagram for SoftwareAndServices::Library::iCalendar::BaseValueType:
+ Collaboration diagram for SoftwareAndServices::Library::iCalendar::BaseValueType:

Public Types

enum  quote_errors { NO_END_QUOTE_e = 1, NO_DATA_PROVIDED_e, UNKNOWN_BACKSLASH_ESCAPE_e, NO_TERM_FOUND_e }
 These are C++ objects that can be thrown as errors. More...
 

Public Member Functions

 BaseValueType (Tokens_t storedType, const value *data)
 Constructor. More...
 
virtual ~BaseValueType ()
 Destructor. More...
 
virtual InstanceCount_t decInstance () const
 Decrement the instance. More...
 
const valuegetData () const
 Get the pointer to the data being stored. More...
 
virtual InstanceCount_t getInstance () const
 
Tokens_t getType () const
 Get the type of data being stored. More...
 
const char * getXValueType () const
 Get the type of data being stored. More...
 
virtual InstanceCount_t incInstance () const
 Increment the instance. More...
 
void operator delete (void *data)
 This class uses instance counting, this entry point overloads the default delete() operator in order to correctly track the instance. More...
 
void setData (void *DataPtr)
 Set the data to the data being stored. More...
 
void setType (Tokens_t Token)
 Set the type of data being stored. More...
 
void setXValueType (const char *xValType)
 Set the type of data being stored - non-standard types only. More...
 
virtual bool sprint (String *Results) const =0
 Print the object in RFC-iCalendar format. More...
 

Static Public Member Functions

static char * addQuotes (const char *text)
 Add quotes to the value. More...
 
static char * escape (const char *text)
 Escape a value and return an RFC-iCalendar value encoded. More...
 
static char * removeQuotes (const char *text)
 Remove quotes from a user supplied value so that the raw data can be stored. More...
 
static bool sprintTokensAsText (String *Results, Tokens_t token)
 Called by text2token() to get the token name as a String. More...
 
static char * unescape (const char *text, const char *term)
 Un-escape a value and return what a user originally entered. More...
 

Static Public Attributes

static const char ** tokenStrings
 A list of strings for the names of tokens. More...
 

Friends

Tokens_t text2token (const char *cValue, size_t len)
 Convert a string into an object token ID. More...
 
class TokenValue
 Give the TokenValue class full access. More...
 

Detailed Description

All (almost all) values are derived from this base class.

Definition at line 80 of file BaseValueType.hpp.

Member Enumeration Documentation

◆ quote_errors

These are C++ objects that can be thrown as errors.

Definition at line 204 of file BaseValueType.hpp.

Constructor & Destructor Documentation

◆ BaseValueType()

SoftwareAndServices::Library::iCalendar::BaseValueType::BaseValueType ( Tokens_t  storedType,
const value data 
)

Constructor.

Parameters
storedTypethe type of data that is stored in this object.
dataA pointer to the data to store.

◆ ~BaseValueType()

virtual SoftwareAndServices::Library::iCalendar::BaseValueType::~BaseValueType ( )
virtual

Destructor.

Member Function Documentation

◆ addQuotes()

static char* SoftwareAndServices::Library::iCalendar::BaseValueType::addQuotes ( const char *  text)
static

Add quotes to the value.

Caller MUST free results.

Parameters
textThe text to be de-quoted.
Returns
The de-quoted data.

◆ decInstance()

virtual InstanceCount_t SoftwareAndServices::Library::Common::instance< BaseValueType >::decInstance ( ) const
inlinevirtualinherited

Decrement the instance.

Returns
The instance count, after decrementing it.

Reimplemented in SoftwareAndServices::Library::iCalendar::date_time.

Definition at line 129 of file instance.hpp.

◆ escape()

static char* SoftwareAndServices::Library::iCalendar::BaseValueType::escape ( const char *  text)
static

Escape a value and return an RFC-iCalendar value encoded.

Caller MUST free results.

Parameters
textthe text to escape.
Returns
The escaped string.

◆ getData()

const value* SoftwareAndServices::Library::iCalendar::BaseValueType::getData ( ) const

Get the pointer to the data being stored.

Returns
Pointer to the data being stored.

◆ getInstance()

virtual InstanceCount_t SoftwareAndServices::Library::Common::instance< BaseValueType >::getInstance ( ) const
inlinevirtualinherited
Returns
The current instance count.

Definition at line 118 of file instance.hpp.

◆ getType()

Tokens_t SoftwareAndServices::Library::iCalendar::BaseValueType::getType ( ) const

Get the type of data being stored.

If it returns Unknown_t, call getXType()

Returns
The type of data being stored.
See also
getXValueType()

◆ getXValueType()

const char* SoftwareAndServices::Library::iCalendar::BaseValueType::getXValueType ( ) const

Get the type of data being stored.

If it returns NULL, call getType()

Returns
The type of data being stored as a string.
See also
geXValueType()

◆ incInstance()

virtual InstanceCount_t SoftwareAndServices::Library::Common::instance< BaseValueType >::incInstance ( ) const
inlinevirtualinherited

Increment the instance.

Returns
The instance value, after incrementing it.

Reimplemented in SoftwareAndServices::Library::iCalendar::date_time.

Definition at line 109 of file instance.hpp.

◆ operator delete()

void SoftwareAndServices::Library::iCalendar::BaseValueType::operator delete ( void *  data)

This class uses instance counting, this entry point overloads the default delete() operator in order to correctly track the instance.

◆ removeQuotes()

static char* SoftwareAndServices::Library::iCalendar::BaseValueType::removeQuotes ( const char *  text)
static

Remove quotes from a user supplied value so that the raw data can be stored.

Caller MUST free results.

Parameters
textThe text to be de-quoted. No harm if it does not already contain quotes.
Returns
The de-quoted data.

◆ setData()

void SoftwareAndServices::Library::iCalendar::BaseValueType::setData ( void *  DataPtr)

Set the data to the data being stored.

Parameters
DataPtrPointer to the data.

◆ setType()

void SoftwareAndServices::Library::iCalendar::BaseValueType::setType ( Tokens_t  Token)

Set the type of data being stored.

If the type is not a predefined one, call setXValueType()

Parameters
TokenThe type of data being stored.
See also
setXValueType()

◆ setXValueType()

void SoftwareAndServices::Library::iCalendar::BaseValueType::setXValueType ( const char *  xValType)

Set the type of data being stored - non-standard types only.

If the type is a predefined one, call setValueType()

Parameters
xValTypeThe type of data being stored as a string.
See also
setValueType()

◆ sprint()

◆ sprintTokensAsText()

static bool SoftwareAndServices::Library::iCalendar::BaseValueType::sprintTokensAsText ( String Results,
Tokens_t  token 
)
static

Called by text2token() to get the token name as a String.

Parameters
ResultsThe token name as a String.
tokenThe token to convert to a string.
Returns
TRUE when something appended to Results.

◆ unescape()

static char* SoftwareAndServices::Library::iCalendar::BaseValueType::unescape ( const char *  text,
const char *  term 
)
static

Un-escape a value and return what a user originally entered.

Caller MUST delete results when done. The string would have been encoded as an RFC-iCalendar value encoding.

Parameters
textthe text to un-escape.
termA string to be used as the data separator. This value is passed to strpbrk().
Returns
The un-escaped string.

Friends And Related Function Documentation

◆ text2token

Tokens_t text2token ( const char *  cValue,
size_t  len 
)
friend

Convert a string into an object token ID.

Parameters
TokenStringThe string to convert.
LengthIf Length is greater than zero, only convert up to Length characters.
Returns
The token ID matching TokenString (up to Length), or UnknownToken_t if not known.

◆ TokenValue

friend class TokenValue
friend

Give the TokenValue class full access.

Definition at line 89 of file BaseValueType.hpp.

Member Data Documentation

◆ tokenStrings

const char** SoftwareAndServices::Library::iCalendar::BaseValueType::tokenStrings
static

A list of strings for the names of tokens.

The token value used as an offset into this array is the name of the token as a string.

The strings "X_COMP", "X_PROP", and "XPARAM" ARE included. Strings matching X_COMP, X_PROP, and XPARAM values are not included.

Definition at line 144 of file BaseValueType.hpp.


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