Loading...
Searching...
No Matches
RecordBuilder Class Reference

Builder node for accumulated records. More...

#include <RecordBuilder.h>

Inheritance diagram for RecordBuilder:
Builder

Public Member Functions

 RecordBuilder (const BuilderOptions &options, const std::vector< BuilderPtr > &contents, const std::vector< std::string > &keys, const std::vector< const char * > &pointers, const std::string &name, const char *nameptr, int64_t length, bool begun, int64_t nextindex, int64_t nexttotry)
 Create a RecordBuilder from a full set of parameters.
 
const std::string name () const
 Name of the record (STL wrapped nameptr).
 
const char * nameptr () const
 String pointer for the name of the record.
 
const std::string classname () const override
 User-friendly name of this class: "RecordBuilder".
 
const std::string to_buffers (BuffersContainer &container, int64_t &form_key_id) const override
 Copy the current snapshot into the BuffersContainer and return a Form as a std::string (JSON).
 
int64_t length () const override
 Current length of the accumulated array.
 
void clear () override
 Removes all accumulated data without resetting the type knowledge.
 
bool active () const override
 If true, this node has started but has not finished a multi-step command (e.g. beginX ... endX).
 
const BuilderPtr null () override
 Adds a null value to the accumulated data.
 
const BuilderPtr boolean (bool x) override
 Adds a boolean value x to the accumulated data.
 
const BuilderPtr integer (int64_t x) override
 Adds an integer value x to the accumulated data.
 
const BuilderPtr real (double x) override
 Adds a real value x to the accumulated data.
 
const BuilderPtr complex (std::complex< double > x) override
 Adds a complex value x to the accumulated data.
 
const BuilderPtr datetime (int64_t x, const std::string &unit) override
 Adds a datetime value x to the accumulated data.
 
const BuilderPtr timedelta (int64_t x, const std::string &unit) override
 Adds a timedelta value x to the accumulated data.
 
const BuilderPtr string (const char *x, int64_t length, const char *encoding) override
 Adds a string value x with a given length and encoding to the accumulated data.
 
const BuilderPtr beginlist () override
 Begins building a nested list.
 
const BuilderPtr endlist () override
 Ends a nested list.
 
const BuilderPtr begintuple (int64_t numfields) override
 Begins building a tuple with a fixed number of fields.
 
const BuilderPtr index (int64_t index) override
 Sets the pointer to a given tuple field index; the next command will fill that slot.
 
const BuilderPtr endtuple () override
 Ends a tuple.
 
const BuilderPtr beginrecord (const char *name, bool check) override
 Begins building a record with an optional name.
 
void field (const char *key, bool check) override
 Sets the pointer to a given record field key; the next command will fill that slot.
 
const BuilderPtr endrecord () override
 Ends a record.
 
const BuilderOptionsoptions () const
 
const std::vector< std::string > & keys () const
 
const std::vector< BuilderPtr > & builders () const
 
bool begun ()
 
int64_t nextindex ()
 
void maybeupdate (int64_t i, const BuilderPtr builder)
 
- Public Member Functions inherited from Builder
virtual ~Builder ()
 Virtual destructor acts as a first non-inline virtual function that determines a specific translation unit in which vtable shall be emitted.
 

Static Public Member Functions

static const BuilderPtr fromempty (const BuilderOptions &options)
 Create an empty RecordBuilder.
 

Detailed Description

Builder node for accumulated records.

Constructor & Destructor Documentation

◆ RecordBuilder()

RecordBuilder ( const BuilderOptions & options,
const std::vector< BuilderPtr > & contents,
const std::vector< std::string > & keys,
const std::vector< const char * > & pointers,
const std::string & name,
const char * nameptr,
int64_t length,
bool begun,
int64_t nextindex,
int64_t nexttotry )

Create a RecordBuilder from a full set of parameters.

Parameters
optionsConfiguration options for building an array; these are passed to every Builder's constructor.
contentsA Builder for each record field.
keysNames for each record field.
pointersString pointers for each record field name.
nameString name of the record.
nameptrString pointer for the name of the record.
lengthLength of accumulated array (same as length).
begunIf true, the RecordBuilder is in an active state; false otherwise.
nextindexThe next field index to fill with data.
nexttotryThe next field index to check against a key string.

Member Function Documentation

◆ active()

bool active ( ) const
overridevirtual

If true, this node has started but has not finished a multi-step command (e.g. beginX ... endX).

Calling beginrecord makes a RecordBuilder active; endrecord makes it inactive.

Implements Builder.

◆ beginlist()

const BuilderPtr beginlist ( )
overridevirtual

Begins building a nested list.

Implements Builder.

◆ beginrecord()

const BuilderPtr beginrecord ( const char * name,
bool check )
overridevirtual

Begins building a record with an optional name.

Parameters
nameIf specified, this name is used to distinguish records of different types in heterogeneous data (to build a union of record arrays, rather than a record array with union fields and optional values) and it also sets the "__record__" parameter to later add custom behaviors in Python.
checkIf true, actually do a string comparison to see if the provided name matches the previous name; if false, assume that the same pointer means the same string (safe for string literals).

Implements Builder.

◆ begintuple()

const BuilderPtr begintuple ( int64_t numfields)
overridevirtual

Begins building a tuple with a fixed number of fields.

Implements Builder.

◆ begun()

bool begun ( )
inline

◆ boolean()

const BuilderPtr boolean ( bool x)
overridevirtual

Adds a boolean value x to the accumulated data.

Implements Builder.

◆ builders()

const std::vector< BuilderPtr > & builders ( ) const
inline

◆ classname()

const std::string classname ( ) const
overridevirtual

User-friendly name of this class: "RecordBuilder".

Implements Builder.

◆ clear()

void clear ( )
overridevirtual

Removes all accumulated data without resetting the type knowledge.

Implements Builder.

◆ complex()

const BuilderPtr complex ( std::complex< double > x)
overridevirtual

Adds a complex value x to the accumulated data.

Implements Builder.

◆ datetime()

const BuilderPtr datetime ( int64_t x,
const std::string & unit )
overridevirtual

Adds a datetime value x to the accumulated data.

Implements Builder.

◆ endlist()

const BuilderPtr endlist ( )
overridevirtual

Ends a nested list.

Implements Builder.

◆ endrecord()

const BuilderPtr endrecord ( )
overridevirtual

Ends a record.

Implements Builder.

◆ endtuple()

const BuilderPtr endtuple ( )
overridevirtual

Ends a tuple.

Implements Builder.

◆ field()

void field ( const char * key,
bool check )
overridevirtual

Sets the pointer to a given record field key; the next command will fill that slot.

Parameters
keyIndicates the field to fill.
checkIf true, actually do a string comparison to see if key matches the previous key; if false, assume that the same pointer means the same string (safe for string literals).

Record keys are checked in round-robin order. The best performance will be achieved by filling them in the same order for each record. Lookup time for random order scales with the number of fields.

Implements Builder.

◆ fromempty()

static const BuilderPtr fromempty ( const BuilderOptions & options)
static

Create an empty RecordBuilder.

Parameters
optionsConfiguration options for building an array; these are passed to every Builder's constructor.

◆ index()

const BuilderPtr index ( int64_t index)
overridevirtual

Sets the pointer to a given tuple field index; the next command will fill that slot.

Implements Builder.

◆ integer()

const BuilderPtr integer ( int64_t x)
overridevirtual

Adds an integer value x to the accumulated data.

Implements Builder.

◆ keys()

const std::vector< std::string > & keys ( ) const
inline

◆ length()

int64_t length ( ) const
overridevirtual

Current length of the accumulated array.

Implements Builder.

◆ maybeupdate()

void maybeupdate ( int64_t i,
const BuilderPtr builder )

◆ name()

const std::string name ( ) const

Name of the record (STL wrapped nameptr).

◆ nameptr()

const char * nameptr ( ) const

String pointer for the name of the record.

◆ nextindex()

int64_t nextindex ( )
inline

◆ null()

const BuilderPtr null ( )
overridevirtual

Adds a null value to the accumulated data.

Implements Builder.

◆ options()

const BuilderOptions & options ( ) const
inline

◆ real()

const BuilderPtr real ( double x)
overridevirtual

Adds a real value x to the accumulated data.

Implements Builder.

◆ string()

const BuilderPtr string ( const char * x,
int64_t length,
const char * encoding )
overridevirtual

Adds a string value x with a given length and encoding to the accumulated data.

Note
Currently, only encoding =
  • nullptr (no encoding; a bytestring)
  • "utf-8" (variable-length Unicode 8-bit encoding)

are supported.

Implements Builder.

◆ timedelta()

const BuilderPtr timedelta ( int64_t x,
const std::string & unit )
overridevirtual

Adds a timedelta value x to the accumulated data.

Implements Builder.

◆ to_buffers()

const std::string to_buffers ( BuffersContainer & container,
int64_t & form_key_id ) const
overridevirtual

Copy the current snapshot into the BuffersContainer and return a Form as a std::string (JSON).

Implements Builder.


The documentation for this class was generated from the following file: