Skip to content

Commit bef4cf3

Browse files
committed
CDRIVER-3364 expose transaction state for session
1 parent bcdc484 commit bef4cf3

8 files changed

+238
-83
lines changed

src/libmongoc/doc/api.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ API Reference
5252
mongoc_stream_tls_t
5353
mongoc_topology_description_t
5454
mongoc_transaction_opt_t
55+
mongoc_transaction_state_t
5556
mongoc_update_flags_t
5657
mongoc_uri_t
5758
mongoc_version
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
:man_page: mongoc_client_session_get_transaction_state
2+
3+
mongoc_client_session_get_transaction_state()
4+
=============================================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
mongoc_transaction_state_t
12+
mongoc_client_session_get_transaction_state (const mongoc_client_session_t *session);
13+
14+
Returns the current transaction state for this session.
15+
16+
Parameters
17+
----------
18+
19+
* ``session``: A :symbol:`mongoc_client_session_t`.
20+
21+
Return
22+
------
23+
24+
Returns a :symbol:`mongoc_transaction_state_t` that represents the current transaction state.

src/libmongoc/doc/mongoc_client_session_t.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Example
2929

3030
mongoc_client_session_start_transaction
3131
mongoc_client_session_in_transaction
32+
mongoc_client_session_get_transaction_state
3233
mongoc_client_session_commit_transaction
3334
mongoc_client_session_abort_transaction
3435
mongoc_client_session_advance_cluster_time
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
:man_page: mongoc_transaction_state_t
2+
3+
mongoc_transaction_state_t
4+
==========================
5+
6+
Constants for transaction states
7+
8+
Synopsis
9+
--------
10+
11+
.. code-block:: c
12+
13+
typedef enum {
14+
MONGOC_TRANSACTION_NONE = 0,
15+
MONGOC_TRANSACTION_STARTING = 1,
16+
MONGOC_TRANSACTION_IN_PROGRESS = 2,
17+
MONGOC_TRANSACTION_COMMITTED = 3,
18+
MONGOC_TRANSACTION_ABORTED = 4,
19+
} mongoc_transaction_state_t;
20+
21+
Description
22+
-----------
23+
24+
These constants describe the current transaction state of a session.
25+
26+
Flag Values
27+
-----------
28+
29+
================================== =============================================================================
30+
MONGOC_TRANSACTION_NONE There is no transaction in progress.
31+
MONGOC_TRANSACTION_STARTING A transaction has been started, but no operation has been sent to the server.
32+
MONGOC_TRANSACTION_IN_PROGRESS A transaction is in progress.
33+
MONGOC_TRANSACTION_COMMITTED The transaction was committed.
34+
MONGOC_TRANSACTION_ABORTED The transaction was aborted.
35+
================================== =============================================================================

src/libmongoc/src/mongoc/mongoc-client-session-private.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,17 @@ typedef struct _mongoc_server_session_t {
5555
} mongoc_server_session_t;
5656

5757
typedef enum {
58-
MONGOC_TRANSACTION_NONE,
59-
MONGOC_TRANSACTION_STARTING,
60-
MONGOC_TRANSACTION_IN_PROGRESS,
61-
MONGOC_TRANSACTION_ENDING,
62-
MONGOC_TRANSACTION_COMMITTED,
63-
MONGOC_TRANSACTION_COMMITTED_EMPTY,
64-
MONGOC_TRANSACTION_ABORTED,
65-
} mongoc_transaction_state_t;
58+
MONGOC_INTERNAL_TRANSACTION_NONE,
59+
MONGOC_INTERNAL_TRANSACTION_STARTING,
60+
MONGOC_INTERNAL_TRANSACTION_IN_PROGRESS,
61+
MONGOC_INTERNAL_TRANSACTION_ENDING,
62+
MONGOC_INTERNAL_TRANSACTION_COMMITTED,
63+
MONGOC_INTERNAL_TRANSACTION_COMMITTED_EMPTY,
64+
MONGOC_INTERNAL_TRANSACTION_ABORTED,
65+
} mongoc_internal_transaction_state_t;
6666

6767
typedef struct _mongoc_transaction_t {
68-
mongoc_transaction_state_t state;
68+
mongoc_internal_transaction_state_t state;
6969
mongoc_transaction_opt_t opts;
7070
} mongoc_transaction_t;
7171

0 commit comments

Comments
 (0)