files.h
来自「几十种常用的加密算法库 vc6 模块封装良好方便使用」· C头文件 代码 · 共 64 行
H
64 行
#ifndef CRYPTOPP_FILES_H
#define CRYPTOPP_FILES_H
#include "cryptlib.h"
#include "filters.h"
#include <iostream>
#include <fstream>
NAMESPACE_BEGIN(CryptoPP)
class FileSource : public Source
{
public:
class Err : public Exception {public: Err(const char *message) : Exception(message) {}};
class OpenErr : public Err {public: OpenErr(const char *message) : Err(message) {}};
class ReadErr : public Err {public: ReadErr() : Err("FileSource: error reading file") {}};
FileSource(std::istream &in, bool pumpAndClose=false,
BufferedTransformation *outQueue = NULL);
FileSource(const char *filename, bool pumpAndClose=false,
BufferedTransformation *outQueue = NULL);
std::istream& GetStream() {return in;}
unsigned int Pump(unsigned int size);
unsigned long PumpAll();
private:
std::ifstream file;
std::istream& in;
};
class FileSink : public Sink
{
public:
class Err : public Exception {public: Err(const char *message) : Exception(message) {}};
class OpenErr : public Err {public: OpenErr(const char *message) : Err(message) {}};
class WriteErr : public Err {public: WriteErr() : Err("FileSink: error writing file") {}};
FileSink(std::ostream &out);
FileSink(const char *filename);
std::ostream& GetStream() {return out;}
void InputFinished();
void Put(byte inByte)
{
out.put(inByte);
if (!out.good())
throw WriteErr();
}
void Put(const byte *inString, unsigned int length);
private:
std::ofstream file;
std::ostream& out;
};
NAMESPACE_END
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?