18#ifndef BIMHOMEBASE_WRITER_H
19#define BIMHOMEBASE_WRITER_H
29#include <zipios++/zipios-config.h>
31#include <zipios++/zipfile.h>
32#include <zipios++/zipinputstream.h>
33#include <zipios++/zipoutputstream.h>
34#include <zipios++/meta-iostreams.h>
115 std::string
addFile(
const char* Name,
const Base::Persistence* Object, std::string Path =
"");
204 const char*
ind()
const {
return indBuf; }
304 virtual std::ostream&
Stream() {
return ZipStream; }
311 void setComment(
const char* str) { ZipStream.setComment(str); }
318 void setLevel(
int level) { ZipStream.setLevel(level); }
351 virtual std::ostream&
Stream() {
return StrStream; }
358 std::string
getString()
const {
return StrStream.str(); }
410 virtual std::ostream&
Stream() {
return FileStream; }
416 void close() { FileStream.close(); }
426 virtual bool shouldWrite(
const std::string& name,
const Base::Persistence* Object)
const;
virtual std::ostream & Stream()
获取当前的输出流
Definition Writer.h:410
virtual bool shouldWrite(const std::string &name, const Base::Persistence *Object) const
检查是否应该写入对象
std::string DirName
输出目录的路径
Definition Writer.h:429
FileWriter(const char *DirName)
构造函数
void close()
关闭输出流
Definition Writer.h:416
void putNextEntry(const char *file)
添加一个新的文件条目
std::ofstream FileStream
文件输出流对象
Definition Writer.h:430
virtual ~FileWriter()
析构函数
virtual void writeFiles()
写入文件
FileWriter 类,用于将数据写入文件
Definition Writer.h:377
virtual std::ostream & Stream()
获取当前的输出流
Definition Writer.h:351
std::string getString() const
获取字符串流的内容
Definition Writer.h:358
std::stringstream StrStream
字符串流对象
Definition Writer.h:367
virtual void writeFiles()
写入文件(空实现)
Definition Writer.h:364
StringWriter 类,用于将数据写入字符串流
Definition Writer.h:344
std::set< std::string > Modes
模式集合
Definition Writer.h:251
const char * ind() const
获取当前缩进
Definition Writer.h:204
bool getMode(const std::string &mode) const
获取模式
const std::vector< std::string > & getFilenames() const
获取所有注册的文件名
std::vector< std::string > Errors
错误信息列表
Definition Writer.h:250
std::vector< FileEntry > FileList
文件条目列表
Definition Writer.h:248
bool isForceXML()
检查是否启用了仅 XML 模式
void setFileVersion(int version)
设置文件版本
Writer(const Writer &)
私有复制构造函数,禁止复制
std::string ObjectName
获取对象名称
Definition Writer.h:230
std::set< std::string > getModes() const
获取所有模式
void clearMode(const std::string &mode)
清除模式
void clearErrors()
清除所有错误信息
short indent
当前缩进级别
Definition Writer.h:253
void insertAsciiFile(const char *FileName)
插入 ASCII 文件到 XML 文件中
virtual void writeFiles()=0
处理文件写入请求
void setMode(const std::string &mode)
设置模式
virtual std::ostream & Stream()=0
获取输出流
std::vector< std::string > FileNames
注册的文件名列表
Definition Writer.h:249
void setModes(const std::set< std::string > &modes)
设置多个模式
void addError(const std::string &error)
添加错误信息
int getFileVersion() const
获取文件版本
void insertBinFile(const char *FileName)
插入二进制文件到 XML 文件中
int fileVersion
文件版本号
Definition Writer.h:257
std::vector< std::string > getErrors() const
获取所有错误信息
std::string getUniqueFileName(const char *Name)
获取唯一的文件名
bool hasErrors() const
检查是否有错误
void setForceXML(bool on)
设置 Writer 为仅 XML 模式(不允许写入文件)
std::string addFile(const char *Name, const Base::Persistence *Object, std::string Path="")
添加文件写入请求
Writer & operator=(const Writer &)
私有赋值操作符,禁止赋值
bool forceXML
是否启用仅 XML 模式
Definition Writer.h:256
Writer 类,用于处理持久化对象的存储和检索
Definition Writer.h:51
virtual std::ostream & Stream()
获取当前的输出流
Definition Writer.h:304
void setComment(const char *str)
设置 ZIP 文件的注释
Definition Writer.h:311
zipios::ZipOutputStream & getZipStream()
获取 ZIP 输出流
Definition Writer.h:332
void setLevel(int level)
设置 ZIP 压缩级别
Definition Writer.h:318
ZipWriter(const char *FileName)
构造函数,通过文件名初始化 ZipWriter
zipios::ZipOutputStream ZipStream
ZIP 输出流对象
Definition Writer.h:335
void putNextEntry(const char *str)
添加一个新的条目到 ZIP 文件
Definition Writer.h:325
ZipWriter(std::ostream &)
构造函数,通过输出流初始化 ZipWriter
virtual void writeFiles()
写入文件到 ZIP 归档
ZipWriter 类,用于处理 ZIP 文件的写入操作
Definition Writer.h:271
Definition BaseFigureFactory.h:24
std::string FileName
文件名
Definition Writer.h:243
std::string FilePath
文件路径
Definition Writer.h:245
const Base::Persistence * Object
指向持久化对象的指针
Definition Writer.h:244