|
DAWorkbench 0.0.1
DAWorkbench API
|
文件缓存命令,此命令适合非常大的dataframe,以及前后对象是一样的场景 更多...
#include <DADataUndoCommand.h>
Public 成员函数 | |
| DADataObjectPersistUndoCommand (QUndoCommand *par=nullptr) | |
| void | setOldData (const DAData &data) override |
| void | setNewData (const DAData &data) override |
| void | undo () override |
| void | redo () override |
| bool | isValid () const |
Public 成员函数 继承自 DA::DADataAbstractUndoCommand | |
| DADataAbstractUndoCommand (QUndoCommand *par=nullptr) | |
| void | setSkipFirstRedo (bool skip=true) |
| bool | isSkipFirstRedo () const |
| void | skipFirstRedo () |
Public 成员函数 继承自 DA::DACallBackInterface | |
| void | setCallBack (CallBack fn) |
| CallBack | getCallBack () const |
| void | callback () |
| bool | hasCallback () const |
Protected 成员函数 | |
| void | dumpObj (const pybind11::object &obj, const QString &path) |
| pybind11::object | loadObj (const QString &path) |
Protected 属性 | |
| DAData | m_data |
| QString | m_oldObjectPath |
| QString | m_newObjectPath |
| bool | m_isValid { false } |
额外继承的成员函数 | |
Public 类型 继承自 DA::DACallBackInterface | |
| using | CallBack = std::function< void() > |
文件缓存命令,此命令适合非常大的dataframe,以及前后对象是一样的场景
此命令的原理是setOldData时,把对象写入到临时文件中,setNewData时把对象内容写入到另外一个临时文件,命令记录新旧两个临时文件的地址, 回退或重做的时候从临时文件中加载到对象来实现内容的回退
DADataUndoCommand 是针对前后对象不一样的情况,而此命令可以针对前后对象一样的场景
上面这段脚本,对DAData内部的dataframe进行操作,且原地替换内容,此时DAData内部持有的py::object是不变的,没有dadata.setPyObject设置新的对象
这种情况,可以使用DADataFileCacheUndoCommand 直接把之前的对象内存写入到硬盘,这样就算原地改变,也能回退
此操作在任何情况下都能进行还原,因此如果你不清楚是否会产生新对象,你可以使用此命令
|
overridevirtual |
|
overridevirtual |