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... | |
![]() | |
void dumpToStream (std::ostream &stream, int compression) | |
virtual Base::Type getTypeId (void) const | |
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 SaveDocFile (Writer &) const | |
This method is used to save large amounts of data to a binary file. More... | |
![]() | |
BaseClass () | |
Construction. More... | |
virtual PyObject * getPyObject (void) | |
This method returns the Python wrapper for a C++ object. More... | |
bool isDerivedFrom (const Type type) const | |
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 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 void * create (void) | |
static Type getClassTypeId (void) | |
static void init (void) | |
Public Attributes | |
std::string Name | |
Additional Inherited Members | |
![]() | |
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
-
id transaction 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()
|
virtual |
Construction.
A destructor.
A more elaborate description of the destructor.
References Base::Persistence::getClassTypeId(), and App::TransactionObject::New.
Member Function Documentation
◆ addObjectChange()
void Transaction::addObjectChange | ( | const TransactionalObject * | Obj, |
const Property * | Prop | ||
) |
References App::TransactionObject::Chn, App::TransactionFactory::createTransaction(), Base::Persistence::getTypeId(), App::TransactionFactory::instance(), App::TransactionObject::setProperty(), and App::TransactionObject::status.
Referenced by App::Document::onBeforeChangeProperty(), and App::Document::removeObject().
◆ addObjectDel()
void Transaction::addObjectDel | ( | const TransactionalObject * | Obj | ) |
References App::TransactionObject::Chn, App::TransactionFactory::createTransaction(), App::TransactionObject::Del, Base::Persistence::getTypeId(), App::TransactionFactory::instance(), App::TransactionObject::New, and App::TransactionObject::status.
Referenced by App::Document::addObject(), App::Document::addObjects(), and Gui::Document::slotTransactionAppend().
◆ addObjectNew()
void Transaction::addObjectNew | ( | TransactionalObject * | Obj | ) |
References App::TransactionFactory::createTransaction(), App::TransactionObject::Del, App::TransactionalObject::detachFromDocument(), Base::Persistence::getTypeId(), App::TransactionFactory::instance(), App::TransactionObject::New, and App::TransactionObject::status.
Referenced by App::Document::removeObject(), and Gui::Document::slotTransactionRemove().
◆ addOrRemoveProperty()
void Transaction::addOrRemoveProperty | ( | TransactionalObject * | Obj, |
const Property * | pcProp, | ||
bool | add | ||
) |
◆ apply()
apply the content to the document
References Name.
◆ getID()
int Transaction::getID | ( | void | ) | const |
Return the transaction ID.
Referenced by App::Document::abortTransaction(), App::Document::commitTransaction(), App::Document::getAvailableUndos(), App::Document::getTransactionID(), App::Document::redo(), App::Document::renameTransaction(), and App::Document::undo().
◆ getLastID()
|
static |
Referenced by App::Application::getActiveTransaction().
◆ getMemSize()
|
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()
|
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 | ( | ) | const |
Returns true if the transaction list is empty; otherwise returns false.
◆ Restore()
|
virtual |
This method is used to restore properties from an XML document.
Implements Base::Persistence.
◆ Save()
|
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:
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
std::string App::Transaction::Name |
The documentation for this class was generated from the following files:
- src/App/Transactions.h
- src/App/Transactions.cpp