 |
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef ATHCONTAINERSINTERFACES_IAUXTYPEVECTOR_H
14 #define ATHCONTAINERSINTERFACES_IAUXTYPEVECTOR_H
63 virtual std::unique_ptr<IAuxTypeVector>
clone()
const = 0;
75 virtual const void*
toPtr()
const = 0;
87 virtual size_t size()
const = 0;
133 virtual bool shift (
size_t pos, ptrdiff_t offs) = 0;
159 void*
src,
size_t src_pos,
size_t src_n,
188 virtual std::unique_ptr<IAuxTypeVector>
toPacked() {
return 0; }
202 virtual const std::type_info*
objType()
const {
return 0; }
217 virtual std::unique_ptr<IAuxTypeVector>
linkedVector() {
return nullptr; }
318 #endif // not ATHCONTAINERSINTERFACES_IAUXTYPEVECTOR_H
virtual bool shift(size_t pos, ptrdiff_t offs)=0
Shift the elements of the vector.
bool isLinked() const
Return true if this variable is linked from another one.
const AuxDataSpanBase & getDataSpan() const
Return a reference to a description of this vector's start+size.
CxxUtils::CachedValue< AuxDataSpanBase > m_span
Description of the vector start+size.
void resetDataSpan()
Invalidate the stored span.
Describe a range over an auxiliary variable, for low-overhead access.
virtual const void * toPtr() const =0
Return a pointer to the start of the vector's data.
virtual AuxDataSpanBase getDataSpanImpl() const =0
Return a span object describing the current vector.
virtual bool insertMove(size_t pos, void *src, size_t src_pos, size_t src_n, IAuxStore &srcStore)=0
Insert elements into the vector via move semantics.
virtual ~IAuxTypeVector()=default
Destructor.
virtual const std::type_info * objType() const
Return the type of the complete object to be saved.
virtual std::unique_ptr< IAuxTypeVector > clone() const =0
Make a copy of this vector.
virtual std::unique_ptr< IAuxTypeVector > toPacked()
Make a packed version of the variable.
size_t auxid_t
Identifier for a particular aux data item.
void storeDataSpan(void *beg, size_t size)
Update the stored span.
Cached value with atomic update.
virtual void * toVector()=0
Return a pointer to the STL vector itself.
IAuxTypeVector(auxid_t auxid, bool isLinked)
Constructor.
virtual std::unique_ptr< IAuxTypeVector > linkedVector()
Return IAuxTypeVector of a linked variable, if there is one.
Hold information about an option setting request.
Minimal span-like object describing the range of an auxiliary variable.
Cached value with atomic update.
auxid_t auxid() const
Return the auxid of the variable this vector represents.
auxid_t m_auxid
The auxid of the variable this vector represents.
Basic definitions for auxiliary types.
Interface for non-const operations on an auxiliary store.
bool m_isLinked
True if this variable is linked from another one.
virtual bool resize(size_t sz)=0
Change the size of the vector.
virtual void reserve(size_t sz)=0
Change the capacity of the vector.
Abstract interface for manipulating vectors of arbitrary types.
Interface for non-const operations on an auxiliary store.
virtual bool setOption(const AuxDataOption &)
Set an option for this variable.
virtual size_t size() const =0
Return the size of the vector.
virtual void * toPtr()=0
Return a pointer to the start of the vector's data.