doc
csync internal API

Topics

 csync file lockling internals
 csync logging internals
 csync propagation internals
 csync reconciliation internals
 csync statedb internals
 csync update detection internals

Data Structures

struct  _csync_treewalk_context_s
struct  csync_file_stat_s
struct  csync_s

Macros

#define CSYNC_STATUS_DONE
#define CSYNC_STATUS_INIT   1 << 0
#define CSYNC_STATUS_PROPAGATE   1 << 3
#define CSYNC_STATUS_RECONCILE   1 << 2
#define CSYNC_STATUS_UPDATE   1 << 1
#define MAX_DEPTH   50
#define MAX_TIME_DIFFERENCE   10
#define MAX_XFER_BUF_SIZE   (16 * 1024)

Typedefs

typedef struct _csync_treewalk_context_s _csync_treewalk_context
typedef struct csync_file_stat_s csync_file_stat_t

Enumerations

enum  csync_ftw_type_e { CSYNC_FTW_TYPE_FILE , CSYNC_FTW_TYPE_SLINK , CSYNC_FTW_TYPE_DIR }
enum  csync_replica_e { LOCAL_REPLICA , REMOTE_REPLICA }

Functions

struct csync_file_stat_s __attribute__ ((packed))

Variables

struct _csync_treewalk_context_s __attribute__
csync_auth_callback   csync_s::auth_function 
long long   csync_s::byte_current 
long long   csync_s::byte_sum 
struct { 
   csync_auth_callback   csync_s::auth_function 
   csync_file_progress_callback   csync_s::file_progress_cb 
   csync_overall_progress_callback   csync_s::overall_progress_cb 
   void *   csync_s::userdata 
csync_s::callbacks
csync_vio_capabilities_t   csync_s::capabilities 
char *   csync_s::config_dir 
enum csync_replica_e csync_s::current
int   csync_s::current_file_no 
sqlite3 *   csync_s::db 
int   csync_s::disabled 
char * csync_s::error_string
uid_t   csync_s::euid 
c_strlist_tcsync_s::excludes
int   csync_s::exists 
char *   csync_s::file 
int   csync_s::file_count 
csync_file_progress_callback   csync_s::file_progress_cb 
csync_vio_method_finish_fn   csync_s::finish_fn 
gid_t csync_file_stat_s::gid
gid_t gid
void *   csync_s::handle 
ino_t csync_file_stat_s::inode
ino_t inode
enum csync_instructions_e csync_file_stat_s::instruction
enum csync_instructions_e instruction
int _csync_treewalk_context_s::instruction_filter
c_list_t *   csync_s::list 
c_list_t *   csync_s::list 
struct { 
   c_list_t *   csync_s::list 
   c_rbtree_t *   csync_s::tree 
   enum csync_replica_e   csync_s::type 
   char *   csync_s::uri 
csync_s::local
bool   csync_s::local_only_mode 
int   csync_s::max_depth 
int   csync_s::max_time_difference 
csync_vio_method_t *   csync_s::method 
mode_t csync_file_stat_s::mode
mode_t mode
time_t csync_file_stat_s::modtime
time_t modtime
struct { 
   csync_vio_capabilities_t   csync_s::capabilities 
   csync_vio_method_finish_fn   csync_s::finish_fn 
   void *   csync_s::handle 
   csync_vio_method_t *   csync_s::method 
csync_s::module
int csync_file_stat_s::nlink
int nlink
struct { 
   char *   csync_s::config_dir 
   bool   csync_s::local_only_mode 
   int   csync_s::max_depth 
   int   csync_s::max_time_difference 
   int   csync_s::sync_symbolic_links 
   int   csync_s::unix_extensions 
   bool   csync_s::with_conflict_copys 
csync_s::options
csync_overall_progress_callback   csync_s::overall_progress_cb 
char csync_file_stat_s::path [1]
char path [1]
size_t csync_file_stat_s::pathlen
size_t pathlen
uint64_t csync_file_stat_s::phash
uint64_t phash
struct { 
   long long   csync_s::byte_current 
   long long   csync_s::byte_sum 
   int   csync_s::current_file_no 
   int   csync_s::file_count 
csync_s::progress
struct { 
   uid_t   csync_s::euid 
   uid_t   csync_s::uid 
csync_s::pwd
struct { 
   c_list_t *   csync_s::list 
   c_rbtree_t *   csync_s::tree 
   enum csync_replica_e   csync_s::type 
   char *   csync_s::uri 
csync_s::remote
enum csync_replica_e csync_s::replica
off_t csync_file_stat_s::size
off_t size
struct { 
   sqlite3 *   csync_s::db 
   int   csync_s::disabled 
   int   csync_s::exists 
   char *   csync_s::file 
csync_s::statedb
int csync_s::status
enum csync_status_codes_e csync_s::status_code
int   csync_s::sync_symbolic_links 
c_rbtree_t *   csync_s::tree 
c_rbtree_t *   csync_s::tree 
int csync_file_stat_s::type
enum csync_replica_e   csync_s::type 
enum csync_replica_e   csync_s::type 
int type
uid_t csync_file_stat_s::uid
uid_t   csync_s::uid 
uid_t uid
int   csync_s::unix_extensions 
char *   csync_s::uri 
char *   csync_s::uri 
csync_treewalk_visit_func_csync_treewalk_context_s::user_visitor
void * _csync_treewalk_context_s::userdata
void *   csync_s::userdata 
bool   csync_s::with_conflict_copys 

Detailed Description

Macro Definition Documentation

◆ CSYNC_STATUS_DONE

#define CSYNC_STATUS_DONE
Value:
#define CSYNC_STATUS_INIT
#define CSYNC_STATUS_UPDATE
#define CSYNC_STATUS_RECONCILE
#define CSYNC_STATUS_PROPAGATE

Definition at line 76 of file csync_private.h.

◆ CSYNC_STATUS_INIT

#define CSYNC_STATUS_INIT   1 << 0

Definition at line 71 of file csync_private.h.

◆ CSYNC_STATUS_PROPAGATE

#define CSYNC_STATUS_PROPAGATE   1 << 3

Definition at line 74 of file csync_private.h.

◆ CSYNC_STATUS_RECONCILE

#define CSYNC_STATUS_RECONCILE   1 << 2

Definition at line 73 of file csync_private.h.

◆ CSYNC_STATUS_UPDATE

#define CSYNC_STATUS_UPDATE   1 << 1

Definition at line 72 of file csync_private.h.

◆ MAX_DEPTH

#define MAX_DEPTH   50

How deep to scan directories.

Definition at line 57 of file csync_private.h.

◆ MAX_TIME_DIFFERENCE

#define MAX_TIME_DIFFERENCE   10

Maximum time difference between two replicas in seconds.

Definition at line 62 of file csync_private.h.

◆ MAX_XFER_BUF_SIZE

#define MAX_XFER_BUF_SIZE   (16 * 1024)

Maximum size of a buffer for transfer.

Definition at line 68 of file csync_private.h.

Typedef Documentation

◆ _csync_treewalk_context

Definition at line 207 of file csync_private.h.

◆ csync_file_stat_t

Definition at line 196 of file csync_private.h.

Enumeration Type Documentation

◆ csync_ftw_type_e

Enumerator
CSYNC_FTW_TYPE_FILE 
CSYNC_FTW_TYPE_SLINK 
CSYNC_FTW_TYPE_DIR 

Definition at line 165 of file csync_private.h.

◆ csync_replica_e

Enumerator
LOCAL_REPLICA 
REMOTE_REPLICA 

Definition at line 81 of file csync_private.h.

Function Documentation

◆ __attribute__()

struct csync_file_stat_s __attribute__ ( (packed) )

Variable Documentation

◆ __attribute__

struct _csync_treewalk_context_s __attribute__

◆ [] [1/2]

csync_auth_callback { ... } ::auth_function

Definition at line 91 of file csync_private.h.

◆ auth_function [2/2]

csync_auth_callback csync_s::auth_function

Definition at line 91 of file csync_private.h.

◆ [] [1/2]

long long { ... } ::byte_current

Definition at line 148 of file csync_private.h.

◆ byte_current [2/2]

long long csync_s::byte_current

Definition at line 148 of file csync_private.h.

◆ [] [1/2]

long long { ... } ::byte_sum

Definition at line 147 of file csync_private.h.

◆ byte_sum [2/2]

long long csync_s::byte_sum

Definition at line 147 of file csync_private.h.

◆ [struct]

struct { ... } csync_s::callbacks

◆ [] [1/2]

csync_vio_capabilities_t { ... } ::capabilities

Definition at line 123 of file csync_private.h.

◆ capabilities [2/2]

csync_vio_capabilities_t csync_s::capabilities

Definition at line 123 of file csync_private.h.

◆ [] [1/2]

char* { ... } ::config_dir

Definition at line 131 of file csync_private.h.

◆ config_dir [2/2]

char* csync_s::config_dir

Definition at line 131 of file csync_private.h.

◆ current

enum csync_replica_e csync_s::current

Definition at line 152 of file csync_private.h.

◆ [] [1/2]

int { ... } ::current_file_no

Definition at line 146 of file csync_private.h.

◆ current_file_no [2/2]

int csync_s::current_file_no

Definition at line 146 of file csync_private.h.

◆ [] [1/2]

sqlite3* { ... } ::db

Definition at line 100 of file csync_private.h.

◆ db [2/2]

sqlite3* csync_s::db

Definition at line 100 of file csync_private.h.

◆ [] [1/2]

int { ... } ::disabled

Definition at line 102 of file csync_private.h.

◆ disabled [2/2]

int csync_s::disabled

Definition at line 102 of file csync_private.h.

◆ error_string

char* csync_s::error_string

Definition at line 160 of file csync_private.h.

◆ [] [1/2]

uid_t { ... } ::euid

Definition at line 141 of file csync_private.h.

◆ euid [2/2]

uid_t csync_s::euid

Definition at line 141 of file csync_private.h.

◆ excludes

c_strlist_t* csync_s::excludes

Definition at line 96 of file csync_private.h.

◆ [] [1/2]

int { ... } ::exists

Definition at line 101 of file csync_private.h.

◆ exists [2/2]

int csync_s::exists

Definition at line 101 of file csync_private.h.

◆ [] [1/2]

char* { ... } ::file

Definition at line 99 of file csync_private.h.

◆ file [2/2]

char* csync_s::file

Definition at line 99 of file csync_private.h.

◆ [] [1/2]

int { ... } ::file_count

Definition at line 145 of file csync_private.h.

◆ file_count [2/2]

int csync_s::file_count

Definition at line 145 of file csync_private.h.

◆ [] [1/2]

csync_file_progress_callback { ... } ::file_progress_cb

Definition at line 93 of file csync_private.h.

◆ file_progress_cb [2/2]

csync_file_progress_callback csync_s::file_progress_cb

Definition at line 93 of file csync_private.h.

◆ [] [1/2]

csync_vio_method_finish_fn { ... } ::finish_fn

Definition at line 122 of file csync_private.h.

◆ finish_fn [2/2]

csync_vio_method_finish_fn csync_s::finish_fn

Definition at line 122 of file csync_private.h.

◆ gid [1/2]

gid_t csync_file_stat_s::gid

Definition at line 181 of file csync_private.h.

◆ gid [2/2]

gid_t gid

Definition at line 6 of file csync_private.h.

◆ [] [1/2]

void* { ... } ::handle

Definition at line 120 of file csync_private.h.

◆ handle [2/2]

void* csync_s::handle

Definition at line 120 of file csync_private.h.

◆ inode [1/2]

ino_t csync_file_stat_s::inode

Definition at line 179 of file csync_private.h.

◆ inode [2/2]

ino_t inode

Definition at line 4 of file csync_private.h.

Referenced by csync_statedb_get_stat_by_inode().

◆ instruction [1/2]

enum csync_instructions_e csync_file_stat_s::instruction

Definition at line 185 of file csync_private.h.

◆ instruction [2/2]

enum csync_instructions_e instruction

Definition at line 10 of file csync_private.h.

◆ instruction_filter

int _csync_treewalk_context_s::instruction_filter

Definition at line 204 of file csync_private.h.

◆ [] [1/3]

c_list_t* { ... } ::list

Definition at line 108 of file csync_private.h.

◆ [] [2/3]

c_list_t* { ... } ::list

Definition at line 115 of file csync_private.h.

◆ list [3/3]

c_list_t* csync_s::list

Definition at line 108 of file csync_private.h.

◆ [struct]

struct { ... } csync_s::local

◆ [] [1/2]

bool { ... } ::local_only_mode

Definition at line 133 of file csync_private.h.

◆ local_only_mode [2/2]

bool csync_s::local_only_mode

Definition at line 133 of file csync_private.h.

◆ [] [1/2]

int { ... } ::max_depth

Definition at line 127 of file csync_private.h.

◆ max_depth [2/2]

int csync_s::max_depth

Definition at line 127 of file csync_private.h.

◆ [] [1/2]

int { ... } ::max_time_difference

Definition at line 128 of file csync_private.h.

◆ max_time_difference [2/2]

int csync_s::max_time_difference

Definition at line 128 of file csync_private.h.

◆ [] [1/2]

csync_vio_method_t* { ... } ::method

Definition at line 121 of file csync_private.h.

◆ method [2/2]

csync_vio_method_t* csync_s::method

Definition at line 121 of file csync_private.h.

◆ mode [1/2]

mode_t csync_file_stat_s::mode

Definition at line 182 of file csync_private.h.

◆ mode [2/2]

◆ modtime [1/2]

time_t csync_file_stat_s::modtime

Definition at line 176 of file csync_private.h.

◆ modtime [2/2]

time_t modtime

Definition at line 1 of file csync_private.h.

◆ [struct]

struct { ... } csync_s::module

◆ nlink [1/2]

int csync_file_stat_s::nlink

Definition at line 183 of file csync_private.h.

◆ nlink [2/2]

int nlink

Definition at line 8 of file csync_private.h.

◆ [struct]

struct { ... } csync_s::options

◆ [] [1/2]

csync_overall_progress_callback { ... } ::overall_progress_cb

Definition at line 92 of file csync_private.h.

◆ overall_progress_cb [2/2]

csync_overall_progress_callback csync_s::overall_progress_cb

Definition at line 92 of file csync_private.h.

◆ path [1/2]

char csync_file_stat_s::path[1]

Definition at line 186 of file csync_private.h.

◆ path [2/2]

◆ pathlen [1/2]

size_t csync_file_stat_s::pathlen

Definition at line 178 of file csync_private.h.

◆ pathlen [2/2]

size_t pathlen

Definition at line 3 of file csync_private.h.

◆ phash [1/2]

uint64_t csync_file_stat_s::phash

Definition at line 175 of file csync_private.h.

◆ phash [2/2]

uint64_t phash

Definition at line 0 of file csync_private.h.

Referenced by csync_statedb_get_stat_by_hash().

◆ [struct]

struct { ... } csync_s::progress

◆ [struct]

struct { ... } csync_s::pwd

◆ [struct]

struct { ... } csync_s::remote

◆ replica

enum csync_replica_e csync_s::replica

Definition at line 155 of file csync_private.h.

◆ size [1/2]

off_t csync_file_stat_s::size

Definition at line 177 of file csync_private.h.

◆ size [2/2]

off_t size

Definition at line 2 of file csync_private.h.

Referenced by c_calloc(), c_malloc(), c_realloc(), c_strlist_expand(), c_strlist_new(), and c_strndup().

◆ [struct]

struct { ... } csync_s::statedb

◆ status

int csync_s::status

Definition at line 162 of file csync_private.h.

◆ status_code

enum csync_status_codes_e csync_s::status_code

Definition at line 158 of file csync_private.h.

◆ [] [1/2]

int { ... } ::sync_symbolic_links

Definition at line 129 of file csync_private.h.

◆ sync_symbolic_links [2/2]

int csync_s::sync_symbolic_links

Definition at line 129 of file csync_private.h.

◆ [] [1/3]

c_rbtree_t* { ... } ::tree

Definition at line 107 of file csync_private.h.

◆ [] [2/3]

c_rbtree_t* { ... } ::tree

Definition at line 114 of file csync_private.h.

◆ tree [3/3]

c_rbtree_t* csync_s::tree

Definition at line 107 of file csync_private.h.

◆ type [1/5]

int csync_file_stat_s::type

Definition at line 184 of file csync_private.h.

◆ [] [2/5]

enum csync_replica_e { ... } ::type

Definition at line 109 of file csync_private.h.

◆ [] [3/5]

enum csync_replica_e { ... } ::type

Definition at line 116 of file csync_private.h.

◆ type [4/5]

enum csync_replica_e csync_s::type

Definition at line 109 of file csync_private.h.

◆ type [5/5]

int type

Definition at line 9 of file csync_private.h.

◆ uid [1/4]

uid_t csync_file_stat_s::uid

Definition at line 180 of file csync_private.h.

◆ [] [2/4]

uid_t { ... } ::uid

Definition at line 140 of file csync_private.h.

◆ uid [3/4]

uid_t csync_s::uid

Definition at line 140 of file csync_private.h.

◆ uid [4/4]

uid_t uid

Definition at line 5 of file csync_private.h.

◆ [] [1/2]

int { ... } ::unix_extensions

Definition at line 130 of file csync_private.h.

◆ unix_extensions [2/2]

int csync_s::unix_extensions

Definition at line 130 of file csync_private.h.

◆ [] [1/3]

char* { ... } ::uri

Definition at line 106 of file csync_private.h.

◆ [] [2/3]

char* { ... } ::uri

Definition at line 113 of file csync_private.h.

◆ uri [3/3]

char* csync_s::uri

Definition at line 106 of file csync_private.h.

◆ user_visitor

csync_treewalk_visit_func* _csync_treewalk_context_s::user_visitor

Definition at line 203 of file csync_private.h.

◆ userdata [1/3]

void* _csync_treewalk_context_s::userdata

Definition at line 205 of file csync_private.h.

◆ [] [2/3]

void* { ... } ::userdata

Definition at line 94 of file csync_private.h.

◆ userdata [3/3]

void* csync_s::userdata

Definition at line 94 of file csync_private.h.

◆ [] [1/2]

bool { ... } ::with_conflict_copys

Definition at line 132 of file csync_private.h.

◆ with_conflict_copys [2/2]

bool csync_s::with_conflict_copys

Definition at line 132 of file csync_private.h.