Skip to content

Commit 56ebd0f

Browse files
authored
Update versioned API getters (#765)
* Make mongoc_optional_t method args const * Add const modifier to mongoc_server_api_t getters * Fix wrong name for mongoc_server_api_t getter * Add getter to retrieve version from mongoc_server_api_t * Add documentation for mongoc_server_api_t getters * Add documentation for mongoc_optional_t * Fix CR feedback
1 parent 6c6935c commit 56ebd0f

15 files changed

+228
-8
lines changed

src/libmongoc/doc/api.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ API Reference
3838
mongoc_insert_flags_t
3939
mongoc_iovec_t
4040
mongoc_matcher_t
41+
mongoc_optional_t
4142
mongoc_query_flags_t
4243
mongoc_rand
4344
mongoc_read_concern_t
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
:man_page: mongoc_optional_copy
2+
3+
mongoc_optional_copy()
4+
======================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
void
12+
mongoc_optional_copy (const mongoc_optional_t *source, mongoc_optional_t *copy);
13+
14+
Creates a deep copy of ``source`` into ``copy``.
15+
16+
Parameters
17+
----------
18+
19+
* ``source``: A :symbol:`mongoc_optional_t`.
20+
* ``copy``: An empty :symbol:`mongoc_optional_t`. Values will be overwritten.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
:man_page: mongoc_optional_init
2+
3+
mongoc_optional_init()
4+
======================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
void
12+
mongoc_optional_init (mongoc_optional_t *opt);
13+
14+
Initializes values for a :symbol:`mongoc_optional_t`.
15+
16+
Parameters
17+
----------
18+
19+
* ``opt``: A :symbol:`mongoc_optional_t`.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
:man_page: mongoc_optional_is_set
2+
3+
mongoc_optional_is_set()
4+
========================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
bool
12+
mongoc_optional_is_set (const mongoc_optional_t *opt);
13+
14+
Returns whether a value for a :symbol:`mongoc_optional_t` was set.
15+
16+
Parameters
17+
----------
18+
19+
* ``opt``: A :symbol:`mongoc_optional_t`.
20+
21+
Returns
22+
-------
23+
24+
Returns ``true`` if a value was set, or ``false`` otherwise.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
:man_page: mongoc_optional_set_value
2+
3+
mongoc_optional_set_value()
4+
===========================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
void
12+
mongoc_optional_set_value (mongoc_optional_t *opt);
13+
14+
Sets a value on a :symbol:`mongoc_optional_t`. Once a value has been set, it cannot be unset, i.e. `mongoc_optional_is_set` will always return ``true`` after calling `mongoc_optional_set_value`.
15+
16+
Parameters
17+
----------
18+
19+
* ``opt``: A :symbol:`mongoc_optional_t`.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
:man_page: mongoc_optional_t
2+
3+
mongoc_optional_t
4+
=================
5+
6+
A struct to store optional boolean values.
7+
8+
Synopsis
9+
--------
10+
11+
Used to specify optional boolean flags, which may remain unset.
12+
13+
This is used within :symbol:`mongoc_server_api_t` to track whether a flag was explicitly set.
14+
15+
.. only:: html
16+
17+
Functions
18+
---------
19+
20+
.. toctree::
21+
:titlesonly:
22+
:maxdepth: 1
23+
24+
mongoc_optional_copy
25+
mongoc_optional_init
26+
mongoc_optional_is_set
27+
mongoc_optional_set_value
28+
mongoc_optional_value
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
:man_page: mongoc_optional_value
2+
3+
mongoc_optional_value()
4+
=======================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
bool
12+
mongoc_optional_value (const mongoc_optional_t *opt);
13+
14+
Returns the value for a :symbol:`mongoc_optional_t`.
15+
16+
Parameters
17+
----------
18+
19+
* ``opt``: A :symbol:`mongoc_optional_t`.
20+
21+
Returns
22+
-------
23+
24+
Returns the value that was set on the :symbol:`mongoc_optional_t`. If no value was set, ``false`` is returned.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
:man_page: mongoc_server_api_get_deprecation_errors
2+
3+
mongoc_server_api_get_deprecation_errors()
4+
==========================================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
const mongoc_optional_t *
12+
mongoc_server_api_get_deprecation_errors (const mongoc_server_api_t *api);
13+
14+
Returns the value of the deprecation_errors flag for the :symbol:`mongoc_server_api_t`.
15+
16+
Parameters
17+
----------
18+
19+
* ``api``: A :symbol:`mongoc_server_api_t`.
20+
21+
Returns
22+
-------
23+
24+
Returns a :symbol:`mongoc_optional_t` indicating whether the deprecation_errors flag was set.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
:man_page: mongoc_server_api_get_strict
2+
3+
mongoc_server_api_get_strict()
4+
==============================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
const mongoc_optional_t *
12+
mongoc_server_api_get_strict (const mongoc_server_api_t *api);
13+
14+
Returns the value of the strict flag for the :symbol:`mongoc_server_api_t`.
15+
16+
Parameters
17+
----------
18+
19+
* ``api``: A :symbol:`mongoc_server_api_t`.
20+
21+
Returns
22+
-------
23+
24+
Returns a :symbol:`mongoc_optional_t` indicating whether the strict flag was set.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
:man_page: mongoc_server_api_get_version
2+
3+
mongoc_server_api_get_version()
4+
===============================
5+
6+
Synopsis
7+
--------
8+
9+
.. code-block:: c
10+
11+
mongoc_server_api_version_t
12+
mongoc_server_api_get_version (const mongoc_server_api_t *api);
13+
14+
Fetch the declared API version as from a :symbol:`mongoc_server_api_t`.
15+
16+
Parameters
17+
----------
18+
19+
* ``api``: A :symbol:`mongoc_server_api_t`.
20+
21+
Returns
22+
-------
23+
24+
Returns a :symbol:`mongoc_server_api_version_t` with the API version declare in the :symbol:`mongoc_server_api_t`.

src/libmongoc/doc/mongoc_server_api_t.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,8 @@ A :symbol:`mongoc_server_api_t` can be set on a client, and will then be sent to
2626
mongoc_server_api_copy
2727
mongoc_server_api_deprecation_errors
2828
mongoc_server_api_destroy
29+
mongoc_server_api_get_deprecation_errors
30+
mongoc_server_api_get_strict
31+
mongoc_server_api_get_version
2932
mongoc_server_api_new
3033
mongoc_server_api_strict

src/libmongoc/src/mongoc/mongoc-optional.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ mongoc_optional_init (mongoc_optional_t *opt)
2424
}
2525

2626
bool
27-
mongoc_optional_is_set (mongoc_optional_t *opt)
27+
mongoc_optional_is_set (const mongoc_optional_t *opt)
2828
{
2929
BSON_ASSERT (opt);
3030
return opt->is_set;
3131
}
3232

3333
bool
34-
mongoc_optional_value (mongoc_optional_t *opt)
34+
mongoc_optional_value (const mongoc_optional_t *opt)
3535
{
3636
BSON_ASSERT (opt);
3737
return opt->value;

src/libmongoc/src/mongoc/mongoc-optional.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ MONGOC_EXPORT (void)
3434
mongoc_optional_init (mongoc_optional_t *opt);
3535

3636
MONGOC_EXPORT (bool)
37-
mongoc_optional_is_set (mongoc_optional_t *opt);
37+
mongoc_optional_is_set (const mongoc_optional_t *opt);
3838

3939
MONGOC_EXPORT (bool)
40-
mongoc_optional_value (mongoc_optional_t *opt);
40+
mongoc_optional_value (const mongoc_optional_t *opt);
4141

4242
MONGOC_EXPORT (void)
4343
mongoc_optional_set_value (mongoc_optional_t *opt, bool val);

src/libmongoc/src/mongoc/mongoc-server-api.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,22 @@ mongoc_server_api_deprecation_errors (mongoc_server_api_t *api,
9797
}
9898

9999
const mongoc_optional_t *
100-
mongoc_server_api_get_deprecation_errors (mongoc_server_api_t *api)
100+
mongoc_server_api_get_deprecation_errors (const mongoc_server_api_t *api)
101101
{
102102
BSON_ASSERT (api);
103103
return &api->deprecation_errors;
104104
}
105105

106106
const mongoc_optional_t *
107-
mongo_server_api_get_strict (mongoc_server_api_t *api)
107+
mongoc_server_api_get_strict (const mongoc_server_api_t *api)
108108
{
109109
BSON_ASSERT (api);
110110
return &api->strict;
111111
}
112+
113+
mongoc_server_api_version_t
114+
mongoc_server_api_get_version (const mongoc_server_api_t *api)
115+
{
116+
BSON_ASSERT (api);
117+
return api->version;
118+
}

src/libmongoc/src/mongoc/mongoc-server-api.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,13 @@ mongoc_server_api_deprecation_errors (mongoc_server_api_t *api,
5454
bool deprecation_errors);
5555

5656
MONGOC_EXPORT (const mongoc_optional_t *)
57-
mongoc_server_api_get_deprecation_errors (mongoc_server_api_t *api);
57+
mongoc_server_api_get_deprecation_errors (const mongoc_server_api_t *api);
5858

5959
MONGOC_EXPORT (const mongoc_optional_t *)
60-
mongo_server_api_get_strict (mongoc_server_api_t *api);
60+
mongoc_server_api_get_strict (const mongoc_server_api_t *api);
61+
62+
MONGOC_EXPORT (mongoc_server_api_version_t)
63+
mongoc_server_api_get_version (const mongoc_server_api_t *api);
6164

6265
BSON_END_DECLS
6366

0 commit comments

Comments
 (0)