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);
+const BlueSkyRangesetItem *bluesky_rangeset_lookup_next(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. */