Safir SDK Core
Loading...
Searching...
No Matches
Safir::Dob::Typesystem::EnumerationSequenceContainerBase Class Referenceabstract

Base class for containers for sequences of enumeration values. More...

#include <Safir/Dob/Typesystem/SequenceContainer.h>

Inheritance diagram for Safir::Dob::Typesystem::EnumerationSequenceContainerBase:
[legend]
Collaboration diagram for Safir::Dob::Typesystem::EnumerationSequenceContainerBase:
[legend]

Public Member Functions

 EnumerationSequenceContainerBase ()
 Default Constructor.
 
bool IsNull () const override
 Is the container set to null?
 
void SetNull () override
 Set the container to null.
 
virtual size_t size () const =0
 Get the size of the sequence, i.e number of contained values.
 
virtual bool empty () const =0
 Check if sequence is empty.
 
virtual void clear ()=0
 Clear the sequence, i.e remove all values.
 
virtual void PushBackOrdinal (const EnumerationValue val)=0
 Insert a new ordinal value last in the sequence.
 
virtual void SetOrdinal (const size_t index, const EnumerationValue val)=0
 Update a specific value, using ordinal value.
 
virtual EnumerationValue GetOrdinal (const size_t index) const =0
 Get the ordinal value of the value at the specified index.
 
virtual void InsertOrdinalAt (const size_t index, EnumerationValue value)=0
 Insert a new ordinal value at specified index, growing the sequence.
 
virtual void EraseAt (const size_t index)=0
 Erase a value at specified index.
 
- Public Member Functions inherited from Safir::Dob::Typesystem::ContainerBase
constexpr ContainerBase ()
 Default Constructor.
 
constexpr ContainerBase (const ContainerBase &)=default
 Copy constructor.
 
virtual ~ContainerBase ()
 Virtual destructor.
 
virtual bool IsChanged () const
 Is the change flag set on the container?
 
virtual void SetChanged (const bool changed)
 Set the containers change flag.
 
virtual void Copy (const ContainerBase &that)=0
 Virtual assignment.
 

Additional Inherited Members

- Protected Member Functions inherited from Safir::Dob::Typesystem::ContainerBase
ContainerBaseoperator= (const ContainerBase &other)
 Copy assignment operator.
 
- Protected Attributes inherited from Safir::Dob::Typesystem::ContainerBase
bool m_bIsChanged
 The variable containing the change flag.
 

Detailed Description

Base class for containers for sequences of enumeration values.

It allows for reflection on enumeration values, using ordinal values.

Constructor & Destructor Documentation

◆ EnumerationSequenceContainerBase()

Safir::Dob::Typesystem::EnumerationSequenceContainerBase::EnumerationSequenceContainerBase ( )

Default Constructor.

Construct a container that is not changed and not null.

Member Function Documentation

◆ clear()

virtual void Safir::Dob::Typesystem::EnumerationSequenceContainerBase::clear ( )
pure virtual

Clear the sequence, i.e remove all values.

After a call to clear the sequence will be empty, which is implicitly the same as being null.

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.

Referenced by SetNull().

Here is the caller graph for this function:

◆ empty()

virtual bool Safir::Dob::Typesystem::EnumerationSequenceContainerBase::empty ( ) const
pure virtual

Check if sequence is empty.

Returns
True if sequence is empty, else false.

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.

Referenced by IsNull().

Here is the caller graph for this function:

◆ EraseAt()

virtual void Safir::Dob::Typesystem::EnumerationSequenceContainerBase::EraseAt ( const size_t index)
pure virtual

Erase a value at specified index.

The sequence will shrink.

Parameters
index[in] - Index of the value to be removed.

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.

◆ GetOrdinal()

virtual EnumerationValue Safir::Dob::Typesystem::EnumerationSequenceContainerBase::GetOrdinal ( const size_t index) const
pure virtual

Get the ordinal value of the value at the specified index.

Parameters
index[in] - Index of the value to get.
Returns
Ordinal value a the index.
Exceptions
std::out_of_rangeexception if index is not in range

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.

◆ InsertOrdinalAt()

virtual void Safir::Dob::Typesystem::EnumerationSequenceContainerBase::InsertOrdinalAt ( const size_t index,
EnumerationValue value )
pure virtual

Insert a new ordinal value at specified index, growing the sequence.

Parameters
index[in] - Index of the new value.
value[in] - Value to insert.
Exceptions
IllegalValueExceptionif the value is not in the enumeration.

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.

◆ IsNull()

bool Safir::Dob::Typesystem::EnumerationSequenceContainerBase::IsNull ( ) const
overridevirtual

Is the container set to null?

Returns
True if the container is set to null.

Implements Safir::Dob::Typesystem::ContainerBase.

References empty().

Here is the call graph for this function:

◆ PushBackOrdinal()

virtual void Safir::Dob::Typesystem::EnumerationSequenceContainerBase::PushBackOrdinal ( const EnumerationValue val)
pure virtual

Insert a new ordinal value last in the sequence.

If the sequence was null before it will no longer be null after this call.

Parameters
val[in] - Value to be inserted.
Exceptions
IllegalValueExceptionif the value is not in the enumeration.

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.

◆ SetNull()

void Safir::Dob::Typesystem::EnumerationSequenceContainerBase::SetNull ( )
overridevirtual

Set the container to null.

Implements Safir::Dob::Typesystem::ContainerBase.

References clear().

Here is the call graph for this function:

◆ SetOrdinal()

virtual void Safir::Dob::Typesystem::EnumerationSequenceContainerBase::SetOrdinal ( const size_t index,
const EnumerationValue val )
pure virtual

Update a specific value, using ordinal value.

Will not add new values to the sequence.

Parameters
index[in] - Index of the value to set.
val[in] - Value to set.
Exceptions
std::out_of_rangeexception if index is not in range
IllegalValueExceptionif the value is not in the enumeration.

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.

◆ size()

virtual size_t Safir::Dob::Typesystem::EnumerationSequenceContainerBase::size ( ) const
pure virtual

Get the size of the sequence, i.e number of contained values.

Returns
The number of values in the sequence.

Implemented in Safir::Dob::Typesystem::EnumerationSequenceContainer< T >.