ATLAS Offline Software
Loading...
Searching...
No Matches
pool::CollectionDescription Class Reference

An implementation of the ICollectionDescription interface used to define the properties of a collection to be constructed and to retrieve these properties after construction. More...

#include <CollectionSvc/CollectionDescription.h>

Inheritance diagram for pool::CollectionDescription:
Collaboration diagram for pool::CollectionDescription:

Public Member Functions

 CollectionDescription (const std::string &name, const std::string &type, const std::string &connection="", const std::string &eventReferenceColumnName="")
 Constructor that takes as input the minimum amount of properties needed to describe the collection.
 CollectionDescription (const ICollectionDescription &rhs)
 Copy constructor.
 CollectionDescription (const CollectionDescription &rhs)
virtual ~CollectionDescription ()
 Default destructor.
CollectionDescriptionoperator= (const ICollectionDescription &rhs)
 Assignment operator.
CollectionDescriptionoperator= (const CollectionDescription &rhs)
CollectionDescriptionoperator= (CollectionDescription &&rhs)
 CollectionDescription (CollectionDescription &&)=default
virtual void setName (const std::string &name)
 Sets the name of the collection.
virtual void setType (const std::string &type)
 Sets the storage technology type of the collection.
virtual void setConnection (const std::string &connection)
 Sets the connection to the database containing the collection.
virtual void setEventReferenceColumnName (const std::string &columnName)
 Sets the name of the event reference Token column.
virtual const ICollectionColumninsertColumn (const std::string &columnName, const std::string &columnType, int maxSize=0, bool sizeIsFixed=true)
 Adds a new column to the collection.
virtual const ICollectionColumninsertTokenColumn (const std::string &columnName)
 Adds a new column of type pool::Token to the collection.
virtual const std::string & name () const
 Returns the name of the collection and the top level collection fragment.
virtual const std::string & type () const
 Returns the storage technology type of the collection.
virtual const std::string & connection () const
 Returns the connection to the database containing the collection.
virtual const std::string & eventReferenceColumnName () const
 Returns the name reserved for the event reference Token column.
virtual int numberOfTokenColumns () const
 Returns the number of Token columns (including the event reference column if it is used)
virtual const ICollectionColumntokenColumn (int columnId) const
 Returns a description object for a Token column of the collection, given the position of the column.
virtual int numberOfAttributeColumns () const
 Returns the number of Attribute columns in the collection.
virtual const ICollectionColumnattributeColumn (int columnId) const
 Returns a description object for an Attribute column of the collection, given the position of the column.
virtual int setColumnId (const std::string &columnName, int id, const std::string &methodName)

Protected Member Functions

virtual void copyFrom (const ICollectionDescription &rhs)
 make this description a copy of 'rhs'
virtual void clearAll ()
virtual int setColumnId (pool::CollectionColumn *column, int id=-1)
virtual void checkNewColumnName (const std::string &name, const std::string &method) const
virtual pool::CollectionColumncolumn (const std::string &columnName, const std::string &methodName)
virtual const pool::CollectionColumncolumn (const std::string &columnName, const std::string &methodName) const

Private Types

typedef std::map< std::string, CollectionColumn * > ColumnByName

Private Attributes

std::string m_name
 Name of the collection.
std::string m_type
 Storage technology type of collection.
std::string m_connection
 Connection to database containing collection.
std::string m_eventReferenceColumnName
 Name of event reference column.
std::vector< pool::CollectionColumn * > m_tokenColumns
std::vector< pool::CollectionColumn * > m_attributeColumns
 Attribute column description objects.
std::map< std::string, int > m_columnIdForColumnName
 Map of column ID numbers for column names IDs are unique in the collection.
ColumnByName m_tokenColumnForColumnName
 Map of Token CollectionColumn objects using column names as keys.
ColumnByName m_attributeColumnForColumnName
 Map of Attribute CollectionColumn objects using column names as keys.

Detailed Description

An implementation of the ICollectionDescription interface used to define the properties of a collection to be constructed and to retrieve these properties after construction.

The schema editor of the collection should be used for any modifications to these properties after construction.

Definition at line 26 of file CollectionDescription.h.

Member Typedef Documentation

◆ ColumnByName

typedef std::map< std::string, CollectionColumn* > pool::CollectionDescription::ColumnByName
private

Definition at line 211 of file CollectionDescription.h.

Constructor & Destructor Documentation

◆ CollectionDescription() [1/4]

pool::CollectionDescription::CollectionDescription ( const std::string & name,
const std::string & type,
const std::string & connection = "",
const std::string & eventReferenceColumnName = "" )

Constructor that takes as input the minimum amount of properties needed to describe the collection.

An event reference Token column is inserted by default but may be renamed via a call to ‘setEventReferenceColumnName’.

Parameters
nameName of collection.
typeStorage technology type of collection.
connectionConnection to database containing collection.
eventReferenceColumnNameName of event reference column.

◆ CollectionDescription() [2/4]

pool::CollectionDescription::CollectionDescription ( const ICollectionDescription & rhs)

Copy constructor.

Parameters
rhsCollection description object to copy.

◆ CollectionDescription() [3/4]

pool::CollectionDescription::CollectionDescription ( const CollectionDescription & rhs)

◆ ~CollectionDescription()

virtual pool::CollectionDescription::~CollectionDescription ( )
virtual

Default destructor.

◆ CollectionDescription() [4/4]

pool::CollectionDescription::CollectionDescription ( CollectionDescription && )
default

Member Function Documentation

◆ attributeColumn()

virtual const ICollectionColumn & pool::CollectionDescription::attributeColumn ( int columnId) const
virtual

Returns a description object for an Attribute column of the collection, given the position of the column.

Parameters
columnIdPosition of column in associated collection fragment.

Implements pool::ICollectionDescription.

◆ checkNewColumnName()

virtual void pool::CollectionDescription::checkNewColumnName ( const std::string & name,
const std::string & method ) const
protectedvirtual

◆ clearAll()

virtual void pool::CollectionDescription::clearAll ( )
protectedvirtual

◆ column() [1/2]

virtual pool::CollectionColumn * pool::CollectionDescription::column ( const std::string & columnName,
const std::string & methodName )
protectedvirtual

◆ column() [2/2]

virtual const pool::CollectionColumn * pool::CollectionDescription::column ( const std::string & columnName,
const std::string & methodName ) const
protectedvirtual

◆ connection()

virtual const std::string & pool::CollectionDescription::connection ( ) const
virtual

Returns the connection to the database containing the collection.

Implements pool::ICollectionDescription.

◆ copyFrom()

virtual void pool::CollectionDescription::copyFrom ( const ICollectionDescription & rhs)
protectedvirtual

make this description a copy of 'rhs'

◆ eventReferenceColumnName()

virtual const std::string & pool::CollectionDescription::eventReferenceColumnName ( ) const
virtual

Returns the name reserved for the event reference Token column.

If the name has not been set by the user a default name is returned.

Implements pool::ICollectionDescription.

◆ insertColumn()

virtual const ICollectionColumn & pool::CollectionDescription::insertColumn ( const std::string & columnName,
const std::string & columnType,
int maxSize = 0,
bool sizeIsFixed = true )
virtual

Adds a new column to the collection.

Parameters
columnNameName of new column.
columnTypeData type of new column.
maxSizeMaximum size of column data type (useful for string or blob data types).
sizeIsFixedFlag indicating whether size of column data type is fixed (useful for string or blob data types).

◆ insertTokenColumn()

virtual const ICollectionColumn & pool::CollectionDescription::insertTokenColumn ( const std::string & columnName)
virtual

Adds a new column of type pool::Token to the collection.

Parameters
columnNameName of new column.

◆ name()

virtual const std::string & pool::CollectionDescription::name ( ) const
virtual

Returns the name of the collection and the top level collection fragment.

Implements pool::ICollectionDescription.

◆ numberOfAttributeColumns()

virtual int pool::CollectionDescription::numberOfAttributeColumns ( ) const
virtual

Returns the number of Attribute columns in the collection.

Implements pool::ICollectionDescription.

◆ numberOfTokenColumns()

virtual int pool::CollectionDescription::numberOfTokenColumns ( ) const
virtual

Returns the number of Token columns (including the event reference column if it is used)

Implements pool::ICollectionDescription.

◆ operator=() [1/3]

CollectionDescription & pool::CollectionDescription::operator= ( CollectionDescription && rhs)
inline

Definition at line 67 of file CollectionDescription.h.

68 { operator=( (const ICollectionDescription&) rhs ); return *this; }
CollectionDescription & operator=(const ICollectionDescription &rhs)
Assignment operator.

◆ operator=() [2/3]

CollectionDescription & pool::CollectionDescription::operator= ( const CollectionDescription & rhs)
inline

Definition at line 63 of file CollectionDescription.h.

64 { operator=( (const ICollectionDescription&) rhs ); return *this; }

◆ operator=() [3/3]

CollectionDescription & pool::CollectionDescription::operator= ( const ICollectionDescription & rhs)

Assignment operator.

Parameters
rhssource ICollectionDescription object to copy.

◆ setColumnId() [1/2]

virtual int pool::CollectionDescription::setColumnId ( const std::string & columnName,
int id,
const std::string & methodName )
virtual

◆ setColumnId() [2/2]

virtual int pool::CollectionDescription::setColumnId ( pool::CollectionColumn * column,
int id = -1 )
protectedvirtual

◆ setConnection()

virtual void pool::CollectionDescription::setConnection ( const std::string & connection)
virtual

Sets the connection to the database containing the collection.

Parameters
connectionConnection to database where collection is stored.

◆ setEventReferenceColumnName()

virtual void pool::CollectionDescription::setEventReferenceColumnName ( const std::string & columnName)
virtual

Sets the name of the event reference Token column.

Otherwise a default name is used.

Parameters
columnNameName of event reference Token column.

◆ setName()

virtual void pool::CollectionDescription::setName ( const std::string & name)
virtual

Sets the name of the collection.

Parameters
nameName of collection.

◆ setType()

virtual void pool::CollectionDescription::setType ( const std::string & type)
virtual

Sets the storage technology type of the collection.

Parameters
typeStorage technology type of collection.

◆ tokenColumn()

virtual const ICollectionColumn & pool::CollectionDescription::tokenColumn ( int columnId) const
virtual

Returns a description object for a Token column of the collection, given the position of the column.

Parameters
columnIdPosition of column in associated collection fragment.

Implements pool::ICollectionDescription.

◆ type()

virtual const std::string & pool::CollectionDescription::type ( ) const
virtual

Returns the storage technology type of the collection.

Implements pool::ICollectionDescription.

Member Data Documentation

◆ m_attributeColumnForColumnName

ColumnByName pool::CollectionDescription::m_attributeColumnForColumnName
private

Map of Attribute CollectionColumn objects using column names as keys.

Definition at line 216 of file CollectionDescription.h.

◆ m_attributeColumns

std::vector< pool::CollectionColumn* > pool::CollectionDescription::m_attributeColumns
private

Attribute column description objects.

Definition at line 205 of file CollectionDescription.h.

◆ m_columnIdForColumnName

std::map< std::string, int > pool::CollectionDescription::m_columnIdForColumnName
private

Map of column ID numbers for column names IDs are unique in the collection.

Definition at line 209 of file CollectionDescription.h.

◆ m_connection

std::string pool::CollectionDescription::m_connection
private

Connection to database containing collection.

Definition at line 196 of file CollectionDescription.h.

◆ m_eventReferenceColumnName

std::string pool::CollectionDescription::m_eventReferenceColumnName
private

Name of event reference column.

Definition at line 199 of file CollectionDescription.h.

◆ m_name

std::string pool::CollectionDescription::m_name
private

Name of the collection.

Definition at line 190 of file CollectionDescription.h.

◆ m_tokenColumnForColumnName

ColumnByName pool::CollectionDescription::m_tokenColumnForColumnName
private

Map of Token CollectionColumn objects using column names as keys.

Definition at line 213 of file CollectionDescription.h.

◆ m_tokenColumns

std::vector< pool::CollectionColumn* > pool::CollectionDescription::m_tokenColumns
private

Definition at line 202 of file CollectionDescription.h.

◆ m_type

std::string pool::CollectionDescription::m_type
private

Storage technology type of collection.

Definition at line 193 of file CollectionDescription.h.


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