- add style [simple | full] command to allow simple display. current object list display take too much space. - add search [obj | mgr] [plain | re] <text> command to allow user search object or manager list by substring or regex. - add ls search <page> to browse the search result. - set IronPad minidump dump type from full memory to normal. - fix Unvirt ls command page count display error.
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
#include "AccessibleValue.hpp"
 | 
						|
#include "TerminalHelper.hpp"
 | 
						|
#include "StructFormatter.hpp"
 | 
						|
#include "CmdHelper.hpp"
 | 
						|
 | 
						|
#include <VTAll.hpp>
 | 
						|
#include <CK2/CKContext.hpp>
 | 
						|
#include <CK2/CKFile.hpp>
 | 
						|
 | 
						|
#include <cstdio>
 | 
						|
#include <iostream>
 | 
						|
 | 
						|
namespace Unvirt::Context {
 | 
						|
 | 
						|
	class UnvirtContext {
 | 
						|
	public:
 | 
						|
		UnvirtContext();
 | 
						|
		~UnvirtContext();
 | 
						|
		LIBCMO_DISABLE_COPY_MOVE(UnvirtContext);
 | 
						|
 | 
						|
		void Run();
 | 
						|
 | 
						|
	protected:
 | 
						|
		enum class SearchPart {
 | 
						|
			None, Object, Manager
 | 
						|
		};
 | 
						|
		void PrintCommonInfo(const char* u8_fmt, ...);
 | 
						|
		void PrintCommonError(const char* u8_fmt, ...);
 | 
						|
 | 
						|
		void ProcLoad(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcUnLoad(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcSave(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcInfo(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcLs(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcData(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcChunk(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcSearch(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcItems(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcStyle(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcEncoding(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcTemp(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcRsc(const CmdHelper::ArgumentsMap* amap, bool isClear);
 | 
						|
		void ProcTest(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcHelp(const CmdHelper::ArgumentsMap* amap);
 | 
						|
		void ProcExit(const CmdHelper::ArgumentsMap* amap);
 | 
						|
 | 
						|
	protected:
 | 
						|
		bool HasOpenedFile();
 | 
						|
		void ClearDocument();
 | 
						|
		void PrintContextMsg(LibCmo::CKSTRING msg);
 | 
						|
 | 
						|
		CmdHelper::CommandRoot m_Root;
 | 
						|
		CmdHelper::HelpDocument* m_Help;
 | 
						|
		CmdHelper::CmdSplitter m_Splitter;
 | 
						|
 | 
						|
		size_t m_PageLen;
 | 
						|
		bool m_ListStyleIsFull;
 | 
						|
		SearchPart m_SearchPart;
 | 
						|
		LibCmo::XContainer::XArray<size_t> m_SearchIdxResult;
 | 
						|
 | 
						|
		bool m_OrderExit;
 | 
						|
		LibCmo::CK2::CKContext* m_Ctx;
 | 
						|
		LibCmo::CK2::CKFileReader* m_FileReader;
 | 
						|
		bool m_IsShallowRead;
 | 
						|
	};
 | 
						|
 | 
						|
 | 
						|
}
 |