X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fbluesky-private.h;h=be7a2d349e25b66f38efc727b738ac7ed1b58bf1;hb=dddebb0ed8feb5ece494dbef1cb24ad2d4699b45;hp=20079daae419028ea0777e885effcf3af106523e;hpb=afc95f0ab2900a311802028f1b811867fa3c0c31;p=bluesky.git diff --git a/bluesky/bluesky-private.h b/bluesky/bluesky-private.h index 20079da..be7a2d3 100644 --- a/bluesky/bluesky-private.h +++ b/bluesky/bluesky-private.h @@ -14,6 +14,7 @@ #define _BLUESKY_PRIVATE_H #include "bluesky.h" +#include #ifdef __cplusplus extern "C" { @@ -78,11 +79,13 @@ BlueSkyRCStr *bluesky_crypt_decrypt(BlueSkyRCStr *in, const uint8_t *key); void bluesky_crypt_block_encrypt(gchar *cloud_block, size_t len, BlueSkyCryptKeys *keys); gboolean bluesky_crypt_block_decrypt(gchar *cloud_block, size_t len, - BlueSkyCryptKeys *keys); + BlueSkyCryptKeys *keys, + gboolean allow_unauth); void bluesky_cloudlog_encrypt(GString *segment, BlueSkyCryptKeys *keys); void bluesky_cloudlog_decrypt(char *segment, size_t len, BlueSkyCryptKeys *keys, - BlueSkyRangeset *items); + BlueSkyRangeset *items, + gboolean allow_unauth); /* Storage layer. Requests can be performed asynchronously, so these objects * help keep track of operations in progress. */ @@ -402,7 +405,8 @@ struct BlueSkyCacheFile { int disk_used; BlueSkyFS *fs; BlueSkyLog *log; - gboolean fetching, ready; // Cloud data: downloading or ready for use + gboolean fetching; // Cloud data: downloading or ready for use + gboolean complete; // Complete file has been fetched from cloud int64_t atime; // Access time, for cache management BlueSkyRangeset *items; // Locations of valid items BlueSkyRangeset *prefetches;// Locations we have been requested to prefetch @@ -414,6 +418,8 @@ void bluesky_log_finish_all(GList *log_items); BlueSkyCloudLog *bluesky_log_get_commit_point(BlueSkyFS *fs); void bluesky_log_write_commit_point(BlueSkyFS *fs, BlueSkyCloudLog *marker); +BlueSkyRCStr *bluesky_cachefile_map_raw(BlueSkyCacheFile *cachefile, + off_t offset, size_t size); BlueSkyRCStr *bluesky_log_map_object(BlueSkyCloudLog *item, gboolean map_data); void bluesky_mmap_unref(BlueSkyCacheFile *mmap); void bluesky_cachefile_unref(BlueSkyCacheFile *cachefile); @@ -469,6 +475,10 @@ void bluesky_inode_map_minimize(BlueSkyFS *fs); gboolean bluesky_checkpoint_load(BlueSkyFS *fs); +/* Merging of log state with the work of the cleaner. */ +void bluesky_cleaner_merge(BlueSkyFS *fs); +void bluesky_cleaner_thread_launch(BlueSkyFS *fs); + #ifdef __cplusplus } #endif