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 ) {
110 for (
const auto &e : l) {
111 std::vector<Base>::emplace_back( contKey, e );
127 virtual StatusCode
assign(
const std::vector<std::string>& vs)
override;
133 virtual void push_back(
const std::string& key)
override {
134 std::vector<Base>::emplace_back( key );
145 virtual std::vector<SG::VarHandleKey*>
keys()
const override;
158 virtual void declare( IDataHandleHolder* )
override;
161 virtual const IDataHandleHolder*
owner()
const override {
return m_owner; }
174 ostream&
operator<<(ostream& s,
const SG::VarHandleKeyArray& m);
A property holding a SG store/key/clid from which a VarHandle is made.
virtual void declare(IDataHandleHolder *) override
virtual void renounce() override
if called, handles will not be declared in the algorithm I/O
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)