App::Transaction Class Reference

Represents a atomic transaction of the document. More...

#include <Transactions.h>

Public Member Functions

void addObjectChange (const TransactionalObject *Obj, const Property *Prop)
 
void addObjectDel (const TransactionalObject *Obj)
 
void addObjectNew (TransactionalObject *Obj)
 
void addOrRemoveProperty (TransactionalObject *Obj, const Property *pcProp, bool add)
 
void apply (Document &Doc, bool forward)
 apply the content to the document More...
 
int getID (void) const
 Return the transaction ID. More...
 
virtual unsigned int getMemSize (void) const
 This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB? More...
 
bool hasObject (const TransactionalObject *Obj) const
 check if this object is used in a transaction More...
 
bool isEmpty () const
 Returns true if the transaction list is empty; otherwise returns false. More...
 
virtual void Restore (Base::XMLReader &reader)
 This method is used to restore properties from an XML document. More...
 
virtual void Save (Base::Writer &writer) const
 This method is used to save properties to an XML document. More...
 
 Transaction (int id=0)
 Construction. More...
 
virtual ~Transaction ()
 Construction. More...
 
- Public Member Functions inherited from Base::Persistence
void dumpToStream (std::ostream &stream, int compression)
 
virtual unsigned int getMemSize () const =0
 This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB? More...
 
virtual Base::Type getTypeId (void) const
 
virtual void Restore (XMLReader &)=0
 This method is used to restore properties from an XML document. More...
 
virtual void RestoreDocFile (Reader &)
 This method is used to restore large amounts of data from a file In this method you simply stream in your SaveDocFile() saved data. More...
 
void restoreFromStream (std::istream &stream)
 
virtual void Save (Writer &) const =0
 This method is used to save properties to an XML document. More...
 
virtual void SaveDocFile (Writer &) const
 This method is used to save large amounts of data to a binary file. More...
 
- Public Member Functions inherited from Base::BaseClass
 BaseClass ()
 Construction. More...
 
 BaseClass (const BaseClass &)=default
 
virtual PyObjectgetPyObject ()
 This method returns the Python wrapper for a C++ object. More...
 
virtual Type getTypeId () const
 
bool isDerivedFrom (const Type type) const
 
BaseClassoperator= (const BaseClass &)=default
 
virtual void setPyObject (PyObject *)
 
virtual ~BaseClass ()
 Destruction. More...
 

Static Public Member Functions

static int getLastID (void)
 
static int getNewID (void)
 Generate a new unique transaction ID. More...
 
- Static Public Member Functions inherited from Base::Persistence
static void * create (void)
 
static std::string encodeAttribute (const std::string &)
 Encodes an attribute upon saving. More...
 
static Base::Type getClassTypeId (void)
 
static void init (void)
 
- Static Public Member Functions inherited from Base::BaseClass
static void * create ()
 
static Type getClassTypeId ()
 
static void init ()
 

Public Attributes

std::string Name
 

Additional Inherited Members

- Static Protected Member Functions inherited from Base::BaseClass
static void initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=nullptr)
 

Detailed Description

Represents a atomic transaction of the document.

Constructor & Destructor Documentation

◆ Transaction()

Transaction::Transaction ( int  id = 0)

Construction.

Parameters
idtransaction id. If zero, then it will be generated automatically as a monotonically increasing index across the entire application. User can pass in a transaction id to group multiple transactions from different document, so that they can be undo/redo together.

◆ ~Transaction()

Transaction::~Transaction ( )
virtual

Construction.

A destructor.

A more elaborate description of the destructor.

References Base::Persistence::getClassTypeId(), and App::TransactionObject::New.

Member Function Documentation

◆ addObjectChange()

◆ addObjectDel()

◆ addObjectNew()

◆ addOrRemoveProperty()

◆ apply()

void Transaction::apply ( Document Doc,
bool  forward 
)

apply the content to the document

References Name.

◆ getID()

◆ getLastID()

int Transaction::getLastID ( void  )
static

◆ getMemSize()

unsigned int Transaction::getMemSize ( void  ) const
virtual

This method is used to get the size of objects It is not meant to have the exact size, it is more or less an estimation which runs fast! Is it two bytes or a GB?

Implements Base::Persistence.

◆ getNewID()

int Transaction::getNewID ( void  )
static

Generate a new unique transaction ID.

Referenced by App::Application::setActiveTransaction().

◆ hasObject()

bool Transaction::hasObject ( const TransactionalObject Obj) const

check if this object is used in a transaction

◆ isEmpty()

bool Transaction::isEmpty ( void  ) const

Returns true if the transaction list is empty; otherwise returns false.

◆ Restore()

void Transaction::Restore ( Base::XMLReader reader)
virtual

This method is used to restore properties from an XML document.

Implements Base::Persistence.

◆ Save()

void Transaction::Save ( Base::Writer ) const
virtual

This method is used to save properties to an XML document.

A good example you'll find in PropertyStandard.cpp, e.g. the vector:

void PropertyVector::Save (Writer &writer) const
{
writer << writer.ind() << "<PropertyVector valueX=\"" << _cVec.x <<
"\" valueY=\"" << _cVec.y <<
"\" valueZ=\"" << _cVec.z <<"\"/>" << endl;
}

The writer.ind() expression writes the indentation, just for pretty printing of the XML. As you see, the writing of the XML document is not done with a DOM implementation because of performance reasons. Therefore the programmer has to take care that a valid XML document is written. This means closing tags and writing UTF-8.

See also
Base::Writer

Implements Base::Persistence.

Member Data Documentation

◆ Name


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