expose Replica::num_local_operations via FFI

This commit is contained in:
Dustin J. Mitchell 2022-04-23 19:19:14 +00:00
parent fd504b7d66
commit 20823b7a73
No known key found for this signature in database
3 changed files with 20 additions and 0 deletions

View file

@ -109,6 +109,8 @@ static void test_replica_working_set(void) {
tc_working_set_free(ws);
TEST_ASSERT_EQUAL(19, tc_replica_num_local_operations(rep));
tc_replica_free(rep);
}

View file

@ -360,6 +360,19 @@ pub unsafe extern "C" fn tc_replica_undo(rep: *mut TCReplica, undone_out: *mut i
)
}
/// Get the number of local, un-synchronized operations, or -1 on error
#[no_mangle]
pub unsafe extern "C" fn tc_replica_num_local_operations(rep: *mut TCReplica) -> i64 {
wrap(
rep,
|rep| {
let count = rep.num_local_operations()? as i64;
Ok(count)
},
-1,
)
}
/// Add an UndoPoint, if one has not already been added by this Replica. This occurs automatically
/// when a change is made. The `force` flag allows forcing a new UndoPoint even if one has already
/// been created by this Replica, and may be useful when a Replica instance is held for a long time

View file

@ -557,6 +557,11 @@ TCResult tc_replica_sync(struct TCReplica *rep, struct TCServer *server, bool av
*/
TCResult tc_replica_undo(struct TCReplica *rep, int32_t *undone_out);
/**
* Get the number of local, un-synchronized operations, or -1 on error
*/
int64_t tc_replica_num_local_operations(struct TCReplica *rep);
/**
* Add an UndoPoint, if one has not already been added by this Replica. This occurs automatically
* when a change is made. The `force` flag allows forcing a new UndoPoint even if one has already