KSeExpr 6.0.0.0
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Friends | List of all members
KSeExpr::VarBlock Class Reference

A thread local evaluation context. Just allocate and fill in with data. More...

#include <VarBlock.h>

Public Member Functions

 VarBlock (VarBlock &&other) noexcept
 Move semantics is the only allowed way to change the structure.
 
 ~VarBlock ()=default
 
 VarBlock (const VarBlock &)=delete
 Don't allow copying and operator='ing'.
 
VarBlockoperator= (const VarBlock &)=delete
 
VarBlockoperator= (VarBlock &&other)=delete
 
double *& Pointer (uint32_t variableOffset)
 Get a reference to the data block pointer which can be modified.
 
char **& CharPointer (uint32_t variableOffset)
 
char ** data ()
 Raw data of the data block pointer (used by compiler)
 

Public Attributes

int indirectIndex
 indirect index to add to pointer based data
 
bool threadSafe
 if true, interpreter's data will be copied to this instance before evaluation.
 
std::vector< doubled
 copy of Interpreter's double data
 
std::vector< char * > s
 copy of Interpreter's str data
 

Private Member Functions

 VarBlock (int size, bool makeThreadSafe)
 Allocate an VarBlock.
 

Private Attributes

std::vector< char * > _dataPtrs
 This stores double* or char** ptrs to variables.
 

Friends

class VarBlockCreator
 

Detailed Description

A thread local evaluation context. Just allocate and fill in with data.

Definition at line 21 of file VarBlock.h.

Constructor & Destructor Documentation

◆ VarBlock() [1/3]

KSeExpr::VarBlock::VarBlock ( int  size,
bool  makeThreadSafe 
)
inlineprivate

Allocate an VarBlock.

Definition at line 25 of file VarBlock.h.

◆ VarBlock() [2/3]

KSeExpr::VarBlock::VarBlock ( VarBlock &&  other)
inlinenoexcept

Move semantics is the only allowed way to change the structure.

Definition at line 36 of file VarBlock.h.

References _dataPtrs, d, indirectIndex, s, and threadSafe.

◆ ~VarBlock()

KSeExpr::VarBlock::~VarBlock ( )
default

◆ VarBlock() [3/3]

KSeExpr::VarBlock::VarBlock ( const VarBlock )
delete

Don't allow copying and operator='ing'.

Member Function Documentation

◆ CharPointer()

char **& KSeExpr::VarBlock::CharPointer ( uint32_t  variableOffset)
inline

Definition at line 57 of file VarBlock.h.

References _dataPtrs.

◆ data()

char ** KSeExpr::VarBlock::data ( )
inline

Raw data of the data block pointer (used by compiler)

Definition at line 76 of file VarBlock.h.

References _dataPtrs.

◆ operator=() [1/2]

VarBlock & KSeExpr::VarBlock::operator= ( const VarBlock )
delete

◆ operator=() [2/2]

VarBlock & KSeExpr::VarBlock::operator= ( VarBlock &&  other)
delete

◆ Pointer()

double *& KSeExpr::VarBlock::Pointer ( uint32_t  variableOffset)
inline

Get a reference to the data block pointer which can be modified.

Definition at line 53 of file VarBlock.h.

References _dataPtrs.

Friends And Related Symbol Documentation

◆ VarBlockCreator

Definition at line 33 of file VarBlock.h.

Member Data Documentation

◆ _dataPtrs

std::vector<char *> KSeExpr::VarBlock::_dataPtrs
private

This stores double* or char** ptrs to variables.

Definition at line 83 of file VarBlock.h.

Referenced by CharPointer(), data(), Pointer(), and VarBlock().

◆ d

std::vector<double> KSeExpr::VarBlock::d

copy of Interpreter's double data

Definition at line 70 of file VarBlock.h.

Referenced by VarBlock().

◆ indirectIndex

int KSeExpr::VarBlock::indirectIndex

indirect index to add to pointer based data

Definition at line 64 of file VarBlock.h.

Referenced by VarBlock().

◆ s

std::vector<char *> KSeExpr::VarBlock::s

copy of Interpreter's str data

Definition at line 73 of file VarBlock.h.

Referenced by VarBlock().

◆ threadSafe

bool KSeExpr::VarBlock::threadSafe

if true, interpreter's data will be copied to this instance before evaluation.

Definition at line 67 of file VarBlock.h.

Referenced by VarBlock().


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