Files
FastSync/src/shared/file.h
T

35 lines
877 B
C

#ifndef FILE_H
#define FILE_H
#include "config.h"
#include "data.h"
#include <stdbool.h>
#include <sys/stat.h>
typedef struct {
mode_t mode;
uid_t uid;
gid_t gid;
time_t mtime_sec;
long mtime_nsec;
} FileMetadata;
typedef struct {
char *path;
Data *data;
FileMetadata *metadata;
} File;
File *file_create(const char *path);
void file_destroy(void *item);
bool file_load_data(File *file);
File *file_receive(Config *config, int file_descriptor);
bool file_send_single_calls(File *file, int file_descriptor, bool use_metadata, int compression_level);
bool file_send_sendfile(File *file, int file_descriptor, bool use_metadata);
size_t file_content_to_buffer(File *file);
FileMetadata *file_metadata_create(struct stat *stats);
void file_metadata_destroy(void *metadata);
bool to_disk(const char *path, const void *data, unsigned long long data_size);
#endif