layout codes.

This commit is contained in:
2020-09-03 15:39:00 +08:00
parent b37c9439e3
commit 51f22f0ed3
17 changed files with 176 additions and 92 deletions

View File

@@ -8,19 +8,19 @@ namespace hgl
{ {
namespace io namespace io
{ {
enum FileOpenMode ///文件访问模式枚举 enum class FileOpenMode ///文件访问模式枚举
{ {
fomNone=0, None=0,
fomCreate, ///<创建文件,如存在则失败 Create, ///<创建文件,如存在则失败
fomCreateTrunc, ///<强制创建,如存在则抹掉 CreateTrunc, ///<强制创建,如存在则抹掉
fomCreateTemp, CreateTemp,
fomOnlyRead, ///<只读方式 OnlyRead, ///<只读方式
fomOnlyWrite, ///<只写方式 OnlyWrite, ///<只写方式
fomReadWrite, ///<可读可写 ReadWrite, ///<可读可写
fomAppend, ///<追加模式 Append, ///<追加模式
fomEnd End
};//enum FileOpenMode };//enum FileOpenMode
/** /**
@@ -43,13 +43,13 @@ namespace hgl
FileAccess(); FileAccess();
virtual ~FileAccess(); virtual ~FileAccess();
virtual bool Open(const OSString &,FileOpenMode fom); ///<以指定模式打开一个文件 virtual bool Open (const OSString &,FileOpenMode fom); ///<以指定模式打开一个文件
virtual bool Create(const OSString &fn){return Open(fn,fomCreate);} ///<创建一个新文件,如文件已存在则创建失败 virtual bool Create (const OSString &fn){return Open(fn,FileOpenMode::Create);} ///<创建一个新文件,如文件已存在则创建失败
virtual bool CreateTrunc(const OSString &fn){return Open(fn,fomCreateTrunc);} ///<创建一个新文件,如文件已存在则抹消它 virtual bool CreateTrunc (const OSString &fn){return Open(fn,FileOpenMode::CreateTrunc);} ///<创建一个新文件,如文件已存在则抹消它
virtual bool OpenRead(const OSString &fn){return Open(fn,fomOnlyRead);} ///<以只读模式打开一个文件 virtual bool OpenRead (const OSString &fn){return Open(fn,FileOpenMode::OnlyRead);} ///<以只读模式打开一个文件
virtual bool OpenWrite(const OSString &fn){return Open(fn,fomOnlyWrite);} ///<以只写模式打开一个文件 virtual bool OpenWrite (const OSString &fn){return Open(fn,FileOpenMode::OnlyWrite);} ///<以只写模式打开一个文件
virtual bool OpenReadWrite(const OSString &fn){return Open(fn,fomReadWrite);} ///<以读写模式打开一个文件 virtual bool OpenReadWrite (const OSString &fn){return Open(fn,FileOpenMode::ReadWrite);} ///<以读写模式打开一个文件
virtual bool CreateTemp(); virtual bool CreateTemp (); ///<创建一个临时文件
virtual void Close(); ///<关闭文件 virtual void Close(); ///<关闭文件
virtual void CloseRead(); ///<仅关闭读取 virtual void CloseRead(); ///<仅关闭读取
@@ -64,7 +64,7 @@ namespace hgl
virtual bool CanRestart()const{return CanSeek();} ///<文件是否可复位访问 virtual bool CanRestart()const{return CanSeek();} ///<文件是否可复位访问
virtual bool CanSize()const{return(true);} ///<文件是否可取得长度 virtual bool CanSize()const{return(true);} ///<文件是否可取得长度
virtual int64 Seek(int64,SeekOrigin=SeekOrigin::Begin); ///<定位访问指针 virtual int64 Seek(int64,SeekOrigin=SeekOrigin::Begin); ///<定位访问指针
virtual int64 Tell()const; ///<取得访问指针位置 virtual int64 Tell()const; ///<取得访问指针位置
virtual int64 GetSize(); ///<取得文件长度 virtual int64 GetSize(); ///<取得文件长度
virtual bool Restart(); ///<复位访问指针 virtual bool Restart(); ///<复位访问指针

View File

@@ -24,11 +24,11 @@ namespace hgl
FileOutputStream(SharedPtr<FileAccess> &); FileOutputStream(SharedPtr<FileAccess> &);
virtual ~FileOutputStream(); virtual ~FileOutputStream();
virtual bool Open(const OSString &fn,FileOpenMode mode){return OpenFile(fn,mode);} ///<打开文件,指定一个模式 virtual bool Open (const OSString &fn,FileOpenMode mode){return OpenFile(fn,mode);} ///<打开文件,指定一个模式
virtual bool Open(const OSString &fn){return OpenFile(fn,fomOnlyWrite);} ///<打开文件 virtual bool Open (const OSString &fn){return OpenFile(fn,FileOpenMode::OnlyWrite);} ///<打开文件
virtual bool Create(const OSString &fn){return OpenFile(fn,fomCreate);} ///<创建文件,如存在创建失败 virtual bool Create (const OSString &fn){return OpenFile(fn,FileOpenMode::Create);} ///<创建文件,如存在创建失败
virtual bool CreateTrunc(const OSString &fn){return OpenFile(fn,fomCreateTrunc);} ///<创建文件,如存在则抹去 virtual bool CreateTrunc (const OSString &fn){return OpenFile(fn,FileOpenMode::CreateTrunc);} ///<创建文件,如存在则抹去
virtual bool OpenAppend(const OSString &fn){return OpenFile(fn,fomAppend);} ///<打开文件,追加模式 virtual bool OpenAppend (const OSString &fn){return OpenFile(fn,FileOpenMode::Append);} ///<打开文件,追加模式
virtual void Close(); ///<关闭文件 virtual void Close(); ///<关闭文件
@@ -67,7 +67,7 @@ namespace hgl
* @param mode 打开模式,默认只写(必然可读) * @param mode 打开模式,默认只写(必然可读)
* @see FileOpenMode * @see FileOpenMode
*/ */
OpenFileOutputStream(const OSString &filename,FileOpenMode mode=fomOnlyWrite) OpenFileOutputStream(const OSString &filename,FileOpenMode mode=FileOpenMode::OnlyWrite)
{ {
fos=new FileOutputStream(); fos=new FileOutputStream();

View File

@@ -29,7 +29,7 @@ namespace hgl
} }
int64 read (void *ptr,int size){return in?in->ReadFully(ptr,size):-1;} int64 read (void *ptr,int size){return in?in->ReadFully(ptr,size):-1;}
int skipBytes (int size) {return in?in->Seek(size,soCurrent):-1;} int skipBytes (int size) {return in?in->Seek(size,SeekOrigin::Current):-1;}
bool readBoolean (bool &b) {return in?in->ReadBool (b):false;} bool readBoolean (bool &b) {return in?in->ReadBool (b):false;}
bool readByte (int8 &i) {return in?in->ReadInt8 (i):false;} bool readByte (int8 &i) {return in?in->ReadInt8 (i):false;}

View File

@@ -1,49 +1,119 @@
file(GLOB TYPE_TEMPLATE_HEADER ${CMCORE_ROOT_INCLUDE_PATH}/hgl/type/*.h) SET(TYPE_INCLUDE_PATH ${CMCORE_ROOT_INCLUDE_PATH}/hgl/type)
file(GLOB TYPE_TEMPLATE_HEADER ${TYPE_INCLUDE_PATH}/*.h)
SET(SYSTEM_INFO_SOURCE SystemInfo.cpp) SET(SYSTEM_INFO_SOURCE SystemInfo.cpp)
SET(BASE_TYPE_SOURCE ##Color--------------------------------------------------------
# DataType/Info.cpp SET(COLOR_HEADER_FILES ${TYPE_INCLUDE_PATH}/Color.h
# DataType/BitArray.cpp ${TYPE_INCLUDE_PATH}/Color3f.h
DataType/Color.cpp ${TYPE_INCLUDE_PATH}/Color4f.h)
DataType/Color3f.cpp
DataType/Color4f.cpp
# DataType/FontInfo.cpp
DataType/StringList.cpp
DataType/Endian.cpp)
SOURCE_GROUP("DataType\\Template" FILES ${TYPE_TEMPLATE_HEADER}) SET(COLOR_SOURCE_FILES Color/Color.cpp
SOURCE_GROUP("DataType" FILES ${BASE_TYPE_SOURCE}) Color/Color3f.cpp
Color/Color4f.cpp)
SET(BASE_IO_SOURCE SOURCE_GROUP("Datatype\\Color\\Header Files" FILES ${COLOR_HEADER_FILES})
IO/InputStream.cpp SOURCE_GROUP("Datatype\\Color\\Source Files" FILES ${COLOR_SOURCE_FILES})
IO/DataInputStream.cpp
IO/DataOutputStream.cpp
IO/FileAccess.cpp
IO/FileInputStream.cpp
IO/FileOutputStream.cpp
IO/IOType.cpp
IO/RandomAccessFile.cpp
IO/TextOutputStream.cpp)
SOURCE_GROUP("IO" FILES ${BASE_IO_SOURCE}) ##Text--------------------------------------------------------
SET(STRING_HEADER_FILES ${TYPE_INCLUDE_PATH}/BaseString.h
${TYPE_INCLUDE_PATH}/StringInstance.h
${TYPE_INCLUDE_PATH}/StringList.h
${TYPE_INCLUDE_PATH}/StdString.h)
SET(BASE_FILE_SYSTEM_SOURCE SET(TEXT_HEADER_FILES ${CMCORE_ROOT_INCLUDE_PATH}/hgl/Endian.h
FileSystem/FileSystem.cpp ${CMCORE_ROOT_INCLUDE_PATH}/hgl/CodePage.h
FileSystem/EnumFile.cpp) ${TYPE_INCLUDE_PATH}/UnicodeBlocks.h
${TYPE_INCLUDE_PATH}/StrChar.h)
SOURCE_GROUP("FileSystem" FILES ${BASE_FILE_SYSTEM_SOURCE}) SET(TEXT_SOURCE_FILES Text/Endian.cpp
Text/CodePage.cpp
Text/UnicodeBlocks.cpp
Text/StringList.cpp)
SET(BASE_OTHER_SOURCE SOURCE_GROUP("Text\\String" FILES ${STRING_HEADER_FILES}
Other/CodePage.cpp Text/StringList.cpp)
Other/UnicodeBlocks.cpp
Other/DateTime.cpp
# Other/ExpendString.cpp
Other/ThreadFunc.cpp
Other/TimeCount.cpp
Other/TimeVal.cpp)
SOURCE_GROUP("Other" FILES ${BASE_OTHER_SOURCE}) SOURCE_GROUP("Text\\Header Files" FILES ${TEXT_HEADER_FILES})
SOURCE_GROUP("Text\\Source Files" FILES ${TEXT_SOURCE_FILES})
SOURCE_GROUP("Datatype\\Template" FILES ${TYPE_TEMPLATE_HEADER})
##I/O------------------------------------------------------------
SET(IO_INCLUDE_PATH ${CMCORE_ROOT_INCLUDE_PATH}/hgl/io)
SET(IO_BASE_FILES ${IO_INCLUDE_PATH}/InputStream.h
${IO_INCLUDE_PATH}/IOType.h
${IO_INCLUDE_PATH}/OutputStream.h
${IO_INCLUDE_PATH}/SeekAccess.h
IO/IOType.cpp)
SET(IO_DATA_FILES ${IO_INCLUDE_PATH}/DataInputStream.h
${IO_INCLUDE_PATH}/DataOutputStream.h
${IO_INCLUDE_PATH}/EndianDataInputStream.h
${IO_INCLUDE_PATH}/EndianDataOutputStream.h
IO/InputStream.cpp
IO/DataInputStream.cpp
IO/DataOutputStream.cpp)
SET(IO_MEMORY_FILES ${IO_INCLUDE_PATH}/MemoryInputStream.h
${IO_INCLUDE_PATH}/MemoryOutputStream.h)
SET(IO_FILE_FILES ${IO_INCLUDE_PATH}/FileAccess.h
${IO_INCLUDE_PATH}/FileInputStream.h
${IO_INCLUDE_PATH}/FileOutputStream.h
${IO_INCLUDE_PATH}/RandomAccessFile.h
${IO_INCLUDE_PATH}/TextOutputStream.h
IO/FileAccess.cpp
IO/FileInputStream.cpp
IO/FileOutputStream.cpp
IO/RandomAccessFile.cpp)
SET(IO_JAVA_FILES ${IO_INCLUDE_PATH}/JavaInputStream.h
${IO_INCLUDE_PATH}/JavaOutputStream.h)
SET(IO_TEXT_FILES IO/TextOutputStream.cpp)
SOURCE_GROUP("IO\\Base" FILES ${IO_BASE_FILES})
SOURCE_GROUP("IO\\Data" FILES ${IO_DATA_FILES})
SOURCE_GROUP("IO\\Memory" FILES ${IO_MEMORY_FILES})
SOURCE_GROUP("IO\\File" FILES ${IO_FILE_FILES})
SOURCE_GROUP("IO\\Jave" FILES ${IO_JAVA_FILES})
SOURCE_GROUP("IO\\Text" FILES ${IO_TEXT_FILES})
SET(IO_SOURCE_FILES ${IO_BASE_FILES}
${IO_DATA_FILES}
${IO_MEMORY_FILES}
${IO_FILE_FILES}
${IO_JAVA_FILES}
${IO_TEXT_FILES})
SET(FILESYSTEM_INCLUDE_PATH ${CMCORE_ROOT_INCLUDE_PATH}/hgl/filesystem)
SET(FILESYSTEM_HEADER_FILES ${FILESYSTEM_INCLUDE_PATH}/EnumFile.h
${FILESYSTEM_INCLUDE_PATH}/EnumVolume.h
${FILESYSTEM_INCLUDE_PATH}/FileSystem.h)
SET(FILESYSTEM_SOURCE_FILES FileSystem/FileSystem.cpp
FileSystem/EnumFile.cpp)
SOURCE_GROUP("FileSystem" FILES ${FILESYSTEM_HEADER_FILES} ${FILESYSTEM_SOURCE_FILES})
SET(BASE_TIME_HEADER_FILES ${TYPE_INCLUDE_PATH}/DateTime.h
${CMCORE_ROOT_INCLUDE_PATH}/hgl/Time.h)
SET(BASE_TIME_SOURCE_FILES Time/DateTime.cpp
Time/TimeCount.cpp
Time/TimeVal.cpp)
SOURCE_GROUP("Time\\Header Files" FILES ${BASE_TIME_HEADER_FILES})
SOURCE_GROUP("Time\\Source Files" FILES ${BASE_TIME_SOURCE_FILES})
SET(BASE_THREAD_SOURCE Other/ThreadFunc.cpp)
SOURCE_GROUP("Thread" FILES ${BASE_OTHER_SOURCE})
file(GLOB BASE_PLUG_IN_HEADER ${CMCORE_ROOT_INCLUDE_PATH}/hgl/plugin/*.h) file(GLOB BASE_PLUG_IN_HEADER ${CMCORE_ROOT_INCLUDE_PATH}/hgl/plugin/*.h)
file(GLOB BASE_PLUG_IN_SOURCE PlugIn/*.cpp) file(GLOB BASE_PLUG_IN_SOURCE PlugIn/*.cpp)
@@ -58,15 +128,29 @@ SOURCE_GROUP("Log\\Header Files" FILES ${BASE_LOG_HEADER})
SOURCE_GROUP("Log\\Source Files" FILES ${BASE_LOG_SOURCE}) SOURCE_GROUP("Log\\Source Files" FILES ${BASE_LOG_SOURCE})
add_cm_library(CMCore "CM" #${SYSTEM_INFO_SOURCE} add_cm_library(CMCore "CM" #${SYSTEM_INFO_SOURCE}
${TYPE_TEMPLATE_HEADER}
${BASE_TYPE_SOURCE}
${BASE_IO_SOURCE}
${BASE_FILE_SYSTEM_SOURCE}
${BASE_OTHER_SOURCE}
${BASE_PLUG_IN_HEADER} ${COLOR_HEADER_FILES}
${COLOR_SOURCE_FILES}
${STRING_HEADER_FILES}
${TEXT_HEADER_FILES}
${TEXT_SOURCE_FILES}
${TYPE_TEMPLATE_HEADER}
${IO_SOURCE_FILES}
${FILESYSTEM_HEADER_FILES}
${FILESYSTEM_SOURCE_FILES}
${BASE_TIME_HEADER_FILES}
${BASE_TIME_SOURCE_FILES}
${BASE_THREAD_SOURCE}
${BASE_PLUG_IN_HEADER}
${BASE_PLUG_IN_SOURCE} ${BASE_PLUG_IN_SOURCE}
${BASE_LOG_HEADER} ${BASE_LOG_HEADER}
${BASE_LOG_SOURCE} ${BASE_LOG_SOURCE}
) )

View File

@@ -14,7 +14,7 @@ namespace hgl
FileAccess::FileAccess() FileAccess::FileAccess()
{ {
fp=-1; fp=-1;
mode=fomNone; mode=FileOpenMode::None;
} }
FileAccess::~FileAccess() FileAccess::~FileAccess()
@@ -56,7 +56,7 @@ namespace hgl
CloseFile(fp); CloseFile(fp);
fp=-1; fp=-1;
mode=fomNone; mode=FileOpenMode::None;
} }
void FileAccess::CloseRead() void FileAccess::CloseRead()
@@ -66,7 +66,7 @@ namespace hgl
if(!CanWrite()) if(!CanWrite())
Close(); Close();
mode=fomOnlyWrite; mode=FileOpenMode::OnlyWrite;
} }
void FileAccess::CloseWrite() void FileAccess::CloseWrite()
@@ -76,14 +76,14 @@ namespace hgl
if(!CanRead()) if(!CanRead())
Close(); Close();
mode=fomOnlyRead; mode=FileOpenMode::OnlyRead;
} }
bool FileAccess::CanRead() const bool FileAccess::CanRead() const
{ {
if(fp==-1)return(false); if(fp==-1)return(false);
if(mode==fomOnlyWrite)return(false); if(mode==FileOpenMode::OnlyWrite)return(false);
return true; return true;
} }
@@ -92,7 +92,7 @@ namespace hgl
{ {
if(fp==-1)return(false); if(fp==-1)return(false);
if(mode==fomOnlyRead)return(false); if(mode==FileOpenMode::OnlyRead)return(false);
return(true); return(true);
} }
@@ -100,7 +100,7 @@ namespace hgl
bool FileAccess::CanSeek() const bool FileAccess::CanSeek() const
{ {
if(fp==-1)return(false); if(fp==-1)return(false);
if(mode<fomCreate||mode>=fomAppend)return(false); if(mode<FileOpenMode::Create||mode>=FileOpenMode::Append)return(false);
return(true); return(true);
} }
@@ -131,8 +131,8 @@ namespace hgl
{ {
if(fp==-1)return(-1); if(fp==-1)return(-1);
if(mode!=fomOnlyRead if(mode!=FileOpenMode::OnlyRead
&&mode!=fomReadWrite) &&mode!=FileOpenMode::ReadWrite)
return(-1); return(-1);
return GetSize()-Tell(); return GetSize()-Tell();

View File

@@ -26,7 +26,7 @@ namespace hgl
file=new FileAccess(); file=new FileAccess();
if(!file->Open(filename,fomOnlyRead)) if(!file->Open(filename,FileOpenMode::OnlyRead))
{ {
file=nullptr; file=nullptr;
return(false); return(false);

View File

@@ -27,7 +27,7 @@ namespace hgl
file=new FileAccess(); file=new FileAccess();
if(!file->Open(filename,fomReadWrite)) if(!file->Open(filename,FileOpenMode::ReadWrite))
{ {
file=nullptr; file=nullptr;
return(false); return(false);
@@ -42,19 +42,19 @@ namespace hgl
file=nullptr; file=nullptr;
} }
int64 RandomAccessFile::Read (void *buf,int64 size) {return file?file->Read(buf,size):-1;} int64 RandomAccessFile::Read (void *buf,int64 size) {return file?file->Read(buf,size):-1;}
int64 RandomAccessFile::Write (const void *buf,int64 size) {return file?file->Write(buf,size):-1;} int64 RandomAccessFile::Write (const void *buf,int64 size) {return file?file->Write(buf,size):-1;}
bool RandomAccessFile::CanSeek ()const {return file?file->CanSeek():false;} bool RandomAccessFile::CanSeek ()const {return file?file->CanSeek():false;}
bool RandomAccessFile::CanRestart()const {return file?file->CanRestart():false;} bool RandomAccessFile::CanRestart()const {return file?file->CanRestart():false;}
bool RandomAccessFile::CanSize ()const {return file?file->CanSize():false;} bool RandomAccessFile::CanSize ()const {return file?file->CanSize():false;}
int64 RandomAccessFile::Tell ()const {return file?file->Tell():-1;} int64 RandomAccessFile::Tell ()const {return file?file->Tell():-1;}
int64 RandomAccessFile::GetSize () {return file?file->GetSize():-1;} int64 RandomAccessFile::GetSize () {return file?file->GetSize():-1;}
bool RandomAccessFile::Restart () {return file?file->Restart():false;} bool RandomAccessFile::Restart () {return file?file->Restart():false;}
int64 RandomAccessFile::Seek (int64 off,SeekOrigin so) {return file?file->Seek(off,so):-1;} int64 RandomAccessFile::Seek (int64 off,SeekOrigin so) {return file?file->Seek(off,so):-1;}
int64 RandomAccessFile::Read (int64 off,void *buf,int64 size) {return file?file->Read(off,buf,size):-1;} int64 RandomAccessFile::Read (int64 off,void *buf,int64 size) {return file?file->Read(off,buf,size):-1;}
int64 RandomAccessFile::Write (int64 off,const void *buf,int64 size) {return file?file->Write(off,buf,size):-1;} int64 RandomAccessFile::Write (int64 off,const void *buf,int64 size) {return file?file->Write(off,buf,size):-1;}
}//namespace io }//namespace io
}//namespace hgl }//namespace hgl