Convert FileNode and ActionFileNode to pointer types.
This commit is contained in:
@@ -7,17 +7,17 @@
|
||||
#include "fileutil.h"
|
||||
#include "filenode.h"
|
||||
|
||||
FileNode *_freeFileNode = NULL;
|
||||
FileNode _freeFileNode = NULL;
|
||||
int _n_filenode = 0;
|
||||
#define FileNode_Block 1024
|
||||
FileNode *FileNode_Create() {
|
||||
FileNode *fileNode;
|
||||
FileNode FileNode_Create() {
|
||||
FileNode fileNode;
|
||||
|
||||
if (_freeFileNode == NULL) {
|
||||
FileNode *nodes;
|
||||
FileNode nodes;
|
||||
int i;
|
||||
// Allocate a block
|
||||
nodes = malloc(sizeof(FileNode) * FileNode_Block);
|
||||
nodes = malloc(sizeof(TFileNode) * FileNode_Block);
|
||||
if (nodes == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -49,8 +49,8 @@ FileNode *FileNode_Create() {
|
||||
return (fileNode);
|
||||
}
|
||||
|
||||
FileNode *FileNode_Copy(FileNode *fileNode) {
|
||||
FileNode *fileNodeNew;
|
||||
FileNode FileNode_Copy(FileNode fileNode) {
|
||||
FileNode fileNodeNew;
|
||||
|
||||
fileNodeNew = FileNode_Create();
|
||||
|
||||
@@ -65,10 +65,10 @@ FileNode *FileNode_Copy(FileNode *fileNode) {
|
||||
return fileNodeNew;
|
||||
}
|
||||
|
||||
void FileNode_Delete(FileNode *fn) {
|
||||
void FileNode_Delete(FileNode fn) {
|
||||
// Delete childs
|
||||
FileNode *fileNodeChildAux = fn->child;
|
||||
FileNode *fileNodeChild = fn->child;
|
||||
FileNode fileNodeChildAux = fn->child;
|
||||
FileNode fileNodeChild = fn->child;
|
||||
while (fileNodeChild) {
|
||||
fn->childCount--;
|
||||
fileNodeChildAux = fileNodeChild;
|
||||
@@ -86,7 +86,7 @@ void FileNode_Delete(FileNode *fn) {
|
||||
_n_filenode--;
|
||||
}
|
||||
|
||||
void FileNode_AddChild(FileNode *fileNode, FileNode *fileNodeChild) {
|
||||
void FileNode_AddChild(FileNode fileNode, FileNode fileNodeChild) {
|
||||
if (!fileNodeChild || !fileNode)
|
||||
return;
|
||||
fileNodeChild->next = fileNode->child;
|
||||
@@ -95,8 +95,8 @@ void FileNode_AddChild(FileNode *fileNode, FileNode *fileNodeChild) {
|
||||
fileNodeChild->parent = fileNode;
|
||||
}
|
||||
|
||||
void FileNode_SetStatusRec(FileNode *fileNode, FileStatus status) {
|
||||
FileNode *fileNodeChild;
|
||||
void FileNode_SetStatusRec(FileNode fileNode, FileStatus status) {
|
||||
FileNode fileNodeChild;
|
||||
fileNode->status = status;
|
||||
fileNodeChild = fileNode->child;
|
||||
while (fileNodeChild != NULL) {
|
||||
@@ -105,7 +105,7 @@ void FileNode_SetStatusRec(FileNode *fileNode, FileStatus status) {
|
||||
}
|
||||
}
|
||||
|
||||
void FileNode_GetPath_Rec(FileNode *fileNode, char **pathNode) {
|
||||
void FileNode_GetPath_Rec(FileNode fileNode, char **pathNode) {
|
||||
if (fileNode->parent) {
|
||||
pathNode[0] = fileNode->parent->name;
|
||||
FileNode_GetPath_Rec(fileNode->parent, pathNode + 1);
|
||||
@@ -115,7 +115,7 @@ void FileNode_GetPath_Rec(FileNode *fileNode, char **pathNode) {
|
||||
}
|
||||
}
|
||||
char tempPath[MaxPath];
|
||||
char *FileNode_GetPath(FileNode *fileNode, char *path) {
|
||||
char *FileNode_GetPath(FileNode fileNode, char *path) {
|
||||
char *pathNodes[MaxPathNodes];
|
||||
int levels, i;
|
||||
char *pathPtr = tempPath;
|
||||
@@ -135,7 +135,7 @@ char *FileNode_GetPath(FileNode *fileNode, char *path) {
|
||||
return tempPath;
|
||||
}
|
||||
|
||||
char *FileNode_GetFullPath(FileNode *fileNode, char *basePath, char *path) {
|
||||
char *FileNode_GetFullPath(FileNode fileNode, char *basePath, char *path) {
|
||||
char *pathNodes[MaxPath];
|
||||
int levels, i;
|
||||
char *pathPtr = tempPath;
|
||||
@@ -157,22 +157,22 @@ char *FileNode_GetFullPath(FileNode *fileNode, char *basePath, char *path) {
|
||||
return tempPath;
|
||||
}
|
||||
|
||||
void FileNode_LoadSize(FileNode *fileNode, char *file) {
|
||||
void FileNode_LoadSize(FileNode fileNode, char *file) {
|
||||
fileNode->flags |= FileFlag_HasSize;
|
||||
fileNode->size = File_GetSize(file);
|
||||
}
|
||||
|
||||
void FileNode_LoadTime(FileNode *fileNode, char *file) {
|
||||
void FileNode_LoadTime(FileNode fileNode, char *file) {
|
||||
fileNode->flags |= FileFlag_HasTime;
|
||||
fileNode->fileTime = FileTime_Get(file);
|
||||
}
|
||||
|
||||
void FileNode_LoadSizeAndTime(FileNode *fileNode, char *file) {
|
||||
void FileNode_LoadSizeAndTime(FileNode fileNode, char *file) {
|
||||
fileNode->flags |= FileFlag_HasSize | FileFlag_HasTime;
|
||||
File_GetSizeAndTime(file, &fileNode->size, &fileNode->fileTime);
|
||||
}
|
||||
|
||||
void FileNode_LoadCRC(FileNode *fileNode, char *filePath) {
|
||||
void FileNode_LoadCRC(FileNode fileNode, char *filePath) {
|
||||
FILE *file;
|
||||
file = fopen(filePath, "rb");
|
||||
if (!file) {
|
||||
@@ -183,7 +183,7 @@ void FileNode_LoadCRC(FileNode *fileNode, char *filePath) {
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void FileNode_SaveNode(FileNode *fileNode, FILE *file) {
|
||||
void FileNode_SaveNode(FileNode fileNode, FILE *file) {
|
||||
short nameLen;
|
||||
|
||||
// Write name
|
||||
@@ -219,7 +219,7 @@ void FileNode_SaveNode(FileNode *fileNode, FILE *file) {
|
||||
|
||||
// Write files of directory
|
||||
if (fileNode->flags & FileFlag_Directory) {
|
||||
FileNode *fileNodeChild;
|
||||
FileNode fileNodeChild;
|
||||
fwrite((void *)&fileNode->childCount, sizeof(fileNode->childCount), 1, file);
|
||||
fileNodeChild = fileNode->child;
|
||||
int cnt = 0;
|
||||
@@ -234,7 +234,7 @@ void FileNode_SaveNode(FileNode *fileNode, FILE *file) {
|
||||
}
|
||||
}
|
||||
|
||||
void FileNode_Save(FileNode *fileNode, char *filePath) {
|
||||
void FileNode_Save(FileNode fileNode, char *filePath) {
|
||||
FILE *file;
|
||||
char mark[5];
|
||||
int version;
|
||||
@@ -255,9 +255,9 @@ void FileNode_Save(FileNode *fileNode, char *filePath) {
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
FileNode *FileNode_LoadNode(FILE *file) {
|
||||
FileNode FileNode_LoadNode(FILE *file) {
|
||||
short nameLen;
|
||||
FileNode *fileNode;
|
||||
FileNode fileNode;
|
||||
int i;
|
||||
|
||||
fileNode = FileNode_Create();
|
||||
@@ -297,7 +297,8 @@ FileNode *FileNode_LoadNode(FILE *file) {
|
||||
|
||||
// Read files on directory
|
||||
if (fileNode->flags & FileFlag_Directory) {
|
||||
FileNode *fileNodeChildAux = NULL, *fileNodeChild;
|
||||
FileNode fileNodeChildAux = NULL;
|
||||
FileNode fileNodeChild;
|
||||
fread((void *)&fileNode->childCount, sizeof(fileNode->childCount), 1, file);
|
||||
for (i = 0; i < fileNode->childCount; i++) {
|
||||
fileNodeChild = FileNode_LoadNode(file);
|
||||
@@ -319,9 +320,9 @@ FileNode *FileNode_LoadNode(FILE *file) {
|
||||
return (fileNode);
|
||||
}
|
||||
|
||||
FileNode *FileNode_Load(char *filePath) {
|
||||
FileNode FileNode_Load(char *filePath) {
|
||||
FILE *file;
|
||||
FileNode *fileNode;
|
||||
FileNode fileNode;
|
||||
char mark[5];
|
||||
int version;
|
||||
|
||||
@@ -350,7 +351,7 @@ FileNode *FileNode_Load(char *filePath) {
|
||||
return (fileNode);
|
||||
}
|
||||
|
||||
void FileNode_PrintNode(FileNode *fileNode) {
|
||||
void FileNode_PrintNode(FileNode fileNode) {
|
||||
printff(FileNode_GetPath(fileNode, NULL));
|
||||
if (fileNode->flags & FileFlag_Normal) {
|
||||
printff(" File");
|
||||
@@ -382,8 +383,8 @@ void FileNode_PrintNode(FileNode *fileNode) {
|
||||
|
||||
}
|
||||
|
||||
void FileNode_Print(FileNode *fileNode) {
|
||||
FileNode *fileNodeAux = fileNode;
|
||||
void FileNode_Print(FileNode fileNode) {
|
||||
FileNode fileNodeAux = fileNode;
|
||||
int end = 0;
|
||||
|
||||
while (fileNodeAux != NULL && !end) {
|
||||
@@ -413,8 +414,8 @@ void FileNode_Print(FileNode *fileNode) {
|
||||
|
||||
int FileNode_Build_Iterate(char *path, char *name, void *d);
|
||||
|
||||
FileNode *FileNode_Build(char *path) {
|
||||
FileNode *fileNode;
|
||||
FileNode FileNode_Build(char *path) {
|
||||
FileNode fileNode;
|
||||
|
||||
if (!File_ExistsPath(path))
|
||||
return (NULL);
|
||||
@@ -439,7 +440,8 @@ FileNode *FileNode_Build(char *path) {
|
||||
}
|
||||
|
||||
int FileNode_Build_Iterate(char *path, char *name, void *d) {
|
||||
FileNode *fileNode, *fileNodeParent = d;
|
||||
FileNode fileNode;
|
||||
FileNode fileNodeParent = d;
|
||||
|
||||
if (!strcmp(name, FileNode_Filename)) {
|
||||
return (0);
|
||||
@@ -453,7 +455,7 @@ int FileNode_Build_Iterate(char *path, char *name, void *d) {
|
||||
|
||||
int FileNode_Refresh_Iterate(char *path, char *name, void *d);
|
||||
|
||||
FileNode *FileNode_Refresh(FileNode *fileNode, char *filePath) {
|
||||
FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
|
||||
if (!File_ExistsPath(filePath)) {
|
||||
// The file/directory has been deleted
|
||||
if (!fileNode) {
|
||||
@@ -478,7 +480,7 @@ FileNode *FileNode_Refresh(FileNode *fileNode, char *filePath) {
|
||||
fileNode->flags &= ~FileFlag_MarkerForReview;
|
||||
|
||||
if (File_IsDirectory(filePath)) {
|
||||
FileNode *fileNodeChild;
|
||||
FileNode fileNodeChild;
|
||||
|
||||
// Check directory data
|
||||
if (!(fileNode->flags & FileFlag_Directory)) {
|
||||
@@ -537,8 +539,8 @@ FileNode *FileNode_Refresh(FileNode *fileNode, char *filePath) {
|
||||
}
|
||||
|
||||
int FileNode_Refresh_Iterate(char *path, char *name, void *d) {
|
||||
FileNode *fileNode = d;
|
||||
FileNode *fileNodeChild;
|
||||
FileNode fileNode = d;
|
||||
FileNode fileNodeChild;
|
||||
|
||||
if (!strcmp(name, FileNode_Filename)) {
|
||||
return (0);
|
||||
|
||||
@@ -21,7 +21,8 @@ typedef enum {
|
||||
FileStatus_Deleted
|
||||
} FileStatus;
|
||||
|
||||
typedef struct SFileNode {
|
||||
typedef struct TFileNode TFileNode, *FileNode;
|
||||
struct TFileNode {
|
||||
char name[MaxFilename];
|
||||
int flags;
|
||||
FileStatus status;
|
||||
@@ -30,33 +31,33 @@ typedef struct SFileNode {
|
||||
unsigned long crc;
|
||||
FileTime fileTime;
|
||||
|
||||
struct SFileNode *child;
|
||||
FileNode child;
|
||||
int childCount;
|
||||
|
||||
struct SFileNode *next;
|
||||
struct SFileNode *parent;
|
||||
} FileNode;
|
||||
FileNode next;
|
||||
FileNode parent;
|
||||
};
|
||||
|
||||
FileNode *FileNode_Create();
|
||||
FileNode *FileNode_Copy(FileNode *fileNode);
|
||||
void FileNode_Delete(FileNode *fileNode);
|
||||
void FileNode_AddChild(FileNode *file, FileNode *file2);
|
||||
FileNode FileNode_Create();
|
||||
FileNode FileNode_Copy(FileNode fileNode);
|
||||
void FileNode_Delete(FileNode fileNode);
|
||||
void FileNode_AddChild(FileNode file, FileNode file2);
|
||||
|
||||
char *FileNode_GetFullPath(FileNode *fileNode, char *basePath, char *path);
|
||||
char *FileNode_GetFullPath(FileNode fileNode, char *basePath, char *path);
|
||||
|
||||
void FileNode_LoadSize(FileNode *fileNode, char *file);
|
||||
void FileNode_LoadTime(FileNode *fileNode, char *file);
|
||||
void FileNode_LoadSizeAndTime(FileNode *fileNode, char *file);
|
||||
void FileNode_LoadCRC(FileNode *fileNode, char *file);
|
||||
void FileNode_LoadSize(FileNode fileNode, char *file);
|
||||
void FileNode_LoadTime(FileNode fileNode, char *file);
|
||||
void FileNode_LoadSizeAndTime(FileNode fileNode, char *file);
|
||||
void FileNode_LoadCRC(FileNode fileNode, char *file);
|
||||
|
||||
void FileNode_Save(FileNode *fileNode, char *fichero);
|
||||
FileNode *FileNode_Load(char *fichero);
|
||||
void FileNode_Save(FileNode fileNode, char *fichero);
|
||||
FileNode FileNode_Load(char *fichero);
|
||||
|
||||
void FileNode_PrintNode(FileNode *fileNode);
|
||||
void FileNode_Print(FileNode *fileNode);
|
||||
void FileNode_PrintNode(FileNode fileNode);
|
||||
void FileNode_Print(FileNode fileNode);
|
||||
|
||||
FileNode *FileNode_Build(char *path);
|
||||
FileNode FileNode_Build(char *path);
|
||||
|
||||
FileNode *FileNode_Refresh(FileNode *file, char *path);
|
||||
FileNode FileNode_Refresh(FileNode file, char *path);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -10,19 +10,19 @@
|
||||
|
||||
int maxDeltaTime = 4000;
|
||||
|
||||
#define QueueNode(queue,node) (queue)->next = node; (queue) = node;
|
||||
#define QueueNode(queue,node) (queue)->next = (node); (queue) = (node);
|
||||
|
||||
ActionFileNode *_actionFileNodeFree = NULL;
|
||||
ActionFileNode _actionFileNodeFree = NULL;
|
||||
#define AccionFileNode_Block 1024
|
||||
ActionFileNode *ActionFileNode_Create() {
|
||||
ActionFileNode *actionFileNode;
|
||||
ActionFileNode ActionFileNode_Create() {
|
||||
ActionFileNode actionFileNode;
|
||||
|
||||
if (_actionFileNodeFree == NULL) {
|
||||
ActionFileNode *actionFileNodeFreeAux;
|
||||
ActionFileNode actionFileNodeFreeAux;
|
||||
int i;
|
||||
// Allocate block
|
||||
actionFileNodeFreeAux = malloc(
|
||||
sizeof(ActionFileNode) * AccionFileNode_Block);
|
||||
sizeof(TActionFileNode) * AccionFileNode_Block);
|
||||
if (actionFileNodeFreeAux == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -46,15 +46,15 @@ ActionFileNode *ActionFileNode_Create() {
|
||||
return (actionFileNode);
|
||||
}
|
||||
|
||||
void AccionFileNode_Destroy(ActionFileNode *actionFileNode) {
|
||||
void AccionFileNode_Destroy(ActionFileNode actionFileNode) {
|
||||
actionFileNode->next = _actionFileNodeFree;
|
||||
_actionFileNodeFree = actionFileNode;
|
||||
}
|
||||
|
||||
ActionFileNode *ActionFileNode_CreateNormal(FileNode *fileNodeLeft,
|
||||
FileNode *fileNodeRight)
|
||||
ActionFileNode ActionFileNode_CreateNormal(FileNode fileNodeLeft,
|
||||
FileNode fileNodeRight)
|
||||
{
|
||||
ActionFileNode *actionFileNode;
|
||||
ActionFileNode actionFileNode;
|
||||
actionFileNode = ActionFileNode_Create();
|
||||
actionFileNode->action = ActionFileCmp_Nothing;
|
||||
actionFileNode->left = fileNodeLeft;
|
||||
@@ -63,16 +63,16 @@ ActionFileNode *ActionFileNode_CreateNormal(FileNode *fileNodeLeft,
|
||||
}
|
||||
|
||||
|
||||
void AccionFileNode_CompareChilds(ActionFileNode *actionFileNodeRoot,
|
||||
ActionFileNode **actionFileNodeQueue,
|
||||
void(*CheckPair)(FileNode *fileNodeLeft, FileNode *fileNodeRight,
|
||||
ActionFileNode **actionFileNodeQueue))
|
||||
void AccionFileNode_CompareChilds(ActionFileNode actionFileNodeRoot,
|
||||
ActionFileNode *actionFileNodeQueue,
|
||||
void(*CheckPair)(FileNode fileNodeLeft, FileNode fileNodeRight,
|
||||
ActionFileNode *actionFileNodeQueue))
|
||||
{
|
||||
FileNode *fileNodeLeft;
|
||||
FileNode *fileNodeRight;
|
||||
FileNode *fileNodeRightQueue;
|
||||
FileNode *fileNodeRightProcessed;
|
||||
FileNode *fileNodeRightPrevious;
|
||||
FileNode fileNodeLeft;
|
||||
FileNode fileNodeRight;
|
||||
FileNode fileNodeRightQueue;
|
||||
FileNode fileNodeRightProcessed;
|
||||
FileNode fileNodeRightPrevious;
|
||||
|
||||
// Check if there is something to do
|
||||
if (!actionFileNodeRoot->left && !actionFileNodeRoot->right) {
|
||||
@@ -152,10 +152,10 @@ void AccionFileNode_CompareChilds(ActionFileNode *actionFileNodeRoot,
|
||||
|
||||
}
|
||||
|
||||
void AccionFileNode_DeletePair(FileNode *fileNodeLeft, FileNode *fileNodeRight,
|
||||
ActionFileNode **actionFileNodeQueue)
|
||||
void AccionFileNode_DeletePair(FileNode fileNodeLeft, FileNode fileNodeRight,
|
||||
ActionFileNode *actionFileNodeQueue)
|
||||
{
|
||||
ActionFileNode *actionFileNodeNew = ActionFileNode_CreateNormal(
|
||||
ActionFileNode actionFileNodeNew = ActionFileNode_CreateNormal(
|
||||
fileNodeLeft, fileNodeRight);
|
||||
|
||||
if (!fileNodeLeft && !fileNodeRight) {
|
||||
@@ -226,10 +226,10 @@ void AccionFileNode_DeletePair(FileNode *fileNodeLeft, FileNode *fileNodeRight,
|
||||
}
|
||||
}
|
||||
|
||||
void AccionFileNode_CheckPair(FileNode *fileNodeLeft, FileNode *fileNodeRight,
|
||||
ActionFileNode **actionFileNodeQueue)
|
||||
void AccionFileNode_CheckPair(FileNode fileNodeLeft, FileNode fileNodeRight,
|
||||
ActionFileNode *actionFileNodeQueue)
|
||||
{
|
||||
ActionFileNode *actionFileNodeNew = ActionFileNode_CreateNormal(
|
||||
ActionFileNode actionFileNodeNew = ActionFileNode_CreateNormal(
|
||||
fileNodeLeft, fileNodeRight);
|
||||
|
||||
if (!fileNodeLeft && !fileNodeRight) {
|
||||
@@ -421,19 +421,19 @@ void AccionFileNode_CheckPair(FileNode *fileNodeLeft, FileNode *fileNodeRight,
|
||||
}
|
||||
}
|
||||
|
||||
ActionFileNode *ActionFileNode_BuildSync(FileNode *izquierda, FileNode *derecha) {
|
||||
ActionFileNode *actionFileNodeRoot = ActionFileNode_CreateNormal(izquierda,
|
||||
ActionFileNode ActionFileNode_BuildSync(FileNode izquierda, FileNode derecha) {
|
||||
ActionFileNode actionFileNodeRoot = ActionFileNode_CreateNormal(izquierda,
|
||||
derecha);
|
||||
ActionFileNode *actionFileNodeQueue = actionFileNodeRoot;
|
||||
ActionFileNode actionFileNodeQueue = actionFileNodeRoot;
|
||||
AccionFileNode_CompareChilds(actionFileNodeRoot, &actionFileNodeQueue,
|
||||
AccionFileNode_CheckPair);
|
||||
return actionFileNodeRoot;
|
||||
}
|
||||
|
||||
void AccionFileNode_Copy(FileNode *fileNodeLeft, FileNode *fileNodeRight,
|
||||
ActionFileNode **actionFileNodeQueue)
|
||||
void AccionFileNode_Copy(FileNode fileNodeLeft, FileNode fileNodeRight,
|
||||
ActionFileNode *actionFileNodeQueue)
|
||||
{
|
||||
ActionFileNode *actionFileNodeNew = ActionFileNode_CreateNormal(
|
||||
ActionFileNode actionFileNodeNew = ActionFileNode_CreateNormal(
|
||||
fileNodeLeft, fileNodeRight);
|
||||
|
||||
if (!fileNodeLeft && !fileNodeRight) {
|
||||
@@ -519,17 +519,17 @@ void AccionFileNode_Copy(FileNode *fileNodeLeft, FileNode *fileNodeRight,
|
||||
}
|
||||
}
|
||||
|
||||
ActionFileNode *ActionFileNode_BuildCopy(FileNode *fileNodeLeft,
|
||||
FileNode *fileNodeRight) {
|
||||
ActionFileNode *actionFileNodeRoot = ActionFileNode_CreateNormal(
|
||||
ActionFileNode ActionFileNode_BuildCopy(FileNode fileNodeLeft,
|
||||
FileNode fileNodeRight) {
|
||||
ActionFileNode actionFileNodeRoot = ActionFileNode_CreateNormal(
|
||||
fileNodeLeft, fileNodeRight);
|
||||
ActionFileNode *actionFileNodeQueue = actionFileNodeRoot;
|
||||
ActionFileNode actionFileNodeQueue = actionFileNodeRoot;
|
||||
AccionFileNode_CompareChilds(actionFileNodeRoot, &actionFileNodeQueue,
|
||||
AccionFileNode_Copy);
|
||||
return actionFileNodeRoot;
|
||||
}
|
||||
|
||||
void ActionFileNode_Statistics(ActionFileNode *actionFileNode,
|
||||
void ActionFileNode_Statistics(ActionFileNode actionFileNode,
|
||||
ActionQueueStatistics *statistics)
|
||||
{
|
||||
statistics->readLeft = 0;
|
||||
@@ -584,7 +584,7 @@ void ActionFileNode_Statistics(ActionFileNode *actionFileNode,
|
||||
}
|
||||
}
|
||||
|
||||
void ActionFileNode_Print(ActionFileNode *actionFileNode) {
|
||||
void ActionFileNode_Print(ActionFileNode actionFileNode) {
|
||||
char showPath[MaxPath];
|
||||
while (actionFileNode != NULL) {
|
||||
if (actionFileNode->left) {
|
||||
@@ -654,7 +654,7 @@ void AccionFileNodeAux_MakeDir(char *pathOrig, char *pathDest) {
|
||||
File_MakeDirectory(pathDest);
|
||||
}
|
||||
|
||||
void ActionFileNode_RunList(ActionFileNode *actionFileNode, char *pathLeft,
|
||||
void ActionFileNode_RunList(ActionFileNode actionFileNode, char *pathLeft,
|
||||
char *pathRight)
|
||||
{
|
||||
char fullPathLeft[MaxPath], fullPathRight[MaxPath], showPath[MaxPath];
|
||||
|
||||
@@ -15,22 +15,23 @@ typedef enum {
|
||||
ActionFileCmp_MakeLeftDirectory
|
||||
} ActionFileCmp;
|
||||
|
||||
typedef struct SActionFileNode {
|
||||
typedef struct TActionFileNode TActionFileNode, *ActionFileNode;
|
||||
struct TActionFileNode {
|
||||
ActionFileCmp action;
|
||||
FileNode *left;
|
||||
FileNode *right;
|
||||
struct SActionFileNode *next;
|
||||
} ActionFileNode;
|
||||
FileNode left;
|
||||
FileNode right;
|
||||
ActionFileNode next;
|
||||
};
|
||||
|
||||
ActionFileNode *ActionFileNode_Create();
|
||||
void AccionFileNode_Destroy(ActionFileNode *actionFileNode);
|
||||
ActionFileNode *ActionFileNode_CreateNormal(FileNode *fileNodeLeft,
|
||||
FileNode *fileNodeRight);
|
||||
ActionFileNode ActionFileNode_Create();
|
||||
void AccionFileNode_Destroy(ActionFileNode actionFileNode);
|
||||
ActionFileNode ActionFileNode_CreateNormal(FileNode fileNodeLeft,
|
||||
FileNode fileNodeRight);
|
||||
|
||||
ActionFileNode *ActionFileNode_BuildSync(FileNode *fileNodeLeft,
|
||||
FileNode *fileNodeRight);
|
||||
ActionFileNode *ActionFileNode_BuildCopy(FileNode *fileNodeLeft,
|
||||
FileNode *fileNodeRight);
|
||||
ActionFileNode ActionFileNode_BuildSync(FileNode fileNodeLeft,
|
||||
FileNode fileNodeRight);
|
||||
ActionFileNode ActionFileNode_BuildCopy(FileNode fileNodeLeft,
|
||||
FileNode fileNodeRight);
|
||||
|
||||
typedef struct SActionQueueStatistics {
|
||||
long long readLeft;
|
||||
@@ -45,12 +46,12 @@ typedef struct SActionQueueStatistics {
|
||||
long long deleteRight;
|
||||
} ActionQueueStatistics;
|
||||
|
||||
void ActionFileNode_Statistics(ActionFileNode *actionFileNode,
|
||||
void ActionFileNode_Statistics(ActionFileNode actionFileNode,
|
||||
ActionQueueStatistics *statistics);
|
||||
|
||||
void ActionFileNode_Print(ActionFileNode *actionFileNode);
|
||||
void ActionFileNode_Print(ActionFileNode actionFileNode);
|
||||
|
||||
void ActionFileNode_RunList(ActionFileNode *actionFileNode, char *pathLeft,
|
||||
void ActionFileNode_RunList(ActionFileNode actionFileNode, char *pathLeft,
|
||||
char *pathRight);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -327,7 +327,8 @@ void File_DeleteDirectory(char *path) {
|
||||
|
||||
#define MaxBuffer 16384
|
||||
int File_Copy(const char *pathOrig, const char *pathDest) {
|
||||
FILE *fOrig, *fDest;
|
||||
FILE *fOrig;
|
||||
FILE *fDest;
|
||||
char *buffer = NULL;
|
||||
int readLen = 0;
|
||||
int writeLen = 0;
|
||||
|
||||
28
src/main.c
28
src/main.c
@@ -29,7 +29,7 @@ void Help(char *exe) {
|
||||
printff(" %s recopytest [dirIzquierda] [dirDerecha]\n", exeFilename);
|
||||
}
|
||||
|
||||
FileNode *CheckDir(char *path, int recheck);
|
||||
FileNode CheckDir(char *path, int recheck);
|
||||
int Sync(char *pathLeft, char *pathRight, int recheck, int dryRun);
|
||||
int Copy(char *pathLeft, char *pathRight, int reCheck, int dryRun);
|
||||
|
||||
@@ -44,7 +44,7 @@ int main(int argc, char *argv[]) {
|
||||
int i;
|
||||
for (i = 2; i < argc; i++) {
|
||||
if (File_ExistsPath(argv[i])) {
|
||||
FileNode *fileNode = FileNode_Build(argv[i]);
|
||||
FileNode fileNode = FileNode_Build(argv[i]);
|
||||
FileNode_LoadCRC(fileNode, argv[i]);
|
||||
FileNode_PrintNode(fileNode);
|
||||
}
|
||||
@@ -53,7 +53,7 @@ int main(int argc, char *argv[]) {
|
||||
else if (!strcmp(argv[1], "scan") && argc == 4) {
|
||||
// Scan directory information tree and save
|
||||
long long tScan = Time_GetTime();
|
||||
FileNode *fileNode;
|
||||
FileNode fileNode;
|
||||
printff("Building FileNode..\n");
|
||||
fileNode = FileNode_Build(argv[2]);
|
||||
tScan = Time_GetTime() - tScan;
|
||||
@@ -62,7 +62,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
else if (!strcmp(argv[1], "rescan") && argc == 4) {
|
||||
// Scan directory information and save tree
|
||||
FileNode *fileNode;
|
||||
FileNode fileNode;
|
||||
printff("Loading FileNode..\n");
|
||||
fileNode = FileNode_Load(argv[3]);
|
||||
if (fileNode) {
|
||||
@@ -84,7 +84,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
else if (!strcmp(argv[1], "read") && argc == 3) {
|
||||
// Read information tree from file
|
||||
FileNode *fileNode;
|
||||
FileNode fileNode;
|
||||
fileNode = FileNode_Load(argv[2]);
|
||||
if (fileNode)
|
||||
FileNode_Print(fileNode);
|
||||
@@ -92,7 +92,7 @@ int main(int argc, char *argv[]) {
|
||||
else if (!strcmp(argv[1], "dir") && argc == 3) {
|
||||
// Read directory information tree
|
||||
char *path = argv[2];
|
||||
FileNode *fileNode;
|
||||
FileNode fileNode;
|
||||
|
||||
fileNode = CheckDir(path, 1);
|
||||
if (fileNode) {
|
||||
@@ -135,9 +135,9 @@ int main(int argc, char *argv[]) {
|
||||
return (0);
|
||||
}
|
||||
|
||||
FileNode *CheckDir(char *path, int recheck) {
|
||||
FileNode CheckDir(char *path, int recheck) {
|
||||
char dirNodesFile[MaxPath];
|
||||
FileNode *fileNode;
|
||||
FileNode fileNode;
|
||||
|
||||
// Check directory
|
||||
snprintf(dirNodesFile, MaxPath, "%s/"FileNode_Filename, path);
|
||||
@@ -166,7 +166,7 @@ FileNode *CheckDir(char *path, int recheck) {
|
||||
return fileNode;
|
||||
}
|
||||
|
||||
void PrintStatistics(ActionFileNode *actionFileNode) {
|
||||
void PrintStatistics(ActionFileNode actionFileNode) {
|
||||
ActionQueueStatistics statistics;
|
||||
ActionFileNode_Statistics(actionFileNode, &statistics);
|
||||
printff("Statistics\n");
|
||||
@@ -183,7 +183,8 @@ void PrintStatistics(ActionFileNode *actionFileNode) {
|
||||
}
|
||||
|
||||
int Sync(char *pathLeft, char *pathRight, int recheck, int dryRun) {
|
||||
FileNode *fileNodeLeft, *fileNodeRight;
|
||||
FileNode fileNodeLeft;
|
||||
FileNode fileNodeRight;
|
||||
|
||||
// Check and load directories
|
||||
if (!File_ExistsPath(pathLeft) || !File_IsDirectory(pathLeft)) {
|
||||
@@ -206,7 +207,7 @@ int Sync(char *pathLeft, char *pathRight, int recheck, int dryRun) {
|
||||
// Build actions
|
||||
long long tBuild = Time_GetTime();
|
||||
printff("Building action list.. \n");
|
||||
ActionFileNode *actionFileNode = NULL;
|
||||
ActionFileNode actionFileNode = NULL;
|
||||
actionFileNode = ActionFileNode_BuildSync(fileNodeLeft, fileNodeRight);
|
||||
tBuild = Time_GetTime() - tBuild;
|
||||
printff("tBuild: %9lldus\n", tBuild);
|
||||
@@ -225,7 +226,8 @@ int Sync(char *pathLeft, char *pathRight, int recheck, int dryRun) {
|
||||
}
|
||||
|
||||
int Copy(char *pathLeft, char *pathRight, int reCheck, int dryRun) {
|
||||
FileNode *fileNodeLeft, *fileNodeRight;
|
||||
FileNode fileNodeLeft;
|
||||
FileNode fileNodeRight;
|
||||
|
||||
// Check and load directories
|
||||
if (!File_ExistsPath(pathLeft) || !File_IsDirectory(pathLeft)) {
|
||||
@@ -248,7 +250,7 @@ int Copy(char *pathLeft, char *pathRight, int reCheck, int dryRun) {
|
||||
// Build actions
|
||||
long long tBuild = Time_GetTime();
|
||||
printff("Building action list.. \n");
|
||||
ActionFileNode *actionFileNode = NULL;
|
||||
ActionFileNode actionFileNode = NULL;
|
||||
actionFileNode = ActionFileNode_BuildCopy(fileNodeLeft, fileNodeRight);
|
||||
tBuild = Time_GetTime() - tBuild;
|
||||
printff("tBuild: %9lldus\n", tBuild);
|
||||
|
||||
Reference in New Issue
Block a user