shibsp::ScopedAttribute Class Reference

An Attribute whose values are relations of a value and a scope. More...

`#include <shibsp/attribute/ScopedAttribute.h>`

Inheritance diagram for shibsp::ScopedAttribute:
[legend]
Collaboration diagram for shibsp::ScopedAttribute:
[legend]

## Public Member Functions

| ScopedAttribute (const std::vector< std::string > &ids, char delimeter='@')
| Constructor.
| ScopedAttribute (DDF &in)
| Constructs based on a remoted ScopedAttribute.
std::vector< std::pair< std::string, std::string > > & | getValues ()
| Returns the set of values encoded as UTF-8 strings.
const std::vector< std::pair< std::string, std::string > > & | getValues () const
| Returns the set of values encoded as UTF-8 strings.
size_t | valueCount () const
| Returns the number of values.
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).
const char * | getScope (size_t index) const
| Gets the "scope" of the value at the specified position (starting from zero).
void | removeValue (size_t index)
| Removes the value at the specified position (starting from zero).
const std::vector< std::string > & | getSerializedValues () const
| Returns serialized Attribute values encoded as UTF-8 strings.
DDF | marshall () const
| Marshalls an Attribute for remoting.
Public Member Functions inherited from shibsp::Attribute
const char * | getId () const
| Returns the Attribute identifier.
const std::vector< std::string > & | getAliases () const
| Returns all of the effective names for the Attribute.
std::vector< std::string > & | getAliases ()
| Returns all of the effective names for the Attribute.
void | setCaseSensitive (bool caseSensitive)
| Sets whether case sensitivity should apply to basic value comparisons.
void | setInternal (bool internal)
| Sets whether the attribute should be exported for CGI use.
bool | isCaseSensitive () const
| Indicates whether case sensitivity should apply to basic value comparisons.
bool | isInternal () const
| Indicates whether the attribute should be exported for CGI use.

## Additional Inherited Members

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

## Detailed Description

An Attribute whose values are relations of a value and a scope.

In practice, scoped attributes are simple pairs of strings instead of a single string. They can be expressed as a string easily using a delimeter, typically an '@' symbol. The scope concept allows certain kinds of filtering to be performed more intelligently and efficiently, although not all scoped attributes can be effectively filtered (e.g. if the set of scope values is unconstrained).

## Constructor & Destructor Documentation

## ScopedAttribute() [1/2]

shibsp::ScopedAttribute::ScopedAttribute | ( | const std::vector< std::string > & | ids,
|  | char | delimeter = `'@'`
| ) |  |

Constructor.

Parameters

  ids | array with primary identifier in first position, followed by any aliases
  delimeter | value/scope delimeter when serializing

## ScopedAttribute() [2/2]

shibsp::ScopedAttribute::ScopedAttribute | ( | DDF & | in | ) |

Constructs based on a remoted ScopedAttribute.

Parameters

  in | input object containing marshalled ScopedAttribute

## Member Function Documentation

## clearSerializedValues()

void shibsp::ScopedAttribute::clearSerializedValues | ( |  | ) |

virtual

Informs the Attribute that values have changed and any serializations must be cleared.

Implements shibsp::Attribute.

## getScope()

const char * shibsp::ScopedAttribute::getScope | ( | size_t | index | ) | const

virtual

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

Parameters

  index | position 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::ScopedAttribute::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::ScopedAttribute::getString | ( | size_t | index | ) | const

virtual

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

Parameters

  index | position of value

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

Reimplemented from shibsp::Attribute.

## getValues() [1/2]

std::vector< std::pair< std::string, std::string > > & shibsp::ScopedAttribute::getValues | ( |  | ) |

Returns the set of values encoded as UTF-8 strings.

Each compound value is a pair containing the simple value and the scope.

Returns
  a mutable vector of the values

## getValues() [2/2]

const std::vector< std::pair< std::string, std::string > > & shibsp::ScopedAttribute::getValues | ( |  | ) | const

Returns the set of values encoded as UTF-8 strings.

Each compound value is a pair containing the simple value and the scope.

Returns
  an immutable vector of the values

## marshall()

DDF shibsp::ScopedAttribute::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::ScopedAttribute::removeValue | ( | size_t | index | ) |

virtual

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

Parameters

  index | position of value to remove

Reimplemented from shibsp::Attribute.

## valueCount()

size_t shibsp::ScopedAttribute::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:

- shibsp/attribute/ScopedAttribute.h