From 882b405ff1b3ca5bfca6ae7da62eb8707e504106 Mon Sep 17 00:00:00 2001 From: ax-6 Date: Sat, 3 Aug 2024 23:01:05 +0800 Subject: [PATCH] Changed the name of file_id to identifier. --- aqvm/base/file/CMakeLists.txt | 4 +- aqvm/base/file/file_id/file_id.c | 57 ------------------- aqvm/base/file/file_id/file_id.h | 29 ---------- aqvm/base/file/file_id/unix/file_id.c | 47 --------------- aqvm/base/file/file_id/unix/file_id.h | 28 --------- aqvm/base/file/file_id/windows/file_id.h | 27 --------- .../{file_id => identifier}/CMakeLists.txt | 8 +-- aqvm/base/file/identifier/identifier.c | 57 +++++++++++++++++++ aqvm/base/file/identifier/identifier.h | 29 ++++++++++ .../unix}/CMakeLists.txt | 4 +- aqvm/base/file/identifier/unix/identifier.c | 47 +++++++++++++++ aqvm/base/file/identifier/unix/identifier.h | 28 +++++++++ .../windows}/CMakeLists.txt | 4 +- .../windows/identifier.c} | 26 ++++----- .../base/file/identifier/windows/identifier.h | 27 +++++++++ 15 files changed, 211 insertions(+), 211 deletions(-) delete mode 100644 aqvm/base/file/file_id/file_id.c delete mode 100644 aqvm/base/file/file_id/file_id.h delete mode 100644 aqvm/base/file/file_id/unix/file_id.c delete mode 100644 aqvm/base/file/file_id/unix/file_id.h delete mode 100644 aqvm/base/file/file_id/windows/file_id.h rename aqvm/base/file/{file_id => identifier}/CMakeLists.txt (56%) create mode 100644 aqvm/base/file/identifier/identifier.c create mode 100644 aqvm/base/file/identifier/identifier.h rename aqvm/base/file/{file_id/windows => identifier/unix}/CMakeLists.txt (67%) create mode 100644 aqvm/base/file/identifier/unix/identifier.c create mode 100644 aqvm/base/file/identifier/unix/identifier.h rename aqvm/base/file/{file_id/unix => identifier/windows}/CMakeLists.txt (67%) rename aqvm/base/file/{file_id/windows/file_id.c => identifier/windows/identifier.c} (54%) create mode 100644 aqvm/base/file/identifier/windows/identifier.h diff --git a/aqvm/base/file/CMakeLists.txt b/aqvm/base/file/CMakeLists.txt index 1426571..b48266a 100644 --- a/aqvm/base/file/CMakeLists.txt +++ b/aqvm/base/file/CMakeLists.txt @@ -12,7 +12,7 @@ if (WIN32) add_subdirectory(windows) endif() -add_subdirectory(file_id) +add_subdirectory(identifier) add_library(AqvmBaseFile STATIC ${SOURCES}) @@ -20,4 +20,4 @@ if (WIN32) target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileWindows) endif() -target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileFileId) \ No newline at end of file +target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileIdentifier) \ No newline at end of file diff --git a/aqvm/base/file/file_id/file_id.c b/aqvm/base/file/file_id/file_id.c deleted file mode 100644 index 1e6706c..0000000 --- a/aqvm/base/file/file_id/file_id.c +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2024 AQ author, All Rights Reserved. -// This program is licensed under the AQ License. You can find the AQ license in -// the root directory. - -#include "aqvm/base/file/file_id/file_id.h" - -#include - -#include "aqvm/base/file/file.h" - -#ifdef __unix__ -#include "aqvm/base/file/file_id/unix/file_id.h" -#elif _WIN32 -#include "aqvm/base/file/file_id/windows/file_id.h" -#endif - -int AqvmBaseFileFileId_GetFileId(const char* filename, - AqvmBaseFileFileId_FileId* file_id) { - if (filename == NULL || file_id == NULL) { - // TODO - return -1; - } - -#ifdef __unix__ - if (AqvmBaseFileFileIdUnix_GetFileId(filename, file_id) != 0) { - // TODO - return -2; - } -#elif _WIN32 - if (AqvmBaseFileFileIdWindows_GetFileId(filename, file_id) != 0) { - // TODO - return -3; - } -#else - // TODO - return -4; -#endif - - return 0; -} - -uint32_t AqvmBaseFileFileId_GetFileIdHash( - const AqvmBaseFileFileId_FileId* file_id) { - if (file_id == NULL) { - // TODO - return 0; - } - -#ifdef __unix__ - return AqvmBaseFileFileIdUnix_GetFileIdHash(file_id); -#elif _WIN32 - return AqvmBaseFileFileIdWindows_GetFileIdHash(file_id); -#else - // TODO - return 0; -#endif -} \ No newline at end of file diff --git a/aqvm/base/file/file_id/file_id.h b/aqvm/base/file/file_id/file_id.h deleted file mode 100644 index 0e97202..0000000 --- a/aqvm/base/file/file_id/file_id.h +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2024 AQ author, All Rights Reserved. -// This program is licensed under the AQ License. You can find the AQ license in -// the root directory. - -#ifndef AQVM_BASE_FILE_FILE_ID_FILE_ID_H_ -#define AQVM_BASE_FILE_FILE_ID_FILE_ID_H_ - -#include - -#ifdef __unix__ -#include "aqvm/base/file/file_id/unix/file_id.h" -#elif _WIN32 -#include "aqvm/base/file/file_id/windows/file_id.h" -#endif - -#ifdef __unix__ -typedef AqvmBaseFileFileIdUnix_FileId AqvmBaseFileFileId_FileId; -#elif _WIN32 -typedef AqvmBaseFileFileIdWindows_FileId AqvmBaseFileFileId_FileId; -#else -typedef void AqvmBaseFileFileId_FileId; -#endif - -int AqvmBaseFileFileId_GetFileId(const char* filename, - AqvmBaseFileFileId_FileId* file_id); - -uint32_t AqvmBaseFileFileId_GetFileIdHash(const AqvmBaseFileFileId_FileId* file_id); - -#endif \ No newline at end of file diff --git a/aqvm/base/file/file_id/unix/file_id.c b/aqvm/base/file/file_id/unix/file_id.c deleted file mode 100644 index d251b18..0000000 --- a/aqvm/base/file/file_id/unix/file_id.c +++ /dev/null @@ -1,47 +0,0 @@ -#ifdef __unix__ -// Copyright 2024 AQ author, All Rights Reserved. -// This program is licensed under the AQ License. You can find the AQ license in -// the root directory. - -#include "aqvm/base/file/file_id/unix/file_id.h" - -#include -#include - -#include "aqvm/base/hash/hash.h" - -int AqvmBaseFileFileIdUnix_GetFileId(const char* filename, - AqvmBaseFileFileIdUnix_FileId* file_id) { - if (filename == NULL || file_id == NULL) { - // TODO - return -1; - } - - struct stat* file_info; - - if (stat(filename, file_info) != 0) { - // TODO - return -2; - } - - file_id->st_dev = file_info->st_dev; - file_id->st_ino = file_info->st_ino; - - return 0; -} - -uint32_t AqvmBaseFileFileIdUnix_GetFileIdHash( - const AqvmBaseFileFileIdUnix_FileId* file_id) { - if (file_id == NULL) { - // TODO - return 0; - } - uint32_t hash[2]; - - hash[0] = file_id->st_dev; - hash[1] = file_id->st_ino; - - return AqvmBaseHash_HashUnsignedIntArray(hash, 2); -} - -#endif \ No newline at end of file diff --git a/aqvm/base/file/file_id/unix/file_id.h b/aqvm/base/file/file_id/unix/file_id.h deleted file mode 100644 index 2af6601..0000000 --- a/aqvm/base/file/file_id/unix/file_id.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifdef __unix__ -// Copyright 2024 AQ author, All Rights Reserved. -// This program is licensed under the AQ License. You can find the AQ license in -// the root directory. - -#ifndef AQVM_BASE_FILE_FILE_ID_UNIX_FILE_ID_H_ -#define AQVM_BASE_FILE_FILE_ID_UNIX_FILE_ID_H_ - -#include -#include -#include - -#include "aqvm/base/file/file.h" - -typedef struct { - dev_t st_dev; - ino_t st_ino; -} AqvmBaseFileFileIdUnix_FileId; - -int AqvmBaseFileFileIdUnix_GetFileId(const char* filename, - AqvmBaseFileFileIdUnix_FileId* file_id); - -uint32_t AqvmBaseFileFileIdUnix_GetFileIdHash( - const AqvmBaseFileFileIdUnix_FileId* file_id); - -#endif - -#endif \ No newline at end of file diff --git a/aqvm/base/file/file_id/windows/file_id.h b/aqvm/base/file/file_id/windows/file_id.h deleted file mode 100644 index 4289d37..0000000 --- a/aqvm/base/file/file_id/windows/file_id.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifdef _WIN32 -// Copyright 2024 AQ author, All Rights Reserved. -// This program is licensed under the AQ License. You can find the AQ license in -// the root directory. - -#ifndef AQVM_BASE_FILE_FILE_ID_WINDOWS_FILE_ID_H_ -#define AQVM_BASE_FILE_FILE_ID_WINDOWS_FILE_ID_H_ - -#include -#include - -#include "aqvm/base/file/file.h" - -typedef struct { - DWORD dwVolumeSerialNumber; - DWORD nFileIndexHigh; - DWORD nFileIndexLow; -} AqvmBaseFileFileIdWindows_FileId; - -int AqvmBaseFileFileIdWindows_GetFileId( - const char* filename, AqvmBaseFileFileIdWindows_FileId* file_id); - -uint32_t AqvmBaseFileFileIdWindows_GetFileIdHash( - const AqvmBaseFileFileIdWindows_FileId* file_id); - -#endif -#endif \ No newline at end of file diff --git a/aqvm/base/file/file_id/CMakeLists.txt b/aqvm/base/file/identifier/CMakeLists.txt similarity index 56% rename from aqvm/base/file/file_id/CMakeLists.txt rename to aqvm/base/file/identifier/CMakeLists.txt index 2981686..d466ebe 100644 --- a/aqvm/base/file/file_id/CMakeLists.txt +++ b/aqvm/base/file/identifier/CMakeLists.txt @@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.10) include_directories(${PROJECT_SOURCE_DIR}) -set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/file_id.c) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/identifier.c) if(UNIX) add_subdirectory(unix) @@ -14,10 +14,10 @@ elseif (WIN32) add_subdirectory(windows) endif() -add_library(AqvmBaseFileFileId STATIC ${SOURCES}) +add_library(AqvmBaseFileIdentifier STATIC ${SOURCES}) if(unix) -target_link_libraries(AqvmBaseFileFileId PRIVATE AqvmBaseFileFileIdUnix) +target_link_libraries(AqvmBaseFileIdentifier PRIVATE AqvmBaseFileIdentifierUnix) elseif (WIN32) -target_link_libraries(AqvmBaseFileFileId PRIVATE AqvmBaseFileFileIdWindows) +target_link_libraries(AqvmBaseFileIdentifier PRIVATE AqvmBaseFileIdentifierWindows) endif() \ No newline at end of file diff --git a/aqvm/base/file/identifier/identifier.c b/aqvm/base/file/identifier/identifier.c new file mode 100644 index 0000000..b6a754e --- /dev/null +++ b/aqvm/base/file/identifier/identifier.c @@ -0,0 +1,57 @@ +// Copyright 2024 AQ author, All Rights Reserved. +// This program is licensed under the AQ License. You can find the AQ license in +// the root directory. + +#include "aqvm/base/file/identifier/identifier.h" + +#include + +#include "aqvm/base/file/file.h" + +#ifdef __unix__ +#include "aqvm/base/file/identifier/unix/identifier.h" +#elif _WIN32 +#include "aqvm/base/file/identifier/windows/identifier.h" +#endif + +int AqvmBaseFileIdentifier_GetIdentifier(const char* filename, + AqvmBaseFileIdentifier_Identifier* identifier) { + if (filename == NULL || identifier == NULL) { + // TODO + return -1; + } + +#ifdef __unix__ + if (AqvmBaseFileIdentifierUnix_GetIdentifier(filename, identifier) != 0) { + // TODO + return -2; + } +#elif _WIN32 + if (AqvmBaseFileIdentifierWindows_GetIdentifier(filename, identifier) != 0) { + // TODO + return -3; + } +#else + // TODO + return -4; +#endif + + return 0; +} + +uint32_t AqvmBaseFileIdentifier_GetIdentifierHash( + const AqvmBaseFileIdentifier_Identifier* identifier) { + if (identifier == NULL) { + // TODO + return 0; + } + +#ifdef __unix__ + return AqvmBaseFileIdentifierUnix_GetIdentifierHash(identifier); +#elif _WIN32 + return AqvmBaseFileIdentifierWindows_GetIdentifierHash(identifier); +#else + // TODO + return 0; +#endif +} \ No newline at end of file diff --git a/aqvm/base/file/identifier/identifier.h b/aqvm/base/file/identifier/identifier.h new file mode 100644 index 0000000..3fc5c4b --- /dev/null +++ b/aqvm/base/file/identifier/identifier.h @@ -0,0 +1,29 @@ +// Copyright 2024 AQ author, All Rights Reserved. +// This program is licensed under the AQ License. You can find the AQ license in +// the root directory. + +#ifndef AQVM_BASE_FILE_IDENTIFIER_IDENTIFIER_H_ +#define AQVM_BASE_FILE_IDENTIFIER_IDENTIFIER_H_ + +#include + +#ifdef __unix__ +#include "aqvm/base/file/identifier/unix/identifier.h" +#elif _WIN32 +#include "aqvm/base/file/identifier/windows/identifier.h" +#endif + +#ifdef __unix__ +typedef AqvmBaseFileIdentifierUnix_Identifier AqvmBaseFileIdentifier_Identifier; +#elif _WIN32 +typedef AqvmBaseFileIdentifierWindows_Identifier AqvmBaseFileIdentifier_Identifier; +#else +typedef void AqvmBaseFileIdentifier_Identifier; +#endif + +int AqvmBaseFileIdentifier_GetIdentifier(const char* filename, + AqvmBaseFileIdentifier_Identifier* identifier); + +uint32_t AqvmBaseFileIdentifier_GetIdentifierHash(const AqvmBaseFileIdentifier_Identifier* identifier); + +#endif \ No newline at end of file diff --git a/aqvm/base/file/file_id/windows/CMakeLists.txt b/aqvm/base/file/identifier/unix/CMakeLists.txt similarity index 67% rename from aqvm/base/file/file_id/windows/CMakeLists.txt rename to aqvm/base/file/identifier/unix/CMakeLists.txt index ff937c5..ee9794d 100644 --- a/aqvm/base/file/file_id/windows/CMakeLists.txt +++ b/aqvm/base/file/identifier/unix/CMakeLists.txt @@ -6,6 +6,6 @@ cmake_minimum_required(VERSION 3.10) include_directories(${PROJECT_SOURCE_DIR}) -set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/file_id.c) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/identifier.c) -add_library(AqvmBaseFileFileIdWindows STATIC ${SOURCES}) \ No newline at end of file +add_library(AqvmBaseFileIdentifierUnix STATIC ${SOURCES}) \ No newline at end of file diff --git a/aqvm/base/file/identifier/unix/identifier.c b/aqvm/base/file/identifier/unix/identifier.c new file mode 100644 index 0000000..35494af --- /dev/null +++ b/aqvm/base/file/identifier/unix/identifier.c @@ -0,0 +1,47 @@ +#ifdef __unix__ +// Copyright 2024 AQ author, All Rights Reserved. +// This program is licensed under the AQ License. You can find the AQ license in +// the root directory. + +#include "aqvm/base/file/identifier/unix/identifier.h" + +#include +#include + +#include "aqvm/base/hash/hash.h" + +int AqvmBaseFileIdentifierUnix_GetIdentifier(const char* filename, + AqvmBaseFileIdentifierUnix_Identifier* identifier) { + if (filename == NULL || identifier == NULL) { + // TODO + return -1; + } + + struct stat* file_info; + + if (stat(filename, file_info) != 0) { + // TODO + return -2; + } + + identifier->st_dev = file_info->st_dev; + identifier->st_ino = file_info->st_ino; + + return 0; +} + +uint32_t AqvmBaseFileIdentifierUnix_GetIdentifierHash( + const AqvmBaseFileIdentifierUnix_Identifier* identifier) { + if (identifier == NULL) { + // TODO + return 0; + } + uint32_t hash[2]; + + hash[0] = identifier->st_dev; + hash[1] = identifier->st_ino; + + return AqvmBaseHash_HashUnsignedIntArray(hash, 2); +} + +#endif \ No newline at end of file diff --git a/aqvm/base/file/identifier/unix/identifier.h b/aqvm/base/file/identifier/unix/identifier.h new file mode 100644 index 0000000..4a6ba5a --- /dev/null +++ b/aqvm/base/file/identifier/unix/identifier.h @@ -0,0 +1,28 @@ +#ifdef __unix__ +// Copyright 2024 AQ author, All Rights Reserved. +// This program is licensed under the AQ License. You can find the AQ license in +// the root directory. + +#ifndef AQVM_BASE_FILE_IDENTIFIER_UNIX_IDENTIFIER_H_ +#define AQVM_BASE_FILE_IDENTIFIER_UNIX_IDENTIFIER_H_ + +#include +#include +#include + +#include "aqvm/base/file/file.h" + +typedef struct { + dev_t st_dev; + ino_t st_ino; +} AqvmBaseFileIdentifierUnix_Identifier; + +int AqvmBaseFileIdentifierUnix_GetIdentifier(const char* filename, + AqvmBaseFileIdentifierUnix_Identifier* identifier); + +uint32_t AqvmBaseFileIdentifierUnix_GetIdentifierHash( + const AqvmBaseFileIdentifierUnix_Identifier* identifier); + +#endif + +#endif \ No newline at end of file diff --git a/aqvm/base/file/file_id/unix/CMakeLists.txt b/aqvm/base/file/identifier/windows/CMakeLists.txt similarity index 67% rename from aqvm/base/file/file_id/unix/CMakeLists.txt rename to aqvm/base/file/identifier/windows/CMakeLists.txt index e988de7..30d05f9 100644 --- a/aqvm/base/file/file_id/unix/CMakeLists.txt +++ b/aqvm/base/file/identifier/windows/CMakeLists.txt @@ -6,6 +6,6 @@ cmake_minimum_required(VERSION 3.10) include_directories(${PROJECT_SOURCE_DIR}) -set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/file_id.c) +set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/identifier.c) -add_library(AqvmBaseFileFileIdUnix STATIC ${SOURCES}) \ No newline at end of file +add_library(AqvmBaseFileIdentifierWindows STATIC ${SOURCES}) \ No newline at end of file diff --git a/aqvm/base/file/file_id/windows/file_id.c b/aqvm/base/file/identifier/windows/identifier.c similarity index 54% rename from aqvm/base/file/file_id/windows/file_id.c rename to aqvm/base/file/identifier/windows/identifier.c index 486e646..0ce9a04 100644 --- a/aqvm/base/file/file_id/windows/file_id.c +++ b/aqvm/base/file/identifier/windows/identifier.c @@ -3,15 +3,15 @@ // This program is licensed under the AQ License. You can find the AQ license in // the root directory. -#include "aqvm/base/file/file_id/windows/file_id.h" +#include "aqvm/base/file/identifier/windows/identifier.h" #include #include "aqvm/base/hash/hash.h" -int AqvmBaseFileFileIdWindows_GetFileId( - const char* filename, AqvmBaseFileFileIdWindows_FileId* file_id) { - if (filename == NULL || file_id == NULL) { +int AqvmBaseFileIdentifierWindows_GetIdentifier( + const char* filename, AqvmBaseFileIdentifierWindows_Identifier* identifier) { + if (filename == NULL || identifier == NULL) { // TODO return -1; } @@ -25,9 +25,9 @@ int AqvmBaseFileFileIdWindows_GetFileId( BY_HANDLE_FILE_INFORMATION file_info; if (GetFileInformationByHandle(handle_file, &file_info)) { - file_id->dwVolumeSerialNumber = file_info.dwVolumeSerialNumber; - file_id->nFileIndexHigh = file_info.nFileIndexHigh; - file_id->nFileIndexLow = file_info.nFileIndexLow; + identifier->dwVolumeSerialNumber = file_info.dwVolumeSerialNumber; + identifier->nFileIndexHigh = file_info.nFileIndexHigh; + identifier->nFileIndexLow = file_info.nFileIndexLow; } else { // TODO return -3; @@ -41,17 +41,17 @@ int AqvmBaseFileFileIdWindows_GetFileId( return 0; } -uint32_t AqvmBaseFileFileIdWindows_GetFileIdHash( - const AqvmBaseFileFileIdWindows_FileId* file_id) { - if (file_id == NULL) { +uint32_t AqvmBaseFileIdentifierWindows_GetIdentifierHash( + const AqvmBaseFileIdentifierWindows_Identifier* identifier) { + if (identifier == NULL) { // TODO return 0; } uint32_t hash[3]; - hash[0] = file_id->dwVolumeSerialNumber; - hash[1] = file_id->nFileIndexHigh; - hash[2] = file_id->nFileIndexLow; + hash[0] = identifier->dwVolumeSerialNumber; + hash[1] = identifier->nFileIndexHigh; + hash[2] = identifier->nFileIndexLow; return AqvmBaseHash_HashUnsignedIntArray(hash, 3); } diff --git a/aqvm/base/file/identifier/windows/identifier.h b/aqvm/base/file/identifier/windows/identifier.h new file mode 100644 index 0000000..f6ca9ae --- /dev/null +++ b/aqvm/base/file/identifier/windows/identifier.h @@ -0,0 +1,27 @@ +#ifdef _WIN32 +// Copyright 2024 AQ author, All Rights Reserved. +// This program is licensed under the AQ License. You can find the AQ license in +// the root directory. + +#ifndef AQVM_BASE_FILE_IDENTIFIER_WINDOWS_IDENTIFIER_H_ +#define AQVM_BASE_FILE_IDENTIFIER_WINDOWS_IDENTIFIER_H_ + +#include +#include + +#include "aqvm/base/file/file.h" + +typedef struct { + DWORD dwVolumeSerialNumber; + DWORD nFileIndexHigh; + DWORD nFileIndexLow; +} AqvmBaseFileIdentifierWindows_Identifier; + +int AqvmBaseFileIdentifierWindows_GetIdentifier( + const char* filename, AqvmBaseFileIdentifierWindows_Identifier* identifier); + +uint32_t AqvmBaseFileIdentifierWindows_GetIdentifierHash( + const AqvmBaseFileIdentifierWindows_Identifier* identifier); + +#endif +#endif \ No newline at end of file