Skip to content

Commit

Permalink
Updated a version that has some bugs. Not complete.
Browse files Browse the repository at this point in the history
  • Loading branch information
ax-6 committed Aug 12, 2024
1 parent 09d4dc5 commit 0e2f3ee
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 28 deletions.
14 changes: 7 additions & 7 deletions aqvm/base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@ include_directories(${PROJECT_SOURCE_DIR})
set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/base.c)

add_subdirectory(file)
add_subdirectory(time)
add_subdirectory(process)
add_subdirectory(threading)
add_subdirectory(hash)
add_subdirectory(io)
add_subdirectory(linked_list)
add_subdirectory(logging)
add_subdirectory(process)
add_subdirectory(threading)
add_subdirectory(time)

add_library(AqvmBase STATIC ${SOURCES})

target_link_libraries(AqvmBase PRIVATE AqvmBaseFile)
target_link_libraries(AqvmBase PRIVATE AqvmBaseTime)
target_link_libraries(AqvmBase PRIVATE AqvmBaseProcess)
target_link_libraries(AqvmBase PRIVATE AqvmBaseThreading)
target_link_libraries(AqvmBase PRIVATE AqvmBaseHash)
target_link_libraries(AqvmBase PRIVATE AqvmBaseIo)
target_link_libraries(AqvmBase PRIVATE AqvmBaseLinkedList)
target_link_libraries(AqvmBase PRIVATE AqvmBaseLogging)
target_link_libraries(AqvmBase PRIVATE AqvmBaseLogging)
target_link_libraries(AqvmBase PRIVATE AqvmBaseProcess)
target_link_libraries(AqvmBase PRIVATE AqvmBaseThreading)
target_link_libraries(AqvmBase PRIVATE AqvmBaseTime)
3 changes: 2 additions & 1 deletion aqvm/base/file/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,5 @@ if (WIN32)
target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileWindows)
endif()

target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileIdentifier)
target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseFileIdentifier)
target_link_libraries(AqvmBaseFile PRIVATE AqvmBaseThreadingFileLock)
2 changes: 1 addition & 1 deletion aqvm/base/file/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ struct AqvmBaseFile_File* AqvmBaseFile_fopen(const char* filename,
return NULL;
}

if (AqvmBaseFileIdentifier_GetIdentifier(filename, &stream->identifier) !=
if (AqvmBaseFileIdentifier_GetIdentifier(filename, stream->identifier) !=
0) {
// TODO
fclose(stream->file);
Expand Down
7 changes: 4 additions & 3 deletions aqvm/base/file/identifier/unix/identifier.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,17 @@ uint32_t AqvmBaseFileIdentifierUnix_GetIdentifierHash(
}

bool AqvmBaseFileIdentifierUnix_IsEqual(
const AqvmBaseFileIdentifier_Identifier* identifier1,
const AqvmBaseFileIdentifier_Identifier* identifier2) {
const AqvmBaseFileIdentifierUnix_Identifier* identifier1,
const AqvmBaseFileIdentifierUnix_Identifier* identifier2) {
if (identifier1 == NULL || identifier2 == NULL) {
// TODO
return false;
}

if (identifier1->st_dev == identifier2->st_dev ||
identifier1->st_ino == identifier2->st_ino) {
return true;
return true;
}
return false;
}
#endif
6 changes: 2 additions & 4 deletions aqvm/base/file/identifier/unix/identifier.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
#include <sys/stat.h>
#include <sys/types.h>

#include "aqvm/base/file/file.h"

typedef struct {
dev_t st_dev;
ino_t st_ino;
Expand All @@ -25,8 +23,8 @@ uint32_t AqvmBaseFileIdentifierUnix_GetIdentifierHash(
const AqvmBaseFileIdentifierUnix_Identifier* identifier);

bool AqvmBaseFileIdentifierUnix_IsEqual(
const AqvmBaseFileIdentifier_Identifier* identifier1,
const AqvmBaseFileIdentifier_Identifier* identifier2);
const AqvmBaseFileIdentifierUnix_Identifier* identifier1,
const AqvmBaseFileIdentifierUnix_Identifier* identifier2);

#endif

Expand Down
4 changes: 2 additions & 2 deletions aqvm/base/file/identifier/windows/identifier.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ uint32_t AqvmBaseFileIdentifierWindows_GetIdentifierHash(
}

bool AqvmBaseFileIdentifierWindows_IsEqual(
const AqvmBaseFileIdentifier_Identifier* identifier1,
const AqvmBaseFileIdentifier_Identifier* identifier2) {
const AqvmBaseFileIdentifierWindows_Identifier* identifier1,
const AqvmBaseFileIdentifierWindows_Identifier* identifier2) {
if (identifier1 == NULL || identifier2 == NULL) {
// TODO
return false;
Expand Down
6 changes: 2 additions & 4 deletions aqvm/base/file/identifier/windows/identifier.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
#include <stdint.h>
#include <windows.h>

#include "aqvm/base/file/file.h"

typedef struct {
DWORD dwVolumeSerialNumber;
DWORD nFileIndexHigh;
Expand All @@ -25,8 +23,8 @@ uint32_t AqvmBaseFileIdentifierWindows_GetIdentifierHash(
const AqvmBaseFileIdentifierWindows_Identifier* identifier);

bool AqvmBaseFileIdentifierWindows_IsEqual(
const AqvmBaseFileIdentifier_Identifier* identifier1,
const AqvmBaseFileIdentifier_Identifier* identifier2);
const AqvmBaseFileIdentifierWindows_Identifier* identifier1,
const AqvmBaseFileIdentifierWindows_Identifier* identifier2);

#endif
#endif
10 changes: 6 additions & 4 deletions aqvm/base/linked_list/linked_list.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,13 @@ int AqvmBaseLinkedList_CloseLinkedList(
return -1;
}

struct AqvmBaseLinkedList_Node* delete_node = list->head;
struct AqvmBaseLinkedList_Node* next_node = NULL;
while (list->capacity > 0) {
if (AqvmBaseLinkedList_DeleteNode(list, 0) != 0) {
// TODO
return -2;
}
next_node = delete_node->next;
free(delete_node);
delete_node = next_node;
--list->capacity;
}
return 0;
}
Expand Down
10 changes: 8 additions & 2 deletions aqvm/base/threading/file_lock/file_lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,17 @@ int AqvmBaseThreadingFileLock_AddFileLock(struct AqvmBaseFile_File* file) {
}

int AqvmBaseThreadingFileLock_RemoveFileLock(struct AqvmBaseFile_File* file) {
// TODO
if (file == NULL) {
if (file == NULL || file->lock == NULL || file->lock->lock_count == 0) {
// TODO
return -1;
}

--file->lock->lock_count;
/*if (file->lock->lock_count = 0) {
AqvmBaseLinkedList_DeleteNode(AqvmBaseLinkedList_GetData(
&AqvmBaseThreadingFileLock_fileLockTable.data,
AqvmBaseFileIdentifier_GetIdentifierHash(file->identifier) % 1024));
}*/
}

struct AqvmBaseFileReadWriteLock_ReadWriteLock*
Expand Down

0 comments on commit 0e2f3ee

Please sign in to comment.