Warning, file /include/podio/CollectionBase.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 #ifndef PODIO_COLLECTIONBASE_H
0002 #define PODIO_COLLECTIONBASE_H
0003
0004 #include "podio/CollectionBuffers.h"
0005 #include "podio/SchemaEvolution.h"
0006
0007 #include <iostream>
0008 #include <string_view>
0009
0010 namespace podio {
0011
0012 class ICollectionProvider;
0013
0014 struct RelationNames;
0015
0016 class CollectionBase {
0017 protected:
0018
0019 CollectionBase() = default;
0020
0021 CollectionBase(CollectionBase&&) = default;
0022
0023 CollectionBase& operator=(CollectionBase&&) = default;
0024
0025 public:
0026
0027 CollectionBase(const CollectionBase&) = delete;
0028
0029 CollectionBase& operator=(const CollectionBase&) = delete;
0030
0031
0032 virtual void prepareForWrite() const = 0;
0033
0034
0035 virtual void prepareAfterRead() = 0;
0036
0037
0038 virtual bool setReferences(const ICollectionProvider* collectionProvider) = 0;
0039
0040
0041 virtual void setID(uint32_t id) = 0;
0042
0043
0044 virtual uint32_t getID() const = 0;
0045
0046
0047 virtual podio::CollectionWriteBuffers getBuffers() = 0;
0048
0049 virtual bool hasID() const = 0;
0050
0051 virtual bool isValid() const = 0;
0052
0053
0054 virtual size_t size() const = 0;
0055
0056
0057 virtual std::size_t max_size() const = 0;
0058
0059
0060 virtual bool empty() const = 0;
0061
0062
0063 virtual const std::string_view getTypeName() const = 0;
0064
0065 virtual const std::string_view getValueTypeName() const = 0;
0066
0067 virtual const std::string_view getDataTypeName() const = 0;
0068
0069 virtual SchemaVersionT getSchemaVersion() const = 0;
0070
0071
0072 virtual ~CollectionBase() = default;
0073
0074
0075 virtual void clear() = 0;
0076
0077
0078 virtual bool isSubsetCollection() const = 0;
0079
0080
0081 virtual void setSubsetCollection(bool setSubset = true) = 0;
0082
0083
0084 virtual void print(std::ostream& os = std::cout, bool flush = true) const = 0;
0085
0086
0087 virtual size_t getDatamodelRegistryIndex() const = 0;
0088 };
0089
0090 }
0091
0092 #endif