Add Replica::num_undo_points and exclude undo points from num_operations

This commit is contained in:
Dustin J. Mitchell 2022-07-17 23:22:27 +00:00
parent 17726ddfe4
commit 4a1556ccb9
6 changed files with 79 additions and 6 deletions

View file

@ -360,7 +360,8 @@ 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
/// Get the number of local, un-synchronized operations (not including undo points), or -1 on
/// error.
#[no_mangle]
pub unsafe extern "C" fn tc_replica_num_local_operations(rep: *mut TCReplica) -> i64 {
wrap(
@ -373,6 +374,19 @@ pub unsafe extern "C" fn tc_replica_num_local_operations(rep: *mut TCReplica) ->
)
}
/// Get the number of undo points (number of undo calls possible), or -1 on error.
#[no_mangle]
pub unsafe extern "C" fn tc_replica_num_undo_points(rep: *mut TCReplica) -> i64 {
wrap(
rep,
|rep| {
let count = rep.num_undo_points()? 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

@ -558,10 +558,16 @@ 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
* Get the number of local, un-synchronized operations (not including undo points), or -1 on
* error.
*/
int64_t tc_replica_num_local_operations(struct TCReplica *rep);
/**
* Get the number of undo points (number of undo calls possible), or -1 on error.
*/
int64_t tc_replica_num_undo_points(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