35 #ifndef _DATABASE_VM_PROGRAM_INSTANCE_HPP_INCLUDED
36 #define _DATABASE_VM_PROGRAM_INSTANCE_HPP_INCLUDED
97 unsigned int ip()
const {
return m_ip;}
122 void init(
bool unique_,
bool nonempty_)
Interface for program executing database transactions.
void initValueIteraror(const ValueTupleSetR &valueset)
bool nonempty
NONEMPTY flag.
Definition: programInstance.hpp:106
State stack element of the virtual machine executing a transaction.
Definition: programInstance.hpp:139
const LogTraceContext * m_logTraceContext
Context for 'm_logTraceCallBack'.
Definition: programInstance.hpp:208
std::vector< StackElement > m_stack
execution stack
Definition: programInstance.hpp:204
ValueTupleSetR keptResult(ArgumentIndex idx) const
Class for describing database errors.
Definition: databaseError.hpp:46
std::size_t m_bindidx
current bind index
Definition: programInstance.hpp:170
std::map< ArgumentIndex, ValueTupleSetR > m_resultMap
KEEP result map.
Definition: programInstance.hpp:175
ArgumentIndex columnIndex(const ValueTupleSet *valueset, ArgumentIndex nameidx) const
StackElement(Address return_ip_, const ValueTupleSetR ¶meter_)
Constructor.
Definition: programInstance.hpp:148
Defines the structure holding a set of tuples (database results, transaction input, suroutine parameters) and providing an iterator on it.
Address m_return_ip
IP to set o RETURN.
Definition: programInstance.hpp:169
Defines the instruction set of the virtual machine defining database transactions.
const std::string & statementArgument(ArgumentIndex argidx) const
Structure for addressing the parameters passed to a subroutine by name.
Definition: subroutineFrame.hpp:50
bool touched()
Get and set of the first result flag.
Definition: programInstance.hpp:129
bool execute()
Execute the program.
ValueTupleSetR m_valueSet
currently iterated value set
Definition: programInstance.hpp:177
Defines the output of a virtual machine for database transactions.
Defines a structure for addressing the parameters passed to a subroutine by name. ...
Error class for databases.
Iterator on this set of value tuples.
Definition: valueTupleSet.hpp:66
boost::shared_ptr< ValueTupleSet > ValueTupleSetR
Definition: valueTupleSet.hpp:218
Callback context structure for logging VM instructions in transaction execution.
ValueTupleSetR m_selectedSet
selected value set
Definition: programInstance.hpp:176
boost::uint32_t Address
Address in program code.
Definition: instructionSet.hpp:326
Address m_ip
instruction pointer
Definition: programInstance.hpp:201
ValueTupleSet::const_iterator m_valueEnd
end of value set
Definition: programInstance.hpp:179
ResultFlags(const ResultFlags &o)
Copy constructor.
Definition: programInstance.hpp:109
OutputR m_output
output
Definition: programInstance.hpp:205
void clear()
Reset flags.
Definition: programInstance.hpp:115
ProgramImage m_program
image of program to execute
Definition: programInstance.hpp:199
boost::uint32_t ArgumentIndex
Index of an argument.
Definition: instructionSet.hpp:324
ValueTupleSetR fetchDatabaseResult(std::size_t nofColumns)
Forward declaration.
Definition: variant.hpp:65
ArgumentIndex m_hintidx
current database statement hint index
Definition: programInstance.hpp:171
TransactionExecStatemachine * m_db_stm
engine to process database instructions
Definition: programInstance.hpp:200
const types::Variant & iteratorArgument(ArgumentIndex idx) const
Set of tuples (database results, transaction input, etc.)
Definition: valueTupleSet.hpp:50
LogTraceCallBack m_logTraceCallBack
NULL or callback procedure for logging execution that is be called after every instruction executed...
Definition: programInstance.hpp:207
ResultFlags(bool unique_=false, bool nonempty_=false)
Constructor.
Definition: programInstance.hpp:112
void(* LogTraceCallBack)(const LogTraceContext *prgcontext, unsigned int ip_)
Definition: programInstance.hpp:64
DatabaseError m_lastError
last database error reported
Definition: programInstance.hpp:206
boost::shared_ptr< Output > OutputR
Definition: output.hpp:131
StackElement(const StackElement &o)
Copy constructor.
Definition: programInstance.hpp:155
SubroutineFrame m_subroutine_frame
prepared subroutine call parameter structure
Definition: programInstance.hpp:202
ResultFlags m_resultFlags
conditions to be meet for each element of the next result
Definition: programInstance.hpp:174
types::Variant loopcntArgument() const
bool unique
UNIQUE flag.
Definition: programInstance.hpp:105
const types::Variant & selectedArgument(ArgumentIndex idx) const
const OutputR & output() const
Get the output of the executed program.
Definition: programInstance.hpp:93
Flags defined in the database command between DO and the statement (NONEMPTY,UNIQUE) ...
Definition: programInstance.hpp:102
void init(bool unique_, bool nonempty_)
Initialize flags.
Definition: programInstance.hpp:122
Interface to the database transaction execution statemechine.
Definition: transactionExecStatemachine.hpp:49
ValueTupleSetR m_lastResult
last call result
Definition: programInstance.hpp:173
ValueTupleSetR m_parameter
parameter structure
Definition: programInstance.hpp:172
Enumeration of instructions for the transaction VM with some static functions on them.
Definition: instructionSet.hpp:50
StackElement()
Default constructor.
Definition: programInstance.hpp:142
bool is_first
true, if there has been no result set added to the set (result is created)
Definition: programInstance.hpp:104
unsigned int ip() const
Get the current IP of program execution (instruction pointer)
Definition: programInstance.hpp:97
void initResult(const ValueTupleSetR &resultset)
void printIteratorColumn()
Instance of a program with statevariables.
Definition: programInstance.hpp:57
const types::Variant & constArgument(ArgumentIndex idx) const
Interface to the standard database transaction execution statemechine.
ValueTupleSet::const_iterator m_valueIter
iterator on value set
Definition: programInstance.hpp:178
Program addressing only flat data structures and with symbolic information stripped out...
Definition: programImage.hpp:54
ProgramInstance()
Default constructor.
Definition: programInstance.hpp:68
bool m_cond
current condition flag for conditional execution ('InstructionSet::CondCode')
Definition: programInstance.hpp:203
ProgramInstance(const ProgramInstance &o)
Copy constructor.
Definition: programInstance.hpp:76
const std::string & tagnameArgument(ArgumentIndex argidx) const
ValueTupleSetR tupleSet(ArgumentIndex idx) const
const DatabaseError * lastError() const
Get the last error of the executed program.
Definition: programInstance.hpp:95