Migrate the SimplePlugins file-management feature into the YAMA client as an experimental feature. The migrated CFileManager, MasterEncoder and Info-Zip sources live under client/file/ and are isolated in the SimplePluginsFile namespace to avoid clashing with the native FileManager class. Add COMMAND_FILE_MANAGER_PLUGIN (163) and LoopFileManagerPlugin, spawned as a sub-connection from KernelManager. Add an "实验功能" submenu with a "文件管理" entry above "客户管理" in the online-hosts right-click menu, routed via OnExperimentFileManager to the existing TOKEN_DRIVE_LIST_PLUGIN dialog path. Co-Authored-By: deepseek-v4-pro
33 lines
767 B
C++
33 lines
767 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
|
|
namespace SimplePluginsFile {
|
|
|
|
class MasterEncoder
|
|
{
|
|
public:
|
|
MasterEncoder();
|
|
~MasterEncoder();
|
|
|
|
void setSignAndKey(char* sign, int signLen, unsigned char key);
|
|
|
|
void decode(unsigned char* data, long size);
|
|
void encode(unsigned char* data, long size);
|
|
|
|
void writePDF(const std::string& filePath, unsigned char* data, long size);
|
|
unsigned char* readPDF(const std::string& filepath, long& size);
|
|
|
|
public:
|
|
void encodePDF(const std::string& pdfPath, const std::string& savePath);
|
|
void decodePDF(const std::string& pdfPath, const std::string& savePath);
|
|
unsigned char* decode(const std::string& pdfPath, long& size);
|
|
|
|
private:
|
|
unsigned char _codeKey;
|
|
char* _sign;
|
|
int _signLen;
|
|
};
|
|
|
|
}
|