ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Member Functions | Friends | List of all members
anna::diameter::stack::Format Class Reference

#include <Format.hpp>

Public Member Functions

 Format (const Dictionary *d=NULL)
 
 ~Format ()
 
const std::string & getName (void) const
 
const std::string & getParentName (void) const
 
const FormatgetParent (void) const
 
bool isDerived (void) const
 
bool isBasic (void) const
 
codec::Format::_v getBasicType (void) const noexcept(false)
 
bool isRFC3588 (void) const
 
bool isAny () const
 
bool isOctetString () const
 
bool isInteger32 () const
 
bool isInteger64 () const
 
bool isUnsigned32 () const
 
bool isUnsigned64 () const
 
bool isFloat32 () const
 
bool isFloat64 () const
 
bool isGrouped () const
 
bool isAddress () const
 
bool isTime () const
 
bool isUTF8String () const
 
bool isDiameterIdentity () const
 
bool isDiameterURI () const
 
bool isEnumerated () const
 
bool isIPFilterRule () const
 
bool isQoSFilterRule () const
 
bool isApplicationSpecific (void) const
 
bool isReserved (void) const
 
std::string asString (void) const
 
anna::xml::NodeasXML (anna::xml::Node *parent) const
 
void initialize (const Dictionary *d=NULL)
 
void setName (const char *name) noexcept(false)
 
void setRFC3588 (codec::Format::_v rfc3588Format)
 
void setParentName (const std::string &parentName) noexcept(false)
 

Friends

bool operator== (const Format &f1, const Format &f2)
 
bool operator!= (const Format &f1, const Format &f2)
 

Detailed Description

Format data container

Constructor & Destructor Documentation

◆ Format()

anna::diameter::stack::Format::Format ( const Dictionary d = NULL)
inline
58 { _initialize(d); }

◆ ~Format()

anna::diameter::stack::Format::~Format ( )
inline
59 {};

Member Function Documentation

◆ asString()

std::string anna::diameter::stack::Format::asString ( void  ) const

Class string representation

Returns
String with class content

◆ asXML()

anna::xml::Node* anna::diameter::stack::Format::asXML ( anna::xml::Node parent) const

Class xml representation

Returns
XML document with relevant information for this instance.

◆ getBasicType()

codec::Format::_v anna::diameter::stack::Format::getBasicType ( void  ) const
noexcept

Gets the diameter basic format type from which a derived type inherit, or basic type itself for non-derived

Returns
Diameter basic format type

◆ getName()

const std::string& anna::diameter::stack::Format::getName ( void  ) const
inline

Gets the format type name

Returns
Format type name
69 { return a_name; }

◆ getParent()

const Format* anna::diameter::stack::Format::getParent ( void  ) const

Gets the diameter parent type reference

Returns
Diameter parent type reference, NULL for diameter basic format types (and reserved like 'Any, Unknown')

◆ getParentName()

const std::string& anna::diameter::stack::Format::getParentName ( void  ) const
inline

Gets the format parent type name

Returns
Format parent type name, empty string for diameter basic format types (and reserved like 'Any, Unknown')
76 { return a_parentName; }

◆ initialize()

void anna::diameter::stack::Format::initialize ( const Dictionary d = NULL)
inline

Initializes the class content

202 { _initialize(d); }

◆ isAddress()

bool anna::diameter::stack::Format::isAddress ( ) const
inline
Returns
The format is 'Address'
141 { return (a_name == codec::Format::asText(codec::Format::Address)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isAny()

bool anna::diameter::stack::Format::isAny ( ) const
inline
Returns
The format is 'Any' (generic AVP)
119 { return (a_name == codec::Format::asText(codec::Format::Any)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64
Definition: Format.hpp:35

◆ isApplicationSpecific()

bool anna::diameter::stack::Format::isApplicationSpecific ( void  ) const
inline

The diameter format is application-specific or a format type name not registered on dictionary

Returns
The format is application-specific
162 { return (!isRFC3588() && !isReserved()); }
bool isRFC3588(void) const
Definition: Format.hpp:115
bool isReserved(void) const
Definition: Format.hpp:169

◆ isBasic()

bool anna::diameter::stack::Format::isBasic ( void  ) const
inline

The diameter format is a basic type: (OctetString, Integer32, Integer64, Unsigned32, Unsigned64, Float32, Float64, Grouped)

Returns
The format is basic
100 { return (!isDerived() && !isReserved()); }
bool isReserved(void) const
Definition: Format.hpp:169
bool isDerived(void) const
Definition: Format.hpp:92

◆ isDerived()

bool anna::diameter::stack::Format::isDerived ( void  ) const
inline

The diameter format is a derived type

Returns
The format is derived
92 { return (a_parentName != ""); }

◆ isDiameterIdentity()

bool anna::diameter::stack::Format::isDiameterIdentity ( ) const
inline
Returns
The format is 'DiameterIdentity'
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isDiameterURI()

bool anna::diameter::stack::Format::isDiameterURI ( ) const
inline
Returns
The format is 'DiameterURI'
149 { return (a_name == codec::Format::asText(codec::Format::DiameterURI)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isEnumerated()

bool anna::diameter::stack::Format::isEnumerated ( ) const
inline
Returns
The format is 'Enumerated'
151 { return (a_name == codec::Format::asText(codec::Format::Enumerated)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isFloat32()

bool anna::diameter::stack::Format::isFloat32 ( ) const
inline
Returns
The format is 'Float32'
135 { return (a_name == codec::Format::asText(codec::Format::Float32)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isFloat64()

bool anna::diameter::stack::Format::isFloat64 ( ) const
inline
Returns
The format is 'Float64'
137 { return (a_name == codec::Format::asText(codec::Format::Float64)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isGrouped()

bool anna::diameter::stack::Format::isGrouped ( ) const
inline
Returns
The format is 'Grouped'
139 { return (a_name == codec::Format::asText(codec::Format::Grouped)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isInteger32()

bool anna::diameter::stack::Format::isInteger32 ( ) const
inline
Returns
The format is 'Integer32'
127 { return (a_name == codec::Format::asText(codec::Format::Integer32)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isInteger64()

bool anna::diameter::stack::Format::isInteger64 ( ) const
inline
Returns
The format is 'Integer64'
129 { return (a_name == codec::Format::asText(codec::Format::Integer64)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isIPFilterRule()

bool anna::diameter::stack::Format::isIPFilterRule ( ) const
inline
Returns
The format is 'IPFilterRule'
153 { return (a_name == codec::Format::asText(codec::Format::IPFilterRule)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isOctetString()

bool anna::diameter::stack::Format::isOctetString ( ) const
inline
Returns
The format is 'Unknown'
The format is 'OctetString'
125 { return (a_name == codec::Format::asText(codec::Format::OctetString)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isQoSFilterRule()

bool anna::diameter::stack::Format::isQoSFilterRule ( ) const
inline
Returns
The format is 'QoSFilterRule'
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isReserved()

bool anna::diameter::stack::Format::isReserved ( void  ) const
inline

The diameter format is reserved ('Any' for generic AVP, 'Unknown' for not registered avps)

Returns
The format is reserved
169 { return (codec::Format::isReserved(a_name)); }
static bool isReserved(const std::string &formatName)
Definition: Format.hpp:76

◆ isRFC3588()

bool anna::diameter::stack::Format::isRFC3588 ( void  ) const
inline

The diameter format belongs to RFC3588 diameter format family: (OctetString, Integer32, Integer64, Unsigned32, Unsigned64, Float32, Float64, Grouped, Address, Time, UTF8String, DiameterIdentity, DiameterURI, Enumerated, IPFilterRule, QoSFilterRule)

Returns
The format belongs to RFC3588
115 { return (codec::Format::isRFC3588(a_name)); }
static bool isRFC3588(const std::string &formatName)
Definition: Format.hpp:90

◆ isTime()

bool anna::diameter::stack::Format::isTime ( ) const
inline
Returns
The format is 'Time'
143 { return (a_name == codec::Format::asText(codec::Format::Time)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64
Definition: Format.hpp:46

◆ isUnsigned32()

bool anna::diameter::stack::Format::isUnsigned32 ( ) const
inline
Returns
The format is 'Unsigned32'
131 { return (a_name == codec::Format::asText(codec::Format::Unsigned32)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isUnsigned64()

bool anna::diameter::stack::Format::isUnsigned64 ( ) const
inline
Returns
The format is 'Unsigned64'
133 { return (a_name == codec::Format::asText(codec::Format::Unsigned64)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ isUTF8String()

bool anna::diameter::stack::Format::isUTF8String ( ) const
inline
Returns
The format is 'UTF8String'
145 { return (a_name == codec::Format::asText(codec::Format::UTF8String)); }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64

◆ setName()

void anna::diameter::stack::Format::setName ( const char *  name)
inlinenoexcept

Sets Avp format type name

Parameters
typeAvp format type name
209  {
210  if(name == NULL) throw anna::RuntimeException("Null Format-name not allowed", ANNA_FILE_LOCATION);
211 
212  a_name = name;
213 
214  if(a_name == "") throw anna::RuntimeException("Empty Format-name not allowed", ANNA_FILE_LOCATION);
215  }
#define ANNA_FILE_LOCATION
Definition: defines.hpp:23
Definition: RuntimeException.hpp:23

◆ setParentName()

void anna::diameter::stack::Format::setParentName ( const std::string &  parentName)
noexcept

Sets Diameter-basic avp format parent

Parameters
parentDiameter-basic avp format parent

◆ setRFC3588()

void anna::diameter::stack::Format::setRFC3588 ( codec::Format::_v  rfc3588Format)
inline

Sets RFC3588 Avp format type name

Parameters
rfc3588FormatRFC3588 format type
222  {
223  setName(codec::Format::asText(rfc3588Format));
224  }
static const char * asText(const Format::_v v) noexcept(false)
Definition: Format.hpp:64
void setName(const char *name) noexcept(false)
Definition: Format.hpp:209

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const Format f1,
const Format f2 
)
friend
Returns
Difference between two class instances
195 { return !(f1 == f2); }

◆ operator==

bool operator== ( const Format f1,
const Format f2 
)
friend
Returns
Equality between two class instances
190 { return ((f1.getName() == f2.getName())); }

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