1 #ifndef canvas_Persistency_Common_PtrVectorBase_h 2 #define canvas_Persistency_Common_PtrVectorBase_h 15 class PtrVectorBaseStreamer;
28 bool isNonnull() const noexcept;
29 bool isNull() const noexcept;
30 bool isAvailable() const;
42 void updateCore(
RefCore const& core);
43 bool operator==(PtrVectorBase const&) const noexcept;
47 void fillPtrs() const;
55 virtual
void fill_from_offsets(
indices_t const& indices) const = 0;
56 virtual
void zeroTransients() = 0;
58 friend class
art::detail::PtrVectorBaseStreamer;
62 art::PtrVectorBase::isNonnull() const noexcept
76 return core_.isAvailable();
88 return core_.productGetter();
94 core_.setProductGetter(g);
108 indicies_.reserve(n);
114 core_.swap(other.
core_);
117 template <
typename T>
127 return core_ ==
other.core_;
void swap(PtrVectorBase &)
ProductID id() const noexcept
bool isNull() const noexcept
bool operator==(PtrVectorBase const &) const noexcept
std::vector< key_type > indices_t
void swap(Handle< T > &a, Handle< T > &b)
void setProductGetter(EDProductGetter const *) noexcept
constexpr std::array< std::size_t, geo::vect::dimension< Vector >)> indices()
Returns a sequence of indices valid for a vector of the specified type.
EDProductGetter const * productGetter() const noexcept
void reserve(size_type n)
Ptr< T >::key_type key(Ptr< T > const &ptr) const noexcept
constexpr bool isNonnull() const noexcept
indices_t::size_type size_type