|
| SliceGenerator (const FormPtr &form, int64_t length, const ContentPtr &content, const Slice &slice) |
|
const ContentPtr | content () const |
|
const Slice | slice () const |
|
const ContentPtr | generate () const override |
| Creates an array but does not check it against the form.
|
|
void | caches (std::vector< ArrayCachePtr > &out) const override |
| Accumulates all the unique #ArrayCache objects from nested #VirtualArray nodes. (Uniqueness is determined by pointer value.)
|
|
const std::string | tostring_part (const std::string &indent, const std::string &pre, const std::string &post) const override |
| Returns a string representation of this ArrayGenerator.
|
|
const std::shared_ptr< ArrayGenerator > | shallow_copy () const override |
| Copies this ArrayGenerator, referencing any contents.
|
|
const std::shared_ptr< ArrayGenerator > | with_form (const FormPtr &form) const override |
| Return a copy of this ArrayGenerator with a different form (or a now-known form, whereas it might have been unknown before).
|
|
const std::shared_ptr< ArrayGenerator > | with_length (int64_t length) const override |
| Return a copy of this ArrayGenerator with a different length (or a now-known length, whereas it might have been unknown before).
|
|
virtual bool | referentially_equal (const ArrayGeneratorPtr &other) const override |
| Returns true if this generator has all the same buffers and parameters as other ; false otherwise.
|
|
| ArrayGenerator (const FormPtr &form, int64_t length) |
| Called by subclasses to set the form of an ArrayGenerator.
|
|
virtual | ~ArrayGenerator () |
| Virtual destructor acts as a first non-inline virtual function that determines a specific translation unit in which vtable shall be emitted.
|
|
const FormPtr | form () const |
| The Form the generated array is expected to take; may be nullptr .
|
|
int64_t | length () const |
| The length the generated array is expected to have; may be negative to indicate that the length is unknown.
|
|
virtual const ContentPtr | generate () const =0 |
| Creates an array but does not check it against the form.
|
|
const ContentPtr | generate_and_check () |
| Creates an array and checks it against the form. If form was not available initially, no check is made and the form inferred from the result is saved in case it is useful later.
|
|
virtual void | caches (std::vector< ArrayCachePtr > &out) const =0 |
| Accumulates all the unique #ArrayCache objects from nested #VirtualArray nodes. (Uniqueness is determined by pointer value.)
|
|
virtual const std::string | tostring_part (const std::string &indent, const std::string &pre, const std::string &post) const =0 |
| Returns a string representation of this ArrayGenerator.
|
|
virtual const std::shared_ptr< ArrayGenerator > | shallow_copy () const =0 |
| Copies this ArrayGenerator, referencing any contents.
|
|
virtual const std::shared_ptr< ArrayGenerator > | with_form (const FormPtr &form) const =0 |
| Return a copy of this ArrayGenerator with a different form (or a now-known form, whereas it might have been unknown before).
|
|
virtual const std::shared_ptr< ArrayGenerator > | with_length (int64_t length) const =0 |
| Return a copy of this ArrayGenerator with a different length (or a now-known length, whereas it might have been unknown before).
|
|
virtual bool | referentially_equal (const ArrayGeneratorPtr &other) const =0 |
| Returns true if this generator has all the same buffers and parameters as other ; false otherwise.
|
|
Generator for lazy slicing. Used to avoid materializing a VirtualArray before its content is needed (in case its content is never needed).