X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fbluesky-private.h;h=f945a93585aa4009309952c0beedc54af1c5fdbd;hb=5dccfe81a6b4521383acf0b675374493950d09db;hp=2f69166af7989525bc07988780b284f47008b333;hpb=772058dfc33fbe4857864b4bdb8ba947eca19303;p=bluesky.git diff --git a/bluesky/bluesky-private.h b/bluesky/bluesky-private.h index 2f69166..f945a93 100644 --- a/bluesky/bluesky-private.h +++ b/bluesky/bluesky-private.h @@ -138,6 +138,10 @@ struct BlueSkyStoreAsync { bluesky_time_hires exec_time; /* Time processing started on operation. */ gpointer store_private; /* For use by the storage implementation */ + + /* If storage operations should be charged to any particular profile, which + * one? */ + BlueSkyProfile *profile; }; /* Support for notification lists. These are lists of one-shot functions which @@ -332,6 +336,7 @@ void bluesky_cloudlog_sync(BlueSkyCloudLog *log); void bluesky_cloudlog_insert(BlueSkyCloudLog *log); void bluesky_cloudlog_insert_locked(BlueSkyCloudLog *log); BlueSkyCloudLog *bluesky_cloudlog_get(BlueSkyFS *fs, BlueSkyCloudID id); +void bluesky_cloudlog_prefetch(BlueSkyCloudLog *log); void bluesky_cloudlog_fetch(BlueSkyCloudLog *log); BlueSkyCloudPointer bluesky_cloudlog_serialize(BlueSkyCloudLog *log, BlueSkyFS *fs); @@ -382,11 +387,13 @@ struct BlueSkyCacheFile { gint mapcount; // References to the mmaped data const char *addr; // May be null if data is not mapped in memory size_t len; + int disk_used; BlueSkyFS *fs; BlueSkyLog *log; gboolean fetching, ready; // Cloud data: downloading or ready for use int64_t atime; // Access time, for cache management BlueSkyRangeset *items; // Locations of valid items + BlueSkyRangeset *prefetches;// Locations we have been requested to prefetch }; BlueSkyLog *bluesky_log_new(const char *log_directory); @@ -395,13 +402,13 @@ 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_log_map_object(BlueSkyFS *fs, int log_dir, int log_seq, - int log_offset, int log_size); +BlueSkyRCStr *bluesky_log_map_object(BlueSkyCloudLog *item, gboolean map_data); void bluesky_mmap_unref(BlueSkyCacheFile *mmap); void bluesky_cachefile_unref(BlueSkyCacheFile *cachefile); BlueSkyCacheFile *bluesky_cachefile_lookup(BlueSkyFS *fs, - int clouddir, int log_seq); + int clouddir, int log_seq, + gboolean start_fetch); void bluesky_cachefile_gc(BlueSkyFS *fs); void bluesky_replay(BlueSkyFS *fs);