doc: add documentation
- add documentation for CKDefines, CKGlobals and VxMemoryMappedFile. - fix build issue in VxMemoryMappedFile. - add file size limitation in VxMemoryMappedFile. File whose size exceed the maximum value can not be opened.
This commit is contained in:
@ -5,9 +5,9 @@
|
||||
|
||||
namespace LibCmo::CK2 {
|
||||
|
||||
#pragma region Preregistred Managers
|
||||
#pragma region Preregistred Manager GUIDs
|
||||
|
||||
// Virtools Managers GUID second data is 0
|
||||
// Virtools Managers GUID second DWORD must be 0
|
||||
|
||||
constexpr const CKDWORD OBJECT_MANAGER_GUID1 = 0x7cbb3b91;
|
||||
constexpr const CKDWORD ATTRIBUTE_MANAGER_GUID1 = 0x3d242466;
|
||||
@ -26,26 +26,26 @@ namespace LibCmo::CK2 {
|
||||
constexpr const CKDWORD PATH_MANAGER_GUID1 = 0x15fd54b9;
|
||||
constexpr const CKDWORD VARIABLE_MANAGER_GUID1 = 0x98cc3cc9;
|
||||
|
||||
constexpr const CKGUID OBJECT_MANAGER_GUID{ OBJECT_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID ATTRIBUTE_MANAGER_GUID{ ATTRIBUTE_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID MESSAGE_MANAGER_GUID{ MESSAGE_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID TIME_MANAGER_GUID{ TIME_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID SOUND_MANAGER_GUID{ SOUND_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID MIDI_MANAGER_GUID{ MIDI_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID INPUT_MANAGER_GUID{ INPUT_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID BEHAVIOR_MANAGER_GUID{ BEHAVIOR_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID FLOOR_MANAGER_GUID{ FLOOR_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID COLLISION_MANAGER_GUID{ COLLISION_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID GRID_MANAGER_GUID{ GRID_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID INTERFACE_MANAGER_GUID{ INTERFACE_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID RENDER_MANAGER_GUID{ RENDER_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID PARAMETER_MANAGER_GUID{ PARAMETER_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID PATH_MANAGER_GUID{ PATH_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID VARIABLE_MANAGER_GUID{ VARIABLE_MANAGER_GUID1 ,0 };
|
||||
constexpr const CKGUID OBJECT_MANAGER_GUID { OBJECT_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID ATTRIBUTE_MANAGER_GUID { ATTRIBUTE_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID MESSAGE_MANAGER_GUID { MESSAGE_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID TIME_MANAGER_GUID { TIME_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID SOUND_MANAGER_GUID { SOUND_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID MIDI_MANAGER_GUID { MIDI_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID INPUT_MANAGER_GUID { INPUT_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID BEHAVIOR_MANAGER_GUID { BEHAVIOR_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID FLOOR_MANAGER_GUID { FLOOR_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID COLLISION_MANAGER_GUID { COLLISION_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID GRID_MANAGER_GUID { GRID_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID INTERFACE_MANAGER_GUID { INTERFACE_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID RENDER_MANAGER_GUID { RENDER_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID PARAMETER_MANAGER_GUID { PARAMETER_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID PATH_MANAGER_GUID { PATH_MANAGER_GUID1, 0 };
|
||||
constexpr const CKGUID VARIABLE_MANAGER_GUID { VARIABLE_MANAGER_GUID1, 0 };
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Misc Constant
|
||||
#pragma region Misc Constant Variables
|
||||
|
||||
/**
|
||||
* @brief The identifier of Virtools file.
|
||||
@ -65,8 +65,7 @@ namespace LibCmo::CK2 {
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Common Used Struct
|
||||
|
||||
// a stupid forward decl to remove something
|
||||
|
||||
/**
|
||||
* @brief Storage class for filename extensions
|
||||
*/
|
||||
@ -97,10 +96,10 @@ namespace LibCmo::CK2 {
|
||||
|
||||
void SetExt(CKSTRING s) {
|
||||
if (s == nullptr) {
|
||||
m_Data[0] = '\0';
|
||||
m_Data[0] = u8'\0';
|
||||
} else {
|
||||
if (s[0] == '.') ++s; // skip dot
|
||||
size_t len = std::strlen(s);
|
||||
if (s[0] == u8'.') ++s; // skip dot
|
||||
CKDWORD len = CKStrLen(s);
|
||||
if (len > (c_DataLen - 1)) len = c_DataLen - 1;
|
||||
std::memcpy(m_Data, s, len);
|
||||
}
|
||||
@ -122,13 +121,13 @@ namespace LibCmo::CK2 {
|
||||
static constexpr size_t c_DataLen = 4u;
|
||||
CKCHAR m_Data[c_DataLen];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* The struct describe the bitmap handler's infomation,
|
||||
* including its GUID and supported file extension.
|
||||
* This struct also will store some parameters related to bitmap handler,
|
||||
* such as jpeg compress level and etc. But currently there are no
|
||||
* such parameters.
|
||||
* @brief Bitmap readers image description
|
||||
* @details
|
||||
* The struct describe the bitmap handler's infomation, including its GUID and supported file extension.
|
||||
* This struct also will store some parameters related to bitmap handler, such as jpeg compress level and etc.
|
||||
* But currently there are no such parameters.
|
||||
*/
|
||||
class CKBitmapProperties {
|
||||
public:
|
||||
|
@ -122,6 +122,14 @@ namespace LibCmo::CK2 {
|
||||
return strl[0] == u8'\0';
|
||||
}
|
||||
|
||||
CKDWORD CKStrLen(CKSTRING strl) {
|
||||
if (strl == nullptr) return 0u;
|
||||
size_t len = std::strlen(YYCC::EncodingHelper::ToOrdinary(strl));
|
||||
if (len > static_cast<size_t>(std::numeric_limits<CKDWORD>::max()))
|
||||
throw RuntimeException("Exceed maximum value when cast size_t to CKDWORD.");
|
||||
return static_cast<CKDWORD>(len);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region CKClass Registration
|
||||
|
@ -82,6 +82,14 @@ namespace LibCmo::CK2 {
|
||||
* @remarks nullptr string is seen as empty string.
|
||||
*/
|
||||
bool CKStrEmpty(CKSTRING strl);
|
||||
/**
|
||||
* @brief Get the length of given string.
|
||||
* @param[in] strl String for getting length. nullptr is allowed but not suggested.
|
||||
* @return String length in UTF8 code unit.
|
||||
* @remarks nullptr string will return 0 instead.
|
||||
* @exception RuntimeException Raised if the length of string exceed the maximum value of CKDWORD.
|
||||
*/
|
||||
CKDWORD CKStrLen(CKSTRING strl);
|
||||
|
||||
// ========== Class registration utilities ==========
|
||||
|
||||
|
Reference in New Issue
Block a user