Values in the kvstore are raw byte arrays, not strings.
[bluesky.git] / bluesky / bluesky-private.h
index d00f7c3..a4c8a5e 100644 (file)
@@ -27,7 +27,7 @@ BlueSkyFS *bluesky_new_fs(gchar *name);
 void bluesky_serialize_superblock(GString *out, BlueSkyFS *fs);
 BlueSkyFS *bluesky_deserialize_superblock(const gchar *buf);
 void bluesky_serialize_inode(GString *out, BlueSkyInode *inode);
-BlueSkyInode *bluesky_deserialize_inode(BlueSkyFS *fs, const gchar *buf);
+gboolean bluesky_deserialize_inode(BlueSkyInode *inode, const gchar *buf);
 
 /* Storage layer.  Requests can be performed asynchronously, so these objects
  * help keep track of operations in progress. */
@@ -64,6 +64,8 @@ typedef struct {
     int result;                 /* Result code; 0 for success. */
     struct BlueSkyNotifierList *notifiers;
 
+    bluesky_time_hires start_time;  /* Time operation was submitted. */
+
     gpointer store_private;     /* For use by the storage implementation */
 } BlueSkyStoreAsync;
 
@@ -110,6 +112,13 @@ void bluesky_store_sync(BlueSkyStore *store);
 void bluesky_store_add_barrier(BlueSkyStoreAsync *barrier,
                                BlueSkyStoreAsync *async);
 
+void bluesky_inode_start_sync(BlueSkyInode *inode, BlueSkyStoreAsync *barrier);
+
+void bluesky_block_flush(BlueSkyFS *fs, BlueSkyBlock *block,
+                         BlueSkyStoreAsync *barrier);
+void bluesky_file_flush(BlueSkyInode *inode, BlueSkyStoreAsync *barrier);
+void bluesky_file_drop_cached(BlueSkyInode *inode);
+
 #ifdef __cplusplus
 }
 #endif