shibboleth-3.0.4
shibsp::ExtensibleAttribute Class Reference

An Attribute whose values are arbitrary structures. More...

#include <shibsp/attribute/ExtensibleAttribute.h>

Inheritance diagram for shibsp::ExtensibleAttribute:
Collaboration diagram for shibsp::ExtensibleAttribute:

Public Member Functions

 ExtensibleAttribute (const std::vector< std::string > &ids, const char *formatter)
 Constructor. More...
 
 ExtensibleAttribute (DDF &in)
 Constructs based on a remoted ExtensibleAttribute. More...
 
DDF getValues ()
 Returns the set of values in a DDF list. More...
 
size_t valueCount () const
 Returns the number of values. More...
 
void clearSerializedValues ()
 Informs the Attribute that values have changed and any serializations must be cleared.
 
const char * getString (size_t index) const
 Gets the string equivalent of the value at the specified position (starting from zero). More...
 
const char * getScope (size_t index) const
 Gets the "scope" of the value at the specified position (starting from zero). More...
 
void removeValue (size_t index)
 Removes the value at the specified position (starting from zero). More...
 
const std::vector< std::string > & getSerializedValues () const
 Returns serialized Attribute values encoded as UTF-8 strings. More...
 
DDF marshall () const
 Marshalls an Attribute for remoting. More...
 
- Public Member Functions inherited from shibsp::Attribute
const char * getId () const
 Returns the Attribute identifier. More...
 
const std::vector< std::string > & getAliases () const
 Returns all of the effective names for the Attribute. More...
 
std::vector< std::string > & getAliases ()
 Returns all of the effective names for the Attribute. More...
 
void setCaseSensitive (bool caseSensitive)
 Sets whether case sensitivity should apply to basic value comparisons. More...
 
void setInternal (bool internal)
 Sets whether the attribute should be exported for CGI use. More...
 
bool isCaseSensitive () const
 Indicates whether case sensitivity should apply to basic value comparisons. More...
 
bool isInternal () const
 Indicates whether the attribute should be exported for CGI use. More...
 

Additional Inherited Members

- Public Types inherited from shibsp::Attribute
typedef AttributeAttributeFactory(DDF &in)
 A function that unmarshalls remoted data into the proper Attribute subclass.
 
- Static Public Member Functions inherited from shibsp::Attribute
static Attributeunmarshall (DDF &in)
 Unmarshalls a remoted Attribute. More...
 
static void registerFactory (const char *type, AttributeFactory *factory)
 Registers an AttributeFactory function for a given attribute "type". More...
 
static void deregisterFactory (const char *type)
 Deregisters an AttributeFactory function for a given attribute "type". More...
 
static void deregisterFactories ()
 Clears the map of factories.
 
- Protected Member Functions inherited from shibsp::Attribute
 Attribute (const std::vector< std::string > &ids)
 Constructor. More...
 
 Attribute (DDF &in)
 Constructs based on a remoted Attribute. More...
 
- Protected Attributes inherited from shibsp::Attribute
std::vector< std::string > m_serialized
 Maintains a copy of serialized attribute values, when possible. More...
 

Detailed Description

An Attribute whose values are arbitrary structures.

Constructor & Destructor Documentation

◆ ExtensibleAttribute() [1/2]

shibsp::ExtensibleAttribute::ExtensibleAttribute ( const std::vector< std::string > &  ids,
const char *  formatter 
)

Constructor.

Parameters
idsarray with primary identifier in first position, followed by any aliases
formattertemplate for serialization of values

◆ ExtensibleAttribute() [2/2]

shibsp::ExtensibleAttribute::ExtensibleAttribute ( DDF in)

Constructs based on a remoted ExtensibleAttribute.

Parameters
ininput object containing marshalled ExtensibleAttribute

Member Function Documentation

◆ getScope()

const char* shibsp::ExtensibleAttribute::getScope ( size_t  index) const
virtual

Gets the "scope" of the value at the specified position (starting from zero).

Parameters
indexposition of value
Returns
the specified value's "scope", or nullptr if attribute is unscoped

Reimplemented from shibsp::Attribute.

◆ getSerializedValues()

const std::vector<std::string>& shibsp::ExtensibleAttribute::getSerializedValues ( ) const
virtual

Returns serialized Attribute values encoded as UTF-8 strings.

Returns
an immutable vector of values

Reimplemented from shibsp::Attribute.

◆ getString()

const char* shibsp::ExtensibleAttribute::getString ( size_t  index) const
virtual

Gets the string equivalent of the value at the specified position (starting from zero).

Parameters
indexposition of value
Returns
the specified value in its "string" form, or nullptr if undefined

Reimplemented from shibsp::Attribute.

◆ getValues()

DDF shibsp::ExtensibleAttribute::getValues ( )

Returns the set of values in a DDF list.

Returns
a mutable list object containing the values

◆ marshall()

DDF shibsp::ExtensibleAttribute::marshall ( ) const
virtual

Marshalls an Attribute for remoting.

This allows Attribute objects to be communicated across process boundaries without excess XML parsing. The DDF returned must be a struct containing a single list member named with the Attribute's "id". The name of the struct should contain the registered name of the Attribute implementation.

Reimplemented from shibsp::Attribute.

◆ removeValue()

void shibsp::ExtensibleAttribute::removeValue ( size_t  index)
virtual

Removes the value at the specified position (starting from zero).

Parameters
indexposition of value to remove

Reimplemented from shibsp::Attribute.

◆ valueCount()

size_t shibsp::ExtensibleAttribute::valueCount ( ) const
virtual

Returns the number of values.

Returns
number of values

Reimplemented from shibsp::Attribute.


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