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
{
enum FileOpenMode ///文件访问模式枚举
enum class FileOpenMode ///文件访问模式枚举
{
fomNone=0,
None=0,
fomCreate, ///<创建文件,如存在则失败
fomCreateTrunc, ///<强制创建,如存在则抹掉
fomCreateTemp,
fomOnlyRead, ///<只读方式
fomOnlyWrite, ///<只写方式
fomReadWrite, ///<可读可写
fomAppend, ///<追加模式
Create, ///<创建文件,如存在则失败
CreateTrunc, ///<强制创建,如存在则抹掉
CreateTemp,
OnlyRead, ///<只读方式
OnlyWrite, ///<只写方式
ReadWrite, ///<可读可写
Append, ///<追加模式
fomEnd
End
};//enum FileOpenMode
/**
@@ -44,12 +44,12 @@ namespace hgl
virtual ~FileAccess();
virtual bool Open (const OSString &,FileOpenMode fom); ///<以指定模式打开一个文件
virtual bool Create(const OSString &fn){return Open(fn,fomCreate);} ///<创建一个新文件,如文件已存在则创建失败
virtual bool CreateTrunc(const OSString &fn){return Open(fn,fomCreateTrunc);} ///<创建一个新文件,如文件已存在则抹消它
virtual bool OpenRead(const OSString &fn){return Open(fn,fomOnlyRead);} ///<以只读模式打开一个文件
virtual bool OpenWrite(const OSString &fn){return Open(fn,fomOnlyWrite);} ///<以只写模式打开一个文件
virtual bool OpenReadWrite(const OSString &fn){return Open(fn,fomReadWrite);} ///<以读写模式打开一个文件
virtual bool CreateTemp();
virtual bool Create (const OSString &fn){return Open(fn,FileOpenMode::Create);} ///<创建一个新文件,如文件已存在则创建失败
virtual bool CreateTrunc (const OSString &fn){return Open(fn,FileOpenMode::CreateTrunc);} ///<创建一个新文件,如文件已存在则抹消它
virtual bool OpenRead (const OSString &fn){return Open(fn,FileOpenMode::OnlyRead);} ///<以只读模式打开一个文件
virtual bool OpenWrite (const OSString &fn){return Open(fn,FileOpenMode::OnlyWrite);} ///<以只写模式打开一个文件
virtual bool OpenReadWrite (const OSString &fn){return Open(fn,FileOpenMode::ReadWrite);} ///<以读写模式打开一个文件
virtual bool CreateTemp (); ///<创建一个临时文件
virtual void Close(); ///<关闭文件
virtual void CloseRead(); ///<仅关闭读取

View File

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

View File

@@ -29,7 +29,7 @@ namespace hgl
}
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 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(BASE_TYPE_SOURCE
# DataType/Info.cpp
# DataType/BitArray.cpp
DataType/Color.cpp
DataType/Color3f.cpp
DataType/Color4f.cpp
# DataType/FontInfo.cpp
DataType/StringList.cpp
DataType/Endian.cpp)
##Color--------------------------------------------------------
SET(COLOR_HEADER_FILES ${TYPE_INCLUDE_PATH}/Color.h
${TYPE_INCLUDE_PATH}/Color3f.h
${TYPE_INCLUDE_PATH}/Color4f.h)
SOURCE_GROUP("DataType\\Template" FILES ${TYPE_TEMPLATE_HEADER})
SOURCE_GROUP("DataType" FILES ${BASE_TYPE_SOURCE})
SET(COLOR_SOURCE_FILES Color/Color.cpp
Color/Color3f.cpp
Color/Color4f.cpp)
SET(BASE_IO_SOURCE
SOURCE_GROUP("Datatype\\Color\\Header Files" FILES ${COLOR_HEADER_FILES})
SOURCE_GROUP("Datatype\\Color\\Source Files" FILES ${COLOR_SOURCE_FILES})
##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(TEXT_HEADER_FILES ${CMCORE_ROOT_INCLUDE_PATH}/hgl/Endian.h
${CMCORE_ROOT_INCLUDE_PATH}/hgl/CodePage.h
${TYPE_INCLUDE_PATH}/UnicodeBlocks.h
${TYPE_INCLUDE_PATH}/StrChar.h)
SET(TEXT_SOURCE_FILES Text/Endian.cpp
Text/CodePage.cpp
Text/UnicodeBlocks.cpp
Text/StringList.cpp)
SOURCE_GROUP("Text\\String" FILES ${STRING_HEADER_FILES}
Text/StringList.cpp)
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
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/IOType.cpp
IO/RandomAccessFile.cpp
IO/TextOutputStream.cpp)
IO/RandomAccessFile.cpp)
SOURCE_GROUP("IO" FILES ${BASE_IO_SOURCE})
SET(BASE_FILE_SYSTEM_SOURCE
FileSystem/FileSystem.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 ${BASE_FILE_SYSTEM_SOURCE})
SOURCE_GROUP("FileSystem" FILES ${FILESYSTEM_HEADER_FILES} ${FILESYSTEM_SOURCE_FILES})
SET(BASE_OTHER_SOURCE
Other/CodePage.cpp
Other/UnicodeBlocks.cpp
Other/DateTime.cpp
# Other/ExpendString.cpp
Other/ThreadFunc.cpp
Other/TimeCount.cpp
Other/TimeVal.cpp)
SET(BASE_TIME_HEADER_FILES ${TYPE_INCLUDE_PATH}/DateTime.h
${CMCORE_ROOT_INCLUDE_PATH}/hgl/Time.h)
SOURCE_GROUP("Other" FILES ${BASE_OTHER_SOURCE})
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_SOURCE PlugIn/*.cpp)
@@ -58,11 +128,25 @@ SOURCE_GROUP("Log\\Header Files" FILES ${BASE_LOG_HEADER})
SOURCE_GROUP("Log\\Source Files" FILES ${BASE_LOG_SOURCE})
add_cm_library(CMCore "CM" #${SYSTEM_INFO_SOURCE}
${COLOR_HEADER_FILES}
${COLOR_SOURCE_FILES}
${STRING_HEADER_FILES}
${TEXT_HEADER_FILES}
${TEXT_SOURCE_FILES}
${TYPE_TEMPLATE_HEADER}
${BASE_TYPE_SOURCE}
${BASE_IO_SOURCE}
${BASE_FILE_SYSTEM_SOURCE}
${BASE_OTHER_SOURCE}
${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}

View File

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

View File

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

View File

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