Work to allow mmap-ed log entries to be used for data blocks.
[bluesky.git] / bluesky / bluesky-private.h
index d6fcc1a..60c10c1 100644 (file)
@@ -142,9 +142,9 @@ void bluesky_store_add_barrier(BlueSkyStoreAsync *barrier,
 void bluesky_inode_start_sync(BlueSkyInode *inode);
 
 void bluesky_block_touch(BlueSkyInode *inode, uint64_t i);
-void bluesky_block_fetch(BlueSkyFS *fs, BlueSkyBlock *block,
+void bluesky_block_fetch(BlueSkyInode *inode, BlueSkyBlock *block,
                          BlueSkyStoreAsync *barrier);
-void bluesky_block_flush(BlueSkyFS *fs, BlueSkyBlock *block,
+void bluesky_block_flush(BlueSkyInode *inode, BlueSkyBlock *block,
                          GList **log_items);
 void bluesky_file_flush(BlueSkyInode *inode, GList **log_items);
 void bluesky_file_drop_cached(BlueSkyInode *inode);
@@ -178,7 +178,7 @@ typedef enum {
 #define CLOUDLOG_JOURNAL    0x01
 #define CLOUDLOG_CLOUD      0x02
 #define CLOUDLOG_CACHE      0x04
-typedef struct {
+struct _BlueSkyCloudLog {
     gint refcount;
     GMutex *lock;
     GCond *cond;
@@ -211,7 +211,7 @@ typedef struct {
 
     // Serialized data, if available in memory (otherwise NULL).
     BlueSkyRCStr *data;
-} BlueSkyCloudLog;
+};
 
 /* Serialize objects into a log segment to be written to the cloud. */
 struct _BlueSkyCloudLogState {
@@ -247,6 +247,8 @@ struct _BlueSkyLog {
 BlueSkyLog *bluesky_log_new(const char *log_directory);
 void bluesky_log_item_submit(BlueSkyCloudLog *item, BlueSkyLog *log);
 void bluesky_log_finish_all(GList *log_items);
+BlueSkyRCStr *bluesky_log_map_object(BlueSkyLog *log, int log_seq,
+                                     int log_offset, int log_size);
 
 #ifdef __cplusplus
 }