Implement a rangeset data type and use it to track items in log segments.
[bluesky.git] / bluesky / bluesky.h
index ad7b942..87c58a2 100644 (file)
@@ -85,6 +85,14 @@ void bluesky_string_unref(BlueSkyRCStr *string);
 BlueSkyRCStr *bluesky_string_dup(BlueSkyRCStr *string);
 void bluesky_string_resize(BlueSkyRCStr *string, gsize len);
 
+struct BlueSkyRangeset;
+typedef struct BlueSkyRangeset BlueSkyRangeset;
+BlueSkyRangeset *bluesky_rangeset_new();
+void bluesky_rangeset_free(BlueSkyRangeset *rangeset);
+gboolean bluesky_rangeset_insert(BlueSkyRangeset *rangeset,
+                                 int start, int length, gpointer data);
+gpointer bluesky_rangeset_lookup(BlueSkyRangeset *rangeset, int start);
+
 /* Storage interface.  This presents a key-value store abstraction, and can
  * have multiple implementations: in-memory, on-disk, in-cloud. */
 struct BlueSkyStore;