1 #ifndef INCLUDE_ORA_QUERYABLEVECTOR_H
2 #define INCLUDE_ORA_QUERYABLEVECTOR_H
7 #include <boost/shared_ptr.hpp>
71 typedef typename std::vector<std::pair<size_t,Tp> >::const_reverse_iterator
embedded_iterator;
103 template <
typename Tp>
class Range {
113 explicit Range(boost::shared_ptr<store_base_type>&
data);
137 boost::shared_ptr<store_base_type>
m_data;
140 template <
typename Tp>
class Query {
142 explicit Query(boost::shared_ptr<IVectorLoader>& loader);
255 void assign (
size_t n,
const Tp& u );
282 boost::shared_ptr<store_base_type>
m_data;
bool operator!=(const RangeReverseIterator &rhs) const
static const int endOfRange
RangeReverseIterator(embedded_iterator vectorIterator)
bool operator!=(const RangeIterator &rhs) const
PVector< Tp > store_base_type
bool operator==(const RangeReverseIterator &rhs) const
size_t persistentSize() const
void addSelection(const std::string &dataMemberName, SelectionItemType stype, Prim selectionData)
std::vector< std::pair< size_t, Tp > >::const_iterator embedded_iterator
std::vector< Tp >::size_type size_type
QueryableVector< Tp > & operator=(const QueryableVector< Tp > &rhs)
std::vector< Tp >::reverse_iterator reverse_iterator
bool operator!=(const QueryableVector &vec) const
Range< Tp > select(int startIndex, int endIndex=Selection::endOfRange) const
const void * storageAddress() const
RangeReverseIterator & operator=(const RangeReverseIterator &rhs)
RangeReverseIterator operator+(int i)
reference operator[](size_t n)
PVector< Tp >::iterator iterator
RangeIterator operator-(int i)
boost::shared_ptr< store_base_type > m_data
void resize(size_t n, const Tp &value=Tp())
std::vector< std::pair< size_t, Tp > > store_base_type
const Tp * operator->() const
std::vector< Tp >::value_type value_type
const Tp * operator->() const
virtual ~RangeReverseIterator()
void assign(size_t n, const Tp &u)
RangeIterator & operator++()
virtual bool load(void *address) const =0
boost::shared_ptr< IVectorLoader > m_loader
RangeIterator(embedded_iterator vectorIterator)
std::vector< std::pair< size_t, Tp > >::const_reverse_iterator embedded_iterator
bool operator==(const RangeIterator &rhs) const
reverse_iterator rbegin()
void push_back(const Tp &x)
virtual bool isValid() const =0
boost::shared_ptr< IVectorLoader > m_loader
RangeReverseIterator< Tp > reverse_iterator
RangeIterator operator+(int i)
Range & operator=(const Range &rhs)
std::vector< std::pair< size_t, Tp > > range_store_base_type
PVector< Tp >::const_reference const_reference
std::vector< Tp >::iterator iterator
Query & operator=(const Query< Tp > &rhs)
embedded_iterator m_vecIterator
virtual bool loadSelection(const ora::Selection &selection, void *address) const =0
embedded_iterator m_vecIterator
RangeReverseIterator operator-(int i)
std::vector< Tp >::const_reverse_iterator const_reverse_iterator
virtual size_t getSelectionCount(const ora::Selection &selection) const =0
virtual void invalidate()=0
std::vector< Tp >::const_reference const_reference
reverse_iterator rbegin() const
std::vector< Tp >::const_iterator const_iterator
reverse_iterator rend() const
virtual ~QueryableVector()
const Tp & operator*() const
const Tp & operator*() const
char data[epos_bytes_allocation]
PVector< Tp >::size_type size_type
RangeIterator< Tp > iterator
PVector< Tp >::reference reference
std::vector< Tp >::reference reference
bool operator==(const QueryableVector &vec) const
size_t frontIndex() const
PVector< Tp >::const_iterator const_iterator
boost::shared_ptr< store_base_type > m_data
Query(boost::shared_ptr< IVectorLoader > &loader)
RangeIterator & operator=(const RangeIterator &rhs)
RangeReverseIterator & operator++()
Query< Tp > query() const
PVector< Tp >::reverse_iterator reverse_iterator
PVector< Tp >::value_type value_type
PVector< Tp >::const_reverse_iterator const_reverse_iterator