Add a "multi" storage backend which doubles all GET requests.
[bluesky.git] / bluesky / bluesky.h
index 714ec55..29d9a62 100644 (file)
@@ -41,6 +41,16 @@ extern BlueSkyOptions bluesky_options;
  * limit */
 extern int bluesky_max_threads;
 
+/* A general-purpose counter for gathering run-time statistics. */
+struct bluesky_stats {
+    const char *name;
+    int64_t count;
+    int64_t sum;
+};
+struct bluesky_stats *bluesky_stats_new(const char *name);
+void bluesky_stats_add(struct bluesky_stats *stats, int64_t value);
+void bluesky_stats_dump_all();
+
 /* BlueSky status and error codes.  Various frontends should translate these to
  * the appropriate error code for whatever protocol they implement. */
 typedef enum {
@@ -254,6 +264,8 @@ typedef struct {
 BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store);
 void bluesky_superblock_flush(BlueSkyFS *fs);
 
+gboolean bluesky_inode_is_ready(BlueSkyInode *inode);
+
 int64_t bluesky_get_current_time();
 void bluesky_inode_update_ctime(BlueSkyInode *inode, gboolean update_mtime);
 uint64_t bluesky_fs_alloc_inode(BlueSkyFS *fs);
@@ -288,6 +300,7 @@ gint bluesky_dirent_compare(gconstpointer a, gconstpointer b,
 void bluesky_flushd_invoke(BlueSkyFS *fs);
 void bluesky_flushd_invoke_conditional(BlueSkyFS *fs);
 void bluesky_inode_do_sync(BlueSkyInode *inode);
+void bluesky_flushd_thread_launch(BlueSkyFS *fs);
 
 void bluesky_debug_dump(BlueSkyFS *fs);