5#ifndef STOREGATE_VARHANDLEKEYARRAY_H
6#define STOREGATE_VARHANDLEKEYARRAY_H 1
15#include "GaudiKernel/DataHandle.h"
16#include "GaudiKernel/IDataHandleHolder.h"
32 virtual StatusCode
assign(
const std::vector<std::string>& vs)=0;
35 virtual Gaudi::DataHandle::Mode
mode()
const = 0;
37 virtual std::vector<SG::VarHandleKey*>
keys()
const = 0;
41 virtual void declare(IDataHandleHolder*) = 0;
43 virtual void setOwner( IDataHandleHolder* o ) = 0;
44 virtual const IDataHandleHolder*
owner()
const = 0;
45 virtual IDataHandleHolder*
owner() = 0;
63 public std::vector<Base> {
91 for (
const auto &e : l) {
92 std::vector<Base>::emplace_back( e );
106 template <
class T = Base>
107 requires T::isDecorHandleKey
109 std::initializer_list<std::string> l )
112 for (
const auto &e : l) {
113 std::vector<Base>::emplace_back( contKey, e );
129 virtual StatusCode
assign(
const std::vector<std::string>& vs)
override;
135 virtual void push_back(
const std::string& key)
override {
147 virtual std::vector<SG::VarHandleKey*>
keys()
const override;
160 virtual void declare( IDataHandleHolder* )
override;
163 virtual const IDataHandleHolder*
owner()
const override {
return m_owner; }
174 template <
class T = Base>
175 requires T::isDecorHandleKey
185 template <
class T = Base>
186 requires (!T::isDecorHandleKey)
A property holding a SG store/key/clid from which a VarHandle is made.
virtual void declare(IDataHandleHolder *) override
const VarHandleKey * m_contKey
Optional container on which decorations are applied.
virtual void renounce() override
if called, handles will not be declared in the algorithm I/O
Base keyFromString(const std::string &s) const
Create a HandleKey from a string.
VarHandleKeyArrayCommon(const std::vector< Base > &v)
base Constructor that takes a vector
virtual void push_back(const std::string &key) override
Add a new key to the VarHandleKeyArray.
VarHandleKeyArrayCommon(VarHandleKey &contKey, std::initializer_list< std::string > l)
base Constructor that takes an associated container and an initializer list of std::strings.
virtual std::string toString() const override
string representation of the VarHandleKeyArray
virtual void setOwner(IDataHandleHolder *o) override
virtual const IDataHandleHolder * owner() const override
virtual bool renounced() const override
query renounced state
StatusCode initialize(bool used=true)
forward the initialization to the member VarHandleKeys
IDataHandleHolder * m_owner
virtual IDataHandleHolder * owner() override
VarHandleKeyArrayCommon()
default base Constructor of mixin
virtual StatusCode assign(const std::vector< std::string > &vs) override
Set the contents of the VarHandleKeyArray from a vector of std::strings.
virtual std::vector< SG::VarHandleKey * > keys() const override
create array of all base VarHandleKeys in the Array
VarHandleKeyArrayCommon(std::initializer_list< Base > l)
base Constructor that takes an initializer list of VarHandleKeys
VarHandleKeyArrayCommon(std::initializer_list< std::string > l)
base Constructor that takes an initializer list of std::strings.
virtual std::vector< SG::VarHandleKey * > keys() const =0
virtual bool renounced() const =0
virtual void push_back(const std::string &key)=0
virtual void setOwner(IDataHandleHolder *o)=0
virtual ~VarHandleKeyArray()=default
virtual IDataHandleHolder * owner()=0
virtual Gaudi::DataHandle::Mode mode() const =0
virtual StatusCode assign(const std::vector< std::string > &vs)=0
virtual const IDataHandleHolder * owner() const =0
virtual std::string toString() const =0
virtual void renounce()=0
virtual void declare(IDataHandleHolder *)=0
A property holding a SG store/key/clid from which a VarHandle is made.
holding In fact this class is here in order to allow STL container for all features This class is sho...
ostream & operator<<(ostream &s, const SG::VarHandleKey &m)