almost finish CKGroup

This commit is contained in:
2023-09-01 12:19:06 +08:00
parent 3755a2e148
commit fd69914a25
15 changed files with 310 additions and 88 deletions

View File

@ -167,14 +167,28 @@ namespace Unvirt::StructFormatter {
void PrintCKObject(const LibCmo::CK2::ObjImpls::CKObject* obj) {
fputs(UNVIRT_TERMCOL_LIGHT_YELLOW(("CKObject\n")), stdout);
if (obj == nullptr) {
fputs(UNVIRT_TERMCOL_LIGHT_RED(("No Data\n")), stdout);
return;
}
fputs(UNVIRT_TERMCOL_LIGHT_RED(("Not Implemented.\n")), stdout);
}
void PrintCKBaseManager(const LibCmo::CK2::MgrImpls::CKBaseManager* mgr) {
fputs(UNVIRT_TERMCOL_LIGHT_YELLOW(("CKBaseManager\n")), stdout);
if (mgr == nullptr) {
fputs(UNVIRT_TERMCOL_LIGHT_RED(("No Data\n")), stdout);
return;
}
fputs(UNVIRT_TERMCOL_LIGHT_RED(("Not Implemented.\n")), stdout);
}
void PrintCKStateChunk(const LibCmo::CK2::CKStateChunk* chunk) {
fputs(UNVIRT_TERMCOL_LIGHT_YELLOW(("CKStateChunk\n")), stdout);
if (chunk == nullptr) {
fputs(UNVIRT_TERMCOL_LIGHT_RED(("No Data\n")), stdout);
return;
}
// hack const state chunk
LibCmo::CK2::CKStateChunk* operchunk = const_cast<LibCmo::CK2::CKStateChunk*>(chunk);

View File

@ -127,6 +127,7 @@ namespace Unvirt::Context {
m_Help = root->RootHelp();
// create context
LibCmo::CK2::CKStartUp();
m_Ctx = new LibCmo::CK2::CKContext();
m_Ctx->SetOutputCallback(std::bind(&UnvirtContext::PrintContextMsg, this, std::placeholders::_1));
}
@ -134,6 +135,11 @@ namespace Unvirt::Context {
UnvirtContext::~UnvirtContext() {
if (m_Help != nullptr)
delete m_Help;
// free context
ClearDocument();
delete m_Ctx;
LibCmo::CK2::CKShutdown();
}
bool UnvirtContext::HasOpenedFile() {