Convert rangeset implementation from a hashtable to GSequence.
[bluesky.git] / bluesky / bluesky.h
index 87c58a2..8fbcc0d 100644 (file)
@@ -87,11 +87,18 @@ void bluesky_string_resize(BlueSkyRCStr *string, gsize len);
 
 struct BlueSkyRangeset;
 typedef struct BlueSkyRangeset BlueSkyRangeset;
+typedef struct {
+    uint64_t start, length;
+    gpointer data;
+} BlueSkyRangesetItem;
+
 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);
+                                 uint64_t start, uint64_t length,
+                                 gpointer data);
+const BlueSkyRangesetItem *bluesky_rangeset_lookup(BlueSkyRangeset *rangeset,
+                                                   uint64_t offset);
 
 /* Storage interface.  This presents a key-value store abstraction, and can
  * have multiple implementations: in-memory, on-disk, in-cloud. */