diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 05806a919526d0c8d0a56122826acec781359b6e..3e872538d6d05435b604ce2a199daad8bc4ed4bc 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,7 +1,7 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.23.1', - LANGUAGE: 'None', + VERSION: '1.23.2', + LANGUAGE: 'en', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: false, diff --git a/_static/searchtools.js b/_static/searchtools.js index 41b8336776442fbc64332ffbd3d2c1ddd8b3b9c2..024ac7c430a70907a6715006dc263b4f6d1976ba 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -227,105 +227,11 @@ var Scorer = { - - -var splitChars = (function() { - var result = {}; - var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, - 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, - 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, - 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, - 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, - 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, - 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, - 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, - 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, - 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; - var i, j, start, end; - for (i = 0; i < singles.length; i++) { - result[singles[i]] = true; - } - var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], - [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], - [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], - [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], - [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], - [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], - [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], - [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], - [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], - [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], - [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], - [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], - [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], - [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], - [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], - [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], - [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], - [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], - [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], - [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], - [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], - [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], - [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], - [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], - [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], - [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], - [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], - [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], - [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], - [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], - [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], - [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], - [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], - [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], - [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], - [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], - [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], - [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], - [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], - [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], - [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], - [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], - [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], - [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], - [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], - [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], - [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], - [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], - [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; - for (i = 0; i < ranges.length; i++) { - start = ranges[i][0]; - end = ranges[i][1]; - for (j = start; j <= end; j++) { - result[j] = true; - } - } - return result; -})(); - function splitQuery(query) { - var result = []; - var start = -1; - for (var i = 0; i < query.length; i++) { - if (splitChars[query.charCodeAt(i)]) { - if (start !== -1) { - result.push(query.slice(start, i)); - start = -1; - } - } else if (start === -1) { - start = i; - } - } - if (start !== -1) { - result.push(query.slice(start)); - } - return result; + return query.split(/\s+/); } - - /** * Search Module */ @@ -417,7 +323,7 @@ var Search = { */ query : function(query) { var i; - var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; + var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; // stem the searchterms and add them to the correct list var stemmer = new Stemmer(); diff --git a/index.html b/index.html index 1e51417465aaa90a6ec4c8558d37b4a734efa8a2..896ec89dec716cb28fe70e0b0e9818d2d74e2233 100644 --- a/index.html +++ b/index.html @@ -1,9 +1,9 @@ - + - + @@ -21,7 +21,7 @@ delighted.survey(); - MongoDB C Driver — MongoDB C Driver 1.23.1 + MongoDB C Driver — MongoDB C Driver 1.23.2 @@ -30,6 +30,7 @@ + @@ -48,7 +49,7 @@
  • next
  • - + @@ -57,28 +58,28 @@
    -

    MongoDB C Driver

    +

    MongoDB C Driver

    A Cross Platform MongoDB Client Library for C

    The MongoDB C Driver, also known as “libmongoc”, is a library for using MongoDB from C applications, and for writing MongoDB drivers in higher-level languages.

    It depends on libbson to generate and parse BSON documents, the native data format of MongoDB.

    -

    Download

    -

    Latest release: mongo-c-driver-1.23.1.tar.gz

    +

    Download

    +

    Latest release: mongo-c-driver-1.23.2.tar.gz

    -

    Documentation

    +

    Documentation

    Installation

    Tutorial

    libmongoc reference

    libbson reference

    -

    How To Ask For Help

    +

    How To Ask For Help

    For help using the driver: MongoDB Community Forums.

    To file a bug or feature request: MongoDB Jira Issue Tracker.

    -

    Documentation for Older Versions

    +

    Documentation for Older Versions

    diff --git a/libbson-releases.html b/libbson-releases.html index 4d8b1d09c4fa31b87887e50694873c4000955a53..288f8f1733369c86b55f70fc6f1d5dc1b40d4550 100644 --- a/libbson-releases.html +++ b/libbson-releases.html @@ -1,9 +1,9 @@ - + - + @@ -21,7 +21,7 @@ delighted.survey(); - libbson Releases — MongoDB C Driver 1.23.1 + libbson Releases — MongoDB C Driver 1.23.2 @@ -30,6 +30,7 @@ + @@ -46,7 +47,7 @@
  • previous
  • - + @@ -55,11 +56,12 @@
    -

    libbson Releases

    -

    Latest Release (1.23.1)

    +

    libbson Releases

    +

    Latest Release (1.23.2)

    Current Development (master)

    diff --git a/libbson/1.23.1/api.html b/libbson/1.23.1/api.html index 2ef72b9ab7b92e17f4f58f2d36e0fc339b7d39fd..dde10c756da64f3a06036cd68054e5c3b6a33c77 100644 --- a/libbson/1.23.1/api.html +++ b/libbson/1.23.1/api.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_aligned_alloc.html b/libbson/1.23.1/bson_aligned_alloc.html index 32a478022fa30b1b4b773d1b37aaa19aa36b404b..991dc84a8f9d7eb93b1359f605a59e889fbf81e4 100644 --- a/libbson/1.23.1/bson_aligned_alloc.html +++ b/libbson/1.23.1/bson_aligned_alloc.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_aligned_alloc0.html b/libbson/1.23.1/bson_aligned_alloc0.html index fb283ca78c985737315ac804d8ef27e807868628..e5b0fcf67d7588ac35899d037b63941492a65252 100644 --- a/libbson/1.23.1/bson_aligned_alloc0.html +++ b/libbson/1.23.1/bson_aligned_alloc0.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_array.html b/libbson/1.23.1/bson_append_array.html index 67a79103b764d246c162b4927a3dc8dbf67bdd49..4a1c381ec4dbffc693f208383da9ec33e40fbd54 100644 --- a/libbson/1.23.1/bson_append_array.html +++ b/libbson/1.23.1/bson_append_array.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_array_begin.html b/libbson/1.23.1/bson_append_array_begin.html index 9ad2f1b8ec29b07a510130670de4c4755f9338c8..09470a2495e2d6c2cc3a9763162625bc2af9844e 100644 --- a/libbson/1.23.1/bson_append_array_begin.html +++ b/libbson/1.23.1/bson_append_array_begin.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_array_end.html b/libbson/1.23.1/bson_append_array_end.html index 995e2cdae90a3a31fbf79953360c7673fa9feedb..2ff79f0fa81c0a2dcdae69fc09647e891617142c 100644 --- a/libbson/1.23.1/bson_append_array_end.html +++ b/libbson/1.23.1/bson_append_array_end.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_binary.html b/libbson/1.23.1/bson_append_binary.html index ca26a3b2f520adf011aa6361fa4769bc0c0b9ea6..88c4d835df22f18dad2de536aa3de5732df3a053 100644 --- a/libbson/1.23.1/bson_append_binary.html +++ b/libbson/1.23.1/bson_append_binary.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_bool.html b/libbson/1.23.1/bson_append_bool.html index ce5fed3737835939120977e468e1451ef396157d..c478c1195c1c03f08303eaed09274735321f1e27 100644 --- a/libbson/1.23.1/bson_append_bool.html +++ b/libbson/1.23.1/bson_append_bool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_code.html b/libbson/1.23.1/bson_append_code.html index 69b8c783d3475205d8d2c0e8f739305f3249983a..1705a0e191eb4dabdbdb1bd0d4b66ceb3d3848d8 100644 --- a/libbson/1.23.1/bson_append_code.html +++ b/libbson/1.23.1/bson_append_code.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_code_with_scope.html b/libbson/1.23.1/bson_append_code_with_scope.html index 6aedee48b887585baf8bead8cb3ec1a8b40ae021..363a69f3ea537dab9304a5a437f4fbfa97dd8f21 100644 --- a/libbson/1.23.1/bson_append_code_with_scope.html +++ b/libbson/1.23.1/bson_append_code_with_scope.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_date_time.html b/libbson/1.23.1/bson_append_date_time.html index 6e055f64bcbc626133c757c12060475eb239b62b..e5dd068e93fac1f67b6c524cf8bd476549a8ce2a 100644 --- a/libbson/1.23.1/bson_append_date_time.html +++ b/libbson/1.23.1/bson_append_date_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_dbpointer.html b/libbson/1.23.1/bson_append_dbpointer.html index 870daf31ce35ab7479405651e2b1420d579ac102..b601c9f3dc6932899e5dec3e8d5934a7c93c7987 100644 --- a/libbson/1.23.1/bson_append_dbpointer.html +++ b/libbson/1.23.1/bson_append_dbpointer.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_decimal128.html b/libbson/1.23.1/bson_append_decimal128.html index 035153173a344b2da3bb711be8d25fa986392a9f..a9f58492eb08efa47188862076ef7633bc658d19 100644 --- a/libbson/1.23.1/bson_append_decimal128.html +++ b/libbson/1.23.1/bson_append_decimal128.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_document.html b/libbson/1.23.1/bson_append_document.html index 14353749355e071713e2d6f82ff52203077b0508..5e54d5a86cf434941a158cbfc539450fd2ae07cc 100644 --- a/libbson/1.23.1/bson_append_document.html +++ b/libbson/1.23.1/bson_append_document.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_document_begin.html b/libbson/1.23.1/bson_append_document_begin.html index 385f940747939533173e582cc95cc70b3c23eb6f..d9768713ddd11cf5c83990cffec54fdba63e4632 100644 --- a/libbson/1.23.1/bson_append_document_begin.html +++ b/libbson/1.23.1/bson_append_document_begin.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_document_end.html b/libbson/1.23.1/bson_append_document_end.html index c2aea40d0e9c12a9587bbee59217a7bf1e76f545..2f08b3c4f9e204529334f50916ed33102e00d43a 100644 --- a/libbson/1.23.1/bson_append_document_end.html +++ b/libbson/1.23.1/bson_append_document_end.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_double.html b/libbson/1.23.1/bson_append_double.html index b24bafbdf936c806990d397ec5430a7afa514947..a19dd40fdb7ffebf72a08030dce5f2af8976e9d1 100644 --- a/libbson/1.23.1/bson_append_double.html +++ b/libbson/1.23.1/bson_append_double.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_int32.html b/libbson/1.23.1/bson_append_int32.html index 30fb5ef787812a0fc056419ec21fdbd638f0266d..daa89ccf6e09fbf4fcd5b2415d4d10798042f5b9 100644 --- a/libbson/1.23.1/bson_append_int32.html +++ b/libbson/1.23.1/bson_append_int32.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_int64.html b/libbson/1.23.1/bson_append_int64.html index a110741658b894f80b9202310043bd3f50a6e9c4..40aed6cfb8418b1caa208ef45d04b16178853ec0 100644 --- a/libbson/1.23.1/bson_append_int64.html +++ b/libbson/1.23.1/bson_append_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_iter.html b/libbson/1.23.1/bson_append_iter.html index f0f0b9304c53377beb28f2b079cc7230adc4f111..bf9346f929ebdaefa801697317b03af36776c210 100644 --- a/libbson/1.23.1/bson_append_iter.html +++ b/libbson/1.23.1/bson_append_iter.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_maxkey.html b/libbson/1.23.1/bson_append_maxkey.html index 6a226746cf0c10fbe3a74e70c144ef327157255e..b1f7f7a904ff97b46ddf3b0b43f8eb44786aff39 100644 --- a/libbson/1.23.1/bson_append_maxkey.html +++ b/libbson/1.23.1/bson_append_maxkey.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_minkey.html b/libbson/1.23.1/bson_append_minkey.html index 00953c414517ddcea9b29f94f2bd1199b719bc86..1572ce5997bbc89c848b7d32856f6b960853e102 100644 --- a/libbson/1.23.1/bson_append_minkey.html +++ b/libbson/1.23.1/bson_append_minkey.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_now_utc.html b/libbson/1.23.1/bson_append_now_utc.html index c6782f9aee69bf2da783daf31d5162abad9132d3..ab6fa8968d4b1e206e7c9df02ecb912e4115c8ef 100644 --- a/libbson/1.23.1/bson_append_now_utc.html +++ b/libbson/1.23.1/bson_append_now_utc.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_null.html b/libbson/1.23.1/bson_append_null.html index 83b2893190ce64d1b8085f4f4dc670dd1b26545d..2bf5e4a7975c59b45ce7e22dd457444d7d65adb7 100644 --- a/libbson/1.23.1/bson_append_null.html +++ b/libbson/1.23.1/bson_append_null.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_oid.html b/libbson/1.23.1/bson_append_oid.html index 7cec62080e21b732d5359e55af7f2d0546e034f1..5290e2484fea174752bde035d2255203f6959381 100644 --- a/libbson/1.23.1/bson_append_oid.html +++ b/libbson/1.23.1/bson_append_oid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_regex.html b/libbson/1.23.1/bson_append_regex.html index 16ddb93b31c7fffc43a642093a86273205f36a49..a8b9a86ff66a38880ab59c8dfd4dc7d5b668c20e 100644 --- a/libbson/1.23.1/bson_append_regex.html +++ b/libbson/1.23.1/bson_append_regex.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_regex_w_len.html b/libbson/1.23.1/bson_append_regex_w_len.html index f777c5c70c21f06b2bcf9e06843b00e266a87758..5fb5dde5475f970eb1113773044ccf7febd349bc 100644 --- a/libbson/1.23.1/bson_append_regex_w_len.html +++ b/libbson/1.23.1/bson_append_regex_w_len.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_symbol.html b/libbson/1.23.1/bson_append_symbol.html index 6770a4b3e154185ec7ef4f42b9cefd922ab6173a..4325fcb8224b94c2ac7934753d24c7e7aedf1ff3 100644 --- a/libbson/1.23.1/bson_append_symbol.html +++ b/libbson/1.23.1/bson_append_symbol.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_time_t.html b/libbson/1.23.1/bson_append_time_t.html index fe2f0467e4e7bce66dd884c050403497d71578d9..e07075bec5b7a44bcc984da5818b4159ac7015c3 100644 --- a/libbson/1.23.1/bson_append_time_t.html +++ b/libbson/1.23.1/bson_append_time_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_timestamp.html b/libbson/1.23.1/bson_append_timestamp.html index 0a21dc0c17bfb80fe95fca4fec363057c039718a..d4ca3dfa2aee673ce2ac2a64afa64d6086b3403f 100644 --- a/libbson/1.23.1/bson_append_timestamp.html +++ b/libbson/1.23.1/bson_append_timestamp.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_timeval.html b/libbson/1.23.1/bson_append_timeval.html index 55d012964b8f157bfd21262e568e72c3f31dd316..dd065ca66448edacb1cfc5a336c82fbce1bebf74 100644 --- a/libbson/1.23.1/bson_append_timeval.html +++ b/libbson/1.23.1/bson_append_timeval.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_undefined.html b/libbson/1.23.1/bson_append_undefined.html index 89221835aaca395089f36e18b59d157bc26c12a7..74c7fb72fbc64a93b2684d67bf78fa22fd5e6d25 100644 --- a/libbson/1.23.1/bson_append_undefined.html +++ b/libbson/1.23.1/bson_append_undefined.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_utf8.html b/libbson/1.23.1/bson_append_utf8.html index d8bcd1defa9f24c11f781551b09205e7338f802f..0bc659766bb1a67f56e449a7cb7349858d14d512 100644 --- a/libbson/1.23.1/bson_append_utf8.html +++ b/libbson/1.23.1/bson_append_utf8.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_append_value.html b/libbson/1.23.1/bson_append_value.html index 1b8aafdba72776442688c3db6732621791e39e27..23b93d1aca69958e1329e3ea385d82959a419b8f 100644 --- a/libbson/1.23.1/bson_append_value.html +++ b/libbson/1.23.1/bson_append_value.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_array_as_json.html b/libbson/1.23.1/bson_array_as_json.html index 2fad15e9608ecb2cf112bbbe6dcf875ebab4b7ae..27e0a30424706233ea5a5e2d19ca0b5e9c50eafe 100644 --- a/libbson/1.23.1/bson_array_as_json.html +++ b/libbson/1.23.1/bson_array_as_json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_as_canonical_extended_json.html b/libbson/1.23.1/bson_as_canonical_extended_json.html index 156420bdb43a8a0098818b0dbc1c353243872c2f..89bb6a803b4e53bfbb59f168b661a3fcf126ab9d 100644 --- a/libbson/1.23.1/bson_as_canonical_extended_json.html +++ b/libbson/1.23.1/bson_as_canonical_extended_json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_as_json.html b/libbson/1.23.1/bson_as_json.html index ca597c05bac7974e5d8c9e3a9501ce4bd0a13f08..7275086f7eb3b03306e45c2547c647595c350947 100644 --- a/libbson/1.23.1/bson_as_json.html +++ b/libbson/1.23.1/bson_as_json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_as_json_with_opts.html b/libbson/1.23.1/bson_as_json_with_opts.html index aa3ef85d9596cf991689a1ad84e7536d473d47d1..37505f1c866c5743cc2214c6753a7dcd70ee5f8f 100644 --- a/libbson/1.23.1/bson_as_json_with_opts.html +++ b/libbson/1.23.1/bson_as_json_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_as_relaxed_extended_json.html b/libbson/1.23.1/bson_as_relaxed_extended_json.html index 1200163020df23a8141185a9d9dbfdab80a670e3..5a92a8329f79b9ea802a306a3d1933154ad1d9de 100644 --- a/libbson/1.23.1/bson_as_relaxed_extended_json.html +++ b/libbson/1.23.1/bson_as_relaxed_extended_json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_ascii_strtoll.html b/libbson/1.23.1/bson_ascii_strtoll.html index c0144b3b5af724e9b3c8fe3e94dd01e81cf10fb4..2b7fc0537f4d4f5f995b38492fe508683601aac3 100644 --- a/libbson/1.23.1/bson_ascii_strtoll.html +++ b/libbson/1.23.1/bson_ascii_strtoll.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_check_version.html b/libbson/1.23.1/bson_check_version.html index af61f316e8f8be24b0ceb6269103b126fe73a420..3407a8146b16f74fbd123a3a23c2681a2f23b86a 100644 --- a/libbson/1.23.1/bson_check_version.html +++ b/libbson/1.23.1/bson_check_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_compare.html b/libbson/1.23.1/bson_compare.html index ea39864fec3a47e07ef2caa1e525fe65a08d8007..b639bba2809eba4c0cc67e492106a3e5395b9c49 100644 --- a/libbson/1.23.1/bson_compare.html +++ b/libbson/1.23.1/bson_compare.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_concat.html b/libbson/1.23.1/bson_concat.html index b74ca5bef5ab528e608157728f50467f8cac8b09..7956db7decd19dddb210c9d6cf95ef6948dc3cb3 100644 --- a/libbson/1.23.1/bson_concat.html +++ b/libbson/1.23.1/bson_concat.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_context_destroy.html b/libbson/1.23.1/bson_context_destroy.html index 377a14b094927b1e9f7b323f713ad4bb73f3a413..93572bb9afdfc410279540429b89fa0aa2c6fc56 100644 --- a/libbson/1.23.1/bson_context_destroy.html +++ b/libbson/1.23.1/bson_context_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_context_get_default.html b/libbson/1.23.1/bson_context_get_default.html index f2e127770f83dcabd8ea28fb24b68ef1e7fbd414..ff852013b3acfb770ea85988d0eac2930f0ee83a 100644 --- a/libbson/1.23.1/bson_context_get_default.html +++ b/libbson/1.23.1/bson_context_get_default.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_context_new.html b/libbson/1.23.1/bson_context_new.html index 239fce4e5c170bf090e0504b890c36f1b02f4240..4a44720a671b4e8538cd82b3c4f3824ee1cd364a 100644 --- a/libbson/1.23.1/bson_context_new.html +++ b/libbson/1.23.1/bson_context_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_context_t.html b/libbson/1.23.1/bson_context_t.html index 668036cf9db084acbed1deaa50d59ac29c2f824d..aa3d54c5c12619559e0b36dfb526eaf0a7f2c9e4 100644 --- a/libbson/1.23.1/bson_context_t.html +++ b/libbson/1.23.1/bson_context_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_copy.html b/libbson/1.23.1/bson_copy.html index 11fe1657f25e498946468992c991b3ed8a3b3c0b..d30e236bf34ed9c58385d0e9566111fa0943d0fc 100644 --- a/libbson/1.23.1/bson_copy.html +++ b/libbson/1.23.1/bson_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_copy_to.html b/libbson/1.23.1/bson_copy_to.html index 1eeb8656d6f66a45b3c3188bdc8ee9ac88ea6d61..eaa404f52acc62e7e67042397ca126d3473ea392 100644 --- a/libbson/1.23.1/bson_copy_to.html +++ b/libbson/1.23.1/bson_copy_to.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_copy_to_excluding.html b/libbson/1.23.1/bson_copy_to_excluding.html index 769abbccc9772718e73746f74851f9842d6e2473..94d5b9e974b8b16c394923e4c64287c8ea4463b8 100644 --- a/libbson/1.23.1/bson_copy_to_excluding.html +++ b/libbson/1.23.1/bson_copy_to_excluding.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_copy_to_excluding_noinit.html b/libbson/1.23.1/bson_copy_to_excluding_noinit.html index 2f9b11796525c4864527db2e410696bf0c48ecbd..ea2092cbd165b1ad4de527155ef4da3680203027 100644 --- a/libbson/1.23.1/bson_copy_to_excluding_noinit.html +++ b/libbson/1.23.1/bson_copy_to_excluding_noinit.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_copy_to_excluding_noinit_va.html b/libbson/1.23.1/bson_copy_to_excluding_noinit_va.html index e5ef003309f5739897c339df157c03e838c7403a..2ed96d168ae1f573cb9ef50f2b6ca7ddb968af46 100644 --- a/libbson/1.23.1/bson_copy_to_excluding_noinit_va.html +++ b/libbson/1.23.1/bson_copy_to_excluding_noinit_va.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_count_keys.html b/libbson/1.23.1/bson_count_keys.html index 32be496ec6c25b3eaa22df1c165eb215ba1a07dc..b70d020284945f566fb6ab8c1c044b1a4fcccfee 100644 --- a/libbson/1.23.1/bson_count_keys.html +++ b/libbson/1.23.1/bson_count_keys.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_decimal128_from_string.html b/libbson/1.23.1/bson_decimal128_from_string.html index f58d69295bb98b2b36f06d7bbef26b72b0483107..b91d02e586c3ac329097f2b794a2a703034b4862 100644 --- a/libbson/1.23.1/bson_decimal128_from_string.html +++ b/libbson/1.23.1/bson_decimal128_from_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_decimal128_from_string_w_len.html b/libbson/1.23.1/bson_decimal128_from_string_w_len.html index a71016b07c37345b34d3b291e6f1d91134657b9c..b13d9c3f1764e72cfe61c23a48d898a840b4c8a1 100644 --- a/libbson/1.23.1/bson_decimal128_from_string_w_len.html +++ b/libbson/1.23.1/bson_decimal128_from_string_w_len.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_decimal128_t.html b/libbson/1.23.1/bson_decimal128_t.html index 062e90a7a6cd95f3c650f5643e7050ed3793e599..37798cc14545d9d38fdd04f37205b04662e0c04c 100644 --- a/libbson/1.23.1/bson_decimal128_t.html +++ b/libbson/1.23.1/bson_decimal128_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_decimal128_to_string.html b/libbson/1.23.1/bson_decimal128_to_string.html index 111e550c5d0ce57f4eb4237282b60fca43c7b0ee..f3c31ec033c6c2ec7f580d20fa2ad1336a3452c3 100644 --- a/libbson/1.23.1/bson_decimal128_to_string.html +++ b/libbson/1.23.1/bson_decimal128_to_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_destroy.html b/libbson/1.23.1/bson_destroy.html index e7ce4d0b70f4e9bd7b961bc953edf50eb7e13157..b3fba92394e2e44d4c4092f2a4ac2c22cc578884 100644 --- a/libbson/1.23.1/bson_destroy.html +++ b/libbson/1.23.1/bson_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_destroy_with_steal.html b/libbson/1.23.1/bson_destroy_with_steal.html index 5b624f8a7a31e88e98855f6a2df9286c6e159912..39909b7f7917905c19be84aa525ec485dd6ca23f 100644 --- a/libbson/1.23.1/bson_destroy_with_steal.html +++ b/libbson/1.23.1/bson_destroy_with_steal.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_equal.html b/libbson/1.23.1/bson_equal.html index 62b141792f80e9af4b70d8a2cc70c0718101b29d..3714cca990d18cd1a3e3f5e5d80dbc7c52c55333 100644 --- a/libbson/1.23.1/bson_equal.html +++ b/libbson/1.23.1/bson_equal.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_error_t.html b/libbson/1.23.1/bson_error_t.html index 4ddbf589ba162dbc0bc691b7bef5ea4fccae892c..d2b61c9695b0828db966c5bb7eccbdd1d36930cc 100644 --- a/libbson/1.23.1/bson_error_t.html +++ b/libbson/1.23.1/bson_error_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_free.html b/libbson/1.23.1/bson_free.html index 2fe0a23fd79bffd9a8eddd3f54bb5179208d109a..80c1dedc89c5f38b2770d2181c00d83704743b06 100644 --- a/libbson/1.23.1/bson_free.html +++ b/libbson/1.23.1/bson_free.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_get_data.html b/libbson/1.23.1/bson_get_data.html index 3978828d0836a398a7aed8b0991df34861508541..e3b9edcd43b7a3ddcee8a16cf8ef6a897d4e16b0 100644 --- a/libbson/1.23.1/bson_get_data.html +++ b/libbson/1.23.1/bson_get_data.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_get_major_version.html b/libbson/1.23.1/bson_get_major_version.html index d12e70ede350a7c06691a4daf0d70a48219256dc..239ead29e6529695a0affb374728f8d9a9af7deb 100644 --- a/libbson/1.23.1/bson_get_major_version.html +++ b/libbson/1.23.1/bson_get_major_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_get_micro_version.html b/libbson/1.23.1/bson_get_micro_version.html index 0ee593b6cc0d47e03afd0203c84e5a071e064df1..795443afe65873aa89c886ce2e6d053d9fef69ba 100644 --- a/libbson/1.23.1/bson_get_micro_version.html +++ b/libbson/1.23.1/bson_get_micro_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_get_minor_version.html b/libbson/1.23.1/bson_get_minor_version.html index 64e42563c8e3d02284bb84fbe320dff0ecd36f5c..a7122a802e4560364680e9985c62acafe19ffb6a 100644 --- a/libbson/1.23.1/bson_get_minor_version.html +++ b/libbson/1.23.1/bson_get_minor_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_get_monotonic_time.html b/libbson/1.23.1/bson_get_monotonic_time.html index bd9a485535874b62593ecef705a0f0b632c9fc3e..abd44b4ff5e8fdd91f51015a1c5a9999d17c91be 100644 --- a/libbson/1.23.1/bson_get_monotonic_time.html +++ b/libbson/1.23.1/bson_get_monotonic_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_get_version.html b/libbson/1.23.1/bson_get_version.html index 9dc8df475b1b2b9a3b5c328f7858e0f1fdba291c..60a1068c244bddf2a24e8f2a9b6fa15cfd5d10f4 100644 --- a/libbson/1.23.1/bson_get_version.html +++ b/libbson/1.23.1/bson_get_version.html @@ -37,6 +37,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_has_field.html b/libbson/1.23.1/bson_has_field.html index 0bded3705f6cc1ccb51943fef3605ef94a47d406..9267f6f34d85c0090a7da816bda09cae56146cd6 100644 --- a/libbson/1.23.1/bson_has_field.html +++ b/libbson/1.23.1/bson_has_field.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_init.html b/libbson/1.23.1/bson_init.html index 746ef9948e5e7519126f6c8c176c20a86fa393b8..f3b80118f4b5209b6bedf4f89b03124c5cea33ca 100644 --- a/libbson/1.23.1/bson_init.html +++ b/libbson/1.23.1/bson_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_init_from_json.html b/libbson/1.23.1/bson_init_from_json.html index d9689b43933a9ef05f027def56894bbdaa8b2264..ba77185f2df48cf06dbbb31b0f2ad44ae1696920 100644 --- a/libbson/1.23.1/bson_init_from_json.html +++ b/libbson/1.23.1/bson_init_from_json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_init_static.html b/libbson/1.23.1/bson_init_static.html index c8a91a769ab6a0af181d3159ef03536b01af6b78..2451a29427a12b0fec7eae7828dcc102f6ddfe85 100644 --- a/libbson/1.23.1/bson_init_static.html +++ b/libbson/1.23.1/bson_init_static.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_isspace.html b/libbson/1.23.1/bson_isspace.html index a4fc8a0fc0997324a575469ae8b913405405a057..b1c8c602dc23a6870fcddc5ada841380a2b96427 100644 --- a/libbson/1.23.1/bson_isspace.html +++ b/libbson/1.23.1/bson_isspace.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_array.html b/libbson/1.23.1/bson_iter_array.html index 16480f00e71174db8764464dc610813dd021185b..f94ee134da1217ff998646cbf8c82b1fdb663af0 100644 --- a/libbson/1.23.1/bson_iter_array.html +++ b/libbson/1.23.1/bson_iter_array.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_as_bool.html b/libbson/1.23.1/bson_iter_as_bool.html index 7a75eb6f2e884c5448dac296c70e0ea942f9754d..d8d9fd8e4dcb3980533bdfafe75deb2b3a4674f7 100644 --- a/libbson/1.23.1/bson_iter_as_bool.html +++ b/libbson/1.23.1/bson_iter_as_bool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_as_double.html b/libbson/1.23.1/bson_iter_as_double.html index e80d919cc3e63a46e43eff2e06e7f081926172f9..2c67cf98b29807f628c717f548bbd099b97f38cf 100644 --- a/libbson/1.23.1/bson_iter_as_double.html +++ b/libbson/1.23.1/bson_iter_as_double.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_as_int64.html b/libbson/1.23.1/bson_iter_as_int64.html index b1084d3bcebde6aa6f92bf62d9500e0aaff9bc19..45c0b8333192080c8910d3c0e25295209e794a2b 100644 --- a/libbson/1.23.1/bson_iter_as_int64.html +++ b/libbson/1.23.1/bson_iter_as_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_binary.html b/libbson/1.23.1/bson_iter_binary.html index 07513b28a5abf0f619cfa519bb55ce567fbbba54..676348c4c11eb65d41e14a9929805ef48081e843 100644 --- a/libbson/1.23.1/bson_iter_binary.html +++ b/libbson/1.23.1/bson_iter_binary.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_bool.html b/libbson/1.23.1/bson_iter_bool.html index c0e0facc6fcc607c0039a010eb8c0fe0377670eb..67bd270aeb36b0f00ef1749f73c90c98fd717e05 100644 --- a/libbson/1.23.1/bson_iter_bool.html +++ b/libbson/1.23.1/bson_iter_bool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_code.html b/libbson/1.23.1/bson_iter_code.html index 55c063053a6aab652d6e1dd5a8809d7295401b54..0253666b0f6155a97e59add7b28df89f5ae35d00 100644 --- a/libbson/1.23.1/bson_iter_code.html +++ b/libbson/1.23.1/bson_iter_code.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_codewscope.html b/libbson/1.23.1/bson_iter_codewscope.html index c23e1a7f68de37becd0746e4e96076119544b35a..baf9804b641cbbdb0161c9e2c7be5f74c3311056 100644 --- a/libbson/1.23.1/bson_iter_codewscope.html +++ b/libbson/1.23.1/bson_iter_codewscope.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_date_time.html b/libbson/1.23.1/bson_iter_date_time.html index ef9cb5038b18cfea4238e066f6bf30a229cd77c2..3064a3cc17605cf45c8ddc6bf0b4273fd089ec7c 100644 --- a/libbson/1.23.1/bson_iter_date_time.html +++ b/libbson/1.23.1/bson_iter_date_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_dbpointer.html b/libbson/1.23.1/bson_iter_dbpointer.html index d43c94ac97c91524af2bb0c230f293cbbd774cb0..fe6799d2d288889eb4777076e8e55cc34f14853a 100644 --- a/libbson/1.23.1/bson_iter_dbpointer.html +++ b/libbson/1.23.1/bson_iter_dbpointer.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_decimal128.html b/libbson/1.23.1/bson_iter_decimal128.html index 0b9f4b2bdf94c5819e0d065fad28f3a6f2e911c4..1ad728a565b4f9575dc62a66613311ab46e4fffd 100644 --- a/libbson/1.23.1/bson_iter_decimal128.html +++ b/libbson/1.23.1/bson_iter_decimal128.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_document.html b/libbson/1.23.1/bson_iter_document.html index 434531e09942d9b403c917f8406aa12946e220d8..3c9680ec4cbdab9d9a4489feaaf31680e03fca1c 100644 --- a/libbson/1.23.1/bson_iter_document.html +++ b/libbson/1.23.1/bson_iter_document.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_double.html b/libbson/1.23.1/bson_iter_double.html index 962398995d3a698ae86d8672b2d6e8938a1566aa..30c725eb972676ccbcd84ec41190ed652493d6a4 100644 --- a/libbson/1.23.1/bson_iter_double.html +++ b/libbson/1.23.1/bson_iter_double.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_dup_utf8.html b/libbson/1.23.1/bson_iter_dup_utf8.html index de782459804cad73df49cec8296ab5cc8237f9f7..522ec42c46834e0035c59728ecbce455016d33e9 100644 --- a/libbson/1.23.1/bson_iter_dup_utf8.html +++ b/libbson/1.23.1/bson_iter_dup_utf8.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_find.html b/libbson/1.23.1/bson_iter_find.html index 82f100cad8565f962d531f190aaa2e8e2b3a0470..d59fce93af8c95119e64472cca7785ced0cfe844 100644 --- a/libbson/1.23.1/bson_iter_find.html +++ b/libbson/1.23.1/bson_iter_find.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_find_case.html b/libbson/1.23.1/bson_iter_find_case.html index 3b7c2da9787f40176f881f3860a284f3e7591fa8..4bb7318c13cdab09ce7fd392a5e2a700a7269b02 100644 --- a/libbson/1.23.1/bson_iter_find_case.html +++ b/libbson/1.23.1/bson_iter_find_case.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_find_descendant.html b/libbson/1.23.1/bson_iter_find_descendant.html index 8fb9b8d6a2556f664ca26522e0f59c3e2152f6bd..59b0cb111fec5c75a3d21c966c029abc848092d8 100644 --- a/libbson/1.23.1/bson_iter_find_descendant.html +++ b/libbson/1.23.1/bson_iter_find_descendant.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_find_w_len.html b/libbson/1.23.1/bson_iter_find_w_len.html index e51e006727025afc8f127d10b754e5cefa986e1c..85379abd99fe3b5a27b69b6295e7e5eb094e7d29 100644 --- a/libbson/1.23.1/bson_iter_find_w_len.html +++ b/libbson/1.23.1/bson_iter_find_w_len.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_init.html b/libbson/1.23.1/bson_iter_init.html index 98f82c976cfd79efc7271cf7176919989f5c697d..18ce53f180c046561fe2e89954196aa0d1ea737f 100644 --- a/libbson/1.23.1/bson_iter_init.html +++ b/libbson/1.23.1/bson_iter_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_init_find.html b/libbson/1.23.1/bson_iter_init_find.html index 742d34b51d05bf92158bbc1d91ddd3718164298c..99fd0cc078985fb786013e7e34eaf09f32356b66 100644 --- a/libbson/1.23.1/bson_iter_init_find.html +++ b/libbson/1.23.1/bson_iter_init_find.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_init_find_case.html b/libbson/1.23.1/bson_iter_init_find_case.html index 4367c5bc1c141ffea3a747f62631356080cce10f..0612694a5e9f7702ad07261338656c0a533321ae 100644 --- a/libbson/1.23.1/bson_iter_init_find_case.html +++ b/libbson/1.23.1/bson_iter_init_find_case.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_init_find_w_len.html b/libbson/1.23.1/bson_iter_init_find_w_len.html index 78f586813db82ccd95b15df8f3ac7ac530471f59..74f79f8812043bc5c123ec8398656f10a8690c46 100644 --- a/libbson/1.23.1/bson_iter_init_find_w_len.html +++ b/libbson/1.23.1/bson_iter_init_find_w_len.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_init_from_data.html b/libbson/1.23.1/bson_iter_init_from_data.html index 2f840056c2823c2253e6c5c3cc5405dac6639f15..731ea9b03a31196dd7a9b5c88ff06e2c280d0edc 100644 --- a/libbson/1.23.1/bson_iter_init_from_data.html +++ b/libbson/1.23.1/bson_iter_init_from_data.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_init_from_data_at_offset.html b/libbson/1.23.1/bson_iter_init_from_data_at_offset.html index 1b9ab1fe08075994743e16fe0cfdb739f2b00673..da630b68f4ca390b8336c0b520c86804df20005b 100644 --- a/libbson/1.23.1/bson_iter_init_from_data_at_offset.html +++ b/libbson/1.23.1/bson_iter_init_from_data_at_offset.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_int32.html b/libbson/1.23.1/bson_iter_int32.html index 36995954eada321dfe79ffa8184aaa9988e2a287..57d694f1a9e8d0ac6c98f70d79cd4e9766ab91c7 100644 --- a/libbson/1.23.1/bson_iter_int32.html +++ b/libbson/1.23.1/bson_iter_int32.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_int64.html b/libbson/1.23.1/bson_iter_int64.html index cbb02415fc30bd7d989aa8845b9c80beb39bd0c2..1e6856fe017b46a58b82c8288b926994a93a28b9 100644 --- a/libbson/1.23.1/bson_iter_int64.html +++ b/libbson/1.23.1/bson_iter_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_key.html b/libbson/1.23.1/bson_iter_key.html index e195f4096a884dc7a95170cdaf4ace68189df4f5..621cfde442c055af1278d5bc9c474f6bdbc1560b 100644 --- a/libbson/1.23.1/bson_iter_key.html +++ b/libbson/1.23.1/bson_iter_key.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_key_len.html b/libbson/1.23.1/bson_iter_key_len.html index 8cda661f804c35843fbf73139c47e3cb8c9398c1..dd347bc2afacdd8785d36959f832e48496ac6c59 100644 --- a/libbson/1.23.1/bson_iter_key_len.html +++ b/libbson/1.23.1/bson_iter_key_len.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_next.html b/libbson/1.23.1/bson_iter_next.html index df2125940281281dfbc4c43d1778986958359b29..c4839f0e53acce6b472a5ce28b1f4263a93d8734 100644 --- a/libbson/1.23.1/bson_iter_next.html +++ b/libbson/1.23.1/bson_iter_next.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_offset.html b/libbson/1.23.1/bson_iter_offset.html index c765be95cce1f51c2d205a3ca6088da097ecf0d3..2a9a2d32ae2d2c87b502debabadd6d7c97682502 100644 --- a/libbson/1.23.1/bson_iter_offset.html +++ b/libbson/1.23.1/bson_iter_offset.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_oid.html b/libbson/1.23.1/bson_iter_oid.html index c7573b7a64110185b309ca11484e75ff769f4f40..e11140104d774fd742d38dc17e44f6a941043b36 100644 --- a/libbson/1.23.1/bson_iter_oid.html +++ b/libbson/1.23.1/bson_iter_oid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_bool.html b/libbson/1.23.1/bson_iter_overwrite_bool.html index dbb95513c66ec6e5387bc0363d9bf76ae011f8e4..73e4ffb36dc995c52b108b900a109289e5312365 100644 --- a/libbson/1.23.1/bson_iter_overwrite_bool.html +++ b/libbson/1.23.1/bson_iter_overwrite_bool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_date_time.html b/libbson/1.23.1/bson_iter_overwrite_date_time.html index 765f4b587f50603884e67cdd67fdc177e5575c98..95db52683d2d40a94d939fb25a6622bb19e6cae4 100644 --- a/libbson/1.23.1/bson_iter_overwrite_date_time.html +++ b/libbson/1.23.1/bson_iter_overwrite_date_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_decimal128.html b/libbson/1.23.1/bson_iter_overwrite_decimal128.html index c529d18817af5518a703ec98ee141539ed45c724..624c11e37c587c2254a801262aa6e051cd4f8992 100644 --- a/libbson/1.23.1/bson_iter_overwrite_decimal128.html +++ b/libbson/1.23.1/bson_iter_overwrite_decimal128.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_double.html b/libbson/1.23.1/bson_iter_overwrite_double.html index d03a34e48aadf6217ba06b13e4042858c9aa3265..e10398940fe107899ba85d4a94e0e96d821645c2 100644 --- a/libbson/1.23.1/bson_iter_overwrite_double.html +++ b/libbson/1.23.1/bson_iter_overwrite_double.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_int32.html b/libbson/1.23.1/bson_iter_overwrite_int32.html index 49cafd5da34cafdf7e753f7c52a78f4d0b83cf21..2d129dd26a5bb2e3a121bfe5b1e5019f3e43446d 100644 --- a/libbson/1.23.1/bson_iter_overwrite_int32.html +++ b/libbson/1.23.1/bson_iter_overwrite_int32.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_int64.html b/libbson/1.23.1/bson_iter_overwrite_int64.html index ac1d57984a5bc24d265f112e15aa44962711dbd8..98208b66a6094ac54316d2b1aef2de6c57a85045 100644 --- a/libbson/1.23.1/bson_iter_overwrite_int64.html +++ b/libbson/1.23.1/bson_iter_overwrite_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_oid.html b/libbson/1.23.1/bson_iter_overwrite_oid.html index 902cab28aa231e0c9b9ff4931f1edf9905d9712c..f2b440cacb6f6ca853327e4efa436b0bcedf2ce7 100644 --- a/libbson/1.23.1/bson_iter_overwrite_oid.html +++ b/libbson/1.23.1/bson_iter_overwrite_oid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_overwrite_timestamp.html b/libbson/1.23.1/bson_iter_overwrite_timestamp.html index e6c28fb594d6b14c5e739329c3b2325e5b1384e1..62b400cefd9763d18dd5f237046559a518d6504f 100644 --- a/libbson/1.23.1/bson_iter_overwrite_timestamp.html +++ b/libbson/1.23.1/bson_iter_overwrite_timestamp.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_recurse.html b/libbson/1.23.1/bson_iter_recurse.html index 1e4ed55ef120c3cb8645ac6803c677aafd29ff87..699f4d8fe3d63f3fb1bbee742ff2de58f75bc174 100644 --- a/libbson/1.23.1/bson_iter_recurse.html +++ b/libbson/1.23.1/bson_iter_recurse.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_regex.html b/libbson/1.23.1/bson_iter_regex.html index 93e21ed614fa58e5adc3911d6d0d6eab2808e112..4958c86ae043a5f15da54f22982fd6c7dc4dec1f 100644 --- a/libbson/1.23.1/bson_iter_regex.html +++ b/libbson/1.23.1/bson_iter_regex.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_symbol.html b/libbson/1.23.1/bson_iter_symbol.html index a8eef3a1d509e1d900892429b1bcc76c9c579c0c..23ca65c899cf08052f3838a9d9f2064b7f781640 100644 --- a/libbson/1.23.1/bson_iter_symbol.html +++ b/libbson/1.23.1/bson_iter_symbol.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_t.html b/libbson/1.23.1/bson_iter_t.html index 05712eb568c7f9cb5c0978737909e8213b50e4ff..3980f3559c001b9a732adec1ac0687f9acd42dca 100644 --- a/libbson/1.23.1/bson_iter_t.html +++ b/libbson/1.23.1/bson_iter_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_time_t.html b/libbson/1.23.1/bson_iter_time_t.html index 21220a7c9a8c7e07bd9bdfa67bae78cf3705b7cf..acda7101161db72a780d559fd78172aefd3074cc 100644 --- a/libbson/1.23.1/bson_iter_time_t.html +++ b/libbson/1.23.1/bson_iter_time_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_timestamp.html b/libbson/1.23.1/bson_iter_timestamp.html index 059d42f433c00831bff5ae96c0cdcc17af883ff3..7ecf832760b5b52cb3343e7e578be30a2f0d3b14 100644 --- a/libbson/1.23.1/bson_iter_timestamp.html +++ b/libbson/1.23.1/bson_iter_timestamp.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_timeval.html b/libbson/1.23.1/bson_iter_timeval.html index 2d89ef0d4a7ea5a9475a5b9110b6b82b8002f1ce..9de3ba0384c738b707d01933f8d37a292bd466b5 100644 --- a/libbson/1.23.1/bson_iter_timeval.html +++ b/libbson/1.23.1/bson_iter_timeval.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_type.html b/libbson/1.23.1/bson_iter_type.html index 180330d26c1a12a4922cf8ecf05678c06d8003a2..77bbe78fc4f78ac2f3cef5b0e3aa8ed12d118391 100644 --- a/libbson/1.23.1/bson_iter_type.html +++ b/libbson/1.23.1/bson_iter_type.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_utf8.html b/libbson/1.23.1/bson_iter_utf8.html index aa0206e4aedd54eb9bc8d1d62b384cf9f13aedd8..6d2ccbf4f77f1515a7309544f456cb6a658a24b9 100644 --- a/libbson/1.23.1/bson_iter_utf8.html +++ b/libbson/1.23.1/bson_iter_utf8.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_value.html b/libbson/1.23.1/bson_iter_value.html index 85b9c27ad98be52b960861d5fe1b8fd79b056e0d..8f482bddcfa47cf71e8844abd6a5f0b935836813 100644 --- a/libbson/1.23.1/bson_iter_value.html +++ b/libbson/1.23.1/bson_iter_value.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_iter_visit_all.html b/libbson/1.23.1/bson_iter_visit_all.html index 11d2162827238f8c5b4f20ba94138bf4cb502cf3..4f6630f3b1805804218e5f40bae1835bf0346c72 100644 --- a/libbson/1.23.1/bson_iter_visit_all.html +++ b/libbson/1.23.1/bson_iter_visit_all.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_data_reader_ingest.html b/libbson/1.23.1/bson_json_data_reader_ingest.html index 800d882c93adfa888654a43ebeb11c036e847ea1..bab7dcbddee51be2be66f66e5491a2118af58c7c 100644 --- a/libbson/1.23.1/bson_json_data_reader_ingest.html +++ b/libbson/1.23.1/bson_json_data_reader_ingest.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_data_reader_new.html b/libbson/1.23.1/bson_json_data_reader_new.html index da409cce1a95b58e8265698b75d53c887d4f192b..b7653cbd8bcf9679ddef758d0510e8f74790ef5e 100644 --- a/libbson/1.23.1/bson_json_data_reader_new.html +++ b/libbson/1.23.1/bson_json_data_reader_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_mode_t.html b/libbson/1.23.1/bson_json_mode_t.html index b40dd299d7a9e9191b5b6391e3fb636a2a3b3ae9..c77d526dc1e46b16fd535ffde4eeb0b9e09cd928 100644 --- a/libbson/1.23.1/bson_json_mode_t.html +++ b/libbson/1.23.1/bson_json_mode_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_opts_destroy.html b/libbson/1.23.1/bson_json_opts_destroy.html index 2273f8e2ccee61a3af9d51411b21c391c55b4229..d119bbfb44b9fd9ec624466884b6c7ffa8d870d0 100644 --- a/libbson/1.23.1/bson_json_opts_destroy.html +++ b/libbson/1.23.1/bson_json_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_opts_new.html b/libbson/1.23.1/bson_json_opts_new.html index 28b894a24916de686bafa78d415a991960da86a5..ae604ff40c49a22578961ba54aa7e547a1618a19 100644 --- a/libbson/1.23.1/bson_json_opts_new.html +++ b/libbson/1.23.1/bson_json_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_opts_t.html b/libbson/1.23.1/bson_json_opts_t.html index 9a625d0917b71bcad04a899a26283823a7cfaf3c..0423a6e705f05baf416e9330e29dcff5ab75f99d 100644 --- a/libbson/1.23.1/bson_json_opts_t.html +++ b/libbson/1.23.1/bson_json_opts_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_reader_destroy.html b/libbson/1.23.1/bson_json_reader_destroy.html index 6f3130cbb5fe1a8197a0a680684223d44d5f4718..50c40186426c9dced3079f5aeb1a5a18715bfa91 100644 --- a/libbson/1.23.1/bson_json_reader_destroy.html +++ b/libbson/1.23.1/bson_json_reader_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_reader_new.html b/libbson/1.23.1/bson_json_reader_new.html index b821c9669442fe77235277bae358e42162c8ae9d..aeb6a270f510cb7dfbbf66e0f1c579ea01e355fc 100644 --- a/libbson/1.23.1/bson_json_reader_new.html +++ b/libbson/1.23.1/bson_json_reader_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_reader_new_from_fd.html b/libbson/1.23.1/bson_json_reader_new_from_fd.html index 27e5adbce1278d5e3154b637b2d608c2af061ad3..cd8f7c47b475d201b5e3ea035002b582fde93c56 100644 --- a/libbson/1.23.1/bson_json_reader_new_from_fd.html +++ b/libbson/1.23.1/bson_json_reader_new_from_fd.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_reader_new_from_file.html b/libbson/1.23.1/bson_json_reader_new_from_file.html index 908ea01dcbdeded142b0bad8bd3a6aebd16d1521..d21cc8d54b46f960a9eb91420345b9a0b579ef58 100644 --- a/libbson/1.23.1/bson_json_reader_new_from_file.html +++ b/libbson/1.23.1/bson_json_reader_new_from_file.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_reader_read.html b/libbson/1.23.1/bson_json_reader_read.html index eff1aebf75858869406c9a7c2bd1d016b6a1b9a9..a9143d1a8fd5738c7ef661844dfc72146d35c54f 100644 --- a/libbson/1.23.1/bson_json_reader_read.html +++ b/libbson/1.23.1/bson_json_reader_read.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_json_reader_t.html b/libbson/1.23.1/bson_json_reader_t.html index 3e79d33217ffba2609d7ff8941a79dcbcc5fc468..ad7ade462c12a94e5488d1531b115c6672490557 100644 --- a/libbson/1.23.1/bson_json_reader_t.html +++ b/libbson/1.23.1/bson_json_reader_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_malloc.html b/libbson/1.23.1/bson_malloc.html index 5cac01e1eaaf3daad3f8cdfc6a1c8270ea58a5ae..02ec50426a3fe3d2cdf97429f66d8e67224d786c 100644 --- a/libbson/1.23.1/bson_malloc.html +++ b/libbson/1.23.1/bson_malloc.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_malloc0.html b/libbson/1.23.1/bson_malloc0.html index e6d31ab81ebcbedd1c37be01293b27ba0aee5fff..bebb08f733321f4c2ce5ae26bcf4d8a5f1a43606 100644 --- a/libbson/1.23.1/bson_malloc0.html +++ b/libbson/1.23.1/bson_malloc0.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_md5_append.html b/libbson/1.23.1/bson_md5_append.html index ca0ca6492d627f29916fb12cc1c3d98121088cd4..ef0018320235a4b3224730305f28823aa69810d0 100644 --- a/libbson/1.23.1/bson_md5_append.html +++ b/libbson/1.23.1/bson_md5_append.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_md5_finish.html b/libbson/1.23.1/bson_md5_finish.html index d0d803983507e0e2b63c614b9ddcb9693d61b894..5e86152898d80e27ef1f5e2526dbea43aee8141a 100644 --- a/libbson/1.23.1/bson_md5_finish.html +++ b/libbson/1.23.1/bson_md5_finish.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_md5_init.html b/libbson/1.23.1/bson_md5_init.html index 2544967b69684426e0c8833c04fe9bbea8e2792d..1b2c85ae73899819fbe01d3f77d0b1532e312086 100644 --- a/libbson/1.23.1/bson_md5_init.html +++ b/libbson/1.23.1/bson_md5_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_md5_t.html b/libbson/1.23.1/bson_md5_t.html index d961dd8475ec79d9e2aef9bef418bee52e19295e..8f52339d160c5d36620a87f8b9e23b4fa29872af 100644 --- a/libbson/1.23.1/bson_md5_t.html +++ b/libbson/1.23.1/bson_md5_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_mem_restore_vtable.html b/libbson/1.23.1/bson_mem_restore_vtable.html index 8227558a2a13e8bdfb8b3b3ed6acc17678c2f530..a7b60ea8b6a45be95b6a28ddcf98a8507cd3bd0f 100644 --- a/libbson/1.23.1/bson_mem_restore_vtable.html +++ b/libbson/1.23.1/bson_mem_restore_vtable.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_mem_set_vtable.html b/libbson/1.23.1/bson_mem_set_vtable.html index 149aa3ea2b6aee1f1c3f998727f1d16b1bb92dbf..613b6e6efa17e7627874687a04903df1a9fd29a3 100644 --- a/libbson/1.23.1/bson_mem_set_vtable.html +++ b/libbson/1.23.1/bson_mem_set_vtable.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_memory.html b/libbson/1.23.1/bson_memory.html index 3e0088a901f20e421849c63a61d18e56caafc3d4..f9b941cd25157c9c8cad753e63ac92c5b44d1e20 100644 --- a/libbson/1.23.1/bson_memory.html +++ b/libbson/1.23.1/bson_memory.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_new.html b/libbson/1.23.1/bson_new.html index 4259799724c0a108e125c1642b049b1fa84d6de3..e089732bde3f9ee54b87b4833f8816b58d7ba62f 100644 --- a/libbson/1.23.1/bson_new.html +++ b/libbson/1.23.1/bson_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_new_from_buffer.html b/libbson/1.23.1/bson_new_from_buffer.html index 3c226feaecd812710e63aff338d2abd8b35d2bde..e91b008b0b398f7a54ade54d0d79a0c4aaed3579 100644 --- a/libbson/1.23.1/bson_new_from_buffer.html +++ b/libbson/1.23.1/bson_new_from_buffer.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_new_from_data.html b/libbson/1.23.1/bson_new_from_data.html index 3d8b87502f24168158907e65ea9766ba19b8aa18..9b99c8b178f8da752ba817b3d7edbe550f795761 100644 --- a/libbson/1.23.1/bson_new_from_data.html +++ b/libbson/1.23.1/bson_new_from_data.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_new_from_json.html b/libbson/1.23.1/bson_new_from_json.html index a060eeae4e797dc75e34613116b55b6adcfb0c92..95bdff8ece18f3b040799add3dd969cc2ddaf9a9 100644 --- a/libbson/1.23.1/bson_new_from_json.html +++ b/libbson/1.23.1/bson_new_from_json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_compare.html b/libbson/1.23.1/bson_oid_compare.html index 2f4a204f5403c10a2fd716c6fd9a227582d322b8..452b8278d2f971b9eaae2996c6071b40de38b5bd 100644 --- a/libbson/1.23.1/bson_oid_compare.html +++ b/libbson/1.23.1/bson_oid_compare.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_copy.html b/libbson/1.23.1/bson_oid_copy.html index 2666d7c0f6c57704068c0255b77660ccd7429416..b3cb0fb762f5ed0f59028499dbf5cd46582e044c 100644 --- a/libbson/1.23.1/bson_oid_copy.html +++ b/libbson/1.23.1/bson_oid_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_equal.html b/libbson/1.23.1/bson_oid_equal.html index 55a5ffbe2bafa2c606a17f13a4840b15b49299a4..ff4c4156df02d1608b99101313ab910b919e9b14 100644 --- a/libbson/1.23.1/bson_oid_equal.html +++ b/libbson/1.23.1/bson_oid_equal.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_get_time_t.html b/libbson/1.23.1/bson_oid_get_time_t.html index 33b51bc84a968b2d98b1de517f3e1da733c62f3e..33556405b89c207e79ef5fd1f90e1bd8814cd509 100644 --- a/libbson/1.23.1/bson_oid_get_time_t.html +++ b/libbson/1.23.1/bson_oid_get_time_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_hash.html b/libbson/1.23.1/bson_oid_hash.html index 9bd2cc894e2495538e407e93c0a392018dc6fd9b..57c80289d6ce5b81d6c5a1b335a6f6dd38d0407c 100644 --- a/libbson/1.23.1/bson_oid_hash.html +++ b/libbson/1.23.1/bson_oid_hash.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_init.html b/libbson/1.23.1/bson_oid_init.html index 8d09069708af1533a8af9be4e2f005c9c007172d..219d482460d7c6f951fe25b1ad027212d573f224 100644 --- a/libbson/1.23.1/bson_oid_init.html +++ b/libbson/1.23.1/bson_oid_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_init_from_data.html b/libbson/1.23.1/bson_oid_init_from_data.html index cc0cac5f30f496491d61ceff3ad49a8255288616..c297edea656ff683a7da1fccc4071fcfd4af5cd6 100644 --- a/libbson/1.23.1/bson_oid_init_from_data.html +++ b/libbson/1.23.1/bson_oid_init_from_data.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_init_from_string.html b/libbson/1.23.1/bson_oid_init_from_string.html index 03f647991290939053de29aadcc8fa331ced51cf..84859e1653510e061f95c602afbe14c9484ecb6c 100644 --- a/libbson/1.23.1/bson_oid_init_from_string.html +++ b/libbson/1.23.1/bson_oid_init_from_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_init_sequence.html b/libbson/1.23.1/bson_oid_init_sequence.html index cbcda879e3e529c4837c1a6fb56b2a5280a83ea5..52c5a911020a8e094dceddb02eabac8659175bb7 100644 --- a/libbson/1.23.1/bson_oid_init_sequence.html +++ b/libbson/1.23.1/bson_oid_init_sequence.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_is_valid.html b/libbson/1.23.1/bson_oid_is_valid.html index a58889d7d0766abff19edc5e2db2355a94d1eba4..e6ff95067ccb6104d4b3843193a5d876d1ff3486 100644 --- a/libbson/1.23.1/bson_oid_is_valid.html +++ b/libbson/1.23.1/bson_oid_is_valid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_t.html b/libbson/1.23.1/bson_oid_t.html index 55457ecf0b5db2634e080069755964f97679f5f7..ed5b009e7a19d191a6e359b026a68f94ce0f37af 100644 --- a/libbson/1.23.1/bson_oid_t.html +++ b/libbson/1.23.1/bson_oid_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_oid_to_string.html b/libbson/1.23.1/bson_oid_to_string.html index 2aa6313228905edd460ff0478dbd6b0e7736021a..b06e2fa7a93517198f8748cb549a169fb5303bc9 100644 --- a/libbson/1.23.1/bson_oid_to_string.html +++ b/libbson/1.23.1/bson_oid_to_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_destroy.html b/libbson/1.23.1/bson_reader_destroy.html index fe294139f388284fd7eb16e6547cd57215b23a63..edfccf59a279588b28573b7b7d2934a9ce4ef1b1 100644 --- a/libbson/1.23.1/bson_reader_destroy.html +++ b/libbson/1.23.1/bson_reader_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_destroy_func_t.html b/libbson/1.23.1/bson_reader_destroy_func_t.html index 0f262f43783b0d190c39922e30fd09157a9401df..a2a6a8eab4ab9703b65e25e04c8fba5981fb3e19 100644 --- a/libbson/1.23.1/bson_reader_destroy_func_t.html +++ b/libbson/1.23.1/bson_reader_destroy_func_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_new_from_data.html b/libbson/1.23.1/bson_reader_new_from_data.html index d672efd1c0425b43bfd8f6c65b02742d1a6166c4..2548da5ff325f9e4b691897e7fbeca077e91cbac 100644 --- a/libbson/1.23.1/bson_reader_new_from_data.html +++ b/libbson/1.23.1/bson_reader_new_from_data.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_new_from_fd.html b/libbson/1.23.1/bson_reader_new_from_fd.html index c2e7bec2d1907d420def1c447fadcc83202f4aab..b847f96645cddf1d96e95aa893cf5f3b4c9c1baa 100644 --- a/libbson/1.23.1/bson_reader_new_from_fd.html +++ b/libbson/1.23.1/bson_reader_new_from_fd.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_new_from_file.html b/libbson/1.23.1/bson_reader_new_from_file.html index bfdfc23377a361d308fc2a4a6a04b90610b9215b..db15dc8808bd21b886e6d01ba3f15bcbd220e3ca 100644 --- a/libbson/1.23.1/bson_reader_new_from_file.html +++ b/libbson/1.23.1/bson_reader_new_from_file.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_new_from_handle.html b/libbson/1.23.1/bson_reader_new_from_handle.html index 11926cccf88713308ee0e00f634a987ea4fa97c9..8819c53c827d6f962fffc7f7100a5002dfce7dcf 100644 --- a/libbson/1.23.1/bson_reader_new_from_handle.html +++ b/libbson/1.23.1/bson_reader_new_from_handle.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_read.html b/libbson/1.23.1/bson_reader_read.html index ee67dfaf055c1ce8bce263e52bfe4511a2d1bce5..3235eb82b02e09716d3689c5728695d69039a617 100644 --- a/libbson/1.23.1/bson_reader_read.html +++ b/libbson/1.23.1/bson_reader_read.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_read_func_t.html b/libbson/1.23.1/bson_reader_read_func_t.html index b565029fed107f7f4cdd26eab0a4a964129674ec..896fcf40d85ef8887984d9f6bab7855e8e898f09 100644 --- a/libbson/1.23.1/bson_reader_read_func_t.html +++ b/libbson/1.23.1/bson_reader_read_func_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_reset.html b/libbson/1.23.1/bson_reader_reset.html index 03f7f219c440345d6b48769d26ae5fe13d6d32a4..b569cfb38732142bf05d361e24a993b3b1ff334e 100644 --- a/libbson/1.23.1/bson_reader_reset.html +++ b/libbson/1.23.1/bson_reader_reset.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_set_destroy_func.html b/libbson/1.23.1/bson_reader_set_destroy_func.html index f8f6103edc4681d5b1dc247854619ea7daaf2834..aad5d13c7f8c8b0d4de6f7ab7275755a50349cee 100644 --- a/libbson/1.23.1/bson_reader_set_destroy_func.html +++ b/libbson/1.23.1/bson_reader_set_destroy_func.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_set_read_func.html b/libbson/1.23.1/bson_reader_set_read_func.html index 1cd129eb62d2e1b59d1e131306575671b5bbe9a2..d2a9d37457658ae520328e6f40ae4fb8877a6af3 100644 --- a/libbson/1.23.1/bson_reader_set_read_func.html +++ b/libbson/1.23.1/bson_reader_set_read_func.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_t.html b/libbson/1.23.1/bson_reader_t.html index 67a1b1ca497260fb041a87f835b5aa318c0e4671..e7216465945b46c6d22b3a964c4d121a2974532b 100644 --- a/libbson/1.23.1/bson_reader_t.html +++ b/libbson/1.23.1/bson_reader_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reader_tell.html b/libbson/1.23.1/bson_reader_tell.html index 9798a3dec16a9aed5b42798d7a2cd36ecf3a10a7..a5550e46c82917a44b9e9f06571452d303cacc5d 100644 --- a/libbson/1.23.1/bson_reader_tell.html +++ b/libbson/1.23.1/bson_reader_tell.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_realloc.html b/libbson/1.23.1/bson_realloc.html index 9bbf88adb56b3359f5d2b11b0a94b03cefbb09e8..9be6f37ac6aa921a7f83bfc6fe3b09c36765325c 100644 --- a/libbson/1.23.1/bson_realloc.html +++ b/libbson/1.23.1/bson_realloc.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_realloc_ctx.html b/libbson/1.23.1/bson_realloc_ctx.html index e235c976ea1f1dd673702f5991e3c5ffd79e6a0f..a2571c99c54cfef0a40907cbe45bc6ee61d87082 100644 --- a/libbson/1.23.1/bson_realloc_ctx.html +++ b/libbson/1.23.1/bson_realloc_ctx.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_realloc_func.html b/libbson/1.23.1/bson_realloc_func.html index e69de6540985e964ba2de2f158347c6f338b9a78..dec2cc2219ad61c8440e43b5d1c2807e2732d02a 100644 --- a/libbson/1.23.1/bson_realloc_func.html +++ b/libbson/1.23.1/bson_realloc_func.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reinit.html b/libbson/1.23.1/bson_reinit.html index 75ce28bcad912dfd74f63c7ca3659bd6dce239d5..60ff230a9b5a04eed862b2962f9360cd7eac751a 100644 --- a/libbson/1.23.1/bson_reinit.html +++ b/libbson/1.23.1/bson_reinit.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_reserve_buffer.html b/libbson/1.23.1/bson_reserve_buffer.html index 1bef3bb47f10a9abb7641bd7e8cee7b9cdb7fcbf..0f6b30f0f2b3a564958d384e1250edb8b51c94eb 100644 --- a/libbson/1.23.1/bson_reserve_buffer.html +++ b/libbson/1.23.1/bson_reserve_buffer.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_set_error.html b/libbson/1.23.1/bson_set_error.html index 0b73d36e2b57a9f37d0828715a88bd0a91cfa09e..7e6f1f47e26119cf3531f2f66353358629922086 100644 --- a/libbson/1.23.1/bson_set_error.html +++ b/libbson/1.23.1/bson_set_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_sized_new.html b/libbson/1.23.1/bson_sized_new.html index 41d883c782c92cefbe46f23386e754a11f32452e..d19775f62870eaf4bed78caca1aed38022b28e93 100644 --- a/libbson/1.23.1/bson_sized_new.html +++ b/libbson/1.23.1/bson_sized_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_snprintf.html b/libbson/1.23.1/bson_snprintf.html index 208b41fed0521bf48bc214803fee14dfe86c01a1..98dcb355b2a8f0d2139b93e4c818a775c3afb4a8 100644 --- a/libbson/1.23.1/bson_snprintf.html +++ b/libbson/1.23.1/bson_snprintf.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_steal.html b/libbson/1.23.1/bson_steal.html index 05a701535e739a0c6efabfadf27886bfd22473d5..b1ea6ba47c0d144a344e0d863b1d7dd1e9dbe56b 100644 --- a/libbson/1.23.1/bson_steal.html +++ b/libbson/1.23.1/bson_steal.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strcasecmp.html b/libbson/1.23.1/bson_strcasecmp.html index 3b1e6f53724c727575611057f9a5384951952c92..d9f81c1a27cc611e5338c51dcf8d91c3bcd595ef 100644 --- a/libbson/1.23.1/bson_strcasecmp.html +++ b/libbson/1.23.1/bson_strcasecmp.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strdup.html b/libbson/1.23.1/bson_strdup.html index 7e561bf08b2a14f192e5b611faf84f7228b9aa1b..0bf1c5aa040a8d04419d4e4234a9965b9d10864f 100644 --- a/libbson/1.23.1/bson_strdup.html +++ b/libbson/1.23.1/bson_strdup.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strdup_printf.html b/libbson/1.23.1/bson_strdup_printf.html index 172d18369b42e2abd70fd7bc1496c6d969625fbd..03ae90dfac73c28799e43cd7088bfd777fd6f95b 100644 --- a/libbson/1.23.1/bson_strdup_printf.html +++ b/libbson/1.23.1/bson_strdup_printf.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strdupv_printf.html b/libbson/1.23.1/bson_strdupv_printf.html index 27233df1ad9a752a28d3ef471f91b1b5c45ecf1a..b9f3a9a6e0fb046615779d9b22e3ca4df5b58142 100644 --- a/libbson/1.23.1/bson_strdupv_printf.html +++ b/libbson/1.23.1/bson_strdupv_printf.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strerror_r.html b/libbson/1.23.1/bson_strerror_r.html index 3a5c46bb574e77ea6b848ca38164d27a25cc0159..8119f59fec6b5dd1060b690a8f1746593358a960 100644 --- a/libbson/1.23.1/bson_strerror_r.html +++ b/libbson/1.23.1/bson_strerror_r.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strfreev.html b/libbson/1.23.1/bson_strfreev.html index 9b1a6d51aeb792008e0a74fc587acc4cd922e883..46cdc323912e9fffb3c637a00df89306b8a98055 100644 --- a/libbson/1.23.1/bson_strfreev.html +++ b/libbson/1.23.1/bson_strfreev.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_append.html b/libbson/1.23.1/bson_string_append.html index 8dc769aef8165aad353348d0fd4d69e1f3fe28f1..92c8a7a213e9bb4f8a685a79c5cf56649b25d8b8 100644 --- a/libbson/1.23.1/bson_string_append.html +++ b/libbson/1.23.1/bson_string_append.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_append_c.html b/libbson/1.23.1/bson_string_append_c.html index 95491c4e7f57fa955951de7f9f47534d0d61c728..483a06ac7d7596274f633aff85d973982bc099b3 100644 --- a/libbson/1.23.1/bson_string_append_c.html +++ b/libbson/1.23.1/bson_string_append_c.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_append_printf.html b/libbson/1.23.1/bson_string_append_printf.html index b4ca1fc1eba7aae0f1246a24f9343fd8c6d7e704..a8535026c5eedcc3a0af761a100f48b93957dffd 100644 --- a/libbson/1.23.1/bson_string_append_printf.html +++ b/libbson/1.23.1/bson_string_append_printf.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_append_unichar.html b/libbson/1.23.1/bson_string_append_unichar.html index 66a9f695ddb6699f6c86e165c0acaf1389c30b10..dc1df985f61f37fdc6b24b6b60e4d979630488e0 100644 --- a/libbson/1.23.1/bson_string_append_unichar.html +++ b/libbson/1.23.1/bson_string_append_unichar.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_free.html b/libbson/1.23.1/bson_string_free.html index c553920484d43640302d470f470eafb0ff909766..0c2cb5e6ecc8cc8772d9a936b0cfadfcbfa29593 100644 --- a/libbson/1.23.1/bson_string_free.html +++ b/libbson/1.23.1/bson_string_free.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_new.html b/libbson/1.23.1/bson_string_new.html index f9e63db93da26028eebc1d66fcf13a3c96a21825..57bd7712bfdc444545b0c37a98cdb25b04cca9bd 100644 --- a/libbson/1.23.1/bson_string_new.html +++ b/libbson/1.23.1/bson_string_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_t.html b/libbson/1.23.1/bson_string_t.html index 7743d5d921c4e17a4b4a9de577f268c60de904b4..10680520ee362b5a230841180db1d661f73f7fb0 100644 --- a/libbson/1.23.1/bson_string_t.html +++ b/libbson/1.23.1/bson_string_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_string_truncate.html b/libbson/1.23.1/bson_string_truncate.html index 791eaef1c5ff65072becc2079329faddd4f999b5..7746407a1415f92d51580e16dc877fe969a04367 100644 --- a/libbson/1.23.1/bson_string_truncate.html +++ b/libbson/1.23.1/bson_string_truncate.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strncpy.html b/libbson/1.23.1/bson_strncpy.html index 23906aab688ed12918b4896dc9d432965d37c5fc..686e2f57fafcf3512e16da45aee296e8763a8695 100644 --- a/libbson/1.23.1/bson_strncpy.html +++ b/libbson/1.23.1/bson_strncpy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strndup.html b/libbson/1.23.1/bson_strndup.html index 8d5cbe972322233611989e49faf2de76b93a81fa..752c3f08c86464df5697c19f074edb62fc176d16 100644 --- a/libbson/1.23.1/bson_strndup.html +++ b/libbson/1.23.1/bson_strndup.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_strnlen.html b/libbson/1.23.1/bson_strnlen.html index e2c01eb6d0c82278235e6531cea9ac6d918aea11..af48b4cf9817c23b9b1839f37cc122274f4d21f6 100644 --- a/libbson/1.23.1/bson_strnlen.html +++ b/libbson/1.23.1/bson_strnlen.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_subtype_t.html b/libbson/1.23.1/bson_subtype_t.html index 3dc07059ffed97c03b507e05c6889d9673ef2490..e2ca5e4444268f769a32e5f1056606f65b1774d1 100644 --- a/libbson/1.23.1/bson_subtype_t.html +++ b/libbson/1.23.1/bson_subtype_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_t.html b/libbson/1.23.1/bson_t.html index b8607ae4e7309301ff052c4e5ff0fcb2d8255f44..d572e3822349cd44f66b57b2b11bf133fbfb5b7e 100644 --- a/libbson/1.23.1/bson_t.html +++ b/libbson/1.23.1/bson_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_type_t.html b/libbson/1.23.1/bson_type_t.html index f96d3c51bbc555a403e83896c3bfccaf56db54ff..7c1f2c3349aabf18b221bccda98207955b26e591 100644 --- a/libbson/1.23.1/bson_type_t.html +++ b/libbson/1.23.1/bson_type_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_uint32_to_string.html b/libbson/1.23.1/bson_uint32_to_string.html index dc7aec4ce5c352102f49c11dff5d0e17245802c6..909b70fb6500a411bb31a88efc846505ac73ff65 100644 --- a/libbson/1.23.1/bson_uint32_to_string.html +++ b/libbson/1.23.1/bson_uint32_to_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_unichar_t.html b/libbson/1.23.1/bson_unichar_t.html index 86557ee102ca3295ae78097217568ec93ddfccca..18bbe6837da33fd56b49ea35041b6e3084e7f9d8 100644 --- a/libbson/1.23.1/bson_unichar_t.html +++ b/libbson/1.23.1/bson_unichar_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_utf8_escape_for_json.html b/libbson/1.23.1/bson_utf8_escape_for_json.html index 1c7285af3cb12daa70473b5b57acdf0906842136..f1f7e9f9ff391c58137a8fcf4150716869adddc3 100644 --- a/libbson/1.23.1/bson_utf8_escape_for_json.html +++ b/libbson/1.23.1/bson_utf8_escape_for_json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_utf8_from_unichar.html b/libbson/1.23.1/bson_utf8_from_unichar.html index c639030933b73cda66fc0bedeffafed42f7631f8..1fce172061c359250010f89274ccdab8539cb41f 100644 --- a/libbson/1.23.1/bson_utf8_from_unichar.html +++ b/libbson/1.23.1/bson_utf8_from_unichar.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_utf8_get_char.html b/libbson/1.23.1/bson_utf8_get_char.html index 6e8330e364e1e1164e4ef3e8d47d761f780898b5..fde60c56c562da385476ac8f6d9dfe0b39553dbb 100644 --- a/libbson/1.23.1/bson_utf8_get_char.html +++ b/libbson/1.23.1/bson_utf8_get_char.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_utf8_next_char.html b/libbson/1.23.1/bson_utf8_next_char.html index 02fcde925fdead9b2e50d4406683031876afac54..df44155b032ed0ab0567606c2f84adb616142fe3 100644 --- a/libbson/1.23.1/bson_utf8_next_char.html +++ b/libbson/1.23.1/bson_utf8_next_char.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_utf8_validate.html b/libbson/1.23.1/bson_utf8_validate.html index 52facf8f8c92808e4b144075acc774c5cc2ffd1a..55cc7ea1684887900c7f282a22c9eee90fac3c52 100644 --- a/libbson/1.23.1/bson_utf8_validate.html +++ b/libbson/1.23.1/bson_utf8_validate.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_validate.html b/libbson/1.23.1/bson_validate.html index aa94277257b78feae9f4f3c9a681e3a39add6ddf..04e0404faa2210d5616946815c701f3793f11581 100644 --- a/libbson/1.23.1/bson_validate.html +++ b/libbson/1.23.1/bson_validate.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_validate_with_error.html b/libbson/1.23.1/bson_validate_with_error.html index 60701702be82bf4e761cf276b613949a430dd592..b8886a52b58e84d637a60ab150ad55155945a81d 100644 --- a/libbson/1.23.1/bson_validate_with_error.html +++ b/libbson/1.23.1/bson_validate_with_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_value_copy.html b/libbson/1.23.1/bson_value_copy.html index f279ccc77930b90282de17f805cf72b4b7bc6640..358c4e49035196ba1e73ad77dfbdf94c6dd7ca51 100644 --- a/libbson/1.23.1/bson_value_copy.html +++ b/libbson/1.23.1/bson_value_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_value_destroy.html b/libbson/1.23.1/bson_value_destroy.html index 0ff92fba369f3d822c74743b026a0c05ec2c2668..f4a17832e6bb2dba704bbbf53f6c8ddf4d88391a 100644 --- a/libbson/1.23.1/bson_value_destroy.html +++ b/libbson/1.23.1/bson_value_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_value_t.html b/libbson/1.23.1/bson_value_t.html index b5374c4df2814b4e80d9dcea8c8f233d5f9025c5..81410b9081676cb7540d66687a9a9a652d69a4d7 100644 --- a/libbson/1.23.1/bson_value_t.html +++ b/libbson/1.23.1/bson_value_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_visitor_t.html b/libbson/1.23.1/bson_visitor_t.html index da2db8214f918d62407deae464f43a7175f03ee0..2e0a4672ea43a9b9c93cf20924c861318d02667e 100644 --- a/libbson/1.23.1/bson_visitor_t.html +++ b/libbson/1.23.1/bson_visitor_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_vsnprintf.html b/libbson/1.23.1/bson_vsnprintf.html index 7f1eb14023f0688b7835643ba677b74b2ab36735..58de00a3ae283424a41c45219cf4d49e26e05325 100644 --- a/libbson/1.23.1/bson_vsnprintf.html +++ b/libbson/1.23.1/bson_vsnprintf.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_writer_begin.html b/libbson/1.23.1/bson_writer_begin.html index 9f864d32362824025d3df759d8545c02376ac46c..02eed59cebb021b5ba253b7f03922e738a707e0a 100644 --- a/libbson/1.23.1/bson_writer_begin.html +++ b/libbson/1.23.1/bson_writer_begin.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_writer_destroy.html b/libbson/1.23.1/bson_writer_destroy.html index 79c032db028ed6d909489d19668a6e2a8e8261fd..c9996b94aa89673ea55766764463e2d1f362d08d 100644 --- a/libbson/1.23.1/bson_writer_destroy.html +++ b/libbson/1.23.1/bson_writer_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_writer_end.html b/libbson/1.23.1/bson_writer_end.html index 937b7a2746289755f3a7b2b47e885e79edef5203..d30d70e6c676cabc3c941aef39a593d86f9f5215 100644 --- a/libbson/1.23.1/bson_writer_end.html +++ b/libbson/1.23.1/bson_writer_end.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_writer_get_length.html b/libbson/1.23.1/bson_writer_get_length.html index e848488aba9c141497c4e201079eb29fb086f7e0..7fd6057dd97ca2db0772de305972bf3a40fffaeb 100644 --- a/libbson/1.23.1/bson_writer_get_length.html +++ b/libbson/1.23.1/bson_writer_get_length.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_writer_new.html b/libbson/1.23.1/bson_writer_new.html index 750419d7e85dcd7e328159fe49794a4a61bd8dba..0b0335d1ece5db9b56fb1849a0479ed83f859601 100644 --- a/libbson/1.23.1/bson_writer_new.html +++ b/libbson/1.23.1/bson_writer_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_writer_rollback.html b/libbson/1.23.1/bson_writer_rollback.html index 20428372b2ed099a30b4b530017b93659ac29018..5b6e48966f740d187b0e3e6c1537722007213a0c 100644 --- a/libbson/1.23.1/bson_writer_rollback.html +++ b/libbson/1.23.1/bson_writer_rollback.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_writer_t.html b/libbson/1.23.1/bson_writer_t.html index e5ee74c6102e6c69a6084f8d6ba7d5d0304200e1..5b097982760678d8bd072941bc723c6373865787 100644 --- a/libbson/1.23.1/bson_writer_t.html +++ b/libbson/1.23.1/bson_writer_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/bson_zero_free.html b/libbson/1.23.1/bson_zero_free.html index a9fff6186c2095af0c89b7bc4cd39bb08017fca3..a4b57d07ac6ff638855b3dccfff7a3c0a3905ead 100644 --- a/libbson/1.23.1/bson_zero_free.html +++ b/libbson/1.23.1/bson_zero_free.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/character_and_string_routines.html b/libbson/1.23.1/character_and_string_routines.html index d02ea600b8823586e7fc1ab3f518249caea7279c..c290425b38b664e0cff5420cc7307d595f34d74e 100644 --- a/libbson/1.23.1/character_and_string_routines.html +++ b/libbson/1.23.1/character_and_string_routines.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/creating.html b/libbson/1.23.1/creating.html index f1045ec5c2128cc94e8814d82083dd03c483f404..c35a96dedbc15d69603132ad2f1b6893feb9eb33 100644 --- a/libbson/1.23.1/creating.html +++ b/libbson/1.23.1/creating.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/cross-platform-notes.html b/libbson/1.23.1/cross-platform-notes.html index 57506ec9f1541697ab23702e8244135666f5e2bb..34e146d39c4845fe3dc0c1699f450dccfcf6a792 100644 --- a/libbson/1.23.1/cross-platform-notes.html +++ b/libbson/1.23.1/cross-platform-notes.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/endianness.html b/libbson/1.23.1/endianness.html index f09926d750d4323a0935f487762b0b459eea10d4..72fcdec2a7314768d5f8c8ff991f707c16fcd0c3 100644 --- a/libbson/1.23.1/endianness.html +++ b/libbson/1.23.1/endianness.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/errors.html b/libbson/1.23.1/errors.html index 1f61228b136e64c1c7b6791a2a9510352b4c06bc..911eb9757e6e14558b3ba6a506945f56c87d0e04 100644 --- a/libbson/1.23.1/errors.html +++ b/libbson/1.23.1/errors.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/full_index.html b/libbson/1.23.1/full_index.html index fbc123eab4c12a644c4c4f54ed83f5ad1181a0c0..b1ea030a4fa860336e18e995b5572ededf48cc6a 100644 --- a/libbson/1.23.1/full_index.html +++ b/libbson/1.23.1/full_index.html @@ -36,6 +36,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/guides.html b/libbson/1.23.1/guides.html index cebd2e6cbc1b0905be174482289bf6bc13448b95..c8fc763f341275d8de3a812d79e0b6483105a158 100644 --- a/libbson/1.23.1/guides.html +++ b/libbson/1.23.1/guides.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/include-and-link.html b/libbson/1.23.1/include-and-link.html index 1a94de105c283828f0ccc1fa11d42ec816c446be..b39ba481d4186e6dba76178eca2cf297ca40ed75 100644 --- a/libbson/1.23.1/include-and-link.html +++ b/libbson/1.23.1/include-and-link.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/index.html b/libbson/1.23.1/index.html index c42a2b1427f078de6aeb7b3c09b84e938d1d4982..783cf7cc6ff54a83e08e1c09fe946e439f729e81 100644 --- a/libbson/1.23.1/index.html +++ b/libbson/1.23.1/index.html @@ -37,6 +37,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/json.html b/libbson/1.23.1/json.html index 507a16c6da722b1fd26f261a65c0ff710866dccb..5166f98455baa0c4a036fa999a6a6b4cf8b30375 100644 --- a/libbson/1.23.1/json.html +++ b/libbson/1.23.1/json.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/oid.html b/libbson/1.23.1/oid.html index a973da1d7f07cc0c0d82fbd6785496f0e3ad4765..bfa84c597b6df1c6ad09fbb14c753c3758ba7f65 100644 --- a/libbson/1.23.1/oid.html +++ b/libbson/1.23.1/oid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/parsing.html b/libbson/1.23.1/parsing.html index 274bc1de47a9fb78cc89f76c97314801a2b1e0c5..9efdf855473030404de9b947f32e13a45a8d9003 100644 --- a/libbson/1.23.1/parsing.html +++ b/libbson/1.23.1/parsing.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/search.html b/libbson/1.23.1/search.html index dc0b94ba723994d3f8ce21cc493dc7e4bdc507cf..4a7dbb7b23729dd70b595460897ec64b018eff01 100644 --- a/libbson/1.23.1/search.html +++ b/libbson/1.23.1/search.html @@ -43,6 +43,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/streaming-bson.html b/libbson/1.23.1/streaming-bson.html index 39f95bb8c2c74760387c08c57cf9f8d2c108f10e..a3ec78bb5b12002a2c74ce04088e2a5fd1461450 100644 --- a/libbson/1.23.1/streaming-bson.html +++ b/libbson/1.23.1/streaming-bson.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/threading.html b/libbson/1.23.1/threading.html index 8483d55c5ee907f762011740342fbfc54a0118ab..80f10e6ef1aa4023e7c452509219ce862088ca48 100644 --- a/libbson/1.23.1/threading.html +++ b/libbson/1.23.1/threading.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/tutorial.html b/libbson/1.23.1/tutorial.html index 24cff10fb6a3a18df6279da3cd74d45c7bc2edcc..93431a18e41cb5b18d263b42a70cda30791f902a 100644 --- a/libbson/1.23.1/tutorial.html +++ b/libbson/1.23.1/tutorial.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/utf8.html b/libbson/1.23.1/utf8.html index de2d15871b0eae0460b8f64d6b6ae22e46f674e1..88c5a50aa43881b2e6ebab40a04ac2a943989e4f 100644 --- a/libbson/1.23.1/utf8.html +++ b/libbson/1.23.1/utf8.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/valgrind.html b/libbson/1.23.1/valgrind.html index a48321b2299c13575bf8e356531ba99a4259ccb3..530567beaf5fa28cdc15110b6392ce43a059eaba 100644 --- a/libbson/1.23.1/valgrind.html +++ b/libbson/1.23.1/valgrind.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.1/version.html b/libbson/1.23.1/version.html index f5920158cce0441c7704c5ee213d4052030f8949..dec48d130cf31e15cb859626669793b89f136852 100644 --- a/libbson/1.23.1/version.html +++ b/libbson/1.23.1/version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.23.2/.nojekyll b/libbson/1.23.2/.nojekyll new file mode 100644 index 0000000000000000000000000000000000000000..19102815663d23f8b75a47e7a01965dcdc96468c --- /dev/null +++ b/libbson/1.23.2/.nojekyll @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/libbson/1.23.2/CMakeLists.txt b/libbson/1.23.2/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..447d8c0657362ef7a10a17e4e5cfc7f650c6c3a4 --- /dev/null +++ b/libbson/1.23.2/CMakeLists.txt @@ -0,0 +1,31 @@ +# Additional generated static files +extra_dist_generated ( + .nojekyll + objects.inv + _static/ajax-loader.gif + _static/basic.css + _static/comment-bright.png + _static/comment-close.png + _static/comment.png + _static/doctools.js + _static/documentation_options.js + _static/down-pressed.png + _static/down.png + _static/file.png + _static/jquery.js + _static/minus.png + _static/plus.png + _static/pygments.css + _static/readable.css + _static/searchtools.js + _static/underscore.js + _static/up-pressed.png + _static/up.png + _static/websupport.js + search.html + searchindex.js +) + +set_dist_list (src_libbson_doc_html_DIST + CMakeLists.txt +) diff --git a/libbson/1.23.2/_static/ajax-loader.gif b/libbson/1.23.2/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 Binary files /dev/null and b/libbson/1.23.2/_static/ajax-loader.gif differ diff --git a/libbson/1.23.2/_static/basic.css b/libbson/1.23.2/_static/basic.css new file mode 100644 index 0000000000000000000000000000000000000000..19ced1057aebf39d3dac6f6a5d864491231a3e33 --- /dev/null +++ b/libbson/1.23.2/_static/basic.css @@ -0,0 +1,665 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/libbson/1.23.2/_static/comment-bright.png b/libbson/1.23.2/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e Binary files /dev/null and b/libbson/1.23.2/_static/comment-bright.png differ diff --git a/libbson/1.23.2/_static/comment-close.png b/libbson/1.23.2/_static/comment-close.png new file mode 100644 index 0000000000000000000000000000000000000000..4d91bcf57de866a901a89a2a68c0f36af1114841 Binary files /dev/null and b/libbson/1.23.2/_static/comment-close.png differ diff --git a/libbson/1.23.2/_static/comment.png b/libbson/1.23.2/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbc0cbd512bdeefcb1984c99d8e577efb77f006 Binary files /dev/null and b/libbson/1.23.2/_static/comment.png differ diff --git a/libbson/1.23.2/_static/doctools.js b/libbson/1.23.2/_static/doctools.js new file mode 100644 index 0000000000000000000000000000000000000000..d8928926bf24bb081d91a12f7b92e1b2d8b142b6 --- /dev/null +++ b/libbson/1.23.2/_static/doctools.js @@ -0,0 +1,313 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var bbox = span.getBBox(); + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + var parentOfText = node.parentNode.parentNode; + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/libbson/1.23.2/_static/documentation_options.js b/libbson/1.23.2/_static/documentation_options.js new file mode 100644 index 0000000000000000000000000000000000000000..bc12cb35cdbb5228850f6e53832f07a9febac8ed --- /dev/null +++ b/libbson/1.23.2/_static/documentation_options.js @@ -0,0 +1,9 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: false, + SOURCELINK_SUFFIX: '.txt' +}; \ No newline at end of file diff --git a/libbson/1.23.2/_static/down-pressed.png b/libbson/1.23.2/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 Binary files /dev/null and b/libbson/1.23.2/_static/down-pressed.png differ diff --git a/libbson/1.23.2/_static/down.png b/libbson/1.23.2/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 Binary files /dev/null and b/libbson/1.23.2/_static/down.png differ diff --git a/libbson/1.23.2/_static/file.png b/libbson/1.23.2/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 Binary files /dev/null and b/libbson/1.23.2/_static/file.png differ diff --git a/libbson/1.23.2/_static/jquery-3.2.1.js b/libbson/1.23.2/_static/jquery-3.2.1.js new file mode 100644 index 0000000000000000000000000000000000000000..d2d8ca4790e52b0537f3cbb7dcd766099b789583 --- /dev/null +++ b/libbson/1.23.2/_static/jquery-3.2.1.js @@ -0,0 +1,10253 @@ +/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.2.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Simple selector that can be filtered directly, removing non-Elements + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + // Complex selector, compare the two sets, removing non-Elements + qualifier = jQuery.filter( qualifier, elements ); + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( jQuery.isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( ">tbody", elem )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i, + val = 0; + + // If we already have the right measurement, avoid augmentation + if ( extra === ( isBorderBox ? "border" : "content" ) ) { + i = 4; + + // Otherwise initialize for horizontal or vertical properties + } else { + i = name === "width" ? 1 : 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with computed style + var valueIsBorderBox, + styles = getStyles( elem ), + val = curCSS( elem, name, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Fall back to offsetWidth/Height when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + if ( val === "auto" ) { + val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; + } + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnothtmlwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 13 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + API Reference — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    API Reference

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_aligned_alloc.html b/libbson/1.23.2/bson_aligned_alloc.html new file mode 100644 index 0000000000000000000000000000000000000000..e60d33c1e48fce8902dbc1c77179fa781be789c9 --- /dev/null +++ b/libbson/1.23.2/bson_aligned_alloc.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_aligned_alloc() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_aligned_alloc()

    +
    +

    Synopsis

    +
    void *
    +bson_aligned_alloc (size_t alignment, size_t num_bytes);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • alignment: The alignment of the allocated bytes of memory. Must be a power of 2 and a multiple of sizeof (void *).

    • +
    • num_bytes: The number of bytes to allocate. Must be a multiple of alignment.

    • +
    +
    +
    +

    Description

    +

    This is a portable aligned_alloc() wrapper.

    +

    In general, this function will return an allocation at least sizeof(void*) bytes or bigger with an alignment of at least alignment.

    +

    If there was a failure to allocate num_bytes bytes aligned to alignment, the process will be aborted.

    +
    +

    Warning

    +

    This function will abort on failure to allocate memory.

    +
    +
    +
    +

    Returns

    +

    A pointer to a memory region which HAS NOT been zeroed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_aligned_alloc0.html b/libbson/1.23.2/bson_aligned_alloc0.html new file mode 100644 index 0000000000000000000000000000000000000000..d059bb419ee02c50e81656975c9d1de7e56367fe --- /dev/null +++ b/libbson/1.23.2/bson_aligned_alloc0.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_aligned_alloc0() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_aligned_alloc0()

    +
    +

    Synopsis

    +
    void *
    +bson_aligned_alloc0 (size_t alignment, size_t num_bytes);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • alignment: The alignment of the allocated bytes of memory. Must be a power of 2 and a multiple of sizeof (void *).

    • +
    • num_bytes: The number of bytes to allocate. Must be a multiple of alignment.

    • +
    +
    +
    +

    Description

    +

    This is a portable aligned_alloc() wrapper that also sets the memory to zero.

    +

    In general, this function will return an allocation at least sizeof(void*) bytes or bigger with an alignment of at least alignment.

    +

    If there was a failure to allocate num_bytes bytes aligned to alignment, the process will be aborted.

    +
    +

    Warning

    +

    This function will abort on failure to allocate memory.

    +
    +
    +
    +

    Returns

    +

    A pointer to a memory region which HAS been zeroed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_array.html b/libbson/1.23.2/bson_append_array.html new file mode 100644 index 0000000000000000000000000000000000000000..c7b632d77c24a74b8d0658f4c7d2d7a138c0e15e --- /dev/null +++ b/libbson/1.23.2/bson_append_array.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_array() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_array()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_ARRAY(b, key, val) \
    +   bson_append_array (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_array (bson_t *bson,
    +                   const char *key,
    +                   int key_length,
    +                   const bson_t *array);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • array: A bson_t.

    • +
    +
    +
    +

    Description

    +

    The bson_append_array() function shall append array to bson using the specified key. The type of the field will be an array, but it is the responsibility of the caller to ensure that the keys of array are properly formatted with string keys such as “0”, “1”, “2” and so forth.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function fails if appending the array grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_array_begin.html b/libbson/1.23.2/bson_append_array_begin.html new file mode 100644 index 0000000000000000000000000000000000000000..cdcb24053dc7a39744e3f56b11c8400b8d12ca65 --- /dev/null +++ b/libbson/1.23.2/bson_append_array_begin.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_append_array_begin() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_array_begin()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_ARRAY_BEGIN(b, key, child) \
    +   bson_append_array_begin (b, key, (int) strlen (key), child)
    +
    +bool
    +bson_append_array_begin (bson_t *bson,
    +                         const char *key,
    +                         int key_length,
    +                         bson_t *child);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: A string containing the name for the key.

    • +
    • key_length: The length of key or -1 to call strlen().

    • +
    • child: A bson_t.

    • +
    +
    +
    +

    Description

    +

    The bson_append_array_begin() function shall begin appending an array field to bson. This allows for incrementally building a sub-array. Doing so will generally yield better performance as you will serialize to a single buffer. When done building the sub-array, the caller MUST call bson_append_array_end().

    +

    For generating array element keys, see bson_uint32_to_string().

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the array grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_array_end.html b/libbson/1.23.2/bson_append_array_end.html new file mode 100644 index 0000000000000000000000000000000000000000..cf87ecd929b27034de26304b8812868d05a4109d --- /dev/null +++ b/libbson/1.23.2/bson_append_array_end.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_append_array_end() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_array_end()

    +
    +

    Synopsis

    +
    bool
    +bson_append_array_end (bson_t *bson, bson_t *child);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_append_array_end() function shall complete the appending of an array field started with bson_append_array_begin(). child is invalid after calling this function.

    +
    +
    +

    Returns

    +

    Returns true if successful.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_binary.html b/libbson/1.23.2/bson_append_binary.html new file mode 100644 index 0000000000000000000000000000000000000000..207dc6915dc9c8f0e0f39e53e57237a86e5fa0c6 --- /dev/null +++ b/libbson/1.23.2/bson_append_binary.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + bson_append_binary() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_binary()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_BINARY(b, key, subtype, val, len) \
    +   bson_append_binary (b, key, (int) strlen (key), subtype, val, len)
    +
    +bool
    +bson_append_binary (bson_t *bson,
    +                    const char *key,
    +                    int key_length,
    +                    bson_subtype_t subtype,
    +                    const uint8_t *binary,
    +                    uint32_t length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: The key name.

    • +
    • key_length: The length of key in bytes or -1 to use strlen().

    • +
    • subtype: A bson_subtype_t indicating the binary subtype.

    • +
    • binary: A buffer to embed as binary data. May be NULL for an empty binary value.

    • +
    • length: The length of buffer in bytes. Must be 0 if binary is NULL.

    • +
    +
    +
    +

    Description

    +

    The bson_append_binary() function shall append a new element to bson containing the binary data provided.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending binary grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_bool.html b/libbson/1.23.2/bson_append_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..c3ba1b0c1e4a4074a0595af58169f1091e6ecbfb --- /dev/null +++ b/libbson/1.23.2/bson_append_bool.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_bool() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_bool()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_BOOL(b, key, val) \
    +   bson_append_bool (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_bool (bson_t *bson, const char *key, int key_length, bool value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: The name of the field.

    • +
    • key_length: The length of key or -1 to use strlen().

    • +
    • value: true or false.

    • +
    +
    +
    +

    Description

    +

    The bson_append_bool() function shall append a new element to bson containing the boolean provided.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_code.html b/libbson/1.23.2/bson_append_code.html new file mode 100644 index 0000000000000000000000000000000000000000..810f605eb38e1723eeef50b243dfa9cbf1e1ae94 --- /dev/null +++ b/libbson/1.23.2/bson_append_code.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_code() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_code()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_CODE(b, key, val) \
    +   bson_append_code (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_code (bson_t *bson,
    +                  const char *key,
    +                  int key_length,
    +                  const char *javascript);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: The key name.

    • +
    • key_length: The length of key or -1 to use strlen().

    • +
    • javascript: A UTF-8 encoded string containing the javascript.

    • +
    +
    +
    +

    Description

    +

    The bson_append_code() function shall append a new element to bson using the UTF-8 encoded javascript provided. javascript must be a NULL terminated C string.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending javascript grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_code_with_scope.html b/libbson/1.23.2/bson_append_code_with_scope.html new file mode 100644 index 0000000000000000000000000000000000000000..02312baf818d3ead998c80620eaffae4bd1a959a --- /dev/null +++ b/libbson/1.23.2/bson_append_code_with_scope.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_append_code_with_scope() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_code_with_scope()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_CODE_WITH_SCOPE(b, key, val, scope) \
    +   bson_append_code_with_scope (b, key, (int) strlen (key), val, scope)
    +
    +bool
    +bson_append_code_with_scope (bson_t *bson,
    +                             const char *key,
    +                             int key_length,
    +                             const char *javascript,
    +                             const bson_t *scope);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • javascript: A NULL-terminated UTF-8 encoded string containing the javascript fragment.

    • +
    • scope: Optional bson_t containing the scope for javascript.

    • +
    +
    +
    +

    Description

    +

    The bson_append_code_with_scope() function shall perform like bson_append_code() except it allows providing a scope to the javascript function in the form of a bson document.

    +

    If scope is NULL, this function appends an element with BSON type “code”, otherwise with BSON type “code with scope”.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending javascript and scope grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_date_time.html b/libbson/1.23.2/bson_append_date_time.html new file mode 100644 index 0000000000000000000000000000000000000000..9d8312e9e0da29ae8a1a2de97beb6f271046d7cd --- /dev/null +++ b/libbson/1.23.2/bson_append_date_time.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_date_time() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_date_time()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_DATE_TIME(b, key, val) \
    +   bson_append_date_time (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_date_time (bson_t *bson,
    +                       const char *key,
    +                       int key_length,
    +                       int64_t value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: The date and time as specified in milliseconds since the UNIX epoch.

    • +
    +
    +
    +

    Description

    +

    The bson_append_date_time() function shall append a new element to a bson document containing a date and time with no timezone information. value is assumed to be in UTC format of milliseconds since the UNIX epoch. value MAY be negative.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_dbpointer.html b/libbson/1.23.2/bson_append_dbpointer.html new file mode 100644 index 0000000000000000000000000000000000000000..2d77ea37f993629fb1a1557281421e6de36a5a36 --- /dev/null +++ b/libbson/1.23.2/bson_append_dbpointer.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + bson_append_dbpointer() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_dbpointer()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_DBPOINTER(b, key, coll, oid) \
    +   bson_append_dbpointer (b, key, (int) strlen (key), coll, oid)
    +
    +bool
    +bson_append_dbpointer (bson_t *bson,
    +                       const char *key,
    +                       int key_length,
    +                       const char *collection,
    +                       const bson_oid_t *oid);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • collection: The target collection name.

    • +
    • oid: The target document identifier.

    • +
    +
    +
    +

    Description

    +
    +

    Warning

    +

    The dbpointer field type is DEPRECATED and should only be used when interacting with legacy systems.

    +
    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the array grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_decimal128.html b/libbson/1.23.2/bson_append_decimal128.html new file mode 100644 index 0000000000000000000000000000000000000000..9a0d2b98aaa7714302fcb1d598a280f253824429 --- /dev/null +++ b/libbson/1.23.2/bson_append_decimal128.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_decimal128() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_decimal128()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_DECIMAL128(b, key, val) \
    +   bson_append_decimal128 (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_decimal128 (bson_t *bson,
    +                        const char *key,
    +                        int key_length,
    +                        const bson_decimal128_t *value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: A bson_decimal128_t.

    • +
    +
    +
    +

    Description

    +

    The bson_append_decimal128() function shall append a new element to bson containing a Decimal 128.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_document.html b/libbson/1.23.2/bson_append_document.html new file mode 100644 index 0000000000000000000000000000000000000000..f91f860add4c4a024d5669c5e52f3e1075bfd831 --- /dev/null +++ b/libbson/1.23.2/bson_append_document.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_document() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_document()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_DOCUMENT(b, key, val) \
    +   bson_append_document (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_document (bson_t *bson,
    +                      const char *key,
    +                      int key_length,
    +                      const bson_t *value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: A bson_t containing the sub-document to append.

    • +
    +
    +
    +

    Description

    +

    The bson_append_document() function shall append child to bson using the specified key. The type of the field will be a document.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_document_begin.html b/libbson/1.23.2/bson_append_document_begin.html new file mode 100644 index 0000000000000000000000000000000000000000..2eff9504d27413fdfe25813123195b0e53f0fe6b --- /dev/null +++ b/libbson/1.23.2/bson_append_document_begin.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_append_document_begin() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_document_begin()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_DOCUMENT_BEGIN(b, key, child) \
    +   bson_append_document_begin (b, key, (int) strlen (key), child)
    +
    +bool
    +bson_append_document_begin (bson_t *bson,
    +                            const char *key,
    +                            int key_length,
    +                            bson_t *child);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • child: An uninitialized bson_t to be initialized as the sub-document.

    • +
    +
    +
    +

    Description

    +

    The bson_append_document_begin() function shall begin appending a sub-document to bson. Use child to add fields to the sub-document. When completed, call bson_append_document_end() to complete the element.

    +

    child MUST be an uninitialized bson_t to avoid leaking memory.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if bson must grow larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_document_end.html b/libbson/1.23.2/bson_append_document_end.html new file mode 100644 index 0000000000000000000000000000000000000000..d4bfda12e02a58ac84034e9f1198e56ec65ab2ab --- /dev/null +++ b/libbson/1.23.2/bson_append_document_end.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_append_document_end() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_document_end()

    +
    +

    Synopsis

    +
    bool
    +bson_append_document_end (bson_t *bson, bson_t *child);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_append_document_end() function shall complete the appending of a document with bson_append_document_begin(). child is invalid after calling this function.

    +
    +
    +

    Returns

    +

    Returns true if successful.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_double.html b/libbson/1.23.2/bson_append_double.html new file mode 100644 index 0000000000000000000000000000000000000000..9bf6dae757206d8997a697ad0051c61762525d51 --- /dev/null +++ b/libbson/1.23.2/bson_append_double.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_double() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_double()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_DOUBLE(b, key, val) \
    +   bson_append_double (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_double (bson_t *bson,
    +                    const char *key,
    +                    int key_length,
    +                    double value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: A double value to append.

    • +
    +
    +
    +

    Description

    +

    The bson_append_double() function shall append a new element to a bson document of type double.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_int32.html b/libbson/1.23.2/bson_append_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..9a919a22e1973723503ead5ee6fb8b3c2b2de791 --- /dev/null +++ b/libbson/1.23.2/bson_append_int32.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_int32() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_int32()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_INT32(b, key, val) \
    +   bson_append_int32 (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_int32 (bson_t *bson,
    +                   const char *key,
    +                   int key_length,
    +                   int32_t value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: An int32_t.

    • +
    +
    +
    +

    Description

    +

    The bson_append_int32() function shall append a new element to bson containing a 32-bit signed integer.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_int64.html b/libbson/1.23.2/bson_append_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..72da9adc78d69313271d6aace4453a811b5ebde4 --- /dev/null +++ b/libbson/1.23.2/bson_append_int64.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_int64() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_int64()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_INT64(b, key, val) \
    +   bson_append_int64 (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_int64 (bson_t *bson,
    +                   const char *key,
    +                   int key_length,
    +                   int64_t value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: An int64_t.

    • +
    +
    +
    +

    Description

    +

    The bson_append_int64() function shall append a new element to bson containing a 64-bit signed integer.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_iter.html b/libbson/1.23.2/bson_append_iter.html new file mode 100644 index 0000000000000000000000000000000000000000..0d40a07a6d6381b7709dc0c649f17ea3d2079179 --- /dev/null +++ b/libbson/1.23.2/bson_append_iter.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_iter() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_iter()

    +
    +

    Synopsis

    +
    bool
    +bson_append_iter (bson_t *bson,
    +                  const char *key,
    +                  int key_length,
    +                  const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: Optional field name. If NULL, uses bson_iter_key(iter).

    • +
    • key_length: The length of key or -1 to use strlen().

    • +
    • iter: A bson_iter_t located on the position of the element to append.

    • +
    +
    +
    +

    Description

    +

    Appends the value at the current position of iter to the document.

    +
    +
    +

    Returns

    +

    Returns true if successful; false if the operation would overflow the maximum document size or another invalid state is detected.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_maxkey.html b/libbson/1.23.2/bson_append_maxkey.html new file mode 100644 index 0000000000000000000000000000000000000000..dc4134e70b9863c40f39a3cc2a8ebd4558b5ca28 --- /dev/null +++ b/libbson/1.23.2/bson_append_maxkey.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_append_maxkey() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_maxkey()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_MAXKEY(b, key) \
    +   bson_append_maxkey (b, key, (int) strlen (key))
    +
    +bool
    +bson_append_maxkey (bson_t *bson, const char *key, int key_length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    +
    +
    +

    Description

    +

    The bson_append_maxkey() function shall append an element of type BSON_TYPE_MAXKEY to a bson document. This is primarily used in queries and unlikely to be used when storing a document to MongoDB.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_minkey.html b/libbson/1.23.2/bson_append_minkey.html new file mode 100644 index 0000000000000000000000000000000000000000..569190eb8a08e33745e7153c37a6e187c3a3acd7 --- /dev/null +++ b/libbson/1.23.2/bson_append_minkey.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_append_minkey() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_minkey()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_MINKEY(b, key) \
    +   bson_append_minkey (b, key, (int) strlen (key))
    +
    +bool
    +bson_append_minkey (bson_t *bson, const char *key, int key_length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    +
    +
    +

    Description

    +

    The bson_append_minkey() function shall append an element of type BSON_TYPE_MINKEY to a bson document. This is primarily used in queries and unlikely to be used when storing a document to MongoDB.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_now_utc.html b/libbson/1.23.2/bson_append_now_utc.html new file mode 100644 index 0000000000000000000000000000000000000000..e51110b28c8d87db65da39e67f69f01612d988f0 --- /dev/null +++ b/libbson/1.23.2/bson_append_now_utc.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_append_now_utc() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_now_utc()

    +
    +

    Synopsis

    +
    bool
    +bson_append_now_utc (bson_t *bson, const char *key, int key_length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    +
    +
    +

    Description

    +

    The bson_append_now_utc() function is a helper to get the current date and time in UTC and append it to bson as a BSON_TYPE_DATE_TIME element.

    +

    This function calls bson_append_date_time() internally.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_null.html b/libbson/1.23.2/bson_append_null.html new file mode 100644 index 0000000000000000000000000000000000000000..9e25b21c59543dedddef25804233d3a85a3564f0 --- /dev/null +++ b/libbson/1.23.2/bson_append_null.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_append_null() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_null()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_NULL(b, key) bson_append_null (b, key, (int) strlen (key))
    +
    +bool
    +bson_append_null (bson_t *bson, const char *key, int key_length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    +
    +
    +

    Description

    +

    The bson_append_null() function shall append a new element to bson of type BSON_TYPE_NULL.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_oid.html b/libbson/1.23.2/bson_append_oid.html new file mode 100644 index 0000000000000000000000000000000000000000..5df6bad6552aa008652e7bc262690f8f6cc3adf1 --- /dev/null +++ b/libbson/1.23.2/bson_append_oid.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_oid() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_oid()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_OID(b, key, val) \
    +   bson_append_oid (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_oid (bson_t *bson,
    +                 const char *key,
    +                 int key_length,
    +                 const bson_oid_t *oid);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • oid: A bson_oid_t.

    • +
    +
    +
    +

    Description

    +

    The bson_append_oid() function shall append a new element to bson of type BSON_TYPE_OID. oid MUST be a pointer to a bson_oid_t.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending oid grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_regex.html b/libbson/1.23.2/bson_append_regex.html new file mode 100644 index 0000000000000000000000000000000000000000..a16fc42a73a50db5e5c369ec5cf098b7fb142a6d --- /dev/null +++ b/libbson/1.23.2/bson_append_regex.html @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + bson_append_regex() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_regex()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_REGEX(b, key, val, opt) \
    +   bson_append_regex (b, key, (int) strlen (key), val, opt)
    +
    +bool
    +bson_append_regex (bson_t *bson,
    +                   const char *key,
    +                   int key_length,
    +                   const char *regex,
    +                   const char *options);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • regex: An ASCII string containing the regex.

    • +
    • options: An optional string containing the regex options as a string.

    • +
    +
    +
    +

    Description

    +

    Appends a new field to bson of type BSON_TYPE_REGEX. regex should be the regex string. options should contain the options for the regex.

    +

    Valid characters for options include:

    +
      +
    • 'i' for case-insensitive.

    • +
    • 'm' for multiple matching.

    • +
    • 'x' for verbose mode.

    • +
    • 'l' to make w and W locale dependent.

    • +
    • 's' for dotall mode (‘.’ matches everything)

    • +
    • 'u' to make w and W match unicode.

    • +
    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the regex grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_regex_w_len.html b/libbson/1.23.2/bson_append_regex_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..118281dde783c4b7decb8ae2086bb2bd94487faa --- /dev/null +++ b/libbson/1.23.2/bson_append_regex_w_len.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + bson_append_regex_w_len() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_regex_w_len()

    +
    +

    Synopsis

    +
    bool
    +bson_append_regex_w_len (bson_t *bson,
    +                          const char *key,
    +                          int key_length,
    +                          const char *regex,
    +                          int regex_length,
    +                          const char *options);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • regex: An ASCII string containing the regex.

    • +
    • regex_length: The length of regex in bytes, or -1 to determine the length with strlen().

    • +
    • options: An optional string containing the regex options as a string.

    • +
    +
    +
    +

    Description

    +

    Appends a new field to bson of type BSON_TYPE_REGEX. regex should be the regex string. options should contain the options for the regex.

    +

    Valid characters for options include:

    +
      +
    • 'i' for case-insensitive.

    • +
    • 'm' for multiple matching.

    • +
    • 'x' for verbose mode.

    • +
    • 'l' to make w and W locale dependent.

    • +
    • 's' for dotall mode (‘.’ matches everything)

    • +
    • 'u' to make w and W match unicode.

    • +
    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the regex grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_symbol.html b/libbson/1.23.2/bson_append_symbol.html new file mode 100644 index 0000000000000000000000000000000000000000..d94d65a4452973bb5d42781eaf279262435d0fe0 --- /dev/null +++ b/libbson/1.23.2/bson_append_symbol.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_append_symbol() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_symbol()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_SYMBOL(b, key, val) \
    +   bson_append_symbol (b, key, (int) strlen (key), val, (int) strlen (val))
    +
    +bool
    +bson_append_symbol (bson_t *bson,
    +                    const char *key,
    +                    int key_length,
    +                    const char *value,
    +                    int length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: The symbol.

    • +
    • length: A length of symbol in bytes, or -1 to determine the length with strlen().

    • +
    +
    +
    +

    Description

    +

    Appends a new field to bson of type BSON_TYPE_SYMBOL. This BSON type is deprecated and should not be used in new code.

    +

    Due to legacy behavior, passing NULL for value appends a null value, not a symbol value. To append a null value directly, prefer using bson_append_null().

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_time_t.html b/libbson/1.23.2/bson_append_time_t.html new file mode 100644 index 0000000000000000000000000000000000000000..172dde1d33a1712c8a5572828ab369c7d8e7b69a --- /dev/null +++ b/libbson/1.23.2/bson_append_time_t.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_time_t() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_time_t()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_TIME_T(b, key, val) \
    +   bson_append_time_t (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_time_t (bson_t *bson,
    +                    const char *key,
    +                    int key_length,
    +                    time_t value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: A time_t.

    • +
    +
    +
    +

    Description

    +

    The bson_append_time_t() function is a helper that takes a time_t instead of milliseconds since the UNIX epoch.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_timestamp.html b/libbson/1.23.2/bson_append_timestamp.html new file mode 100644 index 0000000000000000000000000000000000000000..ce164961e286a62fbfbc88823ae024ad577d7a5b --- /dev/null +++ b/libbson/1.23.2/bson_append_timestamp.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + bson_append_timestamp() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_timestamp()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_TIMESTAMP(b, key, val, inc) \
    +   bson_append_timestamp (b, key, (int) strlen (key), val, inc)
    +
    +bool
    +bson_append_timestamp (bson_t *bson,
    +                       const char *key,
    +                       int key_length,
    +                       uint32_t timestamp,
    +                       uint32_t increment);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • timestamp: A uint32_t.

    • +
    • increment: A uint32_t.

    • +
    +
    +
    +

    Description

    +

    This function is not similar in functionality to bson_append_date_time(). Timestamp elements are different in that they include only second precision and an increment field.

    +

    They are primarily used for intra-MongoDB server communication.

    +

    The bson_append_timestamp() function shall append a new element of type BSON_TYPE_TIMESTAMP.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_timeval.html b/libbson/1.23.2/bson_append_timeval.html new file mode 100644 index 0000000000000000000000000000000000000000..1b88ceaaccd8304c2e240ce822a19655f560cd20 --- /dev/null +++ b/libbson/1.23.2/bson_append_timeval.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_timeval() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_timeval()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_TIMEVAL(b, key, val) \
    +   bson_append_timeval (b, key, (int) strlen (key), val)
    +
    +bool
    +bson_append_timeval (bson_t *bson,
    +                     const char *key,
    +                     int key_length,
    +                     struct timeval *value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: A struct timeval.

    • +
    +
    +
    +

    Description

    +

    The bson_append_timeval() function is a helper that takes a struct timeval instead of milliseconds since the UNIX epoch.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_undefined.html b/libbson/1.23.2/bson_append_undefined.html new file mode 100644 index 0000000000000000000000000000000000000000..be80e6fcf056f8dd6819c82b6482aa1d5a9db6a1 --- /dev/null +++ b/libbson/1.23.2/bson_append_undefined.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_append_undefined() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_undefined()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_UNDEFINED(b, key) \
    +   bson_append_undefined (b, key, (int) strlen (key))
    +
    +bool
    +bson_append_undefined (bson_t *bson, const char *key, int key_length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    +
    +
    +

    Description

    +

    The bson_append_undefined() function shall append a new element to bson of type BSON_TYPE_UNDEFINED. Undefined is common in Javascript. However, this element type is deprecated and should not be used in new code.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_utf8.html b/libbson/1.23.2/bson_append_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..aef92bb9814d9e395d294df1aafedb62da093523 --- /dev/null +++ b/libbson/1.23.2/bson_append_utf8.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_append_utf8() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_utf8()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_UTF8(b, key, val) \
    +   bson_append_utf8 (b, key, (int) strlen (key), val, (int) strlen (val))
    +
    +bool
    +bson_append_utf8 (bson_t *bson,
    +                  const char *key,
    +                  int key_length,
    +                  const char *value,
    +                  int length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: A UTF-8 encoded string.

    • +
    • length: The number of bytes in value excluding the trailing \0, or -1 to determine the length with strlen().

    • +
    +
    +
    +

    Description

    +

    The bson_append_utf8() function shall append a UTF-8 encoded string to bson.

    +

    value MUST be valid UTF-8.

    +

    Some UTF-8 implementations allow for \0 to be contained within the string (excluding the termination \0. This is allowed, but remember that it could cause issues with communicating with external systems that do not support it.

    +

    It is suggested to use modified UTF-8 which uses a 2 byte representation for embedded \0 within the string. This will allow these UTF-8 encoded strings to used with many libc functions.

    +

    Due to legacy behavior, passing NULL for value appends a null value, not a UTF8 value. To append a null value directly, prefer using bson_append_null().

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_append_value.html b/libbson/1.23.2/bson_append_value.html new file mode 100644 index 0000000000000000000000000000000000000000..80db9cf99bafdf2874700adfb2e877f78d2d62d0 --- /dev/null +++ b/libbson/1.23.2/bson_append_value.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_value() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_append_value()

    +
    +

    Synopsis

    +
    #define BSON_APPEND_VALUE(b, key, val) \
    +   bson_append_value (b, key, (int) strlen (key), (val))
    +
    +bool
    +bson_append_value (bson_t *bson,
    +                   const char *key,
    +                   int key_length,
    +                   const bson_value_t *value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: An ASCII C string containing the name of the field.

    • +
    • key_length: The length of key in bytes, or -1 to determine the length with strlen().

    • +
    • value: A bson_value_t.

    • +
    +
    +
    +

    Description

    +

    Appends a new field to bson by determining the boxed type in value. This is useful if you want to copy fields between documents but do not know the field type until runtime.

    +
    +
    +

    Returns

    +

    Returns true if the operation was applied successfully. The function will fail if appending the value grows bson larger than INT32_MAX.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_array_as_json.html b/libbson/1.23.2/bson_array_as_json.html new file mode 100644 index 0000000000000000000000000000000000000000..a4e1cf15dfd4af70d54b049456659509ed83f1d0 --- /dev/null +++ b/libbson/1.23.2/bson_array_as_json.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + bson_array_as_json() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_array_as_json()

    +
    +

    Synopsis

    +
    char *
    +bson_array_as_json (const bson_t *bson, size_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • length: An optional location for the length of the resulting string.

    • +
    +
    +
    +

    Description

    +

    The bson_array_as_json() function shall encode bson as a UTF-8 +string using libbson’s legacy JSON format, except the outermost element is +encoded as a JSON array, rather than a JSON document. +The caller is responsible for freeing the resulting UTF-8 encoded string by +calling bson_free() with the result.

    +

    If non-NULL, length will be set to the length of the result in bytes.

    +
    +
    +

    Returns

    +

    If successful, a newly allocated UTF-8 encoded string and length is set.

    +

    Upon failure, NULL is returned.

    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +
    +int main ()
    +{
    +   bson_t bson;
    +   char *str;
    +
    +   bson_init (&bson);
    +   /* BSON array is a normal BSON document with integer values for the keys,
    +    * starting with 0 and continuing sequentially
    +    */
    +   BSON_APPEND_UTF8 (&bson, "0", "foo");
    +   BSON_APPEND_UTF8 (&bson, "1", "bar");
    +
    +   str = bson_array_as_json (&bson, NULL);
    +   /* Prints
    +    * [ "foo", "bar" ]
    +    */
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   bson_destroy (&bson);
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_as_canonical_extended_json.html b/libbson/1.23.2/bson_as_canonical_extended_json.html new file mode 100644 index 0000000000000000000000000000000000000000..c921ced136984c0fa780b563917ec61071e8bc4c --- /dev/null +++ b/libbson/1.23.2/bson_as_canonical_extended_json.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_as_canonical_extended_json() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_as_canonical_extended_json()

    +
    +

    Synopsis

    +
    char *
    +bson_as_canonical_extended_json (const bson_t *bson, size_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • length: An optional location for the length of the resulting string.

    • +
    +
    +
    +

    Description

    +

    The bson_as_canonical_extended_json() encodes bson as a UTF-8 string in the canonical MongoDB Extended JSON format.

    +

    The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

    +

    If non-NULL, length will be set to the length of the result in bytes.

    +
    +
    +

    Returns

    +

    If successful, a newly allocated UTF-8 encoded string and length is set.

    +

    Upon failure, NULL is returned.

    +
    +
    +

    Example

    +
    char *str = bson_as_canonical_extended_json (doc, NULL);
    +printf ("%s\n", str);
    +bson_free (str);
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_as_json.html b/libbson/1.23.2/bson_as_json.html new file mode 100644 index 0000000000000000000000000000000000000000..e040934b7d1a71c5d71937bb3bdb3aa2dd44c8a2 --- /dev/null +++ b/libbson/1.23.2/bson_as_json.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + bson_as_json() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_as_json()

    +
    +

    Synopsis

    +
    char *
    +bson_as_json (const bson_t *bson, size_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • length: An optional location for the length of the resulting string.

    • +
    +
    +
    +

    Description

    +

    The bson_as_json() function shall encode bson as a UTF-8 string using libbson’s legacy JSON format. This function is superseded by bson_as_canonical_extended_json() and bson_as_relaxed_extended_json(), which use the same MongoDB Extended JSON format as all other MongoDB drivers.

    +

    The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

    +

    If non-NULL, length will be set to the length of the result in bytes.

    +
    +
    +

    Returns

    +

    If successful, a newly allocated UTF-8 encoded string and length is set.

    +

    Upon failure, NULL is returned.

    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +
    +int main ()
    +{
    +   bson_t bson;
    +   char *str;
    +
    +   bson_init (&bson);
    +   BSON_APPEND_UTF8 (&bson, "0", "foo");
    +   BSON_APPEND_UTF8 (&bson, "1", "bar");
    +
    +   str = bson_as_json (&bson, NULL);
    +   /* Prints
    +    * { "0" : "foo", "1" : "bar" }
    +    */
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   bson_destroy (&bson);
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_as_json_with_opts.html b/libbson/1.23.2/bson_as_json_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..d1500997a8dc4a95012dcb5df88958aaf1395324 --- /dev/null +++ b/libbson/1.23.2/bson_as_json_with_opts.html @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + bson_as_json_with_opts() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_as_json_with_opts()

    +
    +

    Synopsis

    +
    char *
    +bson_as_json_with_opts (const bson_t *bson, size_t *length, const bson_json_opts_t *opts);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • length: An optional location for the length of the resulting string.

    • +
    • opts: A bson_json_opts_t.

    • +
    +
    +
    +

    Description

    +

    The bson_as_json_with_opts() encodes bson as a UTF-8 string in the MongoDB Extended JSON format.

    +

    The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

    +

    If non-NULL, length will be set to the length of the result in bytes.

    +

    The opts structure is used to pass options for the encoding process. Please refer to the documentation of bson_json_opts_t for more details.

    +
    +
    +

    Returns

    +

    If successful, a newly allocated UTF-8 encoded string and length is set.

    +

    Upon failure, NULL is returned.

    +
    +
    +

    Example

    +
    bson_json_opts_t *opts = bson_json_opts_new (BSON_JSON_MODE_CANONICAL, BSON_MAX_LEN_UNLIMITED);
    +char *str = bson_as_json_with_opts (doc, NULL, opts);
    +printf ("%s\n", str);
    +bson_free (str);
    +bson_json_opts_destroy (opts);
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_as_relaxed_extended_json.html b/libbson/1.23.2/bson_as_relaxed_extended_json.html new file mode 100644 index 0000000000000000000000000000000000000000..383c2412a96354c17297f64ac9e6f22596c5c6ac --- /dev/null +++ b/libbson/1.23.2/bson_as_relaxed_extended_json.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_as_relaxed_extended_json() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_as_relaxed_extended_json()

    +
    +

    Synopsis

    +
    char *
    +bson_as_relaxed_extended_json (const bson_t *bson, size_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • length: An optional location for the length of the resulting string.

    • +
    +
    +
    +

    Description

    +

    The bson_as_relaxed_extended_json() encodes bson as a UTF-8 string in the relaxed MongoDB Extended JSON format.

    +

    The caller is responsible for freeing the resulting UTF-8 encoded string by calling bson_free() with the result.

    +

    If non-NULL, length will be set to the length of the result in bytes.

    +
    +
    +

    Returns

    +

    If successful, a newly allocated UTF-8 encoded string and length is set.

    +

    Upon failure, NULL is returned.

    +
    +
    +

    Example

    +
    char *str = bson_as_relaxed_extended_json (doc, NULL);
    +printf ("%s\n", str);
    +bson_free (str);
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_ascii_strtoll.html b/libbson/1.23.2/bson_ascii_strtoll.html new file mode 100644 index 0000000000000000000000000000000000000000..be0ba3f6e38e8102290fc455b5885b284631d3fc --- /dev/null +++ b/libbson/1.23.2/bson_ascii_strtoll.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_ascii_strtoll() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_ascii_strtoll()

    +
    +

    Synopsis

    +
    int64_t
    +bson_ascii_strtoll (const char *str, char **endptr, int base);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • str: The string to convert.

    • +
    • endptr: Address of the first invalid character of str, or null.

    • +
    • base: The base to use for the conversion.

    • +
    +
    +
    +

    Description

    +

    A portable version of strtoll().

    +

    Converts a string to a 64-bit signed integer according to the given base, +which must be 16, 10, or 8. Leading whitespace will be ignored.

    +

    If base is 0 is passed in, the base is inferred from the string’s leading +characters. Base-16 numbers start with “0x” or “0X”, base-8 numbers start with +“0”, base-10 numbers start with a digit from 1 to 9.

    +

    If endptr is not NULL, it will be assigned the address of the first invalid +character of str, or its null terminating byte if the entire string was valid.

    +

    If an invalid value is encountered, errno will be set to EINVAL and zero will +be returned. If the number is out of range, errno is set to ERANGE and +LLONG_MAX or LLONG_MIN is returned.

    +
    +
    +

    Returns

    +

    The result of the conversion.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_check_version.html b/libbson/1.23.2/bson_check_version.html new file mode 100644 index 0000000000000000000000000000000000000000..fd02ff7916a781e097f436b8a5a757612f129213 --- /dev/null +++ b/libbson/1.23.2/bson_check_version.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_check_version() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_check_version()

    +
    +

    Synopsis

    +
    bool
    +bson_check_version (int required_major, int required_minor, int required_micro);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • required_major: The minimum major version required.

    • +
    • required_minor: The minimum minor version required.

    • +
    • required_micro: The minimum micro version required.

    • +
    +
    +
    +

    Description

    +

    Check at runtime if this release of libbson meets a required version.

    +
    +
    +

    Returns

    +

    True if libbson’s version is greater than or equal to the required version.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_compare.html b/libbson/1.23.2/bson_compare.html new file mode 100644 index 0000000000000000000000000000000000000000..0b4c01478d44809c9e08ed17a024e6a5e8e6c038 --- /dev/null +++ b/libbson/1.23.2/bson_compare.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_compare() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_compare()

    +
    +

    Synopsis

    +
    int
    +bson_compare (const bson_t *bson, const bson_t *other);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_compare() function shall compare two bson documents for equality.

    +

    This can be useful in conjunction with _qsort()_.

    +

    If equal, 0 is returned.

    +
    +

    Tip

    +

    This function uses _memcmp()_ internally, so the semantics are the same.

    +
    +
    +
    +

    Returns

    +

    less than zero, zero, or greater than zero in qsort() style.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_concat.html b/libbson/1.23.2/bson_concat.html new file mode 100644 index 0000000000000000000000000000000000000000..52e356200a9159814234e3effc6c319694983617 --- /dev/null +++ b/libbson/1.23.2/bson_concat.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + bson_concat() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_concat()

    +
    +

    Synopsis

    +
    bool
    +bson_concat (bson_t *dst, const bson_t *src);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_concat() function shall append the contents of src to dst.

    +
    +
    +

    Returns

    +

    Returns true if successful; false if the operation would overflow the maximum document size or another invalid state is detected.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_context_destroy.html b/libbson/1.23.2/bson_context_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..f15f32f71a382994ba4a83e9ca57c31291931d28 --- /dev/null +++ b/libbson/1.23.2/bson_context_destroy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_context_destroy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_context_destroy()

    +
    +

    Synopsis

    +
    void
    +bson_context_destroy (bson_context_t *context);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_context_destroy() function shall release all resources associated with context. Does nothing if context is NULL.

    +

    This should be called when you are no longer using a bson_context_t that you have allocated with bson_context_new().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_context_get_default.html b/libbson/1.23.2/bson_context_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..92e56b6ffc3d1455fbf20b5bae93807af3732644 --- /dev/null +++ b/libbson/1.23.2/bson_context_get_default.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + bson_context_get_default() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_context_get_default()

    +
    +

    Synopsis

    +
    bson_context_t *
    +bson_context_get_default (void);
    +
    +
    +
    +
    +

    Returns

    +

    The bson_context_get_default() function shall return the default bson_context_t for the process. +This context is created with the flags BSON_CONTEXT_THREAD_SAFE and BSON_CONTEXT_DISABLE_PID_CACHE.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_context_new.html b/libbson/1.23.2/bson_context_new.html new file mode 100644 index 0000000000000000000000000000000000000000..bca74b8770577488e060004d6543a2965fffccf8 --- /dev/null +++ b/libbson/1.23.2/bson_context_new.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_context_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_context_new()

    +
    +

    Synopsis

    +
    bson_context_t *
    +bson_context_new (bson_context_flags_t flags);
    +
    +
    +
    +
    +

    Parameters

    + +

    The following flags may be used: +* BSON_CONTEXT_NONE meaning creating ObjectIDs with this context is not a thread-safe operation. +* BSON_CONTEXT_DISABLE_PID_CACHE meaning creating ObjectIDs will also check if the process has +changed by calling getpid() on every ObjectID generation.

    +

    The following flags are deprecated and have no effect:

    +
      +
    • BSON_CONTEXT_DISABLE_HOST_CACHE

    • +
    • BSON_CONTEXT_THREAD_SAFE

    • +
    • BSON_CONTEXT_USE_TASK_ID

    • +
    +
    +
    +

    Description

    +

    Creates a new bson_context_t. This is rarely needed as bson_context_get_default() serves most use-cases.

    +
    +
    +

    Returns

    +

    A newly allocated bson_context_t that should be freed with bson_context_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_context_t.html b/libbson/1.23.2/bson_context_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1344cd34c1313468f09eb75975fdec9b78495a62 --- /dev/null +++ b/libbson/1.23.2/bson_context_t.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + bson_context_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_context_t

    +

    BSON OID Generation Context

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef enum {
    +  BSON_CONTEXT_NONE = 0,
    +  BSON_CONTEXT_DISABLE_PID_CACHE = (1 << 2),
    +} bson_context_flags_t;
    +
    +typedef struct _bson_context_t bson_context_t;
    +
    +bson_context_t *
    +bson_context_get_default (void) BSON_GNUC_CONST;
    +bson_context_t *
    +bson_context_new (bson_context_flags_t flags);
    +void
    +bson_context_destroy (bson_context_t *context);
    +
    +
    +
    +
    +

    Description

    +

    The bson_context_t structure is context for generation of BSON Object +IDs. This context allows overriding behavior of generating ObjectIDs. The flags +BSON_CONTEXT_NONE, BSON_CONTEXT_THREAD_SAFE, and BSON_CONTEXT_DISABLE_PID_CACHE +are the only ones used. The others have no effect.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_context_t *ctx = NULL;
    +   bson_oid_t oid;
    +
    +   /* use default context, via bson_context_get_default() */
    +   bson_oid_init (&oid, NULL);
    +
    +   /* specify a local context for additional control */
    +   ctx = bson_context_new (BSON_CONTEXT_NONE);
    +   bson_oid_init (&oid, ctx);
    +
    +   bson_context_destroy (ctx);
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_copy.html b/libbson/1.23.2/bson_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..a0213fe2f8a9688260533d6eb8f4bea590ef42ed --- /dev/null +++ b/libbson/1.23.2/bson_copy.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_copy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_copy()

    +
    +

    Synopsis

    +
    bson_t *
    +bson_copy (const bson_t *bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_copy() function shall copy the contents of a bson document into a new bson_t.

    +

    The resulting bson_t should be freed with bson_destroy().

    +
    +
    +

    Returns

    +

    A newly allocated bson_t that should be freed with bson_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_copy_to.html b/libbson/1.23.2/bson_copy_to.html new file mode 100644 index 0000000000000000000000000000000000000000..befa37df2840430d61c6321cdc51dd7d19f767a4 --- /dev/null +++ b/libbson/1.23.2/bson_copy_to.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_copy_to() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_copy_to()

    +
    +

    Synopsis

    +
    void
    +bson_copy_to (const bson_t *src, bson_t *dst);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_copy_to() function shall initialize dst with a copy of the contents of src.

    +

    dst MUST be an uninitialized bson_t to avoid leaking memory.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_copy_to_excluding.html b/libbson/1.23.2/bson_copy_to_excluding.html new file mode 100644 index 0000000000000000000000000000000000000000..8cbb6157aa438bf4098de7a6a00a8a1550671b33 --- /dev/null +++ b/libbson/1.23.2/bson_copy_to_excluding.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_copy_to_excluding() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_copy_to_excluding()

    +
    +

    Synopsis

    +
    void
    +bson_copy_to_excluding (const bson_t *src,
    +                        bson_t *dst,
    +                        const char *first_exclude,
    +                        ...) BSON_GNUC_NULL_TERMINATED
    +   BSON_GNUC_DEPRECATED_FOR (bson_copy_to_excluding_noinit);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • src: A bson_t.

    • +
    • dst: A bson_t.

    • +
    • first_exclude: The first field name to exclude.

    • +
    +
    +
    +

    Description

    +

    The bson_copy_to_excluding() function shall copy all fields from +src to dst except those specified by the variadic, NULL terminated list +of keys starting from first_exclude.

    +
    +
    +

    Deprecated

    +
    +

    This function is deprecated. Please use +bson_copy_to_excluding_noinit() in new code.

    +
    +
    +

    Warning

    +

    bson_init() is called on dst.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_copy_to_excluding_noinit.html b/libbson/1.23.2/bson_copy_to_excluding_noinit.html new file mode 100644 index 0000000000000000000000000000000000000000..b44e49c11cd453608ac6bc9646e9b64011ffa362 --- /dev/null +++ b/libbson/1.23.2/bson_copy_to_excluding_noinit.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + bson_copy_to_excluding_noinit() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_copy_to_excluding_noinit()

    +
    +

    Synopsis

    +
    void
    +bson_copy_to_excluding_noinit (const bson_t *src,
    +                               bson_t *dst,
    +                               const char *first_exclude,
    +                               ...) BSON_GNUC_NULL_TERMINATED;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • src: A bson_t.

    • +
    • dst: A bson_t.

    • +
    • first_exclude: The first field name to exclude.

    • +
    +
    +
    +

    Description

    +

    The bson_copy_to_excluding_noinit() function shall copy all fields +from src to dst except those specified by the variadic, NULL terminated +list of keys starting from first_exclude. +Works the same way as bson_copy_to_excluding(), except does not call +bson_init() on dst. +This function should be preferred in new code over bson_copy_to_excluding().

    +
    +

    Warning

    +

    This is generally not needed except in very special situations.

    +
    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +
    +int main ()
    +{
    +   bson_t bson;
    +   bson_t bson2;
    +   char *str;
    +
    +   bson_init (&bson);
    +   bson_append_int32 (&bson, "a", 1, 1);
    +   bson_append_int32 (&bson, "b", 1, 2);
    +   bson_append_int32 (&bson, "c", 1, 2);
    +
    +   bson_init (&bson2);
    +   bson_copy_to_excluding_noinit (&bson, &bson2, "b", NULL);
    +
    +   str = bson_as_json (&bson2, NULL);
    +   /* Prints
    +    * { "a" : 1, "c" : 2 }
    +    */
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   bson_destroy (&bson);
    +   bson_destroy (&bson2);
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_copy_to_excluding_noinit_va.html b/libbson/1.23.2/bson_copy_to_excluding_noinit_va.html new file mode 100644 index 0000000000000000000000000000000000000000..4aef508df81fb8adb3debf646db7c9bd217326d6 --- /dev/null +++ b/libbson/1.23.2/bson_copy_to_excluding_noinit_va.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_copy_to_excluding_noinit_va() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_copy_to_excluding_noinit_va()

    +
    +

    Synopsis

    +
    void
    +bson_copy_to_excluding_noinit_va (const bson_t *src,
    +                                  bson_t *dst,
    +                                  const char *first_exclude,
    +                                  va_list args);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • src: A bson_t.

    • +
    • dst: A bson_t.

    • +
    • first_exclude: The first field name to exclude.

    • +
    • args: A va_list.

    • +
    +
    +
    +

    Description

    +

    The bson_copy_to_excluding_noinit_va() function shall copy all fields from src to dst except those specified by first_exclude and args.

    +

    This method works the same way as bson_copy_to_excluding_noinit(), except it takes a va_list. This method does not call bson_init() on dst.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_count_keys.html b/libbson/1.23.2/bson_count_keys.html new file mode 100644 index 0000000000000000000000000000000000000000..0ad05311c5b1e9451f4a98bfeaf05a7883af8ec2 --- /dev/null +++ b/libbson/1.23.2/bson_count_keys.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_count_keys() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_count_keys()

    +
    +

    Synopsis

    +
    uint32_t
    +bson_count_keys (const bson_t *bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_count_keys() function shall count the number of elements within bson.

    +
    +
    +

    Returns

    +

    A positive integer or zero.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_decimal128_from_string.html b/libbson/1.23.2/bson_decimal128_from_string.html new file mode 100644 index 0000000000000000000000000000000000000000..f487b32cf4a8ecc373296c8384633e34eece7838 --- /dev/null +++ b/libbson/1.23.2/bson_decimal128_from_string.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + bson_decimal128_from_string() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_decimal128_from_string()

    +
    +

    Synopsis

    +
    bool
    +bson_decimal128_from_string (const char *string, bson_decimal128_t *dec);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Parses the string containing ascii encoded Decimal128 and initialize the bytes +in dec. See the Decimal128 specification +for the exact string format.

    +
    +
    +

    Returns

    +

    Returns true if valid Decimal128 string was provided, otherwise false +and dec will be set to NaN.

    +
    +
    +

    Example

    +
    bson_decimal128_t dec;
    +bson_decimal128_from_string ("1.00", &dec);
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_decimal128_from_string_w_len.html b/libbson/1.23.2/bson_decimal128_from_string_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..b9e748727c05889be954ebefdfc8af93bcde6f19 --- /dev/null +++ b/libbson/1.23.2/bson_decimal128_from_string_w_len.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_decimal128_from_string_w_len() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_decimal128_from_string_w_len()

    +
    +

    Synopsis

    +
    bool
    +bson_decimal128_from_string_w_len (const char *string,
    +                                   int len,
    +                                   bson_decimal128_t *dec);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • string: A string containing ASCII encoded Decimal128.

    • +
    • len: The length of string in bytes, or -1 meaning the string is null-terminated.

    • +
    • dec: A bson_decimal128_t.

    • +
    +
    +
    +

    Description

    +

    Parses the string containing ascii encoded Decimal128 and initialize the bytes +in dec. See the Decimal128 specification +for the exact string format.

    +
    +
    +

    Returns

    +

    Returns true if valid Decimal128 string was provided, otherwise false +and dec will be set to NaN.

    +
    +
    +

    Example

    +
    bson_decimal128_t dec;
    +bson_decimal128_from_string_w_len ("1.00", 4, &dec);
    +bson_decimal128_from_string_w_len ("1.00", -1, &dec);
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_decimal128_t.html b/libbson/1.23.2/bson_decimal128_t.html new file mode 100644 index 0000000000000000000000000000000000000000..132d40d6c2d8fd96e52d931d3ab469dd8574fe63 --- /dev/null +++ b/libbson/1.23.2/bson_decimal128_t.html @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + bson_decimal128_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_decimal128_t

    +

    BSON Decimal128 Abstraction

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +#define BSON_DECIMAL128_STRING 43
    +#define BSON_DECIMAL128_INF "Infinity"
    +#define BSON_DECIMAL128_NAN "NaN"
    +
    +typedef struct {
    +#if BSON_BYTE_ORDER == BSON_LITTLE_ENDIAN
    +   uint64_t low;
    +   uint64_t high;
    +#elif BSON_BYTE_ORDER == BSON_BIG_ENDIAN
    +   uint64_t high;
    +   uint64_t low;
    +#endif
    +} bson_decimal128_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_decimal128_t structure +represents the IEEE-754 Decimal128 data type.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   char string[BSON_DECIMAL128_STRING];
    +   bson_decimal128_t decimal128;
    +
    +   bson_decimal128_from_string ("100.00", &decimal128);
    +   bson_decimal128_to_string (&decimal128, string);
    +   printf ("Decimal128 value: %s\n", string);
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_decimal128_to_string.html b/libbson/1.23.2/bson_decimal128_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..a2edcd942442ff29f86e7d3224a2b3f48e4abda0 --- /dev/null +++ b/libbson/1.23.2/bson_decimal128_to_string.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_decimal128_to_string() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_decimal128_to_string()

    +
    +

    Synopsis

    +
    void
    +bson_decimal128_to_string (const bson_decimal128_t *dec, char *str);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • dec: A bson_decimal128_t.

    • +
    • str: A location of length BSON_DECIMAL128_STRING for the resulting string.

    • +
    +
    +
    +

    Description

    +

    Converts dec into a printable string.

    +
    +
    +

    Example

    +
    char decimal128_string[BSON_DECIMAL128_STRING];
    +bson_decimal128_to_string (&decimal128t, decimal128_string);
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_destroy.html b/libbson/1.23.2/bson_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..27ea47923fb32c4cf6790aafafe2c329e8c9881b --- /dev/null +++ b/libbson/1.23.2/bson_destroy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_destroy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_destroy()

    +
    +

    Synopsis

    +
    void
    +bson_destroy (bson_t *bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_destroy() function shall free an allocated bson_t structure. Does nothing if bson is NULL.

    +

    This function should always be called when you are done with a bson_t unless otherwise specified.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_destroy_with_steal.html b/libbson/1.23.2/bson_destroy_with_steal.html new file mode 100644 index 0000000000000000000000000000000000000000..a8db191938c835ac116c8c32270c48d025a1f104 --- /dev/null +++ b/libbson/1.23.2/bson_destroy_with_steal.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + bson_destroy_with_steal() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_destroy_with_steal()

    +
    +

    Synopsis

    +
    uint8_t *
    +bson_destroy_with_steal (bson_t *bson, bool steal, uint32_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • steal: A bool indicating if the underlying buffer should be stolen.

    • +
    • length: A location for storing the resulting buffer length.

    • +
    +
    +
    +

    Description

    +

    The bson_destroy_with_steal() function shall destroy a bson_t structure but return the underlying buffer instead of freeing it. If steal is false, this is equivalent to calling bson_destroy(). It is a programming error to call this function on a bson_t that is not a top-level bson_t, such as those initialized with bson_append_document_begin(), bson_append_array_begin(), and bson_writer_begin().

    +
    +
    +

    Returns

    +

    bson_destroy_with_steal() shall return a buffer containing the contents of the bson_t if steal is non-zero. This should be freed with bson_free() when no longer in use. length will be set to the length of the bson document if non-NULL.

    +
    +

    See also

    +
    +
    bson_steal(), a higher-level function that efficiently transfers the contents of one bson_t to another.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_equal.html b/libbson/1.23.2/bson_equal.html new file mode 100644 index 0000000000000000000000000000000000000000..39f2aa3bb54e753a361eee447c726383945f8b1a --- /dev/null +++ b/libbson/1.23.2/bson_equal.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_equal() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_equal()

    +
    +

    Synopsis

    +
    bool
    +bson_equal (const bson_t *bson, const bson_t *other);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_equal() function shall return true if both documents are equal.

    +
    +
    +

    Returns

    +

    true if both documents are equal.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_error_t.html b/libbson/1.23.2/bson_error_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5d003f4fc3778a04b0f30be289d266d9beee8a1d --- /dev/null +++ b/libbson/1.23.2/bson_error_t.html @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + bson_error_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_error_t

    +

    BSON Error Encapsulation

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct {
    +   uint32_t domain;
    +   uint32_t code;
    +   char message[504];
    +} bson_error_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_error_t structure is used as an out-parameter to pass error information to the caller. It should be stack-allocated and does not requiring freeing.

    +

    See Handling Errors.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    bson_reader_t *reader;
    +bson_error_t error;
    +
    +reader = bson_reader_new_from_file ("dump.bson", &error);
    +if (!reader) {
    +   fprintf (
    +      stderr, "ERROR: %d.%d: %s\n", error.domain, error.code, error.message);
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_free.html b/libbson/1.23.2/bson_free.html new file mode 100644 index 0000000000000000000000000000000000000000..850eff730786ae768de3b1e3e2e8f145d2f3c840 --- /dev/null +++ b/libbson/1.23.2/bson_free.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_free() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_free()

    +
    +

    Synopsis

    +
    void
    +bson_free (void *mem);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • mem: A memory region.

    • +
    +
    +
    +

    Description

    +

    This function shall free the memory supplied by mem. This should be used by functions that require you free the result with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_get_data.html b/libbson/1.23.2/bson_get_data.html new file mode 100644 index 0000000000000000000000000000000000000000..e7cace3b3c1ccb6492cd2fe8f7da82e743c9d868 --- /dev/null +++ b/libbson/1.23.2/bson_get_data.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_get_data() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_get_data()

    +
    +

    Synopsis

    +
    const uint8_t *
    +bson_get_data (const bson_t *bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_get_data() function shall return the raw buffer of a bson document. This can be used in conjunction with the len property of a bson_t if you want to copy the raw buffer around.

    +
    +
    +

    Returns

    +

    A buffer which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_get_major_version.html b/libbson/1.23.2/bson_get_major_version.html new file mode 100644 index 0000000000000000000000000000000000000000..1f2fd42974851758adfce75ea0bdd36d7c21be80 --- /dev/null +++ b/libbson/1.23.2/bson_get_major_version.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_get_major_version() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_get_major_version()

    +
    +

    Synopsis

    +
    int
    +bson_get_major_version (void);
    +
    +
    +
    +
    +

    Description

    +

    Get the first number in libbson’s MAJOR.MINOR.MICRO release version.

    +
    +
    +

    Returns

    +

    The value of BSON_MAJOR_VERSION when Libbson was compiled.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_get_micro_version.html b/libbson/1.23.2/bson_get_micro_version.html new file mode 100644 index 0000000000000000000000000000000000000000..3e80ea8af588fb327ae792b76e5daa53dbc972de --- /dev/null +++ b/libbson/1.23.2/bson_get_micro_version.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_get_micro_version() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_get_micro_version()

    +
    +

    Synopsis

    +
    int
    +bson_get_micro_version (void);
    +
    +
    +
    +
    +

    Description

    +

    Get the third number in libbson’s MAJOR.MINOR.MICRO release version.

    +
    +
    +

    Returns

    +

    The value of BSON_MICRO_VERSION when Libbson was compiled.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_get_minor_version.html b/libbson/1.23.2/bson_get_minor_version.html new file mode 100644 index 0000000000000000000000000000000000000000..709ae5050f816e66a4a00f0423555ba7e10e9aa0 --- /dev/null +++ b/libbson/1.23.2/bson_get_minor_version.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_get_minor_version() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_get_minor_version()

    +
    +

    Synopsis

    +
    int
    +bson_get_minor_version (void);
    +
    +
    +
    +
    +

    Description

    +

    Get the middle number in libbson’s MAJOR.MINOR.MICRO release version.

    +
    +
    +

    Returns

    +

    The value of BSON_MINOR_VERSION when Libbson was compiled.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_get_monotonic_time.html b/libbson/1.23.2/bson_get_monotonic_time.html new file mode 100644 index 0000000000000000000000000000000000000000..c5ff4bda1ada81cf0df3844705d98e861a3b8f3a --- /dev/null +++ b/libbson/1.23.2/bson_get_monotonic_time.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + System Clock — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    System Clock

    +

    BSON Clock Abstraction

    +
    +

    Synopsis

    +
    int64_t
    +bson_get_monotonic_time (void);
    +int
    +bson_gettimeofday (struct timeval *tv);
    +
    +
    +
    +
    +

    Description

    +

    The clock abstraction in Libbson provides a cross-platform way to handle timeouts within the BSON library. It abstracts the differences in implementations of gettimeofday() as well as providing a monotonic (incrementing only) clock in microseconds.

    +
    +
    +

    Functions

    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_get_version.html b/libbson/1.23.2/bson_get_version.html new file mode 100644 index 0000000000000000000000000000000000000000..7c3c438b6effa2bf792b09e05dee295607c4ad4c --- /dev/null +++ b/libbson/1.23.2/bson_get_version.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + bson_get_version() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_get_version()

    +
    +

    Synopsis

    +
    const char *
    +bson_get_version (void);
    +
    +
    +
    +
    +

    Description

    +

    A string representation of Libbson’s version, formatted something like “1.2.3” or “1.2.3-pre”.

    +
    +
    +

    Returns

    +

    A string you must not modify or free.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_has_field.html b/libbson/1.23.2/bson_has_field.html new file mode 100644 index 0000000000000000000000000000000000000000..f1f60d5a9b91e7c2620186742d724a9b80348557 --- /dev/null +++ b/libbson/1.23.2/bson_has_field.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_has_field() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_has_field()

    +
    +

    Synopsis

    +
    bool
    +bson_has_field (const bson_t *bson, const char *key);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • key: A string containing the name of the field to check for.

    • +
    +
    +
    +

    Description

    +

    Checks to see if key contains an element named key. This also accepts “dotkey” notation such as “a.b.c.d”.

    +
    +
    +

    Returns

    +

    true if key was found within bson; otherwise false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_init.html b/libbson/1.23.2/bson_init.html new file mode 100644 index 0000000000000000000000000000000000000000..f8514226934f117e4aeaa211d8f38ee405694836 --- /dev/null +++ b/libbson/1.23.2/bson_init.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + bson_init() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_init()

    +
    +

    Synopsis

    +
    void
    +bson_init (bson_t *b);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_init() function shall initialize a bson_t that is placed on the stack. This is equivalent to initializing a bson_t to BSON_INITIALIZER.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_init_from_json.html b/libbson/1.23.2/bson_init_from_json.html new file mode 100644 index 0000000000000000000000000000000000000000..e290098ed680239e007dd89e4e17884acddd4b9b --- /dev/null +++ b/libbson/1.23.2/bson_init_from_json.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + bson_init_from_json() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_init_from_json()

    +
    +

    Synopsis

    +
    bool
    +bson_init_from_json (bson_t *bson,
    +                     const char *data,
    +                     ssize_t len,
    +                     bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: Pointer to an uninitialized bson_t.

    • +
    • data: A UTF-8 encoded string containing valid JSON.

    • +
    • len: The length of data in bytes excluding a trailing \0 or -1 to determine the length with strlen().

    • +
    • error: An optional location for a bson_error_t.

    • +
    +
    +
    +

    Description

    +

    The bson_init_from_json() function will initialize a new bson_t by parsing the JSON found in data. Only a single JSON object may exist in data or an error will be set and false returned.

    +

    data should be in MongoDB Extended JSON format.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if valid JSON was parsed, otherwise false and error is set. On success, bson is initialized and must be freed with bson_destroy(), otherwise bson is invalid.

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_init_static.html b/libbson/1.23.2/bson_init_static.html new file mode 100644 index 0000000000000000000000000000000000000000..69beb4a2eea5f879471de6596ff2dbcc068bb855 --- /dev/null +++ b/libbson/1.23.2/bson_init_static.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + bson_init_static() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_init_static()

    +
    +

    Synopsis

    +
    bool
    +bson_init_static (bson_t *b, const uint8_t *data, size_t length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • b: A bson_t.

    • +
    • data: A buffer to initialize with.

    • +
    • length: The length of data in bytes.

    • +
    +
    +
    +

    Description

    +

    The bson_init_static() function shall shall initialize a read-only bson_t on the stack using the data provided. No copies of the data will be made and therefore must remain valid for the lifetime of the bson_t.

    +

    The resulting bson_t has internal references and therefore must not be copied to avoid dangling pointers in the copy.

    +
    +
    +

    Returns

    +

    Returns true if bson_t was successfully initialized, otherwise false. The function can fail if data or length are invalid.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_isspace.html b/libbson/1.23.2/bson_isspace.html new file mode 100644 index 0000000000000000000000000000000000000000..63146f0d0b5fda28e9c36a25b85c7386122a01ba --- /dev/null +++ b/libbson/1.23.2/bson_isspace.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_isspace() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_isspace()

    +
    +

    Synopsis

    +
    bool
    +bson_isspace (int c);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • c: A character.

    • +
    +
    +
    +

    Description

    +

    A safer alternative to isspace with additional bounds checking.

    +

    It is equivalent to isspace, excepts always returns false if c is out of the inclusive bounds [-1, 255].

    +
    +
    +

    Returns

    +

    A boolean indicating if the c is considered white-space (as determined by the isspace function).

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_array.html b/libbson/1.23.2/bson_iter_array.html new file mode 100644 index 0000000000000000000000000000000000000000..e2749855f2e2cd2e3d82a545b547f08cd62bcaa0 --- /dev/null +++ b/libbson/1.23.2/bson_iter_array.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_array() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_array()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_ARRAY(iter) (bson_iter_type ((iter)) == BSON_TYPE_ARRAY)
    +
    +void
    +bson_iter_array (const bson_iter_t *iter,
    +                 uint32_t *array_len,
    +                 const uint8_t **array);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • array_len: A location for the buffer length.

    • +
    • array: A location for the immutable buffer.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_array() function shall retrieve the raw buffer of a sub-array from iter. iter MUST be on an element that is of type BSON_TYPE_ARRAY. This can be verified with bson_iter_type() or the BSON_ITER_HOLDS_ARRAY() macro.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_as_bool.html b/libbson/1.23.2/bson_iter_as_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..8184997b8add6d4b93a996a663f30602f31894c1 --- /dev/null +++ b/libbson/1.23.2/bson_iter_as_bool.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + bson_iter_as_bool() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_as_bool()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_as_bool (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the current field as if it were a boolean.

    +

    bson_iter_as_bool() currently knows how to determine a boolean value from the following types:

    +
      +
    • BSON_TYPE_BOOL

    • +
    • BSON_TYPE_DOUBLE

    • +
    • BSON_TYPE_INT32

    • +
    • BSON_TYPE_INT64

    • +
    • BSON_TYPE_NULL

    • +
    • BSON_TYPE_UNDEFINED

    • +
    • BSON_TYPE_UTF8

    • +
    +

    BSON_TYPE_UTF8 will always equate to true.

    +
    +
    +

    Returns

    +

    true if the field equates to non-zero.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_as_double.html b/libbson/1.23.2/bson_iter_as_double.html new file mode 100644 index 0000000000000000000000000000000000000000..b85206c953287d86e1fca3f764f8127610083a43 --- /dev/null +++ b/libbson/1.23.2/bson_iter_as_double.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + bson_iter_as_double() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_as_double()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_as_double (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the current field as if it were a double.

    +

    bson_iter_as_double() will cast the following types to double

    +
      +
    • BSON_TYPE_BOOL

    • +
    • BSON_TYPE_DOUBLE

    • +
    • BSON_TYPE_INT32

    • +
    • BSON_TYPE_INT64

    • +
    +

    Any other value will return 0.

    +
    +
    +

    Returns

    +

    The value type casted to double.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_as_int64.html b/libbson/1.23.2/bson_iter_as_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..cc1021524c6342d69e64d407db7548cfe79f46c6 --- /dev/null +++ b/libbson/1.23.2/bson_iter_as_int64.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_as_int64() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_as_int64()

    +
    +

    Synopsis

    +
    int64_t
    +bson_iter_as_int64 (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_as_int64() function shall return the contents of the current element as if it were a BSON_TYPE_INT64 element. The currently supported casts include:

    +
      +
    • BSON_TYPE_BOOL

    • +
    • BSON_TYPE_DOUBLE

    • +
    • BSON_TYPE_INT32

    • +
    • BSON_TYPE_INT64

    • +
    +
    +
    +

    Returns

    +

    A 64-bit signed integer.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_binary.html b/libbson/1.23.2/bson_iter_binary.html new file mode 100644 index 0000000000000000000000000000000000000000..cda01b040f0175540ee30bab87f929b602878c63 --- /dev/null +++ b/libbson/1.23.2/bson_iter_binary.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_binary() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_binary()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_BINARY(iter) \
    +   (bson_iter_type ((iter)) == BSON_TYPE_BINARY)
    +
    +void
    +bson_iter_binary (const bson_iter_t *iter,
    +                  bson_subtype_t *subtype,
    +                  uint32_t *binary_len,
    +                  const uint8_t **binary);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • subtype: A location for a bson_subtype_t or NULL.

    • +
    • binary_len: A location for the length of binary.

    • +
    • binary: A location for a pointer to the immutable buffer.

    • +
    +
    +
    +

    Description

    +

    This function shall return the binary data of a BSON_TYPE_BINARY element. It is a programming error to call this function on a field that is not of type BSON_TYPE_BINARY. You can check this with the BSON_ITER_HOLDS_BINARY() macro or bson_iter_type().

    +

    The buffer that binary points to is only valid until the iterator’s bson_t is modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_bool.html b/libbson/1.23.2/bson_iter_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..dc571bf31ea77f54fcdcfddadc0155a1f5f9f16b --- /dev/null +++ b/libbson/1.23.2/bson_iter_bool.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_bool() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_bool()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_BOOL(iter) (bson_iter_type ((iter)) == BSON_TYPE_BOOL)
    +
    +bool
    +bson_iter_bool (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_bool() function shall return the boolean value of a BSON_TYPE_BOOL element. It is a programming error to call this function on an element other than BSON_TYPE_BOOL. You can check this with bson_iter_type() or BSON_ITER_HOLDS_BOOL().

    +
    +
    +

    Returns

    +

    Either true or false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_code.html b/libbson/1.23.2/bson_iter_code.html new file mode 100644 index 0000000000000000000000000000000000000000..3e64e70356ed03aad45e09f9ce1ec4a1729e5fd0 --- /dev/null +++ b/libbson/1.23.2/bson_iter_code.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_iter_code() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_code()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_CODE(iter) (bson_iter_type ((iter)) == BSON_TYPE_CODE)
    +
    +const char *
    +bson_iter_code (const bson_iter_t *iter, uint32_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • length: A location for the length of the UTF-8 encoded string or NULL.

    • +
    +
    +
    +

    Description

    +

    This function returns the contents of a BSON_TYPE_CODE field. The length of the string is stored in length if non-NULL.

    +

    It is invalid to call this function on a field that is not of type BSON_TYPE_CODE.

    +
    +
    +

    Returns

    +

    A UTF-8 encoded string which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_codewscope.html b/libbson/1.23.2/bson_iter_codewscope.html new file mode 100644 index 0000000000000000000000000000000000000000..9f9e147cdb1e02995c4d3ffc44d3c09ead156717 --- /dev/null +++ b/libbson/1.23.2/bson_iter_codewscope.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_iter_codewscope() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_codewscope()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_CODEWSCOPE(iter) \
    +   (bson_iter_type ((iter)) == BSON_TYPE_CODEWSCOPE)
    +
    +const char *
    +bson_iter_codewscope (const bson_iter_t *iter,
    +                      uint32_t *length,
    +                      uint32_t *scope_len,
    +                      const uint8_t **scope);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • length: An optional location for the length of the resulting UTF-8 encoded string.

    • +
    • scope_len: A optional location for the length of scope.

    • +
    • scope: An optional location to store the immutable raw scope BSON document.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_codewscope() function acts similar to bson_iter_code() except for BSON_TYPE_CODEWSCOPE elements. It also will provide a pointer to the buffer for scope, which can be loaded into a bson_t using bson_init_static().

    +
    +
    +

    Returns

    +

    An UTF-8 encoded string containing the JavaScript code which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_date_time.html b/libbson/1.23.2/bson_iter_date_time.html new file mode 100644 index 0000000000000000000000000000000000000000..54c51c0e9a196cbb101e88929b241bf34290fc97 --- /dev/null +++ b/libbson/1.23.2/bson_iter_date_time.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_date_time() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_date_time()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_DATE_TIME(iter) \
    +   (bson_iter_type ((iter)) == BSON_TYPE_DATE_TIME)
    +
    +int64_t
    +bson_iter_date_time (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_date_time() function shall return the number of milliseconds since the UNIX epoch, as contained in the BSON_TYPE_DATE_TIME element.

    +
    +
    +

    Returns

    +

    A 64-bit integer containing the number of milliseconds since the UNIX epoch.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_dbpointer.html b/libbson/1.23.2/bson_iter_dbpointer.html new file mode 100644 index 0000000000000000000000000000000000000000..ffa41f377f0f11301ce8827a4e76c580d98b6d21 --- /dev/null +++ b/libbson/1.23.2/bson_iter_dbpointer.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_dbpointer() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_dbpointer()

    +
    +

    Synopsis

    +
    void
    +bson_iter_dbpointer (const bson_iter_t *iter,
    +                     uint32_t *collection_len,
    +                     const char **collection,
    +                     const bson_oid_t **oid);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • collection_len: A location for the length of the collection name.

    • +
    • collection: A location for the collection name..

    • +
    • oid: A location for a bson_oid_t.

    • +
    +
    +
    +

    Description

    +

    Fetches the contents of a BSON_TYPE_DBPOINTER element.

    +
    +

    Warning

    +

    The BSON_TYPE_DBPOINTER field type is deprecated by the BSON spec and should not be used in new code.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_decimal128.html b/libbson/1.23.2/bson_iter_decimal128.html new file mode 100644 index 0000000000000000000000000000000000000000..2b223b4d883813a2652022d0759a212175953254 --- /dev/null +++ b/libbson/1.23.2/bson_iter_decimal128.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_iter_decimal128() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_decimal128()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_DECIMAL128(iter) \
    +   (bson_iter_type ((iter)) == BSON_TYPE_DECIMAL128)
    +
    +bool
    +bson_iter_decimal128 (const bson_iter_t *iter, /* IN */
    +                      bson_decimal128_t *dec); /* OUT */
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the value from a BSON_TYPE_DECIMAL128 field. You should verify that this is a BSON_TYPE_DECIMAL128 field before calling this function.

    +
    +
    +

    Returns

    +

    true if type was BSON_TYPE_DECIMAL128, otherwise false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_document.html b/libbson/1.23.2/bson_iter_document.html new file mode 100644 index 0000000000000000000000000000000000000000..66a35ca107341f4d5fa2ce8f4ae5f93c64b0946c --- /dev/null +++ b/libbson/1.23.2/bson_iter_document.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_document() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_document()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_DOCUMENT(iter) \
    +   (bson_iter_type ((iter)) == BSON_TYPE_DOCUMENT)
    +
    +void
    +bson_iter_document (const bson_iter_t *iter,
    +                    uint32_t *document_len,
    +                    const uint8_t **document);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • document_len: A location for the length of the document in bytes.

    • +
    • document: A location for the document buffer.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_document() function shall retrieve the raw buffer of a sub-document from iter. iter MUST be on an element that is of type BSON_TYPE_DOCUMENT. This can be verified with bson_iter_type() or the BSON_ITER_HOLDS_DOCUMENT() macro.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_double.html b/libbson/1.23.2/bson_iter_double.html new file mode 100644 index 0000000000000000000000000000000000000000..a8517b986179de7638cd84f9982e488614b42a20 --- /dev/null +++ b/libbson/1.23.2/bson_iter_double.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_double() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_double()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_DOUBLE(iter) \
    +   (bson_iter_type ((iter)) == BSON_TYPE_DOUBLE)
    +
    +double
    +bson_iter_double (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the contents of a BSON_TYPE_DOUBLE field.

    +
    +
    +

    Returns

    +

    A double.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_dup_utf8.html b/libbson/1.23.2/bson_iter_dup_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..53216465dbe6962b48a22feb9dc71e145e8e25b7 --- /dev/null +++ b/libbson/1.23.2/bson_iter_dup_utf8.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_dup_utf8() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_dup_utf8()

    +
    +

    Synopsis

    +
    char *
    +bson_iter_dup_utf8 (const bson_iter_t *iter, uint32_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • length: An optional location for the length of the UTF-8 encoded string.

    • +
    +
    +
    +

    Description

    +

    This function is similar to bson_iter_utf8() except that it calls bson_strndup() on the result.

    +
    +
    +

    Returns

    +

    A newly allocated string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_find.html b/libbson/1.23.2/bson_iter_find.html new file mode 100644 index 0000000000000000000000000000000000000000..ce5a1b390861b03e92ea97b1198365ca61a0355d --- /dev/null +++ b/libbson/1.23.2/bson_iter_find.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_find() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_find()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_find (bson_iter_t *iter, const char *key);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • key: A string containing the requested key.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_find() function shall advance iter to the element named key or exhaust all elements of iter. If iter is exhausted, false is returned and iter should be considered invalid.

    +

    key is case-sensitive. For a case-folded version, see bson_iter_find_case().

    +
    +
    +

    Returns

    +

    true is returned if the requested key was found. If not, iter was exhausted and should now be considered invalid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_find_case.html b/libbson/1.23.2/bson_iter_find_case.html new file mode 100644 index 0000000000000000000000000000000000000000..f3d2c606f5149a4279db4bda47205e36a8f280c2 --- /dev/null +++ b/libbson/1.23.2/bson_iter_find_case.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_find_case() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_find_case()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_find_case (bson_iter_t *iter, const char *key);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • key: An ASCII string containing the field to locate.

    • +
    +
    +
    +

    Description

    +

    Advances iter until it is observing an element matching the name of key or exhausting all elements.

    +

    key is not case-sensitive. The keys will be case-folded to determine a match using the current locale.

    +
    +
    +

    Returns

    +

    true if key was found.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_find_descendant.html b/libbson/1.23.2/bson_iter_find_descendant.html new file mode 100644 index 0000000000000000000000000000000000000000..ec8c36aabc223560174c634ffc0de87dc8f29358 --- /dev/null +++ b/libbson/1.23.2/bson_iter_find_descendant.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_iter_find_descendant() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_find_descendant()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_find_descendant (bson_iter_t *iter,
    +                           const char *dotkey,
    +                           bson_iter_t *descendant);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_find_descendant() function shall follow standard MongoDB dot notation to recurse into subdocuments. descendant will be initialized and advanced to the descendant. If false is returned, both iter and descendant should be considered invalid.

    +
    +
    +

    Returns

    +

    true is returned if the requested key was found. If not, false is returned and iter was exhausted and should now be considered invalid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_find_w_len.html b/libbson/1.23.2/bson_iter_find_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..b29d9ad2d46998db94b8a40b2ce746a5afa0e95a --- /dev/null +++ b/libbson/1.23.2/bson_iter_find_w_len.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_find_w_len() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_find_w_len()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_find_w_len (bson_iter_t *iter, const char *key, int keylen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • key: A string containing the requested key.

    • +
    • keylen: An integer indicating the length of the key string.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_find_w_len() function shall advance iter to the element named key or exhaust all elements of iter. If iter is exhausted, false is returned and iter should be considered invalid.

    +

    key is case-sensitive. For a case-folded version, see bson_iter_find_case().

    +
    +
    +

    Returns

    +

    true is returned if the requested key was found. If not, iter was exhausted and should now be considered invalid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_init.html b/libbson/1.23.2/bson_iter_init.html new file mode 100644 index 0000000000000000000000000000000000000000..6d2820eba409af10706cedd158d4abe8f8e7e2bc --- /dev/null +++ b/libbson/1.23.2/bson_iter_init.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + bson_iter_init() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_init()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_init (bson_iter_t *iter, const bson_t *bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_init() function shall initialize iter to iterate upon the BSON document bson. Upon initialization, iter is placed before the first element. Callers must call bson_iter_next(), bson_iter_find(), or bson_iter_find_case() to advance to an element.

    +
    +
    +

    Returns

    +

    Returns true if the iter was successfully initialized.

    +
    +
    +

    Example

    +
    static void
    +print_doc_id (const bson_t *doc)
    +{
    +   bson_iter_t iter;
    +   bson_oid_t oid;
    +   char oidstr[25];
    +
    +   if (bson_iter_init (&iter, doc) && bson_iter_find (&iter, "_id") &&
    +       BSON_ITER_HOLDS_OID (&iter)) {
    +      bson_iter_oid (&iter, &oid);
    +      bson_oid_to_string (&oid, oidstr);
    +      printf ("%s\n", oidstr);
    +   } else {
    +      printf ("Document is missing _id.\n");
    +   }
    +}
    +
    +/* alternatively */
    +
    +static void
    +print_doc_id (const bson_t *doc)
    +{
    +   bson_iter_t iter;
    +   bson_oid_t oid;
    +   char oidstr[25];
    +
    +   if (bson_iter_init_find (&iter, doc, "_id") && BSON_ITER_HOLDS_OID (&iter)) {
    +      bson_iter_oid (&iter, &oid);
    +      bson_oid_to_string (&oid, oidstr);
    +      printf ("%s\n", oidstr);
    +   } else {
    +      printf ("Document is missing _id.\n");
    +   }
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_init_find.html b/libbson/1.23.2/bson_iter_init_find.html new file mode 100644 index 0000000000000000000000000000000000000000..4ba6eab9785a192ec58a76e1355ec15a288b88c6 --- /dev/null +++ b/libbson/1.23.2/bson_iter_init_find.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + bson_iter_init_find() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_init_find()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_init_find (bson_iter_t *iter, const bson_t *bson, const char *key);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • bson: A bson_t.

    • +
    • key: A key to locate after initializing the iter.

    • +
    +
    +
    +

    Description

    +

    This function is identical to (bson_iter_init() && bson_iter_find()).

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_init_find_case.html b/libbson/1.23.2/bson_iter_init_find_case.html new file mode 100644 index 0000000000000000000000000000000000000000..851b2696344853e68119b4c40ed383e5ef7ee2e8 --- /dev/null +++ b/libbson/1.23.2/bson_iter_init_find_case.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_iter_init_find_case() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_init_find_case()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_init_find_case (bson_iter_t *iter,
    +                          const bson_t *bson,
    +                          const char *key);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • bson: A bson_t.

    • +
    • key: A key to locate after initializing the iter.

    • +
    +
    +
    +

    Description

    +

    This function is identical to bson_iter_init() && bson_iter_find_case().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_init_find_w_len.html b/libbson/1.23.2/bson_iter_init_find_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..b1d2169363efc7795174e6b478040d75d0ba5fe8 --- /dev/null +++ b/libbson/1.23.2/bson_iter_init_find_w_len.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + bson_iter_init_find_w_len() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_init_find_w_len()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_init_find_w_len (bson_iter_t *iter,
    +                           const bson_t *bson,
    +                           const char *key,
    +                           int keylen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • bson: A bson_t.

    • +
    • key: A key to locate after initializing the iter.

    • +
    • keylen: An integer indicating the length of the key string.

    • +
    +
    +
    +

    Description

    +

    This function is identical to (bson_iter_init() && bson_iter_find_w_len()).

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_init_from_data.html b/libbson/1.23.2/bson_iter_init_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..43dd1ac355f952eca4f0217727ce8198c76030ac --- /dev/null +++ b/libbson/1.23.2/bson_iter_init_from_data.html @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + bson_iter_init_from_data() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_init_from_data()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_init_from_data (bson_iter_t *iter, const uint8_t *data, size_t length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • data: A buffer to initialize with.

    • +
    • length: The length of data in bytes.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_init_from_data() function shall initialize iter to iterate upon the buffer data, which must contain a BSON document. Upon initialization, iter is placed before the first element. Callers must call bson_iter_next(), bson_iter_find(), or bson_iter_find_case() to advance to an element.

    +
    +
    +

    Returns

    +

    Returns true if the iter was successfully initialized.

    +
    +
    +

    Example

    +
    static void
    +print_doc_id (const uint8_t *data, size_t length)
    +{
    +   bson_iter_t iter;
    +   bson_oid_t oid;
    +   char oidstr[25];
    +
    +   if (bson_iter_init_from_data (&iter, data, length) && bson_iter_find (&iter, "_id") &&
    +       BSON_ITER_HOLDS_OID (&iter)) {
    +      bson_iter_oid (&iter, &oid);
    +      bson_oid_to_string (&oid, oidstr);
    +      printf ("%s\n", oidstr);
    +   } else {
    +      printf ("Document is missing _id.\n");
    +   }
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_init_from_data_at_offset.html b/libbson/1.23.2/bson_iter_init_from_data_at_offset.html new file mode 100644 index 0000000000000000000000000000000000000000..c0f7ac49384debe35046b441fff30fd1a435bd18 --- /dev/null +++ b/libbson/1.23.2/bson_iter_init_from_data_at_offset.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + bson_iter_init_from_data_at_offset() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_init_from_data_at_offset()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_init_from_data_at_offset (bson_iter_t *iter,
    +                                    const uint8_t *data,
    +                                    size_t length,
    +                                    uint32_t offset,
    +                                    uint32_t keylen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • data: A buffer to initialize with. This is not validated.

    • +
    • length: The length of data in bytes. This is not validated.

    • +
    • offset: The offset of the field to start iterating. This is not validated. This should be an offset previously obtained from bson_iter_offset().

    • +
    • keylen: The string length of the key of the field to start iterating. This is not validated. This should be a length previously obtained from bson_iter_key_len().

    • +
    +
    +
    +

    Description

    +

    Creates a bson_iter_t and starts iteration on a field at the offset.

    +

    bson_iter_init_from_data_at_offset() is useful for situations where the +progress of a bson_iter_t must be saved and restored without relying +on the bson_iter_t data layout. Saving the progress could be +accomplished by:

    + +

    Then later, these saved values can be passed to +bson_iter_init_from_data_at_offset() to reconstruct the +bson_iter_t in constant time.

    +
    +
    +

    Returns

    +

    Returns true if the iter was successfully initialized.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_int32.html b/libbson/1.23.2/bson_iter_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..07f1d8c64662fa03ab2f1b5283f4b2755783105f --- /dev/null +++ b/libbson/1.23.2/bson_iter_int32.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_int32() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_int32()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_INT32(iter) (bson_iter_type ((iter)) == BSON_TYPE_INT32)
    +
    +int32_t
    +bson_iter_int32 (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the value from a BSON_TYPE_INT32 element. You should verify that the field is a BSON_TYPE_INT32 field before calling this function.

    +
    +
    +

    Returns

    +

    A 32-bit integer.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_int64.html b/libbson/1.23.2/bson_iter_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..4bcc6610ae2a94a624a1a90a918681dad26456a4 --- /dev/null +++ b/libbson/1.23.2/bson_iter_int64.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_int64() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_int64()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_INT64(iter) (bson_iter_type ((iter)) == BSON_TYPE_INT64)
    +
    +int64_t
    +bson_iter_int64 (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the value from a BSON_TYPE_INT64 field. You should verify that this is a BSON_TYPE_INT64 field before calling this function.

    +
    +
    +

    Returns

    +

    A 64-bit integer.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_key.html b/libbson/1.23.2/bson_iter_key.html new file mode 100644 index 0000000000000000000000000000000000000000..f5c19f900e613fa319c42479ef1643ecaaff2655 --- /dev/null +++ b/libbson/1.23.2/bson_iter_key.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_key() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_key()

    +
    +

    Synopsis

    +
    const char *
    +bson_iter_key (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the key for the current element observed by iter.

    +
    +
    +

    Returns

    +

    A string which should not be modified or freed.

    +
    +

    See also

    +
    +
    bson_iter_key_len() to retrieve the length of the key in constant time.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_key_len.html b/libbson/1.23.2/bson_iter_key_len.html new file mode 100644 index 0000000000000000000000000000000000000000..1a59a945e23609567770cc0f050831559f56f52b --- /dev/null +++ b/libbson/1.23.2/bson_iter_key_len.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_key_len() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_key_len()

    +
    +

    Synopsis

    +
    uint32_t
    +bson_iter_key_len (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the length of the key for the current element observed by iter. This is a constant time computation, and therefore faster than calling strlen() on a key returned by bson_iter_key().

    +
    +
    +

    Returns

    +

    An integer representing the key length.

    +
    +

    See also

    +
    +
    bson_iter_key() to retrieve current key.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_next.html b/libbson/1.23.2/bson_iter_next.html new file mode 100644 index 0000000000000000000000000000000000000000..8ecd04c583db463c1ecd8af32a7d4dd791a9c4ba --- /dev/null +++ b/libbson/1.23.2/bson_iter_next.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_next() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_next()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_next (bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Advances iter to the next element in the document.

    +
    +
    +

    Returns

    +

    true if iter was advanced. Returns false if iter has passed the last element in the document or encountered invalid BSON.

    +

    It is a programming error to use iter after this function has returned false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_offset.html b/libbson/1.23.2/bson_iter_offset.html new file mode 100644 index 0000000000000000000000000000000000000000..422d1901ef96c3373ce40a3b665c40616ccb7531 --- /dev/null +++ b/libbson/1.23.2/bson_iter_offset.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_offset() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_offset()

    +
    +

    Synopsis

    +
    uint32_t
    +bson_iter_offset (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the offset for the current element observed by iter.

    +
    +
    +

    Returns

    +

    An unsigned integer representing the offset in the BSON data of the current element.

    +
    +

    See also

    +
    +
    bson_iter_init_from_data_at_offset() to use this offset to reconstruct a bson_iter_t in constant time.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_oid.html b/libbson/1.23.2/bson_iter_oid.html new file mode 100644 index 0000000000000000000000000000000000000000..ce51af5c25c647c23682d3991c4392639a1f7ee6 --- /dev/null +++ b/libbson/1.23.2/bson_iter_oid.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_oid() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_oid()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_OID(iter) (bson_iter_type ((iter)) == BSON_TYPE_OID)
    +
    +const bson_oid_t *
    +bson_iter_oid (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the bson_oid_t for a BSON_TYPE_OID element. You should verify it is an element of type BSON_TYPE_OID before calling this function.

    +
    +
    +

    Returns

    +

    A bson_oid_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_bool.html b/libbson/1.23.2/bson_iter_overwrite_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..2af85c81d59452309391ad9efb44c32410528a61 --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_bool.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_bool() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_bool()

    +
    +

    Synopsis

    +
    void
    +bson_iter_overwrite_bool (bson_iter_t *iter, bool value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • value: A bool containing the new value.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_overwrite_bool() function shall overwrite the contents of a BSON_TYPE_BOOL element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_BOOL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_date_time.html b/libbson/1.23.2/bson_iter_overwrite_date_time.html new file mode 100644 index 0000000000000000000000000000000000000000..4d0d2da8257deb7708f26ae13b0a4c2fbfe93fba --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_date_time.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_date_time() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_date_time()

    +
    +

    Synopsis

    +
    void
    +bson_iter_overwrite_date_time (bson_iter_t *iter, int64_t value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • value: The date and time as specified in milliseconds since the UNIX epoch.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_overwrite_date_time() function shall overwrite the contents of a BSON_TYPE_DATE_TIME element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_DATE_TIME.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_decimal128.html b/libbson/1.23.2/bson_iter_overwrite_decimal128.html new file mode 100644 index 0000000000000000000000000000000000000000..994f57462cd611c8492daf863f74bfb1711eefaf --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_decimal128.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_decimal128() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_decimal128()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_overwrite_decimal128 (bson_iter_t *iter, const bson_decimal128_t *value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • value: The new Decimal128 value.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_overwrite_decimal128() function shall overwrite the contents of a BSON_TYPE_DECIMAL128 element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_DECIMAL128.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_double.html b/libbson/1.23.2/bson_iter_overwrite_double.html new file mode 100644 index 0000000000000000000000000000000000000000..ebdb021de8692244328832b57a1a2347c27c4baf --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_double.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_double() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_double()

    +
    +

    Synopsis

    +
    void
    +bson_iter_overwrite_double (bson_iter_t *iter, double value);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_overwrite_double() function shall overwrite the contents of a BSON_TYPE_DOUBLE element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_DOUBLE.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_int32.html b/libbson/1.23.2/bson_iter_overwrite_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..71569235734639fe8df65b8a8aa0d348cca632cd --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_int32.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_int32() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_int32()

    +
    +

    Synopsis

    +
    void
    +bson_iter_overwrite_int32 (bson_iter_t *iter, int32_t value);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_overwrite_int32() function shall overwrite the contents of a BSON_TYPE_INT32 element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_BOOL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_int64.html b/libbson/1.23.2/bson_iter_overwrite_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..b0b4e7fe80f62ca91e162c3d64ee4aa2764704fd --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_int64.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_int64() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_int64()

    +
    +

    Synopsis

    +
    void
    +bson_iter_overwrite_int64 (bson_iter_t *iter, int64_t value);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_overwrite_int64() function shall overwrite the contents of a BSON_TYPE_INT64 element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_INT64.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_oid.html b/libbson/1.23.2/bson_iter_overwrite_oid.html new file mode 100644 index 0000000000000000000000000000000000000000..bc0eb802002db77cd806bca9d214d3e05b45f646 --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_oid.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_oid() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_oid()

    +
    +

    Synopsis

    +
    void
    +bson_iter_overwrite_oid (bson_iter_t *iter, const bson_oid_t *value);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_overwrite_oid() function shall overwrite the contents of a BSON_TYPE_OID element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_OID.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_overwrite_timestamp.html b/libbson/1.23.2/bson_iter_overwrite_timestamp.html new file mode 100644 index 0000000000000000000000000000000000000000..ec070765c4c78ddc50428aa30f8cfab0f9792251 --- /dev/null +++ b/libbson/1.23.2/bson_iter_overwrite_timestamp.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_overwrite_timestamp() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_overwrite_timestamp()

    +
    +

    Synopsis

    +
    void
    +bson_iter_overwrite_timestamp (bson_iter_t *iter,
    +                               uint32_t timestamp,
    +                               uint32_t increment);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • timestamp: A uint32_t.

    • +
    • increment: A uint32_t.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_overwrite_timestamp() function shall overwrite the contents of a BSON_TYPE_TIMESTAMP element in place.

    +

    This may only be done when the underlying bson document allows mutation.

    +

    It is a programming error to call this function when iter is not observing an element of type BSON_TYPE_TIMESTAMP.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_recurse.html b/libbson/1.23.2/bson_iter_recurse.html new file mode 100644 index 0000000000000000000000000000000000000000..a070ce0f5bef1496496e7c0e09514cc6bd41addf --- /dev/null +++ b/libbson/1.23.2/bson_iter_recurse.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_recurse() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_recurse()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_recurse (const bson_iter_t *iter, bson_iter_t *child);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_recurse() function shall initialize child using the embedded document or array currently observed by iter.

    +

    If there was a failure to initialize the iter, false is returned and both iter and child should be considered invalid.

    +

    This should only be called when observing an element of type BSON_TYPE_ARRAY or BSON_TYPE_DOCUMENT.

    +
    +
    +

    Returns

    +

    If iter observes an element of type BSON_TYPE_ARRAY or BSON_TYPE_DOCUMENT, then child is initialized and the function returns true. Otherwise, the function returns false and child is invalid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_regex.html b/libbson/1.23.2/bson_iter_regex.html new file mode 100644 index 0000000000000000000000000000000000000000..3fcf550433de53c9f7943396ca6b86906e8f7ba2 --- /dev/null +++ b/libbson/1.23.2/bson_iter_regex.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_regex() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_regex()

    +
    +

    Synopsis

    +
    const char *
    +bson_iter_regex (const bson_iter_t *iter, const char **options);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_regex() function shall retrieve the contents of a BSON_TYPE_REGEX element currently observed by iter.

    +

    It is invalid to call this function when not observing an element of type BSON_TYPE_REGEX.

    +
    +
    +

    Returns

    +

    A string containing the regex which should not be modified or freed. options is set to the options provided for the regex.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_symbol.html b/libbson/1.23.2/bson_iter_symbol.html new file mode 100644 index 0000000000000000000000000000000000000000..34f2fd9d44ab862a74a7e4e3dbca6be8ff238eca --- /dev/null +++ b/libbson/1.23.2/bson_iter_symbol.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_symbol() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_symbol()

    +
    +

    Synopsis

    +
    const char *
    +bson_iter_symbol (const bson_iter_t *iter, uint32_t *length);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The symbol element type is DEPRECATED in the bson specification at http://bsonspec.org.

    +

    The bson_iter_symbol() function shall return the contents of a BSON_TYPE_SYMBOL element.

    +

    If non-NULL, length will be set to the length of the resulting string.

    +
    +
    +

    Returns

    +

    The symbol and length is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_t.html b/libbson/1.23.2/bson_iter_t.html new file mode 100644 index 0000000000000000000000000000000000000000..3ca7cbf9f11812d5416e4f275d29d9161d8d1f64 --- /dev/null +++ b/libbson/1.23.2/bson_iter_t.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + bson_iter_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_t

    +

    BSON Document Iterator

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +#define BSON_ITER_HOLDS_DOUBLE(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_UTF8(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_DOCUMENT(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_ARRAY(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_BINARY(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_UNDEFINED(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_OID(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_BOOL(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_DATE_TIME(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_NULL(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_REGEX(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_DBPOINTER(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_CODE(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_SYMBOL(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_CODEWSCOPE(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_INT32(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_TIMESTAMP(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_INT64(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_DECIMAL128(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_MAXKEY(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_MINKEY(iter) /* ... */
    +
    +#define BSON_ITER_HOLDS_INT(iter) \
    +   (BSON_ITER_HOLDS_INT32 (iter) || BSON_ITER_HOLDS_INT64 (iter))
    +
    +#define BSON_ITER_HOLDS_NUMBER(iter) \
    +   (BSON_ITER_HOLDS_INT (iter) || BSON_ITER_HOLDS_DOUBLE (iter))
    +
    +#define BSON_ITER_IS_KEY(iter, key) \
    +   (0 == strcmp ((key), bson_iter_key ((iter))))
    +
    +typedef struct {
    +   /*< private >*/
    +} bson_iter_t;
    +
    +
    +
    +
    +

    Description

    +

    bson_iter_t is a structure used to iterate through the elements of a bson_t. It is meant to be used on the stack and can be discarded at any time as it contains no external allocation. The contents of the structure should be considered private and may change between releases, however the structure size will not change.

    +

    The bson_t MUST be valid for the lifetime of the iter and it is an error to modify the bson_t while using the iter.

    +
    +
    +

    Functions

    + +
    +
    +

    Examples

    +
    bson_iter_t iter;
    +
    +if (bson_iter_init (&iter, my_bson_doc)) {
    +   while (bson_iter_next (&iter)) {
    +      printf ("Found a field named: %s\n", bson_iter_key (&iter));
    +   }
    +}
    +
    +
    +
    bson_iter_t iter;
    +
    +if (bson_iter_init (&iter, my_bson_doc) && bson_iter_find (&iter, "my_field")) {
    +   printf ("Found the field named: %s\n", bson_iter_key (&iter));
    +}
    +
    +
    +
    bson_iter_t iter;
    +bson_iter_t sub_iter;
    +
    +if (bson_iter_init_find (&iter, my_bson_doc, "mysubdoc") &&
    +    (BSON_ITER_HOLDS_DOCUMENT (&iter) || BSON_ITER_HOLDS_ARRAY (&iter)) &&
    +    bson_iter_recurse (&iter, &sub_iter)) {
    +   while (bson_iter_next (&sub_iter)) {
    +      printf ("Found key \"%s\" in sub document.\n", bson_iter_key (&sub_iter));
    +   }
    +}
    +
    +
    +
    bson_iter_t iter;
    +
    +if (bson_iter_init (&iter, my_doc) &&
    +    bson_iter_find_descendant (&iter, "a.b.c.d", &sub_iter)) {
    +   printf ("The type of a.b.c.d is: %d\n", (int) bson_iter_type (&sub_iter));
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_time_t.html b/libbson/1.23.2/bson_iter_time_t.html new file mode 100644 index 0000000000000000000000000000000000000000..396b4137cc28b90c0332784ba04811508cdecf17 --- /dev/null +++ b/libbson/1.23.2/bson_iter_time_t.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_time_t() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_time_t()

    +
    +

    Synopsis

    +
    time_t
    +bson_iter_time_t (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_time_t() function shall return the number of seconds since the UNIX epoch, as contained in the BSON_TYPE_DATE_TIME element.

    +
    +
    +

    Returns

    +

    A time_t containing the number of seconds since the UNIX epoch.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_timestamp.html b/libbson/1.23.2/bson_iter_timestamp.html new file mode 100644 index 0000000000000000000000000000000000000000..82ce59de6d208eff42b8a87cec3aadea9aad123a --- /dev/null +++ b/libbson/1.23.2/bson_iter_timestamp.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_iter_timestamp() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_timestamp()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_TIMESTAMP(iter) \
    +   (bson_iter_type ((iter)) == BSON_TYPE_TIMESTAMP)
    +
    +void
    +bson_iter_timestamp (const bson_iter_t *iter,
    +                     uint32_t *timestamp,
    +                     uint32_t *increment);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • timestamp: A uint32_t.

    • +
    • increment: A uint32_t.

    • +
    +
    +
    +

    Description

    +

    The BSON_TYPE_TIMESTAMP type is not a date/time and is typically used for intra-server communication.

    +

    You probably want bson_iter_date_time().

    +

    The bson_iter_timestamp() function shall return the contents of a BSON_TYPE_TIMESTAMP element. It is invalid to call this function while observing an element that is not of type BSON_TYPE_TIMESTAMP.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_timeval.html b/libbson/1.23.2/bson_iter_timeval.html new file mode 100644 index 0000000000000000000000000000000000000000..b7c8b5c4a7bf9a9f3dad1ded236f9b7aebfa83ff --- /dev/null +++ b/libbson/1.23.2/bson_iter_timeval.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_iter_timeval() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_timeval()

    +
    +

    Synopsis

    +
    void
    +bson_iter_timeval (const bson_iter_t *iter, struct timeval *tv);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_timeval() function shall return the number of seconds and microseconds since the UNIX epoch, as contained in the BSON_TYPE_DATE_TIME element into tv.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_type.html b/libbson/1.23.2/bson_iter_type.html new file mode 100644 index 0000000000000000000000000000000000000000..8f068a3757cad3e5480343be91b5673409641095 --- /dev/null +++ b/libbson/1.23.2/bson_iter_type.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + bson_iter_type() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_type()

    +
    +

    Synopsis

    +
    typedef enum {
    +   BSON_TYPE_EOD = 0x00,
    +   BSON_TYPE_DOUBLE = 0x01,
    +   BSON_TYPE_UTF8 = 0x02,
    +   BSON_TYPE_DOCUMENT = 0x03,
    +   BSON_TYPE_ARRAY = 0x04,
    +   BSON_TYPE_BINARY = 0x05,
    +   BSON_TYPE_UNDEFINED = 0x06,
    +   BSON_TYPE_OID = 0x07,
    +   BSON_TYPE_BOOL = 0x08,
    +   BSON_TYPE_DATE_TIME = 0x09,
    +   BSON_TYPE_NULL = 0x0A,
    +   BSON_TYPE_REGEX = 0x0B,
    +   BSON_TYPE_DBPOINTER = 0x0C,
    +   BSON_TYPE_CODE = 0x0D,
    +   BSON_TYPE_SYMBOL = 0x0E,
    +   BSON_TYPE_CODEWSCOPE = 0x0F,
    +   BSON_TYPE_INT32 = 0x10,
    +   BSON_TYPE_TIMESTAMP = 0x11,
    +   BSON_TYPE_INT64 = 0x12,
    +   BSON_TYPE_MAXKEY = 0x7F,
    +   BSON_TYPE_MINKEY = 0xFF,
    +} bson_type_t;
    +
    +bson_type_t
    +bson_iter_type (const bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_iter_type() function shall return the type of the observed element in a bson document.

    +
    +
    +

    Returns

    +

    A bson_type_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_utf8.html b/libbson/1.23.2/bson_iter_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..6213d264ac8ddfc7cc9a23c5b7addc709d05e80c --- /dev/null +++ b/libbson/1.23.2/bson_iter_utf8.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_utf8() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_utf8()

    +
    +

    Synopsis

    +
    #define BSON_ITER_HOLDS_UTF8(iter) (bson_iter_type ((iter)) == BSON_TYPE_UTF8)
    +
    +const char *
    +bson_iter_utf8 (const bson_iter_t *iter, uint32_t *length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • iter: A bson_iter_t.

    • +
    • length: An optional location for the length of the resulting UTF-8 encoded string.

    • +
    +
    +
    +

    Description

    +

    The bson_iter_utf8() function shall retrieve the contents of a BSON_TYPE_UTF8 element currently observed by iter.

    +

    It is invalid to call this function while observing an element other than BSON_TYPE_UTF8.

    +
    +
    +

    Returns

    +

    A UTF-8 encoded string that has not been modified or freed.

    +

    It is suggested that the caller validate the content is valid UTF-8 before using this in other places. That can be done by calling bson_utf8_validate() or validating the underlying bson_t before iterating it.

    +

    Note that not all drivers use multi-byte representation for \0 in UTF-8 encodings (commonly referred to as modified-UTF8). You probably want to take a look at the length field when marshaling to other runtimes.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_value.html b/libbson/1.23.2/bson_iter_value.html new file mode 100644 index 0000000000000000000000000000000000000000..65bebe250d267616726663923e832f6545e0a4b4 --- /dev/null +++ b/libbson/1.23.2/bson_iter_value.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_value() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_value()

    +
    +

    Synopsis

    +
    const bson_value_t *
    +bson_iter_value (bson_iter_t *iter);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the value for the currently observed type as a boxed type. This allows passing around the value without knowing the type at runtime.

    +

    If the bson_iter_t is further modified, the bson_value_t is invalidated.

    +
    +
    +

    Returns

    +

    A bson_value_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_iter_visit_all.html b/libbson/1.23.2/bson_iter_visit_all.html new file mode 100644 index 0000000000000000000000000000000000000000..ff024224f098325cef8a52ce021179ce2388e5b9 --- /dev/null +++ b/libbson/1.23.2/bson_iter_visit_all.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_iter_visit_all() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_visit_all()

    +
    +

    Synopsis

    +
    bool
    +bson_iter_visit_all (bson_iter_t *iter,
    +                     const bson_visitor_t *visitor,
    +                     void *data);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    A convenience function to iterate all remaining fields of iter using the callback vtable provided by visitor.

    +
    +
    +

    Returns

    +

    Returns true if visitation was prematurely stopped by a callback function. Returns false either because all elements were visited or due to corrupt BSON.

    +

    See bson_visitor_t for examples of how to set your own callbacks to provide information about the location of corrupt or unsupported BSON document entries.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_data_reader_ingest.html b/libbson/1.23.2/bson_json_data_reader_ingest.html new file mode 100644 index 0000000000000000000000000000000000000000..bd8938b479edf02a44b989680553a5b2251c3a31 --- /dev/null +++ b/libbson/1.23.2/bson_json_data_reader_ingest.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_json_data_reader_ingest() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_data_reader_ingest()

    +
    +

    Synopsis

    +
    void
    +bson_json_data_reader_ingest (bson_json_reader_t *reader,
    +                              const uint8_t *data,
    +                              size_t len);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • reader: A bson_json_reader_t.

    • +
    • data: A uint8_t containing data to feed.

    • +
    • len: A size_t containing the length of data.

    • +
    +
    +
    +

    Description

    +

    Feed data to a memory based json reader.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_data_reader_new.html b/libbson/1.23.2/bson_json_data_reader_new.html new file mode 100644 index 0000000000000000000000000000000000000000..e6c64cff3485b4b15a5206e00660c26fcf1db892 --- /dev/null +++ b/libbson/1.23.2/bson_json_data_reader_new.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_json_data_reader_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_data_reader_new()

    +
    +

    Synopsis

    +
    bson_json_reader_t *
    +bson_json_data_reader_new (bool allow_multiple, size_t size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • allow_multiple: Unused.

    • +
    • size: A requested buffer size.

    • +
    +
    +
    +

    Description

    +

    Creates a new streaming JSON reader that will convert JSON documents to BSON.

    +

    The allow_multiple parameter is unused.

    +
    +
    +

    Returns

    +

    A newly allocated bson_json_reader_t that should be freed with bson_json_reader_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_mode_t.html b/libbson/1.23.2/bson_json_mode_t.html new file mode 100644 index 0000000000000000000000000000000000000000..3f413b0640e9ac1455284f15c9ac096ac0d1960f --- /dev/null +++ b/libbson/1.23.2/bson_json_mode_t.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_json_mode_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_mode_t

    +

    BSON JSON encoding mode enumeration

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef enum {
    +   BSON_JSON_MODE_LEGACY,
    +   BSON_JSON_MODE_CANONICAL,
    +   BSON_JSON_MODE_RELAXED,
    +} bson_json_mode_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_json_mode_t enumeration contains all available modes for encoding BSON into MongoDB Extended JSON.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_opts_destroy.html b/libbson/1.23.2/bson_json_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..e76717c92a122e7b3c647280531987e6c1338ac9 --- /dev/null +++ b/libbson/1.23.2/bson_json_opts_destroy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_json_opts_destroy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +bson_json_opts_destroy (bson_json_opts_t *opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Destroys and releases all resources associated with opts. Does nothing if opts is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_opts_new.html b/libbson/1.23.2/bson_json_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..3c660bb901123da9cbb483a58112b9d90f8ef5b2 --- /dev/null +++ b/libbson/1.23.2/bson_json_opts_new.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_json_opts_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_opts_new()

    +
    +

    Synopsis

    +
    bson_json_opts_t *
    +bson_json_opts_new (bson_json_mode_t mode, int32_t max_len);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • mode: A bson_json_mode_t.

    • +
    • max_len: An int32_t.

    • +
    +
    +
    +

    Description

    +

    The bson_json_opts_new() function shall create a new bson_json_opts_t using the mode and length supplied. The mode member is a bson_json_mode_t defining the encoding mode.

    +

    The max_len member holds a maximum length for the resulting JSON string. Encoding will stop once the serialised string has reached this length. To encode the full BSON document, BSON_MAX_LEN_UNLIMITED can be used.

    +
    +
    +

    Returns

    +

    A newly allocated bson_json_opts_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_opts_t.html b/libbson/1.23.2/bson_json_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f901a4af7f53aaa9934c2245bad709532c5beb1d --- /dev/null +++ b/libbson/1.23.2/bson_json_opts_t.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_json_opts_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_opts_t

    +

    BSON to JSON encoding options

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct _bson_json_opts_t bson_json_opts_t;
    +
    +bson_json_opts_t *
    +bson_json_opts_new (bson_json_mode_t mode, int32_t max_len);
    +
    +void
    +bson_json_opts_destroy (bson_json_opts_t *opts);
    +
    +
    +
    +
    +

    Description

    +

    The bson_json_opts_t structure contains options for encoding BSON into MongoDB Extended JSON.

    +

    The mode member is a bson_json_mode_t defining the encoding mode.

    +

    The max_len member holds a maximum length for the resulting JSON string. Encoding will stop once the serialised string has reached this length. To encode the full BSON document, BSON_MAX_LEN_UNLIMITED can be used.

    +
    +

    See also

    + +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_reader_destroy.html b/libbson/1.23.2/bson_json_reader_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..639543f8d7abd7fa4c14de300fe98b910a0ec863 --- /dev/null +++ b/libbson/1.23.2/bson_json_reader_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_json_reader_destroy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_reader_destroy()

    +
    +

    Synopsis

    +
    void
    +bson_json_reader_destroy (bson_json_reader_t *reader);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees a bson_json_reader_t. Does nothing if reader is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_reader_new.html b/libbson/1.23.2/bson_json_reader_new.html new file mode 100644 index 0000000000000000000000000000000000000000..e7263ae361e83e439342b13764ea19e7c1066c11 --- /dev/null +++ b/libbson/1.23.2/bson_json_reader_new.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_json_reader_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_reader_new()

    +
    +

    Synopsis

    +
    bson_json_reader_t *
    +bson_json_reader_new (void *data,
    +                      bson_json_reader_cb cb,
    +                      bson_json_destroy_cb dcb,
    +                      bool allow_multiple,
    +                      size_t buf_size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • data: A user-defined pointer.

    • +
    • cb: A bson_json_reader_cb.

    • +
    • dcb: A bson_json_destroy_cb.

    • +
    • allow_multiple: Unused.

    • +
    • buf_size: A size_t containing the requested internal buffer size.

    • +
    +
    +
    +

    Description

    +

    Creates a new bson_json_reader_t that can read from an arbitrary data source in a streaming fashion.

    +

    The allow_multiple parameter is unused.

    +
    +
    +

    Returns

    +

    A newly allocated bson_json_reader_t that should be freed with bson_json_reader_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_reader_new_from_fd.html b/libbson/1.23.2/bson_json_reader_new_from_fd.html new file mode 100644 index 0000000000000000000000000000000000000000..56796b923c1b2664e2b133033963c762208f31cd --- /dev/null +++ b/libbson/1.23.2/bson_json_reader_new_from_fd.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_json_reader_new_from_fd() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_reader_new_from_fd()

    +
    +

    Synopsis

    +
    bson_json_reader_t *
    +bson_json_reader_new_from_fd (int fd, bool close_on_destroy);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • fd: An open file-descriptor.

    • +
    • close_on_destroy: Whether close() should be called on fd when the reader is destroyed.

    • +
    +
    +
    +

    Description

    +

    Creates a new JSON to BSON converter that will be reading from the file-descriptor fd.

    +
    +
    +

    Returns

    +

    A newly allocated bson_json_reader_t that should be freed with bson_json_reader_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_reader_new_from_file.html b/libbson/1.23.2/bson_json_reader_new_from_file.html new file mode 100644 index 0000000000000000000000000000000000000000..f7eead2b5d12f25ac308e21b4b5236e7bd4061dc --- /dev/null +++ b/libbson/1.23.2/bson_json_reader_new_from_file.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_json_reader_new_from_file() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_reader_new_from_file()

    +
    +

    Synopsis

    +
    bson_json_reader_t *
    +bson_json_reader_new_from_file (const char *filename, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • filename: A file-name in the system file-name encoding.

    • +
    • error: A bson_error_t.

    • +
    +
    +
    +

    Description

    +

    Creates a new bson_json_reader_t using the underlying file found at filename.

    +
    +
    +

    Errors

    +

    Errors are propagated via error.

    +
    +
    +

    Returns

    +

    A newly allocated bson_json_reader_t if successful, otherwise NULL and error is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_reader_read.html b/libbson/1.23.2/bson_json_reader_read.html new file mode 100644 index 0000000000000000000000000000000000000000..9a52056dc5bae0d40b93a3081cf0a2b48cbd09e5 --- /dev/null +++ b/libbson/1.23.2/bson_json_reader_read.html @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + bson_json_reader_read() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_reader_read()

    +
    +

    Synopsis

    +
    int
    +bson_json_reader_read (bson_json_reader_t *reader,
    +                       bson_t *bson,
    +                       bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Reads the next BSON document from the underlying JSON source.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    1 if successful and data was read. 0 if successful and no data was read. -1 if there was an error.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_json_reader_t.html b/libbson/1.23.2/bson_json_reader_t.html new file mode 100644 index 0000000000000000000000000000000000000000..b3d2e11370ad823feaa7033367e18d8f9b2d79dd --- /dev/null +++ b/libbson/1.23.2/bson_json_reader_t.html @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + bson_json_reader_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_reader_t

    +

    Bulk JSON to BSON conversion

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct _bson_json_reader_t bson_json_reader_t;
    +
    +typedef enum {
    +   BSON_JSON_ERROR_READ_CORRUPT_JS = 1,
    +   BSON_JSON_ERROR_READ_INVALID_PARAM,
    +   BSON_JSON_ERROR_READ_CB_FAILURE,
    +} bson_json_error_code_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_json_reader_t structure is used for reading a sequence of JSON documents and transforming them to bson_t documents.

    +

    This can often be useful if you want to perform bulk operations that are defined in a file containing JSON documents.

    +
    +

    Tip

    +

    bson_json_reader_t works upon JSON documents formatted in MongoDB extended JSON format.

    +
    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    /*
    + * Copyright 2013 MongoDB, Inc.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +
    +/*
    + * This program will print each JSON document contained in the provided files
    + * as a BSON string to STDOUT.
    + */
    +
    +
    +#include <bson/bson.h>
    +#include <stdlib.h>
    +#include <stdio.h>
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_json_reader_t *reader;
    +   bson_error_t error;
    +   const char *filename;
    +   bson_t doc = BSON_INITIALIZER;
    +   int i;
    +   int b;
    +
    +   /*
    +    * Print program usage if no arguments are provided.
    +    */
    +   if (argc == 1) {
    +      fprintf (stderr, "usage: %s FILE...\n", argv[0]);
    +      return 1;
    +   }
    +
    +   /*
    +    * Process command line arguments expecting each to be a filename.
    +    */
    +   for (i = 1; i < argc; i++) {
    +      filename = argv[i];
    +
    +      /*
    +       * Open the filename provided in command line arguments.
    +       */
    +      if (0 == strcmp (filename, "-")) {
    +         reader = bson_json_reader_new_from_fd (STDIN_FILENO, false);
    +      } else {
    +         if (!(reader = bson_json_reader_new_from_file (filename, &error))) {
    +            fprintf (
    +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
    +            continue;
    +         }
    +      }
    +
    +      /*
    +       * Convert each incoming document to BSON and print to stdout.
    +       */
    +      while ((b = bson_json_reader_read (reader, &doc, &error))) {
    +         if (b < 0) {
    +            fprintf (stderr, "Error in json parsing:\n%s\n", error.message);
    +            abort ();
    +         }
    +
    +         if (fwrite (bson_get_data (&doc), 1, doc.len, stdout) != doc.len) {
    +            fprintf (stderr, "Failed to write to stdout, exiting.\n");
    +            exit (1);
    +         }
    +         bson_reinit (&doc);
    +      }
    +
    +      bson_json_reader_destroy (reader);
    +      bson_destroy (&doc);
    +   }
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_malloc.html b/libbson/1.23.2/bson_malloc.html new file mode 100644 index 0000000000000000000000000000000000000000..41cff397c762e0ddeb1f8428245f29c659072a3e --- /dev/null +++ b/libbson/1.23.2/bson_malloc.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_malloc() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_malloc()

    +
    +

    Synopsis

    +
    void *
    +bson_malloc (size_t num_bytes);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • num_bytes: A size_t containing the number of bytes to allocate.

    • +
    +
    +
    +

    Description

    +

    This is a portable malloc() wrapper.

    +

    In general, this function will return an allocation at least sizeof(void*) bytes or bigger.

    +

    If there was a failure to allocate num_bytes bytes, the process will be aborted.

    +
    +

    Warning

    +

    This function will abort on failure to allocate memory.

    +
    +
    +
    +

    Returns

    +

    A pointer to a memory region which HAS NOT been zeroed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_malloc0.html b/libbson/1.23.2/bson_malloc0.html new file mode 100644 index 0000000000000000000000000000000000000000..75ba2192caf7e35a05524a994cb3a948a4c977c4 --- /dev/null +++ b/libbson/1.23.2/bson_malloc0.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_malloc0() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_malloc0()

    +
    +

    Synopsis

    +
    void *
    +bson_malloc0 (size_t num_bytes);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • num_bytes: A size_t.

    • +
    +
    +
    +

    Description

    +

    This is a portable malloc() wrapper that also sets the memory to zero. Similar to calloc().

    +

    In general, this function will return an allocation at least sizeof(void*) bytes or bigger.

    +

    If there was a failure to allocate num_bytes bytes, the process will be aborted.

    +
    +

    Warning

    +

    This function will abort on failure to allocate memory.

    +
    +
    +
    +

    Returns

    +

    A pointer to a memory region which HAS been zeroed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_md5_append.html b/libbson/1.23.2/bson_md5_append.html new file mode 100644 index 0000000000000000000000000000000000000000..0642393fc36ab51c3f67d05cf3acfa8d2ca7d8de --- /dev/null +++ b/libbson/1.23.2/bson_md5_append.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_md5_append() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_md5_append()

    +
    +

    Deprecated

    +

    All MD5 APIs are deprecated in libbson.

    +
    +
    +

    Synopsis

    +
    void
    +bson_md5_append (bson_md5_t *pms,
    +                 const uint8_t *data,
    +                 uint32_t nbytes) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • pms: A bson_md5_t.

    • +
    • data: A memory region to feed to the md5 algorithm.

    • +
    • nbytes: The length of data in bytes.

    • +
    +
    +
    +

    Description

    +

    Feeds more data into the MD5 algorithm.

    +

    This function is deprecated and should not be used in new code.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_md5_finish.html b/libbson/1.23.2/bson_md5_finish.html new file mode 100644 index 0000000000000000000000000000000000000000..748b46fff8cc1cdf4b7b17af07e2b1eaa0a93619 --- /dev/null +++ b/libbson/1.23.2/bson_md5_finish.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_md5_finish() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_md5_finish()

    +
    +

    Deprecated

    +

    All MD5 APIs are deprecated in libbson.

    +
    +
    +

    Synopsis

    +
    void
    +bson_md5_finish (bson_md5_t *pms, uint8_t digest[16]) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • pms: A bson_md5_t.

    • +
    • digest: A location for the digest.

    • +
    +
    +
    +

    Description

    +

    Completes the MD5 algorithm and stores the digest in digest.

    +

    This function is deprecated and should not be used in new code.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_md5_init.html b/libbson/1.23.2/bson_md5_init.html new file mode 100644 index 0000000000000000000000000000000000000000..69f808c1348cadd419eaaee294f798a024c69a67 --- /dev/null +++ b/libbson/1.23.2/bson_md5_init.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_md5_init() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_md5_init()

    +
    +

    Deprecated

    +

    All MD5 APIs are deprecated in libbson.

    +
    +
    +

    Synopsis

    +
    void
    +bson_md5_init (bson_md5_t *pms) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Initialize a new instance of the MD5 algorithm.

    +

    This function is deprecated and should not be used in new code.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_md5_t.html b/libbson/1.23.2/bson_md5_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5697b8b18e21587d3817feb85b2c9e4dfcce1c8c --- /dev/null +++ b/libbson/1.23.2/bson_md5_t.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_md5_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_md5_t

    +

    BSON MD5 Abstraction

    +
    +

    Deprecated

    +

    All MD5 APIs are deprecated in libbson.

    +
    +
    +

    Synopsis

    +
    typedef struct {
    +   uint32_t count[2]; /* message length in bits, lsw first */
    +   uint32_t abcd[4];  /* digest buffer */
    +   uint8_t buf[64];   /* accumulate block */
    +} bson_md5_t;
    +
    +
    +
    +
    +

    Description

    +

    bson_md5_t encapsulates an implementation of the MD5 algorithm.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_mem_restore_vtable.html b/libbson/1.23.2/bson_mem_restore_vtable.html new file mode 100644 index 0000000000000000000000000000000000000000..e04f4f85c995624f76a7c8f44d0451dbb1afae9a --- /dev/null +++ b/libbson/1.23.2/bson_mem_restore_vtable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_mem_restore_vtable() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_mem_restore_vtable()

    +
    +

    Synopsis

    +
    void
    +bson_mem_restore_vtable (void);
    +
    +
    +
    +
    +

    Description

    +

    This function shall restore the default memory allocator to be used by Libbson.

    +
    +

    Warning

    +

    This function MUST be called at the end of the process. Failure to do so will result in memory being freed by the wrong allocator.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_mem_set_vtable.html b/libbson/1.23.2/bson_mem_set_vtable.html new file mode 100644 index 0000000000000000000000000000000000000000..5f02b77058dbd85fe6929ec428daf6a10aea1ecc --- /dev/null +++ b/libbson/1.23.2/bson_mem_set_vtable.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_mem_set_vtable() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_mem_set_vtable()

    +
    +

    Synopsis

    +
    typedef struct _bson_mem_vtable_t {
    +   void *(*malloc) (size_t num_bytes);
    +   void *(*calloc) (size_t n_members, size_t num_bytes);
    +   void *(*realloc) (void *mem, size_t num_bytes);
    +   void (*free) (void *mem);
    +   void *(*aligned_alloc) (size_t alignment, size_t num_bytes);
    +   void *padding[3];
    +} bson_mem_vtable_t;
    +
    +void
    +bson_mem_set_vtable (const bson_mem_vtable_t *vtable);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • vtable: A bson_mem_vtable_t with every non-padding field set.

    • +
    +
    +
    +

    Description

    +

    This function shall install a new memory allocator to be used by Libbson.

    +

    For backwards compatibility, if vtable->aligned_alloc is not set, calls to vtable->aligned_alloc will use vtable->malloc instead.

    +
    +

    Warning

    +

    This function MUST be called at the beginning of the process. Failure to do so will result in memory being freed by the wrong allocator.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_memory.html b/libbson/1.23.2/bson_memory.html new file mode 100644 index 0000000000000000000000000000000000000000..3ced6048d9d5a70002f78864bf9450a87a8800cc --- /dev/null +++ b/libbson/1.23.2/bson_memory.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + Memory Management — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Memory Management

    +

    BSON Memory Abstraction.

    +
    +

    Description

    +

    Libbson contains a lightweight memory abstraction to make portability to new platforms easier. Additionally, it helps us integrate with interesting higher-level languages. One caveat, however, is that Libbson is not designed to deal with Out of Memory (OOM) situations. Doing so requires extreme diligence throughout the application stack that has rarely been implemented correctly. This may change in the future. As it stands now, Libbson will abort() under OOM situations.

    +

    To aid in language binding integration, Libbson allows for setting a custom memory allocator via bson_mem_set_vtable(). This allocation may be reversed via bson_mem_restore_vtable().

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_new.html b/libbson/1.23.2/bson_new.html new file mode 100644 index 0000000000000000000000000000000000000000..497e804dc27ab5c3135f7fcbe1b0ce71a6d520e7 --- /dev/null +++ b/libbson/1.23.2/bson_new.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_new()

    +
    +

    Synopsis

    +
    bson_t *
    +bson_new (void);
    +
    +
    +
    +
    +

    Description

    +

    The bson_new() function shall create a new bson_t structure on the heap. It should be freed with bson_destroy() when it is no longer in use.

    +
    +
    +

    Returns

    +

    A newly allocated bson_t that should be freed with bson_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_new_from_buffer.html b/libbson/1.23.2/bson_new_from_buffer.html new file mode 100644 index 0000000000000000000000000000000000000000..3ec024783774d4ac4d40a74b299a3f5d07d785f9 --- /dev/null +++ b/libbson/1.23.2/bson_new_from_buffer.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + bson_new_from_buffer() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_new_from_buffer()

    +
    +

    Synopsis

    +
    bson_t *
    +bson_new_from_buffer (uint8_t **buf,
    +                      size_t *buf_len,
    +                      bson_realloc_func realloc_func,
    +                      void *realloc_func_ctx);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • buf: An out-pointer to a buffer containing a serialized BSON document, or to NULL.

    • +
    • buf_len: An out-pointer to the length of the buffer in bytes.

    • +
    • realloc_func: Optional bson_realloc_func for reallocating the buffer.

    • +
    • realloc_func_ctx: Optional pointer that will be passed as ctx to realloc_func.

    • +
    +
    +
    +

    Description

    +

    Creates a new bson_t using the data provided.

    +

    The realloc_func, if provided, is called to resize buf if the document is later expanded, for example by a call to one of the bson_append functions.

    +

    If *buf is initially NULL then it is allocated, using realloc_func or the default allocator, and initialized with an empty BSON document, and *buf_len is set to 5, the size of an empty document.

    +
    +
    +

    Returns

    +

    A newly-allocated bson_t on success, or NULL.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_new_from_data.html b/libbson/1.23.2/bson_new_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..eaaac1d39780fb7c81b8b248960df8d0e56bd87f --- /dev/null +++ b/libbson/1.23.2/bson_new_from_data.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + bson_new_from_data() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_new_from_data()

    +
    +

    Synopsis

    +
    bson_t *
    +bson_new_from_data (const uint8_t *data, size_t length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • data: A BSON encoded document buffer.

    • +
    • length: The length of data in bytes.

    • +
    +
    +
    +

    Description

    +

    The bson_new_from_data() function shall create a new bson_t on the heap and copy the contents of data. This may be helpful when working with language bindings but is generally expected to be slower.

    +
    +
    +

    Returns

    +

    A newly allocated bson_t if successful, otherwise NULL.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_new_from_json.html b/libbson/1.23.2/bson_new_from_json.html new file mode 100644 index 0000000000000000000000000000000000000000..8548289493140987fe0ab32bbfd3419c2969ebb8 --- /dev/null +++ b/libbson/1.23.2/bson_new_from_json.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + bson_new_from_json() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_new_from_json()

    +
    +

    Synopsis

    +
    bson_t *
    +bson_new_from_json (const uint8_t *data, ssize_t len, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • data: A UTF-8 encoded string containing valid JSON.

    • +
    • len: The length of data in bytes excluding a trailing \0 or -1 to determine the length with strlen().

    • +
    • error: An optional location for a bson_error_t.

    • +
    +
    +
    +

    Description

    +

    The bson_new_from_json() function allocates and initialize a new bson_t by parsing the JSON found in data. Only a single JSON object may exist in data or an error will be set and NULL returned.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A newly allocated bson_t if successful, otherwise NULL and error is set.

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_compare.html b/libbson/1.23.2/bson_oid_compare.html new file mode 100644 index 0000000000000000000000000000000000000000..207c684879170605165464b3f973f1756bf76a90 --- /dev/null +++ b/libbson/1.23.2/bson_oid_compare.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_oid_compare() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_compare()

    +
    +

    Synopsis

    +
    int
    +bson_oid_compare (const bson_oid_t *oid1, const bson_oid_t *oid2);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_oid_compare() function shall return a qsort() style value of a lexicographical sort of oid1 and oid2.

    +
    +
    +

    Returns

    +

    less than 0, 0, or greater than 0 based on the comparison.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_copy.html b/libbson/1.23.2/bson_oid_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..bd474aa27c61bf9ca541563a049379092c4cd0c7 --- /dev/null +++ b/libbson/1.23.2/bson_oid_copy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_copy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_copy()

    +
    +

    Synopsis

    +
    void
    +bson_oid_copy (const bson_oid_t *src, bson_oid_t *dst);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Copies the contents of src into dst.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_equal.html b/libbson/1.23.2/bson_oid_equal.html new file mode 100644 index 0000000000000000000000000000000000000000..0ef7e09b8541e47a5e8ef5f432b0a8871d17975e --- /dev/null +++ b/libbson/1.23.2/bson_oid_equal.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_oid_equal() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_equal()

    +
    +

    Synopsis

    +
    bool
    +bson_oid_equal (const bson_oid_t *oid1, const bson_oid_t *oid2);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Checks if two bson_oid_t contain the same bytes.

    +
    +
    +

    Returns

    +

    true if they are equal, otherwise false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_get_time_t.html b/libbson/1.23.2/bson_oid_get_time_t.html new file mode 100644 index 0000000000000000000000000000000000000000..7ae9373185a2a4faaade7c6b9d33b2fe125e859c --- /dev/null +++ b/libbson/1.23.2/bson_oid_get_time_t.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_oid_get_time_t() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_get_time_t()

    +
    +

    Synopsis

    +
    time_t
    +bson_oid_get_time_t (const bson_oid_t *oid);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the generation time in seconds since the UNIX Epoch of oid.

    +
    +
    +

    Returns

    +

    A time_t containing the seconds since the UNIX epoch of oid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_hash.html b/libbson/1.23.2/bson_oid_hash.html new file mode 100644 index 0000000000000000000000000000000000000000..5c6418e8845d70f5208156f5ee2f5c098b17c3f4 --- /dev/null +++ b/libbson/1.23.2/bson_oid_hash.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_oid_hash() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_hash()

    +
    +

    Synopsis

    +
    uint32_t
    +bson_oid_hash (const bson_oid_t *oid);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Generates a hash code for oid suitable for a hashtable.

    +
    +
    +

    Returns

    +

    A 32-bit hash code.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_init.html b/libbson/1.23.2/bson_oid_init.html new file mode 100644 index 0000000000000000000000000000000000000000..746eda1a9a30be5a2bc95e6f355822e998796a48 --- /dev/null +++ b/libbson/1.23.2/bson_oid_init.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_init() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_init()

    +
    +

    Synopsis

    +
    void
    +bson_oid_init (bson_oid_t *oid, bson_context_t *context);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Generates a new bson_oid_t using either context or the default bson_context_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_init_from_data.html b/libbson/1.23.2/bson_oid_init_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..339b4737cd8a3e4af765c206f6f9cf4b08e0915a --- /dev/null +++ b/libbson/1.23.2/bson_oid_init_from_data.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_init_from_data() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_init_from_data()

    +
    +

    Synopsis

    +
    void
    +bson_oid_init_from_data (bson_oid_t *oid, const uint8_t *data);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • oid: A bson_oid_t.

    • +
    • data: A buffer containing 12 bytes for the oid.

    • +
    +
    +
    +

    Description

    +

    Initializes a bson_oid_t using the raw buffer provided.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_init_from_string.html b/libbson/1.23.2/bson_oid_init_from_string.html new file mode 100644 index 0000000000000000000000000000000000000000..65d0191815790385e72807652b2535c5b4a8627c --- /dev/null +++ b/libbson/1.23.2/bson_oid_init_from_string.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_oid_init_from_string() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_init_from_string()

    +
    +

    Synopsis

    +
    void
    +bson_oid_init_from_string (bson_oid_t *oid, const char *str);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • oid: A bson_oid_t.

    • +
    • str: A string containing a hex encoded version of the oid.

    • +
    +
    +
    +

    Description

    +

    Parses the string containing hex encoded oid and initialize the bytes in oid.

    +
    +
    +

    Example

    +
    bson_oid_init_from_string (&oid, "012345678901234567890123");
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_init_sequence.html b/libbson/1.23.2/bson_oid_init_sequence.html new file mode 100644 index 0000000000000000000000000000000000000000..252d3d83e1b3f45fba60cc007e73a2b1d15dfecc --- /dev/null +++ b/libbson/1.23.2/bson_oid_init_sequence.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_oid_init_sequence() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_init_sequence()

    +
    +

    Synopsis

    +
    void
    +bson_oid_init_sequence (bson_oid_t *oid,
    +                        bson_context_t *context) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Generates a new ObjectID with the next 64-bit sequence number in context. The first 4 bytes contain the current time and the following 8 contain the sequence number in big-endian format.

    +

    The bson_oid_t generated by this function is not guaranteed to be globally unique. Only unique within this context. It is however, guaranteed to be sequential.

    +
    +

    Warning

    +

    DEPRECATED: This function provides no additional value compared to bson_oid_init(). It will be removed in libbson 2.0.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_is_valid.html b/libbson/1.23.2/bson_oid_is_valid.html new file mode 100644 index 0000000000000000000000000000000000000000..8b3070c0ac2497902717553608dde47260738ded --- /dev/null +++ b/libbson/1.23.2/bson_oid_is_valid.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_oid_is_valid() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_is_valid()

    +
    +

    Synopsis

    +
    bool
    +bson_oid_is_valid (const char *str, size_t length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • str: A string.

    • +
    • length: The length of str.

    • +
    +
    +
    +

    Description

    +

    Checks if a string containing a hex encoded string is a valid BSON ObjectID.

    +
    +
    +

    Returns

    +

    true if str could be parsed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_t.html b/libbson/1.23.2/bson_oid_t.html new file mode 100644 index 0000000000000000000000000000000000000000..133d207377562a5dba54693c2845d79fac0b6cc1 --- /dev/null +++ b/libbson/1.23.2/bson_oid_t.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + bson_oid_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_t

    +

    BSON ObjectID Abstraction

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct {
    +   uint8_t bytes[12];
    +} bson_oid_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_oid_t structure contains the 12-byte ObjectId notation defined by the BSON ObjectID specification.

    +

    ObjectId is a 12-byte BSON type, constructed using:

    +
      +
    • a 4-byte value representing the seconds since the Unix epoch (in Big Endian).

    • +
    • a 5-byte random value.

    • +
    • a 3-byte counter (Big Endian), starting with a random value.

    • +
    +
    +
    +

    String Conversion

    +

    You can convert an Object ID to a string using bson_oid_to_string() and back with bson_oid_init_from_string().

    +
    +
    +

    Hashing

    +

    A bson_oid_t can be used in hashtables using the function bson_oid_hash() and bson_oid_equal().

    +
    +
    +

    Comparing

    +

    A bson_oid_t can be compared to another using bson_oid_compare() for qsort() style comparing and bson_oid_equal() for direct equality.

    +
    +
    +

    Validating

    +

    You can validate that a string containing a hex-encoded ObjectID is valid using the function bson_oid_is_valid().

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_oid_t oid;
    +   char str[25];
    +
    +   bson_oid_init (&oid, NULL);
    +   bson_oid_to_string (&oid, str);
    +   printf ("%s\n", str);
    +
    +   if (bson_oid_is_valid (str, sizeof str)) {
    +      bson_oid_init_from_string (&oid, str);
    +   }
    +
    +   printf ("The UNIX time was: %u\n", (unsigned) bson_oid_get_time_t (&oid));
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_oid_to_string.html b/libbson/1.23.2/bson_oid_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..f99c0ab5df2c511e8ce96a9fad97d40c9a0cacf7 --- /dev/null +++ b/libbson/1.23.2/bson_oid_to_string.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_to_string() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_to_string()

    +
    +

    Synopsis

    +
    void
    +bson_oid_to_string (const bson_oid_t *oid, char str[25]);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • oid: A bson_oid_t.

    • +
    • str: A location for the resulting string.

    • +
    +
    +
    +

    Description

    +

    Converts oid into a hex encoded string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_destroy.html b/libbson/1.23.2/bson_reader_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..f99f26424774dcc87972bfd9684c2e0c78a58dac --- /dev/null +++ b/libbson/1.23.2/bson_reader_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_reader_destroy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_destroy()

    +
    +

    Synopsis

    +
    void
    +bson_reader_destroy (bson_reader_t *reader);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Destroys and releases all resources associated with reader. Does nothing if reader is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_destroy_func_t.html b/libbson/1.23.2/bson_reader_destroy_func_t.html new file mode 100644 index 0000000000000000000000000000000000000000..58d7d300218f63ffda51cb085bc48f60eb926216 --- /dev/null +++ b/libbson/1.23.2/bson_reader_destroy_func_t.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_reader_destroy_func_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_destroy_func_t

    +
    +

    Synopsis

    +
    typedef void (*bson_reader_destroy_func_t) (void *handle);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    An optional callback function that will be called when a bson_reader_t created with bson_reader_new_from_handle() is destroyed with bson_reader_destroy().

    +

    The handle used when creating the reader is passed to this callback.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_new_from_data.html b/libbson/1.23.2/bson_reader_new_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..d6c54610ece30b13c6472f927f37bcdf8d5a8137 --- /dev/null +++ b/libbson/1.23.2/bson_reader_new_from_data.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_reader_new_from_data() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_new_from_data()

    +
    +

    Synopsis

    +
    bson_reader_t *
    +bson_reader_new_from_data (const uint8_t *data, size_t length);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • data: A uint8_t.

    • +
    • length: A size_t.

    • +
    +
    +
    +

    Description

    +

    The bson_reader_new_from_data() function shall create a new bson_reader_t using the buffer supplied. data is not copied and MUST be valid for the lifetime of the resulting bson_reader_t.

    +
    +
    +

    Returns

    +

    A newly allocated bson_reader_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_new_from_fd.html b/libbson/1.23.2/bson_reader_new_from_fd.html new file mode 100644 index 0000000000000000000000000000000000000000..e029ba923e0b2e11054b39693e177a2958c72785 --- /dev/null +++ b/libbson/1.23.2/bson_reader_new_from_fd.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_reader_new_from_fd() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_new_from_fd()

    +
    +

    Synopsis

    +
    bson_reader_t *
    +bson_reader_new_from_fd (int fd, bool close_on_destroy);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • fd: A valid file-descriptor.

    • +
    • close_on_destroy: Whether close() should be called on fd when the reader is destroyed.

    • +
    +
    +
    +

    Description

    +

    The bson_reader_new_from_fd() function shall create a new bson_reader_t that will read from the provided file-descriptor.

    +

    fd MUST be in blocking mode.

    +

    If close_fd is true, then fd will be closed when the bson_reader_t is destroyed with bson_reader_destroy().

    +
    +
    +

    Returns

    +

    A newly allocated bson_reader_t that should be freed with bson_reader_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_new_from_file.html b/libbson/1.23.2/bson_reader_new_from_file.html new file mode 100644 index 0000000000000000000000000000000000000000..d24b6c2e34ab1f4f6fced99485c41b8c7719cdea --- /dev/null +++ b/libbson/1.23.2/bson_reader_new_from_file.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_reader_new_from_file() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_new_from_file()

    +
    +

    Synopsis

    +
    bson_reader_t *
    +bson_reader_new_from_file (const char *path, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • path: A filename in the host filename encoding.

    • +
    • error: A bson_error_t.

    • +
    +
    +
    +

    Description

    +

    Creates a new bson_reader_t using the file denoted by filename.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A newly allocated bson_reader_t on success, otherwise NULL and error is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_new_from_handle.html b/libbson/1.23.2/bson_reader_new_from_handle.html new file mode 100644 index 0000000000000000000000000000000000000000..dd2a96264fb9faa17e302f485e43845c168d4f73 --- /dev/null +++ b/libbson/1.23.2/bson_reader_new_from_handle.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_reader_new_from_handle() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_new_from_handle()

    +
    +

    Synopsis

    +
    bson_reader_t *
    +bson_reader_new_from_handle (void *handle,
    +                             bson_reader_read_func_t rf,
    +                             bson_reader_destroy_func_t df);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function allows for a pluggable data stream for the reader. This can be used to read from sockets, files, memory, or other arbitrary sources.

    +
    +
    +

    Returns

    +

    A newly allocated bson_reader_t if successful; otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_read.html b/libbson/1.23.2/bson_reader_read.html new file mode 100644 index 0000000000000000000000000000000000000000..b9db320cf30047f1527d95ec0eb6d514db1fbf21 --- /dev/null +++ b/libbson/1.23.2/bson_reader_read.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + bson_reader_read() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_read()

    +
    +

    Synopsis

    +
    const bson_t *
    +bson_reader_read (bson_reader_t *reader, bool *reached_eof);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The bson_reader_read() function shall read the next document from the underlying file-descriptor or buffer.

    +

    If there are no further documents or a failure was detected, then NULL is returned.

    +

    If we reached the end of the sequence, reached_eof is set to true.

    +

    To detect an error, check for NULL and reached_of is false.

    +
    +
    +

    Returns

    +

    A bson_t that should not be modified or freed.

    +
    +
    +

    Example

    +
    const bson_t *doc;
    +bool reached_eof = false;
    +
    +while ((doc = bson_reader_read (reader, &reached_eof))) {
    +   /* do something */
    +}
    +
    +if (!reached_eof) {
    +   fprintf (stderr, "Failed to read all documents.\n");
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_read_func_t.html b/libbson/1.23.2/bson_reader_read_func_t.html new file mode 100644 index 0000000000000000000000000000000000000000..7bb935b7367606c8927f043d48072a298e5f60c1 --- /dev/null +++ b/libbson/1.23.2/bson_reader_read_func_t.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_reader_read_func_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_read_func_t

    +
    +

    Synopsis

    +
    typedef ssize_t (*bson_reader_read_func_t) (void *handle,
    +                                            void *buf,
    +                                            size_t count);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • handle: The handle to read from.

    • +
    • buf: The buffer to read into.

    • +
    • count: The number of bytes to read.

    • +
    +
    +
    +

    Description

    +

    A callback function that will be called by bson_reader_t to read the next chunk of data from the underlying opaque file descriptor.

    +

    This function is meant to operate similar to the read(2) function as part of libc on UNIX-like systems.

    +
    +
    +

    Returns

    +

    0 for end of stream.

    +

    -1 for a failure on read.

    +

    A value greater than zero for the number of bytes read into buf.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_reset.html b/libbson/1.23.2/bson_reader_reset.html new file mode 100644 index 0000000000000000000000000000000000000000..49806f03b90ef5403e8f784398697d261e3a82fb --- /dev/null +++ b/libbson/1.23.2/bson_reader_reset.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_reader_reset() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_reset()

    +
    +

    Synopsis

    +
    void
    +bson_reader_reset (bson_reader_t *reader);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Seeks to the beginning of the underlying buffer. Valid only for a reader created from a buffer with bson_reader_new_from_data(), not one created from a file, file descriptor, or handle.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_set_destroy_func.html b/libbson/1.23.2/bson_reader_set_destroy_func.html new file mode 100644 index 0000000000000000000000000000000000000000..563fd87e5df97c9ed278b386422893c4c98782fb --- /dev/null +++ b/libbson/1.23.2/bson_reader_set_destroy_func.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_reader_set_destroy_func() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_set_destroy_func()

    +
    +

    Synopsis

    +
    void
    +bson_reader_set_destroy_func (bson_reader_t *reader,
    +                              bson_reader_destroy_func_t func);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Allows for setting a callback to be executed when a reader is destroyed. This should only be used by implementations implementing their own read callbacks.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_set_read_func.html b/libbson/1.23.2/bson_reader_set_read_func.html new file mode 100644 index 0000000000000000000000000000000000000000..7ed4dad8d196e0d5a51fdcd7ac89e6e5e4380a27 --- /dev/null +++ b/libbson/1.23.2/bson_reader_set_read_func.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_reader_set_read_func() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_set_read_func()

    +
    +

    Synopsis

    +
    void
    +bson_reader_set_read_func (bson_reader_t *reader, bson_reader_read_func_t func);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the function to read more data from the underlying stream in a custom bson_reader_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_t.html b/libbson/1.23.2/bson_reader_t.html new file mode 100644 index 0000000000000000000000000000000000000000..7ffb6b6525b07d2d42b76d237a2280a970608133 --- /dev/null +++ b/libbson/1.23.2/bson_reader_t.html @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + bson_reader_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_t

    +

    Streaming BSON Document Reader

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct _bson_reader_t bson_reader_t;
    +
    +bson_reader_t *
    +bson_reader_new_from_handle (void *handle,
    +                             bson_reader_read_func_t rf,
    +                             bson_reader_destroy_func_t df);
    +bson_reader_t *
    +bson_reader_new_from_fd (int fd, bool close_on_destroy);
    +bson_reader_t *
    +bson_reader_new_from_file (const char *path, bson_error_t *error);
    +bson_reader_t *
    +bson_reader_new_from_data (const uint8_t *data, size_t length);
    +
    +void
    +bson_reader_destroy (bson_reader_t *reader);
    +
    +
    +
    +
    +

    Description

    +

    bson_reader_t is a structure used for reading a sequence of BSON documents. The sequence can come from a file-descriptor, memory region, or custom callbacks.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    /*
    + * Copyright 2013 MongoDB, Inc.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +
    +/*
    + * This program will print each BSON document contained in the provided files
    + * as a JSON string to STDOUT.
    + */
    +
    +
    +#include <bson/bson.h>
    +#include <stdio.h>
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_reader_t *reader;
    +   const bson_t *b;
    +   bson_error_t error;
    +   const char *filename;
    +   char *str;
    +   int i;
    +
    +   /*
    +    * Print program usage if no arguments are provided.
    +    */
    +   if (argc == 1) {
    +      fprintf (stderr, "usage: %s [FILE | -]...\nUse - for STDIN.\n", argv[0]);
    +      return 1;
    +   }
    +
    +   /*
    +    * Process command line arguments expecting each to be a filename.
    +    */
    +   for (i = 1; i < argc; i++) {
    +      filename = argv[i];
    +
    +      if (strcmp (filename, "-") == 0) {
    +         reader = bson_reader_new_from_fd (STDIN_FILENO, false);
    +      } else {
    +         if (!(reader = bson_reader_new_from_file (filename, &error))) {
    +            fprintf (
    +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
    +            continue;
    +         }
    +      }
    +
    +      /*
    +       * Convert each incoming document to JSON and print to stdout.
    +       */
    +      while ((b = bson_reader_read (reader, NULL))) {
    +         str = bson_as_canonical_extended_json (b, NULL);
    +         fprintf (stdout, "%s\n", str);
    +         bson_free (str);
    +      }
    +
    +      /*
    +       * Cleanup after our reader, which closes the file descriptor.
    +       */
    +      bson_reader_destroy (reader);
    +   }
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reader_tell.html b/libbson/1.23.2/bson_reader_tell.html new file mode 100644 index 0000000000000000000000000000000000000000..abfcdb9f3fe766252280224d7b79e13480ad7802 --- /dev/null +++ b/libbson/1.23.2/bson_reader_tell.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_reader_tell() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reader_tell()

    +
    +

    Synopsis

    +
    off_t
    +bson_reader_tell (bson_reader_t *reader);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Tells the current position within the underlying stream.

    +
    +
    +

    Returns

    +

    -1 on failure, otherwise the offset within the underlying stream.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_realloc.html b/libbson/1.23.2/bson_realloc.html new file mode 100644 index 0000000000000000000000000000000000000000..0c1628a746a1991da19d2df14fb88db30fc599a9 --- /dev/null +++ b/libbson/1.23.2/bson_realloc.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_realloc() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_realloc()

    +
    +

    Synopsis

    +
    void *
    +bson_realloc (void *mem, size_t num_bytes);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • mem: A memory region.

    • +
    • num_bytes: A size_t containing the new requested size.

    • +
    +
    +
    +

    Description

    +

    This is a portable realloc() wrapper.

    +

    In general, this function will return an allocation at least sizeof(void*) bytes or bigger. If num_bytes is 0, then the allocation will be freed.

    +

    If there was a failure to allocate num_bytes bytes, the process will be aborted.

    +
    +

    Warning

    +

    This function will abort on failure to allocate memory.

    +
    +
    +
    +

    Returns

    +

    A pointer to a memory region which HAS NOT been zeroed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_realloc_ctx.html b/libbson/1.23.2/bson_realloc_ctx.html new file mode 100644 index 0000000000000000000000000000000000000000..98935a0143b73356872f479dab492f307201fd81 --- /dev/null +++ b/libbson/1.23.2/bson_realloc_ctx.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_realloc_ctx() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_realloc_ctx()

    +
    +

    Synopsis

    +
    void *
    +bson_realloc_ctx (void *mem, size_t num_bytes, void *ctx);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • mem: A memory region.

    • +
    • num_bytes: A size_t containing the requested size.

    • +
    • ctx: A consumer-specific pointer or NULL.

    • +
    +
    +
    +

    Description

    +

    This function is identical to bson_realloc() except it takes a context parameter. This is useful when working with pooled or specific memory allocators.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_realloc_func.html b/libbson/1.23.2/bson_realloc_func.html new file mode 100644 index 0000000000000000000000000000000000000000..3e6aa39355b2e09fd3bfd125c394dcb674d9fb75 --- /dev/null +++ b/libbson/1.23.2/bson_realloc_func.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_realloc_func — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_realloc_func

    +
    +

    Synopsis

    +
    typedef void *(*bson_realloc_func) (void *mem, size_t num_bytes, void *ctx);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • mem: A memory region.

    • +
    • num_bytes: A size_t containing the requested size.

    • +
    • ctx: A consumer-specific pointer or NULL.

    • +
    +
    +
    +

    Description

    +

    This is a prototype for pluggable realloc functions used through the Libbson library. If you wish to use a custom allocator this is one way to do it. Additionally, bson_realloc_ctx() is a default implementation of this prototype.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reinit.html b/libbson/1.23.2/bson_reinit.html new file mode 100644 index 0000000000000000000000000000000000000000..b7b15a0a15b8cd6648788ff5ca29a54ac5a5410f --- /dev/null +++ b/libbson/1.23.2/bson_reinit.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + bson_reinit() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reinit()

    +
    +

    Synopsis

    +
    void
    +bson_reinit (bson_t *b);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Reinitializes a bson_t.

    +

    If the bson_t structure contains a malloc()’d buffer, it may be reused. To be certain that any buffer is freed, always call bson_destroy() on any bson_t structure, whether initialized or reinitialized, after its final use.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_reserve_buffer.html b/libbson/1.23.2/bson_reserve_buffer.html new file mode 100644 index 0000000000000000000000000000000000000000..0cc592bb8338e469d7af2964756528ae27367202 --- /dev/null +++ b/libbson/1.23.2/bson_reserve_buffer.html @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + bson_reserve_buffer() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_reserve_buffer()

    +
    +

    Synopsis

    +
    uint8_t *
    +bson_reserve_buffer (bson_t *bson, uint32_t size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: An initialized bson_t.

    • +
    • size: The length in bytes of the new buffer.

    • +
    +
    +
    +

    Description

    +

    Grow the internal buffer of bson to size and set the document length to size. Useful for eliminating copies when reading BSON bytes from a stream.

    +

    First, initialize bson with bson_init() or bson_new(), then call this function. After it returns, the length of bson is set to size but its contents are uninitialized memory: you must fill the contents with a BSON document of the correct length before any other operations.

    +

    The document must be freed with bson_destroy().

    +
    +
    +

    Returns

    +

    A pointer to the internal buffer, which is at least size bytes, or NULL if the space could not be allocated.

    +
    +
    +

    Example

    +

    Use bson_reserve_buffer to write a function that takes a bson_t pointer and reads a file into it directly:

    +
    #include <stdio.h>
    +#include <bson/bson.h>
    +
    +bool
    +read_into (bson_t *bson, FILE *fp)
    +{
    +   uint8_t *buffer;
    +   long size;
    +
    +   if (fseek (fp, 0L, SEEK_END) < 0) {
    +      perror ("Couldn't get file size");
    +      return 1;
    +   }
    +
    +   size = ftell (fp);
    +   if (size == EOF) {
    +      perror ("Couldn't get file size");
    +      return 1;
    +   }
    +
    +   if (size > INT32_MAX) {
    +      fprintf (stderr, "File too large\n");
    +      return 1;
    +   }
    +
    +   /* reserve buffer space - bson is temporarily invalid */
    +   buffer = bson_reserve_buffer (bson, (uint32_t) size);
    +   if (!buffer) {
    +      fprintf (stderr, "Couldn't reserve %ld bytes", size);
    +      return false;
    +   }
    +
    +   /* read file directly into the buffer */
    +   rewind (fp);
    +   if (fread ((void *) buffer, 1, (size_t) size, fp) < (size_t) size) {
    +      perror ("Couldn't read file");
    +      return false;
    +   }
    +
    +   return true;
    +}
    +
    +int
    +main ()
    +{
    +   FILE *fp;
    +   char *json;
    +
    +   /* stack-allocated, initialized bson_t */
    +   bson_t bson = BSON_INITIALIZER;
    +
    +   if (!(fp = fopen ("document.bson", "rb"))) {
    +      perror ("Couldn't read file");
    +      return 1;
    +   }
    +
    +   read_into (&bson, fp);
    +   fclose (fp);
    +
    +   json = bson_as_canonical_extended_json (&bson, NULL);
    +   printf ("%s\n", json);
    +
    +   bson_free (json);
    +   bson_destroy (&bson);
    +
    +   return 0;
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_set_error.html b/libbson/1.23.2/bson_set_error.html new file mode 100644 index 0000000000000000000000000000000000000000..84df8b3bf91a5be6a57d509a1ba1ea8e8eca0639 --- /dev/null +++ b/libbson/1.23.2/bson_set_error.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_set_error() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_set_error()

    +
    +

    Synopsis

    +
    void
    +bson_set_error (
    +   bson_error_t *error, uint32_t domain, uint32_t code, const char *format, ...)
    +   BSON_GNUC_PRINTF (4, 5);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • error: A bson_error_t.

    • +
    • domain: A uint32_t.

    • +
    • code: A uint32_t.

    • +
    • format: A printf() style format string.

    • +
    +
    +
    +

    Description

    +

    This is a helper function to set the parameters of a bson_error_t. It handles the case where error is NULL by doing nothing.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_sized_new.html b/libbson/1.23.2/bson_sized_new.html new file mode 100644 index 0000000000000000000000000000000000000000..29c7d77af929c3b473a5724bbaffdb8e7a06718e --- /dev/null +++ b/libbson/1.23.2/bson_sized_new.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + bson_sized_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_sized_new()

    +
    +

    Synopsis

    +
    bson_t *
    +bson_sized_new (size_t size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • size: The size to pre-allocate for the underlying buffer.

    • +
    +
    +
    +

    Description

    +

    The bson_sized_new() function shall create a new bson_t on the heap with a preallocated buffer. This is useful if you have a good idea of the size of the resulting document.

    +
    +
    +

    Returns

    +

    A newly allocated bson_t that should be freed with bson_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_snprintf.html b/libbson/1.23.2/bson_snprintf.html new file mode 100644 index 0000000000000000000000000000000000000000..e8ad9d4ab533efbf6646b6abb214514ac29278f4 --- /dev/null +++ b/libbson/1.23.2/bson_snprintf.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_snprintf() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_snprintf()

    +
    +

    Synopsis

    +
    int
    +bson_snprintf (char *str, size_t size, const char *format, ...)
    +   BSON_GNUC_PRINTF (3, 4);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • str: The destination buffer.

    • +
    • size: The size of str.

    • +
    • format: A printf style format string.

    • +
    +
    +
    +

    Description

    +

    This is a portable wrapper around snprintf(). It also enforces a trailing \0 in the resulting string.

    +
    +
    +

    Returns

    +

    The number of bytes written to str.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_steal.html b/libbson/1.23.2/bson_steal.html new file mode 100644 index 0000000000000000000000000000000000000000..92d4da7483a8f1139ace697fac0bb70f148d37bd --- /dev/null +++ b/libbson/1.23.2/bson_steal.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + bson_steal() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_steal()

    +
    +

    Synopsis

    +
    bool
    +bson_steal (bson_t *dst, bson_t *src);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Efficiently transfer the contents of src to dst and destroy src.

    +

    Before calling this function, src must be initialized and dst must be uninitialized. After this function returns successfully, src is destroyed, and dst is initialized and must be freed with bson_destroy().

    +

    For example, if you have a higher-level structure that wraps a bson_t, use bson_steal to transfer BSON data into it:

    +
    typedef struct {
    +   bson_t bson;
    +} bson_wrapper_t;
    +
    +
    +bson_wrapper_t *
    +wrap_bson (bson_t *b)
    +{
    +   bson_wrapper_t *wrapper = bson_malloc (sizeof (bson_wrapper_t));
    +
    +   if (bson_steal (&wrapper->bson, b)) {
    +      return wrapper;
    +   }
    +
    +   bson_free (wrapper);
    +   return NULL;
    +}
    +
    +
    +void
    +bson_wrapper_destroy (bson_wrapper_t *wrapper)
    +{
    +   bson_destroy (&wrapper->bson);
    +   bson_free (wrapper);
    +}
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_t bson = BSON_INITIALIZER;
    +   bson_wrapper_t *wrapper;
    +
    +   BSON_APPEND_UTF8 (&bson, "key", "value");
    +
    +   /* now "bson" is destroyed */
    +   wrapper = wrap_bson (&bson);
    +
    +   /* clean up */
    +   bson_wrapper_destroy (wrapper);
    +}
    +
    +
    +
    +
    +

    Returns

    +

    Returns true if src was successfully moved to dst, false if src is invalid, or was statically initialized, or another error occurred.

    +
    +

    See also

    +
    +
    bson_destroy_with_steal(), a lower-level function that returns the raw contents of a bson_t.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strcasecmp.html b/libbson/1.23.2/bson_strcasecmp.html new file mode 100644 index 0000000000000000000000000000000000000000..5f271d8de263cfcade4108803a097bf68023bac9 --- /dev/null +++ b/libbson/1.23.2/bson_strcasecmp.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_strcasecmp() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strcasecmp()

    +
    +

    Synopsis

    +
    int
    +bson_strcasecmp (const char *s1, const char *s2);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • s1: A string.

    • +
    • s2: A string.

    • +
    +
    +
    +

    Description

    +

    A portable version of strcasecmp().

    +
    +
    +

    Returns

    +

    Returns a negative integer if s1 sorts lexicographically before s2, a positive +integer if it sorts after, or 0 if they are equivalent, after translating both +strings to lower case.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strdup.html b/libbson/1.23.2/bson_strdup.html new file mode 100644 index 0000000000000000000000000000000000000000..534b577aeb36eb5b1d0a0de0cef812f6380e6d7e --- /dev/null +++ b/libbson/1.23.2/bson_strdup.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_strdup() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strdup()

    +
    +

    Synopsis

    +
    char *
    +bson_strdup (const char *str);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • str: A string.

    • +
    +
    +
    +

    Description

    +

    Copies str into a new string. If str is NULL, then NULL is returned.

    +
    +
    +

    Returns

    +

    A newly allocated string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strdup_printf.html b/libbson/1.23.2/bson_strdup_printf.html new file mode 100644 index 0000000000000000000000000000000000000000..0eee503bcee806b82c05e7b4cc411a480b47170e --- /dev/null +++ b/libbson/1.23.2/bson_strdup_printf.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_strdup_printf() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strdup_printf()

    +
    +

    Synopsis

    +
    char *
    +bson_strdup_printf (const char *format, ...) BSON_GNUC_PRINTF (1, 2);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • format: A printf style format string.

    • +
    +
    +
    +

    Description

    +

    This function performs a printf style format but into a newly allocated string.

    +
    +
    +

    Returns

    +

    A newly allocated string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strdupv_printf.html b/libbson/1.23.2/bson_strdupv_printf.html new file mode 100644 index 0000000000000000000000000000000000000000..e2995be5c396e6abf7ebc1809142557ed8b4977a --- /dev/null +++ b/libbson/1.23.2/bson_strdupv_printf.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_strdupv_printf() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strdupv_printf()

    +
    +

    Synopsis

    +
    char *
    +bson_strdupv_printf (const char *format, va_list args) BSON_GNUC_PRINTF (1, 0);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • format: A printf style format string.

    • +
    • args: A va_list.

    • +
    +
    +
    +

    Description

    +

    This function is like bson_strdup_printf() except takes a va_list of parameters.

    +
    +
    +

    Returns

    +

    A newly allocated string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strerror_r.html b/libbson/1.23.2/bson_strerror_r.html new file mode 100644 index 0000000000000000000000000000000000000000..f1635909c35f2394def4492fd10a9be3a7ce377a --- /dev/null +++ b/libbson/1.23.2/bson_strerror_r.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_strerror_r() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strerror_r()

    +
    +

    Synopsis

    +
    char *
    +bson_strerror_r (int err_code, char *buf, size_t buflen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • err_code: An errno.

    • +
    • buf: A location to store the string.

    • +
    • buflen: The size of buf.

    • +
    +
    +
    +

    Description

    +

    This is a portability wrapper around strerror().

    +
    +
    +

    Returns

    +

    The passed in buf parameter or an internal string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strfreev.html b/libbson/1.23.2/bson_strfreev.html new file mode 100644 index 0000000000000000000000000000000000000000..6af9ea31b4a1ea53471daf28173af699ccf27e54 --- /dev/null +++ b/libbson/1.23.2/bson_strfreev.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_strfreev() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strfreev()

    +
    +

    Synopsis

    +
    void
    +bson_strfreev (char **strv);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • strv: A NULL-terminated array of strings to free, including the array.

    • +
    +
    +
    +

    Description

    +

    This will free each string in a NULL-terminated array of strings and then the array itself.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_append.html b/libbson/1.23.2/bson_string_append.html new file mode 100644 index 0000000000000000000000000000000000000000..4e24dae8dbe397af7746780888d0555fe8304d7e --- /dev/null +++ b/libbson/1.23.2/bson_string_append.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_string_append() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_append()

    +
    +

    Synopsis

    +
    void
    +bson_string_append (bson_string_t *string, const char *str);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Appends the ASCII or UTF-8 encoded string str to string. This is not suitable for embedding NULLs in strings.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_append_c.html b/libbson/1.23.2/bson_string_append_c.html new file mode 100644 index 0000000000000000000000000000000000000000..12a89a4d43a9edae7b1815e4c1fdd49c2cdb9dd9 --- /dev/null +++ b/libbson/1.23.2/bson_string_append_c.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_string_append_c() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_append_c()

    +
    +

    Synopsis

    +
    void
    +bson_string_append_c (bson_string_t *string, char str);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Appends c to the string builder string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_append_printf.html b/libbson/1.23.2/bson_string_append_printf.html new file mode 100644 index 0000000000000000000000000000000000000000..5ed3187fa320985995a0029ef4a03a025741f462 --- /dev/null +++ b/libbson/1.23.2/bson_string_append_printf.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_string_append_printf() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_append_printf()

    +
    +

    Synopsis

    +
    void
    +bson_string_append_printf (bson_string_t *string, const char *format, ...)
    +   BSON_GNUC_PRINTF (2, 3);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • string: A bson_string_t.

    • +
    • format: A printf style format string.

    • +
    +
    +
    +

    Description

    +

    Like bson_string_append() but formats a printf style string and then appends that to string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_append_unichar.html b/libbson/1.23.2/bson_string_append_unichar.html new file mode 100644 index 0000000000000000000000000000000000000000..ee71c7d0622737496211e02abbc1cff535b20641 --- /dev/null +++ b/libbson/1.23.2/bson_string_append_unichar.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_string_append_unichar() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_append_unichar()

    +
    +

    Synopsis

    +
    void
    +bson_string_append_unichar (bson_string_t *string, bson_unichar_t unichar);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Appends a unicode character to string. The character will be encoded into its multi-byte UTF-8 representation.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_free.html b/libbson/1.23.2/bson_string_free.html new file mode 100644 index 0000000000000000000000000000000000000000..654858cd18616bf92db73e2d7fffb1b02cec9a90 --- /dev/null +++ b/libbson/1.23.2/bson_string_free.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_string_free() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_free()

    +
    +

    Synopsis

    +
    char *
    +bson_string_free (bson_string_t *string, bool free_segment);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • string: A bson_string_t.

    • +
    • free_segment: A bool indicating whether string->str should be freed.

    • +
    +
    +
    +

    Description

    +

    Frees the bson_string_t structure and optionally string->str.

    +
    +
    +

    Returns

    +

    string->str if free_segment is false, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_new.html b/libbson/1.23.2/bson_string_new.html new file mode 100644 index 0000000000000000000000000000000000000000..b7f206033375cfef11f3e8308f80e8ab1d333a82 --- /dev/null +++ b/libbson/1.23.2/bson_string_new.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_string_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_new()

    +
    +

    Synopsis

    +
    bson_string_t *
    +bson_string_new (const char *str);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • str: A string to be copied or NULL.

    • +
    +
    +
    +

    Description

    +

    Creates a new string builder, which uses power-of-two growth of buffers. Use the various bson_string_append*() functions to append to the string.

    +
    +
    +

    Returns

    +

    A newly allocated bson_string_t that should be freed with bson_string_free() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_t.html b/libbson/1.23.2/bson_string_t.html new file mode 100644 index 0000000000000000000000000000000000000000..2268edd6ba84fad8ef07cd13c07d72cb996fb47a --- /dev/null +++ b/libbson/1.23.2/bson_string_t.html @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + bson_string_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_t

    +

    String Building Abstraction

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct {
    +   char *str;
    +   uint32_t len;
    +   uint32_t alloc;
    +} bson_string_t;
    +
    +
    +
    +
    +

    Description

    +

    bson_string_t is an abstraction for building strings. As chunks are added to the string, allocations are performed in powers of two.

    +

    This API is useful if you need to build UTF-8 encoded strings.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    bson_string_t *str;
    +
    +str = bson_string_new (NULL);
    +bson_string_append_printf (str, "%d %s %f\n", 0, "some string", 0.123);
    +printf ("%s\n", str->str);
    +
    +bson_string_free (str, true);
    +
    +
    +
    +

    Tip

    +

    You can call bson_string_free() with false if you would like to take ownership of str->str. Some APIs that do this might call return bson_string_free (str, false); after building the string.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_string_truncate.html b/libbson/1.23.2/bson_string_truncate.html new file mode 100644 index 0000000000000000000000000000000000000000..5da9ff0962f840472e28e8eee01ca5200737aac1 --- /dev/null +++ b/libbson/1.23.2/bson_string_truncate.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_string_truncate() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_string_truncate()

    +
    +

    Synopsis

    +
    void
    +bson_string_truncate (bson_string_t *string, uint32_t len);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • string: A bson_string_t.

    • +
    • len: The new length of the string, excluding the trailing \0.

    • +
    +
    +
    +

    Description

    +

    Truncates the string so that it is len bytes in length. This must be smaller or equal to the current length of the string.

    +

    A \0 byte will be placed where the end of the string occurs.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strncpy.html b/libbson/1.23.2/bson_strncpy.html new file mode 100644 index 0000000000000000000000000000000000000000..42192223294b8560dc3dad16bd64158e3128e098 --- /dev/null +++ b/libbson/1.23.2/bson_strncpy.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_strncpy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strncpy()

    +
    +

    Synopsis

    +
    void
    +bson_strncpy (char *dst, const char *src, size_t size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • dst: The destination buffer.

    • +
    • src: The src buffer.

    • +
    • size: The number of bytes to copy into dst, which must be at least that size.

    • +
    +
    +
    +

    Description

    +

    Copies up to size bytes from src into dst. dst must be at least size bytes in size. A trailing \0 is always set.

    +

    Does nothing if size is zero.

    +

    bson_strncpy matches the behavior of the C11 standard strncpy_s, rather than strncpy. This means that bson_strncpy always writes a null terminator to dst, even if dst is too short to fit the entire string from src. If there is additional space left in dst after copying src, bson_strncpy does not fill the remaining space with null characters.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strndup.html b/libbson/1.23.2/bson_strndup.html new file mode 100644 index 0000000000000000000000000000000000000000..626ea347aecb735a44c04fee1df635a61b7630ed --- /dev/null +++ b/libbson/1.23.2/bson_strndup.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_strndup() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strndup()

    +
    +

    Synopsis

    +
    char *
    +bson_strndup (const char *str, size_t n_bytes);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • str: A string to copy.

    • +
    • n_bytes: A size_t.

    • +
    +
    +
    +

    Description

    +

    Allocates a new string and copies up to n_bytes from str into it. A trailing \0 is always set.

    +
    +
    +

    Returns

    +

    A newly allocated string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_strnlen.html b/libbson/1.23.2/bson_strnlen.html new file mode 100644 index 0000000000000000000000000000000000000000..c54223773800a470c402606793d64e9e5d0fbfff --- /dev/null +++ b/libbson/1.23.2/bson_strnlen.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_strnlen() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_strnlen()

    +
    +

    Synopsis

    +
    size_t
    +bson_strnlen (const char *s, size_t maxlen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • s: A string.

    • +
    • maxlen: The maximum size of string to check.

    • +
    +
    +
    +

    Description

    +

    A portable version of strnlen().

    +
    +
    +

    Returns

    +

    The length of s in bytes or maxlen if no \0 was found.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_subtype_t.html b/libbson/1.23.2/bson_subtype_t.html new file mode 100644 index 0000000000000000000000000000000000000000..6a2c5846685cf4cb62e0ff1b76d03c418378ee8e --- /dev/null +++ b/libbson/1.23.2/bson_subtype_t.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + bson_subtype_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_subtype_t

    +

    Binary Field Subtype

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +
    +typedef enum {
    +   BSON_SUBTYPE_BINARY = 0x00,
    +   BSON_SUBTYPE_FUNCTION = 0x01,
    +   BSON_SUBTYPE_BINARY_DEPRECATED = 0x02,
    +   BSON_SUBTYPE_UUID_DEPRECATED = 0x03,
    +   BSON_SUBTYPE_UUID = 0x04,
    +   BSON_SUBTYPE_MD5 = 0x05,
    +   BSON_SUBTYPE_COLUMN = 0x07,
    +   BSON_SUBTYPE_USER = 0x80,
    +} bson_subtype_t;
    +
    +
    +
    +
    +

    Description

    +

    This enumeration contains the various subtypes that may be used in a binary field. See http://bsonspec.org for more information.

    +
    +
    +

    Functions

    +
    +
    +
    +
    +

    Example

    +
    bson_t doc = BSON_INITIALIZER;
    +
    +BSON_APPEND_BINARY (&doc, "binary", BSON_SUBTYPE_BINARY, data, data_len);
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_t.html b/libbson/1.23.2/bson_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f659af5b1a94260bc8d3f3ffb9a8b1e625f02ca7 --- /dev/null +++ b/libbson/1.23.2/bson_t.html @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + bson_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_t

    +

    BSON Document Abstraction

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +/**
    + * bson_empty:
    + * @b: a bson_t.
    + *
    + * Checks to see if @b is an empty BSON document. An empty BSON document is
    + * a 5 byte document which contains the length (4 bytes) and a single NUL
    + * byte indicating end of fields.
    + */
    +#define bson_empty(b) /* ... */
    +
    +/**
    + * bson_empty0:
    + *
    + * Like bson_empty() but treats NULL the same as an empty bson_t document.
    + */
    +#define bson_empty0(b) /* ... */
    +
    +/**
    + * bson_clear:
    + *
    + * Easily free a bson document and set it to NULL. Use like:
    + *
    + * bson_t *doc = bson_new();
    + * bson_clear (&doc);
    + * BSON_ASSERT (doc == NULL);
    + */
    +#define bson_clear(bptr) /* ... */
    +
    +/**
    + * BSON_MAX_SIZE:
    + *
    + * The maximum size in bytes of a BSON document.
    + */
    +#define BSON_MAX_SIZE /* ... */
    +
    +#define BSON_APPEND_ARRAY(b, key, val) \
    +   bson_append_array (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_ARRAY_BEGIN(b, key, child) \
    +   bson_append_array_begin (b, key, (int) strlen (key), child)
    +
    +#define BSON_APPEND_BINARY(b, key, subtype, val, len) \
    +   bson_append_binary (b, key, (int) strlen (key), subtype, val, len)
    +
    +#define BSON_APPEND_BOOL(b, key, val) \
    +   bson_append_bool (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_CODE(b, key, val) \
    +   bson_append_code (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_CODE_WITH_SCOPE(b, key, val, scope) \
    +   bson_append_code_with_scope (b, key, (int) strlen (key), val, scope)
    +
    +#define BSON_APPEND_DBPOINTER(b, key, coll, oid) \
    +   bson_append_dbpointer (b, key, (int) strlen (key), coll, oid)
    +
    +#define BSON_APPEND_DOCUMENT_BEGIN(b, key, child) \
    +   bson_append_document_begin (b, key, (int) strlen (key), child)
    +
    +#define BSON_APPEND_DOUBLE(b, key, val) \
    +   bson_append_double (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_DOCUMENT(b, key, val) \
    +   bson_append_document (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_INT32(b, key, val) \
    +   bson_append_int32 (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_INT64(b, key, val) \
    +   bson_append_int64 (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_MINKEY(b, key) \
    +   bson_append_minkey (b, key, (int) strlen (key))
    +
    +#define BSON_APPEND_DECIMAL128(b, key, val) \
    +   bson_append_decimal128 (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_MAXKEY(b, key) \
    +   bson_append_maxkey (b, key, (int) strlen (key))
    +
    +#define BSON_APPEND_NULL(b, key) bson_append_null (b, key, (int) strlen (key))
    +
    +#define BSON_APPEND_OID(b, key, val) \
    +   bson_append_oid (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_REGEX(b, key, val, opt) \
    +   bson_append_regex (b, key, (int) strlen (key), val, opt)
    +
    +#define BSON_APPEND_UTF8(b, key, val) \
    +   bson_append_utf8 (b, key, (int) strlen (key), val, (int) strlen (val))
    +
    +#define BSON_APPEND_SYMBOL(b, key, val) \
    +   bson_append_symbol (b, key, (int) strlen (key), val, (int) strlen (val))
    +
    +#define BSON_APPEND_TIME_T(b, key, val) \
    +   bson_append_time_t (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_TIMEVAL(b, key, val) \
    +   bson_append_timeval (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_DATE_TIME(b, key, val) \
    +   bson_append_date_time (b, key, (int) strlen (key), val)
    +
    +#define BSON_APPEND_TIMESTAMP(b, key, val, inc) \
    +   bson_append_timestamp (b, key, (int) strlen (key), val, inc)
    +
    +#define BSON_APPEND_UNDEFINED(b, key) \
    +   bson_append_undefined (b, key, (int) strlen (key))
    +
    +#define BSON_APPEND_VALUE(b, key, val) \
    +   bson_append_value (b, key, (int) strlen (key), (val))
    +
    +BSON_ALIGNED_BEGIN (128)
    +typedef struct {
    +   uint32_t flags;       /* Internal flags for the bson_t. */
    +   uint32_t len;         /* Length of BSON data. */
    +   uint8_t padding[120]; /* Padding for stack allocation. */
    +} bson_t BSON_ALIGNED_END (128);
    +
    +
    +
    +
    +

    Description

    +

    The bson_t structure represents a BSON document. This structure manages the underlying BSON encoded buffer. For mutable documents, it can append new data to the document.

    +
    +
    +

    Performance Notes

    +

    The bson_t structure attempts to use an inline allocation within the structure to speed up performance of small documents. When this internal buffer has been exhausted, a heap allocated buffer will be dynamically allocated. Therefore, it is essential to call bson_destroy() on allocated documents.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    static void
    +create_on_heap (void)
    +{
    +   bson_t *b = bson_new ();
    +
    +   BSON_APPEND_INT32 (b, "foo", 123);
    +   BSON_APPEND_UTF8 (b, "bar", "foo");
    +   BSON_APPEND_DOUBLE (b, "baz", 1.23f);
    +
    +   bson_destroy (b);
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_type_t.html b/libbson/1.23.2/bson_type_t.html new file mode 100644 index 0000000000000000000000000000000000000000..4b76cb14d0cfa8174dc50b4edc7e8edbb5d69651 --- /dev/null +++ b/libbson/1.23.2/bson_type_t.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_type_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_type_t

    +

    BSON Type Enumeration

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef enum {
    +   BSON_TYPE_EOD = 0x00,
    +   BSON_TYPE_DOUBLE = 0x01,
    +   BSON_TYPE_UTF8 = 0x02,
    +   BSON_TYPE_DOCUMENT = 0x03,
    +   BSON_TYPE_ARRAY = 0x04,
    +   BSON_TYPE_BINARY = 0x05,
    +   BSON_TYPE_UNDEFINED = 0x06,
    +   BSON_TYPE_OID = 0x07,
    +   BSON_TYPE_BOOL = 0x08,
    +   BSON_TYPE_DATE_TIME = 0x09,
    +   BSON_TYPE_NULL = 0x0A,
    +   BSON_TYPE_REGEX = 0x0B,
    +   BSON_TYPE_DBPOINTER = 0x0C,
    +   BSON_TYPE_CODE = 0x0D,
    +   BSON_TYPE_SYMBOL = 0x0E,
    +   BSON_TYPE_CODEWSCOPE = 0x0F,
    +   BSON_TYPE_INT32 = 0x10,
    +   BSON_TYPE_TIMESTAMP = 0x11,
    +   BSON_TYPE_INT64 = 0x12,
    +   BSON_TYPE_DECIMAL128 = 0x13,
    +   BSON_TYPE_MAXKEY = 0x7F,
    +   BSON_TYPE_MINKEY = 0xFF,
    +} bson_type_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_type_t enumeration contains all of the types from the BSON Specification. It can be used to determine the type of a field at runtime.

    +
    +
    +

    Functions

    +
    +
    +
    +
    +

    Example

    +
    bson_iter_t iter;
    +
    +if (bson_iter_init_find (&iter, doc, "foo") &&
    +    (BSON_TYPE_INT32 == bson_iter_type (&iter))) {
    +   printf ("'foo' is an int32.\n");
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_uint32_to_string.html b/libbson/1.23.2/bson_uint32_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..39db4edee0bca18bb7630e2718d9aeca7fe571b7 --- /dev/null +++ b/libbson/1.23.2/bson_uint32_to_string.html @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + bson_uint32_to_string() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_uint32_to_string()

    +
    +

    Synopsis

    +
    size_t
    +bson_uint32_to_string (uint32_t value,
    +                       const char **strptr,
    +                       char *str,
    +                       size_t size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • value: A uint32_t.

    • +
    • strptr: A location for the resulting string pointer.

    • +
    • str: A location to buffer the string.

    • +
    • size: A size_t containing the size of str.

    • +
    +
    +
    +

    Description

    +

    Converts value to a string.

    +

    If value is from 0 to 999, it will use a constant string in the data section of the library.

    +

    If not, a string will be formatted using str and snprintf().

    +

    strptr will always be set. It will either point to str or a constant string. Use this as your key.

    +
    +
    +

    Array Element Key Building

    +

    Each element in a BSON array has a monotonic string key like "0", "1", etc. This function is optimized for generating such string keys.

    +
    char str[16];
    +const char *key;
    +uint32_t i;
    +
    +for (i = 0; i < 10; i++) {
    +   bson_uint32_to_string (i, &key, str, sizeof str);
    +   printf ("Key: %s\n", key);
    +}
    +
    +
    +
    +
    +

    Returns

    +

    The number of bytes in the resulting string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_unichar_t.html b/libbson/1.23.2/bson_unichar_t.html new file mode 100644 index 0000000000000000000000000000000000000000..61d0046b62c8c266d7ce69e2b1d489f4d116bf35 --- /dev/null +++ b/libbson/1.23.2/bson_unichar_t.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_unichar_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_unichar_t

    +

    Unicode Character Abstraction

    +
    +

    Synopsis

    +
    typedef uint32_t bson_unichar_t;
    +
    +
    +
    +
    +

    Description

    +

    bson_unichar_t provides an abstraction on a single unicode character. It is the 32-bit representation of a character. As UTF-8 can contain multi-byte characters, this should be used when iterating through UTF-8 text.

    +
    +
    +

    Functions

    +
    +
    +
    +
    +

    Example

    +
    static void
    +print_each_char (const char *str)
    +{
    +   bson_unichar_t c;
    +
    +   for (; *str; str = bson_utf8_next_char (str)) {
    +      c = bson_utf8_get_char (str);
    +      printf ("The numberic value is %u.\n", (unsigned) c);
    +   }
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_utf8_escape_for_json.html b/libbson/1.23.2/bson_utf8_escape_for_json.html new file mode 100644 index 0000000000000000000000000000000000000000..2d47b1474584950fbe6a828c0e46902b7e6de7dd --- /dev/null +++ b/libbson/1.23.2/bson_utf8_escape_for_json.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_utf8_escape_for_json() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_utf8_escape_for_json()

    +
    +

    Synopsis

    +
    char *
    +bson_utf8_escape_for_json (const char *utf8, ssize_t utf8_len);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • utf8: A UTF-8 encoded string.

    • +
    • utf8_len: The length of utf8 in bytes or -1 if it is NULL terminated.

    • +
    +
    +
    +

    Description

    +

    Allocates a new string matching utf8 except that special +characters in JSON are escaped. The resulting string is also +UTF-8 encoded.

    +

    Both “ and \ characters will be backslash-escaped. If a NUL +byte is found before utf8_len bytes, it is converted to +“\u0000”. Other non-ASCII characters in the input are preserved.

    +
    +
    +

    Returns

    +

    A newly allocated string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_utf8_from_unichar.html b/libbson/1.23.2/bson_utf8_from_unichar.html new file mode 100644 index 0000000000000000000000000000000000000000..f431320d99b40c9451948e255b3c5254ae2c5f6d --- /dev/null +++ b/libbson/1.23.2/bson_utf8_from_unichar.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_utf8_from_unichar() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_utf8_from_unichar()

    +
    +

    Synopsis

    +
    void
    +bson_utf8_from_unichar (bson_unichar_t unichar, char utf8[6], uint32_t *len);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • unichar: A bson_unichar_t.

    • +
    • utf8: A location for the utf8 sequence.

    • +
    • len: A location for the number of bytes in the resulting utf8 sequence.

    • +
    +
    +
    +

    Description

    +

    Converts a single unicode character to a multi-byte UTF-8 sequence. The result is stored in utf8 and the number of bytes used in len.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_utf8_get_char.html b/libbson/1.23.2/bson_utf8_get_char.html new file mode 100644 index 0000000000000000000000000000000000000000..87263cfb2b580e683acadbdab0feb834b151530c --- /dev/null +++ b/libbson/1.23.2/bson_utf8_get_char.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_utf8_get_char() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_utf8_get_char()

    +
    +

    Synopsis

    +
    bson_unichar_t
    +bson_utf8_get_char (const char *utf8);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • utf8: A UTF-8 encoded string.

    • +
    +
    +
    +

    Description

    +

    Converts the current character in a UTF-8 sequence to a bson_unichar_t, the 32-bit representation of the multi-byte character.

    +
    +
    +

    Returns

    +

    A bson_unichar_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_utf8_next_char.html b/libbson/1.23.2/bson_utf8_next_char.html new file mode 100644 index 0000000000000000000000000000000000000000..a9a7b80eb377319ba13a47ce9c545690e2777d2d --- /dev/null +++ b/libbson/1.23.2/bson_utf8_next_char.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_utf8_next_char() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_utf8_next_char()

    +
    +

    Synopsis

    +
    const char *
    +bson_utf8_next_char (const char *utf8);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • utf8: A UTF-8 encoded string.

    • +
    +
    +
    +

    Description

    +

    Advances within utf8 to the next UTF-8 character, which may be multiple bytes offset from utf8. A pointer to the next character is returned.

    +

    It is invalid to call this function on a string whose current character is \0.

    +
    +
    +

    Returns

    +

    A pointer to the beginning of the next character in the UTF-8 encoded string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_utf8_validate.html b/libbson/1.23.2/bson_utf8_validate.html new file mode 100644 index 0000000000000000000000000000000000000000..579c80afa6d31a05a2523c4f702b2f65b73a0806 --- /dev/null +++ b/libbson/1.23.2/bson_utf8_validate.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_utf8_validate() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_utf8_validate()

    +
    +

    Synopsis

    +
    bool
    +bson_utf8_validate (const char *utf8, size_t utf8_len, bool allow_null);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • utf8: A string to verify.

    • +
    • utf8_len: The length of utf8 in bytes.

    • +
    • allow_null: A bool indicating that embedded \0 bytes are allowed.

    • +
    +
    +
    +

    Description

    +

    Validates that the content within utf8 is valid UTF-8 (by the RFC 3629 standard). If allow_null is true, then embedded NULL bytes are allowed (\0).

    +
    +
    +

    Returns

    +

    true if utf8 contains valid UTF-8.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_validate.html b/libbson/1.23.2/bson_validate.html new file mode 100644 index 0000000000000000000000000000000000000000..b00dbe86f3d0ebb4782ef9c390318b8a81d54070 --- /dev/null +++ b/libbson/1.23.2/bson_validate.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_validate() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_validate()

    +
    +

    Synopsis

    +
    bool
    +bson_validate (const bson_t *bson, bson_validate_flags_t flags, size_t *offset);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • flags: A bitwise-or of all desired bson_validate_flags_t.

    • +
    • offset: A location for the offset within bson where the error occurred.

    • +
    +
    +
    +

    Description

    +

    Validates a BSON document by walking through the document and inspecting the keys and values for valid content.

    +

    You can modify how the validation occurs through the use of the flags parameter, see bson_validate_with_error() for details.

    +
    +
    +

    Returns

    +

    Returns true if bson is valid; otherwise false and offset is set to the byte offset where the error was detected.

    +
    +

    See also

    + +
    +
    bson_visitor_t can be used for custom validation, Example Custom Validation.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_validate_with_error.html b/libbson/1.23.2/bson_validate_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..51881aeb85149cb77b40fae88aabdba8f8d7ed4d --- /dev/null +++ b/libbson/1.23.2/bson_validate_with_error.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + bson_validate_with_error() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_validate_with_error()

    +
    +

    Synopsis

    +
    typedef enum {
    +   BSON_VALIDATE_NONE = 0,
    +   BSON_VALIDATE_UTF8 = (1 << 0),
    +   BSON_VALIDATE_DOLLAR_KEYS = (1 << 1),
    +   BSON_VALIDATE_DOT_KEYS = (1 << 2),
    +   BSON_VALIDATE_UTF8_ALLOW_NULL = (1 << 3),
    +   BSON_VALIDATE_EMPTY_KEYS = (1 << 4),
    +} bson_validate_flags_t;
    +
    +bool
    +bson_validate_with_error (const bson_t *bson,
    +                          bson_validate_flags_t flags,
    +                          bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bson: A bson_t.

    • +
    • flags: A bitwise-or of all desired validation flags.

    • +
    • error: Optional bson_error_t.

    • +
    +
    +
    +

    Description

    +

    Validates a BSON document by walking through the document and inspecting the keys and values for valid content.

    +

    You can modify how the validation occurs through the use of the flags parameter. A description of their effect is below.

    +
      +
    • BSON_VALIDATE_NONE Basic validation of BSON length and structure.

    • +
    • BSON_VALIDATE_UTF8 All keys and string values are checked for invalid UTF-8.

    • +
    • BSON_VALIDATE_UTF8_ALLOW_NULL String values are allowed to have embedded NULL bytes.

    • +
    • BSON_VALIDATE_DOLLAR_KEYS Prohibit keys that start with $ outside of a “DBRef” subdocument.

    • +
    • BSON_VALIDATE_DOT_KEYS Prohibit keys that contain . anywhere in the string.

    • +
    • BSON_VALIDATE_EMPTY_KEYS Prohibit zero-length keys.

    • +
    +
    +
    +

    Returns

    +

    Returns true if bson is valid; otherwise false and error is filled out.

    +

    The bson_error_t domain is set to BSON_ERROR_INVALID. Its code is set to one of the bson_validate_flags_t flags indicating which validation failed; for example, if a key contains invalid UTF-8, then the code is set to BSON_VALIDATE_UTF8, but if the basic structure of the BSON document is corrupt, the code is set to BSON_VALIDATE_NONE. The error message is filled out, and gives more detail if possible.

    +
    +

    See also

    + +
    +
    bson_visitor_t can be used for custom validation, Example Custom Validation.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_value_copy.html b/libbson/1.23.2/bson_value_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..9bf188e994e132e76fde9f4613e758739141ced7 --- /dev/null +++ b/libbson/1.23.2/bson_value_copy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_value_copy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_value_copy()

    +
    +

    Synopsis

    +
    void
    +bson_value_copy (const bson_value_t *src, bson_value_t *dst);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function will copy the boxed content in src into dst. dst must be freed with bson_value_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_value_destroy.html b/libbson/1.23.2/bson_value_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..804c39bece9744a13a59e2756026d7db99dd01bd --- /dev/null +++ b/libbson/1.23.2/bson_value_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_value_destroy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_value_destroy()

    +
    +

    Synopsis

    +
    void
    +bson_value_destroy (bson_value_t *value);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Releases any resources associated with value. Does nothing if value is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_value_t.html b/libbson/1.23.2/bson_value_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c11a72ab758d94ce850d07192acc8aec83f84130 --- /dev/null +++ b/libbson/1.23.2/bson_value_t.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + bson_value_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_value_t

    +

    BSON Boxed Container Type

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct _bson_value_t {
    +   bson_type_t value_type;
    +   union {
    +      bson_oid_t v_oid;
    +      int64_t v_int64;
    +      int32_t v_int32;
    +      int8_t v_int8;
    +      double v_double;
    +      bool v_bool;
    +      int64_t v_datetime;
    +      struct {
    +         uint32_t timestamp;
    +         uint32_t increment;
    +      } v_timestamp;
    +      struct {
    +         uint32_t len;
    +         char *str;
    +      } v_utf8;
    +      struct {
    +         uint32_t data_len;
    +         uint8_t *data;
    +      } v_doc;
    +      struct {
    +         uint32_t data_len;
    +         uint8_t *data;
    +         bson_subtype_t subtype;
    +      } v_binary;
    +      struct {
    +         char *regex;
    +         char *options;
    +      } v_regex;
    +      struct {
    +         char *collection;
    +         uint32_t collection_len;
    +         bson_oid_t oid;
    +      } v_dbpointer;
    +      struct {
    +         uint32_t code_len;
    +         char *code;
    +      } v_code;
    +      struct {
    +         uint32_t code_len;
    +         char *code;
    +         uint32_t scope_len;
    +         uint8_t *scope_data;
    +      } v_codewscope;
    +      struct {
    +         uint32_t len;
    +         char *symbol;
    +      } v_symbol;
    +   } value;
    +} bson_value_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_value_t structure is a boxed type for encapsulating a runtime determined type.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    const bson_value_t *value;
    +
    +value = bson_iter_value (&iter);
    +
    +if (value->value_type == BSON_TYPE_INT32) {
    +   printf ("%d\n", value->value.v_int32);
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_visitor_t.html b/libbson/1.23.2/bson_visitor_t.html new file mode 100644 index 0000000000000000000000000000000000000000..138a5f4837946e5a9b88718b4d9f014e3248eceb --- /dev/null +++ b/libbson/1.23.2/bson_visitor_t.html @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + bson_visitor_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_visitor_t

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct {
    +   /* run before / after descending into a document */
    +   bool (*visit_before) (const bson_iter_t *iter, const char *key, void *data);
    +   bool (*visit_after) (const bson_iter_t *iter, const char *key, void *data);
    +   /* corrupt BSON, or unsupported type and visit_unsupported_type not set */
    +   void (*visit_corrupt) (const bson_iter_t *iter, void *data);
    +   /* normal bson field callbacks */
    +   bool (*visit_double) (const bson_iter_t *iter,
    +                         const char *key,
    +                         double v_double,
    +                         void *data);
    +   bool (*visit_utf8) (const bson_iter_t *iter,
    +                       const char *key,
    +                       size_t v_utf8_len,
    +                       const char *v_utf8,
    +                       void *data);
    +   bool (*visit_document) (const bson_iter_t *iter,
    +                           const char *key,
    +                           const bson_t *v_document,
    +                           void *data);
    +   bool (*visit_array) (const bson_iter_t *iter,
    +                        const char *key,
    +                        const bson_t *v_array,
    +                        void *data);
    +   bool (*visit_binary) (const bson_iter_t *iter,
    +                         const char *key,
    +                         bson_subtype_t v_subtype,
    +                         size_t v_binary_len,
    +                         const uint8_t *v_binary,
    +                         void *data);
    +   /* normal field with deprecated "Undefined" BSON type */
    +   bool (*visit_undefined) (const bson_iter_t *iter,
    +                            const char *key,
    +                            void *data);
    +   bool (*visit_oid) (const bson_iter_t *iter,
    +                      const char *key,
    +                      const bson_oid_t *v_oid,
    +                      void *data);
    +   bool (*visit_bool) (const bson_iter_t *iter,
    +                       const char *key,
    +                       bool v_bool,
    +                       void *data);
    +   bool (*visit_date_time) (const bson_iter_t *iter,
    +                            const char *key,
    +                            int64_t msec_since_epoch,
    +                            void *data);
    +   bool (*visit_null) (const bson_iter_t *iter, const char *key, void *data);
    +   bool (*visit_regex) (const bson_iter_t *iter,
    +                        const char *key,
    +                        const char *v_regex,
    +                        const char *v_options,
    +                        void *data);
    +   bool (*visit_dbpointer) (const bson_iter_t *iter,
    +                            const char *key,
    +                            size_t v_collection_len,
    +                            const char *v_collection,
    +                            const bson_oid_t *v_oid,
    +                            void *data);
    +   bool (*visit_code) (const bson_iter_t *iter,
    +                       const char *key,
    +                       size_t v_code_len,
    +                       const char *v_code,
    +                       void *data);
    +   bool (*visit_symbol) (const bson_iter_t *iter,
    +                         const char *key,
    +                         size_t v_symbol_len,
    +                         const char *v_symbol,
    +                         void *data);
    +   bool (*visit_codewscope) (const bson_iter_t *iter,
    +                             const char *key,
    +                             size_t v_code_len,
    +                             const char *v_code,
    +                             const bson_t *v_scope,
    +                             void *data);
    +   bool (*visit_int32) (const bson_iter_t *iter,
    +                        const char *key,
    +                        int32_t v_int32,
    +                        void *data);
    +   bool (*visit_timestamp) (const bson_iter_t *iter,
    +                            const char *key,
    +                            uint32_t v_timestamp,
    +                            uint32_t v_increment,
    +                            void *data);
    +   bool (*visit_int64) (const bson_iter_t *iter,
    +                        const char *key,
    +                        int64_t v_int64,
    +                        void *data);
    +   bool (*visit_maxkey) (const bson_iter_t *iter, const char *key, void *data);
    +   bool (*visit_minkey) (const bson_iter_t *iter, const char *key, void *data);
    +   /* if set, called instead of visit_corrupt when an apparently valid BSON
    +    * includes an unrecognized field type (reading future version of BSON) */
    +   void (*visit_unsupported_type) (const bson_iter_t *iter,
    +                                   const char *key,
    +                                   uint32_t type_code,
    +                                   void *data);
    +   bool (*visit_decimal128) (const bson_iter_t *iter,
    +                             const char *key,
    +                             const bson_decimal128_t *v_decimal128,
    +                             void *data);
    +
    +   void *padding[7];
    +} bson_visitor_t bson_visitor_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_visitor_t structure provides a series of callbacks that can be called while iterating a BSON document. This may simplify the conversion of a bson_t to a higher level language structure.

    +

    If the optional callback visit_unsupported_type is set, it is called instead of visit_corrupt in the specific case of an unrecognized field type. (Parsing is aborted in either case.) Use this callback to report an error like “unrecognized type” instead of simply “corrupt BSON”. This future-proofs code that may use an older version of libbson to parse future BSON formats.

    +
    +
    +

    Functions

    +
    +
    +
    +
    +

    Basic Example

    +
    #include <bson/bson.h>
    +#include <stdio.h>
    +
    +static bool
    +my_visit_before (const bson_iter_t *iter, const char *key, void *data)
    +{
    +   int *count = (int *) data;
    +
    +   (*count)++;
    +
    +   /* returning true stops further iteration of the document */
    +
    +   return false;
    +}
    +
    +static void
    +count_fields (bson_t *doc)
    +{
    +   bson_visitor_t visitor = {0};
    +   bson_iter_t iter;
    +   int count = 0;
    +
    +   visitor.visit_before = my_visit_before;
    +
    +   if (bson_iter_init (&iter, doc)) {
    +      bson_iter_visit_all (&iter, &visitor, &count);
    +   }
    +
    +   printf ("Found %d fields.\n", count);
    +}
    +
    +
    +

    The example below demonstrates how to set your own callbacks to provide information about the location of corrupt or unsupported BSON document entries.

    +
    +
    +

    Example Corruption Check

    +
    #include <bson/bson.h>
    +#include <stdio.h>
    +
    +typedef struct {
    +   ssize_t *err_offset;
    +} my_state_t;
    +
    +static void
    +my_visit_corrupt (const bson_iter_t *iter, void *data)
    +{
    +   *(((my_state_t *) data)->err_offset) = iter->off;
    +}
    +
    +static void
    +my_visit_unsupported_type (const bson_iter_t *iter,
    +                           const char *key,
    +                           uint32_t type_code,
    +                           void *data)
    +{
    +   *(((my_state_t *) data)->err_offset) = iter->off;
    +}
    +
    +static void
    +find_error_location (bson_t *doc)
    +{
    +   bson_visitor_t visitors = {0};
    +   bson_iter_t iter;
    +   my_state_t state;
    +   ssize_t err_offset = -1;
    +
    +   visitors.visit_corrupt = my_visit_corrupt;
    +   visitors.visit_unsupported_type = my_visit_unsupported_type;
    +   /* provide additional visitors as needed based on your requirements */
    +   state.err_offset = &err_offset;
    +
    +   if (!bson_iter_init (&iter, doc)) {
    +      printf ("Could not initialize iterator!");
    +      exit (1);
    +   }
    +
    +   if (bson_iter_visit_all (&iter, &visitors, &state) ||
    +       err_offset != -1) {
    +      printf ("Found error at offset %d.\n", err_offset);
    +   } else {
    +      printf ("BSON document had no errors.\n");
    +   }
    +}
    +
    +
    +

    The example below demonstrates how to use a visitor to validate a BSON document’s maximum depth.

    +
    +
    +

    Example Custom Validation

    +
    +
    bson-check-depth.c
    +
    /* Reports the maximum nested depth of a BSON document. */
    +#include <bson/bson.h>
    +
    +#include <assert.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +typedef struct {
    +   uint32_t depth;
    +   int max_depth;
    +   bool valid;
    +} check_depth_t;
    +
    +bool
    +_check_depth_document (const bson_iter_t *iter,
    +                       const char *key,
    +                       const bson_t *v_document,
    +                       void *data);
    +
    +static const bson_visitor_t check_depth_funcs = {
    +   NULL,
    +   NULL,
    +   NULL,
    +   NULL,
    +   NULL,
    +   _check_depth_document,
    +   _check_depth_document,
    +   NULL,
    +};
    +
    +bool
    +_check_depth_document (const bson_iter_t *iter,
    +                       const char *key,
    +                       const bson_t *v_document,
    +                       void *data)
    +{
    +   check_depth_t *state = (check_depth_t *) data;
    +   bson_iter_t child;
    +
    +   BSON_UNUSED (iter);
    +   BSON_UNUSED (key);
    +
    +   if (!bson_iter_init (&child, v_document)) {
    +      fprintf (stderr, "corrupt\n");
    +      return true; /* cancel */
    +   }
    +
    +   state->depth++;
    +   if (state->depth > state->max_depth) {
    +      state->valid = false;
    +      return true; /* cancel */
    +   }
    +
    +   bson_iter_visit_all (&child, &check_depth_funcs, state);
    +   state->depth--;
    +   return false; /* continue */
    +}
    +
    +void
    +check_depth (const bson_t *bson, int max_depth)
    +{
    +   bson_iter_t iter;
    +   check_depth_t state = {0};
    +
    +   if (!bson_iter_init (&iter, bson)) {
    +      fprintf (stderr, "corrupt\n");
    +   }
    +
    +   state.valid = true;
    +   state.max_depth = max_depth;
    +   _check_depth_document (&iter, NULL, bson, &state);
    +   if (!state.valid) {
    +      printf ("document exceeds maximum depth of %d\n", state.max_depth);
    +   } else {
    +      char *as_json = bson_as_canonical_extended_json (bson, NULL);
    +      printf ("document %s ", as_json);
    +      printf ("is valid\n");
    +      bson_free (as_json);
    +   }
    +}
    +
    +int
    +main (int argc, char **argv)
    +{
    +   bson_reader_t *bson_reader;
    +   const bson_t *bson;
    +   bool reached_eof;
    +   char *filename;
    +   bson_error_t error;
    +   int max_depth;
    +
    +   if (argc != 3) {
    +      fprintf (stderr, "usage: %s FILE MAX_DEPTH\n", argv[0]);
    +      fprintf (stderr, "Checks that the depth of the BSON contained in FILE\n");
    +      fprintf (stderr, "does not exceed MAX_DEPTH\n");
    +   }
    +
    +   filename = argv[1];
    +   max_depth = atoi (argv[2]);
    +   bson_reader = bson_reader_new_from_file (filename, &error);
    +   if (!bson_reader) {
    +      printf ("could not read %s: %s\n", filename, error.message);
    +      return 1;
    +   }
    +
    +   while ((bson = bson_reader_read (bson_reader, &reached_eof))) {
    +      check_depth (bson, max_depth);
    +   }
    +
    +   if (!reached_eof) {
    +      printf ("error reading BSON\n");
    +   }
    +
    +   bson_reader_destroy (bson_reader);
    +   return 0;
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_vsnprintf.html b/libbson/1.23.2/bson_vsnprintf.html new file mode 100644 index 0000000000000000000000000000000000000000..30103dc2899cd2d14b9de928553125952eb0b558 --- /dev/null +++ b/libbson/1.23.2/bson_vsnprintf.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_vsnprintf() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_vsnprintf()

    +
    +

    Synopsis

    +
    int
    +bson_vsnprintf (char *str, size_t size, const char *format, va_list ap)
    +   BSON_GNUC_PRINTF (3, 0);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • str: A location for the resulting string.

    • +
    • size: The size of str in bytes.

    • +
    • format: A printf style format string.

    • +
    • ap: A va_list of parameters for the format.

    • +
    +
    +
    +

    Description

    +

    Like bson_snprintf() but allows for variadic parameters.

    +
    +
    +

    Returns

    +

    The number of bytes written to str excluding the \0 byte.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_writer_begin.html b/libbson/1.23.2/bson_writer_begin.html new file mode 100644 index 0000000000000000000000000000000000000000..f9a111e2ee5efa4f2f491701a3211bed5d994c57 --- /dev/null +++ b/libbson/1.23.2/bson_writer_begin.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_writer_begin() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_writer_begin()

    +
    +

    Synopsis

    +
    bool
    +bson_writer_begin (bson_writer_t *writer, bson_t **bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Begins writing a new document. The caller may use the bson structure to write out a new BSON document. When completed, the caller must call either bson_writer_end() or bson_writer_rollback().

    +
    +
    +

    Returns

    +

    true if there was space in the underlying buffers to begin the document.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_writer_destroy.html b/libbson/1.23.2/bson_writer_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..80e5bfb23a76dfb64214a9a47d60d24d7692322a --- /dev/null +++ b/libbson/1.23.2/bson_writer_destroy.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_writer_destroy() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_writer_destroy()

    +
    +

    Synopsis

    +
    void
    +bson_writer_destroy (bson_writer_t *writer);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Cleanup after writer and release any allocated memory. Does nothing if writer is NULL. Note that the buffer supplied to bson_writer_new() is NOT freed from this method. The caller is responsible for that.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_writer_end.html b/libbson/1.23.2/bson_writer_end.html new file mode 100644 index 0000000000000000000000000000000000000000..292214131d3a93d82b27c4c1ecb2b173813c3ebc --- /dev/null +++ b/libbson/1.23.2/bson_writer_end.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_writer_end() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_writer_end()

    +
    +

    Synopsis

    +
    void
    +bson_writer_end (bson_writer_t *writer);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Complete writing of a bson_writer_t to the buffer supplied.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_writer_get_length.html b/libbson/1.23.2/bson_writer_get_length.html new file mode 100644 index 0000000000000000000000000000000000000000..e9d0fb4acca1fa0704322568df2806cbc980b38a --- /dev/null +++ b/libbson/1.23.2/bson_writer_get_length.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_writer_get_length() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_writer_get_length()

    +
    +

    Synopsis

    +
    size_t
    +bson_writer_get_length (bson_writer_t *writer);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the current length of the content written by the buffer (including the initial offset). This includes a partly written document currently being written.

    +

    This is useful if you want to check to see if you’ve passed a given memory boundary that cannot be sent in a packet. See bson_writer_rollback() to abort the current document being written.

    +
    +
    +

    Returns

    +

    The length of the underlying buffer.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_writer_new.html b/libbson/1.23.2/bson_writer_new.html new file mode 100644 index 0000000000000000000000000000000000000000..e386a999cad8c7c5d968993f3239116fe577406d --- /dev/null +++ b/libbson/1.23.2/bson_writer_new.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_writer_new() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_writer_new()

    +
    +

    Synopsis

    +
    bson_writer_t *
    +bson_writer_new (uint8_t **buf,
    +                 size_t *buflen,
    +                 size_t offset,
    +                 bson_realloc_func realloc_func,
    +                 void *realloc_func_ctx);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • buf: A uint8_t.

    • +
    • buflen: A size_t.

    • +
    • offset: A size_t.

    • +
    • realloc_func: A bson_realloc_func.

    • +
    • realloc_func_ctx: A bson_realloc_func.

    • +
    +
    +
    +

    Description

    +

    Creates a new instance of bson_writer_t using the buffer, length, offset, and _realloc()_ function supplied.

    +

    The caller is expected to clean up the structure when finished using bson_writer_destroy().

    +
    +
    +

    Returns

    +

    A newly allocated bson_writer_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_writer_rollback.html b/libbson/1.23.2/bson_writer_rollback.html new file mode 100644 index 0000000000000000000000000000000000000000..7a4d2e8ea231c2f15f33a0d9891f0e1916266bc7 --- /dev/null +++ b/libbson/1.23.2/bson_writer_rollback.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_writer_rollback() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_writer_rollback()

    +
    +

    Synopsis

    +
    void
    +bson_writer_rollback (bson_writer_t *writer);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Abort the appending of the current bson_t to the memory region managed by writer. This is useful if you detected that you went past a particular memory limit. For example, MongoDB has 48MB message limits.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_writer_t.html b/libbson/1.23.2/bson_writer_t.html new file mode 100644 index 0000000000000000000000000000000000000000..d516a0b0e04ef219a5d6f6c8d1609d998da0420b --- /dev/null +++ b/libbson/1.23.2/bson_writer_t.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + bson_writer_t — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_writer_t

    +

    Bulk BSON serialization Abstraction

    +
    +

    Synopsis

    +
    #include <bson/bson.h>
    +
    +typedef struct _bson_writer_t bson_writer_t;
    +
    +bson_writer_t *
    +bson_writer_new (uint8_t **buf,
    +                 size_t *buflen,
    +                 size_t offset,
    +                 bson_realloc_func realloc_func,
    +                 void *realloc_func_ctx);
    +void
    +bson_writer_destroy (bson_writer_t *writer);
    +
    +
    +
    +
    +

    Description

    +

    The bson_writer_t API provides an abstraction for serializing many BSON documents to a single memory region. The memory region may be dynamically allocated and re-allocated as more memory is demanded. This can be useful when building network packets from a high-level language. For example, you can serialize a Python Dictionary directly to a single buffer destined for a TCP packet.

    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_writer_t *writer;
    +   uint8_t *buf = NULL;
    +   size_t buflen = 0;
    +   bson_t *doc;
    +
    +   writer = bson_writer_new (&buf, &buflen, 0, bson_realloc_ctx, NULL);
    +
    +   for (i = 0; i < 1000; i++) {
    +      bson_writer_begin (writer, &doc);
    +      BSON_APPEND_INT32 (&doc, "i", i);
    +      bson_writer_end (writer);
    +   }
    +
    +   bson_writer_destroy (writer);
    +
    +   bson_free (buf);
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/bson_zero_free.html b/libbson/1.23.2/bson_zero_free.html new file mode 100644 index 0000000000000000000000000000000000000000..bd913d31a663cb05094f67055750605aae49095c --- /dev/null +++ b/libbson/1.23.2/bson_zero_free.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_zero_free() — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_zero_free()

    +
    +

    Synopsis

    +
    void
    +bson_zero_free (void *mem, size_t size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • mem: A memory region.

    • +
    • size: The size of mem.

    • +
    +
    +
    +

    Description

    +

    This function behaves like bson_free() except that it zeroes the memory first. This can be useful if you are storing passwords or other similarly important data. Note that if it truly is important, you probably want a page protected with mlock() as well to prevent it swapping to disk.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/character_and_string_routines.html b/libbson/1.23.2/character_and_string_routines.html new file mode 100644 index 0000000000000000000000000000000000000000..bc265500a030ad30003bff4892fac53fcfb3ff36 --- /dev/null +++ b/libbson/1.23.2/character_and_string_routines.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + Character and String Routines — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libbson/1.23.2/creating.html b/libbson/1.23.2/creating.html new file mode 100644 index 0000000000000000000000000000000000000000..0f5ae4b4f49697111bafb68234c8ebe8cbbaaca4 --- /dev/null +++ b/libbson/1.23.2/creating.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + Creating a BSON Document — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Creating a BSON Document

    +
    +

    The bson_t structure

    +

    BSON documents are created using the bson_t structure. This structure encapsulates the necessary logic for encoding using the BSON Specification. At the core, bson_t is a buffer manager and set of encoding routines.

    +
    +

    Tip

    +

    BSON documents can live on the stack or the heap based on the performance needs or preference of the consumer.

    +
    +

    Let’s start by creating a new BSON document on the stack. Whenever using libbson, make sure you #include <bson/bson.h>.

    +
    bson_t b;
    +
    +bson_init (&b);
    +
    +
    +

    This creates an empty document. In JSON, this would be the same as {}.

    +

    We can now proceed to adding items to the BSON document. A variety of functions prefixed with bson_append_ can be used based on the type of field you want to append. Let’s append a UTF-8 encoded string.

    +
    bson_append_utf8 (&b, "key", -1, "value", -1);
    +
    +
    +

    Notice the two -1 parameters. The first indicates that the length of key in bytes should be determined with strlen(). Alternatively, we could have passed the number 3. The same goes for the second -1, but for value.

    +

    Libbson provides macros to make this less tedious when using string literals. The following two appends are identical.

    +
    bson_append_utf8 (&b, "key", -1, "value", -1);
    +BSON_APPEND_UTF8 (&b, "key", "value");
    +
    +
    +

    Now let’s take a look at an example that adds a few different field types to a BSON document.

    +
    bson_t b = BSON_INITIALIZER;
    +
    +BSON_APPEND_INT32 (&b, "a", 1);
    +BSON_APPEND_UTF8 (&b, "hello", "world");
    +BSON_APPEND_BOOL (&b, "bool", true);
    +
    +
    +

    Notice that we omitted the call to bson_init(). By specifying BSON_INITIALIZER we can remove the need to initialize the structure to a base state.

    +
    +
    +

    Sub-Documents and Sub-Arrays

    +

    To simplify the creation of sub-documents and arrays, bson_append_document_begin() and bson_append_array_begin() exist. These can be used to build a sub-document using the parent documents memory region as the destination buffer.

    +
    bson_t parent;
    +bson_t child;
    +char *str;
    +
    +bson_init (&parent);
    +bson_append_document_begin (&parent, "foo", 3, &child);
    +bson_append_int32 (&child, "baz", 3, 1);
    +bson_append_document_end (&parent, &child);
    +
    +str = bson_as_canonical_extended_json (&parent, NULL);
    +printf ("%s\n", str);
    +bson_free (str);
    +
    +bson_destroy (&parent);
    +
    +
    +
    { "foo" : { "baz" : 1 } }
    +
    +
    +
    +
    +

    Simplified BSON C Object Notation

    +

    Creating BSON documents by hand can be tedious and time consuming. BCON, or BSON C Object Notation, was added to allow for the creation of BSON documents in a format that looks closer to the destination format.

    +

    The following example shows the use of BCON. Notice that values for fields are wrapped in the BCON_* macros. These are required for the variadic processor to determine the parameter type.

    +
    bson_t *doc;
    +
    +doc = BCON_NEW ("foo",
    +                "{",
    +                "int",
    +                BCON_INT32 (1),
    +                "array",
    +                "[",
    +                BCON_INT32 (100),
    +                "{",
    +                "sub",
    +                BCON_UTF8 ("value"),
    +                "}",
    +                "]",
    +                "}");
    +
    +
    +

    Creates the following document

    +
    { "foo" : { "int" : 1, "array" : [ 100, { "sub" : "value" } ] } }
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/cross-platform-notes.html b/libbson/1.23.2/cross-platform-notes.html new file mode 100644 index 0000000000000000000000000000000000000000..9104d389ba9c3860600beba345f54985e2974242 --- /dev/null +++ b/libbson/1.23.2/cross-platform-notes.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + Cross Platform Notes — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Cross Platform Notes

    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/endianness.html b/libbson/1.23.2/endianness.html new file mode 100644 index 0000000000000000000000000000000000000000..328c281478ba8f584270fce66453bbb5d315af26 --- /dev/null +++ b/libbson/1.23.2/endianness.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + Endianness — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Endianness

    +

    The BSON specification dictates that the encoding format is in little-endian. Many implementations simply ignore endianness altogether and expect that they are to be run on little-endian. Libbson supports both Big and Little Endian systems. This means we use memcpy() when appropriate instead of dereferencing and properly convert to and from the host endian format. We expect the compiler intrinsics to optimize it to a dereference when possible.

    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/errors.html b/libbson/1.23.2/errors.html new file mode 100644 index 0000000000000000000000000000000000000000..fdbe0624191ee6795dc83c556578ec3dbe771a3f --- /dev/null +++ b/libbson/1.23.2/errors.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + Handling Errors — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +

    Handling Errors

    +
    +

    Description

    +

    Many libbson functions report errors by returning NULL or -1 and filling out a bson_error_t structure with an error domain, error code, and message.

    +
      +
    • error.domain names the subsystem that generated the error.

    • +
    • error.code is a domain-specific error type.

    • +
    • error.message describes the error.

    • +
    +

    Some error codes overlap with others; always check both the domain and code to determine the type of error.

    + + + + + + + + + + + +

    BSON_ERROR_JSON

    BSON_JSON_ERROR_READ_CORRUPT_JS +BSON_JSON_ERROR_READ_INVALID_PARAM +BSON_JSON_ERROR_READ_CB_FAILURE

    bson_json_reader_t tried to parse invalid MongoDB Extended JSON. +Tried to parse a valid JSON document that is invalid as MongoDBExtended JSON. +An internal callback failure during JSON parsing.

    BSON_ERROR_READER

    BSON_ERROR_READER_BADFD

    bson_json_reader_new_from_file() could not open the file.

    +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/full_index.html b/libbson/1.23.2/full_index.html new file mode 100644 index 0000000000000000000000000000000000000000..ae6bcc66d8c6745e1fb4df369306e313d80465bc --- /dev/null +++ b/libbson/1.23.2/full_index.html @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + Index — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Index

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/guides.html b/libbson/1.23.2/guides.html new file mode 100644 index 0000000000000000000000000000000000000000..4efa28bad7f0bafbb8843fae236e4ce548f9906d --- /dev/null +++ b/libbson/1.23.2/guides.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + Guides — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/include-and-link.html b/libbson/1.23.2/include-and-link.html new file mode 100644 index 0000000000000000000000000000000000000000..369abdd3091bcb8cb50a96361a8e283f1190258a --- /dev/null +++ b/libbson/1.23.2/include-and-link.html @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + Using libbson In Your C Program — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Using libbson In Your C Program

    +
    +

    Include bson.h

    +

    All libbson’s functions and types are available in one header file. Simply include bson.h:

    +
    +
    hello_bson.c
    +
    #include <stdio.h>
    +#include <bson/bson.h>
    +
    +int
    +main (int argc, const char **argv)
    +{
    +   bson_t *b;
    +   char *j;
    +
    +   b = BCON_NEW ("hello", BCON_UTF8 ("bson!"));
    +   j = bson_as_canonical_extended_json (b, NULL);
    +   printf ("%s\n", j);
    +
    +   bson_free (j);
    +   bson_destroy (b);
    +
    +   return 0;
    +}
    +
    +
    +
    +
    +
    +

    CMake

    +

    The libbson installation includes a CMake config-file package, so you can use CMake’s find_package command to import libbson’s CMake target and link to libbson (as a shared library):

    +
    +
    CMakeLists.txt
    +
    # Specify the minimum version you require.
    +find_package (bson-1.0 1.7 REQUIRED)
    +
    +# The "hello_bson.c" sample program is shared among four tests.
    +add_executable (hello_bson ../../hello_bson.c)
    +target_link_libraries (hello_bson PRIVATE mongo::bson_shared)
    +
    +
    +
    +

    You can also use libbson as a static library instead: Use the mongo::bson_static CMake target:

    +
    # Specify the minimum version you require.
    +find_package (bson-1.0 1.7 REQUIRED)
    +
    +# The "hello_bson.c" sample program is shared among four tests.
    +add_executable (hello_bson ../../hello_bson.c)
    +target_link_libraries (hello_bson PRIVATE mongo::bson_static)
    +
    +
    +
    +
    +

    pkg-config

    +

    If you’re not using CMake, use pkg-config on the command line to set header and library paths:

    +
    gcc -o hello_bson hello_bson.c $(pkg-config --libs --cflags libbson-1.0)
    +
    +
    +

    Or to statically link to libbson:

    +
    gcc -o hello_bson hello_bson.c $(pkg-config --libs --cflags libbson-static-1.0)
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/index.html b/libbson/1.23.2/index.html new file mode 100644 index 0000000000000000000000000000000000000000..142ebb6e40c20b35bec5dfcbebba29c4774bc2e0 --- /dev/null +++ b/libbson/1.23.2/index.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + libbson — libbson 1.23.2 + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + +
    +

    libbson

    +

    A Cross Platform BSON Library for C

    +
    +

    Introduction

    +

    libbson builds, parses, and iterates BSON documents, the native data format of MongoDB. It also converts BSON to and from JSON, and provides a platform compatibility layer for the MongoDB C Driver.

    + + + + +
    +
    + + +
    +
    +
    + +
    +
    + + +
    + + + \ No newline at end of file diff --git a/libbson/1.23.2/json.html b/libbson/1.23.2/json.html new file mode 100644 index 0000000000000000000000000000000000000000..298c446c362e3595dad56a5cdb64a013ce9f4659 --- /dev/null +++ b/libbson/1.23.2/json.html @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + JSON — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    JSON

    +

    Libbson provides routines for converting to and from the JSON format. In particular, it supports the MongoDB extended JSON format.

    +
    +

    Converting BSON to JSON

    +

    There are often times where you might want to convert a BSON document to JSON. It is convenient for debugging as well as an interchange format. To help with this, Libbson contains the functions bson_as_canonical_extended_json() and bson_as_relaxed_extended_json(). The canonical format preserves BSON type information for values that may have ambiguous representations in JSON (e.g. numeric types).

    +
    bson_t *b;
    +size_t len;
    +char *str;
    +
    +b = BCON_NEW ("a", BCON_INT32 (1));
    +
    +str = bson_as_canonical_extended_json (b, &len);
    +printf ("%s\n", str);
    +bson_free (str);
    +
    +bson_destroy (b);
    +
    +
    +
    { "a" : { "$numberInt": "1" } }
    +
    +
    +

    The relaxed format prefers JSON primitives for numeric values and may be used if type fidelity is not required.

    +
    bson_t *b;
    +size_t len;
    +char *str;
    +
    +b = BCON_NEW ("a", BCON_INT32 (1));
    +
    +str = bson_as_relaxed_extended_json (b, &len);
    +printf ("%s\n", str);
    +bson_free (str);
    +
    +bson_destroy (b);
    +
    +
    +
    { "a" : 1 }
    +
    +
    +
    +
    +

    Converting JSON to BSON

    +

    Converting back from JSON is also useful and common enough that we added bson_init_from_json() and bson_new_from_json().

    +

    The following example creates a new bson_t from the JSON string {"a":1}.

    +
    bson_t *b;
    +bson_error_t error;
    +
    +b = bson_new_from_json ("{\"a\":1}", -1, &error);
    +
    +if (!b) {
    +   printf ("Error: %s\n", error.message);
    +} else {
    +   bson_destroy (b);
    +}
    +
    +
    +
    +
    +

    Streaming JSON Parsing

    +

    Libbson provides bson_json_reader_t to allow for parsing a sequence of JSON documents into BSON. The interface is similar to bson_reader_t but expects the input to be in the MongoDB extended JSON format.

    +
    /*
    + * Copyright 2013 MongoDB, Inc.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +
    +/*
    + * This program will print each JSON document contained in the provided files
    + * as a BSON string to STDOUT.
    + */
    +
    +
    +#include <bson/bson.h>
    +#include <stdlib.h>
    +#include <stdio.h>
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_json_reader_t *reader;
    +   bson_error_t error;
    +   const char *filename;
    +   bson_t doc = BSON_INITIALIZER;
    +   int i;
    +   int b;
    +
    +   /*
    +    * Print program usage if no arguments are provided.
    +    */
    +   if (argc == 1) {
    +      fprintf (stderr, "usage: %s FILE...\n", argv[0]);
    +      return 1;
    +   }
    +
    +   /*
    +    * Process command line arguments expecting each to be a filename.
    +    */
    +   for (i = 1; i < argc; i++) {
    +      filename = argv[i];
    +
    +      /*
    +       * Open the filename provided in command line arguments.
    +       */
    +      if (0 == strcmp (filename, "-")) {
    +         reader = bson_json_reader_new_from_fd (STDIN_FILENO, false);
    +      } else {
    +         if (!(reader = bson_json_reader_new_from_file (filename, &error))) {
    +            fprintf (
    +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
    +            continue;
    +         }
    +      }
    +
    +      /*
    +       * Convert each incoming document to BSON and print to stdout.
    +       */
    +      while ((b = bson_json_reader_read (reader, &doc, &error))) {
    +         if (b < 0) {
    +            fprintf (stderr, "Error in json parsing:\n%s\n", error.message);
    +            abort ();
    +         }
    +
    +         if (fwrite (bson_get_data (&doc), 1, doc.len, stdout) != doc.len) {
    +            fprintf (stderr, "Failed to write to stdout, exiting.\n");
    +            exit (1);
    +         }
    +         bson_reinit (&doc);
    +      }
    +
    +      bson_json_reader_destroy (reader);
    +      bson_destroy (&doc);
    +   }
    +
    +   return 0;
    +}
    +
    +
    +
    +
    +

    Examples

    +

    The following example reads BSON documents from stdin and prints them to stdout as JSON.

    +
    /*
    + * Copyright 2013 MongoDB, Inc.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +
    +/*
    + * This program will print each BSON document contained in the provided files
    + * as a JSON string to STDOUT.
    + */
    +
    +
    +#include <bson/bson.h>
    +#include <stdio.h>
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_reader_t *reader;
    +   const bson_t *b;
    +   bson_error_t error;
    +   const char *filename;
    +   char *str;
    +   int i;
    +
    +   /*
    +    * Print program usage if no arguments are provided.
    +    */
    +   if (argc == 1) {
    +      fprintf (stderr, "usage: %s [FILE | -]...\nUse - for STDIN.\n", argv[0]);
    +      return 1;
    +   }
    +
    +   /*
    +    * Process command line arguments expecting each to be a filename.
    +    */
    +   for (i = 1; i < argc; i++) {
    +      filename = argv[i];
    +
    +      if (strcmp (filename, "-") == 0) {
    +         reader = bson_reader_new_from_fd (STDIN_FILENO, false);
    +      } else {
    +         if (!(reader = bson_reader_new_from_file (filename, &error))) {
    +            fprintf (
    +               stderr, "Failed to open \"%s\": %s\n", filename, error.message);
    +            continue;
    +         }
    +      }
    +
    +      /*
    +       * Convert each incoming document to JSON and print to stdout.
    +       */
    +      while ((b = bson_reader_read (reader, NULL))) {
    +         str = bson_as_canonical_extended_json (b, NULL);
    +         fprintf (stdout, "%s\n", str);
    +         bson_free (str);
    +      }
    +
    +      /*
    +       * Cleanup after our reader, which closes the file descriptor.
    +       */
    +      bson_reader_destroy (reader);
    +   }
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/objects.inv b/libbson/1.23.2/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..c2a85e1896ac7ec27b9638e7d8a9f37789751648 Binary files /dev/null and b/libbson/1.23.2/objects.inv differ diff --git a/libbson/1.23.2/oid.html b/libbson/1.23.2/oid.html new file mode 100644 index 0000000000000000000000000000000000000000..48b7a07e77e7c85ed11d133accd6a65cd2ea4822 --- /dev/null +++ b/libbson/1.23.2/oid.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + ObjectIDs — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    ObjectIDs

    +

    Libbson provides a simple way to generate ObjectIDs. It can be used in a single-threaded or multi-threaded manner depending on your requirements.

    +

    The bson_oid_t structure represents an ObjectID in MongoDB. It is a 96-bit identifier.

    +
    +

    Composition

    +
      +
    • 4 bytes : The UNIX timestamp in big-endian format.

    • +
    • 5 bytes : A random number.

    • +
    • 3 bytes : A 24-bit monotonic counter incrementing from rand() in big-endian.

    • +
    +
    +
    +

    Sorting ObjectIDs

    +

    The typical way to sort in C is using qsort(). Therefore, Libbson provides a qsort() compatible callback function named bson_oid_compare(). It returns less than 1, greater than 1, or 0 depending on the equality of two bson_oid_t structures.

    +
    +
    +

    Comparing Object IDs

    +

    If you simply want to compare two bson_oid_t structures for equality, use bson_oid_equal().

    +
    +
    +

    Generating

    +

    To generate a bson_oid_t, you may use the following.

    +
    bson_oid_t oid;
    +
    +bson_oid_init (&oid, NULL);
    +
    +
    +
    +
    +

    Parsing ObjectID Strings

    +

    You can also parse a string containing a bson_oid_t. The input string MUST be 24 characters or more in length.

    +
    bson_oid_t oid;
    +
    +bson_oid_init_from_string (&oid, "123456789012345678901234");
    +
    +
    +
    bson_oid_t oid;
    +
    +bson_oid_init_from_string_unsafe (&oid, "123456789012345678901234");
    +
    +
    +
    +
    +

    Hashing ObjectIDs

    +

    If you need to store items in a hashtable, you may want to use the bson_oid_t as the key. Libbson provides a hash function for just this purpose. It is based on DJB hash.

    +
    unsigned hash;
    +
    +hash = bson_oid_hash (oid);
    +
    +
    +
    +
    +

    Fetching ObjectID Creation Time

    +

    You can easily fetch the time that a bson_oid_t was generated using bson_oid_get_time_t().

    +
    time_t t;
    +
    +t = bson_oid_get_time_t (oid);
    +printf ("The OID was generated at %u\n", (unsigned) t);
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/parsing.html b/libbson/1.23.2/parsing.html new file mode 100644 index 0000000000000000000000000000000000000000..3e7cdd074d4e9e18c0c9bc78db4ce9aeb3dc9644 --- /dev/null +++ b/libbson/1.23.2/parsing.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + Parsing and Iterating BSON Documents — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Parsing and Iterating BSON Documents

    +
    +

    Parsing

    +

    BSON documents are lazily parsed as necessary. To begin parsing a BSON document, use one of the provided Libbson functions to create a new bson_t from existing data such as bson_new_from_data(). This will make a copy of the data so that additional mutations may occur to the BSON document.

    +
    +

    Tip

    +

    If you only want to parse a BSON document and have no need to mutate it, you may use bson_init_static() to avoid making a copy of the data.

    +
    +
    bson_t *b;
    +
    +b = bson_new_from_data (my_data, my_data_len);
    +if (!b) {
    +   fprintf (stderr, "The specified length embedded in <my_data> did not match "
    +                    "<my_data_len>\n");
    +   return;
    +}
    +
    +bson_destroy (b);
    +
    +
    +

    Only two checks are performed when creating a new bson_t from an existing buffer. First, the document must begin with the buffer length, matching what was expected by the caller. Second, the document must end with the expected trailing \0 byte.

    +

    To parse the document further we use a bson_iter_t to iterate the elements within the document. Let’s print all of the field names in the document.

    +
    bson_t *b;
    +bson_iter_t iter;
    +
    +if ((b = bson_new_from_data (my_data, my_data_len))) {
    +   if (bson_iter_init (&iter, b)) {
    +      while (bson_iter_next (&iter)) {
    +         printf ("Found element key: \"%s\"\n", bson_iter_key (&iter));
    +      }
    +   }
    +   bson_destroy (b);
    +}
    +
    +
    +

    Converting a document to JSON uses a bson_iter_t and bson_visitor_t to iterate all fields of a BSON document recursively and generate a UTF-8 encoded JSON string.

    +
    bson_t *b;
    +char *json;
    +
    +if ((b = bson_new_from_data (my_data, my_data_len))) {
    +   if ((json = bson_as_canonical_extended_json (b, NULL))) {
    +      printf ("%s\n", json);
    +      bson_free (json);
    +   }
    +   bson_destroy (b);
    +}
    +
    +
    +
    +
    +

    Recursing into Sub-Documents

    +

    Libbson provides convenient sub-iterators to dive down into a sub-document or sub-array. Below is an example that will dive into a sub-document named “foo” and print it’s field names.

    +
    bson_iter_t iter;
    +bson_iter_t child;
    +char *json;
    +
    +if (bson_iter_init_find (&iter, doc, "foo") &&
    +    BSON_ITER_HOLDS_DOCUMENT (&iter) && bson_iter_recurse (&iter, &child)) {
    +   while (bson_iter_next (&child)) {
    +      printf ("Found sub-key of \"foo\" named \"%s\"\n",
    +              bson_iter_key (&child));
    +   }
    +}
    +
    +
    +
    +
    +

    Finding Fields using Dot Notation

    +

    Using the bson_iter_recurse() function exemplified above, bson_iter_find_descendant() can find a field for you using the MongoDB style path notation such as “foo.bar.0.baz”.

    +

    Let’s create a document like {"foo": {"bar": [{"baz: 1}]}} and locate the "baz" field.

    +
    bson_t *b;
    +bson_iter_t iter;
    +bson_iter_t baz;
    +
    +b =
    +   BCON_NEW ("foo", "{", "bar", "[", "{", "baz", BCON_INT32 (1), "}", "]", "}");
    +
    +if (bson_iter_init (&iter, b) &&
    +    bson_iter_find_descendant (&iter, "foo.bar.0.baz", &baz) &&
    +    BSON_ITER_HOLDS_INT32 (&baz)) {
    +   printf ("baz = %d\n", bson_iter_int32 (&baz));
    +}
    +
    +bson_destroy (b);
    +
    +
    +
    +
    +

    Validating a BSON Document

    +

    If all you want to do is validate that a BSON document is valid, you can use bson_validate().

    +
    size_t err_offset;
    +
    +if (!bson_validate (doc, BSON_VALIDATE_NONE, &err_offset)) {
    +   fprintf (stderr,
    +            "The document failed to validate at offset: %u\n",
    +            (unsigned) err_offset);
    +}
    +
    +
    +

    See the bson_validate() documentation for more information and examples.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/search.html b/libbson/1.23.2/search.html new file mode 100644 index 0000000000000000000000000000000000000000..0e9e09379dc37d200078331410e544c2820e3d46 --- /dev/null +++ b/libbson/1.23.2/search.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + Search — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Search

    +
    + +

    + Please activate JavaScript to enable the search + functionality. +

    +
    +

    + From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

    +
    + + + +
    + +
    + +
    + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/searchindex.js b/libbson/1.23.2/searchindex.js new file mode 100644 index 0000000000000000000000000000000000000000..8267040fe5358b02637f213ddcf82395e620c6cf --- /dev/null +++ b/libbson/1.23.2/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["api", "bson_aligned_alloc", "bson_aligned_alloc0", "bson_append_array", "bson_append_array_begin", "bson_append_array_end", "bson_append_binary", "bson_append_bool", "bson_append_code", "bson_append_code_with_scope", "bson_append_date_time", "bson_append_dbpointer", "bson_append_decimal128", "bson_append_document", "bson_append_document_begin", "bson_append_document_end", "bson_append_double", "bson_append_int32", "bson_append_int64", "bson_append_iter", "bson_append_maxkey", "bson_append_minkey", "bson_append_now_utc", "bson_append_null", "bson_append_oid", "bson_append_regex", "bson_append_regex_w_len", "bson_append_symbol", "bson_append_time_t", "bson_append_timestamp", "bson_append_timeval", "bson_append_undefined", "bson_append_utf8", "bson_append_value", "bson_array_as_json", "bson_as_canonical_extended_json", "bson_as_json", "bson_as_json_with_opts", "bson_as_relaxed_extended_json", "bson_ascii_strtoll", "bson_check_version", "bson_compare", "bson_concat", "bson_context_destroy", "bson_context_get_default", "bson_context_new", "bson_context_t", "bson_copy", "bson_copy_to", "bson_copy_to_excluding", "bson_copy_to_excluding_noinit", "bson_copy_to_excluding_noinit_va", "bson_count_keys", "bson_decimal128_from_string", "bson_decimal128_from_string_w_len", "bson_decimal128_t", "bson_decimal128_to_string", "bson_destroy", "bson_destroy_with_steal", "bson_equal", "bson_error_t", "bson_free", "bson_get_data", "bson_get_major_version", "bson_get_micro_version", "bson_get_minor_version", "bson_get_monotonic_time", "bson_get_version", "bson_has_field", "bson_init", "bson_init_from_json", "bson_init_static", "bson_isspace", "bson_iter_array", "bson_iter_as_bool", "bson_iter_as_double", "bson_iter_as_int64", "bson_iter_binary", "bson_iter_bool", "bson_iter_code", "bson_iter_codewscope", "bson_iter_date_time", "bson_iter_dbpointer", "bson_iter_decimal128", "bson_iter_document", "bson_iter_double", "bson_iter_dup_utf8", "bson_iter_find", "bson_iter_find_case", "bson_iter_find_descendant", "bson_iter_find_w_len", "bson_iter_init", "bson_iter_init_find", "bson_iter_init_find_case", "bson_iter_init_find_w_len", "bson_iter_init_from_data", "bson_iter_init_from_data_at_offset", "bson_iter_int32", "bson_iter_int64", "bson_iter_key", "bson_iter_key_len", "bson_iter_next", "bson_iter_offset", "bson_iter_oid", "bson_iter_overwrite_bool", "bson_iter_overwrite_date_time", "bson_iter_overwrite_decimal128", "bson_iter_overwrite_double", "bson_iter_overwrite_int32", "bson_iter_overwrite_int64", "bson_iter_overwrite_oid", "bson_iter_overwrite_timestamp", "bson_iter_recurse", "bson_iter_regex", "bson_iter_symbol", "bson_iter_t", "bson_iter_time_t", "bson_iter_timestamp", "bson_iter_timeval", "bson_iter_type", "bson_iter_utf8", "bson_iter_value", "bson_iter_visit_all", "bson_json_data_reader_ingest", "bson_json_data_reader_new", "bson_json_mode_t", "bson_json_opts_destroy", "bson_json_opts_new", "bson_json_opts_t", "bson_json_reader_destroy", "bson_json_reader_new", "bson_json_reader_new_from_fd", "bson_json_reader_new_from_file", "bson_json_reader_read", "bson_json_reader_t", "bson_malloc", "bson_malloc0", "bson_md5_append", "bson_md5_finish", "bson_md5_init", "bson_md5_t", "bson_mem_restore_vtable", "bson_mem_set_vtable", "bson_memory", "bson_new", "bson_new_from_buffer", "bson_new_from_data", "bson_new_from_json", "bson_oid_compare", "bson_oid_copy", "bson_oid_equal", "bson_oid_get_time_t", "bson_oid_hash", "bson_oid_init", "bson_oid_init_from_data", "bson_oid_init_from_string", "bson_oid_init_sequence", "bson_oid_is_valid", "bson_oid_t", "bson_oid_to_string", "bson_reader_destroy", "bson_reader_destroy_func_t", "bson_reader_new_from_data", "bson_reader_new_from_fd", "bson_reader_new_from_file", "bson_reader_new_from_handle", "bson_reader_read", "bson_reader_read_func_t", "bson_reader_reset", "bson_reader_set_destroy_func", "bson_reader_set_read_func", "bson_reader_t", "bson_reader_tell", "bson_realloc", "bson_realloc_ctx", "bson_realloc_func", "bson_reinit", "bson_reserve_buffer", "bson_set_error", "bson_sized_new", "bson_snprintf", "bson_steal", "bson_strcasecmp", "bson_strdup", "bson_strdup_printf", "bson_strdupv_printf", "bson_strerror_r", "bson_strfreev", "bson_string_append", "bson_string_append_c", "bson_string_append_printf", "bson_string_append_unichar", "bson_string_free", "bson_string_new", "bson_string_t", "bson_string_truncate", "bson_strncpy", "bson_strndup", "bson_strnlen", "bson_subtype_t", "bson_t", "bson_type_t", "bson_uint32_to_string", "bson_unichar_t", "bson_utf8_escape_for_json", "bson_utf8_from_unichar", "bson_utf8_get_char", "bson_utf8_next_char", "bson_utf8_validate", "bson_validate", "bson_validate_with_error", "bson_value_copy", "bson_value_destroy", "bson_value_t", "bson_visitor_t", "bson_vsnprintf", "bson_writer_begin", "bson_writer_destroy", "bson_writer_end", "bson_writer_get_length", "bson_writer_new", "bson_writer_rollback", "bson_writer_t", "bson_zero_free", "character_and_string_routines", "creating", "cross-platform-notes", "endianness", "errors", "full_index", "guides", "include-and-link", "index", "json", "oid", "parsing", "streaming-bson", "threading", "tutorial", "utf8", "valgrind", "version"], "filenames": ["api.rst", "bson_aligned_alloc.rst", "bson_aligned_alloc0.rst", "bson_append_array.rst", "bson_append_array_begin.rst", "bson_append_array_end.rst", "bson_append_binary.rst", "bson_append_bool.rst", "bson_append_code.rst", "bson_append_code_with_scope.rst", "bson_append_date_time.rst", "bson_append_dbpointer.rst", "bson_append_decimal128.rst", "bson_append_document.rst", "bson_append_document_begin.rst", "bson_append_document_end.rst", "bson_append_double.rst", "bson_append_int32.rst", "bson_append_int64.rst", "bson_append_iter.rst", "bson_append_maxkey.rst", "bson_append_minkey.rst", "bson_append_now_utc.rst", "bson_append_null.rst", "bson_append_oid.rst", "bson_append_regex.rst", "bson_append_regex_w_len.rst", "bson_append_symbol.rst", "bson_append_time_t.rst", "bson_append_timestamp.rst", "bson_append_timeval.rst", "bson_append_undefined.rst", "bson_append_utf8.rst", "bson_append_value.rst", "bson_array_as_json.rst", "bson_as_canonical_extended_json.rst", "bson_as_json.rst", "bson_as_json_with_opts.rst", "bson_as_relaxed_extended_json.rst", "bson_ascii_strtoll.rst", "bson_check_version.rst", "bson_compare.rst", "bson_concat.rst", "bson_context_destroy.rst", "bson_context_get_default.rst", "bson_context_new.rst", "bson_context_t.rst", "bson_copy.rst", "bson_copy_to.rst", "bson_copy_to_excluding.rst", "bson_copy_to_excluding_noinit.rst", "bson_copy_to_excluding_noinit_va.rst", "bson_count_keys.rst", "bson_decimal128_from_string.rst", "bson_decimal128_from_string_w_len.rst", "bson_decimal128_t.rst", "bson_decimal128_to_string.rst", "bson_destroy.rst", "bson_destroy_with_steal.rst", "bson_equal.rst", "bson_error_t.rst", "bson_free.rst", "bson_get_data.rst", "bson_get_major_version.rst", "bson_get_micro_version.rst", "bson_get_minor_version.rst", "bson_get_monotonic_time.rst", "bson_get_version.rst", "bson_has_field.rst", "bson_init.rst", "bson_init_from_json.rst", "bson_init_static.rst", "bson_isspace.rst", "bson_iter_array.rst", "bson_iter_as_bool.rst", "bson_iter_as_double.rst", "bson_iter_as_int64.rst", "bson_iter_binary.rst", "bson_iter_bool.rst", "bson_iter_code.rst", "bson_iter_codewscope.rst", "bson_iter_date_time.rst", "bson_iter_dbpointer.rst", "bson_iter_decimal128.rst", "bson_iter_document.rst", "bson_iter_double.rst", "bson_iter_dup_utf8.rst", "bson_iter_find.rst", "bson_iter_find_case.rst", "bson_iter_find_descendant.rst", "bson_iter_find_w_len.rst", "bson_iter_init.rst", "bson_iter_init_find.rst", "bson_iter_init_find_case.rst", "bson_iter_init_find_w_len.rst", "bson_iter_init_from_data.rst", "bson_iter_init_from_data_at_offset.rst", "bson_iter_int32.rst", "bson_iter_int64.rst", "bson_iter_key.rst", "bson_iter_key_len.rst", "bson_iter_next.rst", "bson_iter_offset.rst", "bson_iter_oid.rst", "bson_iter_overwrite_bool.rst", "bson_iter_overwrite_date_time.rst", "bson_iter_overwrite_decimal128.rst", "bson_iter_overwrite_double.rst", "bson_iter_overwrite_int32.rst", "bson_iter_overwrite_int64.rst", "bson_iter_overwrite_oid.rst", "bson_iter_overwrite_timestamp.rst", "bson_iter_recurse.rst", "bson_iter_regex.rst", "bson_iter_symbol.rst", "bson_iter_t.rst", "bson_iter_time_t.rst", "bson_iter_timestamp.rst", "bson_iter_timeval.rst", "bson_iter_type.rst", "bson_iter_utf8.rst", "bson_iter_value.rst", "bson_iter_visit_all.rst", "bson_json_data_reader_ingest.rst", "bson_json_data_reader_new.rst", "bson_json_mode_t.rst", "bson_json_opts_destroy.rst", "bson_json_opts_new.rst", "bson_json_opts_t.rst", "bson_json_reader_destroy.rst", "bson_json_reader_new.rst", "bson_json_reader_new_from_fd.rst", "bson_json_reader_new_from_file.rst", "bson_json_reader_read.rst", "bson_json_reader_t.rst", "bson_malloc.rst", "bson_malloc0.rst", "bson_md5_append.rst", "bson_md5_finish.rst", "bson_md5_init.rst", "bson_md5_t.rst", "bson_mem_restore_vtable.rst", "bson_mem_set_vtable.rst", "bson_memory.rst", "bson_new.rst", "bson_new_from_buffer.rst", "bson_new_from_data.rst", "bson_new_from_json.rst", "bson_oid_compare.rst", "bson_oid_copy.rst", "bson_oid_equal.rst", "bson_oid_get_time_t.rst", "bson_oid_hash.rst", "bson_oid_init.rst", "bson_oid_init_from_data.rst", "bson_oid_init_from_string.rst", "bson_oid_init_sequence.rst", "bson_oid_is_valid.rst", "bson_oid_t.rst", "bson_oid_to_string.rst", "bson_reader_destroy.rst", "bson_reader_destroy_func_t.rst", "bson_reader_new_from_data.rst", "bson_reader_new_from_fd.rst", "bson_reader_new_from_file.rst", "bson_reader_new_from_handle.rst", "bson_reader_read.rst", "bson_reader_read_func_t.rst", "bson_reader_reset.rst", "bson_reader_set_destroy_func.rst", "bson_reader_set_read_func.rst", "bson_reader_t.rst", "bson_reader_tell.rst", "bson_realloc.rst", "bson_realloc_ctx.rst", "bson_realloc_func.rst", "bson_reinit.rst", "bson_reserve_buffer.rst", "bson_set_error.rst", "bson_sized_new.rst", "bson_snprintf.rst", "bson_steal.rst", "bson_strcasecmp.rst", "bson_strdup.rst", "bson_strdup_printf.rst", "bson_strdupv_printf.rst", "bson_strerror_r.rst", "bson_strfreev.rst", "bson_string_append.rst", "bson_string_append_c.rst", "bson_string_append_printf.rst", "bson_string_append_unichar.rst", "bson_string_free.rst", "bson_string_new.rst", "bson_string_t.rst", "bson_string_truncate.rst", "bson_strncpy.rst", "bson_strndup.rst", "bson_strnlen.rst", "bson_subtype_t.rst", "bson_t.rst", "bson_type_t.rst", "bson_uint32_to_string.rst", "bson_unichar_t.rst", "bson_utf8_escape_for_json.rst", "bson_utf8_from_unichar.rst", "bson_utf8_get_char.rst", "bson_utf8_next_char.rst", "bson_utf8_validate.rst", "bson_validate.rst", "bson_validate_with_error.rst", "bson_value_copy.rst", "bson_value_destroy.rst", "bson_value_t.rst", "bson_visitor_t.rst", "bson_vsnprintf.rst", "bson_writer_begin.rst", "bson_writer_destroy.rst", "bson_writer_end.rst", "bson_writer_get_length.rst", "bson_writer_new.rst", "bson_writer_rollback.rst", "bson_writer_t.rst", "bson_zero_free.rst", "character_and_string_routines.rst", "creating.rst", "cross-platform-notes.rst", "endianness.rst", "errors.rst", "full_index.rst", "guides.rst", "include-and-link.rst", "index.rst", "json.rst", "oid.rst", "parsing.rst", "streaming-bson.rst", "threading.rst", "tutorial.rst", "utf8.rst", "valgrind.rst", "version.rst"], "titles": ["API Reference", "bson_aligned_alloc()", "bson_aligned_alloc0()", "bson_append_array()", "bson_append_array_begin()", "bson_append_array_end()", "bson_append_binary()", "bson_append_bool()", "bson_append_code()", "bson_append_code_with_scope()", "bson_append_date_time()", "bson_append_dbpointer()", "bson_append_decimal128()", "bson_append_document()", "bson_append_document_begin()", "bson_append_document_end()", "bson_append_double()", "bson_append_int32()", "bson_append_int64()", "bson_append_iter()", "bson_append_maxkey()", "bson_append_minkey()", "bson_append_now_utc()", "bson_append_null()", "bson_append_oid()", "bson_append_regex()", "bson_append_regex_w_len()", "bson_append_symbol()", "bson_append_time_t()", "bson_append_timestamp()", "bson_append_timeval()", "bson_append_undefined()", "bson_append_utf8()", "bson_append_value()", "bson_array_as_json()", "bson_as_canonical_extended_json()", "bson_as_json()", "bson_as_json_with_opts()", "bson_as_relaxed_extended_json()", "bson_ascii_strtoll()", "bson_check_version()", "bson_compare()", "bson_concat()", "bson_context_destroy()", "bson_context_get_default()", "bson_context_new()", "bson_context_t", "bson_copy()", "bson_copy_to()", "bson_copy_to_excluding()", "bson_copy_to_excluding_noinit()", "bson_copy_to_excluding_noinit_va()", "bson_count_keys()", "bson_decimal128_from_string()", "bson_decimal128_from_string_w_len()", "bson_decimal128_t", "bson_decimal128_to_string()", "bson_destroy()", "bson_destroy_with_steal()", "bson_equal()", "bson_error_t", "bson_free()", "bson_get_data()", "bson_get_major_version()", "bson_get_micro_version()", "bson_get_minor_version()", "System Clock", "bson_get_version()", "bson_has_field()", "bson_init()", "bson_init_from_json()", "bson_init_static()", "bson_isspace()", "bson_iter_array()", "bson_iter_as_bool()", "bson_iter_as_double()", "bson_iter_as_int64()", "bson_iter_binary()", "bson_iter_bool()", "bson_iter_code()", "bson_iter_codewscope()", "bson_iter_date_time()", "bson_iter_dbpointer()", "bson_iter_decimal128()", "bson_iter_document()", "bson_iter_double()", "bson_iter_dup_utf8()", "bson_iter_find()", "bson_iter_find_case()", "bson_iter_find_descendant()", "bson_iter_find_w_len()", "bson_iter_init()", "bson_iter_init_find()", "bson_iter_init_find_case()", "bson_iter_init_find_w_len()", "bson_iter_init_from_data()", "bson_iter_init_from_data_at_offset()", "bson_iter_int32()", "bson_iter_int64()", "bson_iter_key()", "bson_iter_key_len()", "bson_iter_next()", "bson_iter_offset()", "bson_iter_oid()", "bson_iter_overwrite_bool()", "bson_iter_overwrite_date_time()", "bson_iter_overwrite_decimal128()", "bson_iter_overwrite_double()", "bson_iter_overwrite_int32()", "bson_iter_overwrite_int64()", "bson_iter_overwrite_oid()", "bson_iter_overwrite_timestamp()", "bson_iter_recurse()", "bson_iter_regex()", "bson_iter_symbol()", "bson_iter_t", "bson_iter_time_t()", "bson_iter_timestamp()", "bson_iter_timeval()", "bson_iter_type()", "bson_iter_utf8()", "bson_iter_value()", "bson_iter_visit_all()", "bson_json_data_reader_ingest()", "bson_json_data_reader_new()", "bson_json_mode_t", "bson_json_opts_destroy()", "bson_json_opts_new()", "bson_json_opts_t", "bson_json_reader_destroy()", "bson_json_reader_new()", "bson_json_reader_new_from_fd()", "bson_json_reader_new_from_file()", "bson_json_reader_read()", "bson_json_reader_t", "bson_malloc()", "bson_malloc0()", "bson_md5_append()", "bson_md5_finish()", "bson_md5_init()", "bson_md5_t", "bson_mem_restore_vtable()", "bson_mem_set_vtable()", "Memory Management", "bson_new()", "bson_new_from_buffer()", "bson_new_from_data()", "bson_new_from_json()", "bson_oid_compare()", "bson_oid_copy()", "bson_oid_equal()", "bson_oid_get_time_t()", "bson_oid_hash()", "bson_oid_init()", "bson_oid_init_from_data()", "bson_oid_init_from_string()", "bson_oid_init_sequence()", "bson_oid_is_valid()", "bson_oid_t", "bson_oid_to_string()", "bson_reader_destroy()", "bson_reader_destroy_func_t", "bson_reader_new_from_data()", "bson_reader_new_from_fd()", "bson_reader_new_from_file()", "bson_reader_new_from_handle()", "bson_reader_read()", "bson_reader_read_func_t", "bson_reader_reset()", "bson_reader_set_destroy_func()", "bson_reader_set_read_func()", "bson_reader_t", "bson_reader_tell()", "bson_realloc()", "bson_realloc_ctx()", "bson_realloc_func", "bson_reinit()", "bson_reserve_buffer()", "bson_set_error()", "bson_sized_new()", "bson_snprintf()", "bson_steal()", "bson_strcasecmp()", "bson_strdup()", "bson_strdup_printf()", "bson_strdupv_printf()", "bson_strerror_r()", "bson_strfreev()", "bson_string_append()", "bson_string_append_c()", "bson_string_append_printf()", "bson_string_append_unichar()", "bson_string_free()", "bson_string_new()", "bson_string_t", "bson_string_truncate()", "bson_strncpy()", "bson_strndup()", "bson_strnlen()", "bson_subtype_t", "bson_t", "bson_type_t", "bson_uint32_to_string()", "bson_unichar_t", "bson_utf8_escape_for_json()", "bson_utf8_from_unichar()", "bson_utf8_get_char()", "bson_utf8_next_char()", "bson_utf8_validate()", "bson_validate()", "bson_validate_with_error()", "bson_value_copy()", "bson_value_destroy()", "bson_value_t", "bson_visitor_t", "bson_vsnprintf()", "bson_writer_begin()", "bson_writer_destroy()", "bson_writer_end()", "bson_writer_get_length()", "bson_writer_new()", "bson_writer_rollback()", "bson_writer_t", "bson_zero_free()", "Character and String Routines", "Creating a BSON Document", "Cross Platform Notes", "Endianness", "Handling Errors", "Index", "Guides", "Using libbson In Your C Program", "libbson", "JSON", "ObjectIDs", "Parsing and Iterating BSON Documents", "Streaming BSON", "Threading", "Tutorial", "UTF-8", "Use Valgrind to Check For BSON Data Leaks", "Libbson Versioning"], "terms": {"bson_t": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 47, 48, 49, 50, 51, 52, 57, 58, 59, 62, 68, 69, 70, 71, 77, 80, 91, 92, 93, 94, 96, 115, 120, 133, 134, 144, 145, 146, 147, 166, 171, 176, 177, 179, 181, 199, 209, 210, 214, 216, 221, 222, 229, 231, 232, 233, 235, 236, 240], "bson_append_arrai": [0, 200, 229], "bson_append_array_begin": [0, 5, 58, 200, 225, 229], "bson_append_array_end": [0, 4, 200, 229], "bson_append_binari": [0, 199, 200, 229], "bson_append_bool": [0, 200, 225, 229], "bson_append_cod": [0, 9, 200, 229], "bson_append_code_with_scop": [0, 200, 229], "bson_append_date_tim": [0, 22, 29, 200, 229], "bson_append_dbpoint": [0, 200, 229], "bson_append_decimal128": [0, 200, 229], "bson_append_docu": [0, 200, 229], "bson_append_document_begin": [0, 15, 58, 200, 225, 229], "bson_append_document_end": [0, 14, 200, 225, 229], "bson_append_doubl": [0, 200, 229], "bson_append_int32": [0, 50, 200, 222, 225, 229, 236], "bson_append_int64": [0, 200, 229], "bson_append_it": [0, 200, 229], "bson_append_maxkei": [0, 200, 229], "bson_append_minkei": [0, 200, 229], "bson_append_now_utc": [0, 200, 229], "bson_append_nul": [0, 27, 32, 200, 229], "bson_append_oid": [0, 200, 229], "bson_append_regex": [0, 200, 229], "bson_append_regex_w_len": [0, 200, 229], "bson_append_symbol": [0, 200, 229], "bson_append_time_t": [0, 200, 229], "bson_append_timestamp": [0, 200, 229], "bson_append_timev": [0, 200, 229], "bson_append_undefin": [0, 200, 229], "bson_append_utf8": [0, 34, 36, 181, 200, 225, 229], "bson_append_valu": [0, 200, 229], "bson_array_as_json": [0, 35, 36, 37, 38, 200, 229], "bson_as_canonical_extended_json": [0, 34, 36, 37, 38, 171, 177, 200, 214, 225, 229, 231, 233, 235, 236], "bson_as_json": [0, 34, 35, 37, 38, 50, 200, 229], "bson_as_json_with_opt": [0, 34, 35, 36, 38, 125, 128, 200, 229], "bson_as_relaxed_extended_json": [0, 34, 35, 36, 37, 200, 229, 233], "bson_compar": [0, 200, 229], "bson_concat": [0, 69, 70, 71, 144, 145, 146, 147, 176, 177, 179, 200, 229], "bson_copi": [0, 200, 229], "bson_copy_to": [0, 200, 229], "bson_copy_to_exclud": [0, 50, 200, 229], "bson_copy_to_excluding_noinit": [0, 49, 51, 200, 229], "bson_copy_to_excluding_noinit_va": [0, 200, 229], "bson_count_kei": [0, 200, 229], "bson_destroi": [0, 34, 36, 47, 50, 58, 70, 134, 144, 176, 177, 179, 181, 200, 225, 229, 231, 233, 235, 240], "bson_destroy_with_st": [0, 181, 200, 229], "bson_equ": [0, 200, 229], "bson_get_data": [0, 96, 134, 200, 229, 233], "bson_has_field": [0, 200, 229], "bson_init": [0, 34, 36, 42, 49, 50, 51, 70, 71, 144, 145, 146, 147, 176, 177, 179, 200, 225, 229], "bson_init_from_json": [0, 42, 69, 71, 133, 144, 145, 146, 147, 176, 177, 179, 200, 229, 233], "bson_init_stat": [0, 42, 69, 70, 80, 144, 145, 146, 147, 176, 177, 179, 200, 229, 235], "bson_json_mode_t": [0, 127, 128, 200, 229], "bson_json_opts_t": [0, 37, 126, 127, 200, 229], "bson_new": [0, 42, 69, 70, 71, 145, 146, 147, 176, 177, 179, 200, 229], "bson_new_from_buff": [0, 42, 69, 70, 71, 144, 146, 147, 176, 177, 179, 200, 229], "bson_new_from_data": [0, 42, 69, 70, 71, 144, 145, 147, 176, 177, 179, 200, 229, 235], "bson_new_from_json": [0, 42, 69, 70, 71, 133, 144, 145, 146, 176, 177, 179, 200, 229, 233], "bson_reinit": [0, 42, 69, 70, 71, 134, 144, 145, 146, 147, 177, 179, 200, 229, 233], "bson_reserve_buff": [0, 42, 69, 70, 71, 144, 145, 146, 147, 176, 179, 200, 229], "bson_sized_new": [0, 42, 69, 70, 71, 144, 145, 146, 147, 176, 177, 200, 229], "bson_steal": [0, 58, 200, 229], "bson_valid": [0, 200, 210, 229, 235], "bson_validate_with_error": [0, 200, 209, 229], "bson_context_t": [0, 43, 44, 45, 153, 156, 229, 232], "bson_context_destroi": [0, 45, 46, 229], "bson_context_get_default": [0, 45, 46, 229], "bson_context_new": [0, 43, 46, 229], "bson_decimal128_t": [0, 12, 53, 54, 56, 83, 106, 214, 229, 232], "bson_decimal128_from_str": [0, 55, 229], "bson_decimal128_from_string_w_len": [0, 55, 229], "bson_decimal128_to_str": [0, 55, 229], "bson_error_t": [0, 70, 132, 133, 134, 147, 164, 171, 178, 210, 214, 228, 229, 232, 233, 236], "bson_set_error": [0, 60, 229], "bson_strerror_r": [0, 60, 229], "bson_iter_t": [0, 19, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122, 201, 214, 229, 232, 235], "bson_iter_arrai": [0, 115, 229], "bson_iter_as_bool": [0, 115, 229], "bson_iter_as_doubl": [0, 115, 229], "bson_iter_as_int64": [0, 115, 229], "bson_iter_binari": [0, 115, 229], "bson_iter_bool": [0, 115, 229], "bson_iter_cod": [0, 80, 115, 229], "bson_iter_codewscop": [0, 115, 229], "bson_iter_date_tim": [0, 115, 117, 229], "bson_iter_dbpoint": [0, 115, 229], "bson_iter_decimal128": [0, 115, 229], "bson_iter_docu": [0, 115, 229], "bson_iter_doubl": [0, 115, 229], "bson_iter_dup_utf8": [0, 115, 229], "bson_iter_find": [0, 91, 92, 95, 115, 229], "bson_iter_find_cas": [0, 87, 90, 91, 93, 95, 115, 229], "bson_iter_find_descend": [0, 115, 229, 235], "bson_iter_find_w_len": [0, 94, 115, 229], "bson_iter_init": [0, 92, 93, 94, 95, 115, 214, 229, 235], "bson_iter_init_find": [0, 91, 93, 94, 95, 115, 201, 229, 235], "bson_iter_init_find_cas": [0, 91, 92, 94, 95, 115, 229], "bson_iter_init_find_w_len": [0, 115, 229], "bson_iter_init_from_data": [0, 91, 92, 93, 94, 115, 229], "bson_iter_init_from_data_at_offset": [0, 102, 115, 229], "bson_iter_int32": [0, 115, 229, 235], "bson_iter_int64": [0, 115, 229], "bson_iter_kei": [0, 19, 100, 115, 229, 235], "bson_iter_key_len": [0, 96, 99, 115, 229], "bson_iter_next": [0, 91, 95, 115, 229, 235], "bson_iter_offset": [0, 96, 115, 229], "bson_iter_oid": [0, 91, 95, 115, 229], "bson_iter_overwrite_bool": [0, 115, 229], "bson_iter_overwrite_date_tim": [0, 115, 229], "bson_iter_overwrite_decimal128": [0, 115, 229], "bson_iter_overwrite_doubl": [0, 115, 229], "bson_iter_overwrite_int32": [0, 115, 229], "bson_iter_overwrite_int64": [0, 115, 229], "bson_iter_overwrite_oid": [0, 115, 229], "bson_iter_overwrite_timestamp": [0, 115, 229], "bson_iter_recurs": [0, 115, 229, 235], "bson_iter_regex": [0, 115, 229], "bson_iter_symbol": [0, 115, 229], "bson_iter_time_t": [0, 115, 229], "bson_iter_timestamp": [0, 115, 229], "bson_iter_timev": [0, 115, 229], "bson_iter_typ": [0, 73, 77, 78, 79, 80, 81, 83, 84, 85, 97, 98, 103, 115, 117, 120, 201, 229], "bson_iter_utf8": [0, 86, 115, 229], "bson_iter_valu": [0, 115, 213, 229], "bson_iter_visit_al": [0, 115, 214, 229], "bson_json_reader_t": [0, 123, 124, 129, 130, 131, 132, 133, 228, 229, 232, 233], "bson_json_data_reader_ingest": [0, 134, 229], "bson_json_data_reader_new": [0, 134, 229], "bson_json_reader_destroi": [0, 124, 130, 131, 134, 229, 233], "bson_json_reader_new": [0, 134, 229], "bson_json_reader_new_from_fd": [0, 134, 229, 233], "bson_json_reader_new_from_fil": [0, 134, 228, 229, 233], "bson_json_reader_read": [0, 70, 134, 147, 229, 233], "bson_md5_t": [0, 137, 138, 139, 229, 232], "bson_md5_append": [0, 140, 229], "bson_md5_finish": [0, 140, 229], "bson_md5_init": [0, 140, 229], "bson_oid_t": [0, 11, 24, 46, 82, 91, 95, 103, 110, 148, 149, 150, 151, 152, 153, 154, 155, 156, 159, 213, 214, 229, 232, 234], "bson_oid_compar": [0, 158, 229, 234], "bson_oid_copi": [0, 158, 229], "bson_oid_equ": [0, 158, 229, 234], "bson_oid_get_time_t": [0, 158, 229, 234], "bson_oid_hash": [0, 158, 229, 234], "bson_oid_init": [0, 46, 156, 158, 229, 234], "bson_oid_init_from_data": [0, 158, 229], "bson_oid_init_from_str": [0, 158, 229, 234], "bson_oid_init_sequ": [0, 158, 229], "bson_oid_is_valid": [0, 158, 229], "bson_oid_to_str": [0, 91, 95, 158, 229], "bson_reader_t": [0, 60, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 214, 229, 232, 233, 236], "bson_reader_destroi": [0, 161, 163, 171, 214, 229, 233, 236], "bson_reader_destroy_func_t": [0, 165, 169, 171, 229], "bson_reader_new_from_data": [0, 168, 171, 229, 236], "bson_reader_new_from_fd": [0, 171, 229, 233, 236], "bson_reader_new_from_fil": [0, 60, 171, 214, 229, 233, 236], "bson_reader_new_from_handl": [0, 161, 171, 229], "bson_reader_read": [0, 171, 214, 229, 233, 236], "bson_reader_read_func_t": [0, 165, 170, 171, 229], "bson_reader_reset": [0, 171, 229], "bson_reader_set_destroy_func": [0, 171, 229], "bson_reader_set_read_func": [0, 171, 229], "bson_reader_tel": [0, 171, 229, 236], "charact": [0, 25, 26, 39, 72, 191, 196, 203, 204, 205, 206, 207, 229, 232, 234], "string": [0, 3, 4, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 53, 54, 55, 56, 67, 68, 70, 79, 80, 86, 87, 88, 90, 94, 96, 99, 113, 114, 120, 127, 128, 134, 147, 155, 157, 159, 171, 178, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 202, 204, 206, 207, 208, 210, 215, 225, 229, 232, 233, 235, 239], "routin": [0, 225, 229, 232, 233], "bson_ascii_strtol": [0, 224, 229], "bson_isspac": [0, 224, 229], "bson_snprintf": [0, 215, 224, 229], "bson_strcasecmp": [0, 224, 229], "bson_strdup": [0, 224, 229], "bson_strdup_printf": [0, 185, 224, 229], "bson_strdupv_printf": [0, 224, 229], "bson_strfreev": [0, 224, 229], "bson_strncpi": [0, 224, 229], "bson_strndup": [0, 86, 224, 229], "bson_strnlen": [0, 224, 229], "bson_uint32_to_str": [0, 4, 224, 229], "bson_utf8_escape_for_json": [0, 224, 229], "bson_utf8_from_unichar": [0, 224, 229], "bson_utf8_get_char": [0, 203, 224, 229], "bson_utf8_next_char": [0, 203, 224, 229], "bson_utf8_valid": [0, 120, 224, 229, 239], "bson_vsnprintf": [0, 224, 229], "bson_string_t": [0, 188, 189, 190, 191, 192, 193, 195, 229, 232], "bson_string_append": [0, 190, 193, 194, 229], "bson_string_append_c": [0, 194, 229], "bson_string_append_printf": [0, 194, 229], "bson_string_append_unichar": [0, 194, 229], "bson_string_fre": [0, 193, 194, 229], "bson_string_new": [0, 194, 229], "bson_string_trunc": [0, 194, 229], "bson_subtype_t": [0, 6, 77, 213, 214, 229, 232], "bson_type_t": [0, 119, 213, 229, 232], "bson_unichar_t": [0, 191, 205, 206, 229, 232], "bson_value_t": [0, 33, 121, 211, 212, 229, 232], "bson_value_copi": [0, 213, 229], "bson_value_destroi": [0, 211, 213, 229], "bson_visitor_t": [0, 122, 209, 210, 229, 232, 235], "bson_writer_t": [0, 216, 217, 218, 219, 220, 221, 229, 232, 236], "bson_writer_begin": [0, 58, 222, 229, 236], "bson_writer_destroi": [0, 220, 222, 229], "bson_writer_end": [0, 216, 222, 229, 236], "bson_writer_get_length": [0, 222, 229], "bson_writer_new": [0, 217, 222, 229, 236], "bson_writer_rollback": [0, 216, 219, 222, 229], "system": [0, 11, 32, 132, 167, 227, 229, 232, 237], "clock": [0, 229, 232], "memori": [0, 1, 2, 14, 48, 61, 123, 135, 136, 137, 141, 142, 165, 171, 173, 174, 175, 177, 217, 219, 221, 222, 223, 225, 229, 232, 236], "manag": [0, 200, 221, 225, 229, 232, 236], "bson_fre": [0, 34, 35, 36, 37, 38, 50, 58, 86, 143, 171, 177, 181, 183, 184, 185, 197, 204, 214, 222, 223, 225, 229, 231, 233, 235, 236], "bson_malloc": [0, 143, 181, 229], "bson_malloc0": [0, 143, 229], "bson_aligned_alloc": [0, 143, 229], "bson_aligned_alloc0": [0, 143, 229], "bson_mem_restore_vt": [0, 143, 229], "bson_mem_set_vt": [0, 143, 229], "bson_realloc": [0, 143, 174, 229], "bson_realloc_ctx": [0, 143, 175, 222, 229, 236], "bson_realloc_func": [0, 143, 145, 220, 222, 229], "bson_zero_fre": [0, 143, 229], "libbson": [0, 34, 36, 40, 63, 64, 65, 66, 67, 137, 138, 139, 140, 141, 142, 143, 156, 175, 214, 225, 227, 228, 229, 233, 234, 235, 237, 238, 239], "version": [0, 39, 40, 63, 64, 65, 67, 87, 90, 134, 155, 171, 182, 198, 214, 229, 231, 232, 233], "bson_check_vers": [0, 229, 241], "bson_get_major_vers": [0, 229, 241], "bson_get_micro_vers": [0, 229, 241], "bson_get_minor_vers": [0, 229, 241], "bson_get_vers": [0, 229, 241], "void": [1, 2, 43, 44, 46, 48, 49, 50, 51, 56, 57, 61, 63, 64, 65, 66, 67, 69, 73, 77, 82, 84, 91, 95, 104, 105, 107, 108, 109, 110, 111, 117, 118, 122, 123, 126, 128, 129, 130, 135, 136, 137, 138, 139, 141, 142, 144, 145, 149, 153, 154, 155, 156, 159, 160, 161, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 181, 187, 188, 189, 190, 191, 195, 196, 200, 203, 205, 211, 212, 214, 217, 218, 220, 221, 222, 223, 241], "size_t": [1, 2, 34, 35, 36, 37, 38, 71, 95, 96, 123, 124, 130, 135, 136, 142, 145, 146, 157, 162, 167, 171, 173, 174, 175, 177, 179, 180, 186, 196, 197, 198, 202, 208, 209, 214, 215, 219, 220, 222, 223, 233, 235, 236], "align": [1, 2, 142], "num_byt": [1, 2, 135, 136, 142, 173, 174, 175], "The": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 57, 58, 59, 60, 62, 63, 64, 65, 66, 69, 70, 71, 73, 75, 76, 77, 78, 79, 80, 81, 82, 84, 87, 88, 89, 90, 91, 95, 96, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 124, 125, 127, 128, 130, 134, 137, 144, 145, 146, 147, 148, 156, 157, 158, 161, 162, 163, 166, 167, 171, 177, 179, 180, 186, 191, 195, 196, 198, 200, 201, 202, 203, 204, 205, 208, 210, 213, 214, 215, 216, 217, 219, 220, 222, 223, 227, 231, 233, 234, 235, 236, 241], "alloc": [1, 2, 34, 35, 36, 37, 38, 43, 45, 47, 57, 60, 86, 115, 124, 127, 130, 131, 132, 135, 136, 141, 142, 143, 144, 145, 146, 147, 162, 163, 164, 165, 173, 174, 175, 177, 179, 183, 184, 185, 193, 194, 197, 200, 204, 217, 220, 222, 240], "byte": [1, 2, 3, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 53, 54, 70, 71, 84, 95, 96, 120, 135, 136, 137, 145, 146, 147, 150, 154, 155, 156, 158, 167, 173, 177, 180, 191, 195, 196, 198, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 215, 225, 234, 235, 239, 240], "must": [1, 2, 4, 6, 8, 14, 24, 32, 39, 48, 67, 70, 71, 73, 84, 91, 95, 96, 115, 141, 142, 162, 163, 177, 181, 195, 196, 211, 216, 234, 235, 239], "power": [1, 2, 193, 194], "2": [1, 2, 3, 32, 46, 50, 67, 134, 140, 156, 167, 171, 184, 190, 210, 214, 233], "multipl": [1, 2, 25, 26, 207], "sizeof": [1, 2, 135, 136, 158, 173, 181, 202], "number": [1, 2, 32, 39, 52, 63, 64, 65, 81, 116, 118, 135, 156, 167, 180, 196, 202, 203, 205, 215, 224, 225, 234], "thi": [1, 2, 4, 5, 9, 15, 20, 21, 22, 27, 29, 31, 32, 33, 36, 40, 41, 43, 44, 45, 46, 49, 50, 51, 57, 58, 61, 62, 68, 69, 73, 77, 78, 79, 83, 84, 86, 92, 93, 94, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 120, 121, 127, 128, 134, 135, 136, 137, 138, 139, 141, 142, 143, 146, 156, 161, 165, 167, 169, 171, 173, 174, 175, 177, 178, 179, 180, 181, 184, 185, 186, 187, 188, 194, 195, 196, 199, 200, 202, 203, 207, 211, 214, 217, 219, 221, 222, 223, 225, 227, 233, 234, 235, 236, 240, 241], "i": [1, 2, 3, 5, 6, 9, 10, 11, 15, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 54, 57, 58, 60, 69, 70, 72, 73, 77, 78, 79, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 117, 120, 121, 124, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 142, 143, 144, 145, 146, 147, 156, 157, 158, 160, 161, 162, 163, 164, 166, 167, 169, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 183, 185, 186, 188, 192, 194, 195, 196, 197, 200, 201, 202, 203, 204, 205, 207, 208, 209, 210, 212, 213, 214, 217, 219, 220, 221, 222, 223, 225, 227, 228, 231, 233, 234, 235, 236, 237, 239], "portabl": [1, 2, 39, 135, 136, 143, 173, 180, 182, 186, 198], "aligned_alloc": [1, 2, 142], "wrapper": [1, 2, 135, 136, 173, 180, 181, 186], "In": [1, 2, 135, 136, 173, 225, 229, 232, 233, 238], "gener": [1, 2, 4, 45, 46, 50, 135, 136, 146, 151, 152, 153, 156, 173, 202, 228, 235, 237], "function": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 41, 42, 43, 44, 47, 48, 49, 50, 51, 52, 57, 58, 59, 61, 62, 69, 70, 71, 72, 73, 76, 77, 78, 79, 80, 81, 83, 84, 86, 87, 89, 90, 91, 92, 93, 94, 95, 97, 98, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 122, 127, 135, 136, 137, 138, 139, 141, 142, 144, 145, 146, 147, 148, 156, 161, 162, 163, 165, 166, 167, 170, 173, 174, 175, 177, 178, 179, 181, 184, 185, 193, 202, 207, 211, 220, 223, 225, 228, 231, 233, 234, 235, 236, 239], "an": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 48, 57, 60, 68, 70, 73, 78, 80, 84, 86, 88, 90, 91, 94, 95, 96, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 115, 117, 120, 127, 130, 131, 133, 134, 135, 136, 140, 145, 147, 153, 156, 158, 161, 166, 171, 173, 177, 181, 186, 189, 194, 200, 201, 203, 214, 222, 225, 228, 233, 234, 235], "least": [1, 2, 135, 136, 173, 177, 196, 240], "bigger": [1, 2, 135, 136, 173], "If": [1, 2, 9, 19, 34, 35, 36, 37, 38, 39, 41, 58, 87, 89, 90, 112, 114, 121, 135, 136, 145, 163, 166, 173, 175, 176, 183, 196, 202, 204, 208, 214, 231, 234, 235, 239], "wa": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 39, 53, 54, 63, 64, 65, 68, 70, 71, 83, 87, 88, 89, 90, 91, 95, 96, 101, 112, 122, 133, 135, 136, 158, 166, 173, 181, 198, 209, 216, 225, 234, 235], "failur": [1, 2, 34, 35, 36, 37, 38, 112, 135, 136, 141, 142, 166, 167, 172, 173, 228], "process": [1, 2, 37, 44, 45, 134, 135, 136, 141, 142, 171, 173, 233], "abort": [1, 2, 134, 135, 136, 143, 173, 214, 219, 221, 233], "A": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 45, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 61, 62, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, 127, 129, 130, 131, 132, 133, 135, 136, 137, 138, 139, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 202, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 221, 223, 225, 232, 234, 240], "pointer": [1, 2, 24, 70, 71, 77, 80, 96, 130, 135, 136, 145, 165, 173, 174, 175, 177, 202, 207], "region": [1, 2, 61, 135, 136, 137, 171, 173, 174, 175, 221, 222, 223, 225, 236], "which": [1, 2, 32, 36, 39, 62, 79, 80, 95, 99, 113, 135, 136, 171, 173, 177, 193, 196, 200, 207, 210, 233, 236], "ha": [1, 2, 45, 71, 101, 120, 127, 128, 135, 136, 143, 173, 200, 202, 221, 239], "NOT": [1, 135, 173, 217, 237], "been": [1, 2, 120, 135, 136, 143, 173, 200], "zero": [1, 2, 39, 41, 52, 58, 74, 135, 136, 167, 173, 196, 210, 223], "also": [2, 45, 68, 80, 136, 180, 204, 231, 232, 233, 234, 236], "set": [2, 34, 35, 36, 37, 38, 39, 53, 54, 58, 70, 113, 114, 122, 132, 136, 142, 143, 145, 147, 164, 166, 169, 170, 177, 178, 196, 197, 200, 202, 209, 210, 214, 225, 231, 240], "defin": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 55, 73, 77, 78, 79, 80, 81, 83, 84, 85, 97, 98, 103, 115, 117, 120, 127, 128, 130, 134, 158, 200, 241], "b": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 50, 68, 69, 71, 89, 115, 134, 171, 176, 181, 200, 225, 231, 233, 235], "kei": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 49, 50, 68, 87, 88, 89, 90, 92, 93, 94, 96, 99, 100, 115, 181, 200, 209, 210, 214, 225, 234, 235], "val": [3, 6, 7, 8, 9, 10, 12, 13, 16, 17, 18, 24, 25, 27, 28, 29, 30, 32, 33, 200], "int": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 39, 40, 41, 46, 50, 54, 55, 63, 64, 65, 66, 72, 90, 94, 115, 131, 133, 134, 148, 158, 163, 171, 177, 180, 181, 182, 186, 200, 214, 215, 222, 225, 231, 233, 236], "strlen": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 70, 100, 147, 200, 225], "bool": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 40, 42, 53, 54, 58, 59, 68, 70, 71, 72, 74, 75, 78, 83, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 101, 104, 106, 112, 122, 124, 130, 131, 150, 157, 163, 166, 171, 177, 181, 192, 208, 209, 210, 213, 214, 216, 225, 236], "bson": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 46, 47, 50, 52, 55, 57, 58, 59, 60, 62, 66, 68, 70, 80, 82, 91, 92, 93, 94, 95, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 114, 115, 119, 122, 124, 125, 127, 128, 131, 133, 134, 140, 143, 145, 146, 157, 158, 171, 177, 181, 194, 199, 200, 201, 202, 209, 210, 213, 214, 216, 222, 227, 229, 230, 232, 238], "const": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 47, 48, 49, 50, 51, 52, 53, 54, 56, 59, 62, 67, 68, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 106, 110, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 132, 134, 137, 142, 146, 147, 148, 149, 150, 151, 152, 154, 155, 157, 159, 162, 164, 166, 171, 178, 180, 182, 183, 184, 185, 188, 190, 193, 196, 197, 198, 202, 203, 204, 206, 207, 208, 209, 210, 211, 213, 214, 215, 231, 233, 236], "char": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 49, 50, 51, 53, 54, 55, 56, 60, 67, 68, 70, 79, 80, 82, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 99, 113, 114, 120, 132, 134, 155, 157, 158, 159, 164, 171, 177, 178, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 193, 194, 196, 197, 198, 202, 203, 204, 205, 206, 207, 208, 213, 214, 215, 222, 225, 231, 233, 235, 236], "key_length": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "arrai": [3, 4, 5, 11, 34, 73, 112, 187, 235], "ascii": [3, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 53, 54, 88, 188, 189, 204], "c": [3, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 50, 68, 72, 89, 115, 189, 203, 214, 229, 232, 234, 238], "contain": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 53, 54, 58, 68, 70, 80, 81, 87, 88, 90, 95, 104, 113, 115, 116, 118, 123, 125, 128, 130, 134, 135, 143, 145, 147, 150, 151, 154, 155, 156, 157, 158, 171, 173, 174, 175, 176, 199, 200, 201, 202, 203, 208, 210, 213, 214, 233, 234, 239, 240], "name": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 49, 50, 51, 68, 82, 87, 88, 90, 115, 132, 228, 234, 235], "field": [3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 49, 50, 51, 68, 74, 75, 77, 79, 82, 83, 85, 88, 96, 97, 98, 115, 120, 122, 142, 199, 200, 201, 214, 225], "length": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 54, 56, 58, 70, 71, 73, 77, 79, 80, 82, 84, 86, 90, 94, 95, 96, 99, 100, 114, 120, 123, 127, 128, 137, 140, 145, 146, 147, 157, 162, 171, 177, 195, 198, 200, 204, 208, 210, 219, 220, 225, 234, 235, 239], "1": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 39, 46, 50, 53, 54, 67, 70, 72, 133, 134, 147, 167, 171, 172, 177, 184, 185, 200, 202, 204, 210, 214, 225, 228, 231, 233, 234, 235, 236, 239, 241], "determin": [3, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 70, 72, 74, 88, 147, 201, 213, 225, 228], "shall": [3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 29, 31, 32, 34, 36, 41, 42, 43, 44, 47, 48, 49, 50, 51, 52, 57, 58, 59, 61, 62, 69, 71, 73, 76, 77, 78, 81, 84, 87, 89, 90, 91, 95, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 127, 141, 142, 144, 146, 148, 162, 163, 166, 179], "append": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 42, 188, 189, 190, 191, 193, 200, 221, 225], "us": [3, 6, 7, 8, 11, 13, 14, 19, 20, 21, 27, 29, 31, 32, 33, 34, 36, 37, 39, 41, 43, 45, 46, 49, 58, 60, 61, 62, 71, 80, 82, 88, 96, 101, 102, 112, 115, 117, 120, 122, 127, 128, 132, 134, 137, 138, 139, 141, 142, 144, 145, 153, 154, 158, 161, 162, 164, 165, 169, 171, 174, 175, 176, 177, 179, 181, 193, 194, 199, 200, 201, 202, 203, 205, 209, 210, 211, 214, 216, 219, 220, 221, 222, 223, 225, 227, 229, 230, 232, 233, 234, 236, 237, 238, 239, 241], "specifi": [3, 10, 13, 46, 49, 50, 51, 57, 105, 225, 231, 235], "type": [3, 9, 11, 13, 16, 20, 21, 23, 24, 25, 26, 27, 29, 31, 33, 55, 73, 74, 75, 77, 79, 82, 83, 84, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 117, 119, 121, 158, 201, 213, 214, 225, 228, 231, 233], "respons": [3, 34, 35, 36, 37, 38, 217, 237], "caller": [3, 4, 34, 35, 36, 37, 38, 60, 91, 95, 120, 216, 217, 220, 235], "ensur": 3, "ar": [3, 29, 41, 43, 45, 46, 57, 59, 70, 71, 132, 133, 134, 137, 138, 139, 140, 147, 150, 164, 166, 171, 177, 182, 194, 204, 208, 210, 223, 224, 225, 227, 231, 233, 235, 237, 239, 240, 241], "properli": [3, 227], "format": [3, 10, 34, 35, 36, 37, 38, 53, 54, 67, 70, 134, 156, 178, 180, 184, 185, 190, 202, 214, 215, 225, 227, 232, 233, 234, 239], "0": [3, 6, 32, 34, 36, 39, 41, 46, 55, 70, 75, 115, 120, 133, 134, 147, 148, 156, 158, 167, 171, 173, 177, 180, 182, 185, 194, 195, 196, 197, 198, 202, 207, 208, 210, 214, 215, 222, 231, 233, 234, 235, 236, 239, 241], "so": [3, 4, 41, 141, 142, 143, 195, 231, 235, 236], "forth": 3, "true": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 40, 42, 53, 54, 59, 68, 70, 71, 74, 78, 83, 87, 88, 89, 90, 91, 95, 96, 101, 112, 122, 150, 157, 163, 166, 177, 181, 194, 208, 209, 210, 214, 216, 225, 239], "oper": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 42, 45, 134, 167, 177, 237], "appli": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "successfulli": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 71, 91, 95, 96, 181], "fail": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 71, 134, 166, 171, 210, 233, 235, 236, 239, 240], "grow": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 177, 236], "larger": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "than": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 40, 41, 78, 100, 120, 148, 167, 196, 234], "int32_max": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 177], "child": [4, 5, 13, 14, 15, 112, 200, 214, 225, 235], "call": [4, 5, 14, 15, 22, 34, 35, 36, 37, 38, 43, 45, 49, 50, 51, 57, 58, 77, 78, 79, 83, 86, 91, 95, 97, 98, 100, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 120, 131, 141, 142, 145, 161, 163, 167, 176, 177, 181, 194, 200, 207, 214, 216, 225, 240], "begin": [4, 14, 142, 168, 207, 216, 235], "allow": [4, 9, 32, 46, 104, 105, 106, 107, 108, 109, 110, 111, 121, 143, 165, 169, 208, 210, 215, 225, 233, 239], "increment": [4, 29, 66, 111, 117, 213, 234], "build": [4, 194, 222, 225, 232, 236], "sub": [4, 13, 14, 73, 84, 115], "do": [4, 32, 33, 141, 142, 143, 166, 175, 178, 194, 235, 236], "yield": 4, "better": 4, "perform": [4, 9, 134, 184, 194, 225, 235, 241], "you": [4, 33, 43, 57, 61, 62, 67, 77, 78, 83, 97, 98, 103, 117, 120, 134, 158, 171, 175, 177, 179, 181, 194, 209, 210, 219, 221, 222, 223, 225, 231, 233, 234, 235, 236, 237, 239, 240, 241], "serial": [4, 145, 222, 236], "singl": [4, 70, 147, 200, 203, 205, 222, 234], "buffer": [4, 6, 58, 62, 71, 73, 77, 80, 84, 95, 96, 124, 130, 140, 145, 146, 154, 162, 166, 167, 168, 176, 177, 179, 180, 193, 196, 200, 202, 216, 217, 218, 219, 220, 222, 225, 235, 236, 240], "when": [4, 11, 14, 20, 21, 43, 57, 58, 63, 64, 65, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 120, 131, 144, 146, 161, 163, 169, 174, 177, 193, 200, 203, 211, 214, 216, 220, 222, 225, 227, 235], "done": [4, 57, 104, 105, 106, 107, 108, 109, 110, 111, 120], "For": [4, 87, 90, 142, 181, 200, 221, 222, 229, 230, 232, 239], "element": [4, 6, 7, 8, 9, 10, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 31, 34, 52, 68, 73, 76, 77, 78, 80, 81, 82, 84, 87, 88, 90, 91, 95, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 235], "see": [4, 53, 54, 60, 68, 87, 90, 122, 134, 171, 199, 200, 209, 219, 233, 235, 236, 239], "initi": [5, 14, 15, 48, 53, 54, 58, 69, 70, 71, 89, 91, 92, 93, 94, 95, 96, 112, 139, 145, 147, 154, 155, 176, 177, 181, 214, 219, 225, 236], "complet": [5, 14, 15, 138, 216, 218], "start": [5, 34, 39, 49, 50, 96, 158, 210, 225], "invalid": [5, 15, 19, 39, 42, 70, 71, 79, 87, 89, 90, 101, 112, 113, 117, 120, 121, 177, 181, 207, 210, 228, 239], "after": [5, 15, 92, 93, 94, 101, 171, 176, 177, 181, 182, 194, 196, 214, 217, 233, 236], "success": [5, 15, 19, 34, 35, 36, 37, 38, 42, 70, 132, 133, 145, 146, 147, 164, 165], "subtyp": [6, 77, 199, 200, 213], "len": [6, 54, 62, 70, 96, 123, 134, 147, 194, 195, 200, 205, 213, 233], "uint8_t": [6, 58, 62, 71, 73, 77, 80, 84, 95, 96, 123, 137, 138, 140, 145, 146, 147, 154, 158, 162, 171, 177, 200, 213, 214, 220, 222, 236], "binari": [6, 77, 199], "uint32_t": [6, 29, 52, 58, 60, 73, 77, 79, 80, 82, 84, 86, 96, 100, 102, 111, 114, 117, 120, 137, 140, 152, 177, 178, 194, 195, 200, 202, 203, 205, 213, 214], "indic": [6, 58, 72, 90, 94, 192, 200, 208, 210, 225, 239], "emb": 6, "data": [6, 55, 70, 71, 77, 95, 96, 102, 122, 123, 130, 133, 137, 145, 146, 147, 154, 162, 165, 167, 170, 171, 181, 199, 200, 202, 213, 214, 223, 229, 230, 232, 235, 237], "mai": [6, 10, 45, 70, 104, 105, 106, 107, 108, 109, 110, 111, 115, 134, 143, 146, 147, 171, 176, 199, 207, 214, 216, 222, 233, 234, 235, 239, 241], "null": [6, 8, 9, 19, 27, 32, 34, 35, 36, 37, 38, 39, 43, 46, 49, 50, 54, 57, 58, 77, 79, 113, 114, 126, 129, 132, 145, 146, 147, 153, 158, 160, 164, 165, 166, 171, 174, 175, 177, 178, 181, 183, 187, 188, 192, 193, 194, 196, 200, 204, 208, 210, 212, 214, 217, 222, 225, 228, 231, 233, 234, 235, 236, 239], "empti": [6, 145, 200, 225], "valu": [6, 7, 10, 12, 13, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 39, 55, 63, 64, 65, 74, 75, 78, 83, 96, 97, 98, 104, 105, 106, 107, 108, 109, 110, 121, 148, 156, 158, 167, 181, 202, 203, 209, 210, 212, 213, 225, 233], "new": [6, 7, 8, 10, 12, 16, 17, 18, 23, 24, 25, 26, 27, 29, 31, 33, 45, 47, 49, 50, 70, 82, 104, 106, 107, 124, 127, 130, 131, 132, 137, 138, 139, 142, 143, 144, 145, 146, 147, 153, 156, 162, 163, 164, 173, 177, 179, 183, 193, 195, 197, 200, 204, 216, 220, 225, 233, 235], "provid": [6, 7, 8, 9, 53, 54, 66, 71, 80, 113, 122, 134, 145, 154, 156, 161, 163, 165, 171, 203, 214, 222, 224, 225, 232, 233, 234, 235, 236, 237, 239], "fals": [7, 19, 42, 53, 54, 58, 68, 70, 71, 72, 78, 83, 87, 89, 90, 101, 112, 122, 134, 150, 166, 171, 177, 181, 192, 194, 209, 210, 214, 233, 239], "boolean": [7, 72, 74, 78], "javascript": [8, 9, 31, 80], "utf": [8, 9, 32, 34, 35, 36, 37, 38, 70, 79, 80, 86, 120, 147, 188, 191, 194, 203, 204, 205, 206, 207, 208, 210, 224, 225, 229, 232, 235, 238], "8": [8, 9, 32, 34, 35, 36, 37, 38, 39, 70, 79, 80, 86, 120, 147, 156, 188, 191, 194, 203, 204, 205, 206, 207, 208, 210, 224, 225, 229, 232, 235, 238, 241], "encod": [8, 9, 32, 34, 35, 36, 37, 38, 53, 54, 70, 79, 80, 86, 120, 125, 127, 128, 132, 146, 147, 155, 157, 158, 159, 164, 188, 191, 194, 200, 204, 206, 207, 225, 227, 235], "termin": [8, 9, 32, 39, 49, 50, 54, 187, 196, 204, 239], "scope": [9, 80, 200], "fragment": 9, "option": [9, 19, 25, 26, 34, 35, 36, 37, 38, 70, 80, 86, 113, 120, 122, 128, 145, 147, 153, 156, 161, 192, 210, 213, 214], "like": [9, 67, 89, 167, 185, 190, 194, 200, 202, 214, 215, 223, 235, 237], "except": [9, 34, 49, 50, 51, 72, 80, 86, 134, 171, 174, 185, 204, 223, 233], "form": 9, "document": [9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 33, 34, 37, 41, 42, 47, 58, 59, 62, 80, 84, 91, 95, 101, 104, 105, 106, 107, 108, 109, 110, 111, 112, 115, 119, 122, 124, 127, 128, 133, 134, 145, 146, 166, 171, 177, 179, 200, 209, 210, 214, 216, 219, 222, 228, 229, 232, 233, 238], "code": [9, 27, 31, 49, 50, 60, 80, 82, 137, 138, 139, 152, 178, 210, 213, 214, 228, 240], "otherwis": [9, 53, 54, 57, 68, 70, 71, 83, 112, 132, 146, 147, 150, 164, 165, 172, 192, 209, 210], "int64_t": [10, 18, 39, 66, 76, 81, 98, 105, 109, 213, 214], "date": [10, 22, 105, 117], "time": [10, 22, 96, 99, 100, 102, 105, 115, 117, 151, 156, 158, 225, 233, 237, 240], "millisecond": [10, 28, 30, 81, 105], "sinc": [10, 28, 30, 81, 105, 116, 118, 151, 158], "unix": [10, 28, 30, 81, 105, 116, 118, 151, 158, 167, 234, 237], "epoch": [10, 28, 30, 81, 105, 116, 118, 151, 158], "timezon": 10, "inform": [10, 60, 122, 199, 214, 233, 235, 236, 239], "assum": 10, "utc": [10, 22], "neg": [10, 182], "coll": [11, 200], "oid": [11, 24, 46, 82, 91, 95, 110, 151, 152, 153, 154, 155, 156, 158, 159, 200, 213, 234], "collect": [11, 82, 213], "target": [11, 231], "identifi": [11, 234], "dbpointer": 11, "deprec": [11, 27, 31, 45, 82, 114, 156, 214], "should": [11, 25, 26, 27, 31, 43, 45, 47, 50, 57, 58, 60, 61, 62, 70, 79, 80, 82, 83, 86, 87, 89, 90, 96, 97, 98, 99, 103, 112, 113, 115, 121, 124, 130, 131, 137, 138, 139, 144, 163, 166, 169, 179, 183, 184, 185, 192, 193, 197, 203, 204, 225, 239], "onli": [11, 29, 46, 66, 70, 71, 77, 104, 105, 106, 107, 108, 109, 110, 111, 112, 147, 156, 168, 169, 235, 240, 241], "interact": 11, "legaci": [11, 27, 32, 34, 36], "decim": 12, "128": [12, 200], "uniniti": [14, 48, 70, 177, 181], "add": [14, 225], "avoid": [14, 48, 71, 235], "leak": [14, 48, 229, 230, 232], "doubl": [16, 75, 85, 107, 213, 214], "int32_t": [17, 97, 108, 127, 128, 213, 214], "32": [17, 97, 152, 203, 206], "bit": [17, 18, 39, 76, 81, 97, 98, 140, 152, 156, 203, 206, 234], "sign": [17, 18, 39, 76], "integ": [17, 18, 34, 39, 52, 76, 81, 90, 94, 97, 98, 100, 102, 182], "64": [18, 39, 76, 81, 98, 140, 156], "iter": [19, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 201, 203, 213, 214, 229, 232, 236, 238], "locat": [19, 34, 35, 36, 37, 38, 56, 58, 70, 73, 77, 79, 80, 82, 83, 84, 86, 88, 92, 93, 94, 120, 122, 138, 147, 159, 186, 202, 205, 209, 214, 215, 235], "posit": [19, 52, 172, 182], "current": [19, 22, 74, 75, 76, 88, 96, 99, 100, 102, 112, 113, 120, 121, 156, 172, 195, 206, 207, 219, 221], "would": [19, 42, 194, 225], "overflow": [19, 42], "maximum": [19, 42, 127, 128, 198, 200, 214], "size": [19, 42, 115, 124, 130, 145, 173, 174, 175, 177, 179, 180, 186, 196, 198, 200, 202, 215, 223, 240], "anoth": [19, 42, 58, 158, 181], "state": [19, 42, 214, 225], "detect": [19, 42, 166, 209, 221, 240], "bson_type_maxkei": [20, 119, 201], "primarili": [20, 21, 29], "queri": [20, 21], "unlik": [20, 21], "store": [20, 21, 58, 79, 80, 138, 186, 205, 223, 234], "mongodb": [20, 21, 29, 35, 36, 37, 38, 70, 89, 125, 128, 134, 171, 221, 228, 232, 233, 234, 235], "bson_type_minkei": [21, 119, 201], "helper": [22, 28, 30, 178, 239], "get": [22, 63, 64, 65, 177], "bson_type_date_tim": [22, 81, 105, 116, 118, 119, 201], "intern": [22, 41, 71, 130, 177, 186, 200, 228, 240], "bson_type_nul": [23, 74, 119, 201], "bson_type_oid": [24, 103, 110, 119, 201], "opt": [25, 37, 126, 128, 200], "regex": [25, 26, 113, 213], "bson_type_regex": [25, 26, 113, 119, 201], "valid": [25, 26, 32, 39, 53, 54, 70, 71, 77, 96, 115, 120, 147, 157, 162, 163, 168, 208, 209, 210, 228], "includ": [25, 26, 29, 34, 36, 46, 50, 55, 60, 76, 115, 125, 128, 134, 158, 171, 177, 187, 194, 199, 200, 201, 213, 214, 219, 222, 225, 233, 236], "case": [25, 26, 45, 87, 88, 90, 178, 182, 214], "insensit": [25, 26], "m": [25, 26], "match": [25, 26, 88, 196, 204, 235], "x": [25, 26], "verbos": [25, 26], "mode": [25, 26, 125, 127, 128, 163], "l": [25, 26], "make": [25, 26, 143, 224, 225, 235], "w": [25, 26], "local": [25, 26, 46, 88], "depend": [25, 26, 234, 240], "": [25, 26, 34, 35, 36, 37, 38, 39, 40, 50, 55, 60, 63, 64, 65, 67, 77, 91, 95, 96, 115, 134, 158, 171, 177, 194, 198, 202, 214, 225, 231, 233, 235, 236, 237, 240], "dotal": [25, 26], "everyth": [25, 26], "u": [25, 26, 143, 158, 203, 234, 235, 236], "unicod": [25, 26, 191, 203, 205], "regex_length": 26, "symbol": [27, 114, 213], "bson_type_symbol": [27, 114, 119, 201], "due": [27, 32, 122], "behavior": [27, 32, 46, 196], "pass": [27, 32, 37, 39, 60, 96, 101, 121, 145, 161, 186, 219, 225, 239], "To": [27, 32, 127, 128, 143, 166, 176, 225, 233, 234, 235, 239, 240], "directli": [27, 32, 177, 222], "prefer": [27, 32, 50, 225, 233], "time_t": [28, 116, 151, 234], "take": [28, 30, 51, 120, 174, 177, 185, 194, 225], "instead": [28, 30, 58, 142, 214, 227, 231], "inc": [29, 134, 171, 200, 233], "timestamp": [29, 111, 117, 213, 234], "similar": [29, 80, 86, 136, 167, 233], "differ": [29, 66, 225], "thei": [29, 150, 182, 227], "second": [29, 116, 118, 151, 158, 225, 235], "precis": 29, "intra": [29, 117], "server": [29, 117], "commun": [29, 32, 117], "bson_type_timestamp": [29, 111, 117, 119, 201], "struct": [30, 46, 55, 60, 66, 96, 115, 118, 128, 134, 140, 142, 158, 171, 181, 194, 200, 213, 214, 222, 240], "timev": [30, 66, 118], "bson_type_undefin": [31, 74, 119, 201], "undefin": [31, 214], "common": [31, 233], "howev": [31, 115, 143, 156], "exclud": [32, 49, 50, 51, 70, 147, 195, 215], "trail": [32, 70, 147, 180, 195, 196, 197, 235], "some": [32, 194, 228], "implement": [32, 66, 140, 143, 169, 175, 227, 237], "within": [32, 52, 66, 68, 156, 172, 200, 207, 208, 209, 235, 239], "rememb": 32, "could": [32, 96, 157, 177, 214, 225, 228, 236], "caus": [32, 240], "issu": 32, "extern": [32, 115], "support": [32, 76, 227, 233, 236], "It": [32, 58, 60, 66, 72, 77, 78, 79, 80, 101, 104, 105, 106, 107, 108, 109, 110, 111, 113, 115, 117, 120, 144, 156, 178, 180, 201, 202, 203, 207, 232, 233, 234], "suggest": [32, 120], "modifi": [32, 62, 67, 77, 79, 80, 99, 103, 113, 115, 120, 121, 166, 209, 210], "represent": [32, 67, 120, 191, 203, 206, 233], "embed": [32, 112, 188, 208, 210, 235], "mani": [32, 222, 227, 228], "libc": [32, 167], "utf8": [32, 120, 204, 205, 206, 207, 208], "box": [33, 121, 211, 213], "want": [33, 62, 117, 120, 134, 219, 223, 225, 233, 234, 235, 236, 241], "copi": [33, 47, 48, 49, 50, 51, 62, 71, 134, 146, 149, 162, 171, 177, 183, 193, 196, 197, 211, 233, 235], "between": [33, 115], "know": [33, 74, 121, 239], "until": [33, 77, 88], "runtim": [33, 40, 120, 121, 201, 213], "result": [34, 35, 36, 37, 38, 39, 47, 56, 58, 61, 71, 80, 86, 114, 120, 127, 128, 141, 142, 159, 162, 179, 180, 202, 204, 205, 215], "json": [34, 35, 36, 37, 38, 70, 123, 124, 125, 127, 128, 131, 133, 134, 147, 171, 177, 204, 225, 228, 229, 230, 232, 235], "outermost": 34, "rather": [34, 196], "free": [34, 35, 36, 37, 38, 57, 58, 60, 61, 67, 129, 142, 187, 192, 200], "non": [34, 35, 36, 37, 38, 58, 74, 79, 114, 142, 204], "newli": [34, 35, 36, 37, 38, 45, 47, 86, 124, 127, 130, 131, 132, 144, 145, 146, 147, 162, 163, 164, 165, 179, 183, 184, 185, 193, 197, 204, 220], "upon": [34, 35, 36, 37, 38, 91, 95, 134, 236], "h": [34, 36, 46, 50, 55, 60, 115, 125, 128, 134, 158, 171, 177, 194, 199, 200, 201, 213, 214, 222, 225, 233, 236], "main": [34, 36, 46, 50, 55, 134, 158, 171, 177, 181, 214, 222, 231, 233, 236], "str": [34, 35, 36, 37, 38, 39, 50, 56, 155, 157, 158, 159, 171, 180, 183, 188, 189, 192, 193, 194, 197, 202, 203, 213, 215, 225, 233, 236], "normal": [34, 214], "continu": [34, 134, 171, 214, 233], "sequenti": [34, 156, 236], "foo": [34, 36, 200, 201, 225, 235], "bar": [34, 36, 200, 235], "print": [34, 36, 50, 134, 171, 233, 235], "printf": [34, 35, 36, 37, 38, 50, 55, 91, 95, 115, 158, 177, 178, 180, 184, 185, 190, 194, 201, 202, 203, 213, 214, 215, 225, 231, 233, 234, 235, 236, 239], "n": [34, 35, 36, 37, 38, 50, 55, 60, 91, 95, 115, 134, 158, 166, 171, 177, 194, 201, 202, 203, 213, 214, 225, 231, 233, 234, 235, 236, 239], "canon": [35, 233], "extend": [35, 36, 37, 38, 70, 125, 128, 134, 228, 233], "doc": [35, 37, 38, 91, 134, 166, 199, 200, 201, 214, 222, 225, 233, 235, 236], "supersed": 36, "same": [36, 41, 50, 51, 150, 200, 225], "all": [36, 43, 49, 50, 51, 87, 88, 90, 120, 122, 125, 126, 137, 138, 139, 140, 160, 166, 201, 209, 210, 224, 231, 235, 237, 240], "other": [36, 41, 46, 59, 75, 78, 120, 165, 177, 204, 223, 228], "driver": [36, 120, 232], "structur": [37, 46, 55, 57, 58, 60, 115, 128, 134, 144, 158, 171, 176, 181, 192, 200, 210, 213, 214, 216, 220, 228, 234, 237], "pleas": [37, 49], "refer": [37, 71, 120, 229, 232, 239], "more": [37, 137, 170, 199, 210, 222, 234, 235, 236, 239], "detail": [37, 209, 210], "bson_json_opts_new": [37, 128, 229], "bson_json_mode_canon": [37, 125], "bson_max_len_unlimit": [37, 127, 128], "bson_json_opts_destroi": [37, 128, 229], "relax": [38, 233], "endptr": 39, "base": [39, 123, 148, 214, 225, 234, 241], "convert": [39, 56, 124, 131, 134, 158, 159, 171, 202, 204, 205, 206, 227, 232, 235], "address": 39, "first": [39, 49, 50, 51, 63, 91, 95, 140, 156, 177, 223, 225, 235], "convers": [39, 134, 214], "strtoll": 39, "accord": 39, "given": [39, 219], "16": [39, 138, 202, 241], "10": [39, 202], "lead": 39, "whitespac": 39, "ignor": [39, 227], "infer": 39, "from": [39, 49, 50, 51, 73, 74, 83, 84, 96, 97, 98, 130, 131, 133, 163, 165, 166, 167, 168, 170, 171, 177, 196, 197, 201, 202, 207, 211, 217, 222, 227, 232, 233, 234, 235, 237], "0x": 39, "digit": 39, "9": 39, "assign": 39, "its": [39, 176, 177, 191, 240], "entir": [39, 196], "encount": [39, 101], "errno": [39, 186], "einval": 39, "out": [39, 60, 72, 83, 143, 145, 210, 216, 228], "rang": 39, "erang": 39, "llong_max": 39, "llong_min": 39, "required_major": 40, "required_minor": 40, "required_micro": 40, "minimum": [40, 231], "major": [40, 63, 64, 65, 241], "requir": [40, 60, 61, 134, 143, 171, 214, 225, 231, 233, 234, 237], "minor": [40, 63, 64, 65, 241], "micro": [40, 63, 64, 65, 241], "check": [40, 45, 68, 72, 77, 78, 150, 157, 166, 198, 200, 210, 219, 228, 229, 230, 232, 235, 241], "releas": [40, 43, 63, 64, 65, 115, 126, 160, 212, 217], "meet": 40, "greater": [40, 41, 148, 167, 234], "equal": [40, 41, 59, 150, 158, 195, 234], "compar": [41, 156], "two": [41, 150, 193, 194, 225, 234, 235], "can": [41, 62, 71, 73, 77, 78, 80, 84, 96, 115, 120, 127, 128, 130, 134, 158, 165, 171, 194, 200, 201, 203, 209, 210, 214, 222, 223, 225, 231, 234, 235, 236, 239, 240, 241], "conjunct": [41, 62], "_qsort": 41, "_": [41, 220], "_memcmp": 41, "semant": 41, "less": [41, 148, 225, 234], "qsort": [41, 148, 158, 234], "style": [41, 148, 158, 178, 180, 184, 185, 190, 215, 235], "dst": [42, 48, 49, 50, 51, 149, 181, 196, 211], "src": [42, 48, 49, 50, 51, 149, 181, 196, 211], "content": [42, 47, 48, 58, 76, 79, 82, 85, 104, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 117, 120, 146, 149, 177, 181, 208, 209, 210, 211, 219], "context": [43, 44, 45, 46, 153, 156, 174], "resourc": [43, 126, 160, 212], "associ": [43, 126, 160, 212], "doe": [43, 50, 51, 57, 60, 126, 129, 160, 196, 212, 214, 217], "noth": [43, 57, 126, 129, 160, 178, 196, 212, 217], "longer": [43, 58, 144, 193, 211], "have": [43, 45, 46, 179, 181, 210, 225, 233, 235], "default": [44, 46, 141, 145, 153, 175], "creat": [44, 45, 96, 124, 127, 130, 131, 132, 144, 145, 146, 161, 162, 163, 164, 168, 179, 193, 220, 229, 232, 233, 235, 238], "flag": [44, 45, 46, 200, 209, 210, 240], "bson_context_thread_saf": [44, 45, 46], "bson_context_disable_pid_cach": [44, 45, 46], "bson_context_flags_t": [45, 46], "follow": [45, 74, 75, 89, 156, 225, 233, 234, 239, 241], "bson_context_non": [45, 46], "mean": [45, 54, 196, 227], "objectid": [45, 46, 156, 157, 158, 229, 232, 237, 238], "thread": [45, 226, 229, 232, 234], "safe": [45, 237], "chang": [45, 115, 143], "getpid": 45, "everi": [45, 142, 240], "effect": [45, 46, 210], "bson_context_disable_host_cach": 45, "bson_context_use_task_id": 45, "rare": [45, 143], "need": [45, 50, 194, 214, 225, 234, 235, 239], "serv": 45, "most": 45, "freed": [45, 47, 58, 62, 70, 77, 79, 80, 86, 99, 103, 113, 120, 121, 124, 130, 131, 141, 142, 144, 163, 166, 173, 176, 177, 179, 181, 183, 184, 185, 192, 193, 197, 204, 211, 217], "typedef": [46, 55, 60, 115, 119, 125, 128, 134, 140, 142, 158, 161, 167, 171, 175, 181, 194, 199, 200, 201, 203, 210, 213, 214, 222], "enum": [46, 119, 125, 134, 199, 201, 210], "_bson_context_t": 46, "bson_gnuc_const": 46, "object": [46, 70, 147, 158], "id": [46, 158], "overrid": 46, "ones": 46, "argc": [46, 55, 134, 158, 171, 181, 214, 222, 231, 233, 236], "argv": [46, 55, 134, 158, 171, 181, 214, 222, 231, 233, 236], "ctx": [46, 145, 174, 175], "via": [46, 70, 132, 133, 143, 147, 164], "addit": [46, 72, 156, 196, 214, 235, 240], "control": 46, "return": [46, 55, 77, 117, 118, 134, 158, 171, 194, 214, 222, 228, 231, 233, 234, 235, 236], "first_exclud": [49, 50, 51], "bson_gnuc_null_termin": [49, 50], "bson_gnuc_deprecated_for": 49, "those": [49, 50, 51, 58, 224], "variad": [49, 50, 215, 225], "list": [49, 50], "work": [50, 51, 134, 146, 174, 239], "wai": [50, 51, 66, 175, 234], "over": 50, "veri": 50, "special": [50, 204], "situat": [50, 96, 143], "bson2": 50, "va_list": [51, 185, 215], "arg": [51, 185], "method": [51, 217], "count": [52, 140, 167, 214], "dec": [53, 54, 56, 83], "decimal128": [53, 54, 55, 106], "pars": [53, 54, 70, 134, 147, 155, 157, 214, 228, 229, 232, 238], "specif": [53, 54, 114, 134, 158, 171, 174, 175, 201, 214, 225, 227, 228, 233], "exact": [53, 54], "nan": [53, 54, 55], "00": [53, 54, 55], "4": [54, 140, 156, 158, 178, 180, 200, 210, 234, 241], "abstract": [55, 66, 140, 143, 158, 194, 200, 203, 222], "bson_decimal128_str": [55, 56], "43": 55, "bson_decimal128_inf": 55, "infin": 55, "bson_decimal128_nan": 55, "bson_byte_ord": 55, "bson_little_endian": 55, "uint64_t": 55, "low": 55, "high": [55, 222], "elif": 55, "bson_big_endian": 55, "endif": [55, 241], "repres": [55, 100, 102, 158, 200, 234], "ieee": 55, "754": 55, "stdio": [55, 134, 158, 171, 177, 214, 231, 233, 236], "100": [55, 225], "printabl": 56, "decimal128_str": 56, "decimal128t": 56, "alwai": [57, 72, 74, 176, 196, 197, 202, 228, 239], "unless": [57, 134, 171, 233], "steal": 58, "underli": [58, 104, 105, 106, 107, 108, 109, 110, 111, 120, 132, 133, 166, 167, 168, 170, 172, 179, 200, 216, 219, 236], "stolen": 58, "destroi": [58, 126, 131, 160, 161, 163, 169, 181, 240], "equival": [58, 69, 72, 182], "program": [58, 77, 78, 101, 104, 105, 106, 107, 108, 109, 110, 111, 134, 171, 229, 232, 233, 238, 240], "error": [58, 60, 77, 78, 101, 104, 105, 106, 107, 108, 109, 110, 111, 115, 134, 166, 171, 178, 181, 209, 210, 214, 229, 232, 233, 236, 238], "top": 58, "level": [58, 143, 181, 214, 222, 236], "higher": [58, 143, 181, 214, 236], "effici": [58, 181], "transfer": [58, 181], "one": [58, 145, 168, 175, 210, 231, 235, 237, 240], "both": [59, 89, 112, 182, 204, 227, 228], "encapsul": [60, 140, 213, 225], "domain": [60, 178, 210, 228], "messag": [60, 134, 140, 171, 210, 214, 221, 228, 233], "504": 60, "paramet": [60, 225], "stack": [60, 69, 71, 115, 143, 177, 200, 225, 240], "handl": [60, 66, 161, 165, 167, 168, 171, 178, 229, 232, 238], "reader": [60, 123, 124, 129, 131, 133, 134, 160, 161, 163, 165, 166, 168, 169, 170, 171, 172, 233, 236], "dump": 60, "fprintf": [60, 134, 166, 171, 177, 214, 233, 235, 236], "stderr": [60, 134, 166, 171, 177, 214, 233, 235, 236], "d": [60, 68, 89, 115, 176, 194, 213, 214, 235], "mem": [61, 142, 173, 174, 175, 223], "suppli": [61, 127, 162, 217, 218, 220], "raw": [62, 73, 80, 84, 154, 181], "properti": 62, "around": [62, 121, 180, 186], "bson_major_vers": [63, 241], "compil": [63, 64, 65, 227, 241], "third": 64, "bson_micro_vers": [64, 241], "middl": 65, "bson_minor_vers": [65, 241], "bson_get_monotonic_tim": 66, "bson_gettimeofdai": 66, "tv": [66, 118], "cross": [66, 229, 232], "platform": [66, 143, 224, 229, 232, 237], "timeout": 66, "librari": [66, 175, 202, 231, 232, 237, 241], "gettimeofdai": 66, "well": [66, 223, 233], "monoton": [66, 202, 234], "microsecond": [66, 118], "someth": [67, 166], "3": [67, 142, 158, 180, 190, 210, 214, 215, 225, 234], "pre": [67, 179], "accept": 68, "dotkei": [68, 89], "notat": [68, 89, 158], "found": [68, 70, 87, 88, 89, 90, 115, 132, 147, 198, 204, 214, 235, 236], "place": [69, 91, 95, 104, 105, 106, 107, 108, 109, 110, 111, 120, 195], "bson_initi": [69, 134, 177, 181, 199, 225, 233], "ssize_t": [70, 147, 167, 204, 214], "exist": [70, 147, 225, 235], "propag": [70, 132, 133, 147, 164], "On": [70, 237], "read": [71, 130, 131, 133, 134, 163, 165, 166, 167, 169, 170, 171, 177, 214, 233], "No": 71, "made": 71, "therefor": [71, 100, 200, 234, 240], "remain": [71, 122, 196], "lifetim": [71, 115, 162], "dangl": 71, "safer": 72, "altern": [72, 91, 225], "isspac": 72, "bound": 72, "inclus": 72, "255": 72, "consid": [72, 87, 89, 90, 112, 115], "white": 72, "space": [72, 177, 196, 216], "bson_iter_holds_arrai": [73, 115], "bson_type_arrai": [73, 112, 119, 201], "array_len": 73, "immut": [73, 77, 80], "retriev": [73, 84, 99, 100, 113, 120], "verifi": [73, 83, 84, 97, 98, 103, 208, 240], "macro": [73, 77, 84, 225], "fetch": [74, 75, 82, 83, 85, 97, 98, 99, 100, 102, 103, 121, 151, 219], "were": [74, 75, 76, 122], "how": [74, 122, 209, 210, 214], "bson_type_bool": [74, 75, 76, 78, 104, 108, 119, 201], "bson_type_doubl": [74, 75, 76, 85, 107, 119, 201], "bson_type_int32": [74, 75, 76, 97, 108, 119, 201, 213], "bson_type_int64": [74, 75, 76, 98, 109, 119, 201], "bson_type_utf8": [74, 119, 120, 201], "equat": 74, "cast": [75, 76], "ani": [75, 115, 134, 171, 176, 177, 212, 217, 233], "bson_iter_holds_binari": [77, 115], "bson_type_binari": [77, 119, 201], "binary_len": 77, "point": [77, 202], "bson_iter_holds_bool": [78, 115], "either": [78, 122, 134, 153, 171, 202, 214, 216, 233], "bson_iter_holds_cod": [79, 115], "bson_type_cod": [79, 119, 201], "bson_iter_holds_codewscop": [80, 115], "bson_type_codewscop": [80, 119, 201], "scope_len": [80, 213], "act": 80, "load": 80, "bson_iter_holds_date_tim": [81, 115], "collection_len": [82, 213], "bson_type_dbpoint": [82, 119, 201], "spec": 82, "bson_iter_holds_decimal128": [83, 115], "bson_type_decimal128": [83, 106, 201], "IN": 83, "befor": [83, 91, 95, 97, 98, 103, 120, 177, 181, 182, 204, 214], "bson_iter_holds_docu": [84, 115, 235], "bson_type_docu": [84, 112, 119, 201], "document_len": 84, "bson_iter_holds_doubl": [85, 115], "request": [87, 89, 90, 124, 130, 173, 174, 175], "advanc": [87, 88, 89, 90, 91, 95, 101, 207], "exhaust": [87, 88, 89, 90, 200], "sensit": [87, 88, 90], "fold": [87, 88, 90], "now": [87, 89, 90, 143, 181, 225], "observ": [88, 99, 100, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 117, 119, 120, 121], "descend": [89, 214], "dot": 89, "standard": [89, 196, 208], "recurs": 89, "subdocu": [89, 210], "keylen": [90, 94, 96], "static": [91, 95, 181, 200, 203, 214, 231, 241], "print_doc_id": [91, 95], "oidstr": [91, 95], "25": [91, 95, 158, 159], "_id": [91, 95], "bson_iter_holds_oid": [91, 95, 103, 115], "els": [91, 95, 134, 171, 214, 233, 239], "miss": [91, 95], "ident": [92, 93, 94, 174, 225], "offset": [96, 102, 172, 207, 209, 214, 219, 220, 222, 235], "previous": 96, "obtain": [96, 134, 171, 233], "where": [96, 178, 195, 209, 233], "progress": 96, "save": 96, "restor": [96, 141], "without": [96, 121, 134, 171, 233, 237], "reli": 96, "layout": 96, "accomplish": 96, "Then": 96, "later": [96, 145], "reconstruct": [96, 102], "constant": [96, 99, 100, 102, 202], "bson_iter_holds_int32": [97, 115, 235], "bson_iter_holds_int64": [98, 115], "comput": 100, "faster": 100, "next": [101, 133, 156, 166, 167, 207], "last": 101, "unsign": [102, 158, 203, 234, 235, 236], "overwrit": [104, 105, 106, 107, 108, 109, 110, 111], "mutat": [104, 105, 106, 107, 108, 109, 110, 111, 235, 237], "http": [114, 134, 171, 199, 233], "bsonspec": [114, 199], "org": [114, 134, 171, 199, 233], "bson_iter_holds_utf8": [115, 120], "bson_iter_holds_undefin": 115, "bson_iter_holds_nul": 115, "bson_iter_holds_regex": 115, "bson_iter_holds_dbpoint": 115, "bson_iter_holds_symbol": 115, "bson_iter_holds_timestamp": [115, 117], "bson_iter_holds_maxkei": 115, "bson_iter_holds_minkei": 115, "bson_iter_holds_int": 115, "bson_iter_holds_numb": 115, "bson_iter_is_kei": 115, "strcmp": [115, 134, 171, 233], "privat": [115, 231], "through": [115, 175, 203, 209, 210, 239], "meant": [115, 167], "discard": 115, "while": [115, 117, 120, 134, 166, 171, 214, 233, 235, 236], "my_bson_doc": 115, "my_field": 115, "sub_it": 115, "mysubdoc": 115, "my_doc": 115, "typic": [117, 234], "probabl": [117, 120, 223], "bson_type_eod": [119, 201], "0x00": [119, 199, 201], "0x01": [119, 199, 201], "0x02": [119, 199, 201], "0x03": [119, 199, 201], "0x04": [119, 199, 201], "0x05": [119, 199, 201], "0x06": [119, 201], "0x07": [119, 199, 201], "0x08": [119, 201], "0x09": [119, 201], "0x0a": [119, 201], "0x0b": [119, 201], "0x0c": [119, 201], "0x0d": [119, 201], "0x0e": [119, 201], "0x0f": [119, 201], "0x10": [119, 201], "0x11": [119, 201], "0x12": [119, 201], "0x7f": [119, 201], "0xff": [119, 201], "That": 120, "note": [120, 217, 223, 229, 232], "multi": [120, 191, 203, 205, 206, 234], "commonli": 120, "look": [120, 225], "marshal": 120, "further": [121, 166, 214, 235], "visitor": [122, 214], "conveni": [122, 224, 233, 235, 236], "callback": [122, 161, 167, 169, 171, 214, 228, 234], "vtabl": [122, 142], "visit": 122, "prematur": 122, "stop": [122, 127, 128, 214], "becaus": 122, "corrupt": [122, 210, 236], "exampl": [122, 145, 181, 209, 210, 221, 225, 235], "your": [122, 202, 214, 229, 232, 234, 237, 238, 240], "own": [122, 169, 214], "about": [122, 214], "unsupport": [122, 214], "entri": [122, 214], "feed": [123, 137], "allow_multipl": [124, 130], "unus": [124, 130], "stream": [124, 130, 165, 167, 170, 171, 172, 177, 229, 230, 232], "enumer": [125, 199, 201], "bson_json_mode_legaci": 125, "bson_json_mode_relax": 125, "avail": [125, 224, 231], "max_len": [127, 128], "member": [127, 128], "hold": [127, 128], "onc": [127, 128], "serialis": [127, 128], "reach": [127, 128, 166], "full": [127, 128], "_bson_json_opts_t": 128, "bson_json_reader_cb": 130, "cb": 130, "bson_json_destroy_cb": 130, "dcb": 130, "buf_siz": 130, "user": [130, 165], "arbitrari": [130, 165], "sourc": [130, 133, 165], "fashion": 130, "fd": [131, 163, 171], "close_on_destroi": [131, 163, 171], "open": [131, 134, 171, 228, 233, 236], "file": [131, 132, 134, 163, 164, 165, 166, 167, 168, 171, 177, 214, 228, 231, 233, 236], "descriptor": [131, 163, 166, 167, 168, 171, 233, 236], "whether": [131, 163, 176, 192], "close": [131, 163, 171, 233], "filenam": [132, 134, 164, 171, 214, 233], "bulk": [134, 222], "_bson_json_reader_t": 134, "bson_json_error_read_corrupt_j": [134, 228], "bson_json_error_read_invalid_param": [134, 228], "bson_json_error_read_cb_failur": [134, 228], "bson_json_error_code_t": 134, "sequenc": [134, 156, 166, 171, 205, 206, 233], "transform": 134, "them": [134, 233], "often": [134, 233], "copyright": [134, 171, 233], "2013": [134, 171, 233], "licens": [134, 171, 233], "under": [134, 143, 171, 233], "apach": [134, 171, 233], "complianc": [134, 171, 233], "www": [134, 171, 233], "applic": [134, 143, 171, 233], "law": [134, 171, 233], "agre": [134, 171, 233], "write": [134, 171, 177, 196, 216, 218, 233], "softwar": [134, 171, 233], "distribut": [134, 171, 233, 239], "AS": [134, 171, 233], "basi": [134, 171, 233], "warranti": [134, 171, 233], "OR": [134, 171, 233], "condit": [134, 171, 233], "OF": [134, 171, 233], "kind": [134, 171, 233], "express": [134, 171, 233], "impli": [134, 171, 233], "languag": [134, 143, 146, 171, 214, 222, 233, 236], "govern": [134, 171, 233], "permiss": [134, 171, 233], "limit": [134, 171, 221, 233], "each": [134, 171, 187, 202, 233], "stdout": [134, 171, 233], "stdlib": [134, 214, 233], "usag": [134, 171, 214, 233], "argument": [134, 171, 233], "command": [134, 171, 231, 233], "line": [134, 171, 231, 233], "expect": [134, 146, 171, 220, 227, 233, 235, 239], "stdin_fileno": [134, 171, 233], "incom": [134, 171, 233], "fwrite": [134, 233], "exit": [134, 214, 233], "malloc": [135, 136, 142, 176, 240], "calloc": [136, 142], "md5": [137, 138, 139, 140], "api": [137, 138, 139, 140, 194, 222, 229, 232, 236, 239], "pm": [137, 138, 139], "nbyte": 137, "bson_gnuc_deprec": [137, 138, 139, 156], "algorithm": [137, 138, 139, 140], "digest": [138, 140], "instanc": [139, 220], "lsw": 140, "abcd": 140, "buf": [140, 145, 167, 186, 220, 222, 236], "accumul": 140, "block": [140, 163, 241], "end": [141, 166, 167, 195, 200, 235, 239], "being": [141, 142, 219], "wrong": [141, 142], "_bson_mem_vtable_t": 142, "n_member": 142, "realloc": [142, 145, 173, 175, 236], "pad": [142, 200, 214], "bson_mem_vtable_t": 142, "instal": [142, 231], "backward": 142, "compat": [142, 232, 234], "lightweight": 143, "easier": 143, "addition": [143, 175], "help": [143, 146, 233], "integr": 143, "interest": 143, "One": 143, "caveat": 143, "design": 143, "deal": 143, "oom": 143, "extrem": 143, "dilig": 143, "throughout": 143, "correctli": 143, "futur": [143, 214], "As": [143, 194, 203], "stand": 143, "aid": 143, "bind": [143, 146], "custom": [143, 170, 171, 175, 209, 210], "revers": 143, "heap": [144, 146, 179, 200, 225, 240], "buf_len": 145, "realloc_func": [145, 220, 222], "realloc_func_ctx": [145, 220, 222], "resiz": 145, "expand": 145, "bson_append": 145, "5": [145, 158, 178, 200, 234], "slower": 146, "oid1": [148, 150], "oid2": [148, 150], "lexicograph": [148, 182], "sort": [148, 182], "comparison": 148, "hash": 152, "suitabl": [152, 188], "hashtabl": [152, 158, 234], "12": [154, 158], "hex": [155, 157, 158, 159], "012345678901234567890123": 155, "big": [156, 158, 227, 234], "endian": [156, 158, 226, 229, 232, 234], "guarante": 156, "global": 156, "uniqu": [156, 237], "remov": [156, 225], "construct": 158, "random": [158, 234], "counter": [158, 234], "back": [158, 233], "direct": 158, "opaqu": [161, 167], "close_fd": 163, "path": [164, 171, 231, 235], "host": [164, 227], "denot": 164, "rf": [165, 171], "df": [165, 171], "pluggabl": [165, 175], "socket": 165, "reached_eof": [166, 214], "unknown": 166, "we": [166, 224, 225, 227, 233, 235], "reached_of": 166, "chunk": [167, 194], "part": 167, "seek": 168, "func": [169, 170], "execut": 169, "_bson_reader_t": 171, "come": 171, "nuse": [171, 233], "stdin": [171, 233], "cleanup": [171, 217, 233], "our": [171, 233], "off_t": 172, "tell": 172, "consum": [174, 175, 225], "pool": 174, "prototyp": 175, "wish": 175, "reiniti": 176, "reus": 176, "certain": [176, 241], "final": 176, "elimin": 177, "fill": [177, 196, 210, 228], "correct": 177, "read_into": 177, "fp": 177, "long": 177, "fseek": 177, "0l": 177, "seek_end": 177, "perror": 177, "couldn": 177, "t": [177, 234], "ftell": 177, "eof": [177, 236], "too": [177, 196], "larg": 177, "reserv": 177, "temporarili": 177, "ld": 177, "rewind": 177, "fread": 177, "fopen": 177, "rb": 177, "fclose": 177, "bson_gnuc_printf": [178, 180, 184, 185, 190, 215], "prealloc": 179, "good": 179, "idea": 179, "destin": [180, 196, 222, 225], "snprintf": [180, 202], "enforc": 180, "written": [180, 215, 219], "wrap": [181, 225], "bson_wrapper_t": 181, "wrap_bson": 181, "bson_wrapper_destroi": 181, "clean": [181, 220], "up": [181, 196, 197, 200, 220], "move": 181, "occur": [181, 195, 209, 210, 235], "lower": [181, 182], "s1": 182, "s2": 182, "strcasecmp": 182, "translat": 182, "err_cod": 186, "buflen": [186, 220, 222, 236], "strerror": 186, "strv": 187, "itself": 187, "builder": [189, 193], "unichar": [191, 205], "free_seg": 192, "growth": 193, "variou": [193, 199, 239, 241], "ad": [194, 225, 233], "f": 194, "123": [194, 200], "ownership": 194, "might": [194, 233, 240], "truncat": 195, "smaller": 195, "c11": 196, "strncpy_": 196, "strncpy": 196, "even": 196, "short": 196, "fit": 196, "left": 196, "n_byte": 197, "maxlen": 198, "strnlen": 198, "bson_subtype_binari": 199, "bson_subtype_funct": 199, "bson_subtype_binary_deprec": 199, "bson_subtype_uuid_deprec": 199, "bson_subtype_uuid": 199, "bson_subtype_md5": 199, "bson_subtype_column": 199, "bson_subtype_us": 199, "0x80": 199, "data_len": [199, 213], "bson_empti": 200, "nul": [200, 204], "bson_empty0": 200, "treat": 200, "bson_clear": 200, "easili": [200, 234], "bson_assert": 200, "bptr": 200, "bson_max_s": 200, "bson_aligned_begin": 200, "120": 200, "bson_aligned_end": 200, "mutabl": 200, "attempt": 200, "inlin": 200, "speed": 200, "small": [200, 224, 240], "dynam": [200, 222], "essenti": 200, "create_on_heap": 200, "baz": [200, 225, 235], "23f": 200, "0x13": 201, "int32": 201, "strptr": 202, "999": 202, "section": 202, "etc": 202, "optim": [202, 227], "text": [203, 239], "print_each_char": 203, "utf8_len": [204, 208], "escap": 204, "backslash": 204, "u0000": 204, "input": [204, 233, 234], "preserv": [204, 233], "6": 205, "whose": 207, "allow_nul": 208, "rfc": 208, "3629": 208, "bson_validate_flags_t": [209, 210], "bitwis": [209, 210], "desir": [209, 210], "walk": [209, 210, 239], "inspect": [209, 210, 236], "bson_validate_non": [210, 235], "bson_validate_utf8": 210, "bson_validate_dollar_kei": 210, "bson_validate_dot_kei": 210, "bson_validate_utf8_allow_nul": 210, "bson_validate_empty_kei": 210, "below": [210, 214, 235], "basic": 210, "prohibit": 210, "outsid": 210, "dbref": 210, "anywher": 210, "bson_error_invalid": 210, "Its": 210, "give": 210, "possibl": [210, 227], "_bson_value_t": 213, "value_typ": 213, "union": 213, "v_oid": [213, 214], "v_int64": [213, 214], "v_int32": [213, 214], "int8_t": 213, "v_int8": 213, "v_doubl": [213, 214], "v_bool": [213, 214], "v_datetim": 213, "v_timestamp": [213, 214], "v_utf8": [213, 214], "v_doc": 213, "v_binari": [213, 214], "v_regex": [213, 214], "v_dbpointer": 213, "code_len": 213, "v_code": [213, 214], "scope_data": 213, "v_codewscop": 213, "v_symbol": [213, 214], "run": [214, 227, 240], "visit_befor": 214, "visit_aft": 214, "visit_unsupported_typ": 214, "visit_corrupt": 214, "visit_doubl": 214, "visit_utf8": 214, "v_utf8_len": 214, "visit_docu": 214, "v_document": 214, "visit_arrai": 214, "v_arrai": 214, "visit_binari": 214, "v_subtyp": 214, "v_binary_len": 214, "visit_undefin": 214, "visit_oid": 214, "visit_bool": 214, "visit_date_tim": 214, "msec_since_epoch": 214, "visit_nul": 214, "visit_regex": 214, "v_option": 214, "visit_dbpoint": 214, "v_collection_len": 214, "v_collect": 214, "visit_cod": 214, "v_code_len": 214, "visit_symbol": 214, "v_symbol_len": 214, "visit_codewscop": 214, "v_scope": 214, "visit_int32": 214, "visit_timestamp": 214, "v_increment": 214, "visit_int64": 214, "visit_maxkei": 214, "visit_minkei": 214, "appar": 214, "unrecogn": 214, "type_cod": 214, "visit_decimal128": 214, "v_decimal128": 214, "7": [214, 231], "seri": 214, "simplifi": 214, "report": [214, 228], "simpli": [214, 227, 231, 234], "proof": 214, "older": 214, "my_visit_befor": 214, "count_field": 214, "demonstr": 214, "err_offset": [214, 235], "my_state_t": 214, "my_visit_corrupt": 214, "off": 214, "my_visit_unsupported_typ": 214, "find_error_loc": 214, "had": 214, "depth": 214, "nest": 214, "assert": [214, 236], "max_depth": 214, "check_depth_t": 214, "_check_depth_docu": 214, "check_depth_func": 214, "bson_unus": 214, "cancel": 214, "check_depth": 214, "exce": 214, "as_json": 214, "bson_read": 214, "atoi": 214, "ap": 215, "writer": [216, 217, 218, 219, 221, 222, 236], "partli": 219, "ve": 219, "boundari": 219, "cannot": 219, "sent": 219, "packet": [219, 222, 236], "_realloc": 220, "finish": 220, "went": 221, "past": 221, "particular": [221, 233], "48mb": 221, "_bson_writer_t": 222, "re": [222, 231], "demand": 222, "network": [222, 236], "python": 222, "dictionari": 222, "tcp": 222, "1000": 222, "behav": 223, "password": 223, "similarli": 223, "import": [223, 231], "truli": 223, "page": 223, "protect": 223, "mlock": 223, "prevent": 223, "swap": 223, "disk": 223, "substitut": 224, "manipul": 224, "necessari": [225, 235, 240], "logic": 225, "At": 225, "core": 225, "live": 225, "let": [225, 235], "whenev": 225, "sure": 225, "proce": 225, "item": [225, 234], "varieti": 225, "prefix": 225, "bson_append_": 225, "notic": [225, 239], "goe": 225, "tediou": 225, "liter": 225, "few": 225, "hello": [225, 231], "world": 225, "omit": 225, "By": 225, "creation": 225, "These": 225, "parent": 225, "hand": 225, "bcon": 225, "closer": 225, "show": 225, "bcon_": 225, "processor": 225, "bcon_new": [225, 231, 233, 235], "bcon_int32": [225, 233, 235], "bcon_utf8": [225, 231], "dictat": 227, "littl": 227, "altogeth": 227, "memcpi": 227, "appropri": 227, "dereferenc": 227, "intrins": 227, "derefer": 227, "subsystem": 228, "describ": 228, "overlap": 228, "bson_error_json": 228, "tri": 228, "mongodbextend": 228, "dure": [228, 240], "bson_error_read": 228, "bson_error_reader_badfd": 228, "tutori": [229, 232], "guid": [229, 232], "valgrind": [229, 230, 232], "header": [231, 236], "hello_bson": 231, "j": 231, "packag": 231, "find_packag": 231, "link": 231, "share": 231, "cmakelist": 231, "txt": 231, "sampl": 231, "among": 231, "four": 231, "test": [231, 240], "add_execut": 231, "target_link_librari": 231, "mongo": 231, "bson_shar": 231, "bson_stat": 231, "gcc": 231, "o": 231, "lib": 231, "cflag": 231, "Or": 231, "nativ": [232, 237], "layer": 232, "There": 233, "debug": 233, "interchang": 233, "ambigu": 233, "e": 233, "g": [233, 240], "numer": 233, "numberint": 233, "primit": 233, "fidel": 233, "enough": 233, "interfac": [233, 237], "simpl": 234, "manner": 234, "96": 234, "24": [234, 241], "rand": 234, "123456789012345678901234": 234, "bson_oid_init_from_string_unsaf": 234, "just": [234, 236], "purpos": 234, "djb": 234, "lazili": 235, "my_data": 235, "my_data_len": 235, "did": 235, "what": 235, "dive": 235, "down": 235, "exemplifi": 235, "abov": 235, "filedescriptor": 236, "yet": 236, "forward": 236, "mycollect": 236, "r": 236, "10000": 236, "access": 237, "posix": 237, "pthread": 237, "window": 237, "fallback": 237, "atom": 237, "built": 237, "anyth": 239, "my_str": 239, "my_string_len": 239, "storag": 240, "forget": 240, "catch": 240, "potenti": 240, "configur": 240, "bson_memcheck": 240, "cmake": 240, "dcmake_c_flag": 240, "dbson_memcheck": 240, "With": 240, "unittest": 240, "environ": 240, "variabl": 240, "mongoc_test_valgrind": 240, "skip": 240, "known": 240, "preprocessor": 241, "against": 241, "enabl": 241, "featur": 241, "bson_version_": 241, "bson_version_hex": 241, "newer": 241, "do_someth": 241}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"api": 0, "refer": 0, "bson_aligned_alloc": 1, "synopsi": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 241], "paramet": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 61, 62, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, 127, 129, 130, 131, 132, 133, 135, 136, 137, 138, 139, 142, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 202, 204, 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, 217, 218, 219, 220, 221, 223], "descript": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 228], "return": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 47, 52, 53, 54, 58, 59, 62, 63, 64, 65, 67, 68, 70, 71, 72, 74, 75, 76, 78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 90, 91, 95, 96, 97, 98, 99, 100, 101, 102, 103, 112, 113, 114, 116, 119, 120, 121, 122, 124, 127, 130, 131, 132, 133, 135, 136, 144, 145, 146, 147, 148, 150, 151, 152, 157, 162, 163, 164, 165, 166, 167, 172, 173, 177, 179, 180, 181, 182, 183, 184, 185, 186, 192, 193, 197, 198, 202, 204, 206, 207, 208, 209, 210, 215, 216, 219, 220], "bson_aligned_alloc0": 2, "bson_append_arrai": 3, "bson_append_array_begin": 4, "bson_append_array_end": 5, "bson_append_binari": 6, "bson_append_bool": 7, "bson_append_cod": 8, "bson_append_code_with_scop": 9, "bson_append_date_tim": 10, "bson_append_dbpoint": 11, "bson_append_decimal128": 12, "bson_append_docu": 13, "bson_append_document_begin": 14, "bson_append_document_end": 15, "bson_append_doubl": 16, "bson_append_int32": 17, "bson_append_int64": 18, "bson_append_it": 19, "bson_append_maxkei": 20, "bson_append_minkei": 21, "bson_append_now_utc": 22, "bson_append_nul": 23, "bson_append_oid": 24, "bson_append_regex": 25, "bson_append_regex_w_len": 26, "bson_append_symbol": 27, "bson_append_time_t": 28, "bson_append_timestamp": 29, "bson_append_timev": 30, "bson_append_undefin": 31, "bson_append_utf8": 32, "bson_append_valu": 33, "bson_array_as_json": 34, "exampl": [34, 35, 36, 37, 38, 46, 50, 53, 54, 55, 56, 60, 91, 95, 115, 134, 155, 158, 166, 171, 177, 194, 199, 200, 201, 203, 213, 214, 222, 233], "bson_as_canonical_extended_json": 35, "bson_as_json": 36, "bson_as_json_with_opt": 37, "bson_as_relaxed_extended_json": 38, "bson_ascii_strtol": 39, "bson_check_vers": 40, "bson_compar": 41, "bson_concat": 42, "bson_context_destroi": 43, "bson_context_get_default": 44, "bson_context_new": 45, "bson_context_t": 46, "function": [46, 55, 60, 66, 115, 128, 134, 140, 143, 158, 171, 194, 199, 200, 201, 203, 213, 214, 222, 224, 241], "bson_copi": 47, "bson_copy_to": 48, "bson_copy_to_exclud": 49, "deprec": [49, 137, 138, 139, 140], "bson_copy_to_excluding_noinit": 50, "bson_copy_to_excluding_noinit_va": 51, "bson_count_kei": 52, "bson_decimal128_from_str": 53, "bson_decimal128_from_string_w_len": 54, "bson_decimal128_t": 55, "bson_decimal128_to_str": 56, "bson_destroi": 57, "bson_destroy_with_st": 58, "bson_equ": 59, "bson_error_t": 60, "bson_fre": 61, "bson_get_data": 62, "bson_get_major_vers": 63, "bson_get_micro_vers": 64, "bson_get_minor_vers": 65, "system": 66, "clock": 66, "bson_get_vers": 67, "bson_has_field": 68, "bson_init": 69, "bson_init_from_json": 70, "error": [70, 132, 133, 147, 164, 228], "bson_init_stat": 71, "bson_isspac": 72, "bson_iter_arrai": 73, "bson_iter_as_bool": 74, "bson_iter_as_doubl": 75, "bson_iter_as_int64": 76, "bson_iter_binari": 77, "bson_iter_bool": 78, "bson_iter_cod": 79, "bson_iter_codewscop": 80, "bson_iter_date_tim": 81, "bson_iter_dbpoint": 82, "bson_iter_decimal128": 83, "bson_iter_docu": 84, "bson_iter_doubl": 85, "bson_iter_dup_utf8": 86, "bson_iter_find": 87, "bson_iter_find_cas": 88, "bson_iter_find_descend": 89, "bson_iter_find_w_len": 90, "bson_iter_init": 91, "bson_iter_init_find": 92, "bson_iter_init_find_cas": 93, "bson_iter_init_find_w_len": 94, "bson_iter_init_from_data": 95, "bson_iter_init_from_data_at_offset": 96, "bson_iter_int32": 97, "bson_iter_int64": 98, "bson_iter_kei": 99, "bson_iter_key_len": 100, "bson_iter_next": 101, "bson_iter_offset": 102, "bson_iter_oid": 103, "bson_iter_overwrite_bool": 104, "bson_iter_overwrite_date_tim": 105, "bson_iter_overwrite_decimal128": 106, "bson_iter_overwrite_doubl": 107, "bson_iter_overwrite_int32": 108, "bson_iter_overwrite_int64": 109, "bson_iter_overwrite_oid": 110, "bson_iter_overwrite_timestamp": 111, "bson_iter_recurs": 112, "bson_iter_regex": 113, "bson_iter_symbol": 114, "bson_iter_t": 115, "bson_iter_time_t": 116, "bson_iter_timestamp": 117, "bson_iter_timev": 118, "bson_iter_typ": 119, "bson_iter_utf8": 120, "bson_iter_valu": 121, "bson_iter_visit_al": 122, "bson_json_data_reader_ingest": 123, "bson_json_data_reader_new": 124, "bson_json_mode_t": 125, "bson_json_opts_destroi": 126, "bson_json_opts_new": 127, "bson_json_opts_t": 128, "bson_json_reader_destroi": 129, "bson_json_reader_new": 130, "bson_json_reader_new_from_fd": 131, "bson_json_reader_new_from_fil": 132, "bson_json_reader_read": 133, "bson_json_reader_t": 134, "bson_malloc": 135, "bson_malloc0": 136, "bson_md5_append": 137, "bson_md5_finish": 138, "bson_md5_init": 139, "bson_md5_t": 140, "bson_mem_restore_vt": 141, "bson_mem_set_vt": 142, "memori": 143, "manag": 143, "bson_new": 144, "bson_new_from_buff": 145, "bson_new_from_data": 146, "bson_new_from_json": 147, "bson_oid_compar": 148, "bson_oid_copi": 149, "bson_oid_equ": 150, "bson_oid_get_time_t": 151, "bson_oid_hash": 152, "bson_oid_init": 153, "bson_oid_init_from_data": 154, "bson_oid_init_from_str": 155, "bson_oid_init_sequ": 156, "bson_oid_is_valid": 157, "bson_oid_t": 158, "string": [158, 224, 234], "convers": 158, "hash": [158, 234], "compar": [158, 234], "valid": [158, 214, 235, 239], "bson_oid_to_str": 159, "bson_reader_destroi": 160, "bson_reader_destroy_func_t": 161, "bson_reader_new_from_data": 162, "bson_reader_new_from_fd": 163, "bson_reader_new_from_fil": 164, "bson_reader_new_from_handl": 165, "bson_reader_read": 166, "bson_reader_read_func_t": 167, "bson_reader_reset": 168, "bson_reader_set_destroy_func": 169, "bson_reader_set_read_func": 170, "bson_reader_t": 171, "bson_reader_tel": 172, "bson_realloc": 173, "bson_realloc_ctx": 174, "bson_realloc_func": 175, "bson_reinit": 176, "bson_reserve_buff": 177, "bson_set_error": 178, "bson_sized_new": 179, "bson_snprintf": 180, "bson_steal": 181, "bson_strcasecmp": 182, "bson_strdup": 183, "bson_strdup_printf": 184, "bson_strdupv_printf": 185, "bson_strerror_r": 186, "bson_strfreev": 187, "bson_string_append": 188, "bson_string_append_c": 189, "bson_string_append_printf": 190, "bson_string_append_unichar": 191, "bson_string_fre": 192, "bson_string_new": 193, "bson_string_t": 194, "bson_string_trunc": 195, "bson_strncpi": 196, "bson_strndup": 197, "bson_strnlen": 198, "bson_subtype_t": 199, "bson_t": [200, 225], "perform": 200, "note": [200, 226], "bson_type_t": 201, "bson_uint32_to_str": 202, "arrai": [202, 225], "element": 202, "kei": 202, "build": 202, "bson_unichar_t": 203, "bson_utf8_escape_for_json": 204, "bson_utf8_from_unichar": 205, "bson_utf8_get_char": 206, "bson_utf8_next_char": 207, "bson_utf8_valid": 208, "bson_valid": 209, "bson_validate_with_error": 210, "bson_value_copi": 211, "bson_value_destroi": 212, "bson_value_t": 213, "bson_visitor_t": 214, "basic": 214, "corrupt": 214, "check": [214, 240], "custom": 214, "bson_vsnprintf": 215, "bson_writer_begin": 216, "bson_writer_destroi": 217, "bson_writer_end": 218, "bson_writer_get_length": 219, "bson_writer_new": 220, "bson_writer_rollback": 221, "bson_writer_t": 222, "bson_zero_fre": 223, "charact": 224, "routin": 224, "creat": 225, "bson": [225, 231, 233, 235, 236, 240], "document": [225, 235, 236], "The": 225, "structur": 225, "sub": [225, 235], "simplifi": 225, "c": [225, 231], "object": [225, 234], "notat": [225, 235], "cross": 226, "platform": 226, "endian": 227, "handl": 228, "index": 229, "guid": 230, "us": [231, 235, 240], "libbson": [231, 232, 241], "In": 231, "your": 231, "program": 231, "includ": 231, "h": 231, "cmake": 231, "pkg": 231, "config": 231, "introduct": 232, "json": 233, "convert": 233, "stream": [233, 236], "pars": [233, 234, 235], "objectid": 234, "composit": 234, "sort": 234, "id": 234, "gener": 234, "fetch": 234, "creation": 234, "time": 234, "iter": 235, "recurs": 235, "find": 235, "field": 235, "dot": 235, "read": 236, "from": 236, "write": 236, "sequenc": [236, 239], "thread": 237, "tutori": 238, "utf": 239, "8": 239, "encod": 239, "valgrind": 240, "For": 240, "data": 240, "leak": 240, "version": 241, "macro": 241}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/libbson/1.23.2/streaming-bson.html b/libbson/1.23.2/streaming-bson.html new file mode 100644 index 0000000000000000000000000000000000000000..71f246fa0a4983336fd671ea0e0d3ec55d746514 --- /dev/null +++ b/libbson/1.23.2/streaming-bson.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + Streaming BSON — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Streaming BSON

    +

    bson_reader_t provides a streaming reader which can be initialized with a filedescriptor or memory region. bson_writer_t provides a streaming writer which can be initialized with a memory region. (Streaming BSON to a file descriptor is not yet supported.)

    +
    +

    Reading from a BSON Stream

    +

    bson_reader_t provides a convenient API to read sequential BSON documents from a file-descriptor or memory buffer. The bson_reader_read() function will read forward in the underlying stream and return a bson_t that can be inspected and iterated upon.

    +
    #include <stdio.h>
    +#include <bson/bson.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_reader_t *reader;
    +   const bson_t *doc;
    +   bson_error_t error;
    +   bool eof;
    +
    +   reader = bson_reader_new_from_file ("mycollection.bson", &error);
    +
    +   if (!reader) {
    +      fprintf (stderr, "Failed to open file.\n");
    +      return 1;
    +   }
    +
    +   while ((doc = bson_reader_read (reader, &eof))) {
    +      char *str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (!eof) {
    +      fprintf (stderr,
    +               "corrupted bson document found at %u\n",
    +               (unsigned) bson_reader_tell (reader));
    +   }
    +
    +   bson_reader_destroy (reader);
    +
    +   return 0;
    +}
    +
    +
    +

    See bson_reader_new_from_fd(), bson_reader_new_from_file(), and bson_reader_new_from_data() for more information.

    +
    +
    +

    Writing a sequence of BSON Documents

    +

    bson_writer_t provides a convenient API to write a sequence of BSON documents to a memory buffer that can grow with realloc(). The bson_writer_begin() and bson_writer_end() functions will manage the underlying buffer while building the sequence of documents.

    +

    This could also be useful if you want to write to a network packet while serializing the documents from a higher level language, (but do so just after the packets header).

    +
    #include <stdio.h>
    +#include <bson/bson.h>
    +#include <assert.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_writer_t *writer;
    +   bson_t *doc;
    +   uint8_t *buf = NULL;
    +   size_t buflen = 0;
    +   bool r;
    +   int i;
    +
    +   writer = bson_writer_new (&buf, &buflen, 0, bson_realloc_ctx, NULL);
    +
    +   for (i = 0; i < 10000; i++) {
    +      r = bson_writer_begin (writer, &doc);
    +      assert (r);
    +
    +      r = BSON_APPEND_INT32 (doc, "i", i);
    +      assert (r);
    +
    +      bson_writer_end (writer);
    +   }
    +
    +   bson_free (buf);
    +
    +   return 0;
    +}
    +
    +
    +

    See bson_writer_new() for more information.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/threading.html b/libbson/1.23.2/threading.html new file mode 100644 index 0000000000000000000000000000000000000000..2b33254bf796fb0e024906d93ed96c99cff6aa05 --- /dev/null +++ b/libbson/1.23.2/threading.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + Threading — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Threading

    +

    Libbson’s data structures are NOT thread-safe. You are responsible for accessing and mutating these structures from one thread at a time.

    +

    Libbson requires POSIX threads (pthreads) on all UNIX-like platforms. On Windows, the native threading interface is used. Libbson uses your system’s threading library to safely generate unique ObjectIds, and to provide a fallback implementation for atomic operations on platforms without built-in atomics.

    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/tutorial.html b/libbson/1.23.2/tutorial.html new file mode 100644 index 0000000000000000000000000000000000000000..a9a118a6c4b926ececb4315e3935bb1e7339db5b --- /dev/null +++ b/libbson/1.23.2/tutorial.html @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + Tutorial — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libbson/1.23.2/utf8.html b/libbson/1.23.2/utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..39e9c47bac46173cc5ab6dc5bf23185e1dbaa58b --- /dev/null +++ b/libbson/1.23.2/utf8.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + UTF-8 — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    UTF-8

    +
    +

    Encoding

    +

    Libbson expects that you are always working with UTF-8 encoded text. Anything else is invalid API use.

    +

    If you should need to walk through UTF-8 sequences, you can use the various UTF-8 helper functions distributed with Libbson.

    +
    +
    +

    Validating a UTF-8 Sequence

    +

    To validate the string contained in my_string, use the following. You may pass -1 for the string length if you know the string is NULL-terminated.

    +
    if (!bson_utf8_validate (my_string, -1, false)) {
    +   printf ("Validation failed.\n");
    +}
    +
    +
    +

    If my_string has NULL bytes within the string, you must provide the string length. Use the following format. Notice the true at the end indicating \0 is allowed.

    +
    if (!bson_utf8_validate (my_string, my_string_len, true)) {
    +   printf ("Validation failed.\n");
    +}
    +
    +
    +

    For more information see the API reference for bson_utf8_validate().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/valgrind.html b/libbson/1.23.2/valgrind.html new file mode 100644 index 0000000000000000000000000000000000000000..037ef70b661819e7b787b1fd98b8bc30e7b00203 --- /dev/null +++ b/libbson/1.23.2/valgrind.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + Use Valgrind to Check For BSON Data Leaks — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Use Valgrind to Check For BSON Data Leaks

    +

    A stack-allocated bson_t contains a small internal buffer; it only heap-allocates additional storage if necessary, depending on its data size. Therefore if you forget to call bson_destroy() on a stack-allocated bson_t, it might or might not cause a leak that can be detected by valgrind during testing.

    +

    To catch all potential BSON data leaks in your code, configure the BSON_MEMCHECK flag:

    +
    cmake -DCMAKE_C_FLAGS="-DBSON_MEMCHECK -g" .
    +
    +
    +

    With this flag set, every bson_t mallocs at least one byte. Run your program’s unittests with valgrind to verify all bson_t structs are destroyed.

    +

    Set the environment variable MONGOC_TEST_VALGRIND to on to skip timing-dependent tests known to fail with valgrind.

    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.23.2/version.html b/libbson/1.23.2/version.html new file mode 100644 index 0000000000000000000000000000000000000000..599748f12570442cc5db60d4e2e69bb8f2619192 --- /dev/null +++ b/libbson/1.23.2/version.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + Libbson Versioning — libbson 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Libbson Versioning

    +

    Versioning Macros and Functions

    +
    +

    Macros

    +

    The following preprocessor macros can be used to perform various checks based on the version of the library you are compiling against. This may be useful if you only want to enable a feature on a certain version of the library.

    +
    +
    +

    Synopsis

    +
    #define BSON_CHECK_VERSION(major, minor, micro)
    +
    +#define BSON_MAJOR_VERSION (1)
    +#define BSON_MINOR_VERSION (4)
    +#define BSON_MICRO_VERSION (1)
    +#define BSON_VERSION_S "1.4.1"
    +
    +#define BSON_VERSION_HEX                                  \
    +   (BSON_MAJOR_VERSION << 24 | BSON_MINOR_VERSION << 16 | \
    +    BSON_MICRO_VERSION << 8)
    +
    +
    +

    Only compile a block on Libbson 1.1.0 and newer.

    +
    #if BSON_CHECK_VERSION(1, 1, 0)
    +static void
    +do_something (void)
    +{
    +}
    +#endif
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/current b/libbson/current index 1b50fc31bc75bad80d3fbe7e4868cf766d5d0563..db8b4ac7897f15beeb4141adef10e59ffb29bf7f 120000 --- a/libbson/current +++ b/libbson/current @@ -1 +1 @@ -1.23.1 \ No newline at end of file +1.23.2 \ No newline at end of file diff --git a/libbson/index.html b/libbson/index.html index 4d8b1d09c4fa31b87887e50694873c4000955a53..288f8f1733369c86b55f70fc6f1d5dc1b40d4550 100644 --- a/libbson/index.html +++ b/libbson/index.html @@ -1,9 +1,9 @@ - + - + @@ -21,7 +21,7 @@ delighted.survey(); - libbson Releases — MongoDB C Driver 1.23.1 + libbson Releases — MongoDB C Driver 1.23.2 @@ -30,6 +30,7 @@ + @@ -46,7 +47,7 @@
  • previous
  • - +
    @@ -55,11 +56,12 @@
    -

    libbson Releases

    -

    Latest Release (1.23.1)

    +

    libbson Releases

    +

    Latest Release (1.23.2)

    Current Development (master)

    diff --git a/libmongoc-releases.html b/libmongoc-releases.html index 9d848f1308ff13598808a6203fc03dbe43e4c3d8..e881ca48989cc460fbbb5b5c0d83c6038e4c54aa 100644 --- a/libmongoc-releases.html +++ b/libmongoc-releases.html @@ -1,9 +1,9 @@ - + - + @@ -21,7 +21,7 @@ delighted.survey(); - libmongoc Releases — MongoDB C Driver 1.23.1 + libmongoc Releases — MongoDB C Driver 1.23.2 @@ -30,6 +30,7 @@ + @@ -50,7 +51,7 @@
  • previous |
  • - + @@ -59,11 +60,12 @@
    -

    libmongoc Releases

    -

    Latest Release (1.23.1)

    +

    libmongoc Releases

    +

    Latest Release (1.23.2)

    Current Development (master)

    diff --git a/libmongoc/1.23.1/advanced-connections.html b/libmongoc/1.23.1/advanced-connections.html index 8c06ab757674ed57fc4d5054e40761911292922d..64d6f11d81fa7dc38250146044ee21cca08d3ce7 100644 --- a/libmongoc/1.23.1/advanced-connections.html +++ b/libmongoc/1.23.1/advanced-connections.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/aggregate.html b/libmongoc/1.23.1/aggregate.html index 4ee7ba6c870edfb60bcdb866742e91891132b525..16c30b782c7c01de810ddb6ff292fa2b481cd8bd 100644 --- a/libmongoc/1.23.1/aggregate.html +++ b/libmongoc/1.23.1/aggregate.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/api.html b/libmongoc/1.23.1/api.html index fa9cb34a929ed28f7f9cb83325f2530f484e832e..81ed3a83b913903edd81e8e064bf58dcd041f670 100644 --- a/libmongoc/1.23.1/api.html +++ b/libmongoc/1.23.1/api.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/application-performance-monitoring.html b/libmongoc/1.23.1/application-performance-monitoring.html index 73ecc57de2f0a3b6249f4596b2ed26a26982772b..706a9b12063dea5a11f728381830123bd8e4f281 100644 --- a/libmongoc/1.23.1/application-performance-monitoring.html +++ b/libmongoc/1.23.1/application-performance-monitoring.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/authentication.html b/libmongoc/1.23.1/authentication.html index 07dd065aaf018e57b37e74218f1c57f964cc6534..d56f031bb38cba38416545578e2dcf0b538a0474 100644 --- a/libmongoc/1.23.1/authentication.html +++ b/libmongoc/1.23.1/authentication.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/basic-troubleshooting.html b/libmongoc/1.23.1/basic-troubleshooting.html index 634190fe46ea624a1e91fdbdcf7d650215316285..292c11ccbfb653e84268048e1343c82c12749fae 100644 --- a/libmongoc/1.23.1/basic-troubleshooting.html +++ b/libmongoc/1.23.1/basic-troubleshooting.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/bulk.html b/libmongoc/1.23.1/bulk.html index ff05a6871c3dea68e7296f2f57e99e024d76a221..a5883afe068b3d84ba90abb8d5655cc3faf01dc0 100644 --- a/libmongoc/1.23.1/bulk.html +++ b/libmongoc/1.23.1/bulk.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/configuring_tls.html b/libmongoc/1.23.1/configuring_tls.html index f79fbdc36bd81ff50ec543631a19db7ad6f70c50..a186938237913c0f9eea794acb69fe89943f2816 100644 --- a/libmongoc/1.23.1/configuring_tls.html +++ b/libmongoc/1.23.1/configuring_tls.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/connection-pooling.html b/libmongoc/1.23.1/connection-pooling.html index b5406cb41589a3c728e6920ba73bf8f20f2efe0c..2ab0904a968a291cd77e9d81b5396cdb5d688044 100644 --- a/libmongoc/1.23.1/connection-pooling.html +++ b/libmongoc/1.23.1/connection-pooling.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/create-indexes.html b/libmongoc/1.23.1/create-indexes.html index fa51c9d2edf2f0d44b2d16e68523cff87e058896..c209b96146474221150dfc0d01f4c03fbf99a18d 100644 --- a/libmongoc/1.23.1/create-indexes.html +++ b/libmongoc/1.23.1/create-indexes.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/cursors.html b/libmongoc/1.23.1/cursors.html index 467d60c9d184379533591d49eda07071773dc74d..d7b67bd63a58b602e6cf22dca4faad31c04848fe 100644 --- a/libmongoc/1.23.1/cursors.html +++ b/libmongoc/1.23.1/cursors.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/debugging.html b/libmongoc/1.23.1/debugging.html index caefb3a6667ba8f1134a858276c85103c36ddcc5..093fd8a73914c81aa107fd8a83649084695bbe87 100644 --- a/libmongoc/1.23.1/debugging.html +++ b/libmongoc/1.23.1/debugging.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/distinct-mapreduce.html b/libmongoc/1.23.1/distinct-mapreduce.html index ad8ac9ea9cb1f2e662e4b1c8b8565159e78e324c..cdc78b3d35b8a5e289d2647fcecb29c8282afc88 100644 --- a/libmongoc/1.23.1/distinct-mapreduce.html +++ b/libmongoc/1.23.1/distinct-mapreduce.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/errors.html b/libmongoc/1.23.1/errors.html index 221716169f4aaefbfde25ae3ae1efa781973f97c..c39335d694ab07ea20ebbb3827e817f060339904 100644 --- a/libmongoc/1.23.1/errors.html +++ b/libmongoc/1.23.1/errors.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/full_index.html b/libmongoc/1.23.1/full_index.html index e30024720c2fca1757adf7375ea2df9bc87460c2..ea81a4bb2eb54abf1918a7a31eed69db706194a0 100644 --- a/libmongoc/1.23.1/full_index.html +++ b/libmongoc/1.23.1/full_index.html @@ -36,6 +36,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/gridfs.html b/libmongoc/1.23.1/gridfs.html index 2a4d206a234a27a71b0d8b8732af6729f3e9a18c..cbac6be6adfb48926532b54e4bbf971b8625801b 100644 --- a/libmongoc/1.23.1/gridfs.html +++ b/libmongoc/1.23.1/gridfs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/guides.html b/libmongoc/1.23.1/guides.html index 5973cd6cad6df1c785919ca5f93aaecb815bccf5..f019ab968963df3bc67e810675b152caac51cf52 100644 --- a/libmongoc/1.23.1/guides.html +++ b/libmongoc/1.23.1/guides.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/index.html b/libmongoc/1.23.1/index.html index 95849fa223b1ac826f4f1327cb85a1faa957660e..0846a4b6dd681d162accfc613eb850264880a688 100644 --- a/libmongoc/1.23.1/index.html +++ b/libmongoc/1.23.1/index.html @@ -37,6 +37,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/init-cleanup.html b/libmongoc/1.23.1/init-cleanup.html index 7b66ae5b0cb71cad4288f9c9735521f85e59794b..0c5e8a49a827e92dcd3d17097b2177ce9113b2ad 100644 --- a/libmongoc/1.23.1/init-cleanup.html +++ b/libmongoc/1.23.1/init-cleanup.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/installing.html b/libmongoc/1.23.1/installing.html index 31c7d99e10f352d520ad7cce420127d8921c40cb..b757306f62aac737cfb579baa8da35ff6267736e 100644 --- a/libmongoc/1.23.1/installing.html +++ b/libmongoc/1.23.1/installing.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/lifecycle.html b/libmongoc/1.23.1/lifecycle.html index 5886faac1d780fe8a084ed2cc2f0ab085c3165f1..2b92cbebaf645ff5bf46bb224cdb3073159b8650 100644 --- a/libmongoc/1.23.1/lifecycle.html +++ b/libmongoc/1.23.1/lifecycle.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/logging.html b/libmongoc/1.23.1/logging.html index 1109e1da3ac626610c6d236ac69f874c569d60c1..3b5341c7571765b37069819529bf1443d716c7cd 100644 --- a/libmongoc/1.23.1/logging.html +++ b/libmongoc/1.23.1/logging.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/matcher.html b/libmongoc/1.23.1/matcher.html index 4b02e6f5f0c18d354806834c87a451cfc545dc3c..ded1a5653fe74d6f3af7e91980a8e3ab5b2657b6 100644 --- a/libmongoc/1.23.1/matcher.html +++ b/libmongoc/1.23.1/matcher.html @@ -36,6 +36,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc-common-task-examples.html b/libmongoc/1.23.1/mongoc-common-task-examples.html index 036ce79faf35bcc7e90fe55f7e1c333bfc2ae9e4..ad385b02f4e34d8ffb6e8867262e5fc52e295dfa 100644 --- a/libmongoc/1.23.1/mongoc-common-task-examples.html +++ b/libmongoc/1.23.1/mongoc-common-task-examples.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_callbacks_destroy.html b/libmongoc/1.23.1/mongoc_apm_callbacks_destroy.html index db3bc74dd3ccf1f1e81998999af4818d83c1b3f7..2108f1b082d2092d1ae576d592b36c16bdf1d85d 100644 --- a/libmongoc/1.23.1/mongoc_apm_callbacks_destroy.html +++ b/libmongoc/1.23.1/mongoc_apm_callbacks_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_callbacks_new.html b/libmongoc/1.23.1/mongoc_apm_callbacks_new.html index 193809315eda64501cd24a689c212ab23db32735..e5043866c9e2e3101f978c079f07acd9465ccab6 100644 --- a/libmongoc/1.23.1/mongoc_apm_callbacks_new.html +++ b/libmongoc/1.23.1/mongoc_apm_callbacks_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_callbacks_t.html b/libmongoc/1.23.1/mongoc_apm_callbacks_t.html index af820cb3f28c4489d7e9c56014998cc1eb9f809d..dda41204963129dc6484c821eda354f74247bb60 100644 --- a/libmongoc/1.23.1/mongoc_apm_callbacks_t.html +++ b/libmongoc/1.23.1/mongoc_apm_callbacks_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_command_name.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_command_name.html index ac7ad7f79b9c472e2d21029626f013a88fadee30..38c8ac89ee4f3aeb727ad928cbe463e4902dd325 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_command_name.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_command_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_context.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_context.html index 4702784200349c0295674b2c5d378401a853879b..98d4b545c626ba80fbb1aae5ca6d918c22ab9f05 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_duration.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_duration.html index 40eb29ccbd7c4b6753ab8046fc34209bf6dd2244..6fbdaa25ed46fa2f3def002821703a0f3f8b68d3 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_duration.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_duration.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_error.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_error.html index 7825068b1360970e5037a064c7806369f5acfe0d..1bec6923e4c784257ac7864be1537a3d0f3ab6ba 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_error.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_host.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_host.html index a4c25d48a5e763d77d0e5da1f492d271c0387852..a0e85b11777b559e49d1fe06f5c82d28654c6a61 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_operation_id.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_operation_id.html index b60d5a27593a68fd08462b80a24dcbe1229455f6..783560a1f32135d45c05b0991a0257538fb27437 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_operation_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_operation_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_reply.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_reply.html index edfd0c6689b7532398ee5f4d4ab57c4076879184..a5930fa70fe20d437776edf71c8a2faa02d8d896 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_reply.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_reply.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_request_id.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_request_id.html index 0b49d0bfbc055ad87716f2b327ef2f1cd7338ea1..a1edd1c8f1e908bfe85d1a68ce2bad03cab5381c 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_request_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_request_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_connection_id.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_connection_id.html index 7ca25afbaf833f6f7d8089ad52e0dcec22df1db5..83abca61e66e09cf63fe48529068549e7f01489e 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_connection_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_connection_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_id.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_id.html index 2b40e31d6d6c6f391421b1921a3f8ccc958240a3..ee23a28fe8c5993f6f383fdde38e7f6048c4f783 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_server_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_get_service_id.html b/libmongoc/1.23.1/mongoc_apm_command_failed_get_service_id.html index 150fdb12a049c15e4d5244644e2e1b1293793105..33e06fcc485a6ff929824637fdb6d47bdd2a3c6a 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_get_service_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_get_service_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_failed_t.html b/libmongoc/1.23.1/mongoc_apm_command_failed_t.html index cf3f96a8eac2c33d1c16ee99a22be21936f2f704..d43cc2b8e0ec84dc74f6811d6f013efc250be456 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_failed_t.html +++ b/libmongoc/1.23.1/mongoc_apm_command_failed_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_command.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_command.html index 9a329991812ec33b7b14e68e097d686237357a14..f92e6d463513369ded569d527a07a801de8cddf6 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_command.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_command.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_command_name.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_command_name.html index 4af7ca1238ec3ebcb3ff9639d9ef59c8fd5cd2ea..3f06d53ddc790e6838d1b02980e02d67bfbfb0df 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_command_name.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_command_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_context.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_context.html index d145b7c3f2a4089b0a5f50e6e90b67464268978e..4dd53458e9ed4cca4dd9093e6a75ae941612dc63 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_database_name.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_database_name.html index 611bba3d14bed96617874e56942a04f7ff6fe27d..7a09fdf3750055cd21aafe457d5d795adf2ac8e3 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_database_name.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_database_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_host.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_host.html index a5b150da653b8529dd95a0e74f8b9487b26fc466..265c7edc514ea1fd4ad35e81b5fbb2f6f21be722 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_operation_id.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_operation_id.html index 7515015e20acec7b92306a541e2b2330a653477a..9523f7507ac509b5c0b2174e09e68b5550c3e94a 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_operation_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_operation_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_request_id.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_request_id.html index f306f72378615ed95c3b921b641c0b917d181116..7d1622b7a21208b6de08e61673bfe4dbc019e6cd 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_request_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_request_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_server_connection_id.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_server_connection_id.html index 1a0c3ca24c1d8a2e5a7579227d872111396708a5..cb68a616723a13f03c0b5a89f9b85d6464cabecf 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_server_connection_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_server_connection_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_server_id.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_server_id.html index e6f31a10cd2677822b0194c3be00cc0568d9e6b4..58a8e7e9c27816cfc29124865c60bcfc31619c99 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_server_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_server_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_get_service_id.html b/libmongoc/1.23.1/mongoc_apm_command_started_get_service_id.html index 1736b6d5969e44740bd5c4812f565aeb0b289b82..8aa395acf3ff7abcb0d6cf6e704fc06e762a0667 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_get_service_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_get_service_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_started_t.html b/libmongoc/1.23.1/mongoc_apm_command_started_t.html index bcbd94530147a6ab1657b451d68a06a6e1611531..cf872e0f6bb642cfac6ddcc34486022bf84dee96 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_started_t.html +++ b/libmongoc/1.23.1/mongoc_apm_command_started_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_command_name.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_command_name.html index d6897d7665518deb05d040fe9898d0ab3d239791..9a153f23d9b3056b42cb34b3d6aec5e3758fe7c0 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_command_name.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_command_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_context.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_context.html index 6d5fe47fb2a3af1cac9a709ba8fae81b31d59d6f..8230c5289eaf11a8f0f7d54831548eb434671ff5 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_duration.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_duration.html index ef41abf936c833d509c1816e64a099f37cf1366a..4a90289aab4a96806c48f8b6dadf14b16ce1f4e6 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_duration.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_duration.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_host.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_host.html index 56d616567a2fff713b809b83240951c90796ea36..d4cf283a1f031c066dc3f466a09185bedcd30fd3 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_operation_id.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_operation_id.html index dfbc255b8a8fdd78c28cef02a237c343fdfab1b9..7dd6c2ec841a85da8bbd6a48a2ad20ceb0cea708 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_operation_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_operation_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_reply.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_reply.html index 4643be4a6879e0d789b08065b06b8193f0050c74..1b56055c7c863682aded7a922cc97ccadd7a2d3c 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_reply.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_reply.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_request_id.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_request_id.html index 2e3822f6c92194a65d5d30f0ba0a030362ef5fb7..e3eef307056cc4e2f04441a2097b131cd6cd8798 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_request_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_request_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_connection_id.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_connection_id.html index 89407cd600a4656d2ad89a56d06e22d3d5256b78..e2fad18d80f9509dc8282c21257f65122b3127b4 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_connection_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_connection_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_id.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_id.html index cb8e80970b10540f9b5e702829fa3b7b60484ee0..cdb91c0461ffe845045734dd4fd6eed485ddaed4 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_server_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_service_id.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_service_id.html index 071fc436c058aefe09d724406e0ef01df7968a68..09d0cedf941a9088c6f4ad5d2c8c56238d168da9 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_service_id.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_get_service_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_command_succeeded_t.html b/libmongoc/1.23.1/mongoc_apm_command_succeeded_t.html index 5dfeb64206433033a6017aab995c1fe204639059..0c0e73373258a50c15e8f84525c8a9b1ca05b056 100644 --- a/libmongoc/1.23.1/mongoc_apm_command_succeeded_t.html +++ b/libmongoc/1.23.1/mongoc_apm_command_succeeded_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_changed_get_context.html b/libmongoc/1.23.1/mongoc_apm_server_changed_get_context.html index a53b67d460a02511fefee879ca4a723abd1bf54a..42cb6951eaafeb5f9d44b0cb73a866a746619b46 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_changed_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_server_changed_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_changed_get_host.html b/libmongoc/1.23.1/mongoc_apm_server_changed_get_host.html index 2a27d66efdc600644b131e0bb81ca90ff0f14cec..50622490ba2a11cdaa1530426e322ac3f6611000 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_changed_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_server_changed_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_changed_get_new_description.html b/libmongoc/1.23.1/mongoc_apm_server_changed_get_new_description.html index e0125a7d6c0045c3f7cf0c367321327d32925ea5..ba2afff4431b87f59f0896aa17c9c86e395e3890 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_changed_get_new_description.html +++ b/libmongoc/1.23.1/mongoc_apm_server_changed_get_new_description.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_changed_get_previous_description.html b/libmongoc/1.23.1/mongoc_apm_server_changed_get_previous_description.html index 0e1ae0eaf07f60e2f23d90941ed779ad5381e63e..7da666142c66d5b8b697b6bd9287cc727203b997 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_changed_get_previous_description.html +++ b/libmongoc/1.23.1/mongoc_apm_server_changed_get_previous_description.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_changed_get_topology_id.html b/libmongoc/1.23.1/mongoc_apm_server_changed_get_topology_id.html index 982569d97fba8b6c9d20855b0eaefb9dc18870a5..01968fd2a6bab73f1758c05cac7d0f2b186f1687 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_changed_get_topology_id.html +++ b/libmongoc/1.23.1/mongoc_apm_server_changed_get_topology_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_changed_t.html b/libmongoc/1.23.1/mongoc_apm_server_changed_t.html index 75caf1db8ba501bb5146c92b03719a22fb28c49f..ec18602a206cb618bee1bed39debb3f8e0087ac6 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_changed_t.html +++ b/libmongoc/1.23.1/mongoc_apm_server_changed_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_closed_get_context.html b/libmongoc/1.23.1/mongoc_apm_server_closed_get_context.html index 50d57d17e8012359be9b148b188e359b615dbf63..65630aa3e7f1cd99aa3687f86db18a2f901c47a6 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_closed_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_server_closed_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_closed_get_host.html b/libmongoc/1.23.1/mongoc_apm_server_closed_get_host.html index fb5d1ac0a2a7eb9c88e27c00b63d2c67009a4ff2..c73aa22104e8471cb04b28c30a455d6e9fe763a6 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_closed_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_server_closed_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_closed_get_topology_id.html b/libmongoc/1.23.1/mongoc_apm_server_closed_get_topology_id.html index 76bacd58835215895e8515fce0de172930121718..e7264f207318a1911cd54be6a1d925d1adc9ca1f 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_closed_get_topology_id.html +++ b/libmongoc/1.23.1/mongoc_apm_server_closed_get_topology_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_closed_t.html b/libmongoc/1.23.1/mongoc_apm_server_closed_t.html index a885f7aca2c8fe991ceab62ffa81995fcc8ac746..cbcd0ec091d08ec41dbca6263bec6fe2916b1a83 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_closed_t.html +++ b/libmongoc/1.23.1/mongoc_apm_server_closed_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_awaited.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_awaited.html index cff3524fa5164dea35d7b5bc0bdd5b992976812b..fd7a0f33864a87f154a0759d3ba3a2aff664c7b8 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_awaited.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_awaited.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_context.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_context.html index 7aeac938a0cfb40282444f5a1f3567947e9e483e..126aa776a8006f8844d5e8a9a4b3348f9e4d9a4c 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_duration.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_duration.html index 72fc0bb649befde42d74801fe2b085b6704dafb0..645c6491dd98745e36575d424d0b2bf1ae8ca6b9 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_duration.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_duration.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_error.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_error.html index 98f02158d6d70a2423bd55be8e2eb8073b0c2ac4..7e518766231a23626ebb67fcaa214dc22cdc2713 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_error.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_host.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_host.html index 0bfcfc3301246401536daa7e7a320b361520810a..a4bee7152ae15f11f5e08c03c9aa358aebfdb8be 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_t.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_t.html index 336e31026d1a543d3d340a6fd7e2c850aa8e5747..1daedd679ded65e6b3a2536d7d68145a989df912 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_t.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_failed_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_awaited.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_awaited.html index e32a372921b539e09c7b5e1dbd8ecdf6c0eaa6b0..0c9fc2b6c44ac9a3ff0f0ab8dfa50b68bddd1c01 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_awaited.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_awaited.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_context.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_context.html index 26c1025d79b79112db48cac85fbd422558a76f03..67f1ef451d016b9cccdf134dc72d43ca4d7acdfe 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_host.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_host.html index cbf0e2bb7c56edd5dc396f0b24e58aa76a3d173d..93caff77245228e0834fd40c0e5f222f8cf9809a 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_t.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_t.html index ac91fe92bc66ef8adbfadf184f97c5cfb3395010..7a97c0d7416013dfc791248fd8a235bf7782c797 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_t.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_started_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html index f6eb65999a9fac051647f53f384f2da746cfeea0..e1df770d9a3036acad52a397a34343b57518399e 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_context.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_context.html index b5d3f66c8be751327b4f73689df7c2c5f44eed17..20ac0e09a8228c78c5157bab6efa7fa23b945458 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html index 69a1c4ea9921d87f0a464ec923f28815e80db7dc..1540a6640c02ab36d8623b3bfbe8eba80fab03ca 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_host.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_host.html index 6030041459e4b94d2b32c3706f4de23317012baf..090261c2aae65418642d1fcb1b536a8796541155 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html index cd402628f1a44d9154c4ec2ef3c23104372becc7..d8980ae107959e332e02f101c4d70478ae54ba95 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_t.html b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_t.html index a1c86c11832be5c371a90082dfb52da59b2eb2ca..adc16fa4f75f1b1cd40b17ff2f9895f2e60c6c77 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_t.html +++ b/libmongoc/1.23.1/mongoc_apm_server_heartbeat_succeeded_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_opening_get_context.html b/libmongoc/1.23.1/mongoc_apm_server_opening_get_context.html index e7c598ef1cd0d2dba63d7e4d4f448c697f06a8ff..f7a5ae0163f51ce8bd64d789b2f049424c706c73 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_opening_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_server_opening_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_opening_get_host.html b/libmongoc/1.23.1/mongoc_apm_server_opening_get_host.html index 42f4977ef1fc2a671cde06690985ea1e85248b8b..8c2459459e5c88f77a8d2fca927d998fb655afd0 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_opening_get_host.html +++ b/libmongoc/1.23.1/mongoc_apm_server_opening_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_opening_get_topology_id.html b/libmongoc/1.23.1/mongoc_apm_server_opening_get_topology_id.html index 824d340ef91c32dbccb92903ddfea70d5306b0f6..adc2fc5b39b9453c1def28762d536dbf6cd8ff70 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_opening_get_topology_id.html +++ b/libmongoc/1.23.1/mongoc_apm_server_opening_get_topology_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_server_opening_t.html b/libmongoc/1.23.1/mongoc_apm_server_opening_t.html index 99d6cffa1e5c381419117de7c24075be00ac73e5..29ac3341ebb5fbd9a7c28ed6c2ce2a079a04ae2e 100644 --- a/libmongoc/1.23.1/mongoc_apm_server_opening_t.html +++ b/libmongoc/1.23.1/mongoc_apm_server_opening_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_command_failed_cb.html b/libmongoc/1.23.1/mongoc_apm_set_command_failed_cb.html index b7659b8a9135f9ad2b7348c180d6b58a33c27de1..6e9f0fe589168052e4d4fed4727b31020813d467 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_command_failed_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_command_failed_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_command_started_cb.html b/libmongoc/1.23.1/mongoc_apm_set_command_started_cb.html index 641207f11cefa2f05bcfc952f8135d70097960a5..51f28544e1ba1ee0fa0c6e5428f3db8703d20e7d 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_command_started_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_command_started_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_command_succeeded_cb.html b/libmongoc/1.23.1/mongoc_apm_set_command_succeeded_cb.html index 881f91946011b743e42b0cdd78581bc2a29c78d4..fb8747d94f4ca594631fdbbcaa5a5a83bd13649e 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_command_succeeded_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_command_succeeded_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_server_changed_cb.html b/libmongoc/1.23.1/mongoc_apm_set_server_changed_cb.html index a861a3a0a9d36c0fdcdd568f66d03af0e919923f..4a75dbea588a1d17c32436225f4165f2922daa39 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_server_changed_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_server_changed_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_server_closed_cb.html b/libmongoc/1.23.1/mongoc_apm_set_server_closed_cb.html index de47416833991f15e725b916ce690826ee4cefe8..2ab61315edce58c2a27aa775ff9bdb3c26f91392 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_server_closed_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_server_closed_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_failed_cb.html b/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_failed_cb.html index e0b05d6dd8709af430263ed3c7b20e7783f87fce..685159db59343870297c2fb2e43fabc31d8062c4 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_failed_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_failed_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_started_cb.html b/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_started_cb.html index e15499ec0458fadf181fa081531aa70691012318..4dcaa5c80914bed883ca7c03fec39d549e73e9b6 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_started_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_started_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html b/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html index e9cb09396fdf289a6845b48d000719ad0c394913..b4fcf3562f69365b79802086a7bc415ba9201e05 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_server_opening_cb.html b/libmongoc/1.23.1/mongoc_apm_set_server_opening_cb.html index 7091f84d86894c54bf37128e418a7c1f276f3e24..cd124714dcf63cc4032608bf967343c65d49f9b4 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_server_opening_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_server_opening_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_topology_changed_cb.html b/libmongoc/1.23.1/mongoc_apm_set_topology_changed_cb.html index 9c7cfd75d419e7c033c3801a60ede5c247da1d29..13d34a54220d38c7339194feb4167a329d51f249 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_topology_changed_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_topology_changed_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_topology_closed_cb.html b/libmongoc/1.23.1/mongoc_apm_set_topology_closed_cb.html index 861e507d8837a1be79e5ef51b983d63f0f676cb7..697a549e62542392b1b22ac1a4c18eeaa2ee6e28 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_topology_closed_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_topology_closed_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_set_topology_opening_cb.html b/libmongoc/1.23.1/mongoc_apm_set_topology_opening_cb.html index b31bc508ab9c65eaea605f19decb80873a07587c..ed9c11b6d10498bc15d4b570f9cab438f57710a3 100644 --- a/libmongoc/1.23.1/mongoc_apm_set_topology_opening_cb.html +++ b/libmongoc/1.23.1/mongoc_apm_set_topology_opening_cb.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_context.html b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_context.html index 0d35d2d3366b0fb3c12c04d321cf6a4a53dd0069..c79271dcee3c696f0c7d85db80130f7364354497 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_new_description.html b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_new_description.html index ceac6261b2533f2b8815677139b77a05941da7f4..9f637fcd69278f5f353e7f5725444cbe54b21d2a 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_new_description.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_new_description.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_previous_description.html b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_previous_description.html index 2d827900d48628b2ef7d5d3a05a498c82e81a4d9..f3ec50ae278efe3dbc3db72241ccf4a4c05b6cbc 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_previous_description.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_previous_description.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_topology_id.html b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_topology_id.html index d85585480cb4f919a6ba7f61e06ee8340266c4ed..49501ab9762397813374600962d675d3ec22ced1 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_changed_get_topology_id.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_changed_get_topology_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_changed_t.html b/libmongoc/1.23.1/mongoc_apm_topology_changed_t.html index 22c881aef6dc6189ef9ec1b1a1951601dd9403cc..4197ff284db91cd0deac0b108c54d0f29795b009 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_changed_t.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_changed_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_closed_get_context.html b/libmongoc/1.23.1/mongoc_apm_topology_closed_get_context.html index 8ed35714153ac85119b1da17eb6186b773c0c868..0542bb06fe4088e3f6af2bd3303831201d214933 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_closed_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_closed_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_closed_get_topology_id.html b/libmongoc/1.23.1/mongoc_apm_topology_closed_get_topology_id.html index 1e2d54ddb154078ac4a69c02872c2dad9daafb28..c2946b49ff62e13b7a179eacba8e5ae974d7762f 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_closed_get_topology_id.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_closed_get_topology_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_closed_t.html b/libmongoc/1.23.1/mongoc_apm_topology_closed_t.html index 3bf8f28dd05381cfcffe642f7ba623c08f0e61d3..471013ac3d391f957528b00a1422162c833876dd 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_closed_t.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_closed_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_opening_get_context.html b/libmongoc/1.23.1/mongoc_apm_topology_opening_get_context.html index 8eaba9170d44824c406e76a7dcfee7b85d274afb..017ef3f799385929c7f8eb954847e10fa5d14192 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_opening_get_context.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_opening_get_context.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_opening_get_topology_id.html b/libmongoc/1.23.1/mongoc_apm_topology_opening_get_topology_id.html index 90cabb8ba2d8e94986d871cfca68a5e044b8584a..e8a7bbb217a7560108feab6cf69ff6d26d6c59f3 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_opening_get_topology_id.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_opening_get_topology_id.html @@ -37,6 +37,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_apm_topology_opening_t.html b/libmongoc/1.23.1/mongoc_apm_topology_opening_t.html index ff28e6f89ba28be27b8a9b3e81b958145b0cb54e..df22f19d2e8326f061903996ec24a78286e3de7a 100644 --- a/libmongoc/1.23.1/mongoc_apm_topology_opening_t.html +++ b/libmongoc/1.23.1/mongoc_apm_topology_opening_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_destroy.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_destroy.html index aaddd2775ad7c9cea504e90e1055103073a1bffe..ff83399660850ee587caae5e3630f8b6f13a6ab7 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_destroy.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_new.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_new.html index 4636cdb9b70d37c19ffbb7bc12f85377cae48de7..edd005843765f448a78c1b3182b7d86443f61dc3 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_new.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html index 4a03174364413f03c9f70b666d17aca566180d57..7f63f225d19ff252a3241759f74298b5556d76b7 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html index 7d2afc01310a62d1d7088eca975efb685fe01335..b73eab7236bfebc9d7d47372f98398dab2eb63ea 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html index 0fa3cba45aad67db4cd7e6e3f5e4d58ede9c8712..f75a9cc16f1a491ef07715d3a3cb6f767a045454 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_extra.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_extra.html index cc3b96e2e734c77ecdbfa8881aa02e933d36d7e9..33e1371bb3b60304d584660f8fd6f5651158db89 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_extra.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_extra.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client.html index ad7b67a5fbc3170177d217a3b92eddf27ba59df6..80070932eb31ae3b1984d170300beb9951058227 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html index c0ff00755fa72122eea8386d7254aaebcc071bbc..5e59a2eb2801857da2e6fbe4aa94b30d87d6b5e3 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html index 5bcca810452ae97687e182e757cbac288e52e874..70821e548a5d836504e8e7deea704297b2dba7df 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html index 37a6834772b1c18ca2e0f29280b4970f39607da8..8e92b691260fb00ff3a918b4e6bdd2f9dbbe990f 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_providers.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_providers.html index 93f0c688fa20e89c3188ffeb526f599f35aa4422..b57d3a02e52212175c2d9a31f127f0e68927b63d 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_providers.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_kms_providers.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_schema_map.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_schema_map.html index af41573568d7815a0b8cafd026549b783161624a..5ba397b707c47cbafc6e685aaab052797eed43e1 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_schema_map.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_schema_map.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_tls_opts.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_tls_opts.html index 06d390de0d4325a3361f5dfa75c66dccf039a8aa..2245cba585766ad4736432832b08188c37148e1f 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_tls_opts.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_set_tls_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_auto_encryption_opts_t.html b/libmongoc/1.23.1/mongoc_auto_encryption_opts_t.html index 05d009a65e9f3ccc136e1593f676a6fa6cf3d233..b8d17957d75a35fc781f52f7fc194b1a5c442720 100644 --- a/libmongoc/1.23.1/mongoc_auto_encryption_opts_t.html +++ b/libmongoc/1.23.1/mongoc_auto_encryption_opts_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_delete.html b/libmongoc/1.23.1/mongoc_bulk_operation_delete.html index b06f1e82ca04e8caae35dcd3690b5dc046b87b8c..aa5af8a13618f9a9352bab39ef2783137950769c 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_delete.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_delete.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_delete_one.html b/libmongoc/1.23.1/mongoc_bulk_operation_delete_one.html index bc97de3904cfbd444ded39844bdb08041aac4ba8..4d0e1509ec84a3c95e2cc76d49d19b452833acec 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_delete_one.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_delete_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_destroy.html b/libmongoc/1.23.1/mongoc_bulk_operation_destroy.html index 777b3e463f62ded9bd4a521e097e09de15f06613..8cdd3d349e3e0eac4d48bfb8be2fedb16dbc098f 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_destroy.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_execute.html b/libmongoc/1.23.1/mongoc_bulk_operation_execute.html index 6ddf03b4c88c8a663fea3b28e77a142c97837aef..4444fb1f9158c679a5e0ba70f390df06d53d5208 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_execute.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_execute.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_get_hint.html b/libmongoc/1.23.1/mongoc_bulk_operation_get_hint.html index 33022f871531e9dea035e4f0cc56ac805c27785b..aa7f55103a772ed78dca8f085d2142876be96952 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_get_hint.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_get_hint.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_get_write_concern.html b/libmongoc/1.23.1/mongoc_bulk_operation_get_write_concern.html index 3779a356e9f9884ac5b43bb50cf871096d00a546..670803c5cc06d000666cefc638c35d073efb28ef 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_get_write_concern.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_get_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_insert.html b/libmongoc/1.23.1/mongoc_bulk_operation_insert.html index b445b4d0ebe902243897dcaf3280d458b26c663d..822cc84feb20961855991da2d44a39c614679ccd 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_insert.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_insert.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_insert_with_opts.html b/libmongoc/1.23.1/mongoc_bulk_operation_insert_with_opts.html index 70386d0be3492da5cd705ae2a24cf78496b9738a..6ea318db117c25ab4e1c8fc6f74c32c83bd1af38 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_insert_with_opts.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_insert_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_remove.html b/libmongoc/1.23.1/mongoc_bulk_operation_remove.html index 48a6a0f436888d18f946cff7e2a25249fd44e6b4..8b9d5bc5e0e6164fc6e037cb20193889de0abe16 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_remove.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_remove.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_remove_many_with_opts.html b/libmongoc/1.23.1/mongoc_bulk_operation_remove_many_with_opts.html index cc1497b99e8c5aacf5b1f9a54064cb016922f099..57dba6bf6f471706bbcb73b4187c4a03423f00ba 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_remove_many_with_opts.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_remove_many_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_remove_one.html b/libmongoc/1.23.1/mongoc_bulk_operation_remove_one.html index 3b2a9619bc9e930a5eb6f027f9cc7d2f0cbc2a0e..3e1518785c26ba1df86e2bff856518561ecb9544 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_remove_one.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_remove_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_remove_one_with_opts.html b/libmongoc/1.23.1/mongoc_bulk_operation_remove_one_with_opts.html index 04a56b38a4a8484827ef926020504d98f520ee18..ea49d42951e4bb418b095a1e497db59ed39a371d 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_remove_one_with_opts.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_remove_one_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_replace_one.html b/libmongoc/1.23.1/mongoc_bulk_operation_replace_one.html index 8f3e52cce64fe9882fc60c26dc54c46a352fe915..e495fff80d491324ea0c9cbc16cc22c070708c05 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_replace_one.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_replace_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_replace_one_with_opts.html b/libmongoc/1.23.1/mongoc_bulk_operation_replace_one_with_opts.html index 24d0a3ab44b4c95f15ecd98bc85a465a43ba340c..d70f2fb09ced2bcef759c4fca09c57f1db690ece 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_replace_one_with_opts.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_replace_one_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_set_bypass_document_validation.html b/libmongoc/1.23.1/mongoc_bulk_operation_set_bypass_document_validation.html index e58645a4540fc988985dd4b459c1acfd9415e325..c7546a42e3fa8ffc440ede0b32f2a4f974c66b12 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_set_bypass_document_validation.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_set_bypass_document_validation.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_set_client_session.html b/libmongoc/1.23.1/mongoc_bulk_operation_set_client_session.html index 2bb3a40172f5c19c7c4f85799932fa53d238152a..6eace98596988f77f6a7b64e65771d44cc887e10 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_set_client_session.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_set_client_session.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_set_comment.html b/libmongoc/1.23.1/mongoc_bulk_operation_set_comment.html index e13b9e7626f131dd7ed5fdcc3bb1cbb9384b1673..6a6128e1d1f1413bd045319e679a7a2f6c7b6799 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_set_comment.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_set_comment.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_set_hint.html b/libmongoc/1.23.1/mongoc_bulk_operation_set_hint.html index 5675980072a22533103a4ba91d133bb5d8f72489..853bd05e1506958ff781ec0058e8e83d27f13826 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_set_hint.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_set_hint.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_set_let.html b/libmongoc/1.23.1/mongoc_bulk_operation_set_let.html index 490302779ef3d2102c87a374ea8493e0bf5d868a..0bdff2d624d30cde8508fef65ab8d3df7905f0e3 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_set_let.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_set_let.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_t.html b/libmongoc/1.23.1/mongoc_bulk_operation_t.html index 71e844a0302236685108937dbabedd3f3b345250..96d2bc30ac1ba8de19d006184efd35c765a1aa66 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_t.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_update.html b/libmongoc/1.23.1/mongoc_bulk_operation_update.html index 429aa6ba36eebf6a220b74493f248816bd7f69cf..ebaac476969b709197009060285482febdded030 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_update.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_update.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_update_many_with_opts.html b/libmongoc/1.23.1/mongoc_bulk_operation_update_many_with_opts.html index 582b651d11cbb8986349054b5b102e2675d92ba2..ac0982d99abe8d0838e744fefe18f047d3dd53f1 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_update_many_with_opts.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_update_many_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_update_one.html b/libmongoc/1.23.1/mongoc_bulk_operation_update_one.html index b7f7a6e3fc67f4a39871c84d808524ae73462756..67d8f8fc835ec7fc5ee905cb4b22ff43f706684f 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_update_one.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_update_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_bulk_operation_update_one_with_opts.html b/libmongoc/1.23.1/mongoc_bulk_operation_update_one_with_opts.html index 4d4076cda7f519fcbd47671d21e4502e7e78e560..26a4cadac894986c7ef76bf0e7b1be346896359a 100644 --- a/libmongoc/1.23.1/mongoc_bulk_operation_update_one_with_opts.html +++ b/libmongoc/1.23.1/mongoc_bulk_operation_update_one_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_change_stream_destroy.html b/libmongoc/1.23.1/mongoc_change_stream_destroy.html index 868de08fe931adb8ca2dab34042293889a0d7bce..ba6e545cd0ecb96248a1a052368fc692b5a42d6d 100644 --- a/libmongoc/1.23.1/mongoc_change_stream_destroy.html +++ b/libmongoc/1.23.1/mongoc_change_stream_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_change_stream_error_document.html b/libmongoc/1.23.1/mongoc_change_stream_error_document.html index 001d24d40fd4592ed31d91c2cbf3e9663a527c54..c1154bd8b277ac42be1aba8b44c27237b2f86e5c 100644 --- a/libmongoc/1.23.1/mongoc_change_stream_error_document.html +++ b/libmongoc/1.23.1/mongoc_change_stream_error_document.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_change_stream_get_resume_token.html b/libmongoc/1.23.1/mongoc_change_stream_get_resume_token.html index 2d526a28c0df9deaff4ecb9db718efafe5a25c01..850126aa84564c875b770d8de7fc56158a3bb9f1 100644 --- a/libmongoc/1.23.1/mongoc_change_stream_get_resume_token.html +++ b/libmongoc/1.23.1/mongoc_change_stream_get_resume_token.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_change_stream_next.html b/libmongoc/1.23.1/mongoc_change_stream_next.html index 0ac769c607f599171ade2958d9fcdf25a9eb7649..f49d8b0934cb5a66ee42d47c3e0e91657c1aff2f 100644 --- a/libmongoc/1.23.1/mongoc_change_stream_next.html +++ b/libmongoc/1.23.1/mongoc_change_stream_next.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_change_stream_t.html b/libmongoc/1.23.1/mongoc_change_stream_t.html index 467905e7352d8d2e33a7f18cf31e28eeb31e4392..c86433237702fa71fb1b49c57082b0a586dcab72 100644 --- a/libmongoc/1.23.1/mongoc_change_stream_t.html +++ b/libmongoc/1.23.1/mongoc_change_stream_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_check_version.html b/libmongoc/1.23.1/mongoc_check_version.html index 1117a6f31652e68d65aae4c63732721079742d36..aac521fe127d98f7a2d38394eb062e2974245e10 100644 --- a/libmongoc/1.23.1/mongoc_check_version.html +++ b/libmongoc/1.23.1/mongoc_check_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cleanup.html b/libmongoc/1.23.1/mongoc_cleanup.html index 3950f765b39ba815a5c50ca25d03e1fb38b913b5..df1eae4280c1aa70b477475526812f36daaa50d1 100644 --- a/libmongoc/1.23.1/mongoc_cleanup.html +++ b/libmongoc/1.23.1/mongoc_cleanup.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_command.html b/libmongoc/1.23.1/mongoc_client_command.html index f66c248eed91f3ac0c934d7ba2e24f826f87a06e..20a3e5dd4d57acb565ee27141be80249db998db0 100644 --- a/libmongoc/1.23.1/mongoc_client_command.html +++ b/libmongoc/1.23.1/mongoc_client_command.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_command_simple.html b/libmongoc/1.23.1/mongoc_client_command_simple.html index b605a12741a4255c4b0b14b882ee80e8bcdeba11..0cf52a393b808208ea65528723f1edb190880f7d 100644 --- a/libmongoc/1.23.1/mongoc_client_command_simple.html +++ b/libmongoc/1.23.1/mongoc_client_command_simple.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_command_simple_with_server_id.html b/libmongoc/1.23.1/mongoc_client_command_simple_with_server_id.html index 291aecac96c8f1e72808df3d5c819012b761e91f..71d979db9aa5dea851b2bd03d3f8eb7a6173566f 100644 --- a/libmongoc/1.23.1/mongoc_client_command_simple_with_server_id.html +++ b/libmongoc/1.23.1/mongoc_client_command_simple_with_server_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_command_with_opts.html b/libmongoc/1.23.1/mongoc_client_command_with_opts.html index eea32919bfc80704d9d8662ee996940240ca188d..abfb5170e94ff8b5aef18231988b5bc57a0e31be 100644 --- a/libmongoc/1.23.1/mongoc_client_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_client_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_destroy.html b/libmongoc/1.23.1/mongoc_client_destroy.html index ede72a050bdb2bef0e89190b277cc0f87776fdf7..5ece1f660b6bcdd063ac0156f55332e8ea2f7d92 100644 --- a/libmongoc/1.23.1/mongoc_client_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_enable_auto_encryption.html b/libmongoc/1.23.1/mongoc_client_enable_auto_encryption.html index ab24c73a3ca342a45941b27919a3a1f539cb9b9e..e9dcc749d3b731929777a66e3722ecaf850eca6a 100644 --- a/libmongoc/1.23.1/mongoc_client_enable_auto_encryption.html +++ b/libmongoc/1.23.1/mongoc_client_enable_auto_encryption.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_add_key_alt_name.html b/libmongoc/1.23.1/mongoc_client_encryption_add_key_alt_name.html index 4ff676c9026b1e6c3b0a6c26c87b0d0140653104..8c3be249a208f866c25276af78bc2a3432064047 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_add_key_alt_name.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_add_key_alt_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_create_datakey.html b/libmongoc/1.23.1/mongoc_client_encryption_create_datakey.html index 92d5e71377f4c976a366505e70a6358be75c1c65..bc37571049d29bf81d7ef7ea01ffd39f571a3dcf 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_create_datakey.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_create_datakey.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_destroy.html b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_destroy.html index ee6cd961cd98c9196772aef3213ae7d88e4a5185..88d7015188b2ea1bb08b50b3eaa6aec9ea9941db 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_new.html b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_new.html index 7076f491ff14ee034777a60537cc468105143ce6..749a5cfa3e5d36e9d34707037076a5ddda062311 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_new.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html index e5a448e091febbbd26785a107fab7a1b73805211..030eb49d7310f48f021afea5b7227d091e971dac 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html index f6bbb2fff37a5de89540f526b39b78cc9b46b334..e5b1387f1806595a9bc57c3a6db19359e363989c 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_masterkey.html b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_masterkey.html index aceaefd2265c17a0375cefb4c0e69cb14ced97b8..df1486b5732c09d0b06fc62ccfe02b61c66b796a 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_masterkey.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_set_masterkey.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_t.html b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_t.html index b937d88e4f4175f02b082224b659395c2c362d95..d75835a4d8ecbb167af36920dcc11e3885c33c44 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_t.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_datakey_opts_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_decrypt.html b/libmongoc/1.23.1/mongoc_client_encryption_decrypt.html index c3ad66756255455782d8a3aeef3fefa01bbc4bf5..fd994cb9560db4b4ca5631e0f00e33f8f83fc561 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_decrypt.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_decrypt.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_delete_key.html b/libmongoc/1.23.1/mongoc_client_encryption_delete_key.html index d6e20595a2ec6a5322904262132e678e4dd804c9..e1516ecafc0fad63ed06ad0a6864aa682aa7c6ef 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_delete_key.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_delete_key.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_destroy.html b/libmongoc/1.23.1/mongoc_client_encryption_destroy.html index 89d21b64498bb06464802f59a6d6d13741b750d1..7d3d0d7e4828a884f400c705528606337b22678c 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt.html index f6121352025bf6421156b13c07f2635c972fece1..9a3680548329cb2058725c456fa3542b45734b14 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_destroy.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_destroy.html index 89788dd8ed503495e5897b716fbe1fd0857de3db..8a1d85059589d4bd0b6c6b79b332ba4577bd8d90 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_new.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_new.html index 192dd277f65761bb9571d3540136dd0e8438990b..ef23bae8c19105f29f65aaee490e8f895301664f 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_new.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html index 1cdc6a98a2fdeb76d292d25640b28f8c65f404f5..72e79eb5bc2d03219e280cb241568174f0e82295 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html index 6e4abbedaedea66234faa3f8b70cedf58a617993..8ede55bbc3ea1e7852f0e5ac6b9088bbb51f3094 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html index 7e00458c6f6be2ae0d498ef8a1ce513901aa76e3..a99ef6a98bbb379100142e3a22e4bf6de0df27e1 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyid.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyid.html index c9ff3a37cb728ef615ba1b158c856488c304e3c3..a7a3f025cb2254e50c0dddc3a43abba7f3e8d969 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyid.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_keyid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_query_type.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_query_type.html index c5c6d0735cd94acaec5c7e1a1c8e6c9c2289f683..c5502f00838ad824118989b7118af5e7303e3632 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_query_type.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_set_query_type.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_t.html b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_t.html index 124fc970e681446d450746bfb93ca2bb60a737b8..e316d1b0482c285b12a49d7a2aab07c49823773e 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_t.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_encrypt_opts_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_get_crypt_shared_version.html b/libmongoc/1.23.1/mongoc_client_encryption_get_crypt_shared_version.html index 22fa32062952ec773481a01697f0467bb3c7823d..f38503e461885f95ea3ccc1c8234299402b91a72 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_get_crypt_shared_version.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_get_crypt_shared_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_get_key.html b/libmongoc/1.23.1/mongoc_client_encryption_get_key.html index f0c15ac8e390448cd79c814459541226e55dbc37..0630eedc7532c48b52a1a7047847db43ed5002db 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_get_key.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_get_key.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_get_key_by_alt_name.html b/libmongoc/1.23.1/mongoc_client_encryption_get_key_by_alt_name.html index 241cda522308542b526fc1ebda006baeb764b586..493139f9f5fafe8d4e140cabc33243be80a78af1 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_get_key_by_alt_name.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_get_key_by_alt_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_get_keys.html b/libmongoc/1.23.1/mongoc_client_encryption_get_keys.html index 447e922ed8cf3c2a4740f9caf1c5e46756328325..4b231074c04cc2596f0fdeea167c88d7d8059142 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_get_keys.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_get_keys.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_new.html b/libmongoc/1.23.1/mongoc_client_encryption_new.html index 3f17678c3871543abaa90b683b27b008a4db9cc6..d673930b46e3551e8fbaeea6b4eb731ebfd3a1d8 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_new.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_destroy.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_destroy.html index 08d998d79fe4616697e97aed4c819b0d6f53f9bf..e8cd42212338a91515624e9b9eae87bffc0d7451 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_new.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_new.html index 4e8af62a030eb5c38da09296c7166aabffa241b5..7cf32cc516613eb483965e601b7542304a592c54 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_new.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_client.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_client.html index 22007327a73bf0fce44bb7bf9c964290be164daf..a0b73adbb2022b573ef4f34ec37dc0dd5c16de37 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_client.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_client.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_namespace.html index bfd3229183acd2e7d7b40d93f4f5a5fa82761ada..3e462e588a80027c8fced71ad335b6c72b8fc20d 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_namespace.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_keyvault_namespace.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html index 011946527d2fd9cf0314fcd87838f3b59a247bf7..8759ab5b82144c20aa25f6a4d709179d9185f597 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_providers.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_providers.html index 8778f19eac60a1b529917668230be3f89a150c31..fe0047fe5882bbb77c9a033bb4e383d07e851260 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_providers.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_kms_providers.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_tls_opts.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_tls_opts.html index 331bbbf8ad217dc4d72349d52ff139321159eb34..db325b9be1f2acb8a515448f5529f35465e0f553 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_set_tls_opts.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_set_tls_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_opts_t.html b/libmongoc/1.23.1/mongoc_client_encryption_opts_t.html index e842546fc19163b487c4818d89fd8521ba284f5b..93f8fa6e85a82571902a7e50feb4b62a620729d0 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_opts_t.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_opts_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_remove_key_alt_name.html b/libmongoc/1.23.1/mongoc_client_encryption_remove_key_alt_name.html index b22a193ad55b336235bfb3ce9e3232b549151d4c..1324625de71d93e23aac4ebe5ee5929975e9ee76 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_remove_key_alt_name.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_remove_key_alt_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey.html b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey.html index dcc32ffc199e48ff18c5853cef06a398d89f2e76..7d8a8b262170c5a51299825d2a80d59efa96e9cd 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html index d2066ad8395c690e6a845197e21afaa3ff007988..676b4a5dbd8112324c36ccbe745b1ce84b607f9c 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html index 3f25cad7ecdfe1a5c4c21e1d7472d9058e07ff66..52fffed870d452fdb6b8688fc21d42927436bcb1 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html index 1360444fa8e8820a19b557551b6bbc02ff57d335..dc9547c0a835158b9338081bf24c4fb3d7cfb496 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html index 6b87516457703d4334c599ff81493eec6d6be3da..89ab0e5c4d03c25f4c649d3fdb254037b8b4a67e 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_encryption_t.html b/libmongoc/1.23.1/mongoc_client_encryption_t.html index 380994b274dbf0cd4a795d61197afd1caf5c26da..651b97ad7fe027416c506636cac09457a8ce7714 100644 --- a/libmongoc/1.23.1/mongoc_client_encryption_t.html +++ b/libmongoc/1.23.1/mongoc_client_encryption_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_find_databases_with_opts.html b/libmongoc/1.23.1/mongoc_client_find_databases_with_opts.html index c87d43772bff5e970e025bab88273961c823a576..4d0f09c92fd6f136907f488f2f5b55a6e1ac1839 100644 --- a/libmongoc/1.23.1/mongoc_client_find_databases_with_opts.html +++ b/libmongoc/1.23.1/mongoc_client_find_databases_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_collection.html b/libmongoc/1.23.1/mongoc_client_get_collection.html index 8cb8bfc303679c710f66c06877d7f20e3fa2e42b..bf69a5082bf12e70d061d7b1b492168bac437760 100644 --- a/libmongoc/1.23.1/mongoc_client_get_collection.html +++ b/libmongoc/1.23.1/mongoc_client_get_collection.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_crypt_shared_version.html b/libmongoc/1.23.1/mongoc_client_get_crypt_shared_version.html index 2292512550487313d461474f0a751a1cb5f22acb..506a460b4078aa458dc1ba4ece5502464643db89 100644 --- a/libmongoc/1.23.1/mongoc_client_get_crypt_shared_version.html +++ b/libmongoc/1.23.1/mongoc_client_get_crypt_shared_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_database.html b/libmongoc/1.23.1/mongoc_client_get_database.html index 3aa92b89ef6fdd67b1b1790677e35fd42b4880f9..0d9bc02d2b3dec14ed60fb565a441245184801d1 100644 --- a/libmongoc/1.23.1/mongoc_client_get_database.html +++ b/libmongoc/1.23.1/mongoc_client_get_database.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_database_names.html b/libmongoc/1.23.1/mongoc_client_get_database_names.html index 7101fa967cae07bd72ddddf1faa35ae807686085..ae6781369ff5859f0d0feab8f73f27041f7cf1b6 100644 --- a/libmongoc/1.23.1/mongoc_client_get_database_names.html +++ b/libmongoc/1.23.1/mongoc_client_get_database_names.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_database_names_with_opts.html b/libmongoc/1.23.1/mongoc_client_get_database_names_with_opts.html index f03fd16bbe8aa0b67e1d0ca0de743acc069719e2..ea15b19db4d2b0f8fe891c32c37d8bfa25a3811d 100644 --- a/libmongoc/1.23.1/mongoc_client_get_database_names_with_opts.html +++ b/libmongoc/1.23.1/mongoc_client_get_database_names_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_default_database.html b/libmongoc/1.23.1/mongoc_client_get_default_database.html index c463e7f7aad52e4bec4d07f4bc0946ce3fb943de..2873ec97682d885e122dd58211b51ebefbb22354 100644 --- a/libmongoc/1.23.1/mongoc_client_get_default_database.html +++ b/libmongoc/1.23.1/mongoc_client_get_default_database.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_gridfs.html b/libmongoc/1.23.1/mongoc_client_get_gridfs.html index ea3009e92ac80a3815de0ec8e00fdf1221bd890d..94cc2a4b7796989a10ad3ce58011f67723587b0e 100644 --- a/libmongoc/1.23.1/mongoc_client_get_gridfs.html +++ b/libmongoc/1.23.1/mongoc_client_get_gridfs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_handshake_description.html b/libmongoc/1.23.1/mongoc_client_get_handshake_description.html index 4b5e83968ca9dc5264b5eb2b039315211f359b0b..fa92543baeed66921c84763c588e795c5596cc57 100644 --- a/libmongoc/1.23.1/mongoc_client_get_handshake_description.html +++ b/libmongoc/1.23.1/mongoc_client_get_handshake_description.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_max_bson_size.html b/libmongoc/1.23.1/mongoc_client_get_max_bson_size.html index 12cf03700143a5a8c6c9d5fc3aabd50ad0277bd3..8ba437842bd1640abbe629463c08702ef2e09eb9 100644 --- a/libmongoc/1.23.1/mongoc_client_get_max_bson_size.html +++ b/libmongoc/1.23.1/mongoc_client_get_max_bson_size.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_max_message_size.html b/libmongoc/1.23.1/mongoc_client_get_max_message_size.html index 0e2bd2a5663b0c41d6a82e7c87b7816961a39c6e..e69057ae00818b86b561714595b80636fa25a956 100644 --- a/libmongoc/1.23.1/mongoc_client_get_max_message_size.html +++ b/libmongoc/1.23.1/mongoc_client_get_max_message_size.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_read_concern.html b/libmongoc/1.23.1/mongoc_client_get_read_concern.html index 43e7e5159715453f7c1fa95ee6521ce7210692e1..b48959ceb77e32443900653512e36874b1cf11c0 100644 --- a/libmongoc/1.23.1/mongoc_client_get_read_concern.html +++ b/libmongoc/1.23.1/mongoc_client_get_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_read_prefs.html b/libmongoc/1.23.1/mongoc_client_get_read_prefs.html index 8307d6c18d192a74ef80fb1bea1645857831a975..92d805c9a07be66a4c777c206d9054c28fbbb54c 100644 --- a/libmongoc/1.23.1/mongoc_client_get_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_client_get_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_server_description.html b/libmongoc/1.23.1/mongoc_client_get_server_description.html index a603cad01a3d79f4cd0a061bd429207fb9616d86..e3f525b5694e9b7656c8d02b0c879767c4b17324 100644 --- a/libmongoc/1.23.1/mongoc_client_get_server_description.html +++ b/libmongoc/1.23.1/mongoc_client_get_server_description.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_server_descriptions.html b/libmongoc/1.23.1/mongoc_client_get_server_descriptions.html index a95017229ca62a803e55a62b2d25ab4b00729c3b..9c31927f0786ffb9955982cfee21ff6ab16ca0c3 100644 --- a/libmongoc/1.23.1/mongoc_client_get_server_descriptions.html +++ b/libmongoc/1.23.1/mongoc_client_get_server_descriptions.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_server_status.html b/libmongoc/1.23.1/mongoc_client_get_server_status.html index c09d68897fe40b5c37349a9072333ad70070483e..da08f081e0b341ac9c8c92c66862620640b9b680 100644 --- a/libmongoc/1.23.1/mongoc_client_get_server_status.html +++ b/libmongoc/1.23.1/mongoc_client_get_server_status.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_uri.html b/libmongoc/1.23.1/mongoc_client_get_uri.html index 9d80c780c691cb36631b1c2c9c0fbb06f8a2e36a..b01e0a858e02536763f6824e265e3a98259dd035 100644 --- a/libmongoc/1.23.1/mongoc_client_get_uri.html +++ b/libmongoc/1.23.1/mongoc_client_get_uri.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_get_write_concern.html b/libmongoc/1.23.1/mongoc_client_get_write_concern.html index 99274ed8c4da8335768d8fe3612348a1c7f78b57..2251b6ddd734b4ecf13d23b14c09e6625c1b9927 100644 --- a/libmongoc/1.23.1/mongoc_client_get_write_concern.html +++ b/libmongoc/1.23.1/mongoc_client_get_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_new.html b/libmongoc/1.23.1/mongoc_client_new.html index 481715c6716f1250a643a95df665a206318f611d..47b93c16e4a7498a181805f104d3c427ec811fcc 100644 --- a/libmongoc/1.23.1/mongoc_client_new.html +++ b/libmongoc/1.23.1/mongoc_client_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_new_from_uri.html b/libmongoc/1.23.1/mongoc_client_new_from_uri.html index fb453617cd472f25a3021ccf4ede8270b83bb82d..25982f2a2006ae4b507fae65435eda2d6900e097 100644 --- a/libmongoc/1.23.1/mongoc_client_new_from_uri.html +++ b/libmongoc/1.23.1/mongoc_client_new_from_uri.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_new_from_uri_with_error.html b/libmongoc/1.23.1/mongoc_client_new_from_uri_with_error.html index c86293f57142ee514aa99215e795ac359efa5a1b..65a66caaf00cc864b9e905c5cb734097959d1335 100644 --- a/libmongoc/1.23.1/mongoc_client_new_from_uri_with_error.html +++ b/libmongoc/1.23.1/mongoc_client_new_from_uri_with_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_destroy.html b/libmongoc/1.23.1/mongoc_client_pool_destroy.html index d737b39cbd8c230db40accead996ce478acc08c0..45b763d178a572bfa9513af9bd5deea4a5ec28be 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_pool_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_enable_auto_encryption.html b/libmongoc/1.23.1/mongoc_client_pool_enable_auto_encryption.html index e8e16e7eb97fea81d2303121ea5c47f016538468..08f833045df1ce99616f27d1efae422b1ef4d3df 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_enable_auto_encryption.html +++ b/libmongoc/1.23.1/mongoc_client_pool_enable_auto_encryption.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_max_size.html b/libmongoc/1.23.1/mongoc_client_pool_max_size.html index a9bb63c9abcf525abcaf2ef4ca1e86ae9dcb2254..e831807db0c4fb7ab8376801e8e2503b5e3b5144 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_max_size.html +++ b/libmongoc/1.23.1/mongoc_client_pool_max_size.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_min_size.html b/libmongoc/1.23.1/mongoc_client_pool_min_size.html index 48c44dc1749f7269403cc8c936ba5a53c460c4d3..ca28f49b091036b6bbff498f4e9587b948a86b26 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_min_size.html +++ b/libmongoc/1.23.1/mongoc_client_pool_min_size.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_new.html b/libmongoc/1.23.1/mongoc_client_pool_new.html index a4c2dce8124a803d06718008e2dbf3a1d190fa4d..69401894c17a1474135d54bd144cba2e6482df62 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_new.html +++ b/libmongoc/1.23.1/mongoc_client_pool_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_new_with_error.html b/libmongoc/1.23.1/mongoc_client_pool_new_with_error.html index 9fbf317fb33ee1ef2c6cd7c19010eebae20a873b..330810c48965a988f3918fd0e8914eaad07ef52e 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_new_with_error.html +++ b/libmongoc/1.23.1/mongoc_client_pool_new_with_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_pop.html b/libmongoc/1.23.1/mongoc_client_pool_pop.html index e850dc00019e2b1e395bc93ffce2a774d348cd8a..dde95694d8d51cfe673a83dfe44946fa110b423a 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_pop.html +++ b/libmongoc/1.23.1/mongoc_client_pool_pop.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_push.html b/libmongoc/1.23.1/mongoc_client_pool_push.html index 8c59db8c48937df56c72f119583c67dba0753ea7..95b29846acaf60e5b95495a97eb6c6bddadf81bb 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_push.html +++ b/libmongoc/1.23.1/mongoc_client_pool_push.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_set_apm_callbacks.html b/libmongoc/1.23.1/mongoc_client_pool_set_apm_callbacks.html index 2aec0cbff56762267a6f54455782972d3c2f9b9a..043e5059fab4ec32956c8b228b0605b37a7510a1 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_set_apm_callbacks.html +++ b/libmongoc/1.23.1/mongoc_client_pool_set_apm_callbacks.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_set_appname.html b/libmongoc/1.23.1/mongoc_client_pool_set_appname.html index e8f6435b5931bede4b0dd81f0e6f6f9123bdce04..4bcfec8d05a5af1021afdd57dc86a88184e55368 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_set_appname.html +++ b/libmongoc/1.23.1/mongoc_client_pool_set_appname.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_set_error_api.html b/libmongoc/1.23.1/mongoc_client_pool_set_error_api.html index 0f2daf5c8aca4f3b530cdc432cb712971915303c..552b6609972a07d1a92e16f102d7229f85db970d 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_set_error_api.html +++ b/libmongoc/1.23.1/mongoc_client_pool_set_error_api.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_set_server_api.html b/libmongoc/1.23.1/mongoc_client_pool_set_server_api.html index ea547b4a12ceb5043e8252dbf179f5d9330f29ce..c86f0c677fd6414b27416765615cdf2146695126 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_set_server_api.html +++ b/libmongoc/1.23.1/mongoc_client_pool_set_server_api.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_set_ssl_opts.html b/libmongoc/1.23.1/mongoc_client_pool_set_ssl_opts.html index 2683c7090390e9761c2388c9e032dd999a248eef..8ca6e50d444015cac5e4f92525a3a75c3e239774 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_set_ssl_opts.html +++ b/libmongoc/1.23.1/mongoc_client_pool_set_ssl_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_t.html b/libmongoc/1.23.1/mongoc_client_pool_t.html index cec49636d0e72fbad64b08042c28f6245ad92e4a..9c71fae6b7b242005f259edfe6c58bded17b4b8c 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_t.html +++ b/libmongoc/1.23.1/mongoc_client_pool_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_pool_try_pop.html b/libmongoc/1.23.1/mongoc_client_pool_try_pop.html index 153819bfad7843bcfc9f2e054c284af219982e4d..cc70c3c85170b0f3fcc5b4b28645b86b396e6796 100644 --- a/libmongoc/1.23.1/mongoc_client_pool_try_pop.html +++ b/libmongoc/1.23.1/mongoc_client_pool_try_pop.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_read_command_with_opts.html b/libmongoc/1.23.1/mongoc_client_read_command_with_opts.html index 07aeb7ef0e4ad482e61d3c72135042e0f546128e..cc8dec6cd4bf0588dab763c25deb6ea0774e561a 100644 --- a/libmongoc/1.23.1/mongoc_client_read_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_client_read_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_read_write_command_with_opts.html b/libmongoc/1.23.1/mongoc_client_read_write_command_with_opts.html index 504499371e6c4ff6f01d12d0f7000a0a053fcac1..b6a3a920159f62b927b39e829b9e66b338cbc997 100644 --- a/libmongoc/1.23.1/mongoc_client_read_write_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_client_read_write_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_reset.html b/libmongoc/1.23.1/mongoc_client_reset.html index 834e3ef99497ec11cc5f25a9c97c69b74105c953..c6e023aec209f7ec965ce7302bb2f8f3c2664208 100644 --- a/libmongoc/1.23.1/mongoc_client_reset.html +++ b/libmongoc/1.23.1/mongoc_client_reset.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_select_server.html b/libmongoc/1.23.1/mongoc_client_select_server.html index e4ab2ce75b6182c960b9d82dcbdbcdaf34c433fa..ccbe8a6b11610e226f9052a82cb1fb7ef5a41240 100644 --- a/libmongoc/1.23.1/mongoc_client_select_server.html +++ b/libmongoc/1.23.1/mongoc_client_select_server.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_abort_transaction.html b/libmongoc/1.23.1/mongoc_client_session_abort_transaction.html index bdff20e1ea9bdfe8110a9766ac379795b166b684..f5e1004adb02fcb2f1c81e61c6d0f8cfe80269eb 100644 --- a/libmongoc/1.23.1/mongoc_client_session_abort_transaction.html +++ b/libmongoc/1.23.1/mongoc_client_session_abort_transaction.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_advance_cluster_time.html b/libmongoc/1.23.1/mongoc_client_session_advance_cluster_time.html index 997a0de4efb99315aa5cea2403f533d3cabe6680..653a516d2f8b83a80c1a5911f4f9bbb53f138f47 100644 --- a/libmongoc/1.23.1/mongoc_client_session_advance_cluster_time.html +++ b/libmongoc/1.23.1/mongoc_client_session_advance_cluster_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_advance_operation_time.html b/libmongoc/1.23.1/mongoc_client_session_advance_operation_time.html index 50d45c45c2b973b5d959ad15db6447f25af75f76..46be8c7e7bd5889b320febe9b570d758273d7c92 100644 --- a/libmongoc/1.23.1/mongoc_client_session_advance_operation_time.html +++ b/libmongoc/1.23.1/mongoc_client_session_advance_operation_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_append.html b/libmongoc/1.23.1/mongoc_client_session_append.html index 6d78d506c37e2fc073e60017e550492d458cc300..f746f09631b87efaa0b40043733697389e52ba80 100644 --- a/libmongoc/1.23.1/mongoc_client_session_append.html +++ b/libmongoc/1.23.1/mongoc_client_session_append.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_commit_transaction.html b/libmongoc/1.23.1/mongoc_client_session_commit_transaction.html index a14885731b8c2c5bc626efabec0c6e738c44c713..bae69c235c98cf14370870b49395a57019b27d4f 100644 --- a/libmongoc/1.23.1/mongoc_client_session_commit_transaction.html +++ b/libmongoc/1.23.1/mongoc_client_session_commit_transaction.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_destroy.html b/libmongoc/1.23.1/mongoc_client_session_destroy.html index 2c1eaca7a4db9679236f258d8f0f2fc7f343c4a4..3712ed5befd77739058e8933cd764ecec9eab423 100644 --- a/libmongoc/1.23.1/mongoc_client_session_destroy.html +++ b/libmongoc/1.23.1/mongoc_client_session_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_client.html b/libmongoc/1.23.1/mongoc_client_session_get_client.html index 09c0d92d5e8decc9931a77bfb958b3872a73c0db..f8991c3e86e98d11f1e475df072019f746b874c3 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_client.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_client.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_cluster_time.html b/libmongoc/1.23.1/mongoc_client_session_get_cluster_time.html index 89b2748b9495c9232045e67c43236be6efcc8e2d..76a91405cea692518f3d8022fcef7ce3bff4cd9a 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_cluster_time.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_cluster_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_dirty.html b/libmongoc/1.23.1/mongoc_client_session_get_dirty.html index 552681451b2e8834de113e2d065b8b9bc4cf9a1e..ce2d4a4a9447155712cf569a9d3df33a2a70cd92 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_dirty.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_dirty.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_lsid.html b/libmongoc/1.23.1/mongoc_client_session_get_lsid.html index 957abfec8a37f7f0ee4f2c2fbb5d2f4fa7eee7cc..e534e5c7a97d2a249f7e503610f145962a867f58 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_lsid.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_lsid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_operation_time.html b/libmongoc/1.23.1/mongoc_client_session_get_operation_time.html index 26ca222b8083a77fe202c99182bd56a87e3e2c97..ab40a891d27ad631f3c24a3bc119a01273a56480 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_operation_time.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_operation_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_opts.html b/libmongoc/1.23.1/mongoc_client_session_get_opts.html index cab13c61811d56b62898d3c85e6440bf0f0b09f4..085cc5ad1491b9e3f4e2839b3b91d56cd86d392f 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_opts.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_server_id.html b/libmongoc/1.23.1/mongoc_client_session_get_server_id.html index 9dc472255e913285066029b7c6f3b965d2781db2..5d402933ade92a4bf86ad298d863695b7bfa3e59 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_server_id.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_server_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_get_transaction_state.html b/libmongoc/1.23.1/mongoc_client_session_get_transaction_state.html index 7a884bd97202036828f514ed03c66927a4aaaeea..189a73f29f8d719a39f5459d9dafb7cfde7c8cc9 100644 --- a/libmongoc/1.23.1/mongoc_client_session_get_transaction_state.html +++ b/libmongoc/1.23.1/mongoc_client_session_get_transaction_state.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_in_transaction.html b/libmongoc/1.23.1/mongoc_client_session_in_transaction.html index f7c30fe197c77eae1eda6d8aa341d0ecfff6c279..91d74a311a9f1a02ee7b7655da699939b77abd23 100644 --- a/libmongoc/1.23.1/mongoc_client_session_in_transaction.html +++ b/libmongoc/1.23.1/mongoc_client_session_in_transaction.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_start_transaction.html b/libmongoc/1.23.1/mongoc_client_session_start_transaction.html index a1790fa40df40566ec09fbdbf53378a6c7c4aa6e..6a0fd28ae7435da4fe05e80d810c90c3f56299d3 100644 --- a/libmongoc/1.23.1/mongoc_client_session_start_transaction.html +++ b/libmongoc/1.23.1/mongoc_client_session_start_transaction.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_t.html b/libmongoc/1.23.1/mongoc_client_session_t.html index adcaec7623fd1706eb546d2d6ce60183ccd79e3e..a49bbbdef4b3db45fdc92562253ecc5cb344b0f0 100644 --- a/libmongoc/1.23.1/mongoc_client_session_t.html +++ b/libmongoc/1.23.1/mongoc_client_session_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_with_transaction.html b/libmongoc/1.23.1/mongoc_client_session_with_transaction.html index 3f159f6ea112f6fcc6f5caab02dbf2f2493d3570..9a164369f08bd24db9ac8ee5a7b5201e08b9effa 100644 --- a/libmongoc/1.23.1/mongoc_client_session_with_transaction.html +++ b/libmongoc/1.23.1/mongoc_client_session_with_transaction.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_session_with_transaction_cb_t.html b/libmongoc/1.23.1/mongoc_client_session_with_transaction_cb_t.html index 86136da6e57a6229c6d2675640d75371228a7fe5..715459880b6d56664f215fd335325e21f46785b5 100644 --- a/libmongoc/1.23.1/mongoc_client_session_with_transaction_cb_t.html +++ b/libmongoc/1.23.1/mongoc_client_session_with_transaction_cb_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_apm_callbacks.html b/libmongoc/1.23.1/mongoc_client_set_apm_callbacks.html index 0e6c705ad8b8918819d4310d548d2513867856f9..15fd3a3102f2f6170145dd6ad5f903a3a434ec25 100644 --- a/libmongoc/1.23.1/mongoc_client_set_apm_callbacks.html +++ b/libmongoc/1.23.1/mongoc_client_set_apm_callbacks.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_appname.html b/libmongoc/1.23.1/mongoc_client_set_appname.html index 969afe7d47333bd0084dff81db1f08df322fa435..25c9fea18a7618bd77617262081267f0600b89e0 100644 --- a/libmongoc/1.23.1/mongoc_client_set_appname.html +++ b/libmongoc/1.23.1/mongoc_client_set_appname.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_error_api.html b/libmongoc/1.23.1/mongoc_client_set_error_api.html index 19292c1836bc00721d458e2332d97a77970a1c26..82edbb817b0d992fb4eacb2938e64c0f22694128 100644 --- a/libmongoc/1.23.1/mongoc_client_set_error_api.html +++ b/libmongoc/1.23.1/mongoc_client_set_error_api.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_read_concern.html b/libmongoc/1.23.1/mongoc_client_set_read_concern.html index 1df43c1617546b5b6dc3939be69858e7868daa91..265b10e31fd938f4f85b71f7122a8b50a17c2c36 100644 --- a/libmongoc/1.23.1/mongoc_client_set_read_concern.html +++ b/libmongoc/1.23.1/mongoc_client_set_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_read_prefs.html b/libmongoc/1.23.1/mongoc_client_set_read_prefs.html index cd0d04f646eba04c7f1faddeeb5724ed5196bb18..3175afcfb3a4622c01c7f4f38b8c77abf40451f4 100644 --- a/libmongoc/1.23.1/mongoc_client_set_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_client_set_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_server_api.html b/libmongoc/1.23.1/mongoc_client_set_server_api.html index 917ef689d68a13c1628ce5f40cd5b24eb64600d6..121fb386671198b95306be68c6f7504d45ebe154 100644 --- a/libmongoc/1.23.1/mongoc_client_set_server_api.html +++ b/libmongoc/1.23.1/mongoc_client_set_server_api.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_ssl_opts.html b/libmongoc/1.23.1/mongoc_client_set_ssl_opts.html index 33f75202d7677b9fe416816987452435f1168fe1..56e2f66623dabbeab1930f7d7e9d4c4e3c2dabf6 100644 --- a/libmongoc/1.23.1/mongoc_client_set_ssl_opts.html +++ b/libmongoc/1.23.1/mongoc_client_set_ssl_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_stream_initiator.html b/libmongoc/1.23.1/mongoc_client_set_stream_initiator.html index c6cf068efce173d662946739ad2eae54beafc70d..aa1a34c98e156be436a19081b10f5b5193aede35 100644 --- a/libmongoc/1.23.1/mongoc_client_set_stream_initiator.html +++ b/libmongoc/1.23.1/mongoc_client_set_stream_initiator.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_set_write_concern.html b/libmongoc/1.23.1/mongoc_client_set_write_concern.html index fa594423a40de068442f9cc23c827f2712526d26..88106280567f545f4c09ad236948097200728f4d 100644 --- a/libmongoc/1.23.1/mongoc_client_set_write_concern.html +++ b/libmongoc/1.23.1/mongoc_client_set_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_start_session.html b/libmongoc/1.23.1/mongoc_client_start_session.html index c217ba995478a8745e8cefccf774be984173df32..7377542990ef479228cf723727d02a5f9ba2bee5 100644 --- a/libmongoc/1.23.1/mongoc_client_start_session.html +++ b/libmongoc/1.23.1/mongoc_client_start_session.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_t.html b/libmongoc/1.23.1/mongoc_client_t.html index f2ae313d6a3de9db9652abccabade3b28f997061..88b8153c1d960cf084ed92cfe6967234b6969c24 100644 --- a/libmongoc/1.23.1/mongoc_client_t.html +++ b/libmongoc/1.23.1/mongoc_client_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_watch.html b/libmongoc/1.23.1/mongoc_client_watch.html index 96673f56db713eda641b8ab6e2a5e065791bd78c..207230796e32816aabf4a2be08c82e11e413c286 100644 --- a/libmongoc/1.23.1/mongoc_client_watch.html +++ b/libmongoc/1.23.1/mongoc_client_watch.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_client_write_command_with_opts.html b/libmongoc/1.23.1/mongoc_client_write_command_with_opts.html index c9ae49a918a48135f8806a4dd269b3c473ec8ff6..f22bbd4b9e7cc94db1c9753cddd98ef0d05cad08 100644 --- a/libmongoc/1.23.1/mongoc_client_write_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_client_write_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_aggregate.html b/libmongoc/1.23.1/mongoc_collection_aggregate.html index 74c1d84a54c399f456a4b4e2f920b6d62e09ff79..9048b9b0a1b80e350f63b5e2a4ab36b418174e0e 100644 --- a/libmongoc/1.23.1/mongoc_collection_aggregate.html +++ b/libmongoc/1.23.1/mongoc_collection_aggregate.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_command.html b/libmongoc/1.23.1/mongoc_collection_command.html index a4ec61291269c3e0c8922626c9b8afac41f39309..eb04e8d1d65b7cb8a5fd2e0be1bbbbf89baa7942 100644 --- a/libmongoc/1.23.1/mongoc_collection_command.html +++ b/libmongoc/1.23.1/mongoc_collection_command.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_command_simple.html b/libmongoc/1.23.1/mongoc_collection_command_simple.html index 1bd4d73a9dcb46ccd6746c5c7c798c8de77cd120..308d97f70aec9f3c6ffb300cb1ca71549edf053d 100644 --- a/libmongoc/1.23.1/mongoc_collection_command_simple.html +++ b/libmongoc/1.23.1/mongoc_collection_command_simple.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_command_with_opts.html b/libmongoc/1.23.1/mongoc_collection_command_with_opts.html index df1b6d89258973ff7780d8ecf8a101bab4fb88d5..91ee3a907c8365e15e814efeaeeb2f7a171f6714 100644 --- a/libmongoc/1.23.1/mongoc_collection_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_copy.html b/libmongoc/1.23.1/mongoc_collection_copy.html index 261b39ead9d5f60c01d73e4f4e29026338e10a03..464985c661f6de153e581d497efc9b8d23dbd761 100644 --- a/libmongoc/1.23.1/mongoc_collection_copy.html +++ b/libmongoc/1.23.1/mongoc_collection_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_count.html b/libmongoc/1.23.1/mongoc_collection_count.html index 397b5af78c4e92800b327bb249b709904c83f601..d74d275d3964509055c36142c84eb8d3fc20b6c6 100644 --- a/libmongoc/1.23.1/mongoc_collection_count.html +++ b/libmongoc/1.23.1/mongoc_collection_count.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_count_documents.html b/libmongoc/1.23.1/mongoc_collection_count_documents.html index 75f3f1b39743f57f126ed87df0bd303566be2cba..d3d457dd2281f6ab6c54ae68f2e9a1b3c9bb5fef 100644 --- a/libmongoc/1.23.1/mongoc_collection_count_documents.html +++ b/libmongoc/1.23.1/mongoc_collection_count_documents.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_count_with_opts.html b/libmongoc/1.23.1/mongoc_collection_count_with_opts.html index 617a536d76825dad87a1fd0f3d1ff45e24fee7d4..0084e47d73a93ffc8aedf616018220a36de3b1ef 100644 --- a/libmongoc/1.23.1/mongoc_collection_count_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_count_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_create_bulk_operation.html b/libmongoc/1.23.1/mongoc_collection_create_bulk_operation.html index eff295814ca8733d3c4ff30f8109b696bb0eb26a..e070d1bced102d5ce1cd095dfa2abb4e0a699ef6 100644 --- a/libmongoc/1.23.1/mongoc_collection_create_bulk_operation.html +++ b/libmongoc/1.23.1/mongoc_collection_create_bulk_operation.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_create_bulk_operation_with_opts.html b/libmongoc/1.23.1/mongoc_collection_create_bulk_operation_with_opts.html index ba3f5abcbd1f531342554e965f73013eb1bc7986..8a5b416c6b9eb9bba1932c6244f863f6db0eeece 100644 --- a/libmongoc/1.23.1/mongoc_collection_create_bulk_operation_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_create_bulk_operation_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_create_index.html b/libmongoc/1.23.1/mongoc_collection_create_index.html index 4a8969664aa61845cfb231aed8b2be8e662fae4f..1aa794c2b31b2bca563212efef04f1c7fabefbe6 100644 --- a/libmongoc/1.23.1/mongoc_collection_create_index.html +++ b/libmongoc/1.23.1/mongoc_collection_create_index.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_create_index_with_opts.html b/libmongoc/1.23.1/mongoc_collection_create_index_with_opts.html index d5fda622ef864d21ec190f021bc9f055c2e80d91..d71fc20fdf7da916a6dcf5b0d94460ea95472d8d 100644 --- a/libmongoc/1.23.1/mongoc_collection_create_index_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_create_index_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_delete.html b/libmongoc/1.23.1/mongoc_collection_delete.html index 36c68e0e5d030b03c36822293e91ffb8bf906e6e..981d74fab10c7714370310b9b3911a3bc96091f4 100644 --- a/libmongoc/1.23.1/mongoc_collection_delete.html +++ b/libmongoc/1.23.1/mongoc_collection_delete.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_delete_many.html b/libmongoc/1.23.1/mongoc_collection_delete_many.html index 05bc03c6c0ac47be3d64291104816a72cc1c3e16..0886221139bfc51f77adfc09878dc0f10b4cde27 100644 --- a/libmongoc/1.23.1/mongoc_collection_delete_many.html +++ b/libmongoc/1.23.1/mongoc_collection_delete_many.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_delete_one.html b/libmongoc/1.23.1/mongoc_collection_delete_one.html index cba0c4074fb626087eac6fc624634e85161cc598..fe572edcf584d46dc21a695628edc9d9add9243d 100644 --- a/libmongoc/1.23.1/mongoc_collection_delete_one.html +++ b/libmongoc/1.23.1/mongoc_collection_delete_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_destroy.html b/libmongoc/1.23.1/mongoc_collection_destroy.html index 17e5c8b09d4502400c170dd79f5a787e2a12e31f..3b3c78b958bed2e1430f3787d909e54bbb9c0d00 100644 --- a/libmongoc/1.23.1/mongoc_collection_destroy.html +++ b/libmongoc/1.23.1/mongoc_collection_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_drop.html b/libmongoc/1.23.1/mongoc_collection_drop.html index 0599ba66d76d05c18df5c3619bbfd5de1b80f127..8d8b61a39883623556d7115841acd8d65f1fafb3 100644 --- a/libmongoc/1.23.1/mongoc_collection_drop.html +++ b/libmongoc/1.23.1/mongoc_collection_drop.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_drop_index.html b/libmongoc/1.23.1/mongoc_collection_drop_index.html index 0f39977eedee976ca2c7c14abfcaa4e7293a61f4..5a16572400842aac8e9758decb475a41193d0941 100644 --- a/libmongoc/1.23.1/mongoc_collection_drop_index.html +++ b/libmongoc/1.23.1/mongoc_collection_drop_index.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_drop_index_with_opts.html b/libmongoc/1.23.1/mongoc_collection_drop_index_with_opts.html index a0667494a3dd464e737d0f05c99e39246a06e5c3..0502168d987b2950b3ecb093e9122c299a8fb32d 100644 --- a/libmongoc/1.23.1/mongoc_collection_drop_index_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_drop_index_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_drop_with_opts.html b/libmongoc/1.23.1/mongoc_collection_drop_with_opts.html index 84b4f33035d5baa31c4406178589156393ac11ee..32f94243aa0c0b1b97a954d52cb5deaa600cf4c0 100644 --- a/libmongoc/1.23.1/mongoc_collection_drop_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_drop_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_ensure_index.html b/libmongoc/1.23.1/mongoc_collection_ensure_index.html index c73e27c35a6f1d57a28f791a059f41bddcd0fb00..32b17dcec7e4ff7740b429c0000ed6815a8b03b2 100644 --- a/libmongoc/1.23.1/mongoc_collection_ensure_index.html +++ b/libmongoc/1.23.1/mongoc_collection_ensure_index.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_estimated_document_count.html b/libmongoc/1.23.1/mongoc_collection_estimated_document_count.html index 6566ac062553a98a7a433bf20fa23d6a084b6b69..960443a3bb4f747f94fedfe4e3b3ec12fcd2ce9e 100644 --- a/libmongoc/1.23.1/mongoc_collection_estimated_document_count.html +++ b/libmongoc/1.23.1/mongoc_collection_estimated_document_count.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_find.html b/libmongoc/1.23.1/mongoc_collection_find.html index 60f41c4e36da16b168fd06c1505b4f8ea7bb804c..df2cb0819f319472331b4fb705c0e2b81a1aa096 100644 --- a/libmongoc/1.23.1/mongoc_collection_find.html +++ b/libmongoc/1.23.1/mongoc_collection_find.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_find_and_modify.html b/libmongoc/1.23.1/mongoc_collection_find_and_modify.html index 3e50109aba427552649658e9a5fdc6a02efdd79f..089c31dd75fb487ba7a3d4e615ba4e9235cb59c5 100644 --- a/libmongoc/1.23.1/mongoc_collection_find_and_modify.html +++ b/libmongoc/1.23.1/mongoc_collection_find_and_modify.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_find_and_modify_with_opts.html b/libmongoc/1.23.1/mongoc_collection_find_and_modify_with_opts.html index 66f10cc7a68315318a2f2a2fe211421f9449bcf5..6b15953bfa0b5dd66861a6c6efcedc1398e5d085 100644 --- a/libmongoc/1.23.1/mongoc_collection_find_and_modify_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_find_and_modify_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_find_indexes.html b/libmongoc/1.23.1/mongoc_collection_find_indexes.html index d27d37425a67439e669f27a20c9b66ef21fbeed7..6688c166149c4a914a776eb31be9b03d6df13d28 100644 --- a/libmongoc/1.23.1/mongoc_collection_find_indexes.html +++ b/libmongoc/1.23.1/mongoc_collection_find_indexes.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_find_indexes_with_opts.html b/libmongoc/1.23.1/mongoc_collection_find_indexes_with_opts.html index e68fcebc0d11400b6b237e109708acf7fe0cb6ac..f634d5ff512528edb734b275fed822c2bdfe034a 100644 --- a/libmongoc/1.23.1/mongoc_collection_find_indexes_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_find_indexes_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_find_with_opts.html b/libmongoc/1.23.1/mongoc_collection_find_with_opts.html index 781655845defdd8625b216817ee092523f925b81..4356f6b2b358d4f96bd803123c77a38249d5a35b 100644 --- a/libmongoc/1.23.1/mongoc_collection_find_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_find_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_get_last_error.html b/libmongoc/1.23.1/mongoc_collection_get_last_error.html index 120b930dfe8bc32a3b53c357efa7937336df217d..c3b8de0089682799a22d0a3355860df29049b354 100644 --- a/libmongoc/1.23.1/mongoc_collection_get_last_error.html +++ b/libmongoc/1.23.1/mongoc_collection_get_last_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_get_name.html b/libmongoc/1.23.1/mongoc_collection_get_name.html index d525db0752455077ddabe0866dda8c57f5389d21..0521cddaf57cc4bb3c2d2c656a7c10faf29a1079 100644 --- a/libmongoc/1.23.1/mongoc_collection_get_name.html +++ b/libmongoc/1.23.1/mongoc_collection_get_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_get_read_concern.html b/libmongoc/1.23.1/mongoc_collection_get_read_concern.html index 61fd5fcc208afe0b6ab3630a0bb53572d3bc0a17..8d16d2c98307d6754b723dd4e9089d592aa70a9a 100644 --- a/libmongoc/1.23.1/mongoc_collection_get_read_concern.html +++ b/libmongoc/1.23.1/mongoc_collection_get_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_get_read_prefs.html b/libmongoc/1.23.1/mongoc_collection_get_read_prefs.html index 4197271e1bb88d040fac591a399b77ba50b17138..87b5ceeef6ef8f0565a679c4499d2b391f4b4242 100644 --- a/libmongoc/1.23.1/mongoc_collection_get_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_collection_get_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_get_write_concern.html b/libmongoc/1.23.1/mongoc_collection_get_write_concern.html index 28960a090aff9fe9872243d666ee8a3325cb20f4..1a0adc7b68f635aa0bf6a52d8186afd799ff872a 100644 --- a/libmongoc/1.23.1/mongoc_collection_get_write_concern.html +++ b/libmongoc/1.23.1/mongoc_collection_get_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_insert.html b/libmongoc/1.23.1/mongoc_collection_insert.html index 19c4b336ba4c5caf660fad0c152d964467bb99e7..0504e8614faaec0a807c8e8a55cac11532a31b09 100644 --- a/libmongoc/1.23.1/mongoc_collection_insert.html +++ b/libmongoc/1.23.1/mongoc_collection_insert.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_insert_bulk.html b/libmongoc/1.23.1/mongoc_collection_insert_bulk.html index 775aec341785d9beb2f9b253b61de7583836fe66..b2f62ee51af7f321fb43338b8d26f163e5e8cd33 100644 --- a/libmongoc/1.23.1/mongoc_collection_insert_bulk.html +++ b/libmongoc/1.23.1/mongoc_collection_insert_bulk.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_insert_many.html b/libmongoc/1.23.1/mongoc_collection_insert_many.html index 57fc6f74fb2bf93d3e2f7061d704bca0fff39ef5..371a678a3ef58ac0875a6eb589a7b0a936c5e314 100644 --- a/libmongoc/1.23.1/mongoc_collection_insert_many.html +++ b/libmongoc/1.23.1/mongoc_collection_insert_many.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_insert_one.html b/libmongoc/1.23.1/mongoc_collection_insert_one.html index 6b243476ecdccbfc300cc2fc12bd922299a998bd..6e7800d1dfeaeffaea709221fb19646215764a35 100644 --- a/libmongoc/1.23.1/mongoc_collection_insert_one.html +++ b/libmongoc/1.23.1/mongoc_collection_insert_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_keys_to_index_string.html b/libmongoc/1.23.1/mongoc_collection_keys_to_index_string.html index 8c8d04f2d86559fba11e8f4dcad842a5604189fb..06259dcb4c9d5506b29e51e95d79ff56b4769ff0 100644 --- a/libmongoc/1.23.1/mongoc_collection_keys_to_index_string.html +++ b/libmongoc/1.23.1/mongoc_collection_keys_to_index_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_read_command_with_opts.html b/libmongoc/1.23.1/mongoc_collection_read_command_with_opts.html index 20972eca57fc7484e182b547df77366c667a1bea..7e69528948329077538c5b0860d3bd4c6dc45238 100644 --- a/libmongoc/1.23.1/mongoc_collection_read_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_read_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_read_write_command_with_opts.html b/libmongoc/1.23.1/mongoc_collection_read_write_command_with_opts.html index 229ffb8c0057f0d43da380ad2ac3ee9957a1271c..99ab0f8c727b8d2d0ec17fdca0eab18edccf7947 100644 --- a/libmongoc/1.23.1/mongoc_collection_read_write_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_read_write_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_remove.html b/libmongoc/1.23.1/mongoc_collection_remove.html index 690a0f330e3d19407658a3884462ac80ae074036..32d28549c5a5ccf03d0bbe2ddb13674d418c6bed 100644 --- a/libmongoc/1.23.1/mongoc_collection_remove.html +++ b/libmongoc/1.23.1/mongoc_collection_remove.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_rename.html b/libmongoc/1.23.1/mongoc_collection_rename.html index 0a5e37c71e2a22bbd172188c6caab78e0365edec..0811f7003b448d3aa2588e05a16719e59536b14d 100644 --- a/libmongoc/1.23.1/mongoc_collection_rename.html +++ b/libmongoc/1.23.1/mongoc_collection_rename.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_rename_with_opts.html b/libmongoc/1.23.1/mongoc_collection_rename_with_opts.html index 30edd77bacc3cc560f0edee2d5251c2c809e6cf2..66c1847f374ced7f02e6564df3bf1d308659c6d7 100644 --- a/libmongoc/1.23.1/mongoc_collection_rename_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_rename_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_replace_one.html b/libmongoc/1.23.1/mongoc_collection_replace_one.html index e8c5516a00f46d9fe9ec6dda8ffdb33f085e55dd..bf8c1089ea69e7af227d3b30159a36931745bad1 100644 --- a/libmongoc/1.23.1/mongoc_collection_replace_one.html +++ b/libmongoc/1.23.1/mongoc_collection_replace_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_save.html b/libmongoc/1.23.1/mongoc_collection_save.html index 31b0b9c60ebf6e85125f99a7f6f3cb9fa43c38aa..69167bbd6cc265dced14e390f675fb64a98412e9 100644 --- a/libmongoc/1.23.1/mongoc_collection_save.html +++ b/libmongoc/1.23.1/mongoc_collection_save.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_set_read_concern.html b/libmongoc/1.23.1/mongoc_collection_set_read_concern.html index 62c1a00756aff38f54fd48cf7c6e92d8af9d6296..e7c3820fe216961a5442882800ee48515f11a436 100644 --- a/libmongoc/1.23.1/mongoc_collection_set_read_concern.html +++ b/libmongoc/1.23.1/mongoc_collection_set_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_set_read_prefs.html b/libmongoc/1.23.1/mongoc_collection_set_read_prefs.html index fc7c213ed1662d1f54139bfc02d3148aefffa755..6dea7b24b3ecd48f9e8e8ce4b296f939ad234a9f 100644 --- a/libmongoc/1.23.1/mongoc_collection_set_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_collection_set_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_set_write_concern.html b/libmongoc/1.23.1/mongoc_collection_set_write_concern.html index 7c22504a4f568e50a68e1df94d7be4644cd2fd91..3873d0cf7ec4c76e12b8c584969e8373f7b5859f 100644 --- a/libmongoc/1.23.1/mongoc_collection_set_write_concern.html +++ b/libmongoc/1.23.1/mongoc_collection_set_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_stats.html b/libmongoc/1.23.1/mongoc_collection_stats.html index 2a942d1eb8d1ac843893323622133d71419be566..e750acfeceb5704630b5d29a77cabcc4ebabf84d 100644 --- a/libmongoc/1.23.1/mongoc_collection_stats.html +++ b/libmongoc/1.23.1/mongoc_collection_stats.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_t.html b/libmongoc/1.23.1/mongoc_collection_t.html index ccb33bd35048fb995a69ccf64501e188a1c1ab6c..bf47a1f4dfb817fbd9b2d1183772d69f2ed2ef06 100644 --- a/libmongoc/1.23.1/mongoc_collection_t.html +++ b/libmongoc/1.23.1/mongoc_collection_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_update.html b/libmongoc/1.23.1/mongoc_collection_update.html index 199c386af25fa82769cfc3025ebdd0ef416774d7..f853b534d1d45d5447c0cedd9cdf784cf68b9a05 100644 --- a/libmongoc/1.23.1/mongoc_collection_update.html +++ b/libmongoc/1.23.1/mongoc_collection_update.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_update_many.html b/libmongoc/1.23.1/mongoc_collection_update_many.html index ca109c944651ee2f59e1f829a3b9bbf7f3f26fed..19f234b013bf68aaf7434f2af294f455cb52d907 100644 --- a/libmongoc/1.23.1/mongoc_collection_update_many.html +++ b/libmongoc/1.23.1/mongoc_collection_update_many.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_update_one.html b/libmongoc/1.23.1/mongoc_collection_update_one.html index ad7a828f4f5461239c2dd5099dd370f6e37b5034..5f913c18f1b86e406bd01f4f98862f45c2f3379f 100644 --- a/libmongoc/1.23.1/mongoc_collection_update_one.html +++ b/libmongoc/1.23.1/mongoc_collection_update_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_validate.html b/libmongoc/1.23.1/mongoc_collection_validate.html index e7158e77aa92e5829ccc037afaca617c94da9a8d..296e2e9a5633206c4e7129298cf3f0739442eec5 100644 --- a/libmongoc/1.23.1/mongoc_collection_validate.html +++ b/libmongoc/1.23.1/mongoc_collection_validate.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_watch.html b/libmongoc/1.23.1/mongoc_collection_watch.html index ed9194defaa5836178015c6c86b479eb86619802..4d4ce7499e611c844a5fc20eb5e8788d3d8a3009 100644 --- a/libmongoc/1.23.1/mongoc_collection_watch.html +++ b/libmongoc/1.23.1/mongoc_collection_watch.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_collection_write_command_with_opts.html b/libmongoc/1.23.1/mongoc_collection_write_command_with_opts.html index 969f6e26009049cb526d1ce555c316995e70ab3b..25584092e03114b7d17da9f8b063bfc7055aa2b5 100644 --- a/libmongoc/1.23.1/mongoc_collection_write_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_collection_write_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_clone.html b/libmongoc/1.23.1/mongoc_cursor_clone.html index 8c803fd6d04bcf06aa5a71fbc3717c79aaa35f74..19d8eff6109903f7f73d2a76d44edf6b9e9f99ab 100644 --- a/libmongoc/1.23.1/mongoc_cursor_clone.html +++ b/libmongoc/1.23.1/mongoc_cursor_clone.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_current.html b/libmongoc/1.23.1/mongoc_cursor_current.html index 358a71e60ab6ee89f9b97d2ec83e1c5148896c2a..9caeea38ed74220ab075164caa3d134c6952c421 100644 --- a/libmongoc/1.23.1/mongoc_cursor_current.html +++ b/libmongoc/1.23.1/mongoc_cursor_current.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_destroy.html b/libmongoc/1.23.1/mongoc_cursor_destroy.html index 022410caba8ed84486c40254c2b4a8ec9ee309af..49d11d71504104bd627d8b2b5d222bf90ee19a50 100644 --- a/libmongoc/1.23.1/mongoc_cursor_destroy.html +++ b/libmongoc/1.23.1/mongoc_cursor_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_error.html b/libmongoc/1.23.1/mongoc_cursor_error.html index dce820ed31b7a2ac3c9999f5a97304a7d2172ffa..5ce7fe40c0d27fe650ea7319aaa23b58d667e656 100644 --- a/libmongoc/1.23.1/mongoc_cursor_error.html +++ b/libmongoc/1.23.1/mongoc_cursor_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_error_document.html b/libmongoc/1.23.1/mongoc_cursor_error_document.html index adfd08b296acf2ccf4886462a284d599a5e78da9..3079b6e4adbfcaacc68c19793215f217642fe1b7 100644 --- a/libmongoc/1.23.1/mongoc_cursor_error_document.html +++ b/libmongoc/1.23.1/mongoc_cursor_error_document.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_get_batch_size.html b/libmongoc/1.23.1/mongoc_cursor_get_batch_size.html index b0c1f9a18ede84fe63f431338e973c0e40faa2d3..0cf54369f6453760bb90f622706f8a05b0f8569a 100644 --- a/libmongoc/1.23.1/mongoc_cursor_get_batch_size.html +++ b/libmongoc/1.23.1/mongoc_cursor_get_batch_size.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_get_hint.html b/libmongoc/1.23.1/mongoc_cursor_get_hint.html index 6fd0c35a28c73be497bfc6a8c73e3d8cf6d89a5d..89e2010968918cacb8863cbc2fb9832a403b30a9 100644 --- a/libmongoc/1.23.1/mongoc_cursor_get_hint.html +++ b/libmongoc/1.23.1/mongoc_cursor_get_hint.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_get_host.html b/libmongoc/1.23.1/mongoc_cursor_get_host.html index a246a6c69faa2fe91872af604fe9c655c5fde2d2..1fef334f2179a26a34acf533af6f64038d72e741 100644 --- a/libmongoc/1.23.1/mongoc_cursor_get_host.html +++ b/libmongoc/1.23.1/mongoc_cursor_get_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_get_id.html b/libmongoc/1.23.1/mongoc_cursor_get_id.html index 0153db4a7691046d52ed73f9ee4145d3a676c650..5bccd07e6b981df5bc96d6790857128e229fe8e3 100644 --- a/libmongoc/1.23.1/mongoc_cursor_get_id.html +++ b/libmongoc/1.23.1/mongoc_cursor_get_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_get_limit.html b/libmongoc/1.23.1/mongoc_cursor_get_limit.html index 3266ed0603b05b01473efe694644e75c0d7412bb..84a997dcde72c694754004c5071f45c8a743739e 100644 --- a/libmongoc/1.23.1/mongoc_cursor_get_limit.html +++ b/libmongoc/1.23.1/mongoc_cursor_get_limit.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_get_max_await_time_ms.html b/libmongoc/1.23.1/mongoc_cursor_get_max_await_time_ms.html index c85f8b7c0ad734123b45a6a723ad68d9c7dfa51d..5397e86d8ee6558bb8ad952048d346703ed8264f 100644 --- a/libmongoc/1.23.1/mongoc_cursor_get_max_await_time_ms.html +++ b/libmongoc/1.23.1/mongoc_cursor_get_max_await_time_ms.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_is_alive.html b/libmongoc/1.23.1/mongoc_cursor_is_alive.html index 5b6cf807f4418ee882cd529832981d88520a7f5f..518b99e24eef9edd3644480d4c2e05be8e584121 100644 --- a/libmongoc/1.23.1/mongoc_cursor_is_alive.html +++ b/libmongoc/1.23.1/mongoc_cursor_is_alive.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_more.html b/libmongoc/1.23.1/mongoc_cursor_more.html index 481300ba0af4bc5c1d956b7b7baed4bfa2fb4a53..4695a3a36c1b7893814ce6ee2be0e4ab11507f1c 100644 --- a/libmongoc/1.23.1/mongoc_cursor_more.html +++ b/libmongoc/1.23.1/mongoc_cursor_more.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply.html b/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply.html index fd8e4ebc541fbfe655d6691ed75786b1a3710070..be34edc751065262022a44bdfa0ac0e9913c1a62 100644 --- a/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply.html +++ b/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply_with_opts.html b/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply_with_opts.html index 48c754fd39cea57f82c0245ca57ab8828bdf2351..fe6dd3abda523efdbb2aa22ed9f31719416fba0f 100644 --- a/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply_with_opts.html +++ b/libmongoc/1.23.1/mongoc_cursor_new_from_command_reply_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_next.html b/libmongoc/1.23.1/mongoc_cursor_next.html index bca63ab101a80fd22f5ca3d48fcc3b59ec0c3d8a..b889112372b1c6b9aa9f02db75883515f3ed7f8e 100644 --- a/libmongoc/1.23.1/mongoc_cursor_next.html +++ b/libmongoc/1.23.1/mongoc_cursor_next.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_set_batch_size.html b/libmongoc/1.23.1/mongoc_cursor_set_batch_size.html index 525235bc2f745551812146a9b6e038c88d6182dc..aedd2fd55995173dac1677df3ee182331899d34d 100644 --- a/libmongoc/1.23.1/mongoc_cursor_set_batch_size.html +++ b/libmongoc/1.23.1/mongoc_cursor_set_batch_size.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_set_hint.html b/libmongoc/1.23.1/mongoc_cursor_set_hint.html index c33dba6d555fac6217c72112bfd3d8e51856cf72..7838b3e5143df233398497a3342053272cbd5fd9 100644 --- a/libmongoc/1.23.1/mongoc_cursor_set_hint.html +++ b/libmongoc/1.23.1/mongoc_cursor_set_hint.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_set_limit.html b/libmongoc/1.23.1/mongoc_cursor_set_limit.html index 41f1b26c20e5a9f6098590ea560c8786183b21dc..ed4a7e44aea8f7e03c38680601f72e1b3c2a2308 100644 --- a/libmongoc/1.23.1/mongoc_cursor_set_limit.html +++ b/libmongoc/1.23.1/mongoc_cursor_set_limit.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_set_max_await_time_ms.html b/libmongoc/1.23.1/mongoc_cursor_set_max_await_time_ms.html index 1904a0e4505196c1eb8fefdedad903f04c654d51..8b665e8355ea818c27378c8e0c08b80e61a8cf78 100644 --- a/libmongoc/1.23.1/mongoc_cursor_set_max_await_time_ms.html +++ b/libmongoc/1.23.1/mongoc_cursor_set_max_await_time_ms.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_cursor_t.html b/libmongoc/1.23.1/mongoc_cursor_t.html index fc3527a373699ce6d6ad6acf97c370cf599a9d61..1d58f32479377babcda70a03f08a200545aabe0d 100644 --- a/libmongoc/1.23.1/mongoc_cursor_t.html +++ b/libmongoc/1.23.1/mongoc_cursor_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_add_user.html b/libmongoc/1.23.1/mongoc_database_add_user.html index cf090331d1ae80597523567fc993b954b5f1d880..119dd8214be99b6b4d4fb13cfdecbedc390733e7 100644 --- a/libmongoc/1.23.1/mongoc_database_add_user.html +++ b/libmongoc/1.23.1/mongoc_database_add_user.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_aggregate.html b/libmongoc/1.23.1/mongoc_database_aggregate.html index 02e8948a132d2d415e206ebac56a4c2772abe7a5..651e9dfa419c98ee0dcd2319ea63da3f77166bfa 100644 --- a/libmongoc/1.23.1/mongoc_database_aggregate.html +++ b/libmongoc/1.23.1/mongoc_database_aggregate.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_command.html b/libmongoc/1.23.1/mongoc_database_command.html index 23b7914667dddd1f06632abacf025f350dc4eb71..cfef75beb87b2018b0a2e3a52f1216e9e578e66c 100644 --- a/libmongoc/1.23.1/mongoc_database_command.html +++ b/libmongoc/1.23.1/mongoc_database_command.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_command_simple.html b/libmongoc/1.23.1/mongoc_database_command_simple.html index a238463fe2d1e56728910a81d4aa5fdb4f2fb280..53dca98a83cea9d8c41b6637b7b2453ec3d012c3 100644 --- a/libmongoc/1.23.1/mongoc_database_command_simple.html +++ b/libmongoc/1.23.1/mongoc_database_command_simple.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_command_with_opts.html b/libmongoc/1.23.1/mongoc_database_command_with_opts.html index 298bc2a7d9e7b77fd064ddb970d49956c8f78269..414e039160e3319a4dce79afff8859fc5aca1208 100644 --- a/libmongoc/1.23.1/mongoc_database_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_database_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_copy.html b/libmongoc/1.23.1/mongoc_database_copy.html index f00f63d1bdfbb72c3185a8e807a5f49a0071f8ed..67dd365465e122e2cc1b44b9de93af8a086bcfdd 100644 --- a/libmongoc/1.23.1/mongoc_database_copy.html +++ b/libmongoc/1.23.1/mongoc_database_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_create_collection.html b/libmongoc/1.23.1/mongoc_database_create_collection.html index c37b739d8dd1ab819a28ee60d1c3fb300877a599..2f3e0d8d5b537eab352d796cd9f1ade961b9be8b 100644 --- a/libmongoc/1.23.1/mongoc_database_create_collection.html +++ b/libmongoc/1.23.1/mongoc_database_create_collection.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_destroy.html b/libmongoc/1.23.1/mongoc_database_destroy.html index be24a298d2c993f50692236a97bde3f130985e7e..2059c133153e6c56e42743abed444918be0bf5c9 100644 --- a/libmongoc/1.23.1/mongoc_database_destroy.html +++ b/libmongoc/1.23.1/mongoc_database_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_drop.html b/libmongoc/1.23.1/mongoc_database_drop.html index ecd2aaf7a16516a6a744a8dd884692a8417bfeaa..ca6fccd7d0abe70c2df552f52f2bd1f8459bfa46 100644 --- a/libmongoc/1.23.1/mongoc_database_drop.html +++ b/libmongoc/1.23.1/mongoc_database_drop.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_drop_with_opts.html b/libmongoc/1.23.1/mongoc_database_drop_with_opts.html index c1698bdd488ae24ef4c879f39e4a40faf7426301..8cd764dc7f220712159858069db4594b25c3de8c 100644 --- a/libmongoc/1.23.1/mongoc_database_drop_with_opts.html +++ b/libmongoc/1.23.1/mongoc_database_drop_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_find_collections.html b/libmongoc/1.23.1/mongoc_database_find_collections.html index a5e00c314882d3f51daf96fd4fd49c004921d37b..7321778740d62f8cefe909ffbc42c6b2bde79c82 100644 --- a/libmongoc/1.23.1/mongoc_database_find_collections.html +++ b/libmongoc/1.23.1/mongoc_database_find_collections.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_find_collections_with_opts.html b/libmongoc/1.23.1/mongoc_database_find_collections_with_opts.html index 1a8bbccd22ba1bff0acf283c2e906561fe855ac6..5224291ebd4994e67c85378766566df4690b5559 100644 --- a/libmongoc/1.23.1/mongoc_database_find_collections_with_opts.html +++ b/libmongoc/1.23.1/mongoc_database_find_collections_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_get_collection.html b/libmongoc/1.23.1/mongoc_database_get_collection.html index 5bf333a93e19d24cc0f13f37516e1d13b4cbcec1..bbfc9ba1767b73812d4c616f0c512194ab557d71 100644 --- a/libmongoc/1.23.1/mongoc_database_get_collection.html +++ b/libmongoc/1.23.1/mongoc_database_get_collection.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_get_collection_names.html b/libmongoc/1.23.1/mongoc_database_get_collection_names.html index 1dbd2d72868a9d78bab3f0c867082e7eba4f0332..7b2ed1be5b00f5828a905173fceeb8e14c1df99b 100644 --- a/libmongoc/1.23.1/mongoc_database_get_collection_names.html +++ b/libmongoc/1.23.1/mongoc_database_get_collection_names.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_get_collection_names_with_opts.html b/libmongoc/1.23.1/mongoc_database_get_collection_names_with_opts.html index 67b2d8a6f718d838e023ba7fe43a082ad006e880..e6b73c79d74d379f026927b9a0df611719b23186 100644 --- a/libmongoc/1.23.1/mongoc_database_get_collection_names_with_opts.html +++ b/libmongoc/1.23.1/mongoc_database_get_collection_names_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_get_name.html b/libmongoc/1.23.1/mongoc_database_get_name.html index 42bdd2f026977b4a2a443aea2268679275c66fd9..c442e04f23154fa4405dd2c872e628dd31767867 100644 --- a/libmongoc/1.23.1/mongoc_database_get_name.html +++ b/libmongoc/1.23.1/mongoc_database_get_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_get_read_concern.html b/libmongoc/1.23.1/mongoc_database_get_read_concern.html index 684f88365a523c864c603491c5a4a0708c873d2d..1c141321893c7457cbf5aec5c372321c4565dad6 100644 --- a/libmongoc/1.23.1/mongoc_database_get_read_concern.html +++ b/libmongoc/1.23.1/mongoc_database_get_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_get_read_prefs.html b/libmongoc/1.23.1/mongoc_database_get_read_prefs.html index d8c4776b320a1b13b37e82ea620afdb76fb0e3ce..900629b3e339b18134dc8cd387aaaed4c8442f1f 100644 --- a/libmongoc/1.23.1/mongoc_database_get_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_database_get_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_get_write_concern.html b/libmongoc/1.23.1/mongoc_database_get_write_concern.html index 9aed57b6d608b0829ae07b19ce381788677da7d0..834618762596f69d653d8bb9ac81b447799611d7 100644 --- a/libmongoc/1.23.1/mongoc_database_get_write_concern.html +++ b/libmongoc/1.23.1/mongoc_database_get_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_has_collection.html b/libmongoc/1.23.1/mongoc_database_has_collection.html index 0c1eb155a17937e2aa39c59c3b8373036a28d874..29ee906390a46931398775968082eac6b25c87eb 100644 --- a/libmongoc/1.23.1/mongoc_database_has_collection.html +++ b/libmongoc/1.23.1/mongoc_database_has_collection.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_read_command_with_opts.html b/libmongoc/1.23.1/mongoc_database_read_command_with_opts.html index bcc5fcc86c3fa21c86cbbcef59b979b97cc0a652..6d9ca220f9833876f72a302f508eff3f4106790e 100644 --- a/libmongoc/1.23.1/mongoc_database_read_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_database_read_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_read_write_command_with_opts.html b/libmongoc/1.23.1/mongoc_database_read_write_command_with_opts.html index 743f203ea7ce6174794b151d37a9b99f926b2157..66deb497d39a34b442ea4503df16a6a07dec32c5 100644 --- a/libmongoc/1.23.1/mongoc_database_read_write_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_database_read_write_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_remove_all_users.html b/libmongoc/1.23.1/mongoc_database_remove_all_users.html index e1d3f332519b6fa5b1e8bef9a092074cbed61399..594b8c46bd6f1bdeab2bafb1c0c595ed3a04aca1 100644 --- a/libmongoc/1.23.1/mongoc_database_remove_all_users.html +++ b/libmongoc/1.23.1/mongoc_database_remove_all_users.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_remove_user.html b/libmongoc/1.23.1/mongoc_database_remove_user.html index 51c1df415a196dfcb9584b8e4fb7a00d7f1e6370..a1b9857d693ba83256be7c7ac6ae745d8e0cbc07 100644 --- a/libmongoc/1.23.1/mongoc_database_remove_user.html +++ b/libmongoc/1.23.1/mongoc_database_remove_user.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_set_read_concern.html b/libmongoc/1.23.1/mongoc_database_set_read_concern.html index 7864010b46fa2bec3f877bb107084f0c98df62d6..381eca5606479569650750e36648c792c2437a11 100644 --- a/libmongoc/1.23.1/mongoc_database_set_read_concern.html +++ b/libmongoc/1.23.1/mongoc_database_set_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_set_read_prefs.html b/libmongoc/1.23.1/mongoc_database_set_read_prefs.html index e2ab96c8e5f0926c230263664a0a68321942f1ea..c7ffd29856d87e5c59883d0f31491c6d81f195c0 100644 --- a/libmongoc/1.23.1/mongoc_database_set_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_database_set_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_set_write_concern.html b/libmongoc/1.23.1/mongoc_database_set_write_concern.html index ba4f6ce1571db032756a06be8aa2a54cb98ff68c..4b300d00aab2168bb67c38fd51b00c2c572b4d94 100644 --- a/libmongoc/1.23.1/mongoc_database_set_write_concern.html +++ b/libmongoc/1.23.1/mongoc_database_set_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_t.html b/libmongoc/1.23.1/mongoc_database_t.html index 815ec5804d42ef1e31765df5e9c10f9f065e63e2..023652ad0bdf15f4c69e6fbaee38db5d35d98b53 100644 --- a/libmongoc/1.23.1/mongoc_database_t.html +++ b/libmongoc/1.23.1/mongoc_database_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_watch.html b/libmongoc/1.23.1/mongoc_database_watch.html index 1c7a574071146ddf485813749c9da5028bec4d8d..4694d4cec6214149974a1143d759e132430b90be 100644 --- a/libmongoc/1.23.1/mongoc_database_watch.html +++ b/libmongoc/1.23.1/mongoc_database_watch.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_database_write_command_with_opts.html b/libmongoc/1.23.1/mongoc_database_write_command_with_opts.html index 655ee94c48db862145caabcf8d7617966e0ef2ce..9943aec491b5417ca22ed977a3acf8ad2409127d 100644 --- a/libmongoc/1.23.1/mongoc_database_write_command_with_opts.html +++ b/libmongoc/1.23.1/mongoc_database_write_command_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_delete_flags_t.html b/libmongoc/1.23.1/mongoc_delete_flags_t.html index ada2759651fa2d8528436351a0fca891c6813c59..c3806870ab2da08a76ba1c7f5fad29f1a4e6eeb1 100644 --- a/libmongoc/1.23.1/mongoc_delete_flags_t.html +++ b/libmongoc/1.23.1/mongoc_delete_flags_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_error_has_label.html b/libmongoc/1.23.1/mongoc_error_has_label.html index d1c37e9a4ebf43355dfdfa6be16f47029247c496..2020232df14eaaae643c8633e4e4025367d5830b 100644 --- a/libmongoc/1.23.1/mongoc_error_has_label.html +++ b/libmongoc/1.23.1/mongoc_error_has_label.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_append.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_append.html index 0da42a9f4b0553678ea9f1742a168280b146869a..611f7dc40e095d522f75a9329c60081fe4a34fd1 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_append.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_append.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_destroy.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_destroy.html index 66407f74d1ee1a4b2cf32306dc341e49eba7573b..f6f846d6d157e295f87451c3d44c32c2ad7e7d24 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_destroy.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html index 512ba9962425c950d81700872a6f8d38402b1da1..118089d36c27812d87262edc2b5067f8263e4781 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_fields.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_fields.html index 03f3256002d2ed65f8a3e4aca105498820bf823e..53061a168a475f7b7ac8d9299f60fffac1361dc1 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_fields.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_fields.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_flags.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_flags.html index 4d116593e644f3b32de7c7b70b6e55e9ccd955e0..95238b7f9778b2c70c829bac29b3f20694baec1f 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_flags.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_flags.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_max_time_ms.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_max_time_ms.html index 9255b13ed77a59188c4a86089999e7d137576f3d..13ca2dd1d2481944515ad44adc99aa28a33b54b8 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_max_time_ms.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_max_time_ms.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_sort.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_sort.html index be56dd6ec86ad98e1a95e3fe28f7e8518d10349d..87f6f5bdbf1b17be6d508632090ac942dc5a3e59 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_sort.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_sort.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_update.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_update.html index 768450853f2e11fc131f493eeeffc9986b425077..6193dd77b449d00e305135e731cf0d41d456dcc8 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_update.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_get_update.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_new.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_new.html index bd1d6e5661d622dc0c47dbf4abb4e65b007220d0..eb670231c5ffe897cdbe715a18ae7c1fbae848e7 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_new.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html index d990573bf9ff0ee56909ffd6d255097ad04273b0..6aadb67785d14630968b701d547f2fec3db9f531 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_fields.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_fields.html index b167a21671be9bea92aba564fb7918af7f709f87..354305e3d84e7731974802256120ac0d3c2902be 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_fields.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_fields.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_flags.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_flags.html index 62ad0955968516539869a3af78fb4021df6ebe92..04b7599a7cf64ef3ae3f4cfd9cd343877b2731a0 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_flags.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_flags.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_max_time_ms.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_max_time_ms.html index ce54f97e7994d5c978ca35079ea4a1740f758c40..c399c8f055899532f58dc98179c303a6aaec73f4 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_max_time_ms.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_max_time_ms.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_sort.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_sort.html index 02767a411397818d0d6d740a61c313eac0f14f81..2eca9f308da9e3217ce49d061abb9cf0ed4ec90d 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_sort.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_sort.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_update.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_update.html index 33af60f48c1fd9d6dfc03a8575b7bbbc9c4c767f..3144024e030c43533372334f7c2b65ad2b8d943a 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_update.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_set_update.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_find_and_modify_opts_t.html b/libmongoc/1.23.1/mongoc_find_and_modify_opts_t.html index 796f7f48b5e83dd1a785e6221d67f0295f976ba4..929f7b54ca1bca4c9a08c664234d7495e00ecfbe 100644 --- a/libmongoc/1.23.1/mongoc_find_and_modify_opts_t.html +++ b/libmongoc/1.23.1/mongoc_find_and_modify_opts_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_get_major_version.html b/libmongoc/1.23.1/mongoc_get_major_version.html index 1f4564176e88ce5a9cb0751bd7a37208573e2704..7bd542d3d317795cf019d5e10bfda17f31286d50 100644 --- a/libmongoc/1.23.1/mongoc_get_major_version.html +++ b/libmongoc/1.23.1/mongoc_get_major_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_get_micro_version.html b/libmongoc/1.23.1/mongoc_get_micro_version.html index 21d99948abe2ca4a75e97d9dbd3b2c9133297b99..a89c4f4ddd7164e6b76156ddc4ed48a1e8d08971 100644 --- a/libmongoc/1.23.1/mongoc_get_micro_version.html +++ b/libmongoc/1.23.1/mongoc_get_micro_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_get_minor_version.html b/libmongoc/1.23.1/mongoc_get_minor_version.html index 6d10d51a1f3f4654827c09918b45714cdb153f83..788a5e93f0fcc307108c01e2c7fca1aa18ab253f 100644 --- a/libmongoc/1.23.1/mongoc_get_minor_version.html +++ b/libmongoc/1.23.1/mongoc_get_minor_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_get_version.html b/libmongoc/1.23.1/mongoc_get_version.html index 1bd4f26646545b095f8360d369df36392cbd2510..5dc4d5e109ce10725f5492b0be413a3f6ebb291b 100644 --- a/libmongoc/1.23.1/mongoc_get_version.html +++ b/libmongoc/1.23.1/mongoc_get_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_abort_upload.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_abort_upload.html index b31734575ef114160ec35e9d3768af85a2fa7e8b..c2fdd12fb18e0cbb79a5f0cb724f7909a2cee122 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_abort_upload.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_abort_upload.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_delete_by_id.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_delete_by_id.html index c30ece53e3c36efb8b7762d79f0e505b1a2c57f3..36783116bcc9f5492e3d2a2d34a8015b6a931134 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_delete_by_id.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_delete_by_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_destroy.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_destroy.html index a6b865fac1ff40fa716ddcd584f8cfce589d7e2a..ad46e5a618f637d2da228b68389b5cea66801310 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_destroy.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_download_to_stream.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_download_to_stream.html index 5fae737585a0bb3b773995459071b348fdfa1165..48f02c34e79a8017eff5c77da2f5c176a039f3a7 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_download_to_stream.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_download_to_stream.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_find.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_find.html index 4dda1f4610a4de2d7a3539489efc46601997e807..9821813f7fac7c9e595be34a8238919a57bfb4d6 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_find.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_find.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_new.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_new.html index b90d46d008fe3093402a85c53d54239f7cd825c3..6b4e108c5f999e145593cf21d8ce4b4c2bc8a7f2 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_new.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_open_download_stream.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_open_download_stream.html index d930043a5e7fb2019b39a69443c8019a071b4cd7..9c0679d0d348c982e494aaca1557aa1f7db7c01c 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_open_download_stream.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_open_download_stream.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream.html index 76dcf4b13f13a298186db392b42b5ddddebe0aa7..1aee0d2dd5d378f56b7fd315c7220dfaa63b25e1 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html index 1dc6cde732dad856be063df6ab4f8cd0823aa117..999dfdd53c184436ec84bc338266804d4766738b 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_stream_error.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_stream_error.html index 83cac51f18ac70f180cd239ba300bcf008bd7845..43c2af6966bf9c5d6d84a5d04654052279713922 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_stream_error.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_stream_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_t.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_t.html index dbbc8b486c87a8574fcc48b532530e85149c882b..f3064e2ffdaece07ebc5ab98ff7a73feca892e16 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_t.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream.html index 946f23245ece0d2dc6f535d16ca43d3b3c3cb9bc..fedfd7ccbe4ea672ade102019adbdabd8e0cc6f2 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html b/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html index f7fcb35be02f95635048e4f2aced03ff703ea456..4c322e1ff2be48d622325e90b2b3193b3e4cc345 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html +++ b/libmongoc/1.23.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_create_file.html b/libmongoc/1.23.1/mongoc_gridfs_create_file.html index 415e3ca79d5359728279f3d42a4ca0206a7f93bd..b3c5f402e2e1022bb53c893af779f205e61a7951 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_create_file.html +++ b/libmongoc/1.23.1/mongoc_gridfs_create_file.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_create_file_from_stream.html b/libmongoc/1.23.1/mongoc_gridfs_create_file_from_stream.html index 45bc0eb9c5b2d6f791a377a249150ce2b5c833d3..fb5079e771b0dfc16a19e90af41848ed956ae4dd 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_create_file_from_stream.html +++ b/libmongoc/1.23.1/mongoc_gridfs_create_file_from_stream.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_destroy.html b/libmongoc/1.23.1/mongoc_gridfs_destroy.html index ee079886a098d0a5230b2ca22ffd9a44bfdd65f2..59e76c171a1c76dce8659b1522f2d12207e9d1ca 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_destroy.html +++ b/libmongoc/1.23.1/mongoc_gridfs_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_drop.html b/libmongoc/1.23.1/mongoc_gridfs_drop.html index 2fc82d623da5318940164ae7015ff84905eb2844..ca14a8298d71721ebf19aa5b281e127a037e2be3 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_drop.html +++ b/libmongoc/1.23.1/mongoc_gridfs_drop.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_destroy.html b/libmongoc/1.23.1/mongoc_gridfs_file_destroy.html index 60e0dc0b2433b566cb61211d2011948f0a08c0c5..780257df311a6b83440c6d6e815096539e9a602a 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_destroy.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_error.html b/libmongoc/1.23.1/mongoc_gridfs_file_error.html index 38f1d12ce58ce4eb617c09f58e858960a17fcf2a..3e543600c426ea95d1b5f0e73d29feb87b993f45 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_error.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_aliases.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_aliases.html index b760032e1eeafd87c80c277ed6781bfbd462ecac..1ecff2dbf0351da32b0832372ac393046b56c73b 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_aliases.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_aliases.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_chunk_size.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_chunk_size.html index 4e99e0a1e2c1682f366fc0d5f68ef48735ab2692..7c024daef425cbec7e408189b32cbe8cc313c70b 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_chunk_size.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_chunk_size.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_content_type.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_content_type.html index 0f537c2d31795f4d3d079849507bf6dea8958bda..0bd7364916760fc2e9a7dd99acd6751ace6a93b9 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_content_type.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_content_type.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_filename.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_filename.html index e5a157bd0b4a26995a610264eec1da91c9ed70de..56e37d297b8074d0072f3d8e55b11bf4d4cae966 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_filename.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_filename.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_id.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_id.html index d5c3adc30e1582f8147ce971ba18705fc6bad572..654a8d71e0ec6d86d53cb472d56b7d90790b5cf0 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_id.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_length.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_length.html index 9cb6060cfc6828011dc4b095177df54064a9de26..145706dd50813d66a10b4c2bc1f63e7b6bd58458 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_length.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_length.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_md5.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_md5.html index 0bb49421b6657755133ba86706e130bcf7e68e81..90ae21e01af82df8ce9a233df8df78a8bf001211 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_md5.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_md5.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_metadata.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_metadata.html index 245063f48863df9eaf2066665cfa5f088744d485..3ca76718833b4f7496e0cba3856512a2751fd813 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_metadata.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_metadata.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_get_upload_date.html b/libmongoc/1.23.1/mongoc_gridfs_file_get_upload_date.html index 3fe0c3919a975ddf9fea580c1d80bd7fd6dd0275..cde246a83df4d784adb9b22b22122019f49bad4a 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_get_upload_date.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_get_upload_date.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_list_destroy.html b/libmongoc/1.23.1/mongoc_gridfs_file_list_destroy.html index 89706e1470cf9d161b1e77b0c875e25ac7e9d416..c0c0c48413efba54e61a7158aa43a031eb0a053b 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_list_destroy.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_list_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_list_error.html b/libmongoc/1.23.1/mongoc_gridfs_file_list_error.html index fc11ba8bd82512df5e163aca76b6a6cff684f22f..07cec128aefa0711c56ccb78289ea27d029ef08b 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_list_error.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_list_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_list_next.html b/libmongoc/1.23.1/mongoc_gridfs_file_list_next.html index d61a672a750aaac436d076b08bd2f5ff1599fe3c..5195f3835be4482cfd3ede498e735bc5686037d8 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_list_next.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_list_next.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_list_t.html b/libmongoc/1.23.1/mongoc_gridfs_file_list_t.html index 524ae3ce573069e64b4ed29976f228b55f640210..f293dc9911ebfcedfe3fbc5a5b2ef82fcd4eba77 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_list_t.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_list_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_opt_t.html b/libmongoc/1.23.1/mongoc_gridfs_file_opt_t.html index 92d72b8221de41dcb3283d4d2505dc8413d18d52..90539044bbb8f1b175f9ab49f379190216e2712d 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_opt_t.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_opt_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_readv.html b/libmongoc/1.23.1/mongoc_gridfs_file_readv.html index 47de5a6f8893c4c55e09c2265ac38f56d73be3c0..631c0db5495f716764d14b8a55c42d5c067fe506 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_readv.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_readv.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_remove.html b/libmongoc/1.23.1/mongoc_gridfs_file_remove.html index 4be55f46d0da5b94c151126e854a0484e3447af9..0164647956de8a3863300229936c13b4815852fb 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_remove.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_remove.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_save.html b/libmongoc/1.23.1/mongoc_gridfs_file_save.html index 4b497f8532733f6e11053eec89762d54d6d1063e..65500922170f25ea0f6b2a29ab47e2ffb417b6f7 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_save.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_save.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_seek.html b/libmongoc/1.23.1/mongoc_gridfs_file_seek.html index fd2eddb75bfc1f34061bbcccb0b0baf4b2453372..22d718974e96063d0027198fc969f7b865757d8a 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_seek.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_seek.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_set_aliases.html b/libmongoc/1.23.1/mongoc_gridfs_file_set_aliases.html index 0f56f7e10896e92d706058f24adb53c1051d8b01..e918f0a4dca53953f66a2abeb7891910c5fd2cd1 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_set_aliases.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_set_aliases.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_set_content_type.html b/libmongoc/1.23.1/mongoc_gridfs_file_set_content_type.html index 03255357d772d62ff94b8468ea373f63baaba756..206a6a5708b4c7f0fdbaeb796e8b0a222a0669fe 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_set_content_type.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_set_content_type.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_set_filename.html b/libmongoc/1.23.1/mongoc_gridfs_file_set_filename.html index aa76df93a8a5631671595b77d135622c0eb9059b..323d0503c4b9080e3880d0ff6007ddfb7c8f42af 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_set_filename.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_set_filename.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_set_id.html b/libmongoc/1.23.1/mongoc_gridfs_file_set_id.html index 8ab6adca3d5d81c9cc2eb6207998837624565cb6..3ccd0d08c0f4c2dc9fb109a1076a256ac8793fa0 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_set_id.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_set_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_set_md5.html b/libmongoc/1.23.1/mongoc_gridfs_file_set_md5.html index 2eb2cf7add6810525cd84e223058503d1e3a1396..793ec1ef0202a0d8aea32851031e8776e2087af6 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_set_md5.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_set_md5.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_set_metadata.html b/libmongoc/1.23.1/mongoc_gridfs_file_set_metadata.html index 7242d2ebc8f9ce2d082271a08fc8c63cf59691bd..edbeb4e555521e0b59057bb7a1cff4f40eb8e7c4 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_set_metadata.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_set_metadata.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_t.html b/libmongoc/1.23.1/mongoc_gridfs_file_t.html index 1fcdfe738df187310a68f1b9d1861bc28c2f67f2..939d3cd08398af030d9a9df4407cb8ca1a653f26 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_t.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_tell.html b/libmongoc/1.23.1/mongoc_gridfs_file_tell.html index be91fb7c82fa8c2f44273d0023265ade5f2bb8c7..c31e9dc8b1f9306a3f0724b139c622f15234c661 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_tell.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_tell.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_file_writev.html b/libmongoc/1.23.1/mongoc_gridfs_file_writev.html index 086ac4cce9b567a89bbe65c2b86e9ffa0a0d156f..8ab52087db046db40529263a827ed47e9b4a6bcb 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_file_writev.html +++ b/libmongoc/1.23.1/mongoc_gridfs_file_writev.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_find.html b/libmongoc/1.23.1/mongoc_gridfs_find.html index 67ccc81a0ab85ef6ffd9fa2752bf7c2b0d644832..85434d0a815cb7a0e4a9b59d11e07162d3b22c16 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_find.html +++ b/libmongoc/1.23.1/mongoc_gridfs_find.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_find_one.html b/libmongoc/1.23.1/mongoc_gridfs_find_one.html index 88aa166bbb80f4f1c166a000bd347eae2b6be097..bbfb10537827932d6685f1ca7eaaa89b74e6e1ef 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_find_one.html +++ b/libmongoc/1.23.1/mongoc_gridfs_find_one.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_find_one_by_filename.html b/libmongoc/1.23.1/mongoc_gridfs_find_one_by_filename.html index 7659f1d06f6d8d729066da30735cded0bc30ab5c..2585a8e380f0001d5655d178a4497225ea151ab7 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_find_one_by_filename.html +++ b/libmongoc/1.23.1/mongoc_gridfs_find_one_by_filename.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_find_one_with_opts.html b/libmongoc/1.23.1/mongoc_gridfs_find_one_with_opts.html index 2d9b84d484eece6b3157e5b2dea71130fccaed8c..db512403f9f5dce4b44994dc8d5141e6aa531ff5 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_find_one_with_opts.html +++ b/libmongoc/1.23.1/mongoc_gridfs_find_one_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_find_with_opts.html b/libmongoc/1.23.1/mongoc_gridfs_find_with_opts.html index f6844f3f540acb1ddc5277f5b8ca41c0473f069e..52314bf07fe1fb03b6b6e640c0092b19e70b090d 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_find_with_opts.html +++ b/libmongoc/1.23.1/mongoc_gridfs_find_with_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_get_chunks.html b/libmongoc/1.23.1/mongoc_gridfs_get_chunks.html index 302d865a29bc63f8fbe5b72022fd53ad2bbc6ce5..b649aebac149339ae176f810997208c7029569a1 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_get_chunks.html +++ b/libmongoc/1.23.1/mongoc_gridfs_get_chunks.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_get_files.html b/libmongoc/1.23.1/mongoc_gridfs_get_files.html index 4f75ecb24e51657b35883890e45c099d0226d4da..dff3a6b4b0235f1236e1534256448da2c7c1db23 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_get_files.html +++ b/libmongoc/1.23.1/mongoc_gridfs_get_files.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_remove_by_filename.html b/libmongoc/1.23.1/mongoc_gridfs_remove_by_filename.html index eb18e05be8d2e48e8bd6bc576803e0116ff3db2d..ba3185ac03b3371793b26a5633fa66a01d772cc3 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_remove_by_filename.html +++ b/libmongoc/1.23.1/mongoc_gridfs_remove_by_filename.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_gridfs_t.html b/libmongoc/1.23.1/mongoc_gridfs_t.html index 23e9aef42181594fd168128270d462a06010a69b..b24b1cf83c182f3be3ef807412d64579a64d1510 100644 --- a/libmongoc/1.23.1/mongoc_gridfs_t.html +++ b/libmongoc/1.23.1/mongoc_gridfs_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_handshake_data_append.html b/libmongoc/1.23.1/mongoc_handshake_data_append.html index a6b629e373461990d3ea3fab4423d50ab7be3df4..da5f797a3cf1abb1d4b67eedf48647083266a673 100644 --- a/libmongoc/1.23.1/mongoc_handshake_data_append.html +++ b/libmongoc/1.23.1/mongoc_handshake_data_append.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_host_list_t.html b/libmongoc/1.23.1/mongoc_host_list_t.html index d768020e612266153d492ed76ab31ee2d57216ad..dd8e7c36dca512776d36ef2f01bb05470f9c839c 100644 --- a/libmongoc/1.23.1/mongoc_host_list_t.html +++ b/libmongoc/1.23.1/mongoc_host_list_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_geo_get_default.html b/libmongoc/1.23.1/mongoc_index_opt_geo_get_default.html index 0e7fce7c7c56f1b501b0bbaf251bd0dc3b19da50..3a5d26c5e2f223c794b94396474535d457b07d08 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_geo_get_default.html +++ b/libmongoc/1.23.1/mongoc_index_opt_geo_get_default.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_geo_init.html b/libmongoc/1.23.1/mongoc_index_opt_geo_init.html index 0f3dc7b7ebd74d275c2f370420e1b7f3f62ee718..b03660b2faebee24a0890c8dd6baf4b8b268920a 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_geo_init.html +++ b/libmongoc/1.23.1/mongoc_index_opt_geo_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_geo_t.html b/libmongoc/1.23.1/mongoc_index_opt_geo_t.html index 928847a03e2273cba54b3b5170291268f4617fdd..599a3d714ce305ae3c3908a9904f5ee4aded3934 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_geo_t.html +++ b/libmongoc/1.23.1/mongoc_index_opt_geo_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_get_default.html b/libmongoc/1.23.1/mongoc_index_opt_get_default.html index 1783af5db48f98230eab2d11222d3f7b42843863..10d325e673ec5c49705f5880ae90eca3e5129993 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_get_default.html +++ b/libmongoc/1.23.1/mongoc_index_opt_get_default.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_init.html b/libmongoc/1.23.1/mongoc_index_opt_init.html index 9ea5cf61a3e33733cecd3434e263fb9a890f179a..5c288effd9413602c4088b7526eb8893e567951e 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_init.html +++ b/libmongoc/1.23.1/mongoc_index_opt_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_t.html b/libmongoc/1.23.1/mongoc_index_opt_t.html index acada05ba494a58267ca13bce3e1619164e02552..e55e3d670352d217e2233b5dea95654e0b2c5b50 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_t.html +++ b/libmongoc/1.23.1/mongoc_index_opt_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_wt_get_default.html b/libmongoc/1.23.1/mongoc_index_opt_wt_get_default.html index 0190a6312bc870a52bba5995ca03323adde2491c..8adf9221de215df500429e69ccb17cd2af22c5c1 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_wt_get_default.html +++ b/libmongoc/1.23.1/mongoc_index_opt_wt_get_default.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_wt_init.html b/libmongoc/1.23.1/mongoc_index_opt_wt_init.html index a798e63e1a30b658e80de14a771554b24159ea21..2c3c885a64cdfb6598fa2c737f2aae9acf3d6bf4 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_wt_init.html +++ b/libmongoc/1.23.1/mongoc_index_opt_wt_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_index_opt_wt_t.html b/libmongoc/1.23.1/mongoc_index_opt_wt_t.html index cf418859b7b7a5778348787939aaddb8ab0b6a7a..833833f71c92956f709b63fb2a58956ed95a9410 100644 --- a/libmongoc/1.23.1/mongoc_index_opt_wt_t.html +++ b/libmongoc/1.23.1/mongoc_index_opt_wt_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_init.html b/libmongoc/1.23.1/mongoc_init.html index c60473b5eb892a987165a774826e07b83c1a0b1e..c6ec7bbb762c4cde58dfadcba0facb05603eb05f 100644 --- a/libmongoc/1.23.1/mongoc_init.html +++ b/libmongoc/1.23.1/mongoc_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_insert_flags_t.html b/libmongoc/1.23.1/mongoc_insert_flags_t.html index 7d374f16778cfed29fb71d019a88529395dfd34d..987bca0aeb3f36afd2de6e3dc6b8a71190d33e98 100644 --- a/libmongoc/1.23.1/mongoc_insert_flags_t.html +++ b/libmongoc/1.23.1/mongoc_insert_flags_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_iovec_t.html b/libmongoc/1.23.1/mongoc_iovec_t.html index 38feab023b6d04c69415832249012ad1453fadad..542dd09dc9768376a615029e35f95c2f3df35ac3 100644 --- a/libmongoc/1.23.1/mongoc_iovec_t.html +++ b/libmongoc/1.23.1/mongoc_iovec_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_matcher_destroy.html b/libmongoc/1.23.1/mongoc_matcher_destroy.html index c706fdd19d50366c802d9c575afaaaeed263f19b..32408d2c034b123715f141fd70f04139c621d9c3 100644 --- a/libmongoc/1.23.1/mongoc_matcher_destroy.html +++ b/libmongoc/1.23.1/mongoc_matcher_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_matcher_match.html b/libmongoc/1.23.1/mongoc_matcher_match.html index 83f91d1238a6e0c251df3350170500f794b58a71..8e35dc7ee71c6cdc4b0d7eb77e0faa603d033465 100644 --- a/libmongoc/1.23.1/mongoc_matcher_match.html +++ b/libmongoc/1.23.1/mongoc_matcher_match.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_matcher_new.html b/libmongoc/1.23.1/mongoc_matcher_new.html index 9d37da22d961a218565aa415b7af06efa7cdf47e..b8a11cbfbf735687ef28c44c27160c44136c4eb8 100644 --- a/libmongoc/1.23.1/mongoc_matcher_new.html +++ b/libmongoc/1.23.1/mongoc_matcher_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_matcher_t.html b/libmongoc/1.23.1/mongoc_matcher_t.html index 1273da673fce33ed233292b629d4e22c2909db08..6426526a4758669fd58696130a45811c46c2a5e3 100644 --- a/libmongoc/1.23.1/mongoc_matcher_t.html +++ b/libmongoc/1.23.1/mongoc_matcher_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_optional_copy.html b/libmongoc/1.23.1/mongoc_optional_copy.html index b4b1af76b3177063f9750d4e96376479b4884794..c69d22883950f8441c0cdc6144826167603c19e1 100644 --- a/libmongoc/1.23.1/mongoc_optional_copy.html +++ b/libmongoc/1.23.1/mongoc_optional_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_optional_init.html b/libmongoc/1.23.1/mongoc_optional_init.html index e3fdf32db199d1a31ef6fea7d2c43faee85d926b..d3c5ccf142007109a6464b86dbd44b996e2fffbd 100644 --- a/libmongoc/1.23.1/mongoc_optional_init.html +++ b/libmongoc/1.23.1/mongoc_optional_init.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_optional_is_set.html b/libmongoc/1.23.1/mongoc_optional_is_set.html index 2f7fdacf79a363ab022113c4e3b15b0b55f29d6f..69035c9198bd0d3a15fe2d2bb7cd7f7b77c0f053 100644 --- a/libmongoc/1.23.1/mongoc_optional_is_set.html +++ b/libmongoc/1.23.1/mongoc_optional_is_set.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_optional_set_value.html b/libmongoc/1.23.1/mongoc_optional_set_value.html index 07d10e918d3da37ab2235be556f5b7848ebecf17..fe3a892338eeb1fcd0c59cf2435b412d4173def3 100644 --- a/libmongoc/1.23.1/mongoc_optional_set_value.html +++ b/libmongoc/1.23.1/mongoc_optional_set_value.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_optional_t.html b/libmongoc/1.23.1/mongoc_optional_t.html index 416c32f7c032ab21e5d522495fb7ff5f7841b3d9..fcc251ff85a967a5a301ce1eecb82937507e0b57 100644 --- a/libmongoc/1.23.1/mongoc_optional_t.html +++ b/libmongoc/1.23.1/mongoc_optional_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_optional_value.html b/libmongoc/1.23.1/mongoc_optional_value.html index b8bac00336c526076bfb5b38743aa5b3e80d0f71..43d59f6871d7c8e1a26574b7406449527006b783 100644 --- a/libmongoc/1.23.1/mongoc_optional_value.html +++ b/libmongoc/1.23.1/mongoc_optional_value.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_query_flags_t.html b/libmongoc/1.23.1/mongoc_query_flags_t.html index 65893ff56967b6f8da332be986b549ce26099827..6ff0661dc5c69f42ee87b4f7c5af134d85c5a833 100644 --- a/libmongoc/1.23.1/mongoc_query_flags_t.html +++ b/libmongoc/1.23.1/mongoc_query_flags_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_rand.html b/libmongoc/1.23.1/mongoc_rand.html index 98ab757cc226e62823b4b04b46b2507f617bb071..b0d48639d49f37f74c936e43b562888f358b22f7 100644 --- a/libmongoc/1.23.1/mongoc_rand.html +++ b/libmongoc/1.23.1/mongoc_rand.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_rand_add.html b/libmongoc/1.23.1/mongoc_rand_add.html index eb093bfe3cc7f9e2609a8aae25ffba73f9765fea..55a3eabde5529b10ac7d857354105d31b8d478cf 100644 --- a/libmongoc/1.23.1/mongoc_rand_add.html +++ b/libmongoc/1.23.1/mongoc_rand_add.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_rand_seed.html b/libmongoc/1.23.1/mongoc_rand_seed.html index e7f57326628d54e465da5306e9490eed85fe7fd4..7a2f51ae42694a5d245c9e827793d8f376d0c386 100644 --- a/libmongoc/1.23.1/mongoc_rand_seed.html +++ b/libmongoc/1.23.1/mongoc_rand_seed.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_rand_status.html b/libmongoc/1.23.1/mongoc_rand_status.html index 59a6f194da23aa838747e12becda8833f7bb4da5..2fbee8d6bad8b41462a0a7b252cdfb37e3987f80 100644 --- a/libmongoc/1.23.1/mongoc_rand_status.html +++ b/libmongoc/1.23.1/mongoc_rand_status.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_append.html b/libmongoc/1.23.1/mongoc_read_concern_append.html index d17bf81fa64c79d4eede6fa4de3a918fc166c415..54cb3ffe6d0fb25ed5c8c40c64fab268e00a4eb2 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_append.html +++ b/libmongoc/1.23.1/mongoc_read_concern_append.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_copy.html b/libmongoc/1.23.1/mongoc_read_concern_copy.html index 33d40f09a712adb4cf0fceb9fd80149974b83571..e287fecf918cdeda70dea4efe4f4ff0690aca658 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_copy.html +++ b/libmongoc/1.23.1/mongoc_read_concern_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_destroy.html b/libmongoc/1.23.1/mongoc_read_concern_destroy.html index c32ad88e9612b1fcd5faeaec9f7a7ebfb5c5ea44..529ec0ab4a225248decba51424aa97085fa3e172 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_destroy.html +++ b/libmongoc/1.23.1/mongoc_read_concern_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_get_level.html b/libmongoc/1.23.1/mongoc_read_concern_get_level.html index 4fef66e816d6e140a14918d18aff2be1400d0326..67294f6f01f35e963c1c96d833642b0568cd8cb3 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_get_level.html +++ b/libmongoc/1.23.1/mongoc_read_concern_get_level.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_is_default.html b/libmongoc/1.23.1/mongoc_read_concern_is_default.html index 5eb6ea6aa796cf09cef7b5dd9dc8d6f182b0f8f5..f94ecbdfc85c193b7b3247e6005b4713a61a0303 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_is_default.html +++ b/libmongoc/1.23.1/mongoc_read_concern_is_default.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_new.html b/libmongoc/1.23.1/mongoc_read_concern_new.html index 2ad1ac9521f7ce8ff06eb7d9c07a0e95c23cddd1..b0ef3602e969d34eed4eabd7a710d4de42ee2286 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_new.html +++ b/libmongoc/1.23.1/mongoc_read_concern_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_set_level.html b/libmongoc/1.23.1/mongoc_read_concern_set_level.html index c8b137c69100764d3bc12ca284c318fb831e135d..3410bb0e9675396efd14af182418ef8e9387f407 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_set_level.html +++ b/libmongoc/1.23.1/mongoc_read_concern_set_level.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_concern_t.html b/libmongoc/1.23.1/mongoc_read_concern_t.html index eb15c421b2d1b8a2f713663780f5f4a8f77a2d15..e2da8d76bd57c424f35a4ef7478bbcd2a99c0e68 100644 --- a/libmongoc/1.23.1/mongoc_read_concern_t.html +++ b/libmongoc/1.23.1/mongoc_read_concern_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_mode_t.html b/libmongoc/1.23.1/mongoc_read_mode_t.html index a3e81200b8c11fb35abbd6221585ddde6168bc10..106a2b096d31d80d05db4279e3362bc3a85bce57 100644 --- a/libmongoc/1.23.1/mongoc_read_mode_t.html +++ b/libmongoc/1.23.1/mongoc_read_mode_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_add_tag.html b/libmongoc/1.23.1/mongoc_read_prefs_add_tag.html index d782e3b16683613efec34eac8dbc8e6c3d33eeb1..9f09417af687a4c4f4416ba15dadea9ae27ed56a 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_add_tag.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_add_tag.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_copy.html b/libmongoc/1.23.1/mongoc_read_prefs_copy.html index d757b1becb9aeae1677e9f4c804bfdf85a1a51d9..0edd74e5405f9366cd67f04cb5fcc115de73d3b2 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_copy.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_destroy.html b/libmongoc/1.23.1/mongoc_read_prefs_destroy.html index 23124cb3b17196977a4a3fdd3aebd2d41a5b2675..72248f5a4fa8ff1cbe91a7f0e506561232bb9626 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_destroy.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_get_hedge.html b/libmongoc/1.23.1/mongoc_read_prefs_get_hedge.html index fb4684703f007a37214811a1c3199a19c37200fc..d8538a68887712016d95689f2709223d96ba94ba 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_get_hedge.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_get_hedge.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_get_max_staleness_seconds.html b/libmongoc/1.23.1/mongoc_read_prefs_get_max_staleness_seconds.html index 1eaac345795d7359fbd5eef590807ec5f7b0b538..f6faef24a5448d6e11b091bb38151ccf4acff1d6 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_get_max_staleness_seconds.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_get_max_staleness_seconds.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_get_mode.html b/libmongoc/1.23.1/mongoc_read_prefs_get_mode.html index 29d2924676134ff8f4c1f3f20fd54829a529e968..f964f1c896c6c940e7b7ec7b6d6c8113db199b70 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_get_mode.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_get_mode.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_get_tags.html b/libmongoc/1.23.1/mongoc_read_prefs_get_tags.html index 35634db1a13a920f047f9ccd7ec89decedbaa37b..0137b0b2b4af4ea2bb8b2da7a45c134ed24d713b 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_get_tags.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_get_tags.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_is_valid.html b/libmongoc/1.23.1/mongoc_read_prefs_is_valid.html index c6309d44da9f9298e8b0c29d4d7724cba20b8d31..bcc43af2fa6e0932e2b998b3255f600cf55c57c7 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_is_valid.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_is_valid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_new.html b/libmongoc/1.23.1/mongoc_read_prefs_new.html index 7f7b11d879bf916d377b566a23c7921edfe01d13..ac2c1e60a91e01dea6d2031571c4718ecdf594ed 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_new.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_set_hedge.html b/libmongoc/1.23.1/mongoc_read_prefs_set_hedge.html index 17c79c97932395ac69ef8f2802bcd3f0f0218858..1bd5d1d9d39ccf5fc0a21ca1bbe7baf5d38c03c4 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_set_hedge.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_set_hedge.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_set_max_staleness_seconds.html b/libmongoc/1.23.1/mongoc_read_prefs_set_max_staleness_seconds.html index 2de4f1d2c0baa1c1f759478acb0460b909f345ef..e9158ee45c057bd03dd0f369dc5c6d036cfdce19 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_set_max_staleness_seconds.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_set_max_staleness_seconds.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_set_mode.html b/libmongoc/1.23.1/mongoc_read_prefs_set_mode.html index e5e468d8ae56c49bffb4221943d421d4e5c4db23..dc8c9f5749d608b9a275743b565377776201df74 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_set_mode.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_set_mode.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_set_tags.html b/libmongoc/1.23.1/mongoc_read_prefs_set_tags.html index e62710f22d807c24e187ed4547c0660420aa9e96..af54fafd1ce2db77f1a7c0192fc2873b3d42aa8f 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_set_tags.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_set_tags.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_read_prefs_t.html b/libmongoc/1.23.1/mongoc_read_prefs_t.html index 84a35a5e0f85668826e47aa8e7396e909cb3757c..b42ba0f7c641c41c1f29a635764bd907fb9e9372 100644 --- a/libmongoc/1.23.1/mongoc_read_prefs_t.html +++ b/libmongoc/1.23.1/mongoc_read_prefs_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_remove_flags_t.html b/libmongoc/1.23.1/mongoc_remove_flags_t.html index 01d77181dcc79dea2d73190cc34dcfd17d684443..b17dbe70c9dd896173cee48e2a06fd7b7a3188c5 100644 --- a/libmongoc/1.23.1/mongoc_remove_flags_t.html +++ b/libmongoc/1.23.1/mongoc_remove_flags_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_reply_flags_t.html b/libmongoc/1.23.1/mongoc_reply_flags_t.html index 170cdf963e37bde2bfd24c91d134e7591ab98b92..3d74330c797443b2b04a38f8b53d2153f3a059ba 100644 --- a/libmongoc/1.23.1/mongoc_reply_flags_t.html +++ b/libmongoc/1.23.1/mongoc_reply_flags_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_copy.html b/libmongoc/1.23.1/mongoc_server_api_copy.html index 0f62579204d877553b9bc532fee6e37a26c63c72..ec0eafff4957f8a7537c5d2bb581905619ecb934 100644 --- a/libmongoc/1.23.1/mongoc_server_api_copy.html +++ b/libmongoc/1.23.1/mongoc_server_api_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_deprecation_errors.html b/libmongoc/1.23.1/mongoc_server_api_deprecation_errors.html index 50fe2305b86722915b628d319e6377d24d23de3d..917e79c1ecef66b46c00320b766765483bf71794 100644 --- a/libmongoc/1.23.1/mongoc_server_api_deprecation_errors.html +++ b/libmongoc/1.23.1/mongoc_server_api_deprecation_errors.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_destroy.html b/libmongoc/1.23.1/mongoc_server_api_destroy.html index 554ab47d4b9511cc1b388e9163a1a74bf372a88b..4699f2912f094a79cbe175042f43d8e50987e60e 100644 --- a/libmongoc/1.23.1/mongoc_server_api_destroy.html +++ b/libmongoc/1.23.1/mongoc_server_api_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_get_deprecation_errors.html b/libmongoc/1.23.1/mongoc_server_api_get_deprecation_errors.html index 3ace59e45e20441b3d4ed48d14a6d0ab2c27cf93..ea8b2c59631f3f5a697c9a8d3b87605574943930 100644 --- a/libmongoc/1.23.1/mongoc_server_api_get_deprecation_errors.html +++ b/libmongoc/1.23.1/mongoc_server_api_get_deprecation_errors.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_get_strict.html b/libmongoc/1.23.1/mongoc_server_api_get_strict.html index 5adc220a59654f2b4ea4b7c12cbc01f942396016..36c9069b88047e20f2fc6778b3706a4b18df7502 100644 --- a/libmongoc/1.23.1/mongoc_server_api_get_strict.html +++ b/libmongoc/1.23.1/mongoc_server_api_get_strict.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_get_version.html b/libmongoc/1.23.1/mongoc_server_api_get_version.html index e004f14398c09d22769cbb62a9eaa75b1e3adfc2..21026de086f86187f49278c00af8ffa0b2537dc2 100644 --- a/libmongoc/1.23.1/mongoc_server_api_get_version.html +++ b/libmongoc/1.23.1/mongoc_server_api_get_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_new.html b/libmongoc/1.23.1/mongoc_server_api_new.html index 072162228f628ead14e411bab6c7012b2be41768..60e7d0622535b6b0b2b9faf1a81b05ad55b2538d 100644 --- a/libmongoc/1.23.1/mongoc_server_api_new.html +++ b/libmongoc/1.23.1/mongoc_server_api_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_strict.html b/libmongoc/1.23.1/mongoc_server_api_strict.html index 8fbf5e1525261d8f9143e6af03fba7d228ce8843..50540fc375d819b47000e8a4aee4f47b6dba0741 100644 --- a/libmongoc/1.23.1/mongoc_server_api_strict.html +++ b/libmongoc/1.23.1/mongoc_server_api_strict.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_t.html b/libmongoc/1.23.1/mongoc_server_api_t.html index f12b9f63d588f3ad5392ce982df775cb4cfa6cd3..cc95da13e929f5ad67e7f876d05eaefa60db7259 100644 --- a/libmongoc/1.23.1/mongoc_server_api_t.html +++ b/libmongoc/1.23.1/mongoc_server_api_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_version_from_string.html b/libmongoc/1.23.1/mongoc_server_api_version_from_string.html index 5ea481cc54e6d995e83b0d983ec5c5efa65dd93a..db755471aacb60d49080364002d0966ca52d9b69 100644 --- a/libmongoc/1.23.1/mongoc_server_api_version_from_string.html +++ b/libmongoc/1.23.1/mongoc_server_api_version_from_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_version_t.html b/libmongoc/1.23.1/mongoc_server_api_version_t.html index 82a13f9ef29cb2a9f1753e65e99d92a75cbe6b03..7a2e8401f48778776ba0a33b0af1744f1472a916 100644 --- a/libmongoc/1.23.1/mongoc_server_api_version_t.html +++ b/libmongoc/1.23.1/mongoc_server_api_version_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_api_version_to_string.html b/libmongoc/1.23.1/mongoc_server_api_version_to_string.html index 587bb573e6e32fe520338032c737b20704648732..1a041239e2ac3dae0431669af6e99231f28ec952 100644 --- a/libmongoc/1.23.1/mongoc_server_api_version_to_string.html +++ b/libmongoc/1.23.1/mongoc_server_api_version_to_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_destroy.html b/libmongoc/1.23.1/mongoc_server_description_destroy.html index 7d124fb774faa2dad757d67d9e06716d86d9659e..a2cbbb16132c292b07c860389881f8b887dfee83 100644 --- a/libmongoc/1.23.1/mongoc_server_description_destroy.html +++ b/libmongoc/1.23.1/mongoc_server_description_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_hello_response.html b/libmongoc/1.23.1/mongoc_server_description_hello_response.html index ea36ad55ce474e13964854ae933aa8dbb06bd5e1..3b67ffa561d743538edebb02c9c65fca625289af 100644 --- a/libmongoc/1.23.1/mongoc_server_description_hello_response.html +++ b/libmongoc/1.23.1/mongoc_server_description_hello_response.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_host.html b/libmongoc/1.23.1/mongoc_server_description_host.html index a67a72cf480e06d906bfc8d8c9c8227e84923019..6a62c13477934097d56fd819a781089762e2faec 100644 --- a/libmongoc/1.23.1/mongoc_server_description_host.html +++ b/libmongoc/1.23.1/mongoc_server_description_host.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_id.html b/libmongoc/1.23.1/mongoc_server_description_id.html index d757cb5b8a1d215c124ebcfcc803e70d398c1876..4c36f5803e293c1861292bd2613f622c5e7b4083 100644 --- a/libmongoc/1.23.1/mongoc_server_description_id.html +++ b/libmongoc/1.23.1/mongoc_server_description_id.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_ismaster.html b/libmongoc/1.23.1/mongoc_server_description_ismaster.html index 09eec6ef1d19c6982d91664708aceb4d15eda66c..b5fca0f1f0baa8e7cc0cdc9172dbb1e444af766d 100644 --- a/libmongoc/1.23.1/mongoc_server_description_ismaster.html +++ b/libmongoc/1.23.1/mongoc_server_description_ismaster.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_last_update_time.html b/libmongoc/1.23.1/mongoc_server_description_last_update_time.html index 484bb1c1e5b862150faf8b7fc27eee712a55c84c..ea1757efcf1da12b1525217d0dc469e04a70de02 100644 --- a/libmongoc/1.23.1/mongoc_server_description_last_update_time.html +++ b/libmongoc/1.23.1/mongoc_server_description_last_update_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_new_copy.html b/libmongoc/1.23.1/mongoc_server_description_new_copy.html index d9ae914814031b5717b592be1d230927711ae726..ff5b78116292c1a7676846fa6de041a36a658aba 100644 --- a/libmongoc/1.23.1/mongoc_server_description_new_copy.html +++ b/libmongoc/1.23.1/mongoc_server_description_new_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_round_trip_time.html b/libmongoc/1.23.1/mongoc_server_description_round_trip_time.html index 87fe2d8f45b782cc9f28e5e92f5445b40253e9d6..a3a03e5c84d628c9185c34683bed78b7c90d9eb6 100644 --- a/libmongoc/1.23.1/mongoc_server_description_round_trip_time.html +++ b/libmongoc/1.23.1/mongoc_server_description_round_trip_time.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_t.html b/libmongoc/1.23.1/mongoc_server_description_t.html index 1d9f74354cae17a03dbfb85cbfb6a3c953d6cc94..6425333e04a5c35ef554e85bb5ce45118d04add5 100644 --- a/libmongoc/1.23.1/mongoc_server_description_t.html +++ b/libmongoc/1.23.1/mongoc_server_description_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_description_type.html b/libmongoc/1.23.1/mongoc_server_description_type.html index b968299146fc545530fb8a0f5ae16c9b567b010e..53564a440e22d6952f6e62b4eb735c33bd2936c7 100644 --- a/libmongoc/1.23.1/mongoc_server_description_type.html +++ b/libmongoc/1.23.1/mongoc_server_description_type.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_server_descriptions_destroy_all.html b/libmongoc/1.23.1/mongoc_server_descriptions_destroy_all.html index cdb627988cf70a1d6029d4cdcea202b3bf53a603..c96bcd73f355bc2431455db97d651f3bb0f4a324 100644 --- a/libmongoc/1.23.1/mongoc_server_descriptions_destroy_all.html +++ b/libmongoc/1.23.1/mongoc_server_descriptions_destroy_all.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opt_t.html b/libmongoc/1.23.1/mongoc_session_opt_t.html index 45992e36af17e51afcda5ead424d1ac9a696fad1..a648f70e193b38cca2268bbac955d085dd62b045 100644 --- a/libmongoc/1.23.1/mongoc_session_opt_t.html +++ b/libmongoc/1.23.1/mongoc_session_opt_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_clone.html b/libmongoc/1.23.1/mongoc_session_opts_clone.html index d343d36675bd9d8c913a06d1b540344a6c7767b3..bc975e13aba73f562aad1e7cf746898a61d63c2d 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_clone.html +++ b/libmongoc/1.23.1/mongoc_session_opts_clone.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_destroy.html b/libmongoc/1.23.1/mongoc_session_opts_destroy.html index dcac073cdc7e2194d1138fb618e6ac07fa4c3836..a64e10486515f9edcd6a265e2021b85391076293 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_destroy.html +++ b/libmongoc/1.23.1/mongoc_session_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_get_causal_consistency.html b/libmongoc/1.23.1/mongoc_session_opts_get_causal_consistency.html index 8056f55d56e37bc52ddeb16f5db1a3cd2cb97863..34b7b3bd7c025195d46d2af5c64e644fa0d15d77 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_get_causal_consistency.html +++ b/libmongoc/1.23.1/mongoc_session_opts_get_causal_consistency.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_get_default_transaction_opts.html b/libmongoc/1.23.1/mongoc_session_opts_get_default_transaction_opts.html index e46205c4b6029d12e37a3f9f9409e48c47b3ee4b..0dcc0eaba8a59bec6d3d87c651f1722230b7a3d5 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_get_default_transaction_opts.html +++ b/libmongoc/1.23.1/mongoc_session_opts_get_default_transaction_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_get_snapshot.html b/libmongoc/1.23.1/mongoc_session_opts_get_snapshot.html index 98281a31e375e21b3c8bb260aa39eb5b110702f9..172b62d65ae546be21f4b75b5c3403ebce8700a4 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_get_snapshot.html +++ b/libmongoc/1.23.1/mongoc_session_opts_get_snapshot.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_get_transaction_opts.html b/libmongoc/1.23.1/mongoc_session_opts_get_transaction_opts.html index ad87eb32f90338cc484b606ddc57cbd26c117338..b6f3c88a4cbd58a8999af92b9f9764a4d6cab6a8 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_get_transaction_opts.html +++ b/libmongoc/1.23.1/mongoc_session_opts_get_transaction_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_new.html b/libmongoc/1.23.1/mongoc_session_opts_new.html index 50f1d866c41e2b72582f7d40161d50308469bbf4..b7c96313adc8dd026f12acdc22db520500a93db2 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_new.html +++ b/libmongoc/1.23.1/mongoc_session_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_set_causal_consistency.html b/libmongoc/1.23.1/mongoc_session_opts_set_causal_consistency.html index 112c01ad74d6f22fb13714216c5a61e806c96216..1b99b425d3ce63dcce03bac3cf10d20e80a65a19 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_set_causal_consistency.html +++ b/libmongoc/1.23.1/mongoc_session_opts_set_causal_consistency.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_set_default_transaction_opts.html b/libmongoc/1.23.1/mongoc_session_opts_set_default_transaction_opts.html index ebe6aa995432ce83928254e407dcdc366c9d4d24..0b610ee3e0b5a26491e8f50aef21e27b9ec578fb 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_set_default_transaction_opts.html +++ b/libmongoc/1.23.1/mongoc_session_opts_set_default_transaction_opts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_session_opts_set_snapshot.html b/libmongoc/1.23.1/mongoc_session_opts_set_snapshot.html index 9bd665f9298ecfa76671480d19852d74351a34ed..d84f7a225da00bbe828c9bdef88bae018da15ec5 100644 --- a/libmongoc/1.23.1/mongoc_session_opts_set_snapshot.html +++ b/libmongoc/1.23.1/mongoc_session_opts_set_snapshot.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_accept.html b/libmongoc/1.23.1/mongoc_socket_accept.html index 9321cb618f6ea6daf2128813afbd2c4462c03eaf..763addb11b269d131250229a98a102f9ccaeb683 100644 --- a/libmongoc/1.23.1/mongoc_socket_accept.html +++ b/libmongoc/1.23.1/mongoc_socket_accept.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_bind.html b/libmongoc/1.23.1/mongoc_socket_bind.html index d8539b529cd151b2d450b6703b532ac60eabf169..1ffedd2e9d2f3833b5a1e53149d3168bfe4c0afd 100644 --- a/libmongoc/1.23.1/mongoc_socket_bind.html +++ b/libmongoc/1.23.1/mongoc_socket_bind.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_close.html b/libmongoc/1.23.1/mongoc_socket_close.html index 562a9309c1205744e680a7feb7749238a9e9c497..81ce8ee6c8f9974c0ae97f8445db2494568725c5 100644 --- a/libmongoc/1.23.1/mongoc_socket_close.html +++ b/libmongoc/1.23.1/mongoc_socket_close.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_connect.html b/libmongoc/1.23.1/mongoc_socket_connect.html index d4ea181f210db7ddc39c4a17ea0e92a8f743e174..51caa9e3aedda74e3c459f2c65377cfc24174acb 100644 --- a/libmongoc/1.23.1/mongoc_socket_connect.html +++ b/libmongoc/1.23.1/mongoc_socket_connect.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_destroy.html b/libmongoc/1.23.1/mongoc_socket_destroy.html index 81f01eb4c839bcd78ade70b5d59e2818880a4bed..38bacc67cf2758efa1a3df39d718e1a9519b45de 100644 --- a/libmongoc/1.23.1/mongoc_socket_destroy.html +++ b/libmongoc/1.23.1/mongoc_socket_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_errno.html b/libmongoc/1.23.1/mongoc_socket_errno.html index 1ce4e22e0c595206f3b0951e28175b7e73c2071e..c32e7f45d9912a414774bc3f3824babb61cf6742 100644 --- a/libmongoc/1.23.1/mongoc_socket_errno.html +++ b/libmongoc/1.23.1/mongoc_socket_errno.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_getnameinfo.html b/libmongoc/1.23.1/mongoc_socket_getnameinfo.html index b63428cf6adbbaa4b5a9ae7ab8b314cce0cda236..6c0787459f053f7a62a4d6a56ce3f75a4b67b756 100644 --- a/libmongoc/1.23.1/mongoc_socket_getnameinfo.html +++ b/libmongoc/1.23.1/mongoc_socket_getnameinfo.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_getsockname.html b/libmongoc/1.23.1/mongoc_socket_getsockname.html index 4c7534bd20c8321293989850f0d057927adc1fc5..40d9ae2fcf4b22bc589bcdb7c9d8023e1ee1ab42 100644 --- a/libmongoc/1.23.1/mongoc_socket_getsockname.html +++ b/libmongoc/1.23.1/mongoc_socket_getsockname.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_listen.html b/libmongoc/1.23.1/mongoc_socket_listen.html index a572debf10236a6ff69110c80c2d06019b05f8ff..7cebd981dbdf84204622f887d4d6ad25eb647d5b 100644 --- a/libmongoc/1.23.1/mongoc_socket_listen.html +++ b/libmongoc/1.23.1/mongoc_socket_listen.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_new.html b/libmongoc/1.23.1/mongoc_socket_new.html index abe878844a06bfcd956910998b679a4279e6e3c7..1bea891ff3f5116fe25b9432a3e89543b8b510cb 100644 --- a/libmongoc/1.23.1/mongoc_socket_new.html +++ b/libmongoc/1.23.1/mongoc_socket_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_recv.html b/libmongoc/1.23.1/mongoc_socket_recv.html index da0bc5438040cac01fa93e110b89b382beb53c9d..a55451ad8ae7024b58fdc6e0af91fe6768178777 100644 --- a/libmongoc/1.23.1/mongoc_socket_recv.html +++ b/libmongoc/1.23.1/mongoc_socket_recv.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_send.html b/libmongoc/1.23.1/mongoc_socket_send.html index aa8b66817b2ca087793ecea1c43c7ca180c1c917..c19fdb57d36eec155ab1af424e89f31e99e21579 100644 --- a/libmongoc/1.23.1/mongoc_socket_send.html +++ b/libmongoc/1.23.1/mongoc_socket_send.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_sendv.html b/libmongoc/1.23.1/mongoc_socket_sendv.html index 235f1eff5c1487bfee7d8beba640e1db8d38c413..b4a601b51307e61d5d8c1b35c62f82b37ea12616 100644 --- a/libmongoc/1.23.1/mongoc_socket_sendv.html +++ b/libmongoc/1.23.1/mongoc_socket_sendv.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_setsockopt.html b/libmongoc/1.23.1/mongoc_socket_setsockopt.html index 8d21f997f46fbe41cec822edbcff72ce5d318b3c..7b0622331a6d645f50f1754d1870fc124126fee9 100644 --- a/libmongoc/1.23.1/mongoc_socket_setsockopt.html +++ b/libmongoc/1.23.1/mongoc_socket_setsockopt.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_socket_t.html b/libmongoc/1.23.1/mongoc_socket_t.html index 1f5a35e26e4065b79d0ba2acbd814c12e6106625..c388c18f30bb87dd117c3a7b970d51841cc49689 100644 --- a/libmongoc/1.23.1/mongoc_socket_t.html +++ b/libmongoc/1.23.1/mongoc_socket_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_ssl_opt_get_default.html b/libmongoc/1.23.1/mongoc_ssl_opt_get_default.html index 9ff9c14d4330f3e8d0016759144eb65ca4b09fe7..a25dd775ee28ed51d530486f86169e5bf2412ad2 100644 --- a/libmongoc/1.23.1/mongoc_ssl_opt_get_default.html +++ b/libmongoc/1.23.1/mongoc_ssl_opt_get_default.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_ssl_opt_t.html b/libmongoc/1.23.1/mongoc_ssl_opt_t.html index 856552d02fb2a64dd45231a540df1b9a7f562765..e3bc670ea9f586e78b3ab23d8d8fde53ff18b586 100644 --- a/libmongoc/1.23.1/mongoc_ssl_opt_t.html +++ b/libmongoc/1.23.1/mongoc_ssl_opt_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_buffered_new.html b/libmongoc/1.23.1/mongoc_stream_buffered_new.html index 6faae70b3e015e4735908bf7c98feddf542252fb..ffa04a90f29ef1a56e656feab6dabdc4b38829ae 100644 --- a/libmongoc/1.23.1/mongoc_stream_buffered_new.html +++ b/libmongoc/1.23.1/mongoc_stream_buffered_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_buffered_t.html b/libmongoc/1.23.1/mongoc_stream_buffered_t.html index 11f9fbaf41e0debbb7734d6916a08d4fa0c6de8c..c1a9c62854a15fa8fc9dce3b7877ac25a79a87f2 100644 --- a/libmongoc/1.23.1/mongoc_stream_buffered_t.html +++ b/libmongoc/1.23.1/mongoc_stream_buffered_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_close.html b/libmongoc/1.23.1/mongoc_stream_close.html index ff902fd548dece5b766c53f17276b16d4057a62b..c4ff8b98d8b100676473e6631df34806fb4b348b 100644 --- a/libmongoc/1.23.1/mongoc_stream_close.html +++ b/libmongoc/1.23.1/mongoc_stream_close.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_cork.html b/libmongoc/1.23.1/mongoc_stream_cork.html index 152f5df524950b2f50e90d8873246bd424e213e7..cfbcce1442ece01d9e265f284e22bf31a64894e0 100644 --- a/libmongoc/1.23.1/mongoc_stream_cork.html +++ b/libmongoc/1.23.1/mongoc_stream_cork.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_destroy.html b/libmongoc/1.23.1/mongoc_stream_destroy.html index 3470ff12ba750f8a99d2e6f38d583de845cf4371..f3c5c85ddadab929d62d410763abc0e95b3b61c1 100644 --- a/libmongoc/1.23.1/mongoc_stream_destroy.html +++ b/libmongoc/1.23.1/mongoc_stream_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_file_get_fd.html b/libmongoc/1.23.1/mongoc_stream_file_get_fd.html index d118e61804550aa57f3abcaf109d487317b847e1..1272c679ef7a349bd73fffc807b302175d8af6e9 100644 --- a/libmongoc/1.23.1/mongoc_stream_file_get_fd.html +++ b/libmongoc/1.23.1/mongoc_stream_file_get_fd.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_file_new.html b/libmongoc/1.23.1/mongoc_stream_file_new.html index f4a5076890b3273a30f56c0c3efac15c95b96d2e..dd702017b70d4c006e191ff8d5533b999a1acc40 100644 --- a/libmongoc/1.23.1/mongoc_stream_file_new.html +++ b/libmongoc/1.23.1/mongoc_stream_file_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_file_new_for_path.html b/libmongoc/1.23.1/mongoc_stream_file_new_for_path.html index de3a67626d4801edabbfc92f304e2b18c2a72929..b825d0f503f42b9d314cacc52e799db34733869b 100644 --- a/libmongoc/1.23.1/mongoc_stream_file_new_for_path.html +++ b/libmongoc/1.23.1/mongoc_stream_file_new_for_path.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_file_t.html b/libmongoc/1.23.1/mongoc_stream_file_t.html index 42d704bfae0c18bb249d80f8a0ba244273fdfe15..f9326cffc47c09eddbc50b2e79c9d5ee02ceb0e8 100644 --- a/libmongoc/1.23.1/mongoc_stream_file_t.html +++ b/libmongoc/1.23.1/mongoc_stream_file_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_flush.html b/libmongoc/1.23.1/mongoc_stream_flush.html index 62797a6404da3b1cb14347f54ef79c7078f77cdb..6d46ad8fa02ce12e966dde283fd949c335a62316 100644 --- a/libmongoc/1.23.1/mongoc_stream_flush.html +++ b/libmongoc/1.23.1/mongoc_stream_flush.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_get_base_stream.html b/libmongoc/1.23.1/mongoc_stream_get_base_stream.html index 0ef582fb7777fcabf461c8203287b8989d06c0e7..e02e3feb7e968998d681b4a3ac30da945682a546 100644 --- a/libmongoc/1.23.1/mongoc_stream_get_base_stream.html +++ b/libmongoc/1.23.1/mongoc_stream_get_base_stream.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_gridfs_new.html b/libmongoc/1.23.1/mongoc_stream_gridfs_new.html index 2fcd9d3514f4274cabbae160fe94a06678088e77..2a0124f79062b81f5e1555fc19d7e57f5ff62e53 100644 --- a/libmongoc/1.23.1/mongoc_stream_gridfs_new.html +++ b/libmongoc/1.23.1/mongoc_stream_gridfs_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_read.html b/libmongoc/1.23.1/mongoc_stream_read.html index 5406130e6b131b5eb64a1685dd3f1f865618418a..4d5a73b00b3d8c43985aadfedc882aee17f6e0cf 100644 --- a/libmongoc/1.23.1/mongoc_stream_read.html +++ b/libmongoc/1.23.1/mongoc_stream_read.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_readv.html b/libmongoc/1.23.1/mongoc_stream_readv.html index b1f616956b4501ffd765aef03656e2bb589b4415..15775b0348c7348a2af90bc69d00f921d09fa13b 100644 --- a/libmongoc/1.23.1/mongoc_stream_readv.html +++ b/libmongoc/1.23.1/mongoc_stream_readv.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_setsockopt.html b/libmongoc/1.23.1/mongoc_stream_setsockopt.html index d77e0766976f36da5cff435f77928a3d74a1ee29..d6545c3cabaeb279bac7779573f9dfad36d3ee14 100644 --- a/libmongoc/1.23.1/mongoc_stream_setsockopt.html +++ b/libmongoc/1.23.1/mongoc_stream_setsockopt.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_should_retry.html b/libmongoc/1.23.1/mongoc_stream_should_retry.html index 50ab0715356322159c9e9843c6164061003c32a7..a7f972e84fbc55f1f77e53c5e4fcb9bcd7c08785 100644 --- a/libmongoc/1.23.1/mongoc_stream_should_retry.html +++ b/libmongoc/1.23.1/mongoc_stream_should_retry.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_socket_get_socket.html b/libmongoc/1.23.1/mongoc_stream_socket_get_socket.html index e28bbadc5c125d5637e94b8301bbcd313b209b5f..354c7304a3e636e589eff2d902f713e23f24b937 100644 --- a/libmongoc/1.23.1/mongoc_stream_socket_get_socket.html +++ b/libmongoc/1.23.1/mongoc_stream_socket_get_socket.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_socket_new.html b/libmongoc/1.23.1/mongoc_stream_socket_new.html index 160d6d590b6e2f24734d4ad6f3374c3e0d47eaa2..4db83f69271810c2a31db78218b3446bfa38585e 100644 --- a/libmongoc/1.23.1/mongoc_stream_socket_new.html +++ b/libmongoc/1.23.1/mongoc_stream_socket_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_socket_t.html b/libmongoc/1.23.1/mongoc_stream_socket_t.html index aff65485a330db5c0a55beef84a641eed81590a9..3b73a00646748d5b3d858bc403aa50842f81d4d6 100644 --- a/libmongoc/1.23.1/mongoc_stream_socket_t.html +++ b/libmongoc/1.23.1/mongoc_stream_socket_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_t.html b/libmongoc/1.23.1/mongoc_stream_t.html index 03b7e907899692f09d95052a69fc0eb0147cf6ba..29f553fe2780d58f3f65aeaa092602e8b7c91033 100644 --- a/libmongoc/1.23.1/mongoc_stream_t.html +++ b/libmongoc/1.23.1/mongoc_stream_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_timed_out.html b/libmongoc/1.23.1/mongoc_stream_timed_out.html index b2c2a19b400e89fc0ec9a4e543b2a56962c40935..70f7ac5ee57c299b4a896ed1f904f3b2bfd2fb40 100644 --- a/libmongoc/1.23.1/mongoc_stream_timed_out.html +++ b/libmongoc/1.23.1/mongoc_stream_timed_out.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_tls_t.html b/libmongoc/1.23.1/mongoc_stream_tls_t.html index b7dc7bc4f53e5f49f3cbd76f2a9a111f2f1cf0f1..91fa0685f18062e605772a00fac68d2a71291ab8 100644 --- a/libmongoc/1.23.1/mongoc_stream_tls_t.html +++ b/libmongoc/1.23.1/mongoc_stream_tls_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_uncork.html b/libmongoc/1.23.1/mongoc_stream_uncork.html index 49befe3d7e94fe2888a575f6e3e0f4550eab1abf..93549c466735419b733f53fbbf5c1374b1044101 100644 --- a/libmongoc/1.23.1/mongoc_stream_uncork.html +++ b/libmongoc/1.23.1/mongoc_stream_uncork.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_write.html b/libmongoc/1.23.1/mongoc_stream_write.html index 214d247264869d96ebf52fbbca9c93545768ca25..bff77c3379c89de5e3c6fb24cc2c67e04cdda8d0 100644 --- a/libmongoc/1.23.1/mongoc_stream_write.html +++ b/libmongoc/1.23.1/mongoc_stream_write.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_stream_writev.html b/libmongoc/1.23.1/mongoc_stream_writev.html index a4074e47e2c9ada0171902993305e3afc37b00c3..62a033fa9b065745f04548e76a9dc8efb49718af 100644 --- a/libmongoc/1.23.1/mongoc_stream_writev.html +++ b/libmongoc/1.23.1/mongoc_stream_writev.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_topology_description_destroy.html b/libmongoc/1.23.1/mongoc_topology_description_destroy.html index 271d6013efa4c9994ff1dc572214067b5218aca2..f9fa420f180f60a696135a2bce163a44d9d9a3b5 100644 --- a/libmongoc/1.23.1/mongoc_topology_description_destroy.html +++ b/libmongoc/1.23.1/mongoc_topology_description_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_topology_description_get_servers.html b/libmongoc/1.23.1/mongoc_topology_description_get_servers.html index 1169c1803ce33ce3d20850256b96395389d51243..084a7f9f414caf4431eff920f0b5c690e2ad5370 100644 --- a/libmongoc/1.23.1/mongoc_topology_description_get_servers.html +++ b/libmongoc/1.23.1/mongoc_topology_description_get_servers.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_topology_description_has_readable_server.html b/libmongoc/1.23.1/mongoc_topology_description_has_readable_server.html index c06e6259d8e2004b4836e2f2579f38e308d2de68..ef135ebace5a6faab0951a12236d03bccf79724f 100644 --- a/libmongoc/1.23.1/mongoc_topology_description_has_readable_server.html +++ b/libmongoc/1.23.1/mongoc_topology_description_has_readable_server.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_topology_description_has_writable_server.html b/libmongoc/1.23.1/mongoc_topology_description_has_writable_server.html index 10c85023010b0f4b1a95106fbdfcab42014e2294..016a2c3fdcbbbcbdfade62981a4fd1243b85aa90 100644 --- a/libmongoc/1.23.1/mongoc_topology_description_has_writable_server.html +++ b/libmongoc/1.23.1/mongoc_topology_description_has_writable_server.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_topology_description_new_copy.html b/libmongoc/1.23.1/mongoc_topology_description_new_copy.html index d1d2f045ed8f8f524e6c87646e7252105f6b687c..f8535e2c811e543d08e96e7aa347ec4f4af07e2e 100644 --- a/libmongoc/1.23.1/mongoc_topology_description_new_copy.html +++ b/libmongoc/1.23.1/mongoc_topology_description_new_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_topology_description_t.html b/libmongoc/1.23.1/mongoc_topology_description_t.html index 9384e9ca54d33e80affc168b205078e5a0acf2f4..e06b1433c2f1539e279f3a1a4f38ce3f4bb3eabf 100644 --- a/libmongoc/1.23.1/mongoc_topology_description_t.html +++ b/libmongoc/1.23.1/mongoc_topology_description_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_topology_description_type.html b/libmongoc/1.23.1/mongoc_topology_description_type.html index 0299983af0129209dfc8922de82e7973a5fab55e..8ba3b767651cb6e9ede60be959fd4f07a1515032 100644 --- a/libmongoc/1.23.1/mongoc_topology_description_type.html +++ b/libmongoc/1.23.1/mongoc_topology_description_type.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opt_t.html b/libmongoc/1.23.1/mongoc_transaction_opt_t.html index 9269632110f7d113fadff603b0f588b59c0aafaa..f0ec4843bc892ddce5f644352e635d7722c4b048 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opt_t.html +++ b/libmongoc/1.23.1/mongoc_transaction_opt_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_clone.html b/libmongoc/1.23.1/mongoc_transaction_opts_clone.html index 9d735a53bd27773f4fdc127f55128b964c873b7c..21c452192521d3d386d62a5446274dc8d60e898f 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_clone.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_clone.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_destroy.html b/libmongoc/1.23.1/mongoc_transaction_opts_destroy.html index 55880b291d993a162d09b155f330687fe0f0c003..bcd2561f981959803657ea3034181b96f03ae85a 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_destroy.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_get_max_commit_time_ms.html b/libmongoc/1.23.1/mongoc_transaction_opts_get_max_commit_time_ms.html index 9a57350130a335539b0743f255190487632a49a7..31386c306277c997eb98b6bfd92e97510450968e 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_get_max_commit_time_ms.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_get_max_commit_time_ms.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_get_read_concern.html b/libmongoc/1.23.1/mongoc_transaction_opts_get_read_concern.html index e8c6ac4e6651f9a112ee241fde83f2e0e6f77255..ca85199b903e206ad37a46c0c70156e6b9528257 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_get_read_concern.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_get_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_get_read_prefs.html b/libmongoc/1.23.1/mongoc_transaction_opts_get_read_prefs.html index 533add205c79f7e9bd965eaf268a7b4b93f33cf0..feb32226809bb1d9c6737dd73c37c6631391fce2 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_get_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_get_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_get_write_concern.html b/libmongoc/1.23.1/mongoc_transaction_opts_get_write_concern.html index 785ac312846f2995c0f8041b18371196790bd133..8dabfe06f976ee3c744723d9388403d31f8c6f94 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_get_write_concern.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_get_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_new.html b/libmongoc/1.23.1/mongoc_transaction_opts_new.html index 0965eec214ae6841705fd63a9f66b26caa584319..10c1e96391bc0dcf223c18adc07a39d1e3132270 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_new.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_set_max_commit_time_ms.html b/libmongoc/1.23.1/mongoc_transaction_opts_set_max_commit_time_ms.html index 1f41e8ad01d51c89115a85a7eee16fdae5dcf511..e21c6770bc2e2088217aaba7317e3609ae08c0fc 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_set_max_commit_time_ms.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_set_max_commit_time_ms.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_set_read_concern.html b/libmongoc/1.23.1/mongoc_transaction_opts_set_read_concern.html index f69e6cb3deca6ddfe8f270b219492538f0890387..98ae67c91099e76c6d20a29d6ff22b8360d71c56 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_set_read_concern.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_set_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_set_read_prefs.html b/libmongoc/1.23.1/mongoc_transaction_opts_set_read_prefs.html index d5c487e7f00551039e438f2865ece1b9625202a7..fca5e3149e5bc6179a5a2f44b16321b733981263 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_set_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_set_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_opts_set_write_concern.html b/libmongoc/1.23.1/mongoc_transaction_opts_set_write_concern.html index e27392856b6e9e05c7ff6c275b033e935df7a06b..e967e3da09637d4c627be128907d968ca0ac1485 100644 --- a/libmongoc/1.23.1/mongoc_transaction_opts_set_write_concern.html +++ b/libmongoc/1.23.1/mongoc_transaction_opts_set_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_transaction_state_t.html b/libmongoc/1.23.1/mongoc_transaction_state_t.html index c3e0a76d7f018b888f0494393ba4dc641e4415d0..2a4bfb39caebd0c40ecd3a19dfa0d965a2eed38a 100644 --- a/libmongoc/1.23.1/mongoc_transaction_state_t.html +++ b/libmongoc/1.23.1/mongoc_transaction_state_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_update_flags_t.html b/libmongoc/1.23.1/mongoc_update_flags_t.html index f8791089fe9ee84a6d8dba52e61db169bb1b7ca6..3a5499fc15d82807c8516b39fc63e61f7554fe1f 100644 --- a/libmongoc/1.23.1/mongoc_update_flags_t.html +++ b/libmongoc/1.23.1/mongoc_update_flags_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_copy.html b/libmongoc/1.23.1/mongoc_uri_copy.html index 69924b14494a9d98c919d2a50701ebff354d9231..a0645c1d9d0b35d9d6230a7df4a1fe397095e474 100644 --- a/libmongoc/1.23.1/mongoc_uri_copy.html +++ b/libmongoc/1.23.1/mongoc_uri_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_destroy.html b/libmongoc/1.23.1/mongoc_uri_destroy.html index 870ed1441de90c764f276e06aea98239552d4ac8..a00dfc6de2c935d25b4291532a15ca2b4a006bf4 100644 --- a/libmongoc/1.23.1/mongoc_uri_destroy.html +++ b/libmongoc/1.23.1/mongoc_uri_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_auth_mechanism.html b/libmongoc/1.23.1/mongoc_uri_get_auth_mechanism.html index 889f5eca9345b14514e46aa3b19c52c2552b62d1..2b099369ac1ff06ec3164c5cc1bea0f25e4439d6 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_auth_mechanism.html +++ b/libmongoc/1.23.1/mongoc_uri_get_auth_mechanism.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_auth_source.html b/libmongoc/1.23.1/mongoc_uri_get_auth_source.html index 65278b930323318269ad4bdf907fad3014f39837..b64bfbb102e6bfb8ed9cb42ac4c297ea89ce3876 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_auth_source.html +++ b/libmongoc/1.23.1/mongoc_uri_get_auth_source.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_compressors.html b/libmongoc/1.23.1/mongoc_uri_get_compressors.html index 6af76745fc333086bc32106f54d8b206f665b75a..6f529e01e45dfaefd8fb1d84277c884190c06900 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_compressors.html +++ b/libmongoc/1.23.1/mongoc_uri_get_compressors.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_database.html b/libmongoc/1.23.1/mongoc_uri_get_database.html index 85c4e3caadd3f741b1546b56efc1bc956b7424cd..3ea5f232364b7eb247428fcc8c8b26106bbd50fc 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_database.html +++ b/libmongoc/1.23.1/mongoc_uri_get_database.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_hosts.html b/libmongoc/1.23.1/mongoc_uri_get_hosts.html index 4dfb11f894d402690d0d202e912f7881ef043019..c945be447d082065d9a89d1d716b5c8107918226 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_hosts.html +++ b/libmongoc/1.23.1/mongoc_uri_get_hosts.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_mechanism_properties.html b/libmongoc/1.23.1/mongoc_uri_get_mechanism_properties.html index 8b09b067eaca711bf884c4098241819ecf6b3243..ec89a81cfb3bd99066a9c7322393e2ef1d784295 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_mechanism_properties.html +++ b/libmongoc/1.23.1/mongoc_uri_get_mechanism_properties.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_option_as_bool.html b/libmongoc/1.23.1/mongoc_uri_get_option_as_bool.html index db299462141949df76007c09f022f400d8700a4c..a753954798611ad1fd5ca049ed3126f52ca6574c 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_option_as_bool.html +++ b/libmongoc/1.23.1/mongoc_uri_get_option_as_bool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_option_as_int32.html b/libmongoc/1.23.1/mongoc_uri_get_option_as_int32.html index c6748df478db879259cf49c3736cd3a214f2c0e5..5cd77a9cb0825c75ef3a4b6d3579acb2ffcbc9ab 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_option_as_int32.html +++ b/libmongoc/1.23.1/mongoc_uri_get_option_as_int32.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_option_as_int64.html b/libmongoc/1.23.1/mongoc_uri_get_option_as_int64.html index 65a7032b3fc277b46f0f4cf316619f803a96f376..b24caaf6ee75fc7844b6399756d84dbfa56749f4 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_option_as_int64.html +++ b/libmongoc/1.23.1/mongoc_uri_get_option_as_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_option_as_utf8.html b/libmongoc/1.23.1/mongoc_uri_get_option_as_utf8.html index 2cbf76c1b3e33d409716e4b3e734780d012b1f7d..63f98430328944084da783bdac6875422d0a5641 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_option_as_utf8.html +++ b/libmongoc/1.23.1/mongoc_uri_get_option_as_utf8.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_options.html b/libmongoc/1.23.1/mongoc_uri_get_options.html index e2d9e96b1f2200fe79185b069129f0b476e1ff00..323f4cf8182f9b67242b551a8f835220ca781715 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_options.html +++ b/libmongoc/1.23.1/mongoc_uri_get_options.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_password.html b/libmongoc/1.23.1/mongoc_uri_get_password.html index 49beafab83c3967b3f04cb1ed1009a84a47f55af..6344d035f073dea3a74543f6d911fd4f0837c567 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_password.html +++ b/libmongoc/1.23.1/mongoc_uri_get_password.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_read_concern.html b/libmongoc/1.23.1/mongoc_uri_get_read_concern.html index 4bb6bb99ed46a4a8291440356adab85f7deeebf5..b4b5f1fce51999fbcadde8e1c1beec452d2c4784 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_read_concern.html +++ b/libmongoc/1.23.1/mongoc_uri_get_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_read_prefs.html b/libmongoc/1.23.1/mongoc_uri_get_read_prefs.html index b376d46d7d2dcb9b611784b0c34cd1434b87c5c1..fb6911e13cfdd5d4eaa3e6c5922781eff1b8e904 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_read_prefs.html +++ b/libmongoc/1.23.1/mongoc_uri_get_read_prefs.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_read_prefs_t.html b/libmongoc/1.23.1/mongoc_uri_get_read_prefs_t.html index 5a8e3a084d07dfb44e1d3aecc7d173dab1bda64c..c21c98ee2b601856517c460b2795f22e8acc9423 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_read_prefs_t.html +++ b/libmongoc/1.23.1/mongoc_uri_get_read_prefs_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_replica_set.html b/libmongoc/1.23.1/mongoc_uri_get_replica_set.html index c95907fa099551dce996b503d0a4639da0c63f35..0fbc673f80e0f2dd6079dec9751076d0257bf3ce 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_replica_set.html +++ b/libmongoc/1.23.1/mongoc_uri_get_replica_set.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_service.html b/libmongoc/1.23.1/mongoc_uri_get_service.html index 15820459c963a03f54eb022d71877ab515b235c2..5f03bea5a3c3de04b8079f38b21fe87f85e204f5 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_service.html +++ b/libmongoc/1.23.1/mongoc_uri_get_service.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_srv_hostname.html b/libmongoc/1.23.1/mongoc_uri_get_srv_hostname.html index dfa87062caf3618fb3918e3fc32e20d1cecb377c..0dea2b8cf26138b1cebd4233299a128e928c74bd 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_srv_hostname.html +++ b/libmongoc/1.23.1/mongoc_uri_get_srv_hostname.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_srv_service_name.html b/libmongoc/1.23.1/mongoc_uri_get_srv_service_name.html index b0958f9e6fc044be1619c00dbd0574a21d87a67f..bd079b2c79eeb70845fde0d910810e9a4142719e 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_srv_service_name.html +++ b/libmongoc/1.23.1/mongoc_uri_get_srv_service_name.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_ssl.html b/libmongoc/1.23.1/mongoc_uri_get_ssl.html index 66f82460ac499a2bdf048d23c4d85b3444f52882..9b9ece0ee863f018f2c33ec6ae790daae3f4a84e 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_ssl.html +++ b/libmongoc/1.23.1/mongoc_uri_get_ssl.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_string.html b/libmongoc/1.23.1/mongoc_uri_get_string.html index f0e18cda1c21a7ff0d988fd382aa434a300058f1..c35a0e65714b83106fa4dabe3b75d5879bc88068 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_string.html +++ b/libmongoc/1.23.1/mongoc_uri_get_string.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_tls.html b/libmongoc/1.23.1/mongoc_uri_get_tls.html index a5e32e5418b2e3b24f5fa7cb98a907ad568a11ee..96fd8e648beb66522c0f0098892561d2361b0328 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_tls.html +++ b/libmongoc/1.23.1/mongoc_uri_get_tls.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_username.html b/libmongoc/1.23.1/mongoc_uri_get_username.html index 85138a1df9e32acd99c9dcda694a5422427489b3..2f568898f87a2948de70a6ab49a801fa374f6804 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_username.html +++ b/libmongoc/1.23.1/mongoc_uri_get_username.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_get_write_concern.html b/libmongoc/1.23.1/mongoc_uri_get_write_concern.html index d1f2e4391e8ef8954fc603ad82ee8227ec2a3916..95ef1cfcb19cd781bd03c35b01183f1a1071da26 100644 --- a/libmongoc/1.23.1/mongoc_uri_get_write_concern.html +++ b/libmongoc/1.23.1/mongoc_uri_get_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_has_option.html b/libmongoc/1.23.1/mongoc_uri_has_option.html index 42972f1fb6c2970ebb52ccf711fda89d4110a119..d29d3eecad032b9f4f2065c9a7829745bc90dc62 100644 --- a/libmongoc/1.23.1/mongoc_uri_has_option.html +++ b/libmongoc/1.23.1/mongoc_uri_has_option.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_new.html b/libmongoc/1.23.1/mongoc_uri_new.html index bd135673dfdab11a875104ac351a29f30b3de2fe..2c5ba73a514ea9059e85ba90599b1c722facd10d 100644 --- a/libmongoc/1.23.1/mongoc_uri_new.html +++ b/libmongoc/1.23.1/mongoc_uri_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_new_for_host_port.html b/libmongoc/1.23.1/mongoc_uri_new_for_host_port.html index 0f4f26fa849f09f3da19cc24377793b0d8465865..153e77b59ab495984ec315a28e661a4e7ce8d70a 100644 --- a/libmongoc/1.23.1/mongoc_uri_new_for_host_port.html +++ b/libmongoc/1.23.1/mongoc_uri_new_for_host_port.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_new_with_error.html b/libmongoc/1.23.1/mongoc_uri_new_with_error.html index 7a8325eb1e6c32844734a0dd6dd885934bf4310e..d0ec6946cbaff0f81dd5860aa5d8e1a489a6edce 100644 --- a/libmongoc/1.23.1/mongoc_uri_new_with_error.html +++ b/libmongoc/1.23.1/mongoc_uri_new_with_error.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_option_is_bool.html b/libmongoc/1.23.1/mongoc_uri_option_is_bool.html index 15e11b395813961084c4a129bf42b5a855991b7a..0bff2bc7b2be361c1f3ba0225903559af81b42b6 100644 --- a/libmongoc/1.23.1/mongoc_uri_option_is_bool.html +++ b/libmongoc/1.23.1/mongoc_uri_option_is_bool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_option_is_int32.html b/libmongoc/1.23.1/mongoc_uri_option_is_int32.html index 2649e91ab0a004226cf57b39ac193ea373e3bb2c..687ad5a72db6c9925aa9df2d01ece35edbc618a7 100644 --- a/libmongoc/1.23.1/mongoc_uri_option_is_int32.html +++ b/libmongoc/1.23.1/mongoc_uri_option_is_int32.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_option_is_int64.html b/libmongoc/1.23.1/mongoc_uri_option_is_int64.html index 14d4ad283450d85ee14d8345ccf7bcb42c0502eb..e4f431f525d3c31369c18115b6ebfe5baa55fdf8 100644 --- a/libmongoc/1.23.1/mongoc_uri_option_is_int64.html +++ b/libmongoc/1.23.1/mongoc_uri_option_is_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_option_is_utf8.html b/libmongoc/1.23.1/mongoc_uri_option_is_utf8.html index f4bbbfd1cba9448201d6a058a85e9be0afa1204b..67a74288c2c2be676738ec3cdd8140cf5aef320f 100644 --- a/libmongoc/1.23.1/mongoc_uri_option_is_utf8.html +++ b/libmongoc/1.23.1/mongoc_uri_option_is_utf8.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_auth_mechanism.html b/libmongoc/1.23.1/mongoc_uri_set_auth_mechanism.html index 18600c22c3e45ea4dc81623ae3981125ffa0976a..8742662c5dc45e4a1584bca85c6cac83ed0da1da 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_auth_mechanism.html +++ b/libmongoc/1.23.1/mongoc_uri_set_auth_mechanism.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_auth_source.html b/libmongoc/1.23.1/mongoc_uri_set_auth_source.html index 5ab599cecdebc58424b03aa80536314a7eb149dc..066aa8759a738f528668ada9283682d88d8fdc7a 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_auth_source.html +++ b/libmongoc/1.23.1/mongoc_uri_set_auth_source.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_compressors.html b/libmongoc/1.23.1/mongoc_uri_set_compressors.html index 5767af51c2502f55d770ed3bb1364cb77d2de5ac..6f1479e6ccc2bd8f3c2590ca0298bdb2dad41cd3 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_compressors.html +++ b/libmongoc/1.23.1/mongoc_uri_set_compressors.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_database.html b/libmongoc/1.23.1/mongoc_uri_set_database.html index 24f7d31b6047cd6afeb5d87ed84bd6bc1c09caa5..c677141de966c1b66a98c59c1e35a5da9d4d7110 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_database.html +++ b/libmongoc/1.23.1/mongoc_uri_set_database.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_mechanism_properties.html b/libmongoc/1.23.1/mongoc_uri_set_mechanism_properties.html index a54909b365a517c7feb038d8c4512d653f669ed5..fda9ccae68c92617a158c535811a4f1f7068c2de 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_mechanism_properties.html +++ b/libmongoc/1.23.1/mongoc_uri_set_mechanism_properties.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_option_as_bool.html b/libmongoc/1.23.1/mongoc_uri_set_option_as_bool.html index 6df9d38f47075df4d714244c4d8bbe351df97416..31852ce2993bc8265dddcd0775be5fc169746c3c 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_option_as_bool.html +++ b/libmongoc/1.23.1/mongoc_uri_set_option_as_bool.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_option_as_int32.html b/libmongoc/1.23.1/mongoc_uri_set_option_as_int32.html index 5cf1ec2c5e44ee8d21c9e09a01a1efe12707df58..893edfe8152f31543d52a1dfa20b7971baecfe02 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_option_as_int32.html +++ b/libmongoc/1.23.1/mongoc_uri_set_option_as_int32.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_option_as_int64.html b/libmongoc/1.23.1/mongoc_uri_set_option_as_int64.html index df6855db65e04fe82d0ef324ec5499a009901256..f41c436e46b1e604ffe82d08d5fc062c25914e36 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_option_as_int64.html +++ b/libmongoc/1.23.1/mongoc_uri_set_option_as_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_option_as_utf8.html b/libmongoc/1.23.1/mongoc_uri_set_option_as_utf8.html index bed83651e82f9397fc1624ca471342cf2cbab988..00d81ce24b0a7c392efe0700cce7276d0ab7e283 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_option_as_utf8.html +++ b/libmongoc/1.23.1/mongoc_uri_set_option_as_utf8.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_password.html b/libmongoc/1.23.1/mongoc_uri_set_password.html index 01b90788fd133058658dfa8e5bf826150891e8fb..13494082a4cafe917b3ab1bbfba9bb63cb506055 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_password.html +++ b/libmongoc/1.23.1/mongoc_uri_set_password.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_read_concern.html b/libmongoc/1.23.1/mongoc_uri_set_read_concern.html index d0e5358114a22ee5640556d09aed631de8accf71..00bb6e12428970329abe1697d32a5726d03c67bf 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_read_concern.html +++ b/libmongoc/1.23.1/mongoc_uri_set_read_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_read_prefs_t.html b/libmongoc/1.23.1/mongoc_uri_set_read_prefs_t.html index bdd4c37606e64d1fe1ce5898ca69c1aad182c059..e8ad08935e54f0fabd3ea6d8db0131a06b85a9c6 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_read_prefs_t.html +++ b/libmongoc/1.23.1/mongoc_uri_set_read_prefs_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_username.html b/libmongoc/1.23.1/mongoc_uri_set_username.html index 56da99abe9bf8def376a691b24f68275a2bb0cb1..38c1abacac5f6625728d95faaa86ac6a797a43ba 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_username.html +++ b/libmongoc/1.23.1/mongoc_uri_set_username.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_set_write_concern.html b/libmongoc/1.23.1/mongoc_uri_set_write_concern.html index d9c672533edc87133ca8a84327acb9559fd508c0..968dacbb5880c4bba69b912983e90aeadc7625f4 100644 --- a/libmongoc/1.23.1/mongoc_uri_set_write_concern.html +++ b/libmongoc/1.23.1/mongoc_uri_set_write_concern.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_t.html b/libmongoc/1.23.1/mongoc_uri_t.html index f5905c47a8312ced1d6c9505961e308381539352..0a3cb9a463ed80114a059d4f6f786f7ff98fcfed 100644 --- a/libmongoc/1.23.1/mongoc_uri_t.html +++ b/libmongoc/1.23.1/mongoc_uri_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_uri_unescape.html b/libmongoc/1.23.1/mongoc_uri_unescape.html index 56e66bc6f919debb95c14e4dc03f7f1110b3944b..9738637a4b705eb5cbe61ed63435fa02e7000cae 100644 --- a/libmongoc/1.23.1/mongoc_uri_unescape.html +++ b/libmongoc/1.23.1/mongoc_uri_unescape.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_version.html b/libmongoc/1.23.1/mongoc_version.html index 1fcfd98a16c96303610bf6cb106010c8bf395e1b..cdd48d82445d96853b82a29be900736fbd6755fa 100644 --- a/libmongoc/1.23.1/mongoc_version.html +++ b/libmongoc/1.23.1/mongoc_version.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_append.html b/libmongoc/1.23.1/mongoc_write_concern_append.html index 93a100a81734deb2c173d578ea531bb9abc020d3..b3e1929e90f39c1f34e20b37ed5f282d5699307a 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_append.html +++ b/libmongoc/1.23.1/mongoc_write_concern_append.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_copy.html b/libmongoc/1.23.1/mongoc_write_concern_copy.html index 7a304544ec1b690351696329b19ee16a951ed308..25028f266528e0b0b1540b5cbb6efedf0f25b76c 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_copy.html +++ b/libmongoc/1.23.1/mongoc_write_concern_copy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_destroy.html b/libmongoc/1.23.1/mongoc_write_concern_destroy.html index ac2afa2672f70f028a4297baad6fa73e0872dab7..499920ff9974c79704b25a7f3aa756b8bb0bbda6 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_destroy.html +++ b/libmongoc/1.23.1/mongoc_write_concern_destroy.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_get_fsync.html b/libmongoc/1.23.1/mongoc_write_concern_get_fsync.html index 309be2b5d457bda1622a63591a9650b83e2c32aa..fc36bfac6ddc5043f3fb13e8c53b7a4a0c300173 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_get_fsync.html +++ b/libmongoc/1.23.1/mongoc_write_concern_get_fsync.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_get_journal.html b/libmongoc/1.23.1/mongoc_write_concern_get_journal.html index 839dba07c9fb91076579d439a14a4c8d16842f9d..a49e85b78df2549df41d42eeb8890e82fc874fc9 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_get_journal.html +++ b/libmongoc/1.23.1/mongoc_write_concern_get_journal.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_get_w.html b/libmongoc/1.23.1/mongoc_write_concern_get_w.html index 5b285dd26f26062e850df1910b8adfdb5ff7a583..4f65b2c35efc038e13504f4fbd796ff087db446f 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_get_w.html +++ b/libmongoc/1.23.1/mongoc_write_concern_get_w.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_get_wmajority.html b/libmongoc/1.23.1/mongoc_write_concern_get_wmajority.html index f35b2b6500187bbd621614789c41ecca0b72d0c2..e13a65bb77ae54d80ae98199e173cc8690756cd4 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_get_wmajority.html +++ b/libmongoc/1.23.1/mongoc_write_concern_get_wmajority.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_get_wtag.html b/libmongoc/1.23.1/mongoc_write_concern_get_wtag.html index 19fad78afeaac4b695c039df19c75cbc6c2e64cf..d6bf518e6ed0c2fca5a808b5dd0f03fb5d5692cf 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_get_wtag.html +++ b/libmongoc/1.23.1/mongoc_write_concern_get_wtag.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout.html b/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout.html index df1e769e369db608f7d621935fccfc486140449e..7027bf2fa671ba39f73d32c6fc948f809b2b5119 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout.html +++ b/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout_int64.html b/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout_int64.html index 336ee1360a803395c252e1f4b31ef402033b60ad..f1943e5d385e7899b744432807d858970906ed1d 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout_int64.html +++ b/libmongoc/1.23.1/mongoc_write_concern_get_wtimeout_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_is_acknowledged.html b/libmongoc/1.23.1/mongoc_write_concern_is_acknowledged.html index 6356a65301f641bf0c6b07c1d6e2b448b54641f2..3152bf0ebeeffbac5f670630f4ede60aefec87c7 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_is_acknowledged.html +++ b/libmongoc/1.23.1/mongoc_write_concern_is_acknowledged.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_is_default.html b/libmongoc/1.23.1/mongoc_write_concern_is_default.html index 6e9fe860c547c53ea7b2bfdbdb4c635dafb104c8..bd69430b8556635f8dca229a4ca05e95f1dd096e 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_is_default.html +++ b/libmongoc/1.23.1/mongoc_write_concern_is_default.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_is_valid.html b/libmongoc/1.23.1/mongoc_write_concern_is_valid.html index 8c89af975160850944d9e29bf07b369a50c92f6d..b0261998cae0bb7aa61d32bd74e374553f3fd59d 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_is_valid.html +++ b/libmongoc/1.23.1/mongoc_write_concern_is_valid.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_journal_is_set.html b/libmongoc/1.23.1/mongoc_write_concern_journal_is_set.html index d09a2c387cb706f169b2cdeae03ec37600b874ce..247b36665a96ed86adcaf9b750c1dbee7457dd16 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_journal_is_set.html +++ b/libmongoc/1.23.1/mongoc_write_concern_journal_is_set.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_new.html b/libmongoc/1.23.1/mongoc_write_concern_new.html index 6013d1841ca9b44d5b9d70a90f3775995cb44ac7..7ce2ac2febcbcb5261020dab70b59bf70962aac3 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_new.html +++ b/libmongoc/1.23.1/mongoc_write_concern_new.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_set_fsync.html b/libmongoc/1.23.1/mongoc_write_concern_set_fsync.html index 5464f4adc5410338e58ba9ff91e9fecca94ad084..82e8533b9ff48a029600a74c695033505c71750f 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_set_fsync.html +++ b/libmongoc/1.23.1/mongoc_write_concern_set_fsync.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_set_journal.html b/libmongoc/1.23.1/mongoc_write_concern_set_journal.html index 86624a697807de3edf695c3cb94dd244434b31a6..c2bac45fff1181e8b4345ca21e9eded7718d1635 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_set_journal.html +++ b/libmongoc/1.23.1/mongoc_write_concern_set_journal.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_set_w.html b/libmongoc/1.23.1/mongoc_write_concern_set_w.html index 7dcf3efda8638f39f45f05da3474a10861dfac0d..8a2b9bf3cde0365dd2621203cc3cc4d982209e98 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_set_w.html +++ b/libmongoc/1.23.1/mongoc_write_concern_set_w.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_set_wmajority.html b/libmongoc/1.23.1/mongoc_write_concern_set_wmajority.html index ec4751461d32dcd99e12169a6dcf035dac42daea..df4fc86c5bc52898b9e2cfe530816a6113516e22 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_set_wmajority.html +++ b/libmongoc/1.23.1/mongoc_write_concern_set_wmajority.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_set_wtag.html b/libmongoc/1.23.1/mongoc_write_concern_set_wtag.html index abf423e83e18b313dbe9415bc2815bcc6ea11868..3b124ab7873f22769da3503d032f7ca09b729690 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_set_wtag.html +++ b/libmongoc/1.23.1/mongoc_write_concern_set_wtag.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout.html b/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout.html index 798ace71953b2bdde3b0709cf625ea04b760fcbc..222d84c999773fa6722ff55a0bef72831e07cb7a 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout.html +++ b/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout_int64.html b/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout_int64.html index ef8ad227088926b425657c07547b5101b5d09cfd..d63249efa1fe70d1e4be5a8d0fa1cccc79c27156 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout_int64.html +++ b/libmongoc/1.23.1/mongoc_write_concern_set_wtimeout_int64.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/mongoc_write_concern_t.html b/libmongoc/1.23.1/mongoc_write_concern_t.html index 5cf30874d9f15f9fca5757d182728b8384314bd5..c062bd324d5b022bb0cd19cda4c8fb284984b81a 100644 --- a/libmongoc/1.23.1/mongoc_write_concern_t.html +++ b/libmongoc/1.23.1/mongoc_write_concern_t.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/queryable-encryption.html b/libmongoc/1.23.1/queryable-encryption.html index 24855a0debb6192fb3c061ed0cc7d6ab6a9f6920..941f6d68da7d31ea488aa408c02fe0ac5a4d1013 100644 --- a/libmongoc/1.23.1/queryable-encryption.html +++ b/libmongoc/1.23.1/queryable-encryption.html @@ -36,6 +36,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/search.html b/libmongoc/1.23.1/search.html index 288c09ad7d2c9e3969969a17f0501c2130754407..3ecf39c2f38e22beaf8a59667fef206a62a895aa 100644 --- a/libmongoc/1.23.1/search.html +++ b/libmongoc/1.23.1/search.html @@ -43,6 +43,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/tutorial.html b/libmongoc/1.23.1/tutorial.html index 652e9fbe5bbd496b400bead3897bd0bc97248cd7..fe0a859cd2a1c3475789034a3f6b1217cd498dba 100644 --- a/libmongoc/1.23.1/tutorial.html +++ b/libmongoc/1.23.1/tutorial.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/using_client_side_encryption.html b/libmongoc/1.23.1/using_client_side_encryption.html index 88c6d1f2d5a043ceb5ed6e85b23ab3b1c3cb60a6..096db26ff4441b0f1713963d582a2fb9812ed01b 100644 --- a/libmongoc/1.23.1/using_client_side_encryption.html +++ b/libmongoc/1.23.1/using_client_side_encryption.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.1/visual-studio-guide.html b/libmongoc/1.23.1/visual-studio-guide.html index 86e7a0388c9cebbcb58f011eaaf82ccb489ba105..e74a75ade7efc444894b3d3e3a693a8450d21924 100644 --- a/libmongoc/1.23.1/visual-studio-guide.html +++ b/libmongoc/1.23.1/visual-studio-guide.html @@ -38,6 +38,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.23.2/.nojekyll b/libmongoc/1.23.2/.nojekyll new file mode 100644 index 0000000000000000000000000000000000000000..19102815663d23f8b75a47e7a01965dcdc96468c --- /dev/null +++ b/libmongoc/1.23.2/.nojekyll @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/libmongoc/1.23.2/CMakeLists.txt b/libmongoc/1.23.2/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..202daf7bc716d73f8e8ace2890c0af6889b1f658 --- /dev/null +++ b/libmongoc/1.23.2/CMakeLists.txt @@ -0,0 +1,39 @@ +file (GLOB_RECURSE _images_pngs + RELATIVE ${PROJECT_SOURCE_DIR}/doc/static + ${PROJECT_SOURCE_DIR}/doc/static/*.png +) +foreach (png IN LISTS _images_pngs) + extra_dist_generated (_images/${png}) +endforeach () + +# Additional generated static files +extra_dist_generated ( + .nojekyll + objects.inv + _static/ajax-loader.gif + _static/basic.css + _static/comment-bright.png + _static/comment-close.png + _static/comment.png + _static/doctools.js + _static/documentation_options.js + _static/down-pressed.png + _static/down.png + _static/file.png + _static/jquery.js + _static/minus.png + _static/plus.png + _static/pygments.css + _static/readable.css + _static/searchtools.js + _static/underscore.js + _static/up-pressed.png + _static/up.png + _static/websupport.js + search.html + searchindex.js +) + +set_dist_list (src_libmongoc_doc_html_DIST + CMakeLists.txt +) diff --git a/libmongoc/1.23.2/_images/msvc-add-dependencies-static.png b/libmongoc/1.23.2/_images/msvc-add-dependencies-static.png new file mode 100644 index 0000000000000000000000000000000000000000..b70984e5b94463f3292966ed74d2fb4fc7a92343 Binary files /dev/null and b/libmongoc/1.23.2/_images/msvc-add-dependencies-static.png differ diff --git a/libmongoc/1.23.2/_images/msvc-add-dependencies.png b/libmongoc/1.23.2/_images/msvc-add-dependencies.png new file mode 100644 index 0000000000000000000000000000000000000000..3fe2c7ae74660fb2096f6442aba0972d42f77aec Binary files /dev/null and b/libmongoc/1.23.2/_images/msvc-add-dependencies.png differ diff --git a/libmongoc/1.23.2/_images/msvc-add-include-directories.png b/libmongoc/1.23.2/_images/msvc-add-include-directories.png new file mode 100644 index 0000000000000000000000000000000000000000..afd181272db5fc0d6457868e0c4849628a17a12b Binary files /dev/null and b/libmongoc/1.23.2/_images/msvc-add-include-directories.png differ diff --git a/libmongoc/1.23.2/_images/msvc-create-project.png b/libmongoc/1.23.2/_images/msvc-create-project.png new file mode 100644 index 0000000000000000000000000000000000000000..8c7f749c65be2289f93a0e5ddbc0568fe9b982ab Binary files /dev/null and b/libmongoc/1.23.2/_images/msvc-create-project.png differ diff --git a/libmongoc/1.23.2/_images/msvc-set-path.png b/libmongoc/1.23.2/_images/msvc-set-path.png new file mode 100644 index 0000000000000000000000000000000000000000..c135b1a014a61186b2873a9caf80b972d2384c5e Binary files /dev/null and b/libmongoc/1.23.2/_images/msvc-set-path.png differ diff --git a/libmongoc/1.23.2/_images/msvc-switch-architecture.png b/libmongoc/1.23.2/_images/msvc-switch-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc52d1590a958d565d0a1f13aeb17f5bec62e4d Binary files /dev/null and b/libmongoc/1.23.2/_images/msvc-switch-architecture.png differ diff --git a/libmongoc/1.23.2/_static/ajax-loader.gif b/libmongoc/1.23.2/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 Binary files /dev/null and b/libmongoc/1.23.2/_static/ajax-loader.gif differ diff --git a/libmongoc/1.23.2/_static/basic.css b/libmongoc/1.23.2/_static/basic.css new file mode 100644 index 0000000000000000000000000000000000000000..19ced1057aebf39d3dac6f6a5d864491231a3e33 --- /dev/null +++ b/libmongoc/1.23.2/_static/basic.css @@ -0,0 +1,665 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/libmongoc/1.23.2/_static/comment-bright.png b/libmongoc/1.23.2/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e Binary files /dev/null and b/libmongoc/1.23.2/_static/comment-bright.png differ diff --git a/libmongoc/1.23.2/_static/comment-close.png b/libmongoc/1.23.2/_static/comment-close.png new file mode 100644 index 0000000000000000000000000000000000000000..4d91bcf57de866a901a89a2a68c0f36af1114841 Binary files /dev/null and b/libmongoc/1.23.2/_static/comment-close.png differ diff --git a/libmongoc/1.23.2/_static/comment.png b/libmongoc/1.23.2/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbc0cbd512bdeefcb1984c99d8e577efb77f006 Binary files /dev/null and b/libmongoc/1.23.2/_static/comment.png differ diff --git a/libmongoc/1.23.2/_static/doctools.js b/libmongoc/1.23.2/_static/doctools.js new file mode 100644 index 0000000000000000000000000000000000000000..d8928926bf24bb081d91a12f7b92e1b2d8b142b6 --- /dev/null +++ b/libmongoc/1.23.2/_static/doctools.js @@ -0,0 +1,313 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var bbox = span.getBBox(); + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + var parentOfText = node.parentNode.parentNode; + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/libmongoc/1.23.2/_static/documentation_options.js b/libmongoc/1.23.2/_static/documentation_options.js new file mode 100644 index 0000000000000000000000000000000000000000..bc12cb35cdbb5228850f6e53832f07a9febac8ed --- /dev/null +++ b/libmongoc/1.23.2/_static/documentation_options.js @@ -0,0 +1,9 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: false, + SOURCELINK_SUFFIX: '.txt' +}; \ No newline at end of file diff --git a/libmongoc/1.23.2/_static/down-pressed.png b/libmongoc/1.23.2/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 Binary files /dev/null and b/libmongoc/1.23.2/_static/down-pressed.png differ diff --git a/libmongoc/1.23.2/_static/down.png b/libmongoc/1.23.2/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 Binary files /dev/null and b/libmongoc/1.23.2/_static/down.png differ diff --git a/libmongoc/1.23.2/_static/file.png b/libmongoc/1.23.2/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 Binary files /dev/null and b/libmongoc/1.23.2/_static/file.png differ diff --git a/libmongoc/1.23.2/_static/jquery-3.2.1.js b/libmongoc/1.23.2/_static/jquery-3.2.1.js new file mode 100644 index 0000000000000000000000000000000000000000..d2d8ca4790e52b0537f3cbb7dcd766099b789583 --- /dev/null +++ b/libmongoc/1.23.2/_static/jquery-3.2.1.js @@ -0,0 +1,10253 @@ +/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.2.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Simple selector that can be filtered directly, removing non-Elements + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + // Complex selector, compare the two sets, removing non-Elements + qualifier = jQuery.filter( qualifier, elements ); + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( jQuery.isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
    " ], + col: [ 2, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( ">tbody", elem )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i, + val = 0; + + // If we already have the right measurement, avoid augmentation + if ( extra === ( isBorderBox ? "border" : "content" ) ) { + i = 4; + + // Otherwise initialize for horizontal or vertical properties + } else { + i = name === "width" ? 1 : 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with computed style + var valueIsBorderBox, + styles = getStyles( elem ), + val = curCSS( elem, name, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Fall back to offsetWidth/Height when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + if ( val === "auto" ) { + val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; + } + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnothtmlwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 13 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + Advanced Connections — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Advanced Connections

    +

    The following guide contains information specific to certain types of MongoDB configurations.

    +

    For an example of connecting to a simple standalone server, see the Tutorial. To establish a connection with authentication options enabled, see the Authentication page.

    +
    +

    Connecting to a Replica Set

    +

    Connecting to a replica set is much like connecting to a standalone MongoDB server. Simply specify the replica set name using the ?replicaSet=myreplset URI option.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +
    +   mongoc_init ();
    +
    +   /* Create our MongoDB Client */
    +   client = mongoc_client_new (
    +      "mongodb://host01:27017,host02:27017,host03:27017/?replicaSet=myreplset");
    +
    +   /* Do some work */
    +   /* TODO */
    +
    +   /* Clean up */
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +
    +

    Tip

    +

    Multiple hostnames can be specified in the MongoDB connection string URI, with a comma separating hosts in the seed list.

    +

    It is recommended to use a seed list of members of the replica set to allow the driver to connect to any node.

    +
    +
    +
    +

    Connecting to a Sharded Cluster

    +

    To connect to a sharded cluster, specify the mongos nodes the client should connect to. The C Driver will automatically detect that it has connected to a mongos sharding server.

    +

    If more than one hostname is specified, a seed list will be created to attempt failover between the mongos instances.

    +
    +

    Warning

    +

    Specifying the replicaSet parameter when connecting to a mongos sharding server is invalid.

    +
    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +
    +   mongoc_init ();
    +
    +   /* Create our MongoDB Client */
    +   client = mongoc_client_new ("mongodb://myshard01:27017/");
    +
    +   /* Do something with client ... */
    +
    +   /* Free the client */
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +
    +
    +

    Connecting to an IPv6 Address

    +

    The MongoDB C Driver will automatically resolve IPv6 addresses from host names. However, to specify an IPv6 address directly, wrap the address in [].

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://[::1]:27017");
    +
    +
    +
    +
    +

    Connecting with IPv4 and IPv6

    +

    If connecting to a hostname that has both IPv4 and IPv6 DNS records, the behavior follows RFC-6555. A connection to the IPv6 address is attempted first. If IPv6 fails, then a connection is attempted to the IPv4 address. If the connection attempt to IPv6 does not complete within 250ms, then IPv4 is tried in parallel. Whichever succeeds connection first cancels the other. The successful DNS result is cached for 10 minutes.

    +

    As a consequence, attempts to connect to a mongod only listening on IPv4 may be delayed if there are both A (IPv4) and AAAA (IPv6) DNS records associated with the host.

    +

    To avoid a delay, configure hostnames to match the MongoDB configuration. That is, only create an A record if the mongod is only listening on IPv4.

    +
    +
    +

    Connecting to a UNIX Domain Socket

    +

    On UNIX-like systems, the C Driver can connect directly to a MongoDB server using a UNIX domain socket. Pass the URL-encoded path to the socket, which must be suffixed with .sock. For example, to connect to a domain socket at /tmp/mongodb-27017.sock:

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://%2Ftmp%2Fmongodb-27017.sock");
    +
    +
    +

    Include username and password like so:

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://user:pass@%2Ftmp%2Fmongodb-27017.sock");
    +
    +
    +
    +
    +

    Connecting to a server over TLS

    +

    These are instructions for configuring TLS/SSL connections.

    +

    To run a server locally (on port 27017, for example):

    +
    $ mongod --port 27017 --tlsMode requireTLS --tlsCertificateKeyFile server.pem --tlsCAFile ca.pem
    +
    +
    +

    Add /?tls=true to the end of a client URI.

    +
    mongoc_client_t *client = NULL;
    +client = mongoc_client_new ("mongodb://localhost:27017/?tls=true");
    +
    +
    +

    MongoDB requires client certificates by default, unless the --tlsAllowConnectionsWithoutCertificates is provided. The C Driver can be configured to present a client certificate using the URI option tlsCertificateKeyFile, which may be referenced through the constant MONGOC_URI_TLSCERTIFICATEKEYFILE.

    +
    mongoc_client_t *client = NULL;
    +mongoc_uri_t *uri = mongoc_uri_new ("mongodb://localhost:27017/?tls=true");
    +mongoc_uri_set_option_as_utf8 (uri, MONGOC_URI_TLSCERTIFICATEKEYFILE, "client.pem");
    +
    +client = mongoc_client_new_from_uri (uri);
    +
    +
    +

    The client certificate provided by tlsCertificateKeyFile must be issued by one of the server trusted Certificate Authorities listed in --tlsCAFile, or issued by a CA in the native certificate store on the server when omitted.

    +

    See Configuring TLS for more information on the various TLS related options.

    +
    +
    +

    Compressing data to and from MongoDB

    +

    MongoDB 3.4 added Snappy compression support, zlib compression in 3.6, and zstd compression in 4.2. +To enable compression support the client must be configured with which compressors to use:

    +
    mongoc_client_t *client = NULL;
    +client = mongoc_client_new ("mongodb://localhost:27017/?compressors=snappy,zlib,zstd");
    +
    +
    +

    The compressors option specifies the priority order of compressors the +client wants to use. Messages are compressed if the client and server share any +compressors in common.

    +

    Note that the compressor used by the server might not be the same compressor as +the client used. For example, if the client uses the connection string +compressors=zlib,snappy the client will use zlib compression to send +data (if possible), but the server might still reply using snappy, +depending on how the server was configured.

    +

    The driver must be built with zlib and/or snappy and/or zstd support to enable compression +support, any unknown (or not compiled in) compressor value will be ignored. Note: to build with zstd requires cmake 3.12 or higher.

    +
    +
    +

    Additional Connection Options

    +

    The full list of connection options can be found in the mongoc_uri_t docs.

    +

    Certain socket/connection related options are not configurable:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Option

    Description

    Value

    SO_KEEPALIVE

    TCP Keep Alive

    Enabled

    TCP_KEEPIDLE

    How long a connection needs to remain idle before TCP +starts sending keepalive probes

    120 seconds

    TCP_KEEPINTVL

    The time in seconds between TCP probes

    10 seconds

    TCP_KEEPCNT

    How many probes to send, without acknowledgement, +before dropping the connection

    9 probes

    TCP_NODELAY

    Send packets as soon as possible or buffer small +packets (Nagle algorithm)

    Enabled (no buffering)

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/aggregate.html b/libmongoc/1.23.2/aggregate.html new file mode 100644 index 0000000000000000000000000000000000000000..2c58d43a6d283fab69adb1527af6005829b9b750 --- /dev/null +++ b/libmongoc/1.23.2/aggregate.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + Aggregation Framework Examples — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Aggregation Framework Examples

    +

    This document provides a number of practical examples that display the capabilities of the aggregation framework.

    +

    The Aggregations using the Zip Codes Data Set examples uses a publicly available data set of all zipcodes and populations in the United States. These data are available at: zips.json.

    +
    +

    Requirements

    +

    Let’s check if everything is installed.

    +

    Use the following command to load zips.json data set into mongod instance:

    +
    $ mongoimport --drop -d test -c zipcodes zips.json
    +
    +
    +

    Let’s use the MongoDB shell to verify that everything was imported successfully.

    +
    $ mongo test
    +connecting to: test
    +> db.zipcodes.count()
    +29467
    +> db.zipcodes.findOne()
    +{
    +      "_id" : "35004",
    +      "city" : "ACMAR",
    +      "loc" : [
    +              -86.51557,
    +              33.584132
    +      ],
    +      "pop" : 6055,
    +      "state" : "AL"
    +}
    +
    +
    +
    +
    +

    Aggregations using the Zip Codes Data Set

    +

    Each document in this collection has the following form:

    +
    {
    +  "_id" : "35004",
    +  "city" : "Acmar",
    +  "state" : "AL",
    +  "pop" : 6055,
    +  "loc" : [-86.51557, 33.584132]
    +}
    +
    +
    +

    In these documents:

    +
      +
    • The _id field holds the zipcode as a string.

    • +
    • The city field holds the city name.

    • +
    • The state field holds the two letter state abbreviation.

    • +
    • The pop field holds the population.

    • +
    • The loc field holds the location as a [latitude, longitude] array.

    • +
    +
    +
    +

    States with Populations Over 10 Million

    +

    To get all states with a population greater than 10 million, use the following aggregation pipeline:

    +
    +
    aggregation1.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_pipeline (mongoc_collection_t *collection)
    +{
    +   mongoc_cursor_t *cursor;
    +   bson_error_t error;
    +   const bson_t *doc;
    +   bson_t *pipeline;
    +   char *str;
    +
    +   pipeline = BCON_NEW ("pipeline",
    +                        "[",
    +                        "{",
    +                        "$group",
    +                        "{",
    +                        "_id",
    +                        "$state",
    +                        "total_pop",
    +                        "{",
    +                        "$sum",
    +                        "$pop",
    +                        "}",
    +                        "}",
    +                        "}",
    +                        "{",
    +                        "$match",
    +                        "{",
    +                        "total_pop",
    +                        "{",
    +                        "$gte",
    +                        BCON_INT32 (10000000),
    +                        "}",
    +                        "}",
    +                        "}",
    +                        "]");
    +
    +   cursor = mongoc_collection_aggregate (
    +      collection, MONGOC_QUERY_NONE, pipeline, NULL, NULL);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "Cursor Failure: %s\n", error.message);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   bson_destroy (pipeline);
    +}
    +
    +int
    +main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   const char *uri_string =
    +      "mongodb://localhost:27017/?appname=aggregation-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "test", "zipcodes");
    +
    +   print_pipeline (collection);
    +
    +   mongoc_uri_destroy (uri);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    You should see a result like the following:

    +
    { "_id" : "PA", "total_pop" : 11881643 }
    +{ "_id" : "OH", "total_pop" : 10847115 }
    +{ "_id" : "NY", "total_pop" : 17990455 }
    +{ "_id" : "FL", "total_pop" : 12937284 }
    +{ "_id" : "TX", "total_pop" : 16986510 }
    +{ "_id" : "IL", "total_pop" : 11430472 }
    +{ "_id" : "CA", "total_pop" : 29760021 }
    +
    +
    +

    The above aggregation pipeline is build from two pipeline operators: $group and $match.

    +

    The $group pipeline operator requires _id field where we specify grouping; remaining fields specify how to generate composite value and must use one of the group aggregation functions: $addToSet, $first, $last, $max, $min, $avg, $push, $sum. The $match pipeline operator syntax is the same as the read operation query syntax.

    +

    The $group process reads all documents and for each state it creates a separate document, for example:

    +
    { "_id" : "WA", "total_pop" : 4866692 }
    +
    +
    +

    The total_pop field uses the $sum aggregation function to sum the values of all pop fields in the source documents.

    +

    Documents created by $group are piped to the $match pipeline operator. It returns the documents with the value of total_pop field greater than or equal to 10 million.

    +
    +
    +

    Average City Population by State

    +

    To get the first three states with the greatest average population per city, use the following aggregation:

    +
    pipeline = BCON_NEW ("pipeline", "[",
    +   "{", "$group", "{", "_id", "{", "state", "$state", "city", "$city", "}", "pop", "{", "$sum", "$pop", "}", "}", "}",
    +   "{", "$group", "{", "_id", "$_id.state", "avg_city_pop", "{", "$avg", "$pop", "}", "}", "}",
    +   "{", "$sort", "{", "avg_city_pop", BCON_INT32 (-1), "}", "}",
    +   "{", "$limit", BCON_INT32 (3) "}",
    +"]");
    +
    +
    +

    This aggregate pipeline produces:

    +
    { "_id" : "DC", "avg_city_pop" : 303450.0 }
    +{ "_id" : "FL", "avg_city_pop" : 27942.29805615551 }
    +{ "_id" : "CA", "avg_city_pop" : 27735.341099720412 }
    +
    +
    +

    The above aggregation pipeline is build from three pipeline operators: $group, $sort and $limit.

    +

    The first $group operator creates the following documents:

    +
    { "_id" : { "state" : "WY", "city" : "Smoot" }, "pop" : 414 }
    +
    +
    +

    Note, that the $group operator can’t use nested documents except the _id field.

    +

    The second $group uses these documents to create the following documents:

    +
    { "_id" : "FL", "avg_city_pop" : 27942.29805615551 }
    +
    +
    +

    These documents are sorted by the avg_city_pop field in descending order. Finally, the $limit pipeline operator returns the first 3 documents from the sorted set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/api.html b/libmongoc/1.23.2/api.html new file mode 100644 index 0000000000000000000000000000000000000000..29d04be17b82b789eae30f6725dc91563b03bf1c --- /dev/null +++ b/libmongoc/1.23.2/api.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + API Reference — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/application-performance-monitoring.html b/libmongoc/1.23.2/application-performance-monitoring.html new file mode 100644 index 0000000000000000000000000000000000000000..7440d171d6894df6db078adfab1db847491669ef --- /dev/null +++ b/libmongoc/1.23.2/application-performance-monitoring.html @@ -0,0 +1,708 @@ + + + + + + + + + + + + + + Application Performance Monitoring (APM) — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Application Performance Monitoring (APM)

    +

    The MongoDB C Driver allows you to monitor all the MongoDB operations the driver executes. This event-notification system conforms to two MongoDB driver specs:

    + +

    To receive notifications, create a mongoc_apm_callbacks_t with mongoc_apm_callbacks_new(), set callbacks on it, then pass it to mongoc_client_set_apm_callbacks() or mongoc_client_pool_set_apm_callbacks().

    +
    +

    Command-Monitoring Example

    +
    +
    example-command-monitoring.c
    +
    /* gcc example-command-monitoring.c -o example-command-monitoring \
    + *     $(pkg-config --cflags --libs libmongoc-1.0) */
    +
    +/* ./example-command-monitoring [CONNECTION_STRING] */
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +
    +typedef struct {
    +   int started;
    +   int succeeded;
    +   int failed;
    +} stats_t;
    +
    +
    +void
    +command_started (const mongoc_apm_command_started_t *event)
    +{
    +   char *s;
    +
    +   s = bson_as_relaxed_extended_json (
    +      mongoc_apm_command_started_get_command (event), NULL);
    +   printf ("Command %s started on %s:\n%s\n\n",
    +           mongoc_apm_command_started_get_command_name (event),
    +           mongoc_apm_command_started_get_host (event)->host,
    +           s);
    +
    +   ((stats_t *) mongoc_apm_command_started_get_context (event))->started++;
    +
    +   bson_free (s);
    +}
    +
    +
    +void
    +command_succeeded (const mongoc_apm_command_succeeded_t *event)
    +{
    +   char *s;
    +
    +   s = bson_as_relaxed_extended_json (
    +      mongoc_apm_command_succeeded_get_reply (event), NULL);
    +   printf ("Command %s succeeded:\n%s\n\n",
    +           mongoc_apm_command_succeeded_get_command_name (event),
    +           s);
    +
    +   ((stats_t *) mongoc_apm_command_succeeded_get_context (event))->succeeded++;
    +
    +   bson_free (s);
    +}
    +
    +
    +void
    +command_failed (const mongoc_apm_command_failed_t *event)
    +{
    +   bson_error_t error;
    +
    +   mongoc_apm_command_failed_get_error (event, &error);
    +   printf ("Command %s failed:\n\"%s\"\n\n",
    +           mongoc_apm_command_failed_get_command_name (event),
    +           error.message);
    +
    +   ((stats_t *) mongoc_apm_command_failed_get_context (event))->failed++;
    +}
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_apm_callbacks_t *callbacks;
    +   stats_t stats = {0};
    +   mongoc_collection_t *collection;
    +   bson_error_t error;
    +   const char *uri_string =
    +      "mongodb://127.0.0.1/?appname=cmd-monitoring-example";
    +   mongoc_uri_t *uri;
    +   const char *collection_name = "test";
    +   bson_t *docs[2];
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   callbacks = mongoc_apm_callbacks_new ();
    +   mongoc_apm_set_command_started_cb (callbacks, command_started);
    +   mongoc_apm_set_command_succeeded_cb (callbacks, command_succeeded);
    +   mongoc_apm_set_command_failed_cb (callbacks, command_failed);
    +   mongoc_client_set_apm_callbacks (
    +      client, callbacks, (void *) &stats /* context pointer */);
    +
    +   collection = mongoc_client_get_collection (client, "test", collection_name);
    +   mongoc_collection_drop (collection, NULL);
    +
    +   docs[0] = BCON_NEW ("_id", BCON_INT32 (0));
    +   docs[1] = BCON_NEW ("_id", BCON_INT32 (1));
    +   mongoc_collection_insert_many (
    +      collection, (const bson_t **) docs, 2, NULL, NULL, NULL);
    +
    +   /* duplicate key error on the second insert */
    +   mongoc_collection_insert_one (collection, docs[0], NULL, NULL, NULL);
    +
    +   mongoc_collection_destroy (collection);
    +   mongoc_apm_callbacks_destroy (callbacks);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   printf ("started: %d\nsucceeded: %d\nfailed: %d\n",
    +           stats.started,
    +           stats.succeeded,
    +           stats.failed);
    +
    +   bson_destroy (docs[0]);
    +   bson_destroy (docs[1]);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    This example program prints:

    +
    Command drop started on 127.0.0.1:
    +{ "drop" : "test" }
    +
    +Command drop succeeded:
    +{ "ns" : "test.test", "nIndexesWas" : 1, "ok" : 1.0 }
    +
    +Command insert started on 127.0.0.1:
    +{
    +  "insert" : "test",
    +  "ordered" : true,
    +  "documents" : [
    +    { "_id" : 0 }, { "_id" : 1 }
    +  ]
    +}
    +
    +Command insert succeeded:
    +{ "n" : 2, "ok" : 1.0 }
    +
    +Command insert started on 127.0.0.1:
    +{
    +  "insert" : "test",
    +  "ordered" : true,
    +  "documents" : [
    +    { "_id" : 0 }
    +  ]
    +}
    +
    +Command insert succeeded:
    +{
    +  "n" : 0,
    +  "writeErrors" : [
    +    { "index" : 0, "code" : 11000, "errmsg" : "duplicate key" }
    +  ],
    +  "ok" : 1.0
    +}
    +
    +started: 3
    +succeeded: 3
    +failed: 0
    +
    +
    +

    The output has been edited and formatted for clarity. Depending on your server configuration, messages may include metadata like database name, logical session ids, or cluster times that are not shown here.

    +

    The final “insert” command is considered successful, despite the writeError, because the server replied to the overall command with "ok": 1.

    +
    +
    +

    SDAM Monitoring Example

    +
    +
    example-sdam-monitoring.c
    +
    /* gcc example-sdam-monitoring.c -o example-sdam-monitoring \
    + *     $(pkg-config --cflags --libs libmongoc-1.0) */
    +
    +/* ./example-sdam-monitoring [CONNECTION_STRING] */
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +
    +typedef struct {
    +   int server_changed_events;
    +   int server_opening_events;
    +   int server_closed_events;
    +   int topology_changed_events;
    +   int topology_opening_events;
    +   int topology_closed_events;
    +   int heartbeat_started_events;
    +   int heartbeat_succeeded_events;
    +   int heartbeat_failed_events;
    +} stats_t;
    +
    +
    +static void
    +server_changed (const mongoc_apm_server_changed_t *event)
    +{
    +   stats_t *context;
    +   const mongoc_server_description_t *prev_sd, *new_sd;
    +
    +   context = (stats_t *) mongoc_apm_server_changed_get_context (event);
    +   context->server_changed_events++;
    +
    +   prev_sd = mongoc_apm_server_changed_get_previous_description (event);
    +   new_sd = mongoc_apm_server_changed_get_new_description (event);
    +
    +   printf ("server changed: %s %s -> %s\n",
    +           mongoc_apm_server_changed_get_host (event)->host_and_port,
    +           mongoc_server_description_type (prev_sd),
    +           mongoc_server_description_type (new_sd));
    +}
    +
    +
    +static void
    +server_opening (const mongoc_apm_server_opening_t *event)
    +{
    +   stats_t *context;
    +
    +   context = (stats_t *) mongoc_apm_server_opening_get_context (event);
    +   context->server_opening_events++;
    +
    +   printf ("server opening: %s\n",
    +           mongoc_apm_server_opening_get_host (event)->host_and_port);
    +}
    +
    +
    +static void
    +server_closed (const mongoc_apm_server_closed_t *event)
    +{
    +   stats_t *context;
    +
    +   context = (stats_t *) mongoc_apm_server_closed_get_context (event);
    +   context->server_closed_events++;
    +
    +   printf ("server closed: %s\n",
    +           mongoc_apm_server_closed_get_host (event)->host_and_port);
    +}
    +
    +
    +static void
    +topology_changed (const mongoc_apm_topology_changed_t *event)
    +{
    +   stats_t *context;
    +   const mongoc_topology_description_t *prev_td;
    +   const mongoc_topology_description_t *new_td;
    +   mongoc_server_description_t **prev_sds;
    +   size_t n_prev_sds;
    +   mongoc_server_description_t **new_sds;
    +   size_t n_new_sds;
    +   size_t i;
    +   mongoc_read_prefs_t *prefs;
    +
    +   context = (stats_t *) mongoc_apm_topology_changed_get_context (event);
    +   context->topology_changed_events++;
    +
    +   prev_td = mongoc_apm_topology_changed_get_previous_description (event);
    +   prev_sds = mongoc_topology_description_get_servers (prev_td, &n_prev_sds);
    +   new_td = mongoc_apm_topology_changed_get_new_description (event);
    +   new_sds = mongoc_topology_description_get_servers (new_td, &n_new_sds);
    +
    +   printf ("topology changed: %s -> %s\n",
    +           mongoc_topology_description_type (prev_td),
    +           mongoc_topology_description_type (new_td));
    +
    +   if (n_prev_sds) {
    +      printf ("  previous servers:\n");
    +      for (i = 0; i < n_prev_sds; i++) {
    +         printf ("      %s %s\n",
    +                 mongoc_server_description_type (prev_sds[i]),
    +                 mongoc_server_description_host (prev_sds[i])->host_and_port);
    +      }
    +   }
    +
    +   if (n_new_sds) {
    +      printf ("  new servers:\n");
    +      for (i = 0; i < n_new_sds; i++) {
    +         printf ("      %s %s\n",
    +                 mongoc_server_description_type (new_sds[i]),
    +                 mongoc_server_description_host (new_sds[i])->host_and_port);
    +      }
    +   }
    +
    +   prefs = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
    +
    +   /* it is safe, and unfortunately necessary, to cast away const here */
    +   if (mongoc_topology_description_has_readable_server (
    +          (mongoc_topology_description_t *) new_td, prefs)) {
    +      printf ("  secondary AVAILABLE\n");
    +   } else {
    +      printf ("  secondary UNAVAILABLE\n");
    +   }
    +
    +   if (mongoc_topology_description_has_writable_server (
    +          (mongoc_topology_description_t *) new_td)) {
    +      printf ("  primary AVAILABLE\n");
    +   } else {
    +      printf ("  primary UNAVAILABLE\n");
    +   }
    +
    +   mongoc_read_prefs_destroy (prefs);
    +   mongoc_server_descriptions_destroy_all (prev_sds, n_prev_sds);
    +   mongoc_server_descriptions_destroy_all (new_sds, n_new_sds);
    +}
    +
    +
    +static void
    +topology_opening (const mongoc_apm_topology_opening_t *event)
    +{
    +   stats_t *context;
    +
    +   context = (stats_t *) mongoc_apm_topology_opening_get_context (event);
    +   context->topology_opening_events++;
    +
    +   printf ("topology opening\n");
    +}
    +
    +
    +static void
    +topology_closed (const mongoc_apm_topology_closed_t *event)
    +{
    +   stats_t *context;
    +
    +   context = (stats_t *) mongoc_apm_topology_closed_get_context (event);
    +   context->topology_closed_events++;
    +
    +   printf ("topology closed\n");
    +}
    +
    +
    +static void
    +server_heartbeat_started (const mongoc_apm_server_heartbeat_started_t *event)
    +{
    +   stats_t *context;
    +
    +   context =
    +      (stats_t *) mongoc_apm_server_heartbeat_started_get_context (event);
    +   context->heartbeat_started_events++;
    +
    +   printf ("%s heartbeat started\n",
    +           mongoc_apm_server_heartbeat_started_get_host (event)->host_and_port);
    +}
    +
    +
    +static void
    +server_heartbeat_succeeded (
    +   const mongoc_apm_server_heartbeat_succeeded_t *event)
    +{
    +   stats_t *context;
    +   char *reply;
    +
    +   context =
    +      (stats_t *) mongoc_apm_server_heartbeat_succeeded_get_context (event);
    +   context->heartbeat_succeeded_events++;
    +
    +   reply = bson_as_canonical_extended_json (
    +      mongoc_apm_server_heartbeat_succeeded_get_reply (event), NULL);
    +
    +   printf (
    +      "%s heartbeat succeeded: %s\n",
    +      mongoc_apm_server_heartbeat_succeeded_get_host (event)->host_and_port,
    +      reply);
    +
    +   bson_free (reply);
    +}
    +
    +
    +static void
    +server_heartbeat_failed (const mongoc_apm_server_heartbeat_failed_t *event)
    +{
    +   stats_t *context;
    +   bson_error_t error;
    +
    +   context = (stats_t *) mongoc_apm_server_heartbeat_failed_get_context (event);
    +   context->heartbeat_failed_events++;
    +   mongoc_apm_server_heartbeat_failed_get_error (event, &error);
    +
    +   printf ("%s heartbeat failed: %s\n",
    +           mongoc_apm_server_heartbeat_failed_get_host (event)->host_and_port,
    +           error.message);
    +}
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_apm_callbacks_t *cbs;
    +   stats_t stats = {0};
    +   const char *uri_string =
    +      "mongodb://127.0.0.1/?appname=sdam-monitoring-example";
    +   mongoc_uri_t *uri;
    +   bson_t cmd = BSON_INITIALIZER;
    +   bson_t reply;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   cbs = mongoc_apm_callbacks_new ();
    +   mongoc_apm_set_server_changed_cb (cbs, server_changed);
    +   mongoc_apm_set_server_opening_cb (cbs, server_opening);
    +   mongoc_apm_set_server_closed_cb (cbs, server_closed);
    +   mongoc_apm_set_topology_changed_cb (cbs, topology_changed);
    +   mongoc_apm_set_topology_opening_cb (cbs, topology_opening);
    +   mongoc_apm_set_topology_closed_cb (cbs, topology_closed);
    +   mongoc_apm_set_server_heartbeat_started_cb (cbs, server_heartbeat_started);
    +   mongoc_apm_set_server_heartbeat_succeeded_cb (cbs,
    +                                                 server_heartbeat_succeeded);
    +   mongoc_apm_set_server_heartbeat_failed_cb (cbs, server_heartbeat_failed);
    +   mongoc_client_set_apm_callbacks (
    +      client, cbs, (void *) &stats /* context pointer */);
    +
    +   /* the driver connects on demand to perform first operation */
    +   BSON_APPEND_INT32 (&cmd, "buildinfo", 1);
    +   mongoc_client_command_simple (client, "admin", &cmd, NULL, &reply, &error);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   printf ("Events:\n"
    +           "   server changed: %d\n"
    +           "   server opening: %d\n"
    +           "   server closed: %d\n"
    +           "   topology changed: %d\n"
    +           "   topology opening: %d\n"
    +           "   topology closed: %d\n"
    +           "   heartbeat started: %d\n"
    +           "   heartbeat succeeded: %d\n"
    +           "   heartbeat failed: %d\n",
    +           stats.server_changed_events,
    +           stats.server_opening_events,
    +           stats.server_closed_events,
    +           stats.topology_changed_events,
    +           stats.topology_opening_events,
    +           stats.topology_closed_events,
    +           stats.heartbeat_started_events,
    +           stats.heartbeat_succeeded_events,
    +           stats.heartbeat_failed_events);
    +
    +   bson_destroy (&cmd);
    +   bson_destroy (&reply);
    +   mongoc_apm_callbacks_destroy (cbs);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Start a 3-node replica set on localhost with set name “rs” and start the program:

    +
    ./example-sdam-monitoring "mongodb://localhost:27017,localhost:27018/?replicaSet=rs"
    +
    +
    +

    This example program prints something like:

    +
    topology opening
    +topology changed: Unknown -> ReplicaSetNoPrimary
    +  secondary UNAVAILABLE
    +  primary UNAVAILABLE
    +server opening: localhost:27017
    +server opening: localhost:27018
    +localhost:27017 heartbeat started
    +localhost:27018 heartbeat started
    +localhost:27017 heartbeat succeeded: { ... reply ... }
    +server changed: localhost:27017 Unknown -> RSPrimary
    +server opening: localhost:27019
    +topology changed: ReplicaSetNoPrimary -> ReplicaSetWithPrimary
    +  new servers:
    +      RSPrimary localhost:27017
    +  secondary UNAVAILABLE
    +  primary AVAILABLE
    +localhost:27019 heartbeat started
    +localhost:27018 heartbeat succeeded: { ... reply ... }
    +server changed: localhost:27018 Unknown -> RSSecondary
    +topology changed: ReplicaSetWithPrimary -> ReplicaSetWithPrimary
    +  previous servers:
    +      RSPrimary localhost:27017
    +  new servers:
    +      RSPrimary localhost:27017
    +      RSSecondary localhost:27018
    +  secondary AVAILABLE
    +  primary AVAILABLE
    +localhost:27019 heartbeat succeeded: { ... reply ... }
    +server changed: localhost:27019 Unknown -> RSSecondary
    +topology changed: ReplicaSetWithPrimary -> ReplicaSetWithPrimary
    +  previous servers:
    +      RSPrimary localhost:27017
    +      RSSecondary localhost:27018
    +  new servers:
    +      RSPrimary localhost:27017
    +      RSSecondary localhost:27018
    +      RSSecondary localhost:27019
    +  secondary AVAILABLE
    +  primary AVAILABLE
    +topology closed
    +
    +Events:
    +   server changed: 3
    +   server opening: 3
    +   server closed: 0
    +   topology changed: 4
    +   topology opening: 1
    +   topology closed: 1
    +   heartbeat started: 3
    +   heartbeat succeeded: 3
    +   heartbeat failed: 0
    +
    +
    +

    The driver connects to the mongods on ports 27017 and 27018, which were specified in the URI, and determines which is primary. It also discovers the third member, “localhost:27019”, and adds it to the topology.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/authentication.html b/libmongoc/1.23.2/authentication.html new file mode 100644 index 0000000000000000000000000000000000000000..b5ef83b95e02f1799a8a11f10a92c056cbb7cde0 --- /dev/null +++ b/libmongoc/1.23.2/authentication.html @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + Authentication — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Authentication

    +

    This guide covers the use of authentication options with the MongoDB C Driver. Ensure that the MongoDB server is also properly configured for authentication before making a connection. For more information, see the MongoDB security documentation.

    +

    The MongoDB C driver supports several authentication mechanisms through the use of MongoDB connection URIs.

    +

    By default, if a username and password are provided as part of the connection string (and an optional authentication database), they are used to connect via the default authentication mechanism of the server.

    +

    To select a specific authentication mechanism other than the default, see the list of supported mechanism below.

    +
    mongoc_client_t *client = mongoc_client_new ("mongodb://user:password@localhost/?authSource=mydb");
    +
    +
    +

    Currently supported values for the authMechanism connection string option are:

    + +
    +

    Basic Authentication (SCRAM-SHA-256)

    +

    MongoDB 4.0 introduces support for authenticating using the SCRAM protocol +with the more secure SHA-256 hash described in RFC 7677. Using this authentication mechanism +means that the password is never actually sent over the wire when +authenticating, but rather a computed proof that the client password is the +same as the password the server knows. In MongoDB 4.0, the C driver can +determine the correct default authentication mechanism for users with stored +SCRAM-SHA-1 and SCRAM-SHA-256 credentials:

    +
    mongoc_client_t *client =  mongoc_client_new ("mongodb://user:password@localhost/?authSource=mydb");
    +/* the correct authMechanism is negotiated between the driver and server. */
    +
    +
    +

    Alternatively, SCRAM-SHA-256 can be explicitly specified as an authMechanism.

    +
    mongoc_client_t *client =  mongoc_client_new ("mongodb://user:password@localhost/?authMechanism=SCRAM-SHA-256&authSource=mydb");
    +
    +
    +

    Passwords for SCRAM-SHA-256 undergo the preprocessing step known as SASLPrep +specified in RFC 4013. SASLPrep will +only be performed for passwords containing non-ASCII characters. SASLPrep +requires libicu. If libicu is not available, attempting to authenticate over +SCRAM-SHA-256 with non-ASCII passwords will result in error.

    +

    Usernames never undergo SASLPrep.

    +

    By default, when building the C driver libicu is linked if available. This can +be changed with the ENABLE_ICU cmake option. To specify an installation +path of libicu, specify ICU_ROOT as a cmake option. See the +FindICU documentation +for more information.

    +
    +
    +

    Basic Authentication (SCRAM-SHA-1)

    +

    The default authentication mechanism before MongoDB 4.0 is SCRAM-SHA-1 (RFC 5802). Using this authentication mechanism means that the password is never actually sent over the wire when authenticating, but rather a computed proof that the client password is the same as the password the server knows.

    +
    mongoc_client_t *client = mongoc_client_new ("mongodb://user:password@localhost/?authMechanism=SCRAM-SHA-1&authSource=mydb");
    +
    +
    +
    +

    Note

    +

    SCRAM-SHA-1 authenticates against the admin database by default. If the user is created in another database, then specifying the authSource is required.

    +
    +
    +
    +

    Legacy Authentication (MONGODB-CR)

    +

    The MONGODB-CR authMechanism is deprecated and will no longer function in MongoDB 4.0. Instead, specify no authMechanism and the driver +will use an authentication mechanism compatible with your server.

    +
    +
    +

    GSSAPI (Kerberos) Authentication

    +
    +

    Note

    +

    On UNIX-like environments, Kerberos support requires compiling the driver against cyrus-sasl.

    +

    On Windows, Kerberos support requires compiling the driver against Windows Native SSPI or cyrus-sasl. The default configuration of the driver will use Windows Native SSPI.

    +

    To modify the default configuration, use the cmake option ENABLE_SASL.

    +
    +

    GSSAPI (Kerberos) authentication is available in the Enterprise Edition of MongoDB. To authenticate using GSSAPI, the MongoDB C driver must be installed with SASL support.

    +

    On UNIX-like environments, run the kinit command before using the following authentication methods:

    +
    $ kinit mongodbuser@EXAMPLE.COM
    +mongodbuser@EXAMPLE.COM's Password:
    +$ klistCredentials cache: FILE:/tmp/krb5cc_1000
    +        Principal: mongodbuser@EXAMPLE.COM
    +
    +  Issued                Expires               Principal
    +Feb  9 13:48:51 2013  Feb  9 23:48:51 2013  krbtgt/EXAMPLE.COM@EXAMPLE.COM
    +
    +
    +

    Now authenticate using the MongoDB URI. GSSAPI authenticates against the $external virtual database, so a database does not need to be specified in the URI. Note that the Kerberos principal must be URL-encoded:

    +
    mongoc_client_t *client;
    +
    +client = mongoc_client_new ("mongodb://mongodbuser%40EXAMPLE.COM@mongo-server.example.com/?authMechanism=GSSAPI");
    +
    +
    +
    +

    Note

    +

    GSSAPI authenticates against the $external database, so specifying the authSource database is not required.

    +
    +

    The driver supports these GSSAPI properties:

    +
      +
    • CANONICALIZE_HOST_NAME: This might be required with Cyrus-SASL when the hosts report different hostnames than what is used in the Kerberos database. The default is “false”.

    • +
    • SERVICE_NAME: Use a different service name than the default, “mongodb”.

    • +
    +

    Set properties in the URL:

    +
    mongoc_client_t *client;
    +
    +client = mongoc_client_new ("mongodb://mongodbuser%40EXAMPLE.COM@mongo-server.example.com/?authMechanism=GSSAPI&"
    +                            "authMechanismProperties=SERVICE_NAME:other,CANONICALIZE_HOST_NAME:true");
    +
    +
    +

    If you encounter errors such as Invalid net address, check if the application is behind a NAT (Network Address Translation) firewall. If so, create a ticket that uses forwardable and addressless Kerberos tickets. This can be done by passing -f -A to kinit.

    +
    $ kinit -f -A mongodbuser@EXAMPLE.COM
    +
    +
    +
    +
    +

    SASL Plain Authentication

    +
    +

    Note

    +

    The MongoDB C Driver must be compiled with SASL support in order to use SASL PLAIN authentication.

    +
    +

    MongoDB Enterprise Edition supports the SASL PLAIN authentication mechanism, initially intended for delegating authentication to an LDAP server. Using the SASL PLAIN mechanism is very similar to the challenge response mechanism with usernames and passwords. This authentication mechanism uses the $external virtual database for LDAP support:

    +
    +

    Note

    +

    SASL PLAIN is a clear-text authentication mechanism. It is strongly recommended to connect to MongoDB using TLS with certificate validation when using the PLAIN mechanism.

    +
    +
    mongoc_client_t *client;
    +
    +client = mongoc_client_new ("mongodb://user:password@example.com/?authMechanism=PLAIN");
    +
    +
    +

    PLAIN authenticates against the $external database, so specifying the authSource database is not required.

    +
    +
    +

    X.509 Certificate Authentication

    +
    +

    Note

    +

    The MongoDB C Driver must be compiled with TLS support for X.509 authentication support. Once this is done, start a server with the following options:

    +
    $ mongod --tlsMode requireTLS --tlsCertificateKeyFile server.pem --tlsCAFile ca.pem
    +
    +
    +
    +

    The MONGODB-X509 mechanism authenticates a username derived from the distinguished subject name of the X.509 certificate presented by the driver during TLS negotiation. This authentication method requires the use of TLS connections with certificate validation.

    +
    mongoc_client_t *client;
    +mongoc_ssl_opt_t ssl_opts = { 0 };
    +
    +ssl_opts.pem_file = "mycert.pem";
    +ssl_opts.pem_pwd = "mycertpassword";
    +ssl_opts.ca_file = "myca.pem";
    +ssl_opts.ca_dir = "trust_dir";
    +ssl_opts.weak_cert_validation = false;
    +
    +client = mongoc_client_new ("mongodb://x509_derived_username@localhost/?authMechanism=MONGODB-X509");
    +mongoc_client_set_ssl_opts (client, &ssl_opts);
    +
    +
    +

    MONGODB-X509 authenticates against the $external database, so specifying the authSource database is not required. For more information on the x509_derived_username, see the MongoDB server x.509 tutorial.

    +
    +

    Note

    +

    The MongoDB C Driver will attempt to determine the x509 derived username when none is provided, and as of MongoDB 3.4 providing the username is not required at all.

    +
    +
    +
    +

    Authentication via AWS IAM

    +

    The MONGODB-AWS mechanism authenticates to MongoDB servers with credentials provided by AWS Identity and Access Management (IAM).

    +

    To authenticate, create a user with an associated Amazon Resource Name (ARN) on the $external database, and specify the MONGODB-AWS authMechanism in the URI.

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://localhost/?authMechanism=MONGODB-AWS");
    +
    +
    +

    Since MONGODB-AWS always authenticates against the $external database, so specifying the authSource database is not required.

    +

    Credentials include the access key id, secret access key, and optional session token. They may be obtained from the following ways.

    +
    +

    AWS credentials via URI

    +

    Credentials may be passed directly in the URI as username/password.

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://<access key id>:<secret access key>localhost/?authMechanism=MONGODB-AWS");
    +
    +
    +

    This may include a session token passed with authMechanismProperties.

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://<access key id>:<secret access key>localhost/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<token>");
    +
    +
    +
    +
    +

    AWS credentials via environment

    +

    If credentials are not passed through the URI, libmongoc will check for the following environment variables.

    +
      +
    • AWS_ACCESS_KEY_ID

    • +
    • AWS_SECRET_ACCESS_KEY

    • +
    • AWS_SESSION_TOKEN (optional)

    • +
    +
    +
    +

    AWS Credentials via ECS

    +

    If credentials are not passed in the URI or with environment variables, libmongoc will check if the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set, and if so, attempt to retrieve temporary credentials from the ECS task metadata by querying a link local address.

    +
    +
    +

    AWS Credentials via EC2

    +

    If credentials are not passed in the URI or with environment variables, and the environment variable AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is not set, libmongoc will attempt to retrieve temporary credentials from the EC2 machine metadata by querying link local addresses.

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/basic-troubleshooting.html b/libmongoc/1.23.2/basic-troubleshooting.html new file mode 100644 index 0000000000000000000000000000000000000000..0e6a5cff6fa8977601a196276adc51f7f8c33f1f --- /dev/null +++ b/libmongoc/1.23.2/basic-troubleshooting.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + Basic Troubleshooting — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Basic Troubleshooting

    +
    +

    Troubleshooting Checklist

    +

    The following is a short list of things to check when you have a problem.

    +
      +
    • Did you call mongoc_init() in main()? If not, you will likely see a segfault.

    • +
    • Have you leaked any clients or cursors as can be found with mongoc-stat <PID>?

    • +
    • Have packets been delivered to the server? See egress bytes from mongoc-stat <PID>.

    • +
    • Does valgrind show any leaks? Ensure you call mongoc_cleanup() at the end of your process to cleanup lingering allocations from the MongoDB C driver.

    • +
    • If compiling your own copy of MongoDB C Driver, consider using the cmake option -DENABLE_TRACING=ON to enable function tracing and hex dumps of network packets to STDERR and STDOUT.

    • +
    +
    +
    +

    Performance Counters

    +

    The MongoDB C driver comes with an optional unique feature to help developers and sysadmins troubleshoot problems in production. +Performance counters are available for each process using the driver. +If available, the counters can be accessed outside of the application process via a shared memory segment. +This means that you can graph statistics about your application process easily from tools like Munin or Nagios. +Your author often uses watch --interval=0.5 -d mongoc-stat $PID to monitor an application.

    +

    Performance counters are only available on Linux platforms and macOS arm64 platforms supporting shared memory segments. +On supported platforms they are enabled by default. +Applications can be built without the counters by specifying the cmake option -DENABLE_SHM_COUNTERS=OFF. Additionally, if +performance counters are already compiled, they can be disabled at runtime by specifying the environment variable MONGOC_DISABLE_SHM.

    +

    Performance counters keep track of the following:

    +
      +
    • Active and Disposed Cursors

    • +
    • Active and Disposed Clients, Client Pools, and Socket Streams.

    • +
    • Number of operations sent and received, by type.

    • +
    • Bytes transferred and received.

    • +
    • Authentication successes and failures.

    • +
    • Number of wire protocol errors.

    • +
    +

    To access counters for a given process, simply provide the process id to the mongoc-stat program installed with the MongoDB C Driver.

    +
    $ mongoc-stat 22203
    +   Operations : Egress Total        : The number of sent operations.                    : 13247
    +   Operations : Ingress Total       : The number of received operations.                : 13246
    +   Operations : Egress Queries      : The number of sent Query operations.              : 13247
    +   Operations : Ingress Queries     : The number of received Query operations.          : 0
    +   Operations : Egress GetMore      : The number of sent GetMore operations.            : 0
    +   Operations : Ingress GetMore     : The number of received GetMore operations.        : 0
    +   Operations : Egress Insert       : The number of sent Insert operations.             : 0
    +   Operations : Ingress Insert      : The number of received Insert operations.         : 0
    +   Operations : Egress Delete       : The number of sent Delete operations.             : 0
    +   Operations : Ingress Delete      : The number of received Delete operations.         : 0
    +   Operations : Egress Update       : The number of sent Update operations.             : 0
    +   Operations : Ingress Update      : The number of received Update operations.         : 0
    +   Operations : Egress KillCursors  : The number of sent KillCursors operations.        : 0
    +   Operations : Ingress KillCursors : The number of received KillCursors operations.    : 0
    +   Operations : Egress Msg          : The number of sent Msg operations.                : 0
    +   Operations : Ingress Msg         : The number of received Msg operations.            : 0
    +   Operations : Egress Reply        : The number of sent Reply operations.              : 0
    +   Operations : Ingress Reply       : The number of received Reply operations.          : 13246
    +      Cursors : Active              : The number of active cursors.                     : 1
    +      Cursors : Disposed            : The number of disposed cursors.                   : 13246
    +      Clients : Active              : The number of active clients.                     : 1
    +      Clients : Disposed            : The number of disposed clients.                   : 0
    +      Streams : Active              : The number of active streams.                     : 1
    +      Streams : Disposed            : The number of disposed streams.                   : 0
    +      Streams : Egress Bytes        : The number of bytes sent.                         : 794931
    +      Streams : Ingress Bytes       : The number of bytes received.                     : 589694
    +      Streams : N Socket Timeouts   : The number of socket timeouts.                    : 0
    + Client Pools : Active              : The number of active client pools.                : 1
    + Client Pools : Disposed            : The number of disposed client pools.              : 0
    +     Protocol : Ingress Errors      : The number of protocol errors on ingress.         : 0
    +         Auth : Failures            : The number of failed authentication requests.     : 0
    +         Auth : Success             : The number of successful authentication requests. : 0
    +
    +
    +
    +
    +

    Submitting a Bug Report

    +

    Think you’ve found a bug? Want to see a new feature in the MongoDB C driver? Please open a case in our issue management tool, JIRA:

    + +

    Bug reports in JIRA for all driver projects (i.e. CDRIVER, CSHARP, JAVA) and the Core Server (i.e. SERVER) project are public.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/bulk.html b/libmongoc/1.23.2/bulk.html new file mode 100644 index 0000000000000000000000000000000000000000..d78d7ccf5fe359532a2d23a28e586bad33a1a76f --- /dev/null +++ b/libmongoc/1.23.2/bulk.html @@ -0,0 +1,991 @@ + + + + + + + + + + + + + + Bulk Write Operations — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Bulk Write Operations

    +

    This tutorial explains how to take advantage of MongoDB C driver bulk write operation features. Executing write operations in batches reduces the number of network round trips, increasing write throughput.

    +
    +

    Bulk Insert

    +

    First we need to fetch a bulk operation handle from the mongoc_collection_t.

    +
    mongoc_bulk_operation_t *bulk =
    +   mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +
    +
    +

    We can now start inserting documents to the bulk operation. These will be buffered until we execute the operation.

    +

    The bulk operation will coalesce insertions as a single batch for each consecutive call to mongoc_bulk_operation_insert(). This creates a pipelined effect when possible.

    +

    To execute the bulk operation and receive the result we call mongoc_bulk_operation_execute().

    +
    +
    bulk1.c
    +
    #include <assert.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +bulk1 (mongoc_collection_t *collection)
    +{
    +   mongoc_bulk_operation_t *bulk;
    +   bson_error_t error;
    +   bson_t *doc;
    +   bson_t reply;
    +   char *str;
    +   bool ret;
    +   int i;
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +
    +   for (i = 0; i < 10000; i++) {
    +      doc = BCON_NEW ("i", BCON_INT32 (i));
    +      mongoc_bulk_operation_insert (bulk, doc);
    +      bson_destroy (doc);
    +   }
    +
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      fprintf (stderr, "Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   mongoc_bulk_operation_destroy (bulk);
    +}
    +
    +int
    +main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   const char *uri_string = "mongodb://localhost/?appname=bulk1-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "test", "test");
    +
    +   bulk1 (collection);
    +
    +   mongoc_uri_destroy (uri);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Example reply document:

    +
    {"nInserted"   : 10000,
    + "nMatched"    : 0,
    + "nModified"   : 0,
    + "nRemoved"    : 0,
    + "nUpserted"   : 0,
    + "writeErrors" : []
    + "writeConcernErrors" : [] }
    +
    +
    +
    +
    +

    Mixed Bulk Write Operations

    +

    MongoDB C driver also supports executing mixed bulk write operations. A batch of insert, update, and remove operations can be executed together using the bulk write operations API.

    +
    +
    +

    Ordered Bulk Write Operations

    +

    Ordered bulk write operations are batched and sent to the server in the order provided for serial execution. The reply document describes the type and count of operations performed.

    +
    +
    bulk2.c
    +
    #include <assert.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +bulk2 (mongoc_collection_t *collection)
    +{
    +   mongoc_bulk_operation_t *bulk;
    +   bson_error_t error;
    +   bson_t *query;
    +   bson_t *doc;
    +   bson_t *opts;
    +   bson_t reply;
    +   char *str;
    +   bool ret;
    +   int i;
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +
    +   /* Remove everything */
    +   query = bson_new ();
    +   mongoc_bulk_operation_remove (bulk, query);
    +   bson_destroy (query);
    +
    +   /* Add a few documents */
    +   for (i = 1; i < 4; i++) {
    +      doc = BCON_NEW ("_id", BCON_INT32 (i));
    +      mongoc_bulk_operation_insert (bulk, doc);
    +      bson_destroy (doc);
    +   }
    +
    +   /* {_id: 1} => {$set: {foo: "bar"}} */
    +   query = BCON_NEW ("_id", BCON_INT32 (1));
    +   doc = BCON_NEW ("$set", "{", "foo", BCON_UTF8 ("bar"), "}");
    +   mongoc_bulk_operation_update_many_with_opts (bulk, query, doc, NULL, &error);
    +   bson_destroy (query);
    +   bson_destroy (doc);
    +
    +   /* {_id: 4} => {'$inc': {'j': 1}} (upsert) */
    +   opts = BCON_NEW ("upsert", BCON_BOOL (true));
    +   query = BCON_NEW ("_id", BCON_INT32 (4));
    +   doc = BCON_NEW ("$inc", "{", "j", BCON_INT32 (1), "}");
    +   mongoc_bulk_operation_update_many_with_opts (bulk, query, doc, opts, &error);
    +   bson_destroy (query);
    +   bson_destroy (doc);
    +   bson_destroy (opts);
    +
    +   /* replace {j:1} with {j:2} */
    +   query = BCON_NEW ("j", BCON_INT32 (1));
    +   doc = BCON_NEW ("j", BCON_INT32 (2));
    +   mongoc_bulk_operation_replace_one_with_opts (bulk, query, doc, NULL, &error);
    +   bson_destroy (query);
    +   bson_destroy (doc);
    +
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      printf ("Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   mongoc_bulk_operation_destroy (bulk);
    +}
    +
    +int
    +main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   const char *uri_string = "mongodb://localhost/?appname=bulk2-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "test", "test");
    +
    +   bulk2 (collection);
    +
    +   mongoc_uri_destroy (uri);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Example reply document:

    +
    { "nInserted"   : 3,
    +  "nMatched"    : 2,
    +  "nModified"   : 2,
    +  "nRemoved"    : 10000,
    +  "nUpserted"   : 1,
    +  "upserted"    : [{"index" : 5, "_id" : 4}],
    +  "writeErrors" : []
    +  "writeConcernErrors" : [] }
    +
    +
    +

    The index field in the upserted array is the 0-based index of the upsert operation; in this example, the sixth operation of the overall bulk operation was an upsert, so its index is 5.

    +
    +
    +

    Unordered Bulk Write Operations

    +

    Unordered bulk write operations are batched and sent to the server in arbitrary order where they may be executed in parallel. Any errors that occur are reported after all operations are attempted.

    +

    In the next example the first and third operations fail due to the unique constraint on _id. Since we are doing unordered execution the second and fourth operations succeed.

    +
    +
    bulk3.c
    +
    #include <assert.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +bulk3 (mongoc_collection_t *collection)
    +{
    +   bson_t opts = BSON_INITIALIZER;
    +   mongoc_bulk_operation_t *bulk;
    +   bson_error_t error;
    +   bson_t *query;
    +   bson_t *doc;
    +   bson_t reply;
    +   char *str;
    +   bool ret;
    +
    +   /* false indicates unordered */
    +   BSON_APPEND_BOOL (&opts, "ordered", false);
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, &opts);
    +   bson_destroy (&opts);
    +
    +   /* Add a document */
    +   doc = BCON_NEW ("_id", BCON_INT32 (1));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   /* remove {_id: 2} */
    +   query = BCON_NEW ("_id", BCON_INT32 (2));
    +   mongoc_bulk_operation_remove_one (bulk, query);
    +   bson_destroy (query);
    +
    +   /* insert {_id: 3} */
    +   doc = BCON_NEW ("_id", BCON_INT32 (3));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   /* replace {_id:4} {'i': 1} */
    +   query = BCON_NEW ("_id", BCON_INT32 (4));
    +   doc = BCON_NEW ("i", BCON_INT32 (1));
    +   mongoc_bulk_operation_replace_one (bulk, query, doc, false);
    +   bson_destroy (query);
    +   bson_destroy (doc);
    +
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      printf ("Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   mongoc_bulk_operation_destroy (bulk);
    +   bson_destroy (&opts);
    +}
    +
    +int
    +main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   const char *uri_string = "mongodb://localhost/?appname=bulk3-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "test", "test");
    +
    +   bulk3 (collection);
    +
    +   mongoc_uri_destroy (uri);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Example reply document:

    +
    { "nInserted"    : 0,
    +  "nMatched"     : 1,
    +  "nModified"    : 1,
    +  "nRemoved"     : 1,
    +  "nUpserted"    : 0,
    +  "writeErrors"  : [
    +    { "index"  : 0,
    +      "code"   : 11000,
    +      "errmsg" : "E11000 duplicate key error index: test.test.$_id_ dup key: { : 1 }" },
    +    { "index"  : 2,
    +      "code"   : 11000,
    +      "errmsg" : "E11000 duplicate key error index: test.test.$_id_ dup key: { : 3 }" } ],
    +  "writeConcernErrors" : [] }
    +
    +Error: E11000 duplicate key error index: test.test.$_id_ dup key: { : 1 }
    +
    +
    +

    The bson_error_t domain is MONGOC_ERROR_COMMAND and its code is 11000.

    +
    +
    +

    Bulk Operation Bypassing Document Validation

    +

    This feature is only available when using MongoDB 3.2 and later.

    +

    By default bulk operations are validated against the schema, if any is defined. In certain cases however it may be necessary to bypass the document validation.

    +
    +
    bulk5.c
    +
    #include <assert.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +bulk5_fail (mongoc_collection_t *collection)
    +{
    +   mongoc_bulk_operation_t *bulk;
    +   bson_error_t error;
    +   bson_t *doc;
    +   bson_t reply;
    +   char *str;
    +   bool ret;
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +
    +   /* Two inserts */
    +   doc = BCON_NEW ("_id", BCON_INT32 (31));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   doc = BCON_NEW ("_id", BCON_INT32 (32));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   /* The above documents do not comply to the schema validation rules
    +    * we created previously, so this will result in an error */
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      printf ("Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   mongoc_bulk_operation_destroy (bulk);
    +}
    +
    +static void
    +bulk5_success (mongoc_collection_t *collection)
    +{
    +   mongoc_bulk_operation_t *bulk;
    +   bson_error_t error;
    +   bson_t *doc;
    +   bson_t reply;
    +   char *str;
    +   bool ret;
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +
    +   /* Allow this document to bypass document validation.
    +    * NOTE: When authentication is enabled, the authenticated user must have
    +    * either the "dbadmin" or "restore" roles to bypass document validation */
    +   mongoc_bulk_operation_set_bypass_document_validation (bulk, true);
    +
    +   /* Two inserts */
    +   doc = BCON_NEW ("_id", BCON_INT32 (31));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   doc = BCON_NEW ("_id", BCON_INT32 (32));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      printf ("Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   mongoc_bulk_operation_destroy (bulk);
    +}
    +
    +int
    +main (void)
    +{
    +   bson_t *options;
    +   bson_error_t error;
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   mongoc_database_t *database;
    +   const char *uri_string = "mongodb://localhost/?appname=bulk5-example";
    +   mongoc_uri_t *uri;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   database = mongoc_client_get_database (client, "testasdf");
    +
    +   /* Create schema validator */
    +   options = BCON_NEW (
    +      "validator", "{", "number", "{", "$gte", BCON_INT32 (5), "}", "}");
    +   collection =
    +      mongoc_database_create_collection (database, "collname", options, &error);
    +
    +   if (collection) {
    +      bulk5_fail (collection);
    +      bulk5_success (collection);
    +      mongoc_collection_destroy (collection);
    +   } else {
    +      fprintf (stderr, "Couldn't create collection: '%s'\n", error.message);
    +   }
    +
    +   bson_free (options);
    +   mongoc_uri_destroy (uri);
    +   mongoc_database_destroy (database);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Running the above example will result in:

    +
    { "nInserted" : 0,
    +  "nMatched" : 0,
    +  "nModified" : 0,
    +  "nRemoved" : 0,
    +  "nUpserted" : 0,
    +  "writeErrors" : [
    +    { "index" : 0,
    +      "code" : 121,
    +      "errmsg" : "Document failed validation" } ] }
    +
    +Error: Document failed validation
    +
    +{ "nInserted" : 2,
    +  "nMatched" : 0,
    +  "nModified" : 0,
    +  "nRemoved" : 0,
    +  "nUpserted" : 0,
    +  "writeErrors" : [] }
    +
    +
    +

    The bson_error_t domain is MONGOC_ERROR_COMMAND.

    +
    +
    +

    Bulk Operation Write Concerns

    +

    By default bulk operations are executed with the write_concern of the collection they are executed against. A custom write concern can be passed to the mongoc_collection_create_bulk_operation_with_opts() method. Write concern errors (e.g. wtimeout) will be reported after all operations are attempted, regardless of execution order.

    +
    +
    bulk4.c
    +
    #include <assert.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +bulk4 (mongoc_collection_t *collection)
    +{
    +   bson_t opts = BSON_INITIALIZER;
    +   mongoc_write_concern_t *wc;
    +   mongoc_bulk_operation_t *bulk;
    +   bson_error_t error;
    +   bson_t *doc;
    +   bson_t reply;
    +   char *str;
    +   bool ret;
    +
    +   wc = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_w (wc, 4);
    +   mongoc_write_concern_set_wtimeout_int64 (wc, 100); /* milliseconds */
    +   mongoc_write_concern_append (wc, &opts);
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, &opts);
    +
    +   /* Two inserts */
    +   doc = BCON_NEW ("_id", BCON_INT32 (10));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   doc = BCON_NEW ("_id", BCON_INT32 (11));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      printf ("Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   mongoc_bulk_operation_destroy (bulk);
    +   mongoc_write_concern_destroy (wc);
    +   bson_destroy (&opts);
    +}
    +
    +int
    +main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   const char *uri_string = "mongodb://localhost/?appname=bulk4-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "test", "test");
    +
    +   bulk4 (collection);
    +
    +   mongoc_uri_destroy (uri);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Example reply document and error message:

    +
    { "nInserted"    : 2,
    +  "nMatched"     : 0,
    +  "nModified"    : 0,
    +  "nRemoved"     : 0,
    +  "nUpserted"    : 0,
    +  "writeErrors"  : [],
    +  "writeConcernErrors" : [
    +    { "code"   : 64,
    +      "errmsg" : "waiting for replication timed out" }
    +] }
    +
    +Error: waiting for replication timed out
    +
    +
    +

    The bson_error_t domain is MONGOC_ERROR_WRITE_CONCERN if there are write concern errors and no write errors. Write errors indicate failed operations, so they take precedence over write concern errors, which mean merely that the write concern is not satisfied yet.

    +
    +
    +

    Setting Collation Order

    +

    This feature is only available when using MongoDB 3.4 and later.

    +
    +
    bulk-collation.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +bulk_collation (mongoc_collection_t *collection)
    +{
    +   mongoc_bulk_operation_t *bulk;
    +   bson_t *opts;
    +   bson_t *doc;
    +   bson_t *selector;
    +   bson_t *update;
    +   bson_error_t error;
    +   bson_t reply;
    +   char *str;
    +   uint32_t ret;
    +
    +   /* insert {_id: "one"} and {_id: "One"} */
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +   doc = BCON_NEW ("_id", BCON_UTF8 ("one"));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   doc = BCON_NEW ("_id", BCON_UTF8 ("One"));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   /* "One" normally sorts before "one"; make "one" come first */
    +   opts = BCON_NEW ("collation",
    +                    "{",
    +                    "locale",
    +                    BCON_UTF8 ("en_US"),
    +                    "caseFirst",
    +                    BCON_UTF8 ("lower"),
    +                    "}");
    +
    +   /* set x=1 on the document with _id "One", which now sorts after "one" */
    +   update = BCON_NEW ("$set", "{", "x", BCON_INT64 (1), "}");
    +   selector = BCON_NEW ("_id", "{", "$gt", BCON_UTF8 ("one"), "}");
    +   mongoc_bulk_operation_update_one_with_opts (
    +      bulk, selector, update, opts, &error);
    +
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      printf ("Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (selector);
    +   bson_destroy (opts);
    +   mongoc_bulk_operation_destroy (bulk);
    +}
    +
    +int
    +main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   const char *uri_string = "mongodb://localhost/?appname=bulk-collation";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "db", "collection");
    +   bulk_collation (collection);
    +
    +   mongoc_uri_destroy (uri);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Running the above example will result in:

    +
    { "nInserted" : 2,
    +   "nMatched" : 1,
    +   "nModified" : 1,
    +   "nRemoved" : 0,
    +   "nUpserted" : 0,
    +   "writeErrors" : [  ]
    +}
    +
    +
    +
    +
    +

    Unacknowledged Bulk Writes

    +

    Set “w” to zero for an unacknowledged write. The driver sends unacknowledged writes using the legacy opcodes OP_INSERT, OP_UPDATE, and OP_DELETE.

    +
    +
    bulk6.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +bulk6 (mongoc_collection_t *collection)
    +{
    +   bson_t opts = BSON_INITIALIZER;
    +   mongoc_write_concern_t *wc;
    +   mongoc_bulk_operation_t *bulk;
    +   bson_error_t error;
    +   bson_t *doc;
    +   bson_t *selector;
    +   bson_t reply;
    +   char *str;
    +   bool ret;
    +
    +   wc = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_w (wc, 0);
    +   mongoc_write_concern_append (wc, &opts);
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, &opts);
    +
    +   doc = BCON_NEW ("_id", BCON_INT32 (10));
    +   mongoc_bulk_operation_insert (bulk, doc);
    +   bson_destroy (doc);
    +
    +   selector = BCON_NEW ("_id", BCON_INT32 (11));
    +   mongoc_bulk_operation_remove_one (bulk, selector);
    +   bson_destroy (selector);
    +
    +   ret = mongoc_bulk_operation_execute (bulk, &reply, &error);
    +
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   if (!ret) {
    +      printf ("Error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   mongoc_bulk_operation_destroy (bulk);
    +   mongoc_write_concern_destroy (wc);
    +   bson_destroy (&opts);
    +}
    +
    +int
    +main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   const char *uri_string = "mongodb://localhost/?appname=bulk6-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "test", "test");
    +
    +   bulk6 (collection);
    +
    +   mongoc_uri_destroy (uri);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    The reply document is empty:

    +
    { }
    +
    +
    +
    +
    +

    Further Reading

    +

    See the Driver Bulk API Spec, which describes bulk write operations for all MongoDB drivers.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/configuring_tls.html b/libmongoc/1.23.2/configuring_tls.html new file mode 100644 index 0000000000000000000000000000000000000000..9d7395686ecc89a6f898f8336263c7078acc1d98 --- /dev/null +++ b/libmongoc/1.23.2/configuring_tls.html @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + Configuring TLS — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +

    Configuring TLS

    +
    +

    Configuration with URI options

    +

    Enable TLS by including tls=true in the URI.

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://localhost:27017/");
    +mongoc_uri_set_option_as_bool (uri, MONGOC_URI_TLS, true);
    +
    +mongoc_client_t *client = mongoc_client_new_from_uri (uri);
    +
    +
    +

    The following URI options may be used to further configure TLS:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_TLS

    tls

    {true|false}, indicating if TLS must be used.

    MONGOC_URI_TLSCERTIFICATEKEYFILE

    tlscertificatekeyfile

    Path to PEM formatted Private Key, with its Public Certificate concatenated at the end.

    MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD

    tlscertificatekeypassword

    The password, if any, to use to unlock encrypted Private Key.

    MONGOC_URI_TLSCAFILE

    tlscafile

    One, or a bundle of, Certificate Authorities whom should be considered to be trusted.

    MONGOC_URI_TLSALLOWINVALIDCERTIFICATES

    tlsallowinvalidcertificates

    Accept and ignore certificate verification errors (e.g. untrusted issuer, expired, etc.)

    MONGOC_URI_TLSALLOWINVALIDHOSTNAMES

    tlsallowinvalidhostnames

    Ignore hostname verification of the certificate (e.g. Man In The Middle, using valid certificate, but issued for another hostname)

    MONGOC_URI_TLSINSECURE

    tlsinsecure

    {true|false}, indicating if insecure TLS options should be used. Currently this implies MONGOC_URI_TLSALLOWINVALIDCERTIFICATES and MONGOC_URI_TLSALLOWINVALIDHOSTNAMES.

    MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK

    tlsdisablecertificaterevocationcheck

    {true|false}, indicates if revocation checking (CRL / OCSP) should be disabled.

    MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK

    tlsdisableocspendpointcheck

    {true|false}, indicates if OCSP responder endpoints should not be requested when an OCSP response is not stapled.

    +
    +
    +

    Configuration with mongoc_ssl_opt_t

    +

    Alternatively, the mongoc_ssl_opt_t struct may be used to configure TLS with mongoc_client_set_ssl_opts() or mongoc_client_pool_set_ssl_opts(). Most of the configurable options can be set using the Connection String URI.

    + + + + + + + + + + + + + + + + + + + + + + + +

    mongoc_ssl_opt_t key

    URI key

    pem_file

    tlsClientCertificateKeyFile

    pem_pwd

    tlsClientCertificateKeyPassword

    ca_file

    tlsCAFile

    weak_cert_validation

    tlsAllowInvalidCertificates

    allow_invalid_hostname

    tlsAllowInvalidHostnames

    +

    The only exclusions are crl_file and ca_dir. Those may only be set with mongoc_ssl_opt_t.

    +
    +
    +

    Client Authentication

    +

    When MongoDB is started with TLS enabled, it will by default require the client to provide a client certificate issued by a certificate authority specified by --tlsCAFile, or an authority trusted by the native certificate store in use on the server.

    +

    To provide the client certificate, set the tlsCertificateKeyFile in the URI to a PEM armored certificate file.

    +
    mongoc_uri_t *uri = mongoc_uri_new ("mongodb://localhost:27017/");
    +mongoc_uri_set_option_as_bool (uri, MONGOC_URI_TLS, true);
    +mongoc_uri_set_option_as_utf8 (uri, MONGOC_URI_TLSCERTIFICATEKEYFILE, "/path/to/client-certificate.pem");
    +
    +mongoc_client_t *client = mongoc_client_new_from_uri (uri);
    +
    +
    +
    +
    +

    Server Certificate Verification

    +

    The MongoDB C Driver will automatically verify the validity of the server certificate, such as issued by configured Certificate Authority, hostname validation, and expiration.

    +

    To overwrite this behavior, it is possible to disable hostname validation, OCSP endpoint revocation checking, revocation checking entirely, and allow invalid certificates.

    +

    This behavior is controlled using the tlsAllowInvalidHostnames, tlsDisableOCSPEndpointCheck, tlsDisableCertificateRevocationCheck, and tlsAllowInvalidCertificates options respectively. By default, all are set to false.

    +

    It is not recommended to change these defaults as it exposes the client to Man In The Middle attacks (when tlsAllowInvalidHostnames is set), invalid certificates (when tlsAllowInvalidCertificates is set), or potentially revoked certificates (when tlsDisableOCSPEndpointCheck or tlsDisableCertificateRevocationCheck are set).

    +
    +
    +

    Supported Libraries

    +

    By default, libmongoc will attempt to find a supported TLS library and enable TLS support. This is controlled by the cmake flag ENABLE_SSL, which is set to AUTO by default. Valid values are:

    +
      +
    • AUTO the default behavior. Link to the system’s native TLS library, or attempt to find OpenSSL.

    • +
    • DARWIN link to Secure Transport, the native TLS library on macOS.

    • +
    • WINDOWS link to Secure Channel, the native TLS library on Windows.

    • +
    • OPENSSL link to OpenSSL (libssl). An optional install path may be specified with OPENSSL_ROOT.

    • +
    • LIBRESSL link to LibreSSL’s libtls. (LibreSSL’s compatible libssl may be linked to by setting OPENSSL).

    • +
    • OFF disable TLS support.

    • +
    +
    +

    OpenSSL

    +

    The MongoDB C Driver uses OpenSSL, if available, on Linux and Unix platforms (besides macOS). Industry best practices and some regulations require the use of TLS 1.1 or newer, which requires at least OpenSSL 1.0.1. Check your OpenSSL version like so:

    +
    $ openssl version
    +
    +
    +

    Ensure your system’s OpenSSL is a recent version (at least 1.0.1), or install a recent version in a non-system path and build against it with:

    +
    cmake -DOPENSSL_ROOT_DIR=/absolute/path/to/openssl
    +
    +
    +

    When compiled against OpenSSL, the driver will attempt to load the system default certificate store, as configured by the distribution. That can be overridden by setting the tlsCAFile URI option or with the fields ca_file and ca_dir in the mongoc_ssl_opt_t.

    +

    The Online Certificate Status Protocol (OCSP) (see RFC 6960) is fully supported when using OpenSSL 1.0.1+ with the following notes:

    +
      +
    • When a crl_file is set with mongoc_ssl_opt_t, and the crl_file revokes the server’s certificate, the certificate is considered revoked (even if the certificate has a valid stapled OCSP response)

    • +
    +
    +
    +

    LibreSSL / libtls

    +

    The MongoDB C Driver supports LibreSSL through the use of OpenSSL compatibility checks when configured to compile against openssl. It also supports the new libtls library when configured to build against libressl.

    +

    When compiled against the Windows native libraries, the crl_file option of a mongoc_ssl_opt_t is not supported, and will issue an error if used.

    +

    Setting tlsDisableOCSPEndpointCheck and tlsDisableCertificateRevocationCheck has no effect.

    +

    The Online Certificate Status Protocol (OCSP) (see RFC 6960) is partially supported with the following notes:

    +
      +
    • The Must-Staple extension (see RFC 7633) is ignored. Connection may continue if a Must-Staple certificate is presented with no stapled response (unless the client receives a revoked response from an OCSP responder).

    • +
    • Connection will continue if a Must-Staple certificate is presented without a stapled response and the OCSP responder is down.

    • +
    +
    +
    +

    Native TLS Support on Windows (Secure Channel)

    +

    The MongoDB C Driver supports the Windows native TLS library (Secure Channel, or SChannel), and its native crypto library (Cryptography API: Next Generation, or CNG).

    +

    When compiled against the Windows native libraries, the ca_dir option of a mongoc_ssl_opt_t is not supported, and will issue an error if used.

    +

    Encrypted PEM files (e.g., setting tlsCertificateKeyPassword) are also not supported, and will result in error when attempting to load them.

    +

    When tlsCAFile is set, the driver will only allow server certificates issued by the authority (or authorities) provided. When no tlsCAFile is set, the driver will look up the Certificate Authority using the System Local Machine Root certificate store to confirm the provided certificate.

    +

    When crl_file is set with mongoc_ssl_opt_t, the driver will import the revocation list to the System Local Machine Root certificate store.

    +

    Setting tlsDisableOCSPEndpointCheck has no effect.

    +

    The Online Certificate Status Protocol (OCSP) (see RFC 6960) is partially supported with the following notes:

    +
      +
    • The Must-Staple extension (see RFC 7633) is ignored. Connection may continue if a Must-Staple certificate is presented with no stapled response (unless the client receives a revoked response from an OCSP responder).

    • +
    • When a crl_file is set with mongoc_ssl_opt_t, and the crl_file revokes the server’s certificate, the OCSP response takes precedence. E.g. if the server presents a certificate with a valid stapled OCSP response, the certificate is considered valid even if the crl_file marks it as revoked.

    • +
    • Connection will continue if a Must-Staple certificate is presented without a stapled response and the OCSP responder is down.

    • +
    +
    +
    +

    Native TLS Support on macOS / Darwin (Secure Transport)

    +

    The MongoDB C Driver supports the Darwin (OS X, macOS, iOS, etc.) native TLS library (Secure Transport), and its native crypto library (Common Crypto, or CC).

    +

    When compiled against Secure Transport, the ca_dir and crl_file options of a mongoc_ssl_opt_t are not supported. An error is issued if either are used.

    +

    When tlsCAFile is set, the driver will only allow server certificates issued by the authority (or authorities) provided. When no tlsCAFile is set, the driver will use the Certificate Authorities in the currently unlocked keychains.

    +

    Setting tlsDisableOCSPEndpointCheck and tlsDisableCertificateRevocationCheck has no effect.

    +

    The Online Certificate Status Protocol (OCSP) (see RFC 6960) is partially supported with the following notes.

    +
      +
    • The Must-Staple extension (see RFC 7633) is ignored. Connection may continue if a Must-Staple certificate is presented with no stapled response (unless the client receives a revoked response from an OCSP responder).

    • +
    • Connection will continue if a Must-Staple certificate is presented without a stapled response and the OCSP responder is down.

    • +
    +
    +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/connection-pooling.html b/libmongoc/1.23.2/connection-pooling.html new file mode 100644 index 0000000000000000000000000000000000000000..6f752b1527d66ce083e6670a0ede1f77c0f6e915 --- /dev/null +++ b/libmongoc/1.23.2/connection-pooling.html @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + Connection Pooling — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Connection Pooling

    +

    The MongoDB C driver has two connection modes: single-threaded and pooled. Single-threaded mode is optimized for embedding the driver within languages like PHP. Multi-threaded programs should use pooled mode: this mode minimizes the total connection count, and in pooled mode background threads monitor the MongoDB server topology, so the program need not block to scan it.

    +
    +

    Single Mode

    +

    In single mode, your program creates a mongoc_client_t directly:

    +
    mongoc_client_t *client = mongoc_client_new (
    +   "mongodb://hostA,hostB/?replicaSet=my_rs");
    +
    +
    +

    The client connects on demand when your program first uses it for a MongoDB operation. Using a non-blocking socket per server, it begins a check on each server concurrently, and uses the asynchronous poll or select function to receive events from the sockets, until all have responded or timed out. Put another way, in single-threaded mode the C Driver fans out to begin all checks concurrently, then fans in once all checks have completed or timed out. Once the scan completes, the client executes your program’s operation and returns.

    +

    In single mode, the client re-scans the server topology roughly once per minute. If more than a minute has elapsed since the previous scan, the next operation on the client will block while the client completes its scan. This interval is configurable with heartbeatFrequencyMS in the connection string. (See mongoc_uri_t.)

    +

    A single client opens one connection per server in your topology: these connections are used both for scanning the topology and performing normal operations.

    +
    +
    +

    Pooled Mode

    +

    To activate pooled mode, create a mongoc_client_pool_t:

    +
    mongoc_uri_t *uri = mongoc_uri_new (
    +   "mongodb://hostA,hostB/?replicaSet=my_rs");
    +
    +mongoc_client_pool_t *pool = mongoc_client_pool_new (uri);
    +
    +
    +

    When your program first calls mongoc_client_pool_pop(), the pool launches monitoring threads in the background. Monitoring threads independently connect to all servers in the connection string. As monitoring threads receive hello responses from the servers, they update the shared view of the server topology. Additional monitoring threads and connections are created as new servers are discovered. Monitoring threads are terminated when servers are removed from the shared view of the server topology.

    +

    Each thread that executes MongoDB operations must check out a client from the pool:

    +
    mongoc_client_t *client = mongoc_client_pool_pop (pool);
    +
    +/* use the client for operations ... */
    +
    +mongoc_client_pool_push (pool, client);
    +
    +
    +

    The mongoc_client_t object is not thread-safe, only the mongoc_client_pool_t is.

    +

    When the driver is in pooled mode, your program’s operations are unblocked as soon as monitoring discovers a usable server. For example, if a thread in your program is waiting to execute an “insert” on the primary, it is unblocked as soon as the primary is discovered, rather than waiting for all secondaries to be checked as well.

    +

    The pool opens one connection per server for monitoring, and each client opens its own connection to each server it uses for application operations. Background monitoring threads re-scan servers independently roughly every 10 seconds. This interval is configurable with heartbeatFrequencyMS in the connection string. (See mongoc_uri_t.)

    +

    The connection string can also specify waitQueueTimeoutMS to limit the time that mongoc_client_pool_pop() will wait for a client from the pool. (See mongoc_uri_t.) If waitQueueTimeoutMS is specified, then it is necessary to confirm that a client was actually returned:

    +
    mongoc_uri_t *uri = mongoc_uri_new (
    +   "mongodb://hostA,hostB/?replicaSet=my_rs&waitQueueTimeoutMS=1000");
    +
    +mongoc_client_pool_t *pool = mongoc_client_pool_new (uri);
    +
    +mongoc_client_t *client = mongoc_client_pool_pop (pool);
    +
    +if (client) {
    +   /* use the client for operations ... */
    +
    +   mongoc_client_pool_push (pool, client);
    +} else {
    +   /* take appropriate action for a timeout */
    +}
    +
    +
    +

    See Connection Pool Options to configure pool size and behavior, and see mongoc_client_pool_t for an extended example of a multi-threaded program that uses the driver in pooled mode.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/create-indexes.html b/libmongoc/1.23.2/create-indexes.html new file mode 100644 index 0000000000000000000000000000000000000000..83e7947c9b5bc05182a5444e7f06568b1d07d0fb --- /dev/null +++ b/libmongoc/1.23.2/create-indexes.html @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + Creating Indexes — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Creating Indexes

    +

    To create indexes on a MongoDB collection, execute the createIndexes command +with a command function like mongoc_database_write_command_with_opts() or +mongoc_collection_write_command_with_opts(). See the MongoDB +Manual entry for the createIndexes command for details.

    +
    +

    Warning

    +

    The commitQuorum option to the createIndexes command is only +supported in MongoDB 4.4+ servers, but it is not validated in the command +functions. Do not pass commitQuorum if connected to server versions less +than 4.4. Using the commitQuorum option on server versions less than 4.4 +may have adverse effects on index builds.

    +
    +
    +

    Example

    +
    +
    example-create-indexes.c
    +
    /* gcc example-create-indexes.c -o example-create-indexes $(pkg-config --cflags
    + * --libs libmongoc-1.0) */
    +
    +/* ./example-create-indexes [CONNECTION_STRING [COLLECTION_NAME]] */
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   const char *uri_string =
    +      "mongodb://127.0.0.1/?appname=create-indexes-example";
    +   mongoc_uri_t *uri;
    +   mongoc_database_t *db;
    +   const char *collection_name = "test";
    +   bson_t keys;
    +   char *index_name;
    +   bson_t *create_indexes;
    +   bson_t reply;
    +   char *reply_str;
    +   bson_error_t error;
    +   bool r;
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   if (argc > 2) {
    +      collection_name = argv[2];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   db = mongoc_client_get_database (client, "test");
    +
    +   /* ascending index on field "x" */
    +   bson_init (&keys);
    +   BSON_APPEND_INT32 (&keys, "x", 1);
    +   index_name = mongoc_collection_keys_to_index_string (&keys);
    +   create_indexes = BCON_NEW ("createIndexes",
    +                              BCON_UTF8 (collection_name),
    +                              "indexes",
    +                              "[",
    +                              "{",
    +                              "key",
    +                              BCON_DOCUMENT (&keys),
    +                              "name",
    +                              BCON_UTF8 (index_name),
    +                              "}",
    +                              "]");
    +
    +   r = mongoc_database_write_command_with_opts (
    +      db, create_indexes, NULL /* opts */, &reply, &error);
    +
    +   reply_str = bson_as_json (&reply, NULL);
    +   printf ("%s\n", reply_str);
    +
    +   if (!r) {
    +      fprintf (stderr, "Error in createIndexes: %s\n", error.message);
    +   }
    +
    +   bson_free (index_name);
    +   bson_free (reply_str);
    +   bson_destroy (&reply);
    +   bson_destroy (create_indexes);
    +   mongoc_database_destroy (db);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return r ? EXIT_SUCCESS : EXIT_FAILURE;
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/cursors.html b/libmongoc/1.23.2/cursors.html new file mode 100644 index 0000000000000000000000000000000000000000..205f520706854f394389cb39da0527e75e663a26 --- /dev/null +++ b/libmongoc/1.23.2/cursors.html @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + Cursors — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Cursors

    +
    +

    Handling Cursor Failures

    +

    Cursors exist on a MongoDB server. However, the mongoc_cursor_t structure gives the local process a handle to the cursor. It is possible for errors to occur on the server while iterating a cursor on the client. Even a network partition may occur. This means that applications should be robust in handling cursor failures.

    +

    While iterating cursors, you should check to see if an error has occurred. See the following example for how to robustly check for errors.

    +
    static void
    +print_all_documents (mongoc_collection_t *collection)
    +{
    +   mongoc_cursor_t *cursor;
    +   const bson_t *doc;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   char *str;
    +
    +   cursor = mongoc_collection_find_with_opts (collection, query, NULL, NULL);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "Failed to iterate all documents: %s\n", error.message);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +}
    +
    +
    +
    +
    +

    Destroying Server-Side Cursors

    +

    The MongoDB C driver will automatically destroy a server-side cursor when mongoc_cursor_destroy() is called. Failure to call this function when done with a cursor will leak memory client side as well as consume extra memory server side. If the cursor was configured to never timeout, it will become a memory leak on the server.

    +
    +
    +

    Tailable Cursors

    +

    Tailable cursors are cursors that remain open even after they’ve returned a final result. This way, if more documents are added to a collection (i.e., to the cursor’s result set), then you can continue to call mongoc_cursor_next() to retrieve those additional results.

    +

    Here’s a complete test case that demonstrates the use of tailable cursors.

    +
    +

    Note

    +

    Tailable cursors are for capped collections only.

    +
    +

    An example to tail the oplog from a replica set.

    +
    +
    mongoc-tail.c
    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +#ifdef _WIN32
    +#define sleep(_n) Sleep ((_n) *1000)
    +#endif
    +
    +
    +static void
    +print_bson (const bson_t *b)
    +{
    +   char *str;
    +
    +   str = bson_as_canonical_extended_json (b, NULL);
    +   fprintf (stdout, "%s\n", str);
    +   bson_free (str);
    +}
    +
    +
    +static mongoc_cursor_t *
    +query_collection (mongoc_collection_t *collection, uint32_t last_time)
    +{
    +   mongoc_cursor_t *cursor;
    +   bson_t query;
    +   bson_t gt;
    +   bson_t opts;
    +
    +   BSON_ASSERT (collection);
    +
    +   bson_init (&query);
    +   BSON_APPEND_DOCUMENT_BEGIN (&query, "ts", &gt);
    +   BSON_APPEND_TIMESTAMP (&gt, "$gt", last_time, 0);
    +   bson_append_document_end (&query, &gt);
    +
    +   bson_init (&opts);
    +   BSON_APPEND_BOOL (&opts, "tailable", true);
    +   BSON_APPEND_BOOL (&opts, "awaitData", true);
    +
    +   cursor = mongoc_collection_find_with_opts (collection, &query, &opts, NULL);
    +
    +   bson_destroy (&query);
    +   bson_destroy (&opts);
    +
    +   return cursor;
    +}
    +
    +
    +static void
    +tail_collection (mongoc_collection_t *collection)
    +{
    +   mongoc_cursor_t *cursor;
    +   uint32_t last_time;
    +   const bson_t *doc;
    +   bson_error_t error;
    +   bson_iter_t iter;
    +
    +   BSON_ASSERT (collection);
    +
    +   last_time = (uint32_t) time (NULL);
    +
    +   while (true) {
    +      cursor = query_collection (collection, last_time);
    +      while (!mongoc_cursor_error (cursor, &error) &&
    +             mongoc_cursor_more (cursor)) {
    +         if (mongoc_cursor_next (cursor, &doc)) {
    +            if (bson_iter_init_find (&iter, doc, "ts") &&
    +                BSON_ITER_HOLDS_TIMESTAMP (&iter)) {
    +               bson_iter_timestamp (&iter, &last_time, NULL);
    +            }
    +            print_bson (doc);
    +         }
    +      }
    +      if (mongoc_cursor_error (cursor, &error)) {
    +         if (error.domain == MONGOC_ERROR_SERVER) {
    +            fprintf (stderr, "%s\n", error.message);
    +            exit (1);
    +         }
    +      }
    +
    +      mongoc_cursor_destroy (cursor);
    +      sleep (1);
    +   }
    +}
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_collection_t *collection;
    +   mongoc_client_t *client;
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +
    +   if (argc != 2) {
    +      fprintf (stderr, "usage: %s MONGO_URI\n", argv[0]);
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (argv[1], &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               argv[1],
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   collection = mongoc_client_get_collection (client, "local", "oplog.rs");
    +
    +   tail_collection (collection);
    +
    +   mongoc_collection_destroy (collection);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Let’s compile and run this example against a replica set to see updates as they are made.

    +
    $ gcc -Wall -o mongoc-tail mongoc-tail.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./mongoc-tail mongodb://example.com/?replicaSet=myReplSet
    +{
    +    "h" : -8458503739429355503,
    +    "ns" : "test.test",
    +    "o" : {
    +        "_id" : {
    +            "$oid" : "5372ab0a25164be923d10d50"
    +        }
    +    },
    +    "op" : "i",
    +    "ts" : {
    +        "$timestamp" : {
    +            "i" : 1,
    +            "t" : 1400023818
    +        }
    +    },
    +    "v" : 2
    +}
    +
    +
    +

    The line of output is a sample from performing db.test.insert({}) from the mongo shell on the replica set.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/debugging.html b/libmongoc/1.23.2/debugging.html new file mode 100644 index 0000000000000000000000000000000000000000..f619412720e26cdab3f4b945ca769020ef545133 --- /dev/null +++ b/libmongoc/1.23.2/debugging.html @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + Aids for Debugging — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Aids for Debugging

    +
    +

    GDB

    +

    This repository contains a .gdbinit file that contains helper functions to +aid debugging of data structures. GDB will load this file +automatically if you have added the directory which contains the .gdbinit file to GDB’s +auto-load safe-path, and you start GDB from the directory which holds the .gdbinit file.

    +

    You can see the safe-path with show auto-load safe-path on a GDB prompt. You +can configure it by setting it in ~/.gdbinit with:

    +
    add-auto-load-safe-path /path/to/mongo-c-driver
    +
    +
    +

    If you haven’t added the path to your auto-load safe-path, or start GDB in +another directory, load the file with:

    +
    source path/to/mongo-c-driver/.gdbinit
    +
    +
    +

    The .gdbinit file defines the printbson function, which shows the contents of a bson_t * variable. +If you have a local bson_t, then you must prefix the variable with a &.

    +

    An example GDB session looks like:

    +
    (gdb) printbson bson
    +ALLOC [0x555556cd7310 + 0] (len=475)
    +{
    +    'bool' : true,
    +    'int32' : NumberInt("42"),
    +    'int64' : NumberLong("3000000042"),
    +    'string' : "Stŕìñg",
    +    'objectId' : ObjectID("5A1442F3122D331C3C6757E1"),
    +    'utcDateTime' : UTCDateTime(1511277299031),
    +    'arrayOfInts' : [
    +        '0' : NumberInt("1"),
    +        '1' : NumberInt("2")
    +    ],
    +    'embeddedDocument' : {
    +        'arrayOfStrings' : [
    +            '0' : "one",
    +            '1' : "two"
    +        ],
    +        'double' : 2.718280,
    +        'notherDoc' : {
    +            'true' : NumberInt("1"),
    +            'false' : false
    +        }
    +    },
    +    'binary' : Binary("02", "3031343532333637"),
    +    'regex' : Regex("@[a-z]+@", "im"),
    +    'null' : null,
    +    'js' : JavaScript("print foo"),
    +    'jsws' : JavaScript("print foo") with scope: {
    +        'f' : NumberInt("42"),
    +        'a' : [
    +            '0' : 3.141593,
    +            '1' : 2.718282
    +        ]
    +    },
    +    'timestamp' : Timestamp(4294967295, 4294967295),
    +    'double' : 3.141593
    +}
    +
    +
    +
    +
    +

    LLDB

    +

    This repository also includes a script that customizes LLDB’s standard print command to print a bson_t or bson_t * as JSON:

    +
    (lldb) print b
    +(bson_t) $0 = {"x": 1, "y": 2}
    +
    +
    +

    The custom bson command provides more options:

    +
    (lldb) bson --verbose b
    +len=19
    +flags=INLINE|STATIC
    +{
    +  "x": 1,
    +  "y": 2
    +}
    +(lldb) bson --raw b
    +'\x13\x00\x00\x00\x10x\x00\x01\x00\x00\x00\x10y\x00\x02\x00\x00\x00\x00'
    +
    +
    +

    Type help bson for a list of options.

    +

    The script requires a build of libbson with debug symbols, and an installation of PyMongo. Install PyMongo with:

    +
    python -m pip install pymongo
    +
    +
    +

    If you see “No module named pip” then you must install pip, then run the previous command again.

    +

    Create a file ~/.lldbinit containing:

    +
    command script import /path/to/mongo-c-driver/lldb_bson.py
    +
    +
    +

    If you see “bson command installed by lldb_bson” at the beginning of your LLDB session, you’ve installed the script correctly.

    +
    +
    +

    Debug assertions

    +

    To enable runtime debug assertions, configure with -DENABLE_DEBUG_ASSERTIONS=ON.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/distinct-mapreduce.html b/libmongoc/1.23.2/distinct-mapreduce.html new file mode 100644 index 0000000000000000000000000000000000000000..e01bbd04ab6fe61ba84cc82df889d268c212ce86 --- /dev/null +++ b/libmongoc/1.23.2/distinct-mapreduce.html @@ -0,0 +1,579 @@ + + + + + + + + + + + + + + “distinct” and “mapReduce” — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    “distinct” and “mapReduce”

    +

    This document provides some practical, simple, examples to demonstrate the distinct and mapReduce commands.

    +
    +

    Setup

    +

    First we’ll write some code to insert sample data:

    +
    +
    doc-common-insert.c
    +
    /* Don't try to compile this file on its own. It's meant to be #included
    +   by example code */
    +
    +/* Insert some sample data */
    +bool
    +insert_data (mongoc_collection_t *collection)
    +{
    +   mongoc_bulk_operation_t *bulk;
    +   enum N { ndocs = 4 };
    +   bson_t *docs[ndocs];
    +   bson_error_t error;
    +   int i = 0;
    +   bool ret;
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +
    +   docs[0] = BCON_NEW ("x", BCON_DOUBLE (1.0), "tags", "[", "dog", "cat", "]");
    +   docs[1] = BCON_NEW ("x", BCON_DOUBLE (2.0), "tags", "[", "cat", "]");
    +   docs[2] = BCON_NEW (
    +      "x", BCON_DOUBLE (2.0), "tags", "[", "mouse", "cat", "dog", "]");
    +   docs[3] = BCON_NEW ("x", BCON_DOUBLE (3.0), "tags", "[", "]");
    +
    +   for (i = 0; i < ndocs; i++) {
    +      mongoc_bulk_operation_insert (bulk, docs[i]);
    +      bson_destroy (docs[i]);
    +      docs[i] = NULL;
    +   }
    +
    +   ret = mongoc_bulk_operation_execute (bulk, NULL, &error);
    +
    +   if (!ret) {
    +      fprintf (stderr, "Error inserting data: %s\n", error.message);
    +   }
    +
    +   mongoc_bulk_operation_destroy (bulk);
    +   return ret;
    +}
    +
    +/* A helper which we'll use a lot later on */
    +void
    +print_res (const bson_t *reply)
    +{
    +   char *str;
    +   BSON_ASSERT (reply);
    +   str = bson_as_canonical_extended_json (reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +}
    +
    +
    +
    +
    +
    +

    “distinct” command

    +

    This is how to use the distinct command to get the distinct values of x which are greater than 1:

    +
    +
    distinct.c
    +
    bool
    +distinct (mongoc_database_t *database)
    +{
    +   bson_t *command;
    +   bson_t reply;
    +   bson_error_t error;
    +   bool res;
    +   bson_iter_t iter;
    +   bson_iter_t array_iter;
    +   double val;
    +
    +   command = BCON_NEW ("distinct",
    +                       BCON_UTF8 (COLLECTION_NAME),
    +                       "key",
    +                       BCON_UTF8 ("x"),
    +                       "query",
    +                       "{",
    +                       "x",
    +                       "{",
    +                       "$gt",
    +                       BCON_DOUBLE (1.0),
    +                       "}",
    +                       "}");
    +   res =
    +      mongoc_database_command_simple (database, command, NULL, &reply, &error);
    +   if (!res) {
    +      fprintf (stderr, "Error with distinct: %s\n", error.message);
    +      goto cleanup;
    +   }
    +
    +   /* Do something with reply (in this case iterate through the values) */
    +   if (!(bson_iter_init_find (&iter, &reply, "values") &&
    +         BSON_ITER_HOLDS_ARRAY (&iter) &&
    +         bson_iter_recurse (&iter, &array_iter))) {
    +      fprintf (stderr, "Couldn't extract \"values\" field from response\n");
    +      goto cleanup;
    +   }
    +
    +   while (bson_iter_next (&array_iter)) {
    +      if (BSON_ITER_HOLDS_DOUBLE (&array_iter)) {
    +         val = bson_iter_double (&array_iter);
    +         printf ("Next double: %f\n", val);
    +      }
    +   }
    +
    +cleanup:
    +   /* cleanup */
    +   bson_destroy (command);
    +   bson_destroy (&reply);
    +   return res;
    +}
    +
    +
    +
    +
    +
    +

    “mapReduce” - basic example

    +

    A simple example using the map reduce framework. It simply adds up the number of occurrences of each “tag”.

    +

    First define the map and reduce functions:

    +
    +
    constants.c
    +
    const char *const COLLECTION_NAME = "things";
    +
    +/* Our map function just emits a single (key, 1) pair for each tag
    +   in the array: */
    +const char *const MAPPER = "function () {"
    +                           "this.tags.forEach(function(z) {"
    +                           "emit(z, 1);"
    +                           "});"
    +                           "}";
    +
    +/* The reduce function sums over all of the emitted values for a
    +   given key: */
    +const char *const REDUCER = "function (key, values) {"
    +                            "var total = 0;"
    +                            "for (var i = 0; i < values.length; i++) {"
    +                            "total += values[i];"
    +                            "}"
    +                            "return total;"
    +                            "}";
    +/* Note We can't just return values.length as the reduce function
    +   might be called iteratively on the results of other reduce
    +   steps. */
    +
    +
    +
    +

    Run the mapReduce command. Use the generic command helpers (e.g. mongoc_database_command_simple()). +Do not the read command helpers (e.g. mongoc_database_read_command_with_opts()) because they are considered +retryable read operations. If retryable reads are enabled, those operations will retry once on a retryable error, +giving undesirable behavior for mapReduce.

    +
    +
    map-reduce-basic.c
    +
    bool
    +map_reduce_basic (mongoc_database_t *database)
    +{
    +   bson_t reply;
    +   bson_t *command;
    +   bool res;
    +   bson_error_t error;
    +   mongoc_cursor_t *cursor;
    +   const bson_t *doc;
    +
    +   bool query_done = false;
    +
    +   const char *out_collection_name = "outCollection";
    +   mongoc_collection_t *out_collection;
    +
    +   /* Empty find query */
    +   bson_t find_query = BSON_INITIALIZER;
    +
    +   /* Construct the mapReduce command */
    +
    +   /* Other arguments can also be specified here, like "query" or
    +      "limit" and so on */
    +   command = BCON_NEW ("mapReduce",
    +                       BCON_UTF8 (COLLECTION_NAME),
    +                       "map",
    +                       BCON_CODE (MAPPER),
    +                       "reduce",
    +                       BCON_CODE (REDUCER),
    +                       "out",
    +                       BCON_UTF8 (out_collection_name));
    +   res =
    +      mongoc_database_command_simple (database, command, NULL, &reply, &error);
    +
    +   if (!res) {
    +      fprintf (stderr, "MapReduce failed: %s\n", error.message);
    +      goto cleanup;
    +   }
    +
    +   /* Do something with the reply (it doesn't contain the mapReduce results) */
    +   print_res (&reply);
    +
    +   /* Now we'll query outCollection to see what the results are */
    +   out_collection =
    +      mongoc_database_get_collection (database, out_collection_name);
    +   cursor = mongoc_collection_find_with_opts (
    +      out_collection, &find_query, NULL, NULL);
    +   query_done = true;
    +
    +   /* Do something with the results */
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      print_res (doc);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "ERROR: %s\n", error.message);
    +      res = false;
    +      goto cleanup;
    +   }
    +
    +cleanup:
    +   /* cleanup */
    +   if (query_done) {
    +      mongoc_cursor_destroy (cursor);
    +      mongoc_collection_destroy (out_collection);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (command);
    +
    +   return res;
    +}
    +
    +
    +
    +
    +
    +

    “mapReduce” - more complicated example

    +

    You must have replica set running for this.

    +

    In this example we contact a secondary in the replica set and do an “inline” map reduce, so the results are returned immediately:

    +
    +
    map-reduce-advanced.c
    +
    bool
    +map_reduce_advanced (mongoc_database_t *database)
    +{
    +   bson_t *command;
    +   bson_error_t error;
    +   bool res = true;
    +   mongoc_cursor_t *cursor;
    +   mongoc_read_prefs_t *read_pref;
    +   const bson_t *doc;
    +
    +   /* Construct the mapReduce command */
    +   /* Other arguments can also be specified here, like "query" or "limit"
    +      and so on */
    +
    +   /* Read the results inline from a secondary replica */
    +   command = BCON_NEW ("mapReduce",
    +                       BCON_UTF8 (COLLECTION_NAME),
    +                       "map",
    +                       BCON_CODE (MAPPER),
    +                       "reduce",
    +                       BCON_CODE (REDUCER),
    +                       "out",
    +                       "{",
    +                       "inline",
    +                       "1",
    +                       "}");
    +
    +   read_pref = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
    +   cursor = mongoc_database_command (
    +      database, MONGOC_QUERY_NONE, 0, 0, 0, command, NULL, read_pref);
    +
    +   /* Do something with the results */
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      print_res (doc);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "ERROR: %s\n", error.message);
    +      res = false;
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   mongoc_read_prefs_destroy (read_pref);
    +   bson_destroy (command);
    +
    +   return res;
    +}
    +
    +
    +
    +
    +
    +

    Running the Examples

    +

    Here’s how to run the example code

    +
    +
    basic-aggregation.c
    +
    /*
    + * Copyright 2016 MongoDB, Inc.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +
    +#include "constants.c"
    +
    +#include "../doc-common-insert.c"
    +#include "distinct.c"
    +#include "map-reduce-basic.c"
    +#include "map-reduce-advanced.c"
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_database_t *database = NULL;
    +   mongoc_client_t *client = NULL;
    +   mongoc_collection_t *collection = NULL;
    +   mongoc_uri_t *uri = NULL;
    +   bson_error_t error;
    +   char *host_and_port = NULL;
    +   int exit_code = EXIT_FAILURE;
    +
    +   if (argc != 2) {
    +      fprintf (stderr, "usage: %s CONNECTION-STRING\n", argv[0]);
    +      fprintf (stderr,
    +               "the connection string can be of the following forms:\n");
    +      fprintf (stderr, "localhost\t\t\t\tlocal machine\n");
    +      fprintf (stderr, "localhost:27018\t\t\t\tlocal machine on port 27018\n");
    +      fprintf (stderr,
    +               "mongodb://user:pass@localhost:27017\t"
    +               "local machine on port 27017, and authenticate with username "
    +               "user and password pass\n");
    +      return exit_code;
    +   }
    +
    +   mongoc_init ();
    +
    +   if (strncmp (argv[1], "mongodb://", 10) == 0) {
    +      host_and_port = bson_strdup (argv[1]);
    +   } else {
    +      host_and_port = bson_strdup_printf ("mongodb://%s", argv[1]);
    +   }
    +
    +   uri = mongoc_uri_new_with_error (host_and_port, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               host_and_port,
    +               error.message);
    +      goto cleanup;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      goto cleanup;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   database = mongoc_client_get_database (client, "test");
    +   collection = mongoc_database_get_collection (database, COLLECTION_NAME);
    +
    +   printf ("Inserting data\n");
    +   if (!insert_data (collection)) {
    +      goto cleanup;
    +   }
    +
    +   printf ("distinct\n");
    +   if (!distinct (database)) {
    +      goto cleanup;
    +   }
    +
    +   printf ("map reduce\n");
    +   if (!map_reduce_basic (database)) {
    +      goto cleanup;
    +   }
    +
    +   printf ("more complicated map reduce\n");
    +   if (!map_reduce_advanced (database)) {
    +      goto cleanup;
    +   }
    +   
    +   exit_code = EXIT_SUCCESS;
    +
    +cleanup:
    +   if (collection) {
    +      mongoc_collection_destroy (collection);
    +   }
    +
    +   if (database) {
    +      mongoc_database_destroy (database);
    +   }
    +
    +   if (client) {
    +      mongoc_client_destroy (client);
    +   }
    +
    +   if (uri) {
    +      mongoc_uri_destroy (uri);
    +   }
    +
    +   if (host_and_port) {
    +      bson_free (host_and_port);
    +   }
    +
    +   mongoc_cleanup ();
    +   return exit_code;
    +}
    +
    +
    +
    +

    If you want to try the advanced map reduce example with a secondary, start a replica set (instructions for how to do this can be found here).

    +

    Otherwise, just start an instance of MongoDB:

    +
    $ mongod
    +
    +
    +

    Now compile and run the example program:

    +
    $ cd examples/basic_aggregation/
    +$ gcc -Wall -o agg-example basic-aggregation.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./agg-example localhost
    +
    +Inserting data
    +distinct
    +Next double: 2.000000
    +Next double: 3.000000
    +map reduce
    +{ "result" : "outCollection", "timeMillis" : 155, "counts" : { "input" : 84, "emit" : 126, "reduce" : 3, "output" : 3 }, "ok" : 1 }
    +{ "_id" : "cat", "value" : 63 }
    +{ "_id" : "dog", "value" : 42 }
    +{ "_id" : "mouse", "value" : 21 }
    +more complicated map reduce
    +{ "results" : [ { "_id" : "cat", "value" : 63 }, { "_id" : "dog", "value" : 42 }, { "_id" : "mouse", "value" : 21 } ], "timeMillis" : 14, "counts" : { "input" : 84, "emit" : 126, "reduce" : 3, "output" : 3 }, "ok" : 1 }
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/errors.html b/libmongoc/1.23.2/errors.html new file mode 100644 index 0000000000000000000000000000000000000000..39e4967ef65a25dacee4eb7b88e579c1683ae2c7 --- /dev/null +++ b/libmongoc/1.23.2/errors.html @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + Error Reporting — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +

    « libmongoc

    +
    +

    Error Reporting

    +
    +

    Description

    +

    Many C Driver functions report errors by returning false or -1 and filling out a bson_error_t structure with an error domain, error code, and message. Use domain to determine which subsystem generated the error, and code for the specific error. message is a human-readable error description.

    +
    +

    See also

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Domain

    Code

    Description

    MONGOC_ERROR_CLIENT

    MONGOC_ERROR_CLIENT_TOO_BIG

    You tried to send a message larger than the server’s max message size.

    MONGOC_ERROR_CLIENT_AUTHENTICATE

    Wrong credentials, or failure sending or receiving authentication messages.

    MONGOC_ERROR_CLIENT_NO_ACCEPTABLE_PEER

    You tried an TLS connection but the driver was not built with TLS.

    MONGOC_ERROR_CLIENT_IN_EXHAUST

    You began iterating an exhaust cursor, then tried to begin another operation with the same mongoc_client_t.

    MONGOC_ERROR_CLIENT_SESSION_FAILURE

    Failure related to creating or using a logical session.

    MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARG

    Failure related to arguments passed when initializing Client-Side Field Level Encryption.

    MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATE

    Failure related to Client-Side Field Level Encryption.

    MONGOC_ERROR_CLIENT_INVALID_LOAD_BALANCER

    You attempted to connect to a MongoDB server behind a load balancer, but the server does not advertize load balanced support.

    MONGOC_ERROR_STREAM

    MONGOC_ERROR_STREAM_NAME_RESOLUTION

    DNS failure.

    MONGOC_ERROR_STREAM_SOCKET

    Timeout communicating with server, or connection closed.

    MONGOC_ERROR_STREAM_CONNECT

    Failed to connect to server.

    MONGOC_ERROR_PROTOCOL

    MONGOC_ERROR_PROTOCOL_INVALID_REPLY

    Corrupt response from server.

    MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION

    The server version is too old or too new to communicate with the driver.

    MONGOC_ERROR_CURSOR

    MONGOC_ERROR_CURSOR_INVALID_CURSOR

    You passed bad arguments to mongoc_collection_find_with_opts(), or you called mongoc_cursor_next() on a completed or failed cursor, or the cursor timed out on the server.

    MONGOC_ERROR_CHANGE_STREAM_NO_RESUME_TOKEN

    A resume token was not returned in a document found with mongoc_change_stream_next()

    MONGOC_ERROR_QUERY

    MONGOC_ERROR_QUERY_FAILURE

    Error API Version 1: Server error from command or query. The server error message is in message.

    MONGOC_ERROR_SERVER

    MONGOC_ERROR_QUERY_FAILURE

    Error API Version 2: Server error from command or query. The server error message is in message.

    MONGOC_ERROR_SASL

    A SASL error code.

    man sasl_errors for a list of codes.

    MONGOC_ERROR_BSON

    MONGOC_ERROR_BSON_INVALID

    You passed an invalid or oversized BSON document as a parameter, or called mongoc_collection_create_index() with invalid keys, or the server reply was corrupt.

    MONGOC_ERROR_NAMESPACE

    MONGOC_ERROR_NAMESPACE_INVALID

    You tried to create a collection with an invalid name.

    MONGOC_ERROR_COMMAND

    MONGOC_ERROR_COMMAND_INVALID_ARG

    Many functions set this error code when passed bad parameters. Print the error message for details.

    MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSION

    You tried to use a command option the server does not support.

    MONGOC_ERROR_DUPLICATE_KEY

    An insert or update failed because because of a duplicate _id or other unique-index violation.

    MONGOC_ERROR_MAX_TIME_MS_EXPIRED

    The operation failed because maxTimeMS expired.

    MONGOC_ERROR_SERVER_SELECTION_INVALID_ID

    The serverId option for an operation conflicts with the pinned server for that operation’s client session (denoted by the sessionId option).

    MONGOC_ERROR_COMMAND

    Error code from server.

    Error API Version 1: Server error from a command. The server error message is in message.

    MONGOC_ERROR_SERVER

    Error code from server.

    Error API Version 2: Server error from a command. The server error message is in message.

    MONGOC_ERROR_COLLECTION

    MONGOC_ERROR_COLLECTION_INSERT_FAILED, MONGOC_ERROR_COLLECTION_UPDATE_FAILED, MONGOC_ERROR_COLLECTION_DELETE_FAILED.

    Invalid or empty input to mongoc_collection_insert_one(), mongoc_collection_insert_bulk(), mongoc_collection_update_one(), mongoc_collection_update_many(), mongoc_collection_replace_one(), mongoc_collection_delete_one(), or mongoc_collection_delete_many().

    MONGOC_ERROR_COLLECTION

    Error code from server.

    Error API Version 1: Server error from mongoc_collection_insert_one(), mongoc_collection_insert_bulk(), mongoc_collection_update_one(), mongoc_collection_update_many(), mongoc_collection_replace_one(),

    MONGOC_ERROR_SERVER

    Error code from server.

    Error API Version 2: Server error from mongoc_collection_insert_one(), mongoc_collection_insert_bulk(), mongoc_collection_update_one(), mongoc_collection_update_many(), mongoc_collection_replace_one(),

    MONGOC_ERROR_GRIDFS

    MONGOC_ERROR_GRIDFS_CHUNK_MISSING

    The GridFS file is missing a document in its chunks collection.

    MONGOC_ERROR_GRIDFS_CORRUPT

    A data inconsistency was detected in GridFS.

    MONGOC_ERROR_GRIDFS_INVALID_FILENAME

    You passed a NULL filename to mongoc_gridfs_remove_by_filename().

    MONGOC_ERROR_GRIDFS_PROTOCOL_ERROR

    You called mongoc_gridfs_file_set_id() after mongoc_gridfs_file_save(), or tried to write on a closed GridFS stream.

    MONGOC_ERROR_GRIDFS_BUCKET_FILE_NOT_FOUND

    A GridFS file is missing from files collection.

    MONGOC_ERROR_GRIDFS_BUCKET_STREAM

    An error occurred on a stream created from a GridFS operation like mongoc_gridfs_bucket_upload_from_stream().

    MONGOC_ERROR_SCRAM

    MONGOC_ERROR_SCRAM_PROTOCOL_ERROR

    Failure in SCRAM-SHA-1 authentication.

    MONGOC_ERROR_SERVER_SELECTION

    MONGOC_ERROR_SERVER_SELECTION_FAILURE

    No replica set member or mongos is available, or none matches your read preference, or you supplied an invalid mongoc_read_prefs_t.

    MONGOC_ERROR_WRITE_CONCERN

    Error code from server.

    There was a write concern error or timeout from the server.

    MONGOC_ERROR_TRANSACTION

    MONGOC_ERROR_TRANSACTION_INVALID

    You attempted to start a transaction when one is already in progress, or commit or abort when there is no transaction.

    MONGOC_ERROR_CLIENT_SIDE_ENCRYPTION

    Error code produced by libmongocrypt.

    An error occurred in the library responsible for Client Side Encryption

    +
    +
    +

    Error Labels

    +

    In some cases your application must make decisions based on what category of error the driver has returned, but these categories do not correspond perfectly to an error domain or code. In such cases, error labels provide a reliable way to determine how your application should respond to an error.

    +

    Any C Driver function that has a bson_t out-parameter named reply may include error labels to the reply, in the form of a BSON field named “errorLabels” containing an array of strings:

    +
    { "errorLabels": [ "TransientTransactionError" ] }
    +
    +
    +

    Use mongoc_error_has_label() to test if a reply contains a specific label. See mongoc_client_session_start_transaction() for example code that demonstrates the use of error labels in application logic.

    +

    The following error labels are currently defined. Future versions of MongoDB may introduce new labels.

    +
    +

    TransientTransactionError

    +

    Within a multi-document transaction, certain errors can leave the transaction in an unknown or aborted state. These include write conflicts, primary stepdowns, and network errors. In response, the application should abort the transaction and try the same sequence of operations again in a new transaction.

    +
    +
    +

    UnknownTransactionCommitResult

    +

    When mongoc_client_session_commit_transaction() encounters a network error or certain server errors, it is not known whether the transaction was committed. Applications should attempt to commit the transaction again until: the commit succeeds, the commit fails with an error not labeled “UnknownTransactionCommitResult”, or the application chooses to give up.

    +
    +
    +
    +

    Setting the Error API Version

    +

    The driver’s error reporting began with a design flaw: when the error domain is MONGOC_ERROR_COLLECTION, MONGOC_ERROR_QUERY, or MONGOC_ERROR_COMMAND, the error code might originate from the server or the driver. An application cannot always know where an error originated, and therefore cannot tell what the code means.

    +

    For example, if mongoc_collection_update_one() sets the error’s domain to MONGOC_ERROR_COLLECTION and its code to 24, the application cannot know whether 24 is the generic driver error code MONGOC_ERROR_COLLECTION_UPDATE_FAILED or the specific server error code “LockTimeout”.

    +

    To fix this flaw while preserving backward compatibility, the C Driver 1.4 introduces “Error API Versions”. Version 1, the default Error API Version, maintains the flawed behavior. Version 2 adds a new error domain, MONGOC_ERROR_SERVER. In Version 2, error codes originating on the server always have error domain MONGOC_ERROR_SERVER or MONGOC_ERROR_WRITE_CONCERN. When the driver uses Version 2 the application can always determine the origin and meaning of error codes. New applications should use Version 2, and existing applications should be updated to use Version 2 as well.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Error Source

    API Version 1

    API Version 2

    mongoc_cursor_error()

    MONGOC_ERROR_QUERY

    MONGOC_ERROR_SERVER

    mongoc_client_command_with_opts(), +mongoc_database_command_with_opts(), and +other command functions

    MONGOC_ERROR_QUERY

    MONGOC_ERROR_SERVER

    mongoc_collection_count_with_opts() +mongoc_client_get_database_names_with_opts(), +and other command helper functions

    MONGOC_ERROR_QUERY

    MONGOC_ERROR_SERVER

    mongoc_collection_insert_one() +mongoc_collection_insert_bulk() +mongoc_collection_update_one() +mongoc_collection_update_many() +mongoc_collection_replace_one() +mongoc_collection_delete_one() +mongoc_collection_delete_many()

    MONGOC_ERROR_COMMAND

    MONGOC_ERROR_SERVER

    mongoc_bulk_operation_execute()

    MONGOC_ERROR_COMMAND

    MONGOC_ERROR_SERVER

    Write-concern timeout

    MONGOC_ERROR_WRITE_CONCERN

    MONGOC_ERROR_WRITE_CONCERN

    +

    The Error API Versions are defined with MONGOC_ERROR_API_VERSION_LEGACY and MONGOC_ERROR_API_VERSION_2. Set the version with mongoc_client_set_error_api() or mongoc_client_pool_set_error_api().

    +
    +

    See also

    + +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/full_index.html b/libmongoc/1.23.2/full_index.html new file mode 100644 index 0000000000000000000000000000000000000000..600e7c78ca30bbb01a8e9f179edff392e9e37c1e --- /dev/null +++ b/libmongoc/1.23.2/full_index.html @@ -0,0 +1,926 @@ + + + + + + + + + + + + + + Index — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Index

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/gridfs.html b/libmongoc/1.23.2/gridfs.html new file mode 100644 index 0000000000000000000000000000000000000000..e8e6bc40fffdfb30e8377b35f51e2ebe4c1f8f29 --- /dev/null +++ b/libmongoc/1.23.2/gridfs.html @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + GridFS — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    GridFS

    +

    The C driver includes two APIs for GridFS.

    +

    The older API consists of mongoc_gridfs_t and its derivatives. It contains deprecated API, does not support read preferences, and is not recommended in new applications. It does not conform to the MongoDB GridFS specification.

    +

    The newer API consists of mongoc_gridfs_bucket_t and allows uploading/downloading through derived mongoc_stream_t objects. It conforms to the MongoDB GridFS specification.

    +

    There is not always a straightforward upgrade path from an application built with mongoc_gridfs_t to mongoc_gridfs_bucket_t (e.g. a mongoc_gridfs_file_t provides functions to seek but mongoc_stream_t does not). But users are encouraged to upgrade when possible.

    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/guides.html b/libmongoc/1.23.2/guides.html new file mode 100644 index 0000000000000000000000000000000000000000..56698e217df06cc497fe1816555ce4ec6415d389 --- /dev/null +++ b/libmongoc/1.23.2/guides.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + Guides — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/index.html b/libmongoc/1.23.2/index.html new file mode 100644 index 0000000000000000000000000000000000000000..94fa9146df2867346dc05d7fb71bfde5037fe909 --- /dev/null +++ b/libmongoc/1.23.2/index.html @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + libmongoc — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + +
    +

    libmongoc

    +

    A Cross Platform MongoDB Client Library for C

    +
    +

    Introduction

    +

    The MongoDB C Driver, also known as “libmongoc”, is a library for using MongoDB from C applications, and for writing MongoDB drivers in higher-level languages.

    +

    It depends on libbson to generate and parse BSON documents, the native data format of MongoDB.

    + + + + + + + +
    +
    + + +
    +
    +
    + +
    +
    + + +
    + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/init-cleanup.html b/libmongoc/1.23.2/init-cleanup.html new file mode 100644 index 0000000000000000000000000000000000000000..5bccb5b215129ec84c8b3926554ad334470ae284 --- /dev/null +++ b/libmongoc/1.23.2/init-cleanup.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + Initialization and cleanup — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Initialization and cleanup

    +
    +

    Synopsis

    +

    Initialize the MongoDB C Driver by calling mongoc_init() exactly once at the beginning of your program. It is responsible for initializing global state such as process counters, SSL, and threading primitives.

    +

    Exception to this is mongoc_log_set_handler(), which should be called before mongoc_init() or some log traces would not use your log handling function. See Custom Log Handlers for a detailed example.

    +

    Call mongoc_cleanup() exactly once at the end of your program to release all memory and other resources allocated by the driver. You must not call any other MongoDB C Driver functions after mongoc_cleanup(). Note that mongoc_init() does not reinitialize the driver after mongoc_cleanup().

    + +
    +
    +

    Deprecated feature: automatic initialization and cleanup

    +

    On some platforms the driver can automatically call mongoc_init() before main, and call mongoc_cleanup() as the process exits. This is problematic in situations where related libraries also execute cleanup code on shutdown, and it creates inconsistent rules across platforms. Therefore the automatic initialization and cleanup feature is deprecated, and will be dropped in version 2.0. Meanwhile, for backward compatibility, the feature is enabled by default on platforms where it is available.

    +

    For portable, future-proof code, always call mongoc_init() and mongoc_cleanup() yourself, and configure the driver like:

    +
    cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/installing.html b/libmongoc/1.23.2/installing.html new file mode 100644 index 0000000000000000000000000000000000000000..ce44995f17749e0961fc532d6995d4049ae22976 --- /dev/null +++ b/libmongoc/1.23.2/installing.html @@ -0,0 +1,365 @@ + + + + + + + + + + + + + + Installing the MongoDB C Driver (libmongoc) and BSON library (libbson) — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Installing the MongoDB C Driver (libmongoc) and BSON library (libbson)

    +

    The following guide will step you through the process of downloading, building, and installing the current release of the MongoDB C Driver (libmongoc) and BSON library (libbson).

    +
    +

    Supported Platforms

    +

    The MongoDB C Driver is continuously tested on a variety of platforms including:

    +
      +
    • Archlinux

    • +
    • Debian 9.2, 10.0

    • +
    • macOS 10.14

    • +
    • Microsoft Windows Server 2008, 2016

    • +
    • RHEL 6.2, 7.0, 7.1, 8.2

    • +
    • Ubuntu 16.04, 18.04

    • +
    • Clang 3.4, 3.5, 3.7, 3.8, 6.0

    • +
    • GCC 4.8, 4.9, 5.4, 6.3, 8.2, 8.3

    • +
    • MinGW-W64

    • +
    • Visual Studio 2013, 2015, 2017

    • +
    • x86, x86_64, ARM (aarch64), Power8 (ppc64le), zSeries (s390x)

    • +
    +
    +
    +

    Install libmongoc with a Package Manager

    +

    Several Linux distributions provide packages for libmongoc and its dependencies. One advantage of installing libmongoc with a package manager is that its dependencies (including libbson) will be installed automatically. If you choose to install libmongoc from distribution packages, use the package manager to confirm the version being installed is sufficient for your needs.

    +

    The libmongoc package is available on recent versions of Debian and Ubuntu.

    +
    $ apt-get install libmongoc-1.0-0
    +
    +
    +

    On Fedora, a mongo-c-driver package is available in the default repositories and can be installed with:

    +
    $ dnf install mongo-c-driver
    +
    +
    +

    On recent Red Hat systems, such as CentOS and RHEL 7, a mongo-c-driver package is available in the EPEL repository. To check which version is available, see https://packages.fedoraproject.org/pkgs/mongo-c-driver/mongo-c-driver/. The package can be installed with:

    +
    $ yum install mongo-c-driver
    +
    +
    +

    On macOS systems with Homebrew, the mongo-c-driver package can be installed with:

    +
    $ brew install mongo-c-driver
    +
    +
    +
    +
    +

    Install libbson with a Package Manager

    +

    The libbson package is available on recent versions of Debian and Ubuntu. If you have installed libmongoc, then libbson will have already been installed as a dependency. It is also possible to install libbson without libmongoc.

    +
    $ apt-get install libbson-1.0-0
    +
    +
    +

    On Fedora, a libbson package is available in the default repositories and can be installed with:

    +
    $ dnf install libbson
    +
    +
    +

    On recent Red Hat systems, such as CentOS and RHEL 7, a libbson package +is available in the EPEL repository. To check +which version is available, see https://apps.fedoraproject.org/packages/libbson. +The package can be installed with:

    +
    $ yum install libbson
    +
    +
    +
    +
    +

    Build environment

    +
    +

    Build environment on Unix

    +
    +

    Prerequisites for libmongoc

    +

    OpenSSL is required for authentication or for TLS connections to MongoDB. Kerberos or LDAP support requires Cyrus SASL.

    +

    To install all optional dependencies on RedHat / Fedora:

    +
    $ sudo yum install cmake openssl-devel cyrus-sasl-devel
    +
    +
    +

    On Debian / Ubuntu:

    +
    $ sudo apt-get install cmake libssl-dev libsasl2-dev
    +
    +
    +

    On FreeBSD:

    +
    $ su -c 'pkg install cmake openssl cyrus-sasl'
    +
    +
    +
    +
    +

    Prerequisites for libbson

    +

    The only prerequisite for building libbson is cmake. The command lines above can be adjusted to install only cmake.

    +
    +
    +
    +

    Build environment on macOS

    +

    Install the XCode Command Line Tools:

    +
    $ xcode-select --install
    +
    +
    +

    The cmake utility is also required. First install Homebrew according to its instructions, then:

    +
    $ brew install cmake
    +
    +
    +
    +
    +

    Build environment on Windows with Visual Studio

    +

    Building on Windows requires Windows Vista or newer and Visual Studio 2013 or newer. Additionally, cmake is required to generate Visual Studio project files. Installation of these components on Windows is beyond the scope of this document.

    +
    +
    +

    Build environment on Windows with MinGW-W64 and MSYS2

    +

    Install MSYS2 from msys2.github.io. Choose the x86_64 version, not i686.

    +

    Open the MingGW shell with c:\msys64\ming64.exe (not the msys2_shell). Install dependencies:

    +
    $ pacman --noconfirm -Syu
    +$ pacman --noconfirm -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake
    +$ pacman --noconfirm -S mingw-w64-x86_64-extra-cmake-modules make tar
    +$ pacman --noconfirm -S mingw64/mingw-w64-x86_64-cyrus-sasl
    +
    +
    +
    +
    +
    +

    Configuring the build

    +

    Before building libmongoc and/or libbson, it is necessary to configure, or prepare, the build. The steps to prepare the build depend on how you obtained the source code and the build platform.

    +
    +

    Preparing a build from a release tarball

    +

    The most recent release of libmongoc and libbson, both of which are included in mongo-c-driver, can be downloaded here. The instructions in this document utilize cmake’s out-of-source build feature to keep build artifacts separate from source files. While the $ prompt is used throughout, the instructions below will work on Linux, macOS, and Windows (assuming that CMake is in the user’s shell path in all cases). See the subsequent sections for additional platform-specific instructions.

    +

    The following snippet will download and extract the driver, and configure it:

    +
    $ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.23.2/mongo-c-driver-1.23.2.tar.gz
    +$ tar xzf mongo-c-driver-1.23.2.tar.gz
    +$ cd mongo-c-driver-1.23.2
    +$ mkdir cmake-build
    +$ cd cmake-build
    +$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..
    +

    The -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF option is recommended, see Initialization and cleanup. Another useful cmake option is -DCMAKE_BUILD_TYPE=Release for a release optimized build and -DCMAKE_BUILD_TYPE=Debug for a debug build. For a list of all configure options, run cmake -L ...

    +

    If cmake completed successfully, you will see a considerable amount of output describing your build configuration. The final line of output should look something like this:

    +
    -- Build files have been written to: /home/user/mongo-c-driver-1.23.2/cmake-build
    +

    If cmake concludes with anything different, then it is likely an error occurred.

    +

    mongo-c-driver contains a copy of libbson, in case your system does not already have libbson installed. The configuration will detect if libbson is not installed and use the bundled libbson.

    +

    Additionally, it is possible to build only libbson by setting the -DENABLE_MONGOC=OFF option:

    +
    $ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_MONGOC=OFF ..
    +
    +
    +

    A build configuration description similar to the one above will be displayed, though with fewer entries. Once the configuration is complete, the selected items can be built and installed with these commands:

    +
    +
    +

    Preparing a build from a git repository clone

    +

    Clone the repository and prepare the build on the current branch or a particular release tag:

    +
    $ git clone https://github.com/mongodb/mongo-c-driver.git
    +$ cd mongo-c-driver
    +$ git checkout 1.23.2  # To build a particular release
    +$ python build/calc_release_version.py > VERSION_CURRENT
    +$ mkdir cmake-build
    +$ cd cmake-build
    +$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..
    +
    +
    +

    Preparing a build on Windows with Visual Studio

    +

    On the Windows platform with Visual Studio, it may be necessary to specify the CMake generator to use. This is especially important if multiple versions of Visual Studio are installed on the system or if alternate build tools (e.g., MinGW, MSYS2, Cygwin, etc.) are present on the system. Specifying the generator will ensure that the build configuration is known with certainty, rather than relying on the toolchain that CMake happens to find.

    +

    Start by generating Visual Studio project files. The following assumes you are compiling for 64-bit Windows using Visual Studio 2015 Express, which can be freely downloaded from Microsoft. The sample commands utilize cmake’s out-of-source build feature to keep build artifacts separate from source files.

    +
    $ cd mongo-c-driver-1.23.2
    +$ mkdir cmake-build
    +$ cd cmake-build
    +$ cmake -G "Visual Studio 14 2015 Win64" \
    +    "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" \
    +    "-DCMAKE_PREFIX_PATH=C:\mongo-c-driver" \
    +    ..
    +

    (Run cmake -LH .. for a list of other options.)

    +

    To see a complete list of the CMake generators available on your specific system, use a command like this:

    +
    $ cmake --help
    +
    +
    +
    +
    +
    +

    Executing a build

    +
    +

    Building on Unix, macOS, and Windows (MinGW-W64 and MSYS2)

    +
    $ cmake --build .
    +$ sudo cmake --build . --target install
    +
    +
    +

    (Note that the sudo command may not be applicable or available depending on the configuration of your system.)

    +

    In the above commands, the first relies on the default target which builds all configured components. For fine grained control over what gets built, the following command can be used (for Ninja and Makefile-based build systems) to list all available targets:

    +
    $ cmake --build . help
    +
    +
    +
    +
    +

    Building on Windows with Visual Studio

    +

    Once the project files are generated, the project can be opened directly in Visual Studio or compiled from the command line.

    +

    Build using the CMake build tool mode:

    +
    $ cmake --build . --config RelWithDebInfo
    +
    +
    +

    Visual Studio’s default build type is Debug, but we recommend a release build with debug info for production use. Now that libmongoc and libbson are compiled, install them. Components will be installed to the path specified by CMAKE_INSTALL_PREFIX.

    +
    $ cmake --build . --config RelWithDebInfo --target install
    +
    +
    +

    You should now see libmongoc and libbson installed in C:\mongo-c-driver

    +

    For Visual Studio 2019 (16.4 and newer), this command can be used to list all available targets:

    +
    $ cmake --build . -- /targets
    +
    +
    +

    Alternately, you can examine the files matching the glob *.vcxproj in the cmake-build directory.

    +

    To use the driver libraries in your program, see Using libmongoc in a Microsoft Visual Studio project.

    +
    +
    +

    Generating the documentation

    +

    Install Sphinx, then:

    +
    $ cmake -DENABLE_MAN_PAGES=ON -DENABLE_HTML_DOCS=ON ..
    +$ cmake --build . --target mongoc-doc
    +
    +
    +

    To build only the libbson documentation:

    +
    $ cmake -DENABLE_MAN_PAGES=ON -DENABLE_HTML_DOCS=ON ..
    +$ cmake --build . --target bson-doc
    +
    +
    +

    The -DENABLE_MAN_PAGES=ON and -DENABLE_HTML_DOCS=ON can also be added as options to a normal build from a release tarball or from git so that the documentation is built at the same time as other components.

    +
    +
    +

    Uninstalling the installed components

    +

    There are two ways to uninstall the components that have been installed. The first is to invoke the uninstall program directly. On Linux/Unix:

    +
    $ sudo /usr/local/share/mongo-c-driver/uninstall.sh
    +
    +
    +

    On Windows:

    +
    $ C:\mongo-c-driver\share\mongo-c-driver\uninstall.bat
    +
    +
    +

    The second way to uninstall is from within the build directory, assuming that it is in the exact same state as when the install command was invoked:

    +
    $ sudo cmake --build . --target uninstall
    +
    +
    +

    The second approach simply invokes the uninstall program referenced in the first approach.

    +
    +
    +

    Dealing with Build Failures

    +

    If your attempt to build the C driver fails, please see the README for instructions on requesting assistance.

    +
    +
    +
    +

    Additional Options for Integrators

    +

    In the event that you are building the BSON library and/or the C driver to embed with other components and you wish to avoid the potential for collision with components installed from a standard build or from a distribution package manager, you can make use of the BSON_OUTPUT_BASENAME and MONGOC_OUTPUT_BASENAME options to cmake.

    +
    $ cmake -DBSON_OUTPUT_BASENAME=custom_bson -DMONGOC_OUTPUT_BASENAME=custom_mongoc ..
    +
    +
    +

    The above command would produce libraries named libcustom_bson.so and libcustom_mongoc.so (or with the extension appropriate for the build platform). Those libraries could be placed in a standard system directory or in an alternate location and could be linked to by specifying something like -lcustom_mongoc -lcustom_bson on the linker command line (possibly adjusting the specific flags to those required by your linker).

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/lifecycle.html b/libmongoc/1.23.2/lifecycle.html new file mode 100644 index 0000000000000000000000000000000000000000..aa65882b2eb00cdb596d66bed4ff2af3e79f93e4 --- /dev/null +++ b/libmongoc/1.23.2/lifecycle.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + Object Lifecycle — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Object Lifecycle

    +

    This page documents the order of creation and destruction for libmongoc’s main struct types.

    +
    +

    Clients and pools

    +

    Call mongoc_init() once, before calling any other libmongoc functions, and call mongoc_cleanup() once before your program exits.

    +

    A program that uses libmongoc from multiple threads should create a mongoc_client_pool_t with mongoc_client_pool_new(). Each thread acquires a mongoc_client_t from the pool with mongoc_client_pool_pop() and returns it with mongoc_client_pool_push() when the thread is finished using it. To destroy the pool, first return all clients, then call mongoc_client_pool_destroy().

    +

    If your program uses libmongoc from only one thread, create a mongoc_client_t directly with mongoc_client_new() or mongoc_client_new_from_uri(). Destroy it with mongoc_client_destroy().

    +
    + +
    +

    GridFS objects

    +

    You can create a mongoc_gridfs_t from a mongoc_client_t, create a mongoc_gridfs_file_t or mongoc_gridfs_file_list_t from a mongoc_gridfs_t, create a mongoc_gridfs_file_t from a mongoc_gridfs_file_list_t, and create a mongoc_stream_t from a mongoc_gridfs_file_t.

    +

    Each of these objects depends on the object it was created from. Always destroy GridFS objects in the reverse of the order they were created. The sole exception is that a mongoc_gridfs_file_t need not be destroyed before the mongoc_gridfs_file_list_t it was created from.

    +
    +
    +

    GridFS bucket objects

    +

    Create mongoc_gridfs_bucket_t with a mongoc_database_t derived from a mongoc_client_t. The mongoc_database_t is independent from the mongoc_gridfs_bucket_t. But the mongoc_client_t must outlive the mongoc_gridfs_bucket_t.

    +

    A mongoc_stream_t may be created from the mongoc_gridfs_bucket_t. The mongoc_gridfs_bucket_t must outlive the mongoc_stream_t.

    +
    +
    +

    Sessions

    +

    Start a session with mongoc_client_start_session(), use the session for a sequence of operations and multi-document transactions, then free it with mongoc_client_session_destroy(). Any mongoc_cursor_t or mongoc_change_stream_t using a session must be destroyed before the session, and a session must be destroyed before the mongoc_client_t it came from.

    +

    By default, sessions are causally consistent. To disable causal consistency, before starting a session create a mongoc_session_opt_t with mongoc_session_opts_new() and call mongoc_session_opts_set_causal_consistency(), then free the struct with mongoc_session_opts_destroy().

    +

    Unacknowledged writes are prohibited with sessions.

    +

    A mongoc_client_session_t must be used by only one thread at a time. Due to session pooling, mongoc_client_start_session() may return a session that has been idle for some time and is about to be closed after its idle timeout. Use the session within one minute of acquiring it to refresh the session and avoid a timeout.

    +
    +
    +

    Client Side Encryption

    +

    When configuring a mongoc_client_t for automatic encryption via mongoc_client_enable_auto_encryption(), if a separate key vault client is set in the options (via mongoc_auto_encryption_opts_set_keyvault_client()) the key vault client must outlive the encrypted client.

    +

    When configuring a mongoc_client_pool_t for automatic encryption via mongoc_client_pool_enable_auto_encryption(), if a separate key vault client pool is set in the options (via mongoc_auto_encryption_opts_set_keyvault_client_pool()) the key vault client pool must outlive the encrypted client pool.

    +

    When creating a mongoc_client_encryption_t, the configured key vault client (set via mongoc_client_encryption_opts_set_keyvault_client()) must outlive the mongoc_client_encryption_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/logging.html b/libmongoc/1.23.2/logging.html new file mode 100644 index 0000000000000000000000000000000000000000..8d86e931e5024e5562108e6ba97a277e97722096 --- /dev/null +++ b/libmongoc/1.23.2/logging.html @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + Logging — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Logging

    +

    MongoDB C driver Logging Abstraction

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_LOG_LEVEL_ERROR,
    +   MONGOC_LOG_LEVEL_CRITICAL,
    +   MONGOC_LOG_LEVEL_WARNING,
    +   MONGOC_LOG_LEVEL_MESSAGE,
    +   MONGOC_LOG_LEVEL_INFO,
    +   MONGOC_LOG_LEVEL_DEBUG,
    +   MONGOC_LOG_LEVEL_TRACE,
    +} mongoc_log_level_t;
    +
    +#define MONGOC_ERROR(...)
    +#define MONGOC_CRITICAL(...)
    +#define MONGOC_WARNING(...)
    +#define MONGOC_MESSAGE(...)
    +#define MONGOC_INFO(...)
    +#define MONGOC_DEBUG(...)
    +
    +typedef void (*mongoc_log_func_t) (mongoc_log_level_t log_level,
    +                                   const char *log_domain,
    +                                   const char *message,
    +                                   void *user_data);
    +
    +void
    +mongoc_log_set_handler (mongoc_log_func_t log_func, void *user_data);
    +void
    +mongoc_log (mongoc_log_level_t log_level,
    +            const char *log_domain,
    +            const char *format,
    +            ...) BSON_GNUC_PRINTF (3, 4);
    +const char *
    +mongoc_log_level_str (mongoc_log_level_t log_level);
    +void
    +mongoc_log_default_handler (mongoc_log_level_t log_level,
    +                            const char *log_domain,
    +                            const char *message,
    +                            void *user_data);
    +void
    +mongoc_log_trace_enable (void);
    +void
    +mongoc_log_trace_disable (void);
    +
    +
    +

    The MongoDB C driver comes with an abstraction for logging that you can use in your application, or integrate with an existing logging system.

    +
    +
    +

    Macros

    +

    To make logging a little less painful, various helper macros are provided. See the following example.

    +
    #undef MONGOC_LOG_DOMAIN
    +#define MONGOC_LOG_DOMAIN "my-custom-domain"
    +
    +MONGOC_WARNING ("An error occurred: %s", strerror (errno));
    +
    +
    +
    +
    +

    Custom Log Handlers

    +
    +
    The default log handler prints a timestamp and the log message to stdout, or to stderr for warnings, critical messages, and errors.

    You can override the handler with mongoc_log_set_handler(). +Your handler function is called in a mutex for thread safety.

    +
    +
    +

    For example, you could register a custom handler to suppress messages at INFO level and below:

    +
    void
    +my_logger (mongoc_log_level_t log_level,
    +           const char *log_domain,
    +           const char *message,
    +           void *user_data)
    +{
    +   /* smaller values are more important */
    +   if (log_level < MONGOC_LOG_LEVEL_INFO) {
    +      mongoc_log_default_handler (log_level, log_domain, message, user_data);
    +   }
    +}
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_log_set_handler (my_logger, NULL);
    +   mongoc_init ();
    +
    +   /* ... your code ...  */
    +
    +   mongoc_cleanup ();
    +   return 0;
    +}
    +
    +
    +

    Note that in the example above mongoc_log_set_handler() is called before mongoc_init(). +Otherwise, some log traces could not be processed by the log handler.

    +

    To restore the default handler:

    +
    mongoc_log_set_handler (mongoc_log_default_handler, NULL);
    +
    +
    +
    +
    +

    Disable logging

    +

    To disable all logging, including warnings, critical messages and errors, provide an empty log handler:

    +
    mongoc_log_set_handler (NULL, NULL);
    +
    +
    +
    +
    +

    Tracing

    +

    If compiling your own copy of the MongoDB C driver, consider configuring with -DENABLE_TRACING=ON to enable function tracing and hex dumps of network packets to STDERR and STDOUT during development and debugging.

    +

    This is especially useful when debugging what may be going on internally in the driver.

    +

    Trace messages can be enabled and disabled by calling mongoc_log_trace_enable() and mongoc_log_trace_disable()

    +
    +

    Note

    +

    Compiling the driver with -DENABLE_TRACING=ON will affect its performance. Disabling tracing with mongoc_log_trace_disable() significantly reduces the overhead, but cannot remove it completely.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/matcher.html b/libmongoc/1.23.2/matcher.html new file mode 100644 index 0000000000000000000000000000000000000000..1abad5ae437ad2364bc64d30942d0422287fe1b8 --- /dev/null +++ b/libmongoc/1.23.2/matcher.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + Client Side Document Matching — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Client Side Document Matching

    +
    +

    Basic Document Matching (Deprecated)

    +
    +

    Warning

    +

    This feature will be removed in version 2.0.

    +
    +

    The MongoDB C driver supports matching a subset of the MongoDB query specification on the client.

    +

    Currently, basic numeric, string, subdocument, and array equality, $gt, $gte, $lt, $lte, $in, $nin, $ne, $exists, $type, $and, and $or are supported. As this is not the same implementation as the MongoDB server, some inconsistencies may occur. Please file a bug if you find such a case.

    +

    To test this, perform a mongodump of a single collection and pipe it to the program.

    +
    $ echo "db.test.insert({hello:'world'})" | mongo
    +connecting to: test
    +WriteResult({ "nInserted" : 1 })
    +bye
    +
    +$ mongodump -d test -c test -o - | filter-bsondump
    +{ "_id" : { "$oid" : "537afac9a70e5b4d556153bc" }, "hello" : "world" }
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc-common-task-examples.html b/libmongoc/1.23.2/mongoc-common-task-examples.html new file mode 100644 index 0000000000000000000000000000000000000000..086b4e23a2198dbec6bf9e3c08d59eb079a6176b --- /dev/null +++ b/libmongoc/1.23.2/mongoc-common-task-examples.html @@ -0,0 +1,430 @@ + + + + + + + + + + + + + + Common Tasks — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Common Tasks

    +

    Drivers for some other languages provide helper functions to perform certain common tasks. In the C Driver we must explicitly build commands to send to the server.

    +
    +

    Setup

    +

    First we’ll write some code to insert sample data:

    +
    +
    doc-common-insert.c
    +
    /* Don't try to compile this file on its own. It's meant to be #included
    +   by example code */
    +
    +/* Insert some sample data */
    +bool
    +insert_data (mongoc_collection_t *collection)
    +{
    +   mongoc_bulk_operation_t *bulk;
    +   enum N { ndocs = 4 };
    +   bson_t *docs[ndocs];
    +   bson_error_t error;
    +   int i = 0;
    +   bool ret;
    +
    +   bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL);
    +
    +   docs[0] = BCON_NEW ("x", BCON_DOUBLE (1.0), "tags", "[", "dog", "cat", "]");
    +   docs[1] = BCON_NEW ("x", BCON_DOUBLE (2.0), "tags", "[", "cat", "]");
    +   docs[2] = BCON_NEW (
    +      "x", BCON_DOUBLE (2.0), "tags", "[", "mouse", "cat", "dog", "]");
    +   docs[3] = BCON_NEW ("x", BCON_DOUBLE (3.0), "tags", "[", "]");
    +
    +   for (i = 0; i < ndocs; i++) {
    +      mongoc_bulk_operation_insert (bulk, docs[i]);
    +      bson_destroy (docs[i]);
    +      docs[i] = NULL;
    +   }
    +
    +   ret = mongoc_bulk_operation_execute (bulk, NULL, &error);
    +
    +   if (!ret) {
    +      fprintf (stderr, "Error inserting data: %s\n", error.message);
    +   }
    +
    +   mongoc_bulk_operation_destroy (bulk);
    +   return ret;
    +}
    +
    +/* A helper which we'll use a lot later on */
    +void
    +print_res (const bson_t *reply)
    +{
    +   char *str;
    +   BSON_ASSERT (reply);
    +   str = bson_as_canonical_extended_json (reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +}
    +
    +
    +
    +
    +
    +

    “explain” Command

    +

    This is how to use the explain command in MongoDB 3.2+:

    +
    +
    explain.c
    +
    bool
    +explain (mongoc_collection_t *collection)
    +{
    +   bson_t *command;
    +   bson_t reply;
    +   bson_error_t error;
    +   bool res;
    +
    +   command = BCON_NEW ("explain",
    +                       "{",
    +                       "find",
    +                       BCON_UTF8 (COLLECTION_NAME),
    +                       "filter",
    +                       "{",
    +                       "x",
    +                       BCON_INT32 (1),
    +                       "}",
    +                       "}");
    +   res = mongoc_collection_command_simple (
    +      collection, command, NULL, &reply, &error);
    +   if (!res) {
    +      fprintf (stderr, "Error with explain: %s\n", error.message);
    +      goto cleanup;
    +   }
    +
    +   /* Do something with the reply */
    +   print_res (&reply);
    +
    +cleanup:
    +   bson_destroy (&reply);
    +   bson_destroy (command);
    +   return res;
    +}
    +
    +
    +
    +
    +
    +

    Running the Examples

    +
    +
    common-operations.c
    +
    /*
    + * Copyright 2016 MongoDB, Inc.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +
    +const char *COLLECTION_NAME = "things";
    +
    +#include "../doc-common-insert.c"
    +#include "explain.c"
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_database_t *database = NULL;
    +   mongoc_client_t *client = NULL;
    +   mongoc_collection_t *collection = NULL;
    +   mongoc_uri_t *uri = NULL;
    +   bson_error_t error;
    +   char *host_and_port;
    +   int res = 0;
    +
    +   if (argc < 2 || argc > 3) {
    +      fprintf (stderr,
    +               "usage: %s MONGOD-1-CONNECTION-STRING "
    +               "[MONGOD-2-HOST-NAME:MONGOD-2-PORT]\n",
    +               argv[0]);
    +      fprintf (stderr,
    +               "MONGOD-1-CONNECTION-STRING can be "
    +               "of the following forms:\n");
    +      fprintf (stderr, "localhost\t\t\t\tlocal machine\n");
    +      fprintf (stderr, "localhost:27018\t\t\t\tlocal machine on port 27018\n");
    +      fprintf (stderr,
    +               "mongodb://user:pass@localhost:27017\t"
    +               "local machine on port 27017, and authenticate with username "
    +               "user and password pass\n");
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_init ();
    +
    +   if (strncmp (argv[1], "mongodb://", 10) == 0) {
    +      host_and_port = bson_strdup (argv[1]);
    +   } else {
    +      host_and_port = bson_strdup_printf ("mongodb://%s", argv[1]);
    +   }
    +
    +   uri = mongoc_uri_new_with_error (host_and_port, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               host_and_port,
    +               error.message);
    +      res = EXIT_FAILURE;
    +      goto cleanup;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      res = EXIT_FAILURE;
    +      goto cleanup;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   database = mongoc_client_get_database (client, "test");
    +   collection = mongoc_database_get_collection (database, COLLECTION_NAME);
    +
    +   printf ("Inserting data\n");
    +   if (!insert_data (collection)) {
    +      res = EXIT_FAILURE;
    +      goto cleanup;
    +   }
    +
    +   printf ("explain\n");
    +   if (!explain (collection)) {
    +      res = EXIT_FAILURE;
    +      goto cleanup;
    +   }
    +
    +cleanup:
    +   if (collection) {
    +      mongoc_collection_destroy (collection);
    +   }
    +
    +   if (database) {
    +      mongoc_database_destroy (database);
    +   }
    +
    +   if (client) {
    +      mongoc_client_destroy (client);
    +   }
    +
    +   if (uri) {
    +      mongoc_uri_destroy (uri);
    +   }
    +
    +   bson_free (host_and_port);
    +   mongoc_cleanup ();
    +   return res;
    +}
    +
    +
    +
    +

    First launch two separate instances of mongod (must be done from separate shells):

    +
    $ mongod
    +
    +
    +
    $ mkdir /tmp/db2
    +$ mongod --dbpath /tmp/db2 --port 27018 # second instance
    +
    +
    +

    Now compile and run the example program:

    +
    $ cd examples/common_operations/$ gcc -Wall -o example common-operations.c $(pkg-config --cflags --libs libmongoc-1.0)$ ./example localhost:27017 localhost:27018
    +Inserting data
    +explain
    +{
    +   "executionStats" : {
    +      "allPlansExecution" : [],
    +      "executionStages" : {
    +         "advanced" : 19,
    +         "direction" : "forward" ,
    +         "docsExamined" : 76,
    +         "executionTimeMillisEstimate" : 0,
    +         "filter" : {
    +            "x" : {
    +               "$eq" : 1
    +            }
    +         },
    +         "invalidates" : 0,
    +         "isEOF" : 1,
    +         "nReturned" : 19,
    +         "needTime" : 58,
    +         "needYield" : 0,
    +         "restoreState" : 0,
    +         "saveState" : 0,
    +         "stage" : "COLLSCAN" ,
    +         "works" : 78
    +      },
    +      "executionSuccess" : true,
    +      "executionTimeMillis" : 0,
    +      "nReturned" : 19,
    +      "totalDocsExamined" : 76,
    +      "totalKeysExamined" : 0
    +   },
    +   "ok" : 1,
    +   "queryPlanner" : {
    +      "indexFilterSet" : false,
    +      "namespace" : "test.things",
    +      "parsedQuery" : {
    +         "x" : {
    +            "$eq" : 1
    +         }
    +      },
    +      "plannerVersion" : 1,
    +      "rejectedPlans" : [],
    +      "winningPlan" : {
    +         "direction" : "forward" ,
    +         "filter" : {
    +            "x" : {
    +               "$eq" : 1
    +            }
    +         },
    +         "stage" : "COLLSCAN"
    +      }
    +   },
    +   "serverInfo" : {
    +      "gitVersion" : "05552b562c7a0b3143a729aaa0838e558dc49b25" ,
    +      "host" : "MacBook-Pro-57.local",
    +      "port" : 27017,
    +      "version" : "3.2.6"
    +   }
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_callbacks_destroy.html b/libmongoc/1.23.2/mongoc_apm_callbacks_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..8147aa22ea3a01c3c545d4e60506fb6baa4f5d7a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_callbacks_destroy.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + mongoc_apm_callbacks_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_callbacks_new.html b/libmongoc/1.23.2/mongoc_apm_callbacks_new.html new file mode 100644 index 0000000000000000000000000000000000000000..103c60dbed8ef2f0eb5a8754b46cfb5c4ebe951c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_callbacks_new.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + mongoc_apm_callbacks_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_callbacks_new()

    +
    +

    Synopsis

    +
    mongoc_apm_callbacks_t *
    +mongoc_apm_callbacks_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Create a struct to hold event-notification callbacks.

    +
    +
    +

    Returns

    +

    A new mongoc_apm_callbacks_t you must free with mongoc_apm_callbacks_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_callbacks_t.html b/libmongoc/1.23.2/mongoc_apm_callbacks_t.html new file mode 100644 index 0000000000000000000000000000000000000000..88e5221eed779651896af50e53507ac9ac35fd02 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_callbacks_t.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + mongoc_apm_callbacks_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_command_name.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_command_name.html new file mode 100644 index 0000000000000000000000000000000000000000..46de43b805a283d5cd1c70edbfbdbe582ab82bd1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_command_name.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_command_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_command_name()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_apm_command_failed_get_command_name (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s command name. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A string that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_context.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..4cffb7d60f97f7b17fa530d7f502881d405e37f1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_duration.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..29098f58350302d43bcfe1c009563ef2c248c765 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_duration.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_duration() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_duration()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_failed_get_duration (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s duration in microseconds.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s duration.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_error.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_error.html new file mode 100644 index 0000000000000000000000000000000000000000..e44d828aa29c1a51cdff64211cbef5a0676ac80b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_error.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_error()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_command_failed_get_error (const mongoc_apm_command_failed_t *event,
    +                                     bson_error_t *error);
    +
    +
    +

    Copies this event’s error info.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_host.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..fe44c7e43a022cbf0954c2d672341a0c37eff4d3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_host.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_command_failed_get_host (const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_operation_id.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_operation_id.html new file mode 100644 index 0000000000000000000000000000000000000000..5a269860070589344c84c59ac97768cdf9fe3b8f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_operation_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_operation_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_operation_id()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_failed_get_operation_id (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s operation id. This number correlates all the commands in a bulk operation, or all the “find” and “getMore” commands required to stream a large query result.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s operation id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_reply.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..9f0daced426a1e17fc8169fa15f4126d75a879b9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_reply.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_reply() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_reply()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_apm_command_failed_get_reply (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns the server’s reply to a command that failed. The reply contains details about why the command failed. If no server reply was received, such as in the event of a network error, then the reply is a valid empty BSON document. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_request_id.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_request_id.html new file mode 100644 index 0000000000000000000000000000000000000000..dcac2b0a1691f22a814921110fcc3078dd7790ab --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_request_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_request_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_request_id()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_failed_get_request_id (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s wire-protocol request id. Use this number to correlate client-side events with server log messages.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s request id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_server_connection_id.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_server_connection_id.html new file mode 100644 index 0000000000000000000000000000000000000000..aa61a7c48f73319cc8043c8b881d52a58920e9fb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_server_connection_id.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_server_connection_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_server_connection_id()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_apm_command_failed_get_server_connection_id (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s context.

    +

    Returns the server connection ID for the command. The server connection ID is +distinct from the server ID (mongoc_apm_command_failed_get_server_id()) +and is returned by the hello or legacy hello response as “connectionId” from the +server on 4.2+.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The server connection ID as a positive integer or -1 if it is not available.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_server_id.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..5963db36ac5569521c1bd415a0f15426766c4cec --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_server_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_server_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_server_id()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_apm_command_failed_get_server_id (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s server id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s server id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_get_service_id.html b/libmongoc/1.23.2/mongoc_apm_command_failed_get_service_id.html new file mode 100644 index 0000000000000000000000000000000000000000..7f35974e5d8babf628fabeb08c3ff5843f28f9f7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_get_service_id.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_service_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_service_id()

    +
    +

    Synopsis

    +
    const bson_oid_t *
    +mongoc_apm_command_failed_get_service_id (
    +   const mongoc_apm_command_failed_t *event);
    +
    +
    +

    Returns this event’s service ID, which identifies the MongoDB service behind a +load balancer, or NULL if not connected to a load balanced cluster.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_oid_t that should not be modified or freed or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_failed_t.html b/libmongoc/1.23.2/mongoc_apm_command_failed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0a2a8e97b3403d15157af4f57da2a52d47177907 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_failed_t.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_command.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_command.html new file mode 100644 index 0000000000000000000000000000000000000000..e8ea846b2aef06ee55fe2f707ff8006e0983a5d1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_command.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_command() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_command()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_apm_command_started_get_command (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s command. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_command_name.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_command_name.html new file mode 100644 index 0000000000000000000000000000000000000000..1d687c43d52ae43da03eb859a87eaeaf5a710b82 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_command_name.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_command_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_command_name()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_apm_command_started_get_command_name (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s command name. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A string that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_context.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..de017b4f5f86633e1724af82020c33b5f223b294 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_database_name.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_database_name.html new file mode 100644 index 0000000000000000000000000000000000000000..f1a4962f2a6912f6f8035dc2a605a6c788eeceae --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_database_name.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_database_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_database_name()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_apm_command_started_get_database_name (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s database name. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A string that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_host.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..7468c4c4b66d60faf9cf147321d0f8a8b08120d9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_host.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_command_started_get_host (const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_operation_id.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_operation_id.html new file mode 100644 index 0000000000000000000000000000000000000000..3a1de3b2d07a0657e16f958c97b1acee3db09259 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_operation_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_operation_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_operation_id()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_started_get_operation_id (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s operation id. This number correlates all the commands in a bulk operation, or all the “find” and “getMore” commands required to stream a large query result.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s operation id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_request_id.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_request_id.html new file mode 100644 index 0000000000000000000000000000000000000000..bc19c8c94551f11680de6bcfecfa6af2a100300c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_request_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_request_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_request_id()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_started_get_request_id (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s wire-protocol request id. Use this number to correlate client-side events with server log messages.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s request id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_server_connection_id.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_server_connection_id.html new file mode 100644 index 0000000000000000000000000000000000000000..0b0fc0957df7f7e9fd63744b3b7d09aaeed74cde --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_server_connection_id.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_server_connection_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_server_connection_id()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_apm_command_started_get_server_connection_id (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns the server connection ID for the command. The server connection ID is +distinct from the server ID (mongoc_apm_command_started_get_server_id()) +and is returned by the hello or legacy hello response as “connectionId” from the +server on 4.2+.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The server connection ID as a positive integer or -1 if it is not available.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_server_id.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..b0aba1795bafdd1754e4d51ec3d387a7e822359d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_server_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_server_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_server_id()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_apm_command_started_get_server_id (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s server id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s server id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_get_service_id.html b/libmongoc/1.23.2/mongoc_apm_command_started_get_service_id.html new file mode 100644 index 0000000000000000000000000000000000000000..24c63f1c97d9867f93e711d1b39cf5e3d74b420a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_get_service_id.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_service_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_service_id()

    +
    +

    Synopsis

    +
    const bson_oid_t *
    +mongoc_apm_command_started_get_service_id (
    +   const mongoc_apm_command_started_t *event);
    +
    +
    +

    Returns this event’s service ID, which identifies the MongoDB service behind a +load balancer, or NULL if not connected to a load balanced cluster.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_oid_t that should not be modified or freed or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_started_t.html b/libmongoc/1.23.2/mongoc_apm_command_started_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9eae0d05841a5f8d98fa90fb08567763fc757728 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_started_t.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_command_name.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_command_name.html new file mode 100644 index 0000000000000000000000000000000000000000..dbae7fd44bc2f0bd6a8966337fd0bdd93fc6ebd7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_command_name.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_command_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_command_name()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_apm_command_succeeded_get_command_name (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s command name. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A string that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_context.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..5b6d127ea68a6fb38a46ad5a419e36260c6aa792 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_duration.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..6aabb44ff4a1e89e57c8220a1ce7ddfc35c7fe4e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_duration.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_duration() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_duration()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_succeeded_get_duration (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s duration in microseconds.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s duration.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_host.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..adb25acbdfa088507781e9401b2aa86a0586623d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_host.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_command_succeeded_get_host (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_operation_id.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_operation_id.html new file mode 100644 index 0000000000000000000000000000000000000000..0ef56b5b266a6402c7d75ec48ae63eb3d574e77d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_operation_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_operation_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_operation_id()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_succeeded_get_operation_id (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s operation id. This number correlates all the commands in a bulk operation, or all the “find” and “getMore” commands required to stream a large query result.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s operation id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_reply.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..b7543c1ea671e3ae08b59f423ff973f8253d0e68 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_reply.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_reply() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_reply()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_apm_command_succeeded_get_reply (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s reply. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_request_id.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_request_id.html new file mode 100644 index 0000000000000000000000000000000000000000..97f3bd9a936df5233813dbe8267aad8f6ed35ac8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_request_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_request_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_request_id()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_succeeded_get_request_id (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s wire-protocol request id. Use this number to correlate client-side events with server log messages.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s request id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_server_connection_id.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_server_connection_id.html new file mode 100644 index 0000000000000000000000000000000000000000..5c074bdecf20695a0ea27e9a34b904494007a355 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_server_connection_id.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_server_connection_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_server_connection_id()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_apm_command_succeeded_get_server_connection_id (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns the server connection ID for the command. The server connection ID is +distinct from the server ID +(mongoc_apm_command_succeeded_get_server_id()) and is returned by the +hello or legacy hello response as “connectionId” from the server on 4.2+.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The server connection ID as a positive integer or -1 if it is not available.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_server_id.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..4e748c49f779c94a2e5302eb3d10ff2ec5a46c8b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_server_id.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_server_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_server_id()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_apm_command_succeeded_get_server_id (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s server id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s server id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_service_id.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_service_id.html new file mode 100644 index 0000000000000000000000000000000000000000..83f43d16b50a469ee454eb11e1d56f20a8f94f94 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_get_service_id.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_service_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_service_id()

    +
    +

    Synopsis

    +
    const bson_oid_t *
    +mongoc_apm_command_succeeded_get_service_id (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +
    +

    Returns this event’s service ID, which identifies the MongoDB service behind a +load balancer, or NULL if not connected to a load balanced cluster.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_oid_t that should not be modified or freed or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_command_succeeded_t.html b/libmongoc/1.23.2/mongoc_apm_command_succeeded_t.html new file mode 100644 index 0000000000000000000000000000000000000000..468f1933dbf0ce3d5db657cbc682105e3bc0338b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_command_succeeded_t.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_changed_get_context.html b/libmongoc/1.23.2/mongoc_apm_server_changed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..525800f7f47457ab17dce23d292577d1951433ce --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_changed_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_changed_get_host.html b/libmongoc/1.23.2/mongoc_apm_server_changed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..9211834ebb5a3966dc5849ef7fc58bc741715739 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_changed_get_host.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_changed_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_server_changed_get_host (const mongoc_apm_server_changed_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_changed_get_new_description.html b/libmongoc/1.23.2/mongoc_apm_server_changed_get_new_description.html new file mode 100644 index 0000000000000000000000000000000000000000..cd76d782214dc742bf10610f641edd200a2e8971 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_changed_get_new_description.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_new_description() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_changed_get_new_description()

    +
    +

    Synopsis

    +
    const mongoc_server_description_t *
    +mongoc_apm_server_changed_get_new_description (
    +   const mongoc_apm_server_changed_t *event);
    +
    +
    +

    Returns this event’s new description. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_server_description_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_changed_get_previous_description.html b/libmongoc/1.23.2/mongoc_apm_server_changed_get_previous_description.html new file mode 100644 index 0000000000000000000000000000000000000000..1e5bd49349e0950718a44436e37cf03ddca44569 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_changed_get_previous_description.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_previous_description() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_changed_get_previous_description()

    +
    +

    Synopsis

    +
    const mongoc_server_description_t *
    +mongoc_apm_server_changed_get_previous_description (
    +   const mongoc_apm_server_changed_t *event);
    +
    +
    +

    Returns this event’s previous description. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_server_description_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_changed_get_topology_id.html b/libmongoc/1.23.2/mongoc_apm_server_changed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..8cd07b85293172ec73926179c757ba1843562849 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_changed_get_topology_id.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_topology_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_changed_get_topology_id()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_server_changed_get_topology_id (
    +   const mongoc_apm_server_changed_t *event, bson_oid_t *topology_id);
    +
    +
    +

    Returns this event’s topology id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s topology id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_changed_t.html b/libmongoc/1.23.2/mongoc_apm_server_changed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c2c45becb51ec44629f770d244bf3a6ecb985191 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_changed_t.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_closed_get_context.html b/libmongoc/1.23.2/mongoc_apm_server_closed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..18d572aef82ea25bd087e2f21f2aa716c3a30c15 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_closed_get_context.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_closed_get_host.html b/libmongoc/1.23.2/mongoc_apm_server_closed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..ba6b3eb201744219b34ab2da0ac361115b9877fe --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_closed_get_host.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_closed_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_server_closed_get_host (const mongoc_apm_server_closed_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_closed_get_topology_id.html b/libmongoc/1.23.2/mongoc_apm_server_closed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..3f9b1f224804c01cc1679e34bdd71f682ac74cc3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_closed_get_topology_id.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_get_topology_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_closed_get_topology_id()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_server_closed_get_topology_id (
    +   const mongoc_apm_server_closed_t *event, bson_oid_t *topology_id);
    +
    +
    +

    Returns this event’s topology id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s topology id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_closed_t.html b/libmongoc/1.23.2/mongoc_apm_server_closed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..609842d550e6a5ecd6a5c172da3c6b1ced506cd7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_closed_t.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_awaited.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_awaited.html new file mode 100644 index 0000000000000000000000000000000000000000..d1a8f32207103c666e39e1ecebfe675ba75a5481 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_awaited.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_awaited() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_failed_get_awaited()

    +
    +

    Synopsis

    +
    bool
    +mongoc_apm_server_heartbeat_failed_get_awaited (
    +   const mongoc_apm_server_heartbeat_failed_t *event);
    +
    +
    +

    Returns whether this event came from an awaitable hello.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bool indicating whether the heartbeat event came from an awaitable hello.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_context.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..cd031d4890e6abbc52530aca2889189641554f80 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_duration.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..8625b3dc94ffaa33dcd27faca9442deb7318221b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_duration.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_duration() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_failed_get_duration()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_server_heartbeat_failed_get_duration (
    +   const mongoc_apm_server_heartbeat_failed_t *event);
    +
    +
    +

    Returns this event’s duration in microseconds.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s duration.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_error.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_error.html new file mode 100644 index 0000000000000000000000000000000000000000..81ecefdfb31b33513be89ddd24bf4451f7b682db --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_error.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_failed_get_error()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_server_heartbeat_failed_get_error (
    +   const mongoc_apm_server_heartbeat_failed_t *event, bson_error_t *error);
    +
    +
    +

    Copies this event’s error info.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_host.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..30966a0a1e99b67b5beebb3afaa961e34a4e4eac --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_get_host.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_failed_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_server_heartbeat_failed_get_host (
    +   const mongoc_apm_server_heartbeat_failed_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_t.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5af6222b68f0e99879f2236aa8ac558e2d475e6f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_failed_t.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_awaited.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_awaited.html new file mode 100644 index 0000000000000000000000000000000000000000..df207140c03aec084aa65760313952b3e1c2e5d7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_awaited.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_get_awaited() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_started_get_awaited()

    +
    +

    Synopsis

    +
    bool
    +mongoc_apm_server_heartbeat_started_get_awaited (
    +   const mongoc_apm_server_heartbeat_started_t *event);
    +
    +
    +

    Returns whether this event came from an awaitable hello.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bool indicating whether the heartbeat event came from an awaitable hello.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_context.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..feae554e9897ad576873e0ec01257f1fd37c2236 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_host.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..262efe136b151aee3a1ae23367b50dc3bf3a46aa --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_get_host.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_started_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_server_heartbeat_started_get_host (
    +   const mongoc_apm_server_heartbeat_started_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_t.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_t.html new file mode 100644 index 0000000000000000000000000000000000000000..be59af5562987266195f7dcbc04ccc0f4b64fc60 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_started_t.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_awaited.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_awaited.html new file mode 100644 index 0000000000000000000000000000000000000000..06933c17689c8b2d56c47fbcb9c2b6373fe3d796 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_awaited.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_awaited() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_succeeded_get_awaited()

    +
    +

    Synopsis

    +
    bool
    +mongoc_apm_server_heartbeat_succeeded_get_awaited (
    +   const mongoc_apm_server_heartbeat_succeeded_t *event);
    +
    +
    +

    Returns whether this event came from an awaitable hello.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bool indicating whether the heartbeat event came from an awaitable hello.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_context.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..01904955f17826d9cc1ec30da942c6d4176e64a3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_duration.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..667e0d726ec8b04465fd0c728b431b0166de3452 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_duration.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_duration() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_succeeded_get_duration()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_server_heartbeat_succeeded_get_duration (
    +   const mongoc_apm_server_heartbeat_succeeded_t *event);
    +
    +
    +

    Returns this event’s duration in microseconds.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s duration.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_host.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..926fe5b8dae904089cee58a5d56852a60b293f1f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_host.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_succeeded_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_server_heartbeat_succeeded_get_host (
    +   const mongoc_apm_server_heartbeat_succeeded_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_reply.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..9f671b7e84b38bfba2919805fa20f26ef8b66543 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_get_reply.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_reply() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_heartbeat_succeeded_get_reply()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_apm_server_heartbeat_succeeded_get_reply (
    +   const mongoc_apm_server_heartbeat_succeeded_t *event);
    +
    +
    +

    Returns this event’s reply. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_t.html b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a940c9789e50d9bb45dbefc02360e1017bf88015 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_heartbeat_succeeded_t.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_opening_get_context.html b/libmongoc/1.23.2/mongoc_apm_server_opening_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..1af4b0e9edec6fe12ad5660fe20c2ffa90c2ad2e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_opening_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_opening_get_host.html b/libmongoc/1.23.2/mongoc_apm_server_opening_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..0df9a11a818feb2d3ee54d57491b1b815566b913 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_opening_get_host.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_opening_get_host()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_apm_server_opening_get_host (const mongoc_apm_server_opening_t *event);
    +
    +
    +

    Returns this event’s host. This mongoc_host_list_t is not part of a linked list, it is solely the server for this event. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_host_list_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_opening_get_topology_id.html b/libmongoc/1.23.2/mongoc_apm_server_opening_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..c29c9b4f917476a777231b2a543ea6027b7f6de3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_opening_get_topology_id.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_get_topology_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_server_opening_get_topology_id()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_server_opening_get_topology_id (
    +   const mongoc_apm_server_opening_t *event, bson_oid_t *topology_id);
    +
    +
    +

    Returns this event’s topology id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s topology id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_server_opening_t.html b/libmongoc/1.23.2/mongoc_apm_server_opening_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9f516b94f6793e9fe99a9d60c1fa7e7849081da4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_server_opening_t.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_command_failed_cb.html b/libmongoc/1.23.2/mongoc_apm_set_command_failed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..e463b03fcfdaa5d9a6f3a34437574de9d8ef0907 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_command_failed_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_command_failed_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_command_failed_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_command_failed_cb_t) (
    +   const mongoc_apm_command_failed_t *event);
    +
    +void
    +mongoc_apm_set_command_failed_cb (mongoc_apm_callbacks_t *callbacks,
    +                                  mongoc_apm_command_failed_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver fails to execute a MongoDB operation.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_command_started_cb.html b/libmongoc/1.23.2/mongoc_apm_set_command_started_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..a1449f241da42eabed110ec0865d766ae6cf97be --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_command_started_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_command_started_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_command_started_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_command_started_cb_t) (
    +   const mongoc_apm_command_started_t *event);
    +
    +void
    +mongoc_apm_set_command_started_cb (mongoc_apm_callbacks_t *callbacks,
    +                                   mongoc_apm_command_started_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver starts a MongoDB operation.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_command_succeeded_cb.html b/libmongoc/1.23.2/mongoc_apm_set_command_succeeded_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..ceb9f0065684e0597fbb4ea3361f96380da354ce --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_command_succeeded_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_command_succeeded_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_command_succeeded_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_command_succeeded_cb_t) (
    +   const mongoc_apm_command_succeeded_t *event);
    +
    +void
    +mongoc_apm_set_command_succeeded_cb (mongoc_apm_callbacks_t *callbacks,
    +                                     mongoc_apm_command_succeeded_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver completes a MongoDB operation.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_server_changed_cb.html b/libmongoc/1.23.2/mongoc_apm_set_server_changed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..4c0c214da55e17387e8e2065eb4f588adf7f3f68 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_server_changed_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_changed_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_server_changed_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_server_changed_cb_t) (
    +   const mongoc_apm_server_changed_t *event);
    +
    +void
    +mongoc_apm_set_server_changed_cb (mongoc_apm_callbacks_t *callbacks,
    +                                  mongoc_apm_server_changed_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver observes a change in status of a server it is connected to.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_server_closed_cb.html b/libmongoc/1.23.2/mongoc_apm_set_server_closed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..5c524e5b43b3206cd724cf2260101ca1f92d0f59 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_server_closed_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_closed_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_server_closed_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_server_closed_cb_t) (
    +   const mongoc_apm_server_closed_t *event);
    +
    +void
    +mongoc_apm_set_server_closed_cb (mongoc_apm_callbacks_t *callbacks,
    +                                 mongoc_apm_server_closed_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver stops monitoring a server and removes its mongoc_server_description_t.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_failed_cb.html b/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_failed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..dfa1d272edf392136bea1d6e9707225b3f29ba47 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_failed_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_heartbeat_failed_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_server_heartbeat_failed_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_server_heartbeat_failed_cb_t) (
    +   const mongoc_apm_server_heartbeat_failed_t *event);
    +
    +void
    +mongoc_apm_set_server_heartbeat_failed_cb (mongoc_apm_callbacks_t *callbacks,
    +                                           mongoc_apm_server_heartbeat_failed_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver fails to send a “hello” command to check the status of a server.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_started_cb.html b/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_started_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..22c2bd873cd1db595e75d851eafd75fc23b41d53 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_started_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_heartbeat_started_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_server_heartbeat_started_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_server_heartbeat_started_cb_t) (
    +   const mongoc_apm_server_heartbeat_started_t *event);
    +
    +void
    +mongoc_apm_set_server_heartbeat_started_cb (mongoc_apm_callbacks_t *callbacks,
    +                                            mongoc_apm_server_heartbeat_started_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver begins executing a “hello” command to check the status of a server.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_succeeded_cb.html b/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_succeeded_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..46b259e28b9b7116e1ff8223d5f1a987c0883a9d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_server_heartbeat_succeeded_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_heartbeat_succeeded_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_server_heartbeat_succeeded_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_server_heartbeat_succeeded_cb_t) (
    +   const mongoc_apm_server_heartbeat_succeeded_t *event);
    +
    +void
    +mongoc_apm_set_server_heartbeat_succeeded_cb (mongoc_apm_callbacks_t *callbacks,
    +                                              mongoc_apm_server_heartbeat_succeeded_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver completes a “hello” command to check the status of a server.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_server_opening_cb.html b/libmongoc/1.23.2/mongoc_apm_set_server_opening_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..397375b7c39899e5c58c9bf58668f5c2a444274d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_server_opening_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_opening_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_server_opening_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_server_opening_cb_t) (
    +   const mongoc_apm_server_opening_t *event);
    +
    +void
    +mongoc_apm_set_server_opening_cb (mongoc_apm_callbacks_t *callbacks,
    +                                  mongoc_apm_server_opening_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver adds a mongoc_server_description_t for a new server it was not monitoring before.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_topology_changed_cb.html b/libmongoc/1.23.2/mongoc_apm_set_topology_changed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..5c269efbed9299c6572d868caca0225249e8beb0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_topology_changed_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_topology_changed_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_topology_changed_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_topology_changed_cb_t) (
    +   const mongoc_apm_topology_changed_t *event);
    +
    +void
    +mongoc_apm_set_topology_changed_cb (mongoc_apm_callbacks_t *callbacks,
    +                                    mongoc_apm_topology_changed_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver observes a change in any of the servers it is connected to or a change in the overall server topology.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_topology_closed_cb.html b/libmongoc/1.23.2/mongoc_apm_set_topology_closed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..458298ec963db1c63ba33f77ee3a7cff92465d38 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_topology_closed_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_topology_closed_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_topology_closed_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_topology_closed_cb_t) (
    +   const mongoc_apm_topology_closed_t *event);
    +
    +void
    +mongoc_apm_set_topology_closed_cb (mongoc_apm_callbacks_t *callbacks,
    +                                   mongoc_apm_topology_closed_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver stops monitoring a server topology and destroys its mongoc_topology_description_t.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_set_topology_opening_cb.html b/libmongoc/1.23.2/mongoc_apm_set_topology_opening_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..5af5e9fa264fc8d59be4e18f8be94105a96f42e5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_set_topology_opening_cb.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_set_topology_opening_cb() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_set_topology_opening_cb()

    +
    +

    Synopsis

    +
    typedef void (*mongoc_apm_topology_opening_cb_t) (
    +   const mongoc_apm_topology_opening_t *event);
    +
    +void
    +mongoc_apm_set_topology_opening_cb (mongoc_apm_callbacks_t *callbacks,
    +                                    mongoc_apm_topology_opening_cb_t cb);
    +
    +
    +

    Receive an event notification whenever the driver initializes a mongoc_topology_description_t.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_changed_get_context.html b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..942b637a4e2a5c8b53b3166e41dee50cdd28cee5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_changed_get_new_description.html b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_new_description.html new file mode 100644 index 0000000000000000000000000000000000000000..5eac93c2b4d5ee82a29f61f280b45273756479e1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_new_description.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_new_description() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_topology_changed_get_new_description()

    +
    +

    Synopsis

    +
    const mongoc_topology_description_t *
    +mongoc_apm_topology_changed_get_new_description (
    +   const mongoc_apm_topology_changed_t *event);
    +
    +
    +

    Returns this event’s new description. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_topology_description_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_changed_get_previous_description.html b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_previous_description.html new file mode 100644 index 0000000000000000000000000000000000000000..4f26ac2de16894bcc5f9d1b7352ae809d6f1de7c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_previous_description.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_previous_description() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_topology_changed_get_previous_description()

    +
    +

    Synopsis

    +
    const mongoc_topology_description_t *
    +mongoc_apm_topology_changed_get_previous_description (
    +   const mongoc_apm_topology_changed_t *event);
    +
    +
    +

    Returns this event’s previous description. The data is only valid in the scope of the callback that receives this event; copy it if it will be accessed after the callback returns.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_topology_description_t that should not be modified or freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_changed_get_topology_id.html b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..a8f5c076c1869b86b746910e8680eb9b1eefcfdc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_changed_get_topology_id.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_topology_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_topology_changed_get_topology_id()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_topology_changed_get_topology_id (
    +   const mongoc_apm_topology_changed_t *event, bson_oid_t *topology_id);
    +
    +
    +

    Returns this event’s topology id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s topology id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_changed_t.html b/libmongoc/1.23.2/mongoc_apm_topology_changed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..cab56e3bf806dd8d1b43536ad0231e44aa8a771a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_changed_t.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_closed_get_context.html b/libmongoc/1.23.2/mongoc_apm_topology_closed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..afa5f08721fc46d72a2b8ca3dffa82908faef99d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_closed_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_topology_closed_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_closed_get_topology_id.html b/libmongoc/1.23.2/mongoc_apm_topology_closed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..103658bed42323bba87be3129b3b1f71c45fe972 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_closed_get_topology_id.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_topology_closed_get_topology_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_topology_closed_get_topology_id()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_topology_closed_get_topology_id (
    +   const mongoc_apm_topology_closed_t *event, bson_oid_t *topology_id);
    +
    +
    +

    Returns this event’s topology id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s topology id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_closed_t.html b/libmongoc/1.23.2/mongoc_apm_topology_closed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..b6209e0dc7d21a9633bffe9e4efb02c6fb97ca35 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_closed_t.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + mongoc_apm_topology_closed_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_opening_get_context.html b/libmongoc/1.23.2/mongoc_apm_topology_opening_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..98f038cdd29699088e143d0dc4104d6219532601 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_opening_get_context.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + mongoc_apm_topology_opening_get_context() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_opening_get_topology_id.html b/libmongoc/1.23.2/mongoc_apm_topology_opening_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..0e5b0e4781d470b7214b4ab8702718d27bf510b0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_opening_get_topology_id.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_topology_opening_get_topology_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_topology_opening_get_topology_id()

    +
    +

    Synopsis

    +
    void
    +mongoc_apm_topology_opening_get_topology_id (
    +   const mongoc_apm_topology_opening_t *event, bson_oid_t *topology_id);
    +
    +
    +

    Returns this event’s topology id.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The event’s topology id.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_apm_topology_opening_t.html b/libmongoc/1.23.2/mongoc_apm_topology_opening_t.html new file mode 100644 index 0000000000000000000000000000000000000000..663c0424fa67babbdc51d3665a54b0f2a818d118 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_apm_topology_opening_t.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + mongoc_apm_topology_opening_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_destroy.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..5a2a738ca985b375cd26608b3472e4d0b95e325c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_destroy.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_destroy (mongoc_auto_encryption_opts_t *opts);
    +
    +
    +

    Destroy a mongoc_auto_encryption_opts_t.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_new.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..b7ff5b49c3e50d7e15105879229a800945d8c88a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_new.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_new()

    +
    +

    Synopsis

    +
    mongoc_auto_encryption_opts_t *
    +mongoc_auto_encryption_opts_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Create a new mongoc_auto_encryption_opts_t.

    +

    Caller must set the required options:

    + +

    Caller may set optionally set the following:

    + +

    This options struct is used to enable auto encryption with mongoc_client_enable_auto_encryption().

    +
    +
    +

    Returns

    +

    A new mongoc_auto_encryption_opts_t, which must be destroyed with mongoc_auto_encryption_opts_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..1ebb423126c00579e08f074779aaab8657d882be --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_bypass_auto_encryption() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_bypass_auto_encryption()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_bypass_auto_encryption (
    +   mongoc_auto_encryption_opts_t *opts, bool bypass_auto_encryption);
    +
    +
    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_bypass_query_analysis.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_bypass_query_analysis.html new file mode 100644 index 0000000000000000000000000000000000000000..9aeb3b3e0bbf261e184d11aaa6c2c76cc1310ac3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_bypass_query_analysis.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_bypass_query_analysis() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_bypass_query_analysis()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_bypass_query_analysis (
    +   mongoc_auto_encryption_opts_t *opts, bool bypass_query_analysis);
    +
    +
    +
    +

    Important

    +

    This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.22.0.

    +
    +
    +
    +

    Parameters

    + +

    bypass_query_analysis disables automatic analysis of outgoing commands. +bypass_query_analysis is useful for encrypting indexed fields without the +crypt_shared library or mongocryptd process. Set +bypass_query_analysis to true to use explicit encryption on indexed fields.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_encrypted_fields_map.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_encrypted_fields_map.html new file mode 100644 index 0000000000000000000000000000000000000000..c4d9191a8967916f1102ef87279928ec09c23c74 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_encrypted_fields_map.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_encrypted_fields_map() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_encrypted_fields_map()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_encrypted_fields_map (
    +   mongoc_auto_encryption_opts_t *opts, const bson_t *encrypted_fields_map);
    +
    +
    +
    +

    Important

    +

    This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.22.0.

    +
    +
    +
    +

    Parameters

    + +

    Supplying an encrypted_fields_map provides more security than relying on an encryptedFields obtained from the server. It protects against a malicious server advertising a false encryptedFields.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_extra.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_extra.html new file mode 100644 index 0000000000000000000000000000000000000000..551a326a3effa7d4eb4a229069173466ba1f2444 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_extra.html @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_extra() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_extra()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_extra (mongoc_auto_encryption_opts_t *opts,
    +                                       const bson_t *extra);
    +
    +
    +
    +
    +

    Parameters

    + +

    extra is a bson_t containing any of the following optional fields:

    +
      +
    • mongocryptdURI set to a URI to connect to the mongocryptd process (default is “mongodb://localhost:27020”).

    • +
    • mongocryptdBypassSpawn set to true to prevent the driver from spawning the mongocryptd process (default behavior is to spawn).

    • +
    • mongocryptdSpawnPath set to a path (with trailing slash) to search for mongocryptd (defaults to empty string and uses default system paths).

    • +
    • mongocryptdSpawnArgs set to an array of string arguments to pass to mongocryptd when spawning (defaults to [ "--idleShutdownTimeoutSecs=60" ]).

    • +
    • cryptSharedLibPath - Set a filepath string referring to a crypt_shared +library file. Unset by default.

      +
        +
      • If not set (the default), libmongocrypt will attempt to load +crypt_shared using the host system’s default dynamic-library-search +system.

      • +
      • If set, the given path should identify the crypt_shared dynamic library +file itself, not the directory that contains it.

      • +
      • If the given path is a relative path and the first path component is +$ORIGIN, the $ORIGIN component will be replaced with the absolute +path to the directory containing the libmongocrypt library in use by the +application.

        +
        +

        Note

        +

        No other RPATH/RUNPATH-style substitutions are available.

        +
        +
      • +
      • If the given path is a relative path, the path will be resolved relative to +the working directory of the operating system process.

      • +
      • If this option is set and libmongocrypt fails to load crypt_shared from the +given filepath, libmongocrypt will fail to initialize and will not +attempt to search for crypt_shared in any other locations.

      • +
      +
    • +
    • cryptSharedLibRequired - If set to true, and libmongocrypt fails +to load a crypt_shared library, initialization of auto-encryption will +fail immediately and will not attempt to spawn mongocryptd.

      +

      If set to false (the default), cryptSharedLibPath is not set, and +libmongocrypt fails to load crypt_shared, then libmongocrypt will +proceed without crypt_shared and fall back to using mongocryptd.

      +
    • +
    +

    For more information, see the Client-Side Encryption specification.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_client.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_client.html new file mode 100644 index 0000000000000000000000000000000000000000..3cbd0604016cf8dc76668962333f2ab562220cae --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_client.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_keyvault_client() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_keyvault_client()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_keyvault_client (
    +   mongoc_auto_encryption_opts_t *opts, mongoc_client_t *client);
    +
    +
    +

    Set an optional separate mongoc_client_t to use during key lookup for automatic encryption and decryption. Only applies to automatic encryption on a single-threaded mongoc_client_t.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_client_pool.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_client_pool.html new file mode 100644 index 0000000000000000000000000000000000000000..0d126843289d5eab22d3e443d4b060d8dcb9681c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_client_pool.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_keyvault_client_pool() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_keyvault_client_pool()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_keyvault_client_pool (
    +   mongoc_auto_encryption_opts_t *opts, mongoc_client_pool_t *pool);
    +
    +
    +

    Set an optional separate mongoc_client_pool_t to use during key lookup for automatic encryption and decryption. Only applies to automatic encryption on a mongoc_client_pool_t. It is invalid to set this for automatic encryption on a single-threaded mongoc_client_t.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_namespace.html new file mode 100644 index 0000000000000000000000000000000000000000..fa826deeb5785b92775122fa81c046f236d7674b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_keyvault_namespace.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_keyvault_namespace() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_keyvault_namespace()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_keyvault_namespace (
    +   mongoc_auto_encryption_opts_t *opts, const char *db, const char *coll);
    +
    +
    +

    Set the database and collection name of the key vault. The key vault is the specially designated collection containing encrypted data keys for Client-Side Field Level Encryption.

    +
    +
    +

    Parameters

    +
      +
    • opts: The mongoc_auto_encryption_opts_t

    • +
    • db: A const char * representing the database name of the key vault collection.

    • +
    • coll: A const char * representing the collection name of the key vault collection.

    • +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html new file mode 100644 index 0000000000000000000000000000000000000000..130be96844031c3aefb32c239ae0f93380f73d7c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_kms_credential_provider_callback() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_kms_credential_provider_callback()

    +
    +

    New in version 1.23.0.

    +
    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_kms_credential_provider_callback(
    +  mongoc_auto_encryption_opts_t *opts,
    +  mongoc_kms_credentials_provider_callback_fn fn,
    +  void *userdata);
    +
    +
    +

    Set the user-provided callback to provide KMS credentials on-demand when they +are needed.

    +
    +
    +

    Parameters

    +
      +
    • opts - The options object to update.

    • +
    • fn - The provider callback to set on the options object. May be NULL +to clear the callback. Refer to: +mongoc_kms_credentials_provider_callback_fn

    • +
    • userdata - An arbitrary pointer that will be passed along to the +callback function when it is called by libmongoc.

    • +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_kms_providers.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_kms_providers.html new file mode 100644 index 0000000000000000000000000000000000000000..49bfdc33455dae542b51c3bee99c7e613d417bdc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_kms_providers.html @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_kms_providers() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_kms_providers()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_kms_providers (
    +   mongoc_auto_encryption_opts_t *opts, const bson_t *kms_providers);
    +
    +
    +
    +
    +

    Parameters

    + +

    kms_providers is a BSON document containing configuration for each KMS provider. Currently aws, local, azure, gcp, and kmip are supported. At least one must be specified.

    +

    The format for “aws” is as follows:

    +
    aws: {
    +   accessKeyId: String,
    +   secretAccessKey: String
    +}
    +
    +
    +

    The format for “local” is as follows:

    +
    local: {
    +   key: <96 byte BSON binary of subtype 0> or String /* The master key used to encrypt/decrypt data keys. May be passed as a base64 encoded string. */
    +}
    +
    +
    +

    The format for “azure” is as follows:

    +
    azure: {
    +   tenantId: String,
    +   clientId: String,
    +   clientSecret: String,
    +   identityPlatformEndpoint: Optional<String> /* Defaults to login.microsoftonline.com */
    +}
    +
    +
    +

    The format for “gcp” is as follows:

    +
    gcp: {
    +   email: String,
    +   privateKey: byte[] or String, /* May be passed as a base64 encoded string. */
    +   endpoint: Optional<String> /* Defaults to oauth2.googleapis.com */
    +}
    +
    +
    +

    The format for “kmip” is as follows:

    +
    kmip: {
    +   endpoint: String
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_schema_map.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_schema_map.html new file mode 100644 index 0000000000000000000000000000000000000000..fd3c7e39b070ae83093010bdee08a953d603c0b0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_schema_map.html @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_schema_map() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_schema_map()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_schema_map (mongoc_auto_encryption_opts_t *opts,
    +                                            const bson_t *schema_map);
    +
    +
    +
    +
    +

    Parameters

    + +

    Supplying a schema map provides more security than relying on JSON Schemas obtained from the server. It protects against a malicious server advertising a false JSON Schema, which could trick the client into sending unencrypted data that should be encrypted.

    +

    Schemas supplied in the schema map only apply to configuring automatic encryption for client side encryption. Other validation rules in the JSON schema will not be enforced by the driver and will result in an error.

    +

    The following is an example of a schema map which configures automatic encryption for the collection db.coll:

    +
    {
    +     "db.coll": {
    +         "properties": {
    +         "encrypted_string": {
    +             "encrypt": {
    +             "keyId": [
    +                 {
    +                 "$binary": {
    +                     "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
    +                     "subType": "04"
    +                 }
    +                 }
    +             ],
    +             "bsonType": "string",
    +             "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
    +             }
    +         }
    +         },
    +         "bsonType": "object"
    +     }
    + }
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_tls_opts.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_tls_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..03877a80522590bc846bf9329e9d55e5a33abdb1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_set_tls_opts.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_tls_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_auto_encryption_opts_set_tls_opts()

    +
    +

    Synopsis

    +
    void
    +mongoc_auto_encryption_opts_set_tls_opts (
    +   mongoc_auto_encryption_opts_t *opts, const bson_t *tls_opts);
    +
    +
    +
    +
    +

    Parameters

    + +

    tls_opts is a BSON document of the following form:

    +
    <KMS provider name>: {
    +   tlsCaFile: Optional<String>
    +   tlsCertificateKeyFile: Optional<String>
    +   tlsCertificateKeyFilePassword: Optional<String>
    +}
    +
    +
    +

    The KMS providers aws, azure, gcp, and kmip are supported as keys in the tls_opts document.

    +

    tls_opts maps the KMS provider name to a BSON document for TLS options.

    +

    The BSON document for TLS options may contain the following keys:

    +
      +
    • MONGOC_URI_TLSCERTIFICATEKEYFILE

    • +
    • MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD

    • +
    • MONGOC_URI_TLSCAFILE

    • +
    +
    +
    Example use
    +
    mongoc_auto_encryption_opts_t *ae_opts =
    +   mongoc_auto_encryption_opts_new ();
    +bson_t *tls_opts = bson_new ();
    +
    +BCON_APPEND (tls_opts, "kmip", "{", MONGOC_URI_TLSCAFILE, "ca1.pem", "}");
    +BCON_APPEND (tls_opts, "aws", "{", MONGOC_URI_TLSCAFILE, "ca2.pem", "}");
    +mongoc_auto_encryption_opts_set_tls_opts (ae_opts, tls_opts);
    +
    +
    +
    +

    See Configuring TLS for a description of the behavior of these options.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_auto_encryption_opts_t.html b/libmongoc/1.23.2/mongoc_auto_encryption_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..2c44e6ad1c38dd3bb979f2f771dce3484d1bdbbc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_auto_encryption_opts_t.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_delete.html b/libmongoc/1.23.2/mongoc_bulk_operation_delete.html new file mode 100644 index 0000000000000000000000000000000000000000..343ee9c6ceefd356a55106e7a4d9ec6bbccb7590 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_delete.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_delete() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_delete()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_delete (mongoc_bulk_operation_t *bulk,
    +                              const bson_t *selector);
    +
    +
    +

    Deletes documents as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    This function is deprecated and should not be used in new code.

    +
    +

    Please use mongoc_bulk_operation_remove() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via mongoc_bulk_operation_execute().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_delete_one.html b/libmongoc/1.23.2/mongoc_bulk_operation_delete_one.html new file mode 100644 index 0000000000000000000000000000000000000000..a84300164c2b8be5bc9654861a450aafbc1f2835 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_delete_one.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_delete_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_delete_one()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_delete_one (mongoc_bulk_operation_t *bulk,
    +                                  const bson_t *selector);
    +
    +
    +

    Delete a single document as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    This function is deprecated and should not be used in new code.

    +
    +

    Please use mongoc_bulk_operation_remove_one() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via mongoc_bulk_operation_execute().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_destroy.html b/libmongoc/1.23.2/mongoc_bulk_operation_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..8ac39010edefcfa2add37b6c1d8d103697ca209c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_destroy (mongoc_bulk_operation_t *bulk);
    +
    +
    +

    Destroys a mongoc_bulk_operation_t and frees the structure. Does nothing if bulk is NULL.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_execute.html b/libmongoc/1.23.2/mongoc_bulk_operation_execute.html new file mode 100644 index 0000000000000000000000000000000000000000..5cb009ba69455084d3945c6fcfdbe479a1f29773 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_execute.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_execute() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_execute()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_bulk_operation_execute (mongoc_bulk_operation_t *bulk,
    +                               bson_t *reply,
    +                               bson_error_t *error);
    +
    +
    +

    This function executes all operations queued into the bulk operation. Unless ordered: false was specified in the opts passed to mongoc_collection_create_bulk_operation_with_opts(), then forward progress will be stopped upon the first error.

    +

    It is only valid to call mongoc_bulk_operation_execute() once. The mongoc_bulk_operation_t must be destroyed afterwards.

    +
    +

    Warning

    +

    reply is always initialized, even upon failure. Callers must call bson_destroy() to release this potential allocation.

    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    On success, returns the server id used. On failure, returns 0 and sets error.

    +

    A write concern timeout or write concern error is considered a failure.

    +

    The reply document counts operations and collects error information. See Bulk Write Operations for examples.

    +
    +

    See also

    + +
    +
    mongoc_bulk_operation_get_hint(), which gets the id of the server used even if the operation failed.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_get_hint.html b/libmongoc/1.23.2/mongoc_bulk_operation_get_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..afd9cb64800cf68602f2fafcafc5332a0a36338f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_get_hint.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_get_hint() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_get_hint()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_bulk_operation_get_hint (const mongoc_bulk_operation_t *bulk);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Retrieves the opaque id of the server used for the operation.

    +

    (The function name includes the old term “hint” for the sake of backward compatibility, but we now call this number a “server id”.)

    +

    This number is zero until the driver actually uses a server in mongoc_bulk_operation_execute(). The server id is the same number as the return value of a successful mongoc_bulk_operation_execute(), so mongoc_bulk_operation_get_hint is useful mainly in case mongoc_bulk_operation_execute() fails and returns zero.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_get_write_concern.html b/libmongoc/1.23.2/mongoc_bulk_operation_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..385539b518fa44e92dbdd96490cadc6bbf8bdece --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_get_write_concern.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_get_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_get_write_concern()

    +
    +

    Synopsis

    +
    const mongoc_write_concern_t *
    +mongoc_bulk_operation_get_write_concern (const mongoc_bulk_operation_t *bulk);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the write concern to be used for bulk.

    +
    +
    +

    Returns

    +

    A mongoc_write_concern_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_insert.html b/libmongoc/1.23.2/mongoc_bulk_operation_insert.html new file mode 100644 index 0000000000000000000000000000000000000000..809bd46d739af3b9c9aa11263ff4bec3863e868d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_insert.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_insert() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_insert()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_insert (mongoc_bulk_operation_t *bulk,
    +                              const bson_t *document);
    +
    +
    +

    Queue an insert of a single document into a bulk operation. The insert is not performed until mongoc_bulk_operation_execute() is called.

    +

    This function is superseded by mongoc_bulk_operation_insert_with_opts().

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via mongoc_bulk_operation_execute().

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_insert_with_opts.html b/libmongoc/1.23.2/mongoc_bulk_operation_insert_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..f534e1618fc30393869fc52919a32d36e108211b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_insert_with_opts.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_insert_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_insert_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_bulk_operation_insert_with_opts (mongoc_bulk_operation_t *bulk,
    +                                        const bson_t *document,
    +                                        const bson_t *opts,
    +                                        bson_error_t *error); /* OUT */
    +
    +
    +

    Queue an insert of a single document into a bulk operation. The insert is not performed until mongoc_bulk_operation_execute() is called.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • validate: Construct a bitwise-or of all desired bson_validate_flags_t. Set to false to skip client-side validation of the provided BSON documents.

    • +
    +
    +
    +

    Errors

    +

    Operation errors are propagated via mongoc_bulk_operation_execute(), while argument validation errors are reported by the error argument.

    +
    +
    +

    Returns

    +

    Returns true on success, and false if passed invalid arguments.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_remove.html b/libmongoc/1.23.2/mongoc_bulk_operation_remove.html new file mode 100644 index 0000000000000000000000000000000000000000..2ef81e3d1baa4db1a3a7e7e7b696187eb3a9dac2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_remove.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_remove()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_remove (mongoc_bulk_operation_t *bulk,
    +                              const bson_t *selector);
    +
    +
    +

    Remove documents as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +

    This function is superseded by mongoc_bulk_operation_remove_one_with_opts() and mongoc_bulk_operation_remove_many_with_opts().

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via mongoc_bulk_operation_execute().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_remove_many_with_opts.html b/libmongoc/1.23.2/mongoc_bulk_operation_remove_many_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..d98fa22ec698b3aca9ea2ca17a1ca90e8af94801 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_remove_many_with_opts.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove_many_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_remove_many_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_bulk_operation_remove_many_with_opts (mongoc_bulk_operation_t *bulk,
    +                                             const bson_t *selector,
    +                                             const bson_t *opts,
    +                                             bson_error_t *error); /* OUT */
    +
    +
    +

    Delete documents as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Errors

    +

    Operation errors are propagated via mongoc_bulk_operation_execute(), while argument validation errors are reported by the error argument.

    +
    +
    +

    Returns

    +

    Returns true on success, and false if passed invalid arguments.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_remove_one.html b/libmongoc/1.23.2/mongoc_bulk_operation_remove_one.html new file mode 100644 index 0000000000000000000000000000000000000000..57d33d520532778305a2c67ea51aa568f27e308e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_remove_one.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_remove_one()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_remove_one (mongoc_bulk_operation_t *bulk,
    +                                  const bson_t *selector);
    +
    +
    +

    Remove a single document as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +

    This function is superseded by mongoc_bulk_operation_remove_one_with_opts().

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via mongoc_bulk_operation_execute().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_remove_one_with_opts.html b/libmongoc/1.23.2/mongoc_bulk_operation_remove_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..eca40ab1a663acf92fdefcc826041fe175cbc558 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_remove_one_with_opts.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove_one_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_remove_one_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_bulk_operation_remove_one_with_opts (mongoc_bulk_operation_t *bulk,
    +                                            const bson_t *selector,
    +                                            const bson_t *opts,
    +                                            bson_error_t *error); /* OUT */
    +
    +
    +

    Remove a single document as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Errors

    +

    Operation errors are propagated via mongoc_bulk_operation_execute(), while argument validation errors are reported by the error argument.

    +
    +
    +

    Returns

    +

    Returns true on success, and false if passed invalid arguments.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_replace_one.html b/libmongoc/1.23.2/mongoc_bulk_operation_replace_one.html new file mode 100644 index 0000000000000000000000000000000000000000..7508bffda6edb4dcbb07aa0b11239e9ba75f6b43 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_replace_one.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_replace_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_replace_one()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_replace_one (mongoc_bulk_operation_t *bulk,
    +                                   const bson_t *selector,
    +                                   const bson_t *document,
    +                                   bool upsert);
    +
    +
    +

    Replace a single document as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +

    This function is superseded by mongoc_bulk_operation_replace_one_with_opts().

    +
    +
    +

    Parameters

    +
      +
    • bulk: A mongoc_bulk_operation_t.

    • +
    • selector: A bson_t that selects which document to remove.

    • +
    • document: A bson_t containing the replacement document.

    • +
    • upsert: true if this should be an upsert.

    • +
    +
    +

    Warning

    +

    document may not contain fields with keys containing . or $.

    +
    +
    +
    +

    Errors

    +

    Errors are propagated via mongoc_bulk_operation_execute().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_replace_one_with_opts.html b/libmongoc/1.23.2/mongoc_bulk_operation_replace_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..6b0d34124a43a84c39cc60acebaf38bc0320832d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_replace_one_with_opts.html @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_replace_one_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_replace_one_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_bulk_operation_replace_one_with_opts (mongoc_bulk_operation_t *bulk,
    +                                             const bson_t *selector,
    +                                             const bson_t *document,
    +                                             const bson_t *opts,
    +                                             bson_error_t *error); /* OUT */
    +
    +
    +

    Replace a single document as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • validate: Construct a bitwise-or of all desired bson_validate_flags_t. Set to false to skip client-side validation of the provided BSON documents.

    • +
    • collation: Configure textual comparisons. See Setting Collation Order, and the MongoDB Manual entry on Collation. Collation requires MongoDB 3.2 or later, otherwise an error is returned.

    • +
    • hint: A document or string that specifies the index to use to support the query predicate.

    • +
    • upsert: If true, insert a document if none match selector.

    • +
    +
    +

    Warning

    +

    document may not contain fields with keys containing . or $.

    +
    +
    +
    +

    Errors

    +

    Operation errors are propagated via mongoc_bulk_operation_execute(), while argument validation errors are reported by the error argument.

    +
    +
    +

    Returns

    +

    Returns true on success, and false if passed invalid arguments.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_set_bypass_document_validation.html b/libmongoc/1.23.2/mongoc_bulk_operation_set_bypass_document_validation.html new file mode 100644 index 0000000000000000000000000000000000000000..a3b8dfc7cd629c55f95e5f04a56312ee44184dbc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_set_bypass_document_validation.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_bypass_document_validation() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_set_bypass_document_validation()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_set_bypass_document_validation (
    +   mongoc_bulk_operation_t *bulk, bool bypass);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Will bypass document validation for all operations part of this bulk.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_set_client_session.html b/libmongoc/1.23.2/mongoc_bulk_operation_set_client_session.html new file mode 100644 index 0000000000000000000000000000000000000000..e60ce77ca32e76260e5137d34efed5653c9634a8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_set_client_session.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_client_session() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_set_client_session()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_set_client_session (
    +  mongoc_bulk_operation_t *bulk,
    +  mongoc_client_session_t *client_session);
    +
    +
    +

    Sets an explicit client session to use for the bulk operation.

    +

    It is an error to use a session for unacknowledged writes.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_set_comment.html b/libmongoc/1.23.2/mongoc_bulk_operation_set_comment.html new file mode 100644 index 0000000000000000000000000000000000000000..d63fb646effcd60f57945a26d921416292998178 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_set_comment.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_comment() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_set_comment()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_set_comment (
    +   mongoc_bulk_operation_t *bulk, const bson_value_t *comment);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Assigns a comment to attach to all commands executed as part of this bulk. The comment will appear in log messages, profiler output, and currentOp output. Comments for write commands are only supported by MongoDB 4.4+.

    +

    It is prohibited to call this function after adding operations to the bulk.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_set_hint.html b/libmongoc/1.23.2/mongoc_bulk_operation_set_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..e24fcd5ae87644b05fe6d1615833aa7b47850949 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_set_hint.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_hint() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_set_hint()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_set_hint (const mongoc_bulk_operation_t *bulk,
    +                                uint32_t server_id);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Specifies which server to use for the operation. This function has an effect only if called before mongoc_bulk_operation_execute().

    +

    (The function name includes the old term “hint” for the sake of backward compatibility, but we now call this number a “server id”.)

    +

    Use mongoc_bulk_operation_set_hint only for building a language driver that wraps the C Driver. When writing applications in C, leave the server id unset and allow the driver to choose a suitable server for the bulk operation.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_set_let.html b/libmongoc/1.23.2/mongoc_bulk_operation_set_let.html new file mode 100644 index 0000000000000000000000000000000000000000..8dcd530f8416e2f3f62226945174cdb5a89f78eb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_set_let.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_let() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_set_let()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_set_let (
    +   mongoc_bulk_operation_t *bulk, const bson_t *let);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • bulk: A mongoc_bulk_operation_t.

    • +
    • let: A BSON document consisting of any number of parameter names, each followed by definitions of constants in the MQL Aggregate Expression language.

    • +
    +
    +
    +

    Description

    +

    Defines constants that can be accessed by all update, replace, and delete operations executed as part of this bulk.

    +

    It is prohibited to call this function after adding operations to the bulk.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_t.html b/libmongoc/1.23.2/mongoc_bulk_operation_t.html new file mode 100644 index 0000000000000000000000000000000000000000..6a05af29b56b89da851b2771bd3fed16e5003c4b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_t.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_t

    +

    Bulk Write Operations

    +
    +

    Synopsis

    +
    typedef struct _mongoc_bulk_operation_t mongoc_bulk_operation_t;
    +
    +
    +

    The opaque type mongoc_bulk_operation_t provides an abstraction for submitting multiple write operations as a single batch.

    +

    After adding all of the write operations to the mongoc_bulk_operation_t, call mongoc_bulk_operation_execute() to execute the operation.

    +
    +

    Warning

    +

    It is only valid to call mongoc_bulk_operation_execute() once. The mongoc_bulk_operation_t must be destroyed afterwards.

    +
    +
    +

    See also

    + +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_update.html b/libmongoc/1.23.2/mongoc_bulk_operation_update.html new file mode 100644 index 0000000000000000000000000000000000000000..c4abaf2aca0fab51765871678193d0163a1ecb29 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_update.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_update()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_update (mongoc_bulk_operation_t *bulk,
    +                              const bson_t *selector,
    +                              const bson_t *document,
    +                              bool upsert);
    +
    +
    +

    This function queues an update as part of a bulk operation. This does not execute the operation. To execute the entirety of the bulk operation call mongoc_bulk_operation_execute().

    +

    document MUST only contain fields whose key starts with $. See the update document specification for more details.

    +

    This function is superseded by mongoc_bulk_operation_update_one_with_opts() and mongoc_bulk_operation_update_many_with_opts().

    +
    +
    +

    Parameters

    +
      +
    • bulk: A mongoc_bulk_operation_t.

    • +
    • selector: A bson_t that selects which documents to remove.

    • +
    • document: A bson_t containing the update document.

    • +
    • upsert: true if an upsert should be performed.

    • +
    +
    +
    +

    Errors

    +

    Errors are propagated via mongoc_bulk_operation_execute().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_update_many_with_opts.html b/libmongoc/1.23.2/mongoc_bulk_operation_update_many_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..ca540ca8b89d7702bcf074e5b674889be66ff2c1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_update_many_with_opts.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update_many_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_update_many_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_bulk_operation_update_many_with_opts (mongoc_bulk_operation_t *bulk,
    +                                             const bson_t *selector,
    +                                             const bson_t *document,
    +                                             const bson_t *opts,
    +                                             bson_error_t *error); /* OUT */
    +
    +
    +

    This function queues an update as part of a bulk operation. This does not execute the operation. To execute the entirety of the bulk operation call mongoc_bulk_operation_execute().

    +
    +

    Warning

    +

    document MUST only contain fields whose key starts with $. See the update document specification for more details.

    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • validate: Construct a bitwise-or of all desired bson_validate_flags_t. Set to false to skip client-side validation of the provided BSON documents.

    • +
    • collation: Configure textual comparisons. See Setting Collation Order, and the MongoDB Manual entry on Collation. Collation requires MongoDB 3.2 or later, otherwise an error is returned.

    • +
    • hint: A document or string that specifies the index to use to support the query predicate.

    • +
    • upsert: If true, insert a document if none match selector.

    • +
    • arrayFilters: An array of filters specifying to which array elements an update should apply.

    • +
    +
    +
    +

    Errors

    +

    Operation errors are propagated via mongoc_bulk_operation_execute(), while argument validation errors are reported by the error argument.

    +
    +
    +

    Returns

    +

    Returns true on success, and false if there is a server or network error or if passed invalid arguments.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_update_one.html b/libmongoc/1.23.2/mongoc_bulk_operation_update_one.html new file mode 100644 index 0000000000000000000000000000000000000000..adb07933e28c2eba6b3413b613743e65117758c5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_update_one.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_update_one()

    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_update_one (mongoc_bulk_operation_t *bulk,
    +                                  const bson_t *selector,
    +                                  const bson_t *document,
    +                                  bool upsert);
    +
    +
    +

    This function queues an update as part of a bulk operation. It will only modify a single document on the MongoDB server. This function does not execute the operation. To execute the entirety of the bulk operation call mongoc_bulk_operation_execute().

    +

    This function is superseded by mongoc_bulk_operation_update_one_with_opts().

    +
    +
    +

    Parameters

    +
      +
    • bulk: A mongoc_bulk_operation_t.

    • +
    • selector: A bson_t that selects which document to remove.

    • +
    • document: A bson_t containing the update document.

    • +
    • upsert: true if an upsert should be performed.

    • +
    +
    +

    Warning

    +

    document must only contain fields whose key starts with $. See the update document specification for more details.

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_bulk_operation_update_one_with_opts.html b/libmongoc/1.23.2/mongoc_bulk_operation_update_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..7c6184f77aa3e2a413e5262ac65c905e2476e20b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_bulk_operation_update_one_with_opts.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update_one_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_update_one_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_bulk_operation_update_one_with_opts (mongoc_bulk_operation_t *bulk,
    +                                            const bson_t *selector,
    +                                            const bson_t *document,
    +                                            const bson_t *opts,
    +                                            bson_error_t *error); /* OUT */
    +
    +
    +

    This function queues an update as part of a bulk operation. It will only modify a single document on the MongoDB server. This function does not execute the operation. To execute the entirety of the bulk operation call mongoc_bulk_operation_execute().

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • validate: Construct a bitwise-or of all desired bson_validate_flags_t. Set to false to skip client-side validation of the provided BSON documents.

    • +
    • collation: Configure textual comparisons. See Setting Collation Order, and the MongoDB Manual entry on Collation. Collation requires MongoDB 3.2 or later, otherwise an error is returned.

    • +
    • hint: A document or string that specifies the index to use to support the query predicate.

    • +
    • upsert: If true, insert a document if none match selector.

    • +
    • arrayFilters: An array of filters specifying to which array elements an update should apply.

    • +
    +
    +

    Warning

    +

    document must only contain fields whose key starts with $. See the update document specification for more details.

    +
    +
    +
    +

    Errors

    +

    Operation errors are propagated via mongoc_bulk_operation_execute(), while argument validation errors are reported by the error argument.

    +
    +
    +

    Returns

    +

    Returns true on success, and false if there is a server or network error or if passed invalid arguments.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_change_stream_destroy.html b/libmongoc/1.23.2/mongoc_change_stream_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..bc1d88b1cd82590a52d8de2de3b52abe8f382ac3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_change_stream_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_change_stream_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_change_stream_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_change_stream_destroy (mongoc_change_stream_t *stream);
    +
    +
    +

    Destroys a change stream and associated data.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_change_stream_error_document.html b/libmongoc/1.23.2/mongoc_change_stream_error_document.html new file mode 100644 index 0000000000000000000000000000000000000000..1afd8d1485b35b8a7478aa3e53783695770fb176 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_change_stream_error_document.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_change_stream_error_document() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_change_stream_error_document()

    +
    +

    Synopsis

    +
    bool
    +mongoc_change_stream_error_document (mongoc_change_stream_t *stream,
    +                                     bson_error_t *err,
    +                                     const bson_t **reply);
    +
    +
    +

    Checks if an error has occurred when creating or iterating over a change stream.

    +

    Similar to mongoc_cursor_error_document() if the error has occurred +client-side then the reply will be set to an empty BSON document. If the +error occurred server-side, reply is set to the server’s reply document.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A boolean indicating if there was an error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_change_stream_get_resume_token.html b/libmongoc/1.23.2/mongoc_change_stream_get_resume_token.html new file mode 100644 index 0000000000000000000000000000000000000000..66b28b9e7105ee4b8980ce84a6fa96c06fe7fca7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_change_stream_get_resume_token.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_change_stream_get_resume_token() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_change_stream_get_resume_token()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_change_stream_get_resume_token (mongoc_change_stream_t *stream);
    +
    +
    +

    This function returns the cached resume token, which may be passed as either the +resumeAfter or startAfter option of a watch function to start a new +change stream from the same point.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_t that should not be modified or freed.

    +

    Returns NULL if no resume token is available. This is possible if the change +stream has not been iterated and neither resumeAfter nor startAfter +options were specified in the watch function.

    +
    +
    +

    Lifecycle

    +

    The returned bson_t is valid for the lifetime of stream and +its data may be updated if mongoc_change_stream_next() is called after +this function. The value may be copied to extend its lifetime or preserve the +current resume token.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_change_stream_next.html b/libmongoc/1.23.2/mongoc_change_stream_next.html new file mode 100644 index 0000000000000000000000000000000000000000..5050be148fe9f1277ae456dcb3ac68ad6a869062 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_change_stream_next.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_change_stream_next() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_change_stream_next()

    +
    +

    Synopsis

    +
    bool
    +mongoc_change_stream_next (mongoc_change_stream_t *stream,
    +                           const bson_t **bson);
    +
    +
    +

    This function iterates the underlying cursor, setting bson to the next +document. This will block for a maximum of maxAwaitTimeMS milliseconds as +specified in the options when created, or the default timeout if omitted. Data +may be returned before the timeout. If no data is returned this function returns +false.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    This function returns true if a valid bson document was read from the stream. +Otherwise, false if there was an error or no document was available.

    +

    Errors can be determined with the mongoc_change_stream_error_document() +function.

    +
    +
    +

    Lifecycle

    +

    Similar to mongoc_cursor_next() the lifetime of bson is until the +next call to mongoc_change_stream_next(), so it needs to be copied to +extend the lifetime.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_change_stream_t.html b/libmongoc/1.23.2/mongoc_change_stream_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5faffb3114a95e3b73e94bd271a8fdcf80cc4299 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_change_stream_t.html @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + mongoc_change_stream_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_change_stream_t

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct _mongoc_change_stream_t mongoc_change_stream_t;
    +
    +
    +

    mongoc_change_stream_t is a handle to a change stream. A collection +change stream can be obtained using mongoc_collection_watch().

    +

    It is recommended to use a mongoc_change_stream_t and its functions instead of a raw aggregation with a $changeStream stage. For more information see the MongoDB Manual Entry on Change Streams.

    +
    +
    +

    Example

    +
    +
    example-collection-watch.c
    +
    #include <mongoc/mongoc.h>
    +
    +int
    +main ()
    +{
    +   bson_t empty = BSON_INITIALIZER;
    +   const bson_t *doc;
    +   bson_t *to_insert = BCON_NEW ("x", BCON_INT32 (1));
    +   const bson_t *err_doc;
    +   bson_error_t error;
    +   const char *uri_string;
    +   mongoc_uri_t *uri;
    +   mongoc_client_t *client;
    +   mongoc_collection_t *coll;
    +   mongoc_change_stream_t *stream;
    +   mongoc_write_concern_t *wc = mongoc_write_concern_new ();
    +   bson_t opts = BSON_INITIALIZER;
    +   bool r;
    +
    +   mongoc_init ();
    +
    +   uri_string = "mongodb://"
    +                "localhost:27017,localhost:27018,localhost:"
    +                "27019/db?replicaSet=rs0";
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   coll = mongoc_client_get_collection (client, "db", "coll");
    +   stream = mongoc_collection_watch (coll, &empty, NULL);
    +
    +   mongoc_write_concern_set_wmajority (wc, 10000);
    +   mongoc_write_concern_append (wc, &opts);
    +   r = mongoc_collection_insert_one (coll, to_insert, &opts, NULL, &error);
    +   if (!r) {
    +      fprintf (stderr, "Error: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   while (mongoc_change_stream_next (stream, &doc)) {
    +      char *as_json = bson_as_relaxed_extended_json (doc, NULL);
    +      fprintf (stderr, "Got document: %s\n", as_json);
    +      bson_free (as_json);
    +   }
    +
    +   if (mongoc_change_stream_error_document (stream, &error, &err_doc)) {
    +      if (!bson_empty (err_doc)) {
    +         fprintf (stderr,
    +                  "Server Error: %s\n",
    +                  bson_as_relaxed_extended_json (err_doc, NULL));
    +      } else {
    +         fprintf (stderr, "Client Error: %s\n", error.message);
    +      }
    +      return EXIT_FAILURE;
    +   }
    +
    +   bson_destroy (to_insert);
    +   mongoc_write_concern_destroy (wc);
    +   bson_destroy (&opts);
    +   mongoc_change_stream_destroy (stream);
    +   mongoc_collection_destroy (coll);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +

    Starting and Resuming

    +

    All watch functions accept several options to indicate where a change stream should start returning changes from: resumeAfter, startAfter, and startAtOperationTime.

    +

    All changes returned by mongoc_change_stream_next() include a resume token in the _id field. MongoDB 4.2 also includes an additional resume token in each “aggregate” and “getMore” command response, which points to the end of that response’s batch. The current token is automatically cached by libmongoc. In the event of an error, libmongoc attempts to recreate the change stream starting where it left off by passing the cached resume token. libmongoc only attempts to resume once, but client applications can access the cached resume token with mongoc_change_stream_get_resume_token() and use it for their own resume logic by passing it as either the resumeAfter or startAfter option.

    +

    Additionally, change streams can start returning changes at an operation time by using the startAtOperationTime field. This can be the timestamp returned in the operationTime field of a command reply.

    +

    resumeAfter, startAfter, and startAtOperationTime are mutually exclusive options. Setting more than one will result in a server error.

    +

    The following example implements custom resuming logic, persisting the resume token in a file.

    +
    +
    example-resume.c
    +
    #include <mongoc/mongoc.h>
    +
    +/* An example implementation of custom resume logic in a change stream.
    +* example-resume starts a client-wide change stream and persists the resume
    +* token in a file "resume-token.json". On restart, if "resume-token.json"
    +* exists, the change stream starts watching after the persisted resume token.
    +*
    +* This behavior allows a user to exit example-resume, and restart it later
    +* without missing any change events.
    +*/
    +#include <unistd.h>
    +
    +static const char *RESUME_TOKEN_PATH = "resume-token.json";
    +
    +static bool
    +_save_resume_token (const bson_t *doc)
    +{
    +   FILE *file_stream;
    +   bson_iter_t iter;
    +   bson_t resume_token_doc;
    +   char *as_json = NULL;
    +   size_t as_json_len;
    +   ssize_t r, n_written;
    +   const bson_value_t *resume_token;
    +
    +   if (!bson_iter_init_find (&iter, doc, "_id")) {
    +      fprintf (stderr, "reply does not contain operationTime.");
    +      return false;
    +   }
    +   resume_token = bson_iter_value (&iter);
    +   /* store the resume token in a document, { resumeAfter: <resume token> }
    +    * which we can later append easily. */
    +   file_stream = fopen (RESUME_TOKEN_PATH, "w+");
    +   if (!file_stream) {
    +      fprintf (stderr, "failed to open %s for writing\n", RESUME_TOKEN_PATH);
    +      return false;
    +   }
    +   bson_init (&resume_token_doc);
    +   BSON_APPEND_VALUE (&resume_token_doc, "resumeAfter", resume_token);
    +   as_json = bson_as_canonical_extended_json (&resume_token_doc, &as_json_len);
    +   bson_destroy (&resume_token_doc);
    +   n_written = 0;
    +   while (n_written < as_json_len) {
    +      r = fwrite ((void *) (as_json + n_written),
    +                  sizeof (char),
    +                  as_json_len - n_written,
    +                  file_stream);
    +      if (r == -1) {
    +         fprintf (stderr, "failed to write to %s\n", RESUME_TOKEN_PATH);
    +         bson_free (as_json);
    +         fclose (file_stream);
    +         return false;
    +      }
    +      n_written += r;
    +   }
    +
    +   bson_free (as_json);
    +   fclose (file_stream);
    +   return true;
    +}
    +
    +bool
    +_load_resume_token (bson_t *opts)
    +{
    +   bson_error_t error;
    +   bson_json_reader_t *reader;
    +   bson_t doc;
    +
    +   /* if the file does not exist, skip. */
    +   if (-1 == access (RESUME_TOKEN_PATH, R_OK)) {
    +      return true;
    +   }
    +   reader = bson_json_reader_new_from_file (RESUME_TOKEN_PATH, &error);
    +   if (!reader) {
    +      fprintf (stderr,
    +               "failed to open %s for reading: %s\n",
    +               RESUME_TOKEN_PATH,
    +               error.message);
    +      return false;
    +   }
    +
    +   bson_init (&doc);
    +   if (-1 == bson_json_reader_read (reader, &doc, &error)) {
    +      fprintf (stderr, "failed to read doc from %s\n", RESUME_TOKEN_PATH);
    +      bson_destroy (&doc);
    +      bson_json_reader_destroy (reader);
    +      return false;
    +   }
    +
    +   printf ("found cached resume token in %s, resuming change stream.\n",
    +           RESUME_TOKEN_PATH);
    +
    +   bson_concat (opts, &doc);
    +   bson_destroy (&doc);
    +   bson_json_reader_destroy (reader);
    +   return true;
    +}
    +
    +int
    +main ()
    +{
    +   int exit_code = EXIT_FAILURE;
    +   const char *uri_string;
    +   mongoc_uri_t *uri = NULL;
    +   bson_error_t error;
    +   mongoc_client_t *client = NULL;
    +   bson_t pipeline = BSON_INITIALIZER;
    +   bson_t opts = BSON_INITIALIZER;
    +   mongoc_change_stream_t *stream = NULL;
    +   const bson_t *doc;
    +
    +   const int max_time = 30; /* max amount of time, in seconds, that
    +                               mongoc_change_stream_next can block. */
    +
    +   mongoc_init ();
    +   uri_string = "mongodb://localhost:27017/db?replicaSet=rs0";
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      goto cleanup;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      goto cleanup;
    +   }
    +
    +   if (!_load_resume_token (&opts)) {
    +      goto cleanup;
    +   }
    +   BSON_APPEND_INT64 (&opts, "maxAwaitTimeMS", max_time * 1000);
    +
    +   printf ("listening for changes on the client (max %d seconds).\n", max_time);
    +   stream = mongoc_client_watch (client, &pipeline, &opts);
    +
    +   while (mongoc_change_stream_next (stream, &doc)) {
    +      char *as_json;
    +
    +      as_json = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("change received: %s\n", as_json);
    +      bson_free (as_json);
    +      if (!_save_resume_token (doc)) {
    +         goto cleanup;
    +      }
    +   }
    +
    +   exit_code = EXIT_SUCCESS;
    +
    +cleanup:
    +   mongoc_uri_destroy (uri);
    +   bson_destroy (&pipeline);
    +   bson_destroy (&opts);
    +   mongoc_change_stream_destroy (stream);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +   return exit_code;
    +}
    +
    +
    +
    +

    The following example shows using startAtOperationTime to synchronize a change stream with another operation.

    +
    +
    example-start-at-optime.c
    +
    /* An example of starting a change stream with startAtOperationTime. */
    +#include <mongoc/mongoc.h>
    +
    +int
    +main ()
    +{
    +   int exit_code = EXIT_FAILURE;
    +   const char *uri_string;
    +   mongoc_uri_t *uri = NULL;
    +   bson_error_t error;
    +   mongoc_client_t *client = NULL;
    +   mongoc_collection_t *coll = NULL;
    +   bson_t pipeline = BSON_INITIALIZER;
    +   bson_t opts = BSON_INITIALIZER;
    +   mongoc_change_stream_t *stream = NULL;
    +   bson_iter_t iter;
    +   const bson_t *doc;
    +   bson_value_t cached_operation_time = {0};
    +   int i;
    +   bool r;
    +
    +   mongoc_init ();
    +   uri_string = "mongodb://localhost:27017/db?replicaSet=rs0";
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      goto cleanup;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      goto cleanup;
    +   }
    +
    +   /* insert five documents. */
    +   coll = mongoc_client_get_collection (client, "db", "coll");
    +   for (i = 0; i < 5; i++) {
    +      bson_t reply;
    +      bson_t *insert_cmd = BCON_NEW ("insert",
    +                                     "coll",
    +                                     "documents",
    +                                     "[",
    +                                     "{",
    +                                     "x",
    +                                     BCON_INT64 (i),
    +                                     "}",
    +                                     "]");
    +
    +      r = mongoc_collection_write_command_with_opts (
    +         coll, insert_cmd, NULL, &reply, &error);
    +      bson_destroy (insert_cmd);
    +      if (!r) {
    +         bson_destroy (&reply);
    +         fprintf (stderr, "failed to insert: %s\n", error.message);
    +         goto cleanup;
    +      }
    +      if (i == 0) {
    +         /* cache the operation time in the first reply. */
    +         if (bson_iter_init_find (&iter, &reply, "operationTime")) {
    +            bson_value_copy (bson_iter_value (&iter), &cached_operation_time);
    +         } else {
    +            fprintf (stderr, "reply does not contain operationTime.");
    +            bson_destroy (&reply);
    +            goto cleanup;
    +         }
    +      }
    +      bson_destroy (&reply);
    +   }
    +
    +   /* start a change stream at the first returned operationTime. */
    +   BSON_APPEND_VALUE (&opts, "startAtOperationTime", &cached_operation_time);
    +   stream = mongoc_collection_watch (coll, &pipeline, &opts);
    +
    +   /* since the change stream started at the operation time of the first
    +    * insert, the five inserts are returned. */
    +   printf ("listening for changes on db.coll:\n");
    +   while (mongoc_change_stream_next (stream, &doc)) {
    +      char *as_json;
    +
    +      as_json = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("change received: %s\n", as_json);
    +      bson_free (as_json);
    +   }
    +
    +   exit_code = EXIT_SUCCESS;
    +
    +cleanup:
    +   mongoc_uri_destroy (uri);
    +   bson_destroy (&pipeline);
    +   bson_destroy (&opts);
    +   if (cached_operation_time.value_type) {
    +      bson_value_destroy (&cached_operation_time);
    +   }
    +   mongoc_change_stream_destroy (stream);
    +   mongoc_collection_destroy (coll);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +   return exit_code;
    +}
    +
    +
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_check_version.html b/libmongoc/1.23.2/mongoc_check_version.html new file mode 100644 index 0000000000000000000000000000000000000000..098fe3b12c051b891e8ccfab8cf76edab9f84201 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_check_version.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_check_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_check_version()

    +
    +

    Synopsis

    +
    bool
    +mongoc_check_version (int required_major,
    +                      int required_minor,
    +                      int required_micro);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • required_major: The minimum major version required.

    • +
    • required_minor: The minimum minor version required.

    • +
    • required_micro: The minimum micro version required.

    • +
    +
    +
    +

    Returns

    +

    True if libmongoc’s version is greater than or equal to the required version.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cleanup.html b/libmongoc/1.23.2/mongoc_cleanup.html new file mode 100644 index 0000000000000000000000000000000000000000..f788053924b67620684fe857d7309620948ec8b4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cleanup.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_cleanup() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cleanup()

    +
    +

    Synopsis

    +
    void
    +mongoc_cleanup (void);
    +
    +
    +
    +
    +

    Description

    +

    Initialize the MongoDB C Driver by calling mongoc_init() exactly once at the beginning of your program. It is responsible for initializing global state such as process counters, SSL, and threading primitives.

    +

    Exception to this is mongoc_log_set_handler(), which should be called before mongoc_init() or some log traces would not use your log handling function. See Custom Log Handlers for a detailed example.

    +

    Call mongoc_cleanup() exactly once at the end of your program to release all memory and other resources allocated by the driver. You must not call any other MongoDB C Driver functions after mongoc_cleanup(). Note that mongoc_init() does not reinitialize the driver after mongoc_cleanup().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_command.html b/libmongoc/1.23.2/mongoc_client_command.html new file mode 100644 index 0000000000000000000000000000000000000000..db47dea9e4e3d08bf7ce57f6242931a3965ecc1f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_command.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_client_command() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_command()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_client_command (mongoc_client_t *client,
    +                       const char *db_name,
    +                       mongoc_query_flags_t flags,
    +                       uint32_t skip,
    +                       uint32_t limit,
    +                       uint32_t batch_size,
    +                       const bson_t *query,
    +                       const bson_t *fields,
    +                       const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    This function is superseded by mongoc_client_command_with_opts(), mongoc_client_read_command_with_opts(), mongoc_client_write_command_with_opts(), and mongoc_client_read_write_command_with_opts().

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Description

    +

    This function creates a cursor which will execute the command when mongoc_cursor_next() is called on it. The client’s read preference, read concern, and write concern are not applied to the command, and mongoc_cursor_next() will not check the server response for a write concern error or write concern timeout.

    +

    If mongoc_cursor_next() returns false, then retrieve error details with mongoc_cursor_error() or mongoc_cursor_error_document().

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • flags: Unused.

    • +
    • skip: Unused.

    • +
    • limit: Unused.

    • +
    • batch_size: Unused.

    • +
    • query: A bson_t containing the command specification.

    • +
    • fields: Unused.

    • +
    • read_prefs: An optional mongoc_read_prefs_t. Otherwise, the command uses mode MONGOC_READ_PRIMARY.

    • +
    +
    +
    +

    Returns

    +

    A mongoc_cursor_t.

    +

    The cursor should be freed with mongoc_cursor_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_command_simple.html b/libmongoc/1.23.2/mongoc_client_command_simple.html new file mode 100644 index 0000000000000000000000000000000000000000..bdc6446dc01aeaadee8d38850d13edecabe6f16f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_command_simple.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_client_command_simple() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_command_simple()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_command_simple (mongoc_client_t *client,
    +                              const char *db_name,
    +                              const bson_t *command,
    +                              const mongoc_read_prefs_t *read_prefs,
    +                              bson_t *reply,
    +                              bson_error_t *error);
    +
    +
    +

    This is a simplified interface to mongoc_client_command(). It returns the first document from the result cursor into reply. The client’s read preference, read concern, and write concern are not applied to the command.

    +
    +

    Warning

    +

    reply is always set, and should be released with bson_destroy().

    +
    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • command: A bson_t containing the command specification.

    • +
    • read_prefs: An optional mongoc_read_prefs_t. Otherwise, the command uses mode MONGOC_READ_PRIMARY.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    This function does not check the server response for a write concern error or write concern timeout.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_command_simple_with_server_id.html b/libmongoc/1.23.2/mongoc_client_command_simple_with_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..32d9d1eb3c033a23ef9ecbfe7a76fed14237d245 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_command_simple_with_server_id.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_command_simple_with_server_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_command_simple_with_server_id()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_command_simple_with_server_id (
    +   mongoc_client_t *client,
    +   const char *db_name,
    +   const bson_t *command,
    +   const mongoc_read_prefs_t *read_prefs,
    +   uint32_t server_id,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    This function executes a command on a specific server, using the database and command specification provided.

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • read_prefs: An optional mongoc_read_prefs_t.

    • +
    • server_id: An opaque id specifying which server to use.

    • +
    • reply: An optional location for a bson_t which will store the server’s reply.

    • +
    • error: An optional location for a bson_error_t or a NULL.

    • +
    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    This function does not check the server response for a write concern error or write concern timeout.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_command_with_opts.html b/libmongoc/1.23.2/mongoc_client_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..6901b1d432073828e9092a843bc05c13b337b03c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_command_with_opts.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + mongoc_client_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_command_with_opts (
    +   mongoc_client_t *client,
    +   const char *db_name,
    +   const bson_t *command,
    +   const mongoc_read_prefs_t *read_prefs,
    +   const bson_t *opts,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    Execute a command on the server, interpreting opts according to the MongoDB server version. To send a raw command to the server without any of this logic, use mongoc_client_command_simple().

    +

    Read preferences, read and write concern, and collation can be overridden by various sources. The highest-priority sources for these options are listed first:

    + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Write Concern

    Collation

    read_prefs

    opts

    opts

    opts

    Transaction

    Transaction

    Transaction

    +

    In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. +See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • command: A bson_t containing the command specification.

    • +
    • read_prefs: An optional mongoc_read_prefs_t.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    The reply is not parsed for a write concern timeout or write concern error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_destroy.html b/libmongoc/1.23.2/mongoc_client_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..2a2096ba12a4ba6287433b3f1e90f07aff0c1ac4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_destroy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_client_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_destroy (mongoc_client_t *client);
    +
    +
    +

    Release all resources associated with client and free the structure. Does nothing if client is NULL.

    +

    Only call mongoc_client_destroy() on a single-threaded client. Do not call on a mongoc_client_t obtained from a mongoc_client_pool_t, which should instead be pushed back with mongoc_client_pool_push().

    +
    +
    +

    Parameters

    + +
    +

    See also

    +
    +
    mongoc_client_pool_push() to push a multi-threaded client back onto a pool.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_enable_auto_encryption.html b/libmongoc/1.23.2/mongoc_client_enable_auto_encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..1ab15fbbe6a8138e824b41d2085ab5dee9b5ad37 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_enable_auto_encryption.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_client_enable_auto_encryption() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_enable_auto_encryption()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_enable_auto_encryption (mongoc_client_t *client,
    +                                      mongoc_auto_encryption_opts_t* opts,
    +                                      bson_error_t* error);
    +
    +
    +

    Enable automatic client side encryption on a mongoc_client_t. Requires libmongoc to be built with support for Client-Side Field Level Encryption. See the guide for Using Client-Side Field Level Encryption.

    +

    Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error. To bypass automatic encryption for all operations, bypass automatic encryption with mongoc_auto_encryption_opts_set_bypass_auto_encryption() in opts.

    +

    Automatic encryption requires the authenticated user to have the listCollections privilege action.

    +

    Enabling automatic encryption reduces the maximum message size and may have a negative performance impact.

    +

    Only applies to a single-threaded mongoc_client_t. To use with client pools, see mongoc_client_pool_enable_auto_encryption().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True on success. False on error. On error, error is set.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_add_key_alt_name.html b/libmongoc/1.23.2/mongoc_client_encryption_add_key_alt_name.html new file mode 100644 index 0000000000000000000000000000000000000000..24271a63ee461b41435596ee535c3c476c4cf420 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_add_key_alt_name.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_client_encryption_add_key_alt_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_add_key_alt_name()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_add_key_alt_name (
    +   mongoc_client_encryption_t *client_encryption,
    +   const bson_value_t *keyid,
    +   const char *keyaltname,
    +   bson_t *key_doc,
    +   bson_error_t *error);
    +
    +
    +

    Add keyaltname to the set of alternate names in the key document with UUID keyid.

    +
    +
    +

    Parameters

    +
      +
    • client_encryption: A mongoc_client_encryption_t.

    • +
    • keyid: A UUID (BSON binary subtype 0x04) key ID of the key to add the key alternate name to.

    • +
    • keyaltname: The key alternate name to add.

    • +
    • key_doc: Optional. An uninitialized bson_t set to the value of the key document before addition of the alternate name, or an empty document if the key does not exist. Must be freed by bson_destroy().

    • +
    • error: Optional. bson_error_t.

    • +
    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_create_datakey.html b/libmongoc/1.23.2/mongoc_client_encryption_create_datakey.html new file mode 100644 index 0000000000000000000000000000000000000000..04e3d74040899b1a948c28854bf02dc4e5a0165e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_create_datakey.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_client_encryption_create_datakey() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_create_datakey()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_create_datakey (
    +   mongoc_client_encryption_t *client_encryption,
    +   const char *kms_provider,
    +   mongoc_client_encryption_datakey_opts_t *opts,
    +   bson_value_t *keyid,
    +   bson_error_t *error);
    +
    +
    +

    Creates a new key document in the key vault collection and sets keyid to the UUID of the newly created key if keyid is not NULL. The new key can be used to configure automatic encryption (see mongoc_client_enable_auto_encryption() and mongoc_client_pool_enable_auto_encryption()) or for explicit encryption (see mongoc_client_encryption_encrypt()).

    +

    The created key document is inserted into the key vault collection (identified via mongoc_client_encryption_opts_set_keyvault_namespace()) with majority write concern.

    +

    keyid is always initialized (even on error). Caller must call bson_value_destroy() on keyid to free.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_destroy.html b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..48412e088a6db757c9b8d319db755bfb2a28b998 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_datakey_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_datakey_opts_destroy (mongoc_client_encryption_datakey_opts_t *opts);
    +
    +
    +

    Frees resources of a mongoc_client_encryption_datakey_opts_t created with mongoc_client_encryption_datakey_opts_new(). Does nothing if NULL is passed.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_new.html b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..a81d500f8aaa72f7ebee732083b4676f4f3210ea --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_new.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_datakey_opts_new()

    +
    +

    Synopsis

    +
    mongoc_client_encryption_datakey_opts_t *
    +mongoc_client_encryption_datakey_opts_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Returns

    +

    A new mongoc_client_encryption_datakey_opts_t that must be freed with mongoc_client_encryption_datakey_opts_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_keyaltnames.html b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_keyaltnames.html new file mode 100644 index 0000000000000000000000000000000000000000..c1b1d9a01f5542a554f8cbdaf0d35500f7028a71 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_keyaltnames.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_set_keyaltnames() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_datakey_opts_set_keyaltnames()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_datakey_opts_set_keyaltnames (
    +   mongoc_client_encryption_datakey_opts_t *opts,
    +   char **keyaltnames,
    +   uint32_t keyaltnames_count);
    +
    +
    +

    Sets a list of alternate name strings that can be used to identify a data key. Key alternate names must be unique.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_keymaterial.html b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_keymaterial.html new file mode 100644 index 0000000000000000000000000000000000000000..d9c06e40f0d0cf94cae13f5f4382a4f72983e277 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_keymaterial.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_set_keymaterial() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_datakey_opts_set_keymaterial()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_datakey_opts_set_keymaterial (
    +   mongoc_client_encryption_datakey_opts_t *opts,
    +   const uint8_t *data,
    +   uint32_t len);
    +
    +
    +

    Sets the custom key material to be used by the data key for encryption and decryption.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Key material is used to encrypt and decrypt data. If custom key material is not provided, the key material for the new data key is generated from a cryptographically secure random device.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_masterkey.html b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_masterkey.html new file mode 100644 index 0000000000000000000000000000000000000000..ece8f888769aa4eda722bc5c9c668fc3fdfd9428 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_set_masterkey.html @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_set_masterkey() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_datakey_opts_set_masterkey()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_datakey_opts_set_masterkey (
    +   mongoc_client_encryption_datakey_opts_t *opts, const bson_t *masterkey);
    +
    +
    +

    Identifies the masterkey for the Key Management Service (KMS) provider used to encrypt a new data key.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Setting the masterkey is required when creating a data key with the KMS providers: aws, azure, gcp, and kmip.

    +

    Setting the masterkey is prohibited with the KMS provider local.

    +

    The format of masterkey for “aws” is as follows:

    +
    {
    +   region: String,
    +   key: String, /* The Amazon Resource Name (ARN) to the AWS customer master key (CMK). */
    +   endpoint: Optional<String> /* An alternate host identifier to send KMS requests to. May include port number. Defaults to "kms.<region>.amazonaws.com" */
    +}
    +
    +
    +

    The format of masterkey for “azure” is as follows:

    +
    {
    +   keyVaultEndpoint: String, /* Host with optional port. Example: "example.vault.azure.net". */
    +   keyName: String,
    +   keyVersion: Optional<String> /* A specific version of the named key, defaults to using the key's primary version. */
    +}
    +
    +
    +

    The format of masterkey for “gcp” is as follows:

    +
    {
    +   projectId: String,
    +   location: String,
    +   keyRing: String,
    +   keyName: String,
    +   keyVersion: Optional<String>, /* A specific version of the named key, defaults to using the key's primary version. */
    +   endpoint: Optional<String> /* Host with optional port. Defaults to "cloudkms.googleapis.com". */
    +}
    +
    +
    +

    The format of masterkey for “kmip” is as follows:

    +
    {
    +   keyId: Optional<String>,
    +   endpoint: Optional<String> /* Host with optional port. */
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_t.html b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c4bc33fa29478654888b77890e40d4a6520c0d1d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_datakey_opts_t.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_datakey_opts_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_client_encryption_datakey_opts_t mongoc_client_encryption_datakey_opts_t;
    +
    +
    +

    Used to set options for mongoc_client_encryption_create_datakey().

    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_decrypt.html b/libmongoc/1.23.2/mongoc_client_encryption_decrypt.html new file mode 100644 index 0000000000000000000000000000000000000000..9c6eb20c4e2fdd11a07812a237d733cc4b6461bb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_decrypt.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_client_decryption_decrypt() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_decryption_decrypt()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_decrypt (mongoc_client_encryption_t *client_encryption,
    +                                  const bson_value_t *ciphertext,
    +                                  bson_value_t *value,
    +                                  bson_error_t *error);
    +
    +
    +

    Performs explicit decryption.

    +

    value is always initialized (even on failure). Caller must call bson_value_destroy() to free.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_delete_key.html b/libmongoc/1.23.2/mongoc_client_encryption_delete_key.html new file mode 100644 index 0000000000000000000000000000000000000000..09c511482d46a2d2d60b1b103b926e399df1d4ee --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_delete_key.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_encryption_delete_key() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_delete_key()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_delete_key (
    +   mongoc_client_encryption_t *client_encryption,
    +   const bson_value_t *keyid,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    Delete a key document in the key vault collection that has the given keyid.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_destroy.html b/libmongoc/1.23.2/mongoc_client_encryption_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..362595b5a784aa15999fa989e7572429370fdaef --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_client_encryption_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_destroy (
    +   mongoc_client_encryption_t *client_encryption);
    +
    +
    +

    Release all resources associated with client_encryption and free the structure. Does nothing if client_encryption is NULL.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt.html new file mode 100644 index 0000000000000000000000000000000000000000..3ae8669243b75a39a18987ad791914b93502af80 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_encrypt (
    +   mongoc_client_encryption_t *client_encryption,
    +   const bson_value_t *value,
    +   mongoc_client_encryption_encrypt_opts_t *opts,
    +   bson_value_t *ciphertext,
    +   bson_error_t *error);
    +
    +
    +

    Performs explicit encryption.

    +

    ciphertext is always initialized (even on failure). Caller must call bson_value_destroy() to free.

    +

    To insert or query with an “Indexed” encrypted payload, use a +mongoc_client_t configured with +mongoc_auto_encryption_opts_t. The +mongoc_auto_encryption_opts_t may be configured to bypass query +analysis with mongoc_auto_encryption_opts_set_bypass_query_analysis(). +The mongoc_auto_encryption_opts_t must not be configured to bypass +automatic encryption with +mongoc_auto_encryption_opts_set_bypass_auto_encryption(). Note that +the "Indexed" payload type is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_destroy.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..69bb2c26ee75db588689f8d8c1dae8d30966824a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_opts_destroy (mongoc_client_encryption_encrypt_opts_t *opts);
    +
    +
    +

    Frees resources of a mongoc_client_encryption_encrypt_opts_t created with mongoc_client_encryption_encrypt_opts_new(). Does nothing if NULL is passed.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_new.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..b685ba0725d96dfabcdc6c248c7dae71c18f7699 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_new.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_new()

    +
    +

    Synopsis

    +
    mongoc_client_encryption_encrypt_opts_t *
    +mongoc_client_encryption_encrypt_opts_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Returns

    +

    A new mongoc_client_encryption_encrypt_opts_t that must be freed with mongoc_client_encryption_encrypt_opts_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_algorithm.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_algorithm.html new file mode 100644 index 0000000000000000000000000000000000000000..25d2e1b024cf737ad6d5e7ab9c5b92e430c3fb39 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_algorithm.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_algorithm() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_set_algorithm()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_opts_set_algorithm (
    +   mongoc_client_encryption_encrypt_opts_t *opts, const char *algorithm);
    +
    +#define MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
    +#define MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
    +// (Experimental: See below)
    +#define MONGOC_ENCRYPT_ALGORITHM_INDEXED "Indexed"
    +// (Experimental: See below)
    +#define MONGOC_ENCRYPT_ALGORITHM_UNINDEXED "Unindexed"
    +
    +
    +

    Identifies the algorithm to use for encryption. Valid values of algorithm are:

    +

    "AEAD_AES_256_CBC_HMAC_SHA_512-Random"

    +
    +

    for randomized encryption.

    +
    +

    "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"

    +
    +

    for deterministic (queryable) encryption.

    +
    +

    "Indexed"

    +
    +

    for indexed encryption.

    +
    +

    Note

    +

    This option is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    "Unindexed"

    +
    +

    for unindexed encryption.

    +
    +

    Note

    +

    This option is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_contention_factor.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_contention_factor.html new file mode 100644 index 0000000000000000000000000000000000000000..b498202bf8be009b3e09f160ebce8d55dd2b0671 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_contention_factor.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_contention_factor() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_set_contention_factor()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_opts_set_contention_factor (
    +    mongoc_client_encryption_encrypt_opts_t *opts, int64_t contention_factor);
    +
    +
    +
    +

    Important

    +

    This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.22.0.

    +
    +

    Sets a contention factor for explicit encryption. +Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “Indexed”. +It is an error to set the contention factor when algorithm is not “Indexed”. +If contention factor is not supplied, it defaults to a value of 0.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_keyaltname.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_keyaltname.html new file mode 100644 index 0000000000000000000000000000000000000000..fdf9ace92e55a9a8b6e97d8341ad71766ea20d8d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_keyaltname.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_keyaltname() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_set_keyaltname()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_opts_set_keyaltname (
    +   mongoc_client_encryption_encrypt_opts_t *opts, const char *keyaltname);
    +
    +
    +

    Identifies the data key to use for encryption. This option is mutually exclusive with mongoc_client_encryption_encrypt_opts_set_keyid().

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_keyid.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_keyid.html new file mode 100644 index 0000000000000000000000000000000000000000..24720695094dafcc5060742e58032bc628efecc5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_keyid.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_keyid() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_set_keyid()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_opts_set_keyid (
    +   mongoc_client_encryption_encrypt_opts_t *opts, const bson_value_t *keyid);
    +
    +
    +

    Identifies the data key to use for encryption. This option is mutually exclusive with mongoc_client_encryption_encrypt_opts_set_keyaltname().

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_query_type.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_query_type.html new file mode 100644 index 0000000000000000000000000000000000000000..a032c0013485968302f2f2fb8759630cfbf99079 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_set_query_type.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_query_type() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_set_query_type()

    +
    +

    Synopsis

    +
    #define MONGOC_ENCRYPT_QUERY_TYPE_EQUALITY "equality"
    +
    +MONGOC_EXPORT (void)
    + mongoc_client_encryption_encrypt_opts_set_query_type (
    +     mongoc_client_encryption_encrypt_opts_t *opts, const char* query_type);
    +
    +
    +
    +

    Important

    +

    This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.22.0.

    +
    +

    Sets a query type for explicit encryption. Currently, the only supported value +for query_type is "equality".

    +

    Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “Indexed”. +It is an error to set the query type when algorithm is not “Indexed”.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_t.html b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9be21b976354c936a64f782d5d92aca9c9fa14b1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_encrypt_opts_t.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_get_crypt_shared_version.html b/libmongoc/1.23.2/mongoc_client_encryption_get_crypt_shared_version.html new file mode 100644 index 0000000000000000000000000000000000000000..b1babd7ae6a8b39e727af218fde74f325047a407 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_get_crypt_shared_version.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_crypt_shared_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_get_crypt_shared_version()

    +
    +

    Synopsis

    +
    const char*
    +mongoc_client_encryption_get_crypt_shared_version (mongoc_client_encryption_t const *enc)
    +    BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Obtain the version string of the crypt_shared that is loaded for the given +explicit encryption object. If no crypt_shared library is loaded, the returned +pointer will be NULL.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A pointer to a null-terminated character array string designating the version of +crypt_shared that was loaded for enc. If no crypt_shared library is +loaded, the returned pointer will be NULL. The pointed-to array must not be +modified or freed. The returned pointer is only valid for the lifetime of +enc.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_get_key.html b/libmongoc/1.23.2/mongoc_client_encryption_get_key.html new file mode 100644 index 0000000000000000000000000000000000000000..d0993e284857e1672c787ed247d58756dded95f2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_get_key.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_key() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_get_key()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_get_key (mongoc_client_encryption_t *client_encryption,
    +                                  const bson_value_t *keyid,
    +                                  bson_t *key_doc,
    +                                  bson_error_t *error);
    +
    +
    +

    Get a key document in the key vault collection that has the given keyid.

    +
    +
    +

    Parameters

    +
      +
    • client_encryption: A mongoc_client_encryption_t.

    • +
    • keyid: The UUID (BSON binary subtype 0x04) of the key to get.

    • +
    • key_doc: Optional. An uninitialized bson_t set to the resulting key document, or an empty document value if the key does not exist. Must be freed by bson_destroy().

    • +
    • error: Optional. bson_error_t.

    • +
    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_get_key_by_alt_name.html b/libmongoc/1.23.2/mongoc_client_encryption_get_key_by_alt_name.html new file mode 100644 index 0000000000000000000000000000000000000000..1bf95570ba64bfe3389bebefa7e775e439a4480a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_get_key_by_alt_name.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_key_by_alt_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_get_key_by_alt_name()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_get_key_by_alt_name (
    +   mongoc_client_encryption_t *client_encryption,
    +   const char *keyaltname,
    +   bson_value_t *key_doc,
    +   bson_error_t *error);
    +
    +
    +

    Get a key document in the key vault collection that has the given keyaltname.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_get_keys.html b/libmongoc/1.23.2/mongoc_client_encryption_get_keys.html new file mode 100644 index 0000000000000000000000000000000000000000..8edb99effe392baa9023f184a8cebf5539781f0f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_get_keys.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_keys() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_get_keys()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_client_encryption_get_keys (mongoc_client_encryption_t *client_encryption,
    +                                   bson_error_t *error);
    +
    +
    +

    Get all the key documents in the key vault collection.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns the result of the internal find command if successful. Returns NULL and sets error otherwise.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_new.html b/libmongoc/1.23.2/mongoc_client_encryption_new.html new file mode 100644 index 0000000000000000000000000000000000000000..da5a50d129e30bc226865d3171770ff55ab92049 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_new.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_client_encryption_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_new()

    +
    +

    Synopsis

    +
    mongoc_client_encryption_t *
    +mongoc_client_encryption_new (mongoc_client_encryption_opts_t *opts,
    +                              bson_error_t *error) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Create a new mongoc_client_encryption_t.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A new mongoc_client_encryption_t that must be freed with mongoc_client_encryption_destroy() if successful. Returns NULL and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_destroy.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..85d685acaa4cd1b60803561f04b68a2577ff2810 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_opts_destroy (mongoc_client_encryption_opts_t *opts);
    +
    +
    +

    Frees resources of a mongoc_client_encryption_opts_t created with mongoc_client_encryption_opts_new(). Does nothing if NULL is passed.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_new.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..5ea78f402a48ccd804b41ae3848a849bed874aae --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_new.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_new()

    +
    +

    Synopsis

    +
    mongoc_client_encryption_opts_t *
    +mongoc_client_encryption_opts_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Returns

    +

    A new mongoc_client_encryption_opts_t that must be freed with mongoc_client_encryption_opts_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_set_keyvault_client.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_keyvault_client.html new file mode 100644 index 0000000000000000000000000000000000000000..2c37c9000f3d00246f19b9dc6a82d9c199cfe7e6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_keyvault_client.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_keyvault_client() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_set_keyvault_client()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_opts_set_keyvault_client (
    +   mongoc_client_encryption_opts_t *opts,
    +   mongoc_client_t *keyvault_client);
    +
    +
    +

    Set the mongoc_client_t to use during key creation and key lookup for encryption and decryption. This may be either a single-threaded or multi-threaded client (i.e. a client obtained from a mongoc_client_pool_t).

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_keyvault_namespace.html new file mode 100644 index 0000000000000000000000000000000000000000..f1ae7448cf2ccad5e7d3151d43ca0ffe548ac4ca --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_keyvault_namespace.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_keyvault_namespace() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_set_keyvault_namespace()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_opts_set_keyvault_namespace (
    +   mongoc_client_encryption_opts_t *opts, const char *db, const char *coll);
    +
    +
    +

    Set the database and collection name of the key vault. The key vault is the specially designated collection containing encrypted data keys for Client-Side Field Level Encryption.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html new file mode 100644 index 0000000000000000000000000000000000000000..11599dc9758ff905a5277521d5c96e2bc78ee84c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_kms_credential_provider_callback () — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_set_kms_credential_provider_callback ()

    +
    +

    New in version 1.23.0.

    +
    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_opts_set_kms_credential_provider_callback (
    +  mongoc_client_encryption_opts_t *opts,
    +  mongoc_kms_credentials_provider_callback_fn fn,
    +  void *userdata);
    +
    +
    +

    Set the user-provided callback to provide KMS credentials on-demand when they +are needed.

    +
    +
    +

    Parameters

    +
      +
    • opts - The options object to update.

    • +
    • fn - The provider callback to set on the options object. May be NULL +to clear the callback. Refer to: +mongoc_kms_credentials_provider_callback_fn

    • +
    • userdata - An arbitrary pointer that will be passed along to the +callback function when it is called by libmongoc.

    • +
    + +

    Related:

    +
    +
    +type mongoc_kms_credentials_provider_callback_fn
    +
    typedef
    +bool (*mongoc_kms_credentials_provider_callback_fn) (void *userdata,
    +                                                     const bson_t *params,
    +                                                     bson_t *out,
    +                                                     bson_error_t *error);
    +
    +
    +

    The type of a callback function for providing KMS providers data on-demand.

    +
    +
    Parameters:
    +
      +
    • userdata - The same userdata pointer provided to the userdata +parameter when the callback was set.

    • +
    • params - Parameters for the requested KMS credentials. Currently +empty.

    • +
    • out - The output bson_t in which to write the new +KMS providers. When passed to the callback, this already points to an +empty BSON document which must be populated.

    • +
    • error - An output parameter for indicating any errors that might +occur while generating the KMS credentials.

    • +
    +
    +
    Return value:
    +

    Must return true on success, false on failure.

    +
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_set_kms_providers.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_kms_providers.html new file mode 100644 index 0000000000000000000000000000000000000000..d0841b780bb861bb5ce639dffa4531f8bb233f96 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_kms_providers.html @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_kms_providers() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_set_kms_providers()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_opts_set_kms_providers (
    +   mongoc_client_encryption_opts_t *opts, const bson_t *kms_providers);
    +
    +
    +
    +
    +

    Parameters

    + +

    kms_providers is a BSON document containing configuration for each KMS provider. Currently aws, local, azure, gcp, and kmip are supported. At least one must be specified.

    +

    The format for “aws” is as follows:

    +
    aws: {
    +   accessKeyId: String,
    +   secretAccessKey: String
    +}
    +
    +
    +

    The format for “local” is as follows:

    +
    local: {
    +   key: <96 byte BSON binary of subtype 0> or String /* The master key used to encrypt/decrypt data keys. May be passed as a base64 encoded string. */
    +}
    +
    +
    +

    The format for “azure” is as follows:

    +
    azure: {
    +   tenantId: String,
    +   clientId: String,
    +   clientSecret: String,
    +   identityPlatformEndpoint: Optional<String> /* Defaults to login.microsoftonline.com */
    +}
    +
    +
    +

    The format for “gcp” is as follows:

    +
    gcp: {
    +   email: String,
    +   privateKey: byte[] or String, /* May be passed as a base64 encoded string. */
    +   endpoint: Optional<String> /* Defaults to oauth2.googleapis.com */
    +}
    +
    +
    +

    The format for “kmip” is as follows:

    +
    kmip: {
    +   endpoint: String
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_set_tls_opts.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_tls_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..2a9f4e3e31fc5803a31498eed145b82c2bbf996e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_set_tls_opts.html @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_tls_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_set_tls_opts()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_opts_set_tls_opts (
    +   mongoc_client_encryption_opts_t *opts, const bson_t *tls_opts);
    +
    +
    +
    +
    +

    Parameters

    + +

    tls_opts is a BSON document of the following form:

    +
    <KMS provider name>: {
    +   tlsCaFile: Optional<String>
    +   tlsCertificateKeyFile: Optional<String>
    +   tlsCertificateKeyFilePassword: Optional<String>
    +}
    +
    +
    +

    The KMS providers aws, azure, gcp, and kmip are supported as keys in the tls_opts document.

    +

    tls_opts maps the KMS provider name to a BSON document for TLS options.

    +

    The BSON document for TLS options may contain the following keys:

    +
      +
    • MONGOC_URI_TLSCERTIFICATEKEYFILE

    • +
    • MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD

    • +
    • MONGOC_URI_TLSCAFILE

    • +
    +
    +
    Example use
    +
    mongoc_client_encryption_opts_t *ce_opts =
    +   mongoc_client_encryption_opts_new ();
    +bson_t *tls_opts = bson_new ();
    +
    +BCON_APPEND (tls_opts, "kmip", "{", MONGOC_URI_TLSCAFILE, "ca1.pem", "}");
    +BCON_APPEND (tls_opts, "aws", "{", MONGOC_URI_TLSCAFILE, "ca2.pem", "}");
    +mongoc_client_encryption_opts_set_tls_opts (ce_opts, tls_opts);
    +
    +
    +
    +

    See Configuring TLS for a description of the behavior of these options.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_opts_t.html b/libmongoc/1.23.2/mongoc_client_encryption_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..ae6a23f1c0df3b4a3f6d92dd6933f428604ce7c2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_opts_t.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_remove_key_alt_name.html b/libmongoc/1.23.2/mongoc_client_encryption_remove_key_alt_name.html new file mode 100644 index 0000000000000000000000000000000000000000..48d0a26921baabd8864265ee73658a3c44629ce9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_remove_key_alt_name.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_client_encryption_remove_key_alt_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_remove_key_alt_name()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_remove_key_alt_name (
    +   mongoc_client_encryption_t *client_encryption,
    +   const bson_value_t *keyid,
    +   const char *keyaltname,
    +   bson_t *key_doc,
    +   bson_error_t *error);
    +
    +
    +

    Remove keyaltname from the set of keyAltNames in the key document with UUID keyid.

    +

    Also removes the keyAltNames field from the key document if it would otherwise be empty.

    +
    +
    +

    Parameters

    +
      +
    • client_encryption: A mongoc_client_encryption_t.

    • +
    • keyid: The UUID (BSON binary subtype 0x04) of the key to remove the key alternate name from.

    • +
    • keyaltname: The key alternate name to remove.

    • +
    • key_doc: Optional. An uninitialized bson_t set to the value of the key document before removal of the key alternate name, or an empty document the key does not exist. Must be freed by bson_value_destroy().

    • +
    • error: Optional. bson_error_t.

    • +
    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey.html b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey.html new file mode 100644 index 0000000000000000000000000000000000000000..f6637d2e0e21a117a1442228e178feb86669b1ec --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_rewrap_many_datakey()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_rewrap_many_datakey (
    +   mongoc_client_encryption_t *client_encryption,
    +   const bson_t *filter,
    +   const char *provider,
    +   const bson_t *master_key,
    +   mongoc_client_encryption_rewrap_many_datakey_result_t *result,
    +   bson_error_t *error);
    +
    +
    +

    Rewraps zero or more data keys in the key vault collection that match the +provided filter.

    +

    A NULL argument for filter is equivalent to being given an empty +document (match all).

    +

    If provider is NULL, rewraps matching data keys with their current KMS +provider.

    +

    If provider is not NULL, rewraps matching data keys with the new KMS +provider as described by master_key. The master_key document must +conform to the Client Side Encryption specification.

    +
    +
    +

    Parameters

    +
      +
    • client_encryption: A mongoc_client_encryption_t.

    • +
    • filter: The filter to use when finding data keys to rewrap in the key vault collection.

    • +
    • provider: The new KMS provider to use to encrypt the data keys, or NULL to use the current KMS provider(s).

    • +
    • master_key: The master key fields corresponding to the new KMS provider when provider is not NULL.

    • +
    • result: An optional mongoc_client_encryption_rewrap_many_datakey_result_t.

    • +
    • error: A bson_error_t set on failure.

    • +
    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..24b56a8776b59f06e4a66c51d1a1a191409eb8e7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_rewrap_many_datakey_result_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_rewrap_many_datakey_result_destroy (
    +   mongoc_client_encryption_rewrap_many_datakey_result_t *result);
    +
    +
    +

    Frees resources of a mongoc_client_encryption_rewrap_many_datakey_result_t created with mongoc_client_encryption_rewrap_many_datakey_result_new(). Does nothing if NULL is passed.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html new file mode 100644 index 0000000000000000000000000000000000000000..17cedf91ec3820be3e369755a517506e7c91b9cd --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result (
    +   mongoc_client_encryption_rewrap_many_datakey_result_t *result)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Get the bulk write result set by a successful call to mongoc_client_encryption_rewrap_many_datakey().

    +

    Returns NULL if no bulk write operation was executed or if the bulk write operation was unacknowledged.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_t that must not be modified or freed if result is not NULL. Otherwise, returns NULL.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_new.html b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_new.html new file mode 100644 index 0000000000000000000000000000000000000000..588791357336f15f65ebd6d2e49c0b7f2cc65568 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_new.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_rewrap_many_datakey_result_new()

    +
    +

    Synopsis

    +
    mongoc_client_encryption_rewrap_many_datakey_result_t *
    +mongoc_client_encryption_rewrap_many_datakey_result_new (void)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Returns

    +

    A new mongoc_client_encryption_rewrap_many_datakey_result_t that must be freed with mongoc_client_encryption_rewrap_many_datakey_result_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_t.html b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_t.html new file mode 100644 index 0000000000000000000000000000000000000000..e7923d6e70ff976337632be92e6ed81448641d32 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_rewrap_many_datakey_result_t.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_rewrap_many_datakey_result_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_client_encryption_rewrap_many_datakey_result_t
    +   mongoc_client_encryption_rewrap_many_datakey_result_t;
    +
    +
    +

    Used to access the result of mongoc_client_encryption_rewrap_many_datakey().

    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_encryption_t.html b/libmongoc/1.23.2/mongoc_client_encryption_t.html new file mode 100644 index 0000000000000000000000000000000000000000..94b234ad5ad74bc916023742f110d78d995a8de8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_encryption_t.html @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + mongoc_client_encryption_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_find_databases_with_opts.html b/libmongoc/1.23.2/mongoc_client_find_databases_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..ff39431dc3ba1b8e1aedefadf2cddf7901870537 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_find_databases_with_opts.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_client_find_databases_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_find_databases_with_opts()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_client_find_databases_with_opts (
    +   mongoc_client_t *client, const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Fetches a cursor containing documents, each corresponding to a database on this MongoDB server.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    For a list of all options, see the MongoDB Manual entry on the listDatabases command.

    +
    +
    +

    Errors

    +

    Use mongoc_cursor_error() on the returned cursor to check for errors.

    +
    +
    +

    Returns

    +

    A cursor where each result corresponds to the server’s representation of a database.

    +

    The cursor functions mongoc_cursor_set_limit(), mongoc_cursor_set_batch_size(), and mongoc_cursor_set_max_await_time_ms() have no use on the returned cursor.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_collection.html b/libmongoc/1.23.2/mongoc_client_get_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..9a1e680f6237240c57e3fa41130a66a223bcaf5d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_collection.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_client_get_collection() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_collection()

    +
    +

    Synopsis

    +
    mongoc_collection_t *
    +mongoc_client_get_collection (mongoc_client_t *client,
    +                              const char *db,
    +                              const char *collection)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Get a newly allocated mongoc_collection_t for the collection named collection in the database named db.

    +
    +

    Tip

    +

    Collections are automatically created on the MongoDB server upon insertion of the first document. There is no need to create a collection manually.

    +
    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db: The name of the database containing the collection.

    • +
    • collection: The name of the collection.

    • +
    +
    +
    +

    Returns

    +

    A newly allocated mongoc_collection_t that should be freed with mongoc_collection_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_crypt_shared_version.html b/libmongoc/1.23.2/mongoc_client_get_crypt_shared_version.html new file mode 100644 index 0000000000000000000000000000000000000000..bcf3c6fe0ee94e72d6fc91b1c1764466afa1bbcb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_crypt_shared_version.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_get_crypt_shared_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_crypt_shared_version()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_client_get_crypt_shared_version (const mongoc_client_t *client)
    +  BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Obtain the version string of the crypt_shared that is loaded for +auto-encryption on the given client. If no crypt_shared library is loaded, +the returned pointer will be NULL.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A pointer to a null-terminated character array string designating the version of +crypt_shared that was loaded for auto-encryption with client. If no +crypt_shared library is loaded, or auto-encryption is not loaded for the given +client, the returned pointer will be NULL. The pointed-to array must not +be modified or freed. The returned pointer is only valid for the lifetime of +client.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_database.html b/libmongoc/1.23.2/mongoc_client_get_database.html new file mode 100644 index 0000000000000000000000000000000000000000..504a9136e977268f68fc72996d406e1c6d8809e2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_database.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_get_database() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_database()

    +
    +

    Synopsis

    +
    mongoc_database_t *
    +mongoc_client_get_database (mongoc_client_t *client,
    +                            const char *name) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Get a newly allocated mongoc_database_t for the database named name.

    +
    +

    Tip

    +

    Databases are automatically created on the MongoDB server upon insertion of the first document into a collection. There is no need to create a database manually.

    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A newly allocated mongoc_database_t that should be freed with mongoc_database_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_database_names.html b/libmongoc/1.23.2/mongoc_client_get_database_names.html new file mode 100644 index 0000000000000000000000000000000000000000..b202c906c7afcf3716971bef548bf1ebf68ad259 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_database_names.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_client_get_database_names() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_database_names()

    +
    +

    Synopsis

    +
    char **
    +mongoc_client_get_database_names (mongoc_client_t *client, bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_client_get_database_names_with_opts);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_client_get_database_names_with_opts() instead.

    +
    +
    +

    Description

    +

    This function queries the MongoDB server for a list of known databases.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A NULL terminated vector of NULL-byte terminated strings. The result should be freed with bson_strfreev().

    +

    NULL is returned upon failure and error is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_database_names_with_opts.html b/libmongoc/1.23.2/mongoc_client_get_database_names_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..67f18cf2b9451cdcba983e932ea8e577e004c63a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_database_names_with_opts.html @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + mongoc_client_get_database_names_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_database_names_with_opts()

    +
    +

    Synopsis

    +
    char **
    +mongoc_client_get_database_names_with_opts (mongoc_client_t *client,
    +                                            const bson_t *opts,
    +                                            bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    This function queries the MongoDB server for a list of known databases.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    For a list of all options, see the MongoDB Manual entry on the listDatabases command.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A NULL terminated vector of NULL-byte terminated strings. The result should be freed with bson_strfreev().

    +

    NULL is returned upon failure and error is set.

    +
    +
    +

    Examples

    +
    {
    +   bson_error_t error;
    +   char **strv;
    +   unsigned i;
    +
    +   if ((strv = mongoc_client_get_database_names_with_opts (client, NULL, &error))) {
    +      for (i = 0; strv[i]; i++)
    +         printf ("%s\n", strv[i]);
    +      bson_strfreev (strv);
    +   } else {
    +      fprintf (stderr, "Command failed: %s\n", error.message);
    +   }
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_default_database.html b/libmongoc/1.23.2/mongoc_client_get_default_database.html new file mode 100644 index 0000000000000000000000000000000000000000..db087f141150e28f1b6586ad3453b33555633def --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_default_database.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + mongoc_client_get_default_database() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_default_database()

    +
    +

    Synopsis

    +
    mongoc_database_t *
    +mongoc_client_get_default_database (mongoc_client_t *client)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Get the database named in the MongoDB connection URI, or NULL if the URI specifies none.

    +

    Useful when you want to choose which database to use based only on the URI in a configuration file.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A newly allocated mongoc_database_t that should be freed with mongoc_database_destroy().

    +
    +
    +

    Example

    +
    +
    Default Database Example
    +
    /* default database is "db_name" */
    +mongoc_client_t *client = mongoc_client_new ("mongodb://host/db_name");
    +mongoc_database_t *db = mongoc_client_get_default_database (client);
    +
    +assert (!strcmp ("db_name", mongoc_database_get_name (db)));
    +
    +mongoc_database_destroy (db);
    +mongoc_client_destroy (client);
    +
    +/* no default database */
    +client = mongoc_client_new ("mongodb://host/");
    +db = mongoc_client_get_default_database (client);
    +
    +assert (!db);
    +
    +mongoc_client_destroy (client);
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_gridfs.html b/libmongoc/1.23.2/mongoc_client_get_gridfs.html new file mode 100644 index 0000000000000000000000000000000000000000..5966a5a653f73db30dba00eb4dbad5edbcdd93e1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_gridfs.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_client_get_gridfs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_gridfs()

    +
    +

    Synopsis

    +
    mongoc_gridfs_t *
    +mongoc_client_get_gridfs (mongoc_client_t *client,
    +                          const char *db,
    +                          const char *prefix,
    +                          bson_error_t *error) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    The mongoc_client_get_gridfs() function shall create a new mongoc_gridfs_t. The db parameter is the name of the database which the gridfs instance should exist in. The prefix parameter corresponds to the gridfs collection namespacing; its default is “fs”, thus the default GridFS collection names are “fs.files” and “fs.chunks”.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db: The database name.

    • +
    • prefix: Optional prefix for gridfs collection names or NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    On success, returns a mongoc_gridfs_t you must free with mongoc_gridfs_destroy(). Returns NULL upon failure and sets error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_handshake_description.html b/libmongoc/1.23.2/mongoc_client_get_handshake_description.html new file mode 100644 index 0000000000000000000000000000000000000000..b11b70e4cd5488b8bc9a75724021df685e622473 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_handshake_description.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_client_get_handshake_description() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_handshake_description()

    +
    +

    Synopsis

    +
    mongoc_server_description_t *
    +mongoc_client_get_handshake_description (mongoc_client_t *client,
    +                                         uint32_t server_id,
    +                                         bson_t *opts,
    +                                         bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Returns a description constructed from the initial handshake response to a server.

    +
    +
    +

    Description

    +

    mongoc_client_get_handshake_description() is distinct from mongoc_client_get_server_description(). mongoc_client_get_server_description() returns a server description constructed from monitoring, which may differ from the server description constructed from the connection handshake.

    +

    mongoc_client_get_handshake_description() will attempt to establish a connection to the server if a connection was not already established. It will perform the MongoDB handshake and authentication if required.

    +

    Use this function only for building a language driver that wraps the C Driver. When writing applications in C, higher-level functions automatically select a suitable server.

    +
    +

    Single-threaded client behavior

    +

    Single-threaded clients only have one active connection to each server. The one connection is used for both monitoring and application operations. However, the server description returned by mongoc_client_get_handshake_description() may still differ from the server description returned by mongoc_client_get_server_description(). Notably, if connected to a load balanced cluster, the server description returned by mongoc_client_get_server_description() will describe the load balancer server (mongoc_server_description_type() will return “LoadBalancer”). And the server description returned by mongoc_client_get_handshake_description() will describe the backing server.

    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_server_description_t that must be freed with mongoc_server_description_destroy(). If a connection has not been successfully established to a server, returns NULL and error is filled out.

    +
    +
    +

    See Also

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_max_bson_size.html b/libmongoc/1.23.2/mongoc_client_get_max_bson_size.html new file mode 100644 index 0000000000000000000000000000000000000000..df50a9de6b781629d992ec16a7cf82d48b7522c0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_max_bson_size.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_get_max_bson_size() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_max_bson_size()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_client_get_max_bson_size (mongoc_client_t *client);
    +
    +
    +

    The mongoc_client_get_max_bson_size() returns the maximum bson document size allowed by the cluster. Until a connection has been made, this will be the default of 16Mb.

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    This function is deprecated and should not be used in new code.

    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The server provided max bson size, or 16Mb if no connection has been established.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_max_message_size.html b/libmongoc/1.23.2/mongoc_client_get_max_message_size.html new file mode 100644 index 0000000000000000000000000000000000000000..5451fac4b4041032ad1ed7eb548a2a39d5de9218 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_max_message_size.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_get_max_message_size() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_max_message_size()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_client_get_max_message_size (mongoc_client_t *client);
    +
    +
    +

    The mongoc_client_get_max_message_size() returns the maximum message size allowed by the cluster. Until a connection has been made, this will be the default of 40Mb.

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    This function is deprecated and should not be used in new code.

    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    The server provided max message size, or 40Mb if no connection has been established.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_read_concern.html b/libmongoc/1.23.2/mongoc_client_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..de5eca718465d1e4bc2755b7e31f0a2160d61b6e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_read_concern.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_get_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_read_concern()

    +
    +

    Synopsis

    +
    const mongoc_read_concern_t *
    +mongoc_client_get_read_concern (const mongoc_client_t *client);
    +
    +
    +

    Retrieve the default read concern configured for the client instance. The result should not be modified or freed.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_read_concern_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_read_prefs.html b/libmongoc/1.23.2/mongoc_client_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..53f52842dcf85bb4c5de6a16d43934a5f37378fa --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_read_prefs.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_get_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_read_prefs()

    +
    +

    Synopsis

    +
    const mongoc_read_prefs_t *
    +mongoc_client_get_read_prefs (const mongoc_client_t *client);
    +
    +
    +

    Retrieves the default read preferences configured for the client instance. The result should not be modified or freed.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_read_prefs_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_server_description.html b/libmongoc/1.23.2/mongoc_client_get_server_description.html new file mode 100644 index 0000000000000000000000000000000000000000..dbc633c4c0ed9c199b92af3edd32433f2452bb3b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_server_description.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_client_get_server_description() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_server_description()

    +
    +

    Synopsis

    +
    mongoc_server_description_t *
    +mongoc_client_get_server_description (
    +   mongoc_client_t *client, uint32_t server_id) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Get information about the server specified by server_id.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • server_id: An opaque id specifying the server.

    • +
    +
    +
    +

    Returns

    +

    A mongoc_server_description_t that must be freed with mongoc_server_description_destroy(). If the server is no longer in the topology, returns NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_server_descriptions.html b/libmongoc/1.23.2/mongoc_client_get_server_descriptions.html new file mode 100644 index 0000000000000000000000000000000000000000..f44d708150445480bbeb30b4292c9bd2fec91acb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_server_descriptions.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_client_get_server_descriptions() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_server_descriptions()

    +
    +

    Synopsis

    +
    mongoc_server_description_t **
    +mongoc_client_get_server_descriptions (const mongoc_client_t *client,
    +                                       size_t *n) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Fetches an array of mongoc_server_description_t structs for all known servers in the topology. Returns no servers until the client connects. Returns a single server if the client is directly connected, or all members of a replica set if the client’s MongoDB URI includes a “replicaSet” option, or all known mongos servers if the MongoDB URI includes a list of them.

    +
    void
    +show_servers (const mongoc_client_t *client)
    +{
    +   bson_t *b = BCON_NEW ("ping", BCON_INT32 (1));
    +   bson_error_t error;
    +   bool r;
    +   mongoc_server_description_t **sds;
    +   size_t i, n;
    +
    +   /* ensure client has connected */
    +   r = mongoc_client_command_simple (client, "db", b, NULL, NULL, &error);
    +   if (!r) {
    +      MONGOC_ERROR ("could not connect: %s\n", error.message);
    +      return;
    +   }
    +
    +   sds = mongoc_client_get_server_descriptions (client, &n);
    +
    +   for (i = 0; i < n; ++i) {
    +      printf ("%s\n", mongoc_server_description_host (sds[i])->host_and_port);
    +   }
    +
    +   mongoc_server_descriptions_destroy_all (sds, n);
    +   bson_destroy (&b);
    +}
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • n: Receives the length of the descriptions array.

    • +
    +
    +
    +

    Returns

    +

    A newly allocated array that must be freed with mongoc_server_descriptions_destroy_all().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_server_status.html b/libmongoc/1.23.2/mongoc_client_get_server_status.html new file mode 100644 index 0000000000000000000000000000000000000000..70650a18dbf50b6046b3c42d6f10c7bea5621551 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_server_status.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_client_get_server_status() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_server_status()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_get_server_status (mongoc_client_t *client,
    +                                 mongoc_read_prefs_t *read_prefs,
    +                                 bson_t *reply,
    +                                 bson_error_t *error) BSON_GNUC_DEPRECATED;
    +
    +
    +

    Queries the server for the current server status. The result is stored in reply.

    +

    reply is always initialized, even in the case of failure. Always call bson_destroy() to release it.

    +
    +
    +

    Deprecated

    +

    This helper function is deprecated and should not be used in new code. Run the serverStatus command directly with mongoc_client_read_command_with_opts() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_uri.html b/libmongoc/1.23.2/mongoc_client_get_uri.html new file mode 100644 index 0000000000000000000000000000000000000000..73f5b3b7d322e788cbe6e85d9db2efadca448abb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_uri.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_get_uri() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_uri()

    +
    +

    Synopsis

    +
    const mongoc_uri_t *
    +mongoc_client_get_uri (const mongoc_client_t *client);
    +
    +
    +

    Fetches the mongoc_uri_t used to create the client.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_uri_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_get_write_concern.html b/libmongoc/1.23.2/mongoc_client_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..d6851a838187d9e0455f640d03d40d393f6302d4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_get_write_concern.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_get_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_write_concern()

    +
    +

    Synopsis

    +
    const mongoc_write_concern_t *
    +mongoc_client_get_write_concern (const mongoc_client_t *client);
    +
    +
    +

    Retrieve the default write concern configured for the client instance. The result should not be modified or freed.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_write_concern_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_new.html b/libmongoc/1.23.2/mongoc_client_new.html new file mode 100644 index 0000000000000000000000000000000000000000..88adc6142d22511d7a69dbf3a98b11d9e2f5253f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_new.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_new()

    +
    +

    Synopsis

    +
    mongoc_client_t *
    +mongoc_client_new (const char *uri_string) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Creates a new mongoc_client_t using the URI string provided.

    +
    +
    +

    Parameters

    +
      +
    • uri_string: A string containing the MongoDB connection URI.

    • +
    +
    +
    +

    Returns

    +

    A newly allocated mongoc_client_t that should be freed with mongoc_client_destroy() when no longer in use. On error, NULL is returned and an error or warning will be logged.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_new_from_uri.html b/libmongoc/1.23.2/mongoc_client_new_from_uri.html new file mode 100644 index 0000000000000000000000000000000000000000..8dac6c9831f78854e5f3d154cda6d4ce8b00af4d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_new_from_uri.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_new_from_uri() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_new_from_uri()

    +
    +

    Synopsis

    +
    mongoc_client_t *
    +mongoc_client_new_from_uri (const mongoc_uri_t *uri)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Creates a new mongoc_client_t using the mongoc_uri_t provided.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A newly allocated mongoc_client_t that should be freed with mongoc_client_destroy() when no longer in use. On error, NULL is returned and an error will be logged.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_new_from_uri_with_error.html b/libmongoc/1.23.2/mongoc_client_new_from_uri_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..7b2cba265c66f374ec446970186aa77cd102bea5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_new_from_uri_with_error.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_client_new_from_uri_with_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_new_from_uri_with_error()

    +
    +

    Synopsis

    +
    mongoc_client_t *
    +mongoc_client_new_from_uri_with_error (const mongoc_uri_t *uri,
    +                                       bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Creates a new mongoc_client_t using the mongoc_uri_t provided.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A newly allocated mongoc_client_t that should be freed with mongoc_client_destroy() when no longer in use. On error, NULL is returned and error will be populated with the error description.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_destroy.html b/libmongoc/1.23.2/mongoc_client_pool_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..650651c42562a1c72491195d294655b92fe45333 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_destroy.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_pool_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_pool_destroy (mongoc_client_pool_t *pool);
    +
    +
    +

    Release all resources associated with pool, including freeing the structure.

    +

    All mongoc_client_t objects obtained from mongoc_client_pool_pop() from pool must be pushed back onto the pool with mongoc_client_pool_push() prior to calling mongoc_client_pool_destroy().

    +

    This method is NOT thread safe, and must only be called by one thread. It should be called once the application is shutting down, and after all other threads that use clients have been joined.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_enable_auto_encryption.html b/libmongoc/1.23.2/mongoc_client_pool_enable_auto_encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..89569e21446f1fdf4c814b6a2ad349687a0ee01d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_enable_auto_encryption.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_client_pool_enable_auto_encryption() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_enable_auto_encryption()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_pool_enable_auto_encryption (mongoc_client_pool_t *pool,
    +                                           mongoc_auto_encryption_opts_t* opts,
    +                                           bson_error_t* error);
    +
    +
    +

    Enable automatic client side encryption on a mongoc_client_pool_t. Requires libmongoc to be built with support for Client-Side Field Level Encryption. See the guide for Using Client-Side Field Level Encryption.

    +

    Automatic encryption is an enterprise-only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error. To bypass automatic encryption for all operations, bypass automatic encryption with mongoc_auto_encryption_opts_set_bypass_auto_encryption() in opts.

    +

    Automatic encryption requires the authenticated user to have the listCollections privilege action.

    +

    Enabling automatic encryption reduces the maximum message size and may have a negative performance impact.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_max_size.html b/libmongoc/1.23.2/mongoc_client_pool_max_size.html new file mode 100644 index 0000000000000000000000000000000000000000..107ee94666831e70ca7b5840197a197e7ab1ae05 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_max_size.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_client_pool_max_size() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_max_size()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_pool_max_size (mongoc_client_pool_t *pool,
    +                             uint32_t max_pool_size);
    +
    +
    +

    This function sets the maximum number of pooled connections available from a mongoc_client_pool_t.

    +
    +
    +

    Parameters

    +
      +
    • pool: A mongoc_client_pool_t.

    • +
    • max_pool_size: The maximum number of connections which shall be available from the pool.

    • +
    +
    +
    +

    Thread Safety

    +

    This function is safe to call from multiple threads.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_min_size.html b/libmongoc/1.23.2/mongoc_client_pool_min_size.html new file mode 100644 index 0000000000000000000000000000000000000000..025f4afb2811d4d273280bc1044362715b1cfb8f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_min_size.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_pool_min_size() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_min_size()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_pool_min_size (mongoc_client_pool_t *pool,
    +                             uint32_t min_pool_size)
    +   BSON_GNUC_DEPRECATED;
    +
    +
    +

    This function sets the maximum number of idle clients to be kept in the pool. Any idle clients in excess of the maximum are destroyed. This function is deprecated because its behavior does not match what developers expect from a “minimum pool size”, and its actual behavior is likely to hurt performance.

    +

    Applications should not call this function, they should instead accept the default behavior, which is to keep all idle clients that are pushed into the pool.

    +
    +
    +

    Parameters

    + +
    +
    +

    Thread Safety

    +

    This function is safe to call from multiple threads.

    +

    Subsequent calls to mongoc_client_pool_push() respect the new minimum size, and close the least recently used mongoc_client_t if the minimum size is exceeded.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_new.html b/libmongoc/1.23.2/mongoc_client_pool_new.html new file mode 100644 index 0000000000000000000000000000000000000000..9d19df80ccbf377e2a56f15510364a432933f7f4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_new.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_pool_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_new()

    +
    +

    Synopsis

    +
    mongoc_client_pool_t *
    +mongoc_client_pool_new (const mongoc_uri_t *uri) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    This function creates a new mongoc_client_pool_t using the mongoc_uri_t provided.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A newly allocated mongoc_client_pool_t that should be freed with mongoc_client_pool_destroy() when no longer in use. On error, NULL is returned and an error may be logged.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_new_with_error.html b/libmongoc/1.23.2/mongoc_client_pool_new_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..3d47d99a6d85ee8dc21cd0094bd4e371dea0705c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_new_with_error.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_client_pool_new_with_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_new_with_error()

    +
    +

    Synopsis

    +
    mongoc_client_pool_t *
    +mongoc_client_pool_new_with_error (const mongoc_uri_t *uri,
    +                                   bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    This function creates a new mongoc_client_pool_t using the mongoc_uri_t provided.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A newly allocated mongoc_client_pool_t that should be freed with mongoc_client_pool_destroy() when no longer in use. On error, NULL is returned and error will be populated with the error description.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_pop.html b/libmongoc/1.23.2/mongoc_client_pool_pop.html new file mode 100644 index 0000000000000000000000000000000000000000..e367f7820fc74d65908ced3ca2a2e30dd3141995 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_pop.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_pool_pop() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_pop()

    +
    +

    Synopsis

    +
    mongoc_client_t *
    +mongoc_client_pool_pop (mongoc_client_pool_t *pool)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Retrieve a mongoc_client_t from the client pool, or create one. The total number of clients that can be created from this pool is limited by the URI option “maxPoolSize”, default 100. If this number of clients has been created and all are in use, mongoc_client_pool_pop blocks until another thread returns a client with mongoc_client_pool_push(). If the “waitQueueTimeoutMS” URI option was specified with a positive value, then mongoc_client_pool_pop will return NULL when the timeout expires.

    +

    The returned mongoc_client_t must be returned to the pool with mongoc_client_pool_push().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_client_t.

    +
    +
    +

    Thread Safety

    +

    This function is safe to call from multiple threads.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_push.html b/libmongoc/1.23.2/mongoc_client_pool_push.html new file mode 100644 index 0000000000000000000000000000000000000000..c1c57fb423aba2c8c0332cf18a4f0a596ad38bf8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_push.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_client_pool_push() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_push()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_pool_push (mongoc_client_pool_t *pool, mongoc_client_t *client);
    +
    +
    +

    This function returns a mongoc_client_t back to the client pool.

    +
    +
    +

    Parameters

    + +
    +
    +

    Thread Safety

    +

    This function is safe to call from multiple threads.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_set_apm_callbacks.html b/libmongoc/1.23.2/mongoc_client_pool_set_apm_callbacks.html new file mode 100644 index 0000000000000000000000000000000000000000..9b5fd6bc2bd97c541fca85a6096b9c8cea6fd1f8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_set_apm_callbacks.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_apm_callbacks() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_set_apm_callbacks()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_pool_set_apm_callbacks (mongoc_client_pool_t *pool,
    +                                      mongoc_apm_callbacks_t *callbacks,
    +                                      void *context);
    +
    +
    +

    Register a set of callbacks to receive Application Performance Monitoring events.

    +

    The callbacks are copied by the pool and may be destroyed at any time after. If a context is passed, it is the application’s responsibility to ensure context remains valid for the lifetime of the pool.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    +
    +
    +

    Thread Safety

    +

    This function can only be called once on a pool, and must be called before the first call to mongoc_client_pool_pop().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_set_appname.html b/libmongoc/1.23.2/mongoc_client_pool_set_appname.html new file mode 100644 index 0000000000000000000000000000000000000000..7d653775dcdb6dc6e955a099102bf3d958dc7686 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_set_appname.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_appname() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_set_appname()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_pool_set_appname (mongoc_client_pool_t *pool, const char *appname)
    +
    +
    +

    This function is identical to mongoc_client_set_appname() except for client pools.

    +

    Also note that mongoc_client_set_appname() cannot be called on a client retrieved from a client pool.

    +
    +
    +

    Parameters

    +
      +
    • pool: A mongoc_client_pool_t.

    • +
    • appname: The application name, of length at most MONGOC_HANDSHAKE_APPNAME_MAX.

    • +
    +
    +
    +

    Returns

    +

    Returns true if appname was set. If appname is too long, returns false and logs an error.

    +
    +
    +

    Thread Safety

    +

    This function can only be called once on a pool, and must be called before the first call to mongoc_client_pool_pop().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_set_error_api.html b/libmongoc/1.23.2/mongoc_client_pool_set_error_api.html new file mode 100644 index 0000000000000000000000000000000000000000..5b8c55e4183b67e31de90e8031edb3ab1faf0497 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_set_error_api.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_error_api() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_set_error_api()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_pool_set_error_api (mongoc_client_pool_t *client,
    +                                  int32_t version);
    +
    +
    +

    Configure how the C Driver reports errors. See Setting the Error API Version.

    +
    +
    +

    Parameters

    +
      +
    • pool: A mongoc_client_pool_t.

    • +
    • version: The version of the error API, either MONGOC_ERROR_API_VERSION_LEGACY or MONGOC_ERROR_API_VERSION_2.

    • +
    +
    +
    +

    Returns

    +

    Returns true if the error API version was set, or logs an error message and returns false if version is invalid.

    +
    +
    +

    Thread Safety

    +

    This function can only be called once on a pool, and must be called before the first call to mongoc_client_pool_pop().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_set_server_api.html b/libmongoc/1.23.2/mongoc_client_pool_set_server_api.html new file mode 100644 index 0000000000000000000000000000000000000000..1fb82288c991013916768a6780400ec9e3bf3b9c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_set_server_api.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_server_api() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_set_server_api()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_pool_set_server_api (mongoc_client_pool_t *pool,
    +                                   const mongoc_server_api_t *api,
    +                                   bson_error_t *error);
    +
    +
    +

    Set the API version to use for clients created through pool. Once the API version is set on a pool, it may not be changed to a new value. Attempting to do so will cause this method to fail and set error.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True if the version was successfully set, false if not. On failure, error will be set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_set_ssl_opts.html b/libmongoc/1.23.2/mongoc_client_pool_set_ssl_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..7f3cf055effdb6bb3da39e7a1a688074ab608e13 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_set_ssl_opts.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_ssl_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_set_ssl_opts()

    +
    +

    Synopsis

    +
    #ifdef MONGOC_ENABLE_SSL
    +void
    +mongoc_client_pool_set_ssl_opts (mongoc_client_pool_t *pool,
    +                                 const mongoc_ssl_opt_t *opts);
    +#endif
    +
    +
    +

    This function is identical to mongoc_client_set_ssl_opts() except for +client pools. It ensures that all clients retrieved from +mongoc_client_pool_pop() or mongoc_client_pool_try_pop() +are configured with the same SSL settings.

    +

    The mongoc_ssl_opt_t struct is copied by the pool along with the strings +it points to (pem_file, pem_pwd, ca_file, ca_dir, and +crl_file) so they don’t have to remain valid after the call to +mongoc_client_pool_set_ssl_opts.

    +

    A call to mongoc_client_pool_set_ssl_opts overrides all TLS options set +through the connection string with which the mongoc_client_pool_t was +constructed.

    +
    +
    +

    Parameters

    + +
    +
    +

    Thread Safety

    +

    This function can only be called once on a pool, and must be called before the first call to mongoc_client_pool_pop().

    +
    +
    +

    Availability

    +

    This feature requires that the MongoDB C driver was compiled with -DENABLE_SSL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_t.html b/libmongoc/1.23.2/mongoc_client_pool_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5b947c4efb6b6a104e9946c69f6c15cd3c9e5300 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_t.html @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + mongoc_client_pool_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_t

    +

    A connection pool for multi-threaded programs. See Connection Pooling.

    +
    +

    Synopsis

    +
    typedef struct _mongoc_client_pool_t mongoc_client_pool_t
    +
    +
    +

    mongoc_client_pool_t is the basis for multi-threading in the MongoDB C driver. Since mongoc_client_t structures are not thread-safe, this structure is used to retrieve a new mongoc_client_t for a given thread. This structure is thread-safe, except for its destructor method, mongoc_client_pool_destroy(), which is not thread-safe and must only be called from one thread.

    +
    +
    +

    Example

    +
    +
    example-pool.c
    +
    /* gcc example-pool.c -o example-pool $(pkg-config --cflags --libs
    + * libmongoc-1.0) */
    +
    +/* ./example-pool [CONNECTION_STRING] */
    +
    +#include <mongoc/mongoc.h>
    +#include <pthread.h>
    +#include <stdio.h>
    +
    +static pthread_mutex_t mutex;
    +static bool in_shutdown = false;
    +
    +static void *
    +worker (void *data)
    +{
    +   mongoc_client_pool_t *pool = data;
    +   mongoc_client_t *client;
    +   bson_t ping = BSON_INITIALIZER;
    +   bson_error_t error;
    +   bool r;
    +
    +   BSON_APPEND_INT32 (&ping, "ping", 1);
    +
    +   while (true) {
    +      client = mongoc_client_pool_pop (pool);
    +      /* Do something with client. If you are writing an HTTP server, you
    +       * probably only want to hold onto the client for the portion of the
    +       * request performing database queries.
    +       */
    +      r = mongoc_client_command_simple (
    +         client, "admin", &ping, NULL, NULL, &error);
    +
    +      if (!r) {
    +         fprintf (stderr, "%s\n", error.message);
    +      }
    +
    +      mongoc_client_pool_push (pool, client);
    +
    +      pthread_mutex_lock (&mutex);
    +      if (in_shutdown || !r) {
    +         pthread_mutex_unlock (&mutex);
    +         break;
    +      }
    +
    +      pthread_mutex_unlock (&mutex);
    +   }
    +
    +   bson_destroy (&ping);
    +   return NULL;
    +}
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=pool-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +   mongoc_client_pool_t *pool;
    +   pthread_t threads[10];
    +   unsigned i;
    +   void *ret;
    +
    +   pthread_mutex_init (&mutex, NULL);
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   pool = mongoc_client_pool_new (uri);
    +   mongoc_client_pool_set_error_api (pool, 2);
    +
    +   for (i = 0; i < 10; i++) {
    +      pthread_create (&threads[i], NULL, worker, pool);
    +   }
    +
    +   sleep (10);
    +   pthread_mutex_lock (&mutex);
    +   in_shutdown = true;
    +   pthread_mutex_unlock (&mutex);
    +
    +   for (i = 0; i < 10; i++) {
    +      pthread_join (threads[i], &ret);
    +   }
    +
    +   mongoc_client_pool_destroy (pool);
    +   mongoc_uri_destroy (uri);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_pool_try_pop.html b/libmongoc/1.23.2/mongoc_client_pool_try_pop.html new file mode 100644 index 0000000000000000000000000000000000000000..4b6314575370c89cbb0ac89a531e85f36ab915c8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_pool_try_pop.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_pool_try_pop() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_try_pop()

    +
    +

    Synopsis

    +
    mongoc_client_t *
    +mongoc_client_pool_try_pop (mongoc_client_pool_t *pool)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    This function is identical to mongoc_client_pool_pop() except it will return NULL instead of blocking for a client to become available.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_client_t if one is immediately available, otherwise NULL.

    +
    +
    +

    Thread Safety

    +

    This function is safe to call from multiple threads.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_read_command_with_opts.html b/libmongoc/1.23.2/mongoc_client_read_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..4b0f0ffab4afc172235737d2dcb8b1b589433d0a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_read_command_with_opts.html @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + mongoc_client_read_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_read_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_read_command_with_opts (mongoc_client_t *client,
    +                                      const char *db_name,
    +                                      const bson_t *command,
    +                                      const mongoc_read_prefs_t *read_prefs,
    +                                      const bson_t *opts,
    +                                      bson_t *reply,
    +                                      bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic that is specific to commands that read, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_client_command_simple().

    +

    Use this function for commands that read such as “count” or “distinct”.

    +

    Read preferences, read concern, and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. The highest-priority sources for these options are listed first in the following table. No write concern is applied.

    + + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Collation

    read_prefs

    opts

    opts

    Transaction

    Transaction

    client

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +

    Retry logic occurs regardless of the underlying command. Retrying mapReduce has the potential for degraded performance. +Retrying a getMore command has the potential to miss results. For those commands, use generic command helpers (like mongoc_client_command_with_opts()) instead.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • command: A bson_t containing the command specification.

    • +
    • read_prefs: An optional mongoc_read_prefs_t.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    +

    Example

    +
    +
    example-command-with-opts.c
    +
    /*
    +
    +Demonstrates how to prepare options for mongoc_client_read_command_with_opts and
    +mongoc_client_write_command_with_opts. First it calls "cloneCollectionAsCapped"
    +command with "writeConcern" option, then "distinct" command with "collation" and
    +"readConcern" options,
    +
    +Start a MongoDB 3.4 replica set with --enableMajorityReadConcern and insert two
    +documents:
    +
    +$ mongo
    +MongoDB Enterprise replset:PRIMARY> db.my_collection.insert({x: 1, y: "One"})
    +WriteResult({ "nInserted" : 1 })
    +MongoDB Enterprise replset:PRIMARY> db.my_collection.insert({x: 2, y: "Two"})
    +WriteResult({ "nInserted" : 1 })
    +
    +Build and run the example:
    +
    +gcc example-command-with-opts.c -o example-command-with-opts $(pkg-config
    +--cflags --libs libmongoc-1.0)
    +./example-command-with-opts [CONNECTION_STRING]
    +cloneCollectionAsCapped: { "ok" : 1 }
    +distinct: { "values" : [ 1, 2 ], "ok" : 1 }
    +
    +*/
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=client-example";
    +   mongoc_uri_t *uri;
    +   bson_t *cmd;
    +   bson_t *opts;
    +   mongoc_write_concern_t *write_concern;
    +   mongoc_read_prefs_t *read_prefs;
    +   mongoc_read_concern_t *read_concern;
    +   bson_t reply;
    +   bson_error_t error;
    +   char *json;
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   cmd = BCON_NEW ("cloneCollectionAsCapped",
    +                   BCON_UTF8 ("my_collection"),
    +                   "toCollection",
    +                   BCON_UTF8 ("my_capped_collection"),
    +                   "size",
    +                   BCON_INT64 (1024 * 1024));
    +
    +   /* include write concern "majority" in command options */
    +   write_concern = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_wmajority (write_concern, 10000 /* wtimeoutMS */);
    +   opts = bson_new ();
    +   mongoc_write_concern_append (write_concern, opts);
    +
    +   if (mongoc_client_write_command_with_opts (
    +          client, "test", cmd, opts, &reply, &error)) {
    +      json = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("cloneCollectionAsCapped: %s\n", json);
    +      bson_free (json);
    +   } else {
    +      fprintf (stderr, "cloneCollectionAsCapped: %s\n", error.message);
    +   }
    +
    +   bson_free (cmd);
    +   bson_free (opts);
    +
    +   /* distinct values of "x" in "my_collection" where "y" sorts after "one" */
    +   cmd = BCON_NEW ("distinct",
    +                   BCON_UTF8 ("my_collection"),
    +                   "key",
    +                   BCON_UTF8 ("x"),
    +                   "query",
    +                   "{",
    +                   "y",
    +                   "{",
    +                   "$gt",
    +                   BCON_UTF8 ("one"),
    +                   "}",
    +                   "}");
    +
    +   read_prefs = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
    +
    +   /* "One" normally sorts before "one"; make "One" sort after "one" */
    +   opts = BCON_NEW ("collation",
    +                    "{",
    +                    "locale",
    +                    BCON_UTF8 ("en_US"),
    +                    "caseFirst",
    +                    BCON_UTF8 ("lower"),
    +                    "}");
    +
    +   /* add a read concern to "opts" */
    +   read_concern = mongoc_read_concern_new ();
    +   mongoc_read_concern_set_level (read_concern,
    +                                  MONGOC_READ_CONCERN_LEVEL_MAJORITY);
    +
    +   mongoc_read_concern_append (read_concern, opts);
    +
    +   if (mongoc_client_read_command_with_opts (
    +          client, "test", cmd, read_prefs, opts, &reply, &error)) {
    +      json = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("distinct: %s\n", json);
    +      bson_free (json);
    +   } else {
    +      fprintf (stderr, "distinct: %s\n", error.message);
    +   }
    +
    +   bson_destroy (cmd);
    +   bson_destroy (opts);
    +   bson_destroy (&reply);
    +   mongoc_read_prefs_destroy (read_prefs);
    +   mongoc_read_concern_destroy (read_concern);
    +   mongoc_write_concern_destroy (write_concern);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_read_write_command_with_opts.html b/libmongoc/1.23.2/mongoc_client_read_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..080980553c9be0d11258a07a5ac322d266f70580 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_read_write_command_with_opts.html @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + mongoc_client_read_write_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_read_write_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_read_write_command_with_opts (
    +   mongoc_client_t *client,
    +   const char *db_name,
    +   const bson_t *command,
    +   const mongoc_read_prefs_t *read_prefs /* UNUSED */,
    +   const bson_t *opts,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic for commands that both read and write, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_client_command_simple().

    +

    Use this function for commands that both read and write, such as “mapReduce” with an output collection.

    +

    Read and write concern and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts. The highest-priority sources for these options are listed first in the following table. Read preferences are not applied. The write concern is omitted for MongoDB before 3.4.

    + + + + + + + + + + + + + + + + + + + + + +

    Read Concern

    Write Concern

    Collation

    opts

    opts

    opts

    Transaction

    Transaction

    client

    client

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    (The mongoc_read_prefs_t parameter was included by mistake when this function was introduced in libmongoc 1.5. A command that writes must not obey a read preference.)

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • command: A bson_t containing the command specification.

    • +
    • read_prefs: Ignored.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_reset.html b/libmongoc/1.23.2/mongoc_client_reset.html new file mode 100644 index 0000000000000000000000000000000000000000..eaa5ebd8b2ce5e06c0c332c791ca8e61cc249cbf --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_reset.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_client_reset() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_reset()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_reset (mongoc_client_t *client);
    +
    +
    +

    Call this method in the child after forking to invalidate the mongoc_client_t.

    +
    +
    +

    Description

    +

    Calling mongoc_client_reset() prevents resource cleanup in the child process from interfering with the parent process.

    +

    This method causes the client to clear its session pool without sending endSessions. It also increments an internal generation counter on the given client. After this method is called, cursors from previous generations will not issue a killCursors command when they are destroyed. Client sessions from previous generations cannot be used and should be destroyed.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_select_server.html b/libmongoc/1.23.2/mongoc_client_select_server.html new file mode 100644 index 0000000000000000000000000000000000000000..9b6a83cf475f7347da9f76dc51121b0d41a5a8dd --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_select_server.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_select_server() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_select_server()

    +
    +

    Synopsis

    +
    mongoc_server_description_t *
    +mongoc_client_select_server (mongoc_client_t *client,
    +                             bool for_writes,
    +                             const mongoc_read_prefs_t *prefs,
    +                             bson_error_t *error) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Choose a server for an operation, according to the logic described in the Server Selection Spec.

    +

    Use this function only for building a language driver that wraps the C Driver. When writing applications in C, higher-level functions automatically select a suitable server.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • for_writes: Whether to choose a server suitable for writes or reads.

    • +
    • prefs: An optional mongoc_read_prefs_t. If for_writes is true, prefs must be NULL. Otherwise, use prefs to customize server selection, or pass NULL to use read preference PRIMARY.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Returns

    +

    A mongoc_server_description_t that must be freed with mongoc_server_description_destroy(). If no suitable server is found, returns NULL and error is filled out.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_abort_transaction.html b/libmongoc/1.23.2/mongoc_client_session_abort_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..2bf13408a3b4298e69beffbb006a7f2814cf23c4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_abort_transaction.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + mongoc_client_session_abort_transaction() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_abort_transaction()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_session_abort_transaction (mongoc_client_session_t *session,
    +                                         bson_error_t *error);
    +
    +
    +

    Abort a multi-document transaction.

    +
    +
    +

    Parameters

    + +
    +
    +

    Return

    +

    Returns true if the transaction was aborted. Returns false and sets error if there are invalid arguments, such as a session with no transaction in progress. Network or server errors are ignored.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_advance_cluster_time.html b/libmongoc/1.23.2/mongoc_client_session_advance_cluster_time.html new file mode 100644 index 0000000000000000000000000000000000000000..e066ea44e5580632b03987659eed7086056167f6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_advance_cluster_time.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + mongoc_client_session_advance_cluster_time() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_advance_cluster_time()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_session_advance_cluster_time (mongoc_client_session_t *session,
    +                                            const bson_t *cluster_time);
    +
    +
    +

    Advance the cluster time for a session. Has an effect only if the new cluster time is greater than the session’s current cluster time.

    +

    Use mongoc_client_session_advance_operation_time() and mongoc_client_session_advance_cluster_time() to copy the operationTime and clusterTime from another session, ensuring subsequent operations in this session are causally consistent with the last operation in the other session

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_advance_operation_time.html b/libmongoc/1.23.2/mongoc_client_session_advance_operation_time.html new file mode 100644 index 0000000000000000000000000000000000000000..d230e8e860c963dc5b0895d47aa7ace077e7a575 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_advance_operation_time.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + mongoc_client_session_advance_operation_time() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_advance_operation_time()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_session_advance_operation_time (mongoc_client_session_t *session,
    +                                              uint32_t timestamp,
    +                                              uint32_t increment);
    +
    +
    +

    Advance the session’s operation time, expressed as a BSON Timestamp with timestamp and increment components. Has an effect only if the new operation time is greater than the session’s current operation time.

    +

    Use mongoc_client_session_advance_operation_time() and mongoc_client_session_advance_cluster_time() to copy the operationTime and clusterTime from another session, ensuring subsequent operations in this session are causally consistent with the last operation in the other session

    +
    +
    +

    Parameters

    +
      +
    • session: A mongoc_client_session_t.

    • +
    • timestamp: The new operationTime’s timestamp component.

    • +
    • increment: The new operationTime’s increment component.

    • +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_append.html b/libmongoc/1.23.2/mongoc_client_session_append.html new file mode 100644 index 0000000000000000000000000000000000000000..d37836a049850f0132d65b2811139b9bc56edd37 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_append.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_client_session_append() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_append()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_session_append (const mongoc_client_session_t *client_session,
    +                              bson_t *opts,
    +                              bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function appends a logical session id to command options. Use it to configure a session for any function that takes an options document, such as mongoc_client_write_command_with_opts().

    +

    It is an error to use a session for unacknowledged writes.

    +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and fills out error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_session_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_commit_transaction.html b/libmongoc/1.23.2/mongoc_client_session_commit_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..93fe46600294cedcbae83047483bad5bcfdc033e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_commit_transaction.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + mongoc_client_session_commit_transaction() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_commit_transaction()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_session_commit_transaction (mongoc_client_session_t *session,
    +                                          bson_t *reply,
    +                                          bson_error_t *error);
    +
    +
    +

    Commit a multi-document transaction.

    +
    +
    +

    Parameters

    + +
    +
    +

    Return

    +

    Returns true if the transaction was committed. Returns false and sets error if there are invalid arguments, such as a session with no transaction in progress, or if there is a server or network error.

    +

    If a reply is supplied, it is always initialized and must be freed with bson_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_destroy.html b/libmongoc/1.23.2/mongoc_client_session_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..42068ab9808e22230bb5852f4555d3171d52e596 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_destroy.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + mongoc_client_session_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_session_destroy (mongoc_client_session_t *session);
    +
    +
    +

    End a session, returning its session id to the pool, and free all client resources associated with the session. If a multi-document transaction is in progress, abort it. Does nothing if session is NULL.

    +

    See the example code for mongoc_client_session_t.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_client.html b/libmongoc/1.23.2/mongoc_client_session_get_client.html new file mode 100644 index 0000000000000000000000000000000000000000..b44bf78a3f3971ccaa797c82898055fdce60895c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_client.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_client_session_get_client() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_client()

    +
    +

    Synopsis

    +
    mongoc_client_t *
    +mongoc_client_session_get_client (const mongoc_client_session_t *session);
    +
    +
    +

    Returns the mongoc_client_t from which this session was created. See mongoc_client_start_session().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_client_t that should not be freed.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_cluster_time.html b/libmongoc/1.23.2/mongoc_client_session_get_cluster_time.html new file mode 100644 index 0000000000000000000000000000000000000000..c89caee55cf651b8e8ec402cf752437c67434ff9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_cluster_time.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_client_session_get_cluster_time() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_cluster_time()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_client_session_get_cluster_time (const mongoc_client_session_t *session);
    +
    +
    +

    Get the session’s clusterTime as a BSON document.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    If the session has not been used for any operation and mongoc_client_session_advance_cluster_time() has not been called, a bson_t that is valid only for the lifetime of session. Otherwise, NULL.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_dirty.html b/libmongoc/1.23.2/mongoc_client_session_get_dirty.html new file mode 100644 index 0000000000000000000000000000000000000000..acc0e5968215d0629d8e5eefc4f24882fe976fbb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_dirty.html @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + mongoc_client_session_get_dirty() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_dirty()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_session_get_dirty (const mongoc_client_session_t *session);
    +
    +
    +

    Indicates whether session has been marked “dirty” as defined in the driver sessions specification.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function is intended for use by drivers that wrap libmongoc. It is not useful in client applications.

    +
    +
    +

    Returns

    +

    A boolean indicating whether the session has been marked “dirty”.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_lsid.html b/libmongoc/1.23.2/mongoc_client_session_get_lsid.html new file mode 100644 index 0000000000000000000000000000000000000000..6fe4f6ad8425c6e5006b7fac66fe52aad82f45cb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_lsid.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_client_session_get_lsid() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_lsid()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_client_session_get_lsid (mongoc_client_session_t *session);
    +
    +
    +

    Get the server-side “logical session ID” associated with this mongoc_client_session_t as a BSON document.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A bson_t that is valid only for the lifetime of session.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_operation_time.html b/libmongoc/1.23.2/mongoc_client_session_get_operation_time.html new file mode 100644 index 0000000000000000000000000000000000000000..a0dd51f167d3ebe9d0c17df68d176c12129e1658 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_operation_time.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_client_session_get_operation_time() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_operation_time()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_session_get_operation_time (const mongoc_client_session_t *session,
    +                                          uint32_t *timestamp,
    +                                          uint32_t *increment);
    +
    +
    +

    Get the session’s operationTime, expressed as a BSON Timestamp with timestamp and increment components. If the session has not been used for any operations, the timestamp and increment are 0.

    +
    +
    +

    Parameters

    +
      +
    • session: A mongoc_client_session_t.

    • +
    • timestamp: A pointer to a uint32_t to receive the timestamp component.

    • +
    • increment: A pointer to a uint32_t to receive the increment component.

    • +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_opts.html b/libmongoc/1.23.2/mongoc_client_session_get_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..b9a481a0117bebe75b2ba51e8c503f09e0d07295 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_opts.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_client_session_get_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_opts()

    +
    +

    Synopsis

    +
    const mongoc_session_opt_t *
    +mongoc_client_session_get_opts (const mongoc_client_session_t *session);
    +
    +
    +

    Get a reference to the mongoc_session_opt_t with which this session was configured.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_session_opt_t that is valid only for the lifetime of session.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_server_id.html b/libmongoc/1.23.2/mongoc_client_session_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..9c0cd22a0fc7a9e62d1685c70a8cd32ce98f65ac --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_server_id.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_client_session_get_server_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_server_id()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_client_session_get_server_id (const mongoc_client_session_t *session);
    +
    +
    +

    Get the “server ID” of the mongos this mongoc_client_session_t is pinned to.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A server ID or 0 if this mongoc_client_session_t is not pinned.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_get_transaction_state.html b/libmongoc/1.23.2/mongoc_client_session_get_transaction_state.html new file mode 100644 index 0000000000000000000000000000000000000000..f8a22462c86244e9cafa4632722062923e0ceb2e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_get_transaction_state.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_session_get_transaction_state() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_get_transaction_state()

    +
    +

    Synopsis

    +
    mongoc_transaction_state_t
    +mongoc_client_session_get_transaction_state (const mongoc_client_session_t *session);
    +
    +
    +

    Returns the current transaction state for this session.

    +
    +
    +

    Parameters

    + +
    +
    +

    Return

    +

    Returns a mongoc_transaction_state_t that represents the current transaction state.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_in_transaction.html b/libmongoc/1.23.2/mongoc_client_session_in_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..0611b7a1d1a84b19c399c9bc6e53bf420e8a0ee3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_in_transaction.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_session_in_transaction() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_in_transaction()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_session_in_transaction (const mongoc_client_session_t *session);
    +
    +
    +

    Check whether a multi-document transaction is in progress for this session.

    +
    +
    +

    Parameters

    + +
    +
    +

    Return

    +

    Returns true if a transaction was started and has not been committed or aborted, otherwise false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_start_transaction.html b/libmongoc/1.23.2/mongoc_client_session_start_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..4ab4494154eb9a4bb84c6569c2158f9efe40a817 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_start_transaction.html @@ -0,0 +1,497 @@ + + + + + + + + + + + + + + mongoc_client_session_start_transaction() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_start_transaction()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_session_start_transaction (mongoc_client_session_t *session,
    +                                         const mongoc_transaction_opt_t *opts,
    +                                         bson_error_t *error);
    +
    +
    +

    Start a multi-document transaction for all following operations in this session. Any options provided in opts override options passed to mongoc_session_opts_set_default_transaction_opts(), and options inherited from the mongoc_client_t. The opts argument is copied and can be freed after calling this function.

    +

    The transaction must be completed with mongoc_client_session_commit_transaction() or mongoc_client_session_abort_transaction(). An in-progress transaction is automatically aborted by mongoc_client_session_destroy().

    +
    +
    +

    Parameters

    + +
    +
    +

    Return

    +

    Returns true if the transaction was started. Returns false and sets error if there are invalid arguments, such as a session with a transaction already in progress.

    +
    +
    +

    Example

    +

    The following example demonstrates how to use error labels to reliably execute a multi-document transaction despite network errors and other transient failures.

    +
    +
    example-transaction.c
    +
    /* gcc example-transaction.c -o example-transaction \
    + *     $(pkg-config --cflags --libs libmongoc-1.0) */
    +
    +/* ./example-transaction [CONNECTION_STRING] */
    +
    +#include <stdio.h>
    +#include <mongoc/mongoc.h>
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   int exit_code = EXIT_FAILURE;
    +
    +   mongoc_client_t *client = NULL;
    +   mongoc_database_t *database = NULL;
    +   mongoc_collection_t *collection = NULL;
    +   mongoc_client_session_t *session = NULL;
    +   mongoc_session_opt_t *session_opts = NULL;
    +   mongoc_transaction_opt_t *default_txn_opts = NULL;
    +   mongoc_transaction_opt_t *txn_opts = NULL;
    +   mongoc_read_concern_t *read_concern = NULL;
    +   mongoc_write_concern_t *write_concern = NULL;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=transaction-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +   bson_t *doc = NULL;
    +   bson_t *insert_opts = NULL;
    +   int32_t i;
    +   int64_t start;
    +   bson_t reply = BSON_INITIALIZER;
    +   char *reply_json;
    +   bool r;
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      MONGOC_ERROR ("failed to parse URI: %s\n"
    +                    "error message:       %s\n",
    +                    uri_string,
    +                    error.message);
    +      goto done;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      goto done;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   database = mongoc_client_get_database (client, "example-transaction");
    +
    +   /* inserting into a nonexistent collection normally creates it, but a
    +    * collection can't be created in a transaction; create it now */
    +   collection =
    +      mongoc_database_create_collection (database, "collection", NULL, &error);
    +
    +   if (!collection) {
    +      /* code 48 is NamespaceExists, see error_codes.err in mongodb source */
    +      if (error.code == 48) {
    +         collection = mongoc_database_get_collection (database, "collection");
    +      } else {
    +         MONGOC_ERROR ("Failed to create collection: %s", error.message);
    +         goto done;
    +      }
    +   }
    +
    +   /* a transaction's read preferences, read concern, and write concern can be
    +    * set on the client, on the default transaction options, or when starting
    +    * the transaction. for the sake of this example, set read concern on the
    +    * default transaction options. */
    +   default_txn_opts = mongoc_transaction_opts_new ();
    +   read_concern = mongoc_read_concern_new ();
    +   mongoc_read_concern_set_level (read_concern, "snapshot");
    +   mongoc_transaction_opts_set_read_concern (default_txn_opts, read_concern);
    +   session_opts = mongoc_session_opts_new ();
    +   mongoc_session_opts_set_default_transaction_opts (session_opts,
    +                                                     default_txn_opts);
    +
    +   session = mongoc_client_start_session (client, session_opts, &error);
    +   if (!session) {
    +      MONGOC_ERROR ("Failed to start session: %s", error.message);
    +      goto done;
    +   }
    +
    +   /* in this example, set write concern when starting the transaction */
    +   txn_opts = mongoc_transaction_opts_new ();
    +   write_concern = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_wmajority (write_concern, 1000 /* wtimeout */);
    +   mongoc_transaction_opts_set_write_concern (txn_opts, write_concern);
    +
    +   insert_opts = bson_new ();
    +   if (!mongoc_client_session_append (session, insert_opts, &error)) {
    +      MONGOC_ERROR ("Could not add session to opts: %s", error.message);
    +      goto done;
    +   }
    +
    +retry_transaction:
    +   r = mongoc_client_session_start_transaction (session, txn_opts, &error);
    +   if (!r) {
    +      MONGOC_ERROR ("Failed to start transaction: %s", error.message);
    +      goto done;
    +   }
    +
    +   /* insert two documents - on error, retry the whole transaction */
    +   for (i = 0; i < 2; i++) {
    +      doc = BCON_NEW ("_id", BCON_INT32 (i));
    +      bson_destroy (&reply);
    +      r = mongoc_collection_insert_one (
    +         collection, doc, insert_opts, &reply, &error);
    +
    +      bson_destroy (doc);
    +
    +      if (!r) {
    +         MONGOC_ERROR ("Insert failed: %s", error.message);
    +         mongoc_client_session_abort_transaction (session, NULL);
    +
    +         /* a network error, primary failover, or other temporary error in a
    +          * transaction includes {"errorLabels": ["TransientTransactionError"]},
    +          * meaning that trying the entire transaction again may succeed
    +          */
    +         if (mongoc_error_has_label (&reply, "TransientTransactionError")) {
    +            goto retry_transaction;
    +         }
    +
    +         goto done;
    +      }
    +
    +      reply_json = bson_as_json (&reply, NULL);
    +      printf ("%s\n", reply_json);
    +      bson_free (reply_json);
    +   }
    +
    +   /* in case of transient errors, retry for 5 seconds to commit transaction */
    +   start = bson_get_monotonic_time ();
    +   while (bson_get_monotonic_time () - start < 5 * 1000 * 1000) {
    +      bson_destroy (&reply);
    +      r = mongoc_client_session_commit_transaction (session, &reply, &error);
    +      if (r) {
    +         /* success */
    +         break;
    +      } else {
    +         MONGOC_ERROR ("Warning: commit failed: %s", error.message);
    +         if (mongoc_error_has_label (&reply, "TransientTransactionError")) {
    +            goto retry_transaction;
    +         } else if (mongoc_error_has_label (&reply,
    +                                            "UnknownTransactionCommitResult")) {
    +            /* try again to commit */
    +            continue;
    +         }
    +
    +         /* unrecoverable error trying to commit */
    +         break;
    +      }
    +   }
    +
    +   exit_code = EXIT_SUCCESS;
    +
    +done:
    +   bson_destroy (&reply);
    +   bson_destroy (insert_opts);
    +   mongoc_write_concern_destroy (write_concern);
    +   mongoc_read_concern_destroy (read_concern);
    +   mongoc_transaction_opts_destroy (txn_opts);
    +   mongoc_transaction_opts_destroy (default_txn_opts);
    +   mongoc_client_session_destroy (session);
    +   mongoc_collection_destroy (collection);
    +   mongoc_database_destroy (database);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return exit_code;
    +}
    +
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_t.html b/libmongoc/1.23.2/mongoc_client_session_t.html new file mode 100644 index 0000000000000000000000000000000000000000..6325b20e8844ae12a46209671541e345a92020ac --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_t.html @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + mongoc_client_session_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_t

    +

    Use a session for a sequence of operations, optionally with causal consistency. See the MongoDB Manual Entry for Causal Consistency.

    +
    +

    Synopsis

    +

    Start a session with mongoc_client_start_session(), use the session for a sequence of operations and multi-document transactions, then free it with mongoc_client_session_destroy(). Any mongoc_cursor_t or mongoc_change_stream_t using a session must be destroyed before the session, and a session must be destroyed before the mongoc_client_t it came from.

    +

    By default, sessions are causally consistent. To disable causal consistency, before starting a session create a mongoc_session_opt_t with mongoc_session_opts_new() and call mongoc_session_opts_set_causal_consistency(), then free the struct with mongoc_session_opts_destroy().

    +

    Unacknowledged writes are prohibited with sessions.

    +

    A mongoc_client_session_t must be used by only one thread at a time. Due to session pooling, mongoc_client_start_session() may return a session that has been idle for some time and is about to be closed after its idle timeout. Use the session within one minute of acquiring it to refresh the session and avoid a timeout.

    +
    +
    +

    Example

    +
    +
    example-session.c
    +
    /* gcc example-session.c -o example-session \
    + *     $(pkg-config --cflags --libs libmongoc-1.0) */
    +
    +/* ./example-session [CONNECTION_STRING] */
    +
    +#include <stdio.h>
    +#include <mongoc/mongoc.h>
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   int exit_code = EXIT_FAILURE;
    +
    +   mongoc_client_t *client = NULL;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=session-example";
    +   mongoc_uri_t *uri = NULL;
    +   mongoc_client_session_t *client_session = NULL;
    +   mongoc_collection_t *collection = NULL;
    +   bson_error_t error;
    +   bson_t *selector = NULL;
    +   bson_t *update = NULL;
    +   bson_t *update_opts = NULL;
    +   bson_t *find_opts = NULL;
    +   mongoc_read_prefs_t *secondary = NULL;
    +   mongoc_cursor_t *cursor = NULL;
    +   const bson_t *doc;
    +   char *str;
    +   bool r;
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      goto done;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      goto done;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   /* pass NULL for options - by default the session is causally consistent */
    +   client_session = mongoc_client_start_session (client, NULL, &error);
    +   if (!client_session) {
    +      fprintf (stderr, "Failed to start session: %s\n", error.message);
    +      goto done;
    +   }
    +
    +   collection = mongoc_client_get_collection (client, "test", "collection");
    +   selector = BCON_NEW ("_id", BCON_INT32 (1));
    +   update = BCON_NEW ("$inc", "{", "x", BCON_INT32 (1), "}");
    +   update_opts = bson_new ();
    +   if (!mongoc_client_session_append (client_session, update_opts, &error)) {
    +      fprintf (stderr, "Could not add session to opts: %s\n", error.message);
    +      goto done;
    +   }
    +
    +   r = mongoc_collection_update_one (
    +      collection, selector, update, update_opts, NULL /* reply */, &error);
    +
    +   if (!r) {
    +      fprintf (stderr, "Update failed: %s\n", error.message);
    +      goto done;
    +   }
    +
    +   bson_destroy (selector);
    +   selector = BCON_NEW ("_id", BCON_INT32 (1));
    +   secondary = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
    +
    +   find_opts = BCON_NEW ("maxTimeMS", BCON_INT32 (2000));
    +   if (!mongoc_client_session_append (client_session, find_opts, &error)) {
    +      fprintf (stderr, "Could not add session to opts: %s\n", error.message);
    +      goto done;
    +   };
    +
    +   /* read from secondary. since we're in a causally consistent session, the
    +    * data is guaranteed to reflect the update we did on the primary. the query
    +    * blocks waiting for the secondary to catch up, if necessary, or times out
    +    * and fails after 2000 ms.
    +    */
    +   cursor = mongoc_collection_find_with_opts (
    +      collection, selector, find_opts, secondary);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_json (doc, NULL);
    +      fprintf (stdout, "%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "Cursor Failure: %s\n", error.message);
    +      goto done;
    +   }
    +
    +   exit_code = EXIT_SUCCESS;
    +
    +done:
    +   if (find_opts) {
    +      bson_destroy (find_opts);
    +   }
    +   if (update) {
    +      bson_destroy (update);
    +   }
    +   if (selector) {
    +      bson_destroy (selector);
    +   }
    +   if (update_opts) {
    +      bson_destroy (update_opts);
    +   }
    +   if (secondary) {
    +      mongoc_read_prefs_destroy (secondary);
    +   }
    +   /* destroy cursor, collection, session before the client they came from */
    +   if (cursor) {
    +      mongoc_cursor_destroy (cursor);
    +   }
    +   if (collection) {
    +      mongoc_collection_destroy (collection);
    +   }
    +   if (client_session) {
    +      mongoc_client_session_destroy (client_session);
    +   }
    +   if (uri) {
    +      mongoc_uri_destroy (uri);
    +   }
    +   if (client) {
    +      mongoc_client_destroy (client);
    +   }
    +
    +   mongoc_cleanup ();
    +
    +   return exit_code;
    +}
    +
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_with_transaction.html b/libmongoc/1.23.2/mongoc_client_session_with_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..18c50023dea2c2418cc289ddb5060ab0a88ff6bc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_with_transaction.html @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + mongoc_client_session_with_transaction() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_with_transaction()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_session_with_transaction (mongoc_client_session_t *session,
    +                                        mongoc_client_session_with_transaction_cb_t cb,
    +                                        const mongoc_transaction_opt_t *opts,
    +                                        void *ctx,
    +                                        bson_t *reply,
    +                                        bson_error_t *error);
    +
    +
    +

    This method will start a new transaction on session, run cb, and then commit the transaction. If it cannot commit the transaction, the entire sequence may be retried, and cb may be run multiple times. ctx will be passed to cb each time it is called.

    +

    This method has an internal time limit of 120 seconds, and will retry until that time limit is reached. This timeout is not configurable.

    +

    cb should not attempt to start new transactions, but should simply run operations meant to be contained within a transaction. The cb does not need to commit transactions; this is handled by the mongoc_client_session_with_transaction(). If cb does commit or abort a transaction, however, this method will return without taking further action.

    +

    The parameter reply is initialized even upon failure to simplify memory management.

    +
    +
    +

    Parameters

    + +
    +
    +

    Return

    +

    Returns true if the transaction was completed successfully. Otherwise, returns false in case of failure. In cases of failure error will also be set, except if the passed-in cb fails without setting error. If a non-NULL reply is passed in, reply will be set to the value of the last server response, except if the passed-in cb fails without setting a reply.

    +
    +
    +

    Example

    +
    +
    Use with_transaction() to run a callback within a transaction
    +
    /* gcc example-with-transaction-cb.c -o example-with-transaction-cb $(pkg-config
    + * --cflags --libs libmongoc-1.0) */
    +
    +/* ./example-with-transaction-cb [CONNECTION_STRING] */
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +/*
    + * We pass this context object to mongoc_client_session_with_transaction() along
    + * with our callback function. The context object will be passed to our callback
    + * function when it runs, so we can access it.
    + */
    +typedef struct {
    +   mongoc_collection_t *collection;
    +   bson_t *insert_opts;
    +} ctx_t;
    +
    +/*
    + * We pass this method as the callback to
    + * mongoc_client_session_with_transaction(). The insert that this method
    + * performs will happen inside of a new transaction.
    + */
    +bool
    +create_and_insert_doc (mongoc_client_session_t *session,
    +                       void *ctx,
    +                       bson_t **reply, /* out param for our server reply */
    +                       bson_error_t *error)
    +{
    +   /*
    +    * mongoc_collection_insert_one requires an uninitialized, stack-allocated
    +    * bson_t to receive the update result
    +    */
    +   bson_t local_reply;
    +   bson_t *doc = NULL;
    +   ctx_t *data = NULL;
    +   bool retval;
    +
    +   /*
    +    * Create a new bson document - { id: 1 }
    +    */
    +   doc = BCON_NEW ("_id", BCON_INT32 (1));
    +
    +   printf (
    +      "Running the user-defined callback in a newly created transaction...\n");
    +   data = (ctx_t *) ctx;
    +   retval = mongoc_collection_insert_one (
    +      data->collection, doc, data->insert_opts, &local_reply, error);
    +
    +   /*
    +    * To return to the mongoc_client_session_with_transaction() method, set
    +    * *reply to a new copy of our local_reply before destroying it.
    +    */
    +   *reply = bson_copy (&local_reply);
    +   bson_destroy (&local_reply);
    +
    +   bson_destroy (doc);
    +   return retval;
    +}
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   int exit_code = EXIT_FAILURE;
    +
    +   mongoc_uri_t *uri = NULL;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=with-txn-cb-example";
    +   mongoc_client_t *client = NULL;
    +   mongoc_database_t *database = NULL;
    +   mongoc_collection_t *collection = NULL;
    +   mongoc_client_session_t *session = NULL;
    +   bson_t *insert_opts = NULL;
    +   bson_t reply;
    +   ctx_t ctx;
    +   char *str;
    +   bson_error_t error;
    +
    +   /*
    +    * Required to initialize libmongoc's internals
    +    */
    +   mongoc_init ();
    +
    +   /*
    +    * Optionally get MongoDB URI from command line
    +    */
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   /*
    +    * Safely create a MongoDB URI object from the given string
    +    */
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      MONGOC_ERROR ("failed to parse URI: %s\n"
    +                    "error message:       %s\n",
    +                    uri_string,
    +                    error.message);
    +      goto done;
    +   }
    +
    +   /*
    +    * Create a new client instance
    +    */
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      goto done;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   /*
    +    * Get a handle on the database "example-with-txn-cb"
    +    */
    +   database = mongoc_client_get_database (client, "example-with-txn-cb");
    +
    +   /*
    +    * Inserting into a nonexistent collection normally creates it, but a
    +    * collection can't be created in a transaction; create it now
    +    */
    +   collection =
    +      mongoc_database_create_collection (database, "collection", NULL, &error);
    +   if (!collection) {
    +      /* code 48 is NamespaceExists, see error_codes.err in mongodb source */
    +      if (error.code == 48) {
    +         collection = mongoc_database_get_collection (database, "collection");
    +      } else {
    +         MONGOC_ERROR ("Failed to create collection: %s", error.message);
    +         goto done;
    +      }
    +   }
    +
    +   /*
    +    * Pass NULL for options - by default the session is causally consistent
    +    */
    +   session = mongoc_client_start_session (client, NULL, &error);
    +   if (!session) {
    +      MONGOC_ERROR ("Failed to start session: %s", error.message);
    +      goto done;
    +   }
    +
    +   /*
    +    * Append a logical session id to command options
    +    */
    +   insert_opts = bson_new ();
    +   if (!mongoc_client_session_append (session, insert_opts, &error)) {
    +      MONGOC_ERROR ("Could not add session to opts: %s", error.message);
    +      goto done;
    +   }
    +
    +   ctx.collection = collection;
    +   ctx.insert_opts = insert_opts;
    +
    +   /*
    +    * This method will start a new transaction on session, run our callback
    +    * function, i.e., &create_and_insert_doc, passing &ctx as an argument and
    +    * commit the transaction.
    +    */
    +   if (!mongoc_client_session_with_transaction (
    +          session, &create_and_insert_doc, NULL, &ctx, &reply, &error)) {
    +      MONGOC_ERROR ("Insert failed: %s", error.message);
    +      goto done;
    +   }
    +
    +   str = bson_as_json (&reply, NULL);
    +   printf ("%s\n", str);
    +
    +   exit_code = EXIT_SUCCESS;
    +
    +done:
    +   bson_free (str);
    +   bson_destroy (&reply);
    +   bson_destroy (insert_opts);
    +   mongoc_client_session_destroy (session);
    +   mongoc_collection_destroy (collection);
    +   mongoc_database_destroy (database);
    +   mongoc_client_destroy (client);
    +   mongoc_uri_destroy (uri);
    +
    +   mongoc_cleanup ();
    +
    +   return exit_code;
    +}
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_session_with_transaction_cb_t.html b/libmongoc/1.23.2/mongoc_client_session_with_transaction_cb_t.html new file mode 100644 index 0000000000000000000000000000000000000000..63ece32a34a43631e55ca0006d2556314dad1967 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_session_with_transaction_cb_t.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_client_session_with_transaction_cb_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_session_with_transaction_cb_t

    +
    +

    Synopsis

    +
    typedef bool (*mongoc_client_session_with_transaction_cb_t) (
    +   mongoc_client_session_t *session,
    +   void *ctx,
    +   bson_t **reply,
    +   bson_error_t *error);
    +
    +
    +

    Provide this callback to mongoc_client_session_with_transaction(). The callback should run a sequence of operations meant to be contained within a transaction. The callback should not attempt to start or commit transactions.

    +
    +
    +

    Parameters

    +
      +
    • session: A mongoc_client_session_t.

    • +
    • ctx: A void* set to the the user-provided ctx passed to mongoc_client_session_with_transaction().

    • +
    • reply: An optional location for a bson_t or NULL. The callback should set this if it runs any operations against the server and receives replies.

    • +
    • error: A bson_error_t. The callback should set this if it receives any errors while running operations against the server.

    • +
    +
    +
    +

    Return

    +

    Returns true for success and false on failure. If cb returns false then it should also set error.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_apm_callbacks.html b/libmongoc/1.23.2/mongoc_client_set_apm_callbacks.html new file mode 100644 index 0000000000000000000000000000000000000000..584000148afefb021b066fdcff48478308090c99 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_apm_callbacks.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_client_set_apm_callbacks() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_apm_callbacks()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_set_apm_callbacks (mongoc_client_t *client,
    +                                 mongoc_apm_callbacks_t *callbacks,
    +                                 void *context);
    +
    +
    +

    Register a set of callbacks to receive Application Performance Monitoring events.

    +

    The callbacks are copied by the client and may be destroyed at any time after. If a context is passed, it is the application’s responsibility to ensure context remains valid for the lifetime of the client.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_appname.html b/libmongoc/1.23.2/mongoc_client_set_appname.html new file mode 100644 index 0000000000000000000000000000000000000000..0ef3b6c6cd4c9e4027e8959448244819e1cca08c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_appname.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_client_set_appname() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_appname()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_set_appname (mongoc_client_t *client, const char *appname)
    +
    +
    +

    Sets the application name for this client. This string, along with other internal driver details, is sent to the server as part of the initial connection handshake (“hello”).

    +

    appname is copied, and doesn’t have to remain valid after the call to mongoc_client_set_appname().

    +

    This function will log an error and return false in the following cases:

    +
      +
    • appname is longer than MONGOC_HANDSHAKE_APPNAME_MAX

    • +
    • client has already initiated a handshake

    • +
    • client is from a mongoc_client_pool_t

    • +
    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • appname: The application name, of length at most MONGOC_HANDSHAKE_APPNAME_MAX.

    • +
    +
    +
    +

    Returns

    +

    true if the appname is set successfully. Otherwise, false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_error_api.html b/libmongoc/1.23.2/mongoc_client_set_error_api.html new file mode 100644 index 0000000000000000000000000000000000000000..b04c7689b769fa34eb6bdefe8f1711d54ccd11ee --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_error_api.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_client_set_error_api() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_error_api()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_set_error_api (mongoc_client_t *client, int32_t version);
    +
    +
    +

    Configure how the C Driver reports errors. See Setting the Error API Version.

    +

    Do not use this function with pooled clients, see mongoc_client_pool_set_error_api().

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • version: The version of the error API, either MONGOC_ERROR_API_VERSION_LEGACY or MONGOC_ERROR_API_VERSION_2.

    • +
    +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_read_concern.html b/libmongoc/1.23.2/mongoc_client_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..76db40552aa839b0503ad7bc1aae7ae0d08d528d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_read_concern.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_set_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_read_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_set_read_concern (mongoc_client_t *client,
    +                                const mongoc_read_concern_t *read_concern);
    +
    +
    +

    Sets the read concern for the client. This only affects future operations, collections, and databases inheriting from client.

    +

    The default read concern is MONGOC_READ_CONCERN_LEVEL_LOCAL. This is the correct read concern for the great majority of applications.

    +

    It is a programming error to call this function on a client from a mongoc_client_pool_t. For pooled clients, set the read concern with the MongoDB URI instead.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_read_prefs.html b/libmongoc/1.23.2/mongoc_client_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..59f2a3f3c116fbc21fac33611e2e94b42ab00164 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_read_prefs.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_client_set_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_read_prefs()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_set_read_prefs (mongoc_client_t *client,
    +                              const mongoc_read_prefs_t *read_prefs);
    +
    +
    +

    Sets the default read preferences to use with future operations upon client.

    +

    The global default is to read from the replica set primary.

    +

    It is a programming error to call this function on a client from a mongoc_client_pool_t. For pooled clients, set the read preferences with the MongoDB URI instead.

    +

    Please see the MongoDB website for a description of Read Preferences.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_server_api.html b/libmongoc/1.23.2/mongoc_client_set_server_api.html new file mode 100644 index 0000000000000000000000000000000000000000..d66fe53fa398fe19dd4168a8b3e94389cb0a8600 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_server_api.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_set_server_api() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_server_api()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_set_server_api (mongoc_client_t *client,
    +                              const mongoc_server_api_t *api,
    +                              bson_error_t *error);
    +
    +
    +

    Set the API version to use for client. Once the API version is set on a client, it may not be changed to a new value. Attempting to do so will cause this method to fail and set error.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True if the version was successfully set, false if not. On failure, error will be set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_ssl_opts.html b/libmongoc/1.23.2/mongoc_client_set_ssl_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..0fd0d35897bca22c34bd75faed34e92c648c93c2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_ssl_opts.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_set_ssl_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_ssl_opts()

    +
    +

    Synopsis

    +
    #ifdef MONGOC_ENABLE_SSL
    +void
    +mongoc_client_set_ssl_opts (mongoc_client_t *client,
    +                            const mongoc_ssl_opt_t *opts);
    +#endif
    +
    +
    +

    Sets the TLS (SSL) options to use when connecting to TLS enabled MongoDB servers.

    +

    The mongoc_ssl_opt_t struct is copied by the client along with the strings +it points to (pem_file, pem_pwd, ca_file, ca_dir, and +crl_file) so they don’t have to remain valid after the call to +mongoc_client_set_ssl_opts.

    +

    A call to mongoc_client_set_ssl_opts overrides all TLS options set through +the connection string with which the mongoc_client_t was constructed.

    +

    It is a programming error to call this function on a client from a +mongoc_client_pool_t. Instead, call +mongoc_client_pool_set_ssl_opts() on the pool before popping any +clients.

    +
    +
    +

    Parameters

    + +
    +
    +

    Availability

    +

    This feature requires that the MongoDB C driver was compiled with -DENABLE_SSL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_stream_initiator.html b/libmongoc/1.23.2/mongoc_client_set_stream_initiator.html new file mode 100644 index 0000000000000000000000000000000000000000..092ed12a3b0fa8457e1d23b208f1607e10c2a318 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_stream_initiator.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_client_set_stream_initiator() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_stream_initiator()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_set_stream_initiator (mongoc_client_t *client,
    +                                    mongoc_stream_initiator_t initiator,
    +                                    void *user_data);
    +
    +
    +

    The mongoc_client_set_stream_initiator() function shall associate a given mongoc_client_t with a new stream initiator. This will completely replace the default transport (buffered TCP, possibly with TLS). The initiator should fulfill the mongoc_stream_t contract. user_data is passed through to the initiator callback and may be used for whatever run time customization is necessary.

    +

    If user_data is passed, it is the application’s responsibility to ensure user_data remains valid for the lifetime of the client.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_set_write_concern.html b/libmongoc/1.23.2/mongoc_client_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..1a38f4f27b663db290d0ec408843b9d093bad598 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_set_write_concern.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_set_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_set_write_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_set_write_concern (mongoc_client_t *client,
    +                                 const mongoc_write_concern_t *write_concern);
    +
    +
    +

    Sets the write concern for the client. This only affects future operations, collections, and databases inheriting from client.

    +

    The default write concern is MONGOC_WRITE_CONCERN_W_DEFAULT: the driver blocks awaiting basic acknowledgement of write operations from MongoDB. This is the correct write concern for the great majority of applications.

    +

    It is a programming error to call this function on a client from a mongoc_client_pool_t. For pooled clients, set the write concern with the MongoDB URI instead.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_start_session.html b/libmongoc/1.23.2/mongoc_client_start_session.html new file mode 100644 index 0000000000000000000000000000000000000000..d1a6d20e35e0e51a049c2a69fb2e47cc71e83e77 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_start_session.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + mongoc_client_start_session() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_start_session()

    +
    +

    Synopsis

    +
    mongoc_client_session_t *
    +mongoc_client_start_session (mongoc_client_t *client,
    +                             mongoc_session_opt_t *opts,
    +                             bson_error_t *error)
    +
    +
    +

    Create a session for a sequence of operations.

    +

    Start a session with mongoc_client_start_session(), use the session for a sequence of operations and multi-document transactions, then free it with mongoc_client_session_destroy(). Any mongoc_cursor_t or mongoc_change_stream_t using a session must be destroyed before the session, and a session must be destroyed before the mongoc_client_t it came from.

    +

    By default, sessions are causally consistent. To disable causal consistency, before starting a session create a mongoc_session_opt_t with mongoc_session_opts_new() and call mongoc_session_opts_set_causal_consistency(), then free the struct with mongoc_session_opts_destroy().

    +

    Unacknowledged writes are prohibited with sessions.

    +

    A mongoc_client_session_t must be used by only one thread at a time. Due to session pooling, mongoc_client_start_session() may return a session that has been idle for some time and is about to be closed after its idle timeout. Use the session within one minute of acquiring it to refresh the session and avoid a timeout.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    If successful, this function returns a newly allocated mongoc_client_session_t that should be freed with mongoc_client_session_destroy() when no longer in use. On error, returns NULL and sets error.

    +
    +
    +

    Errors

    +

    This function can fail if the driver is not built with crypto support, if opts is misconfigured, or if the session is configured with options that the server does not support.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_t.html b/libmongoc/1.23.2/mongoc_client_t.html new file mode 100644 index 0000000000000000000000000000000000000000..53f7e1b848c31b5ea1ff6f799fb355362eacdfce --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_t.html @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + mongoc_client_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_t

    +

    A single-threaded MongoDB connection. See Connection Pooling.

    +
    +

    Synopsis

    +
    typedef struct _mongoc_client_t mongoc_client_t;
    +
    +typedef mongoc_stream_t *(*mongoc_stream_initiator_t) (
    +   const mongoc_uri_t *uri,
    +   const mongoc_host_list_t *host,
    +   void *user_data,
    +   bson_error_t *error);
    +
    +
    +

    mongoc_client_t is an opaque type that provides access to a MongoDB server, +replica set, or sharded cluster. It maintains management of underlying sockets +and routing to individual nodes based on mongoc_read_prefs_t or mongoc_write_concern_t.

    +
    +
    +

    Streams

    +

    The underlying transport for a given client can be customized, wrapped or replaced by any implementation that fulfills mongoc_stream_t. A custom transport can be set with mongoc_client_set_stream_initiator().

    +
    +
    +

    Thread Safety

    +

    mongoc_client_t is NOT thread-safe and should only be used from one thread at a time. When used in multi-threaded scenarios, it is recommended that you use the thread-safe mongoc_client_pool_t to retrieve a mongoc_client_t for your thread.

    +
    +
    +

    Example

    +
    +
    example-client.c
    +
    /* gcc example-client.c -o example-client $(pkg-config --cflags --libs
    + * libmongoc-1.0) */
    +
    +/* ./example-client [CONNECTION_STRING [COLLECTION_NAME]] */
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   mongoc_cursor_t *cursor;
    +   bson_error_t error;
    +   const bson_t *doc;
    +   const char *collection_name = "test";
    +   bson_t query;
    +   char *str;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=client-example";
    +   mongoc_uri_t *uri;
    +
    +   mongoc_init ();
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   if (argc > 2) {
    +      collection_name = argv[2];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   bson_init (&query);
    +   collection = mongoc_client_get_collection (client, "test", collection_name);
    +   cursor = mongoc_collection_find_with_opts (
    +      collection,
    +      &query,
    +      NULL,  /* additional options */
    +      NULL); /* read prefs, NULL for default */
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      fprintf (stdout, "%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "Cursor Failure: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   bson_destroy (&query);
    +   mongoc_cursor_destroy (cursor);
    +   mongoc_collection_destroy (collection);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    +

    Functions

    +
    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_watch.html b/libmongoc/1.23.2/mongoc_client_watch.html new file mode 100644 index 0000000000000000000000000000000000000000..978d8043c7fb99c9252649a530daa03356217279 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_watch.html @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + mongoc_client_watch() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_watch()

    +
    +

    Synopsis

    +
    mongoc_change_stream_t*
    +mongoc_client_watch (mongoc_client_t *client,
    +                     const bson_t *pipeline,
    +                     const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    A helper function to create a change stream. It is preferred to call this +function over using a raw aggregation to create a change stream.

    +

    This function uses the read preference and read concern of the client. If +the change stream needs to re-establish connection, the same read preference +will be used. This may happen if the change stream encounters a resumable error.

    +
    +

    Warning

    +

    A change stream is only supported with majority read concern.

    +
    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    +
      +
    • db: A mongoc_client_t specifying the client which the change stream listens to.

    • +
    • pipeline: A bson_t representing an aggregation pipeline appended to the change stream. This may be an empty document.

    • +
    • opts: A bson_t containing change stream options.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • batchSize: An int32 representing number of documents requested to be returned on each call to mongoc_change_stream_next()

    • +
    • resumeAfter: A Document representing the logical starting point of the change stream. The result of mongoc_change_stream_get_resume_token() or the _id field of any change received from a change stream can be used here. This option is mutually exclusive with startAfter and startAtOperationTime.

    • +
    • startAfter: A Document representing the logical starting point of the change stream. Unlike resumeAfter, this can resume notifications after an “invalidate” event. The result of mongoc_change_stream_get_resume_token() or the _id field of any change received from a change stream can be used here. This option is mutually exclusive with resumeAfter and startAtOperationTime.

    • +
    • startAtOperationTime: A Timestamp. The change stream only provides changes that occurred at or after the specified timestamp. Any command run against the server will return an operation time that can be used here. This option is mutually exclusive with resumeAfter and startAfter.

    • +
    • maxAwaitTimeMS: An int64 representing the maximum amount of time a call to mongoc_change_stream_next() will block waiting for data

    • +
    • fullDocument: An optional UTF-8 string. Set this option to “default”, “updateLookup”, “whenAvailable”, or “required”, If unset, The string “default” is assumed. Set this option to “updateLookup” to direct the change stream cursor to lookup the most current majority-committed version of the document associated to an update change stream event.

    • +
    • fullDocumentBeforeChange: An optional UTF-8 string. Set this option to “whenAvailable”, “required”, or “off”. When unset, the default value is “off”. Similar to “fullDocument”, but returns the value of the document before the associated change.

    • +
    • comment: A bson_value_t specifying the comment to attach to this command. The comment will appear in log messages, profiler output, and currentOp output. Only string values are supported prior to MongoDB 4.4.

    • +
    +
    +
    +

    Returns

    +

    A newly allocated mongoc_change_stream_t which must be freed with +mongoc_change_stream_destroy() when no longer in use. The returned +mongoc_change_stream_t is never NULL. If there is an error, it can +be retrieved with mongoc_change_stream_error_document(), and subsequent +calls to mongoc_change_stream_next() will return false.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_client_write_command_with_opts.html b/libmongoc/1.23.2/mongoc_client_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..1c5e6e59fd09b205720c9fd75c25d8c0ba0594b4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_client_write_command_with_opts.html @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + mongoc_client_write_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_write_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_write_command_with_opts (mongoc_client_t *client,
    +                                       const char *db_name,
    +                                       const bson_t *command,
    +                                       const bson_t *opts,
    +                                       bson_t *reply,
    +                                       bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic that is specific to commands that write, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_client_command_simple().

    +

    Use this function for commands that write such as “drop” or “createRole” (but not for “insert”, “update”, or “delete”, see Basic Write Operations). Write concern and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts. The highest-priority sources for these options are listed first in the following table. The write concern is omitted for MongoDB before 3.4.

    + + + + + + + + + + + + + + + + + +

    Write Concern

    Collation

    opts

    opts

    Transaction

    client

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • command: A bson_t containing the command specification.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Basic Write Operations

    +

    Do not use this function to call the basic write commands “insert”, “update”, and “delete”. Those commands require special logic not implemented in mongoc_client_write_command_with_opts. For basic write operations use CRUD functions such as mongoc_collection_insert_one() and the others described in the CRUD tutorial, or use the Bulk API.

    +
    +
    +

    Example

    +
    +
    example-command-with-opts.c
    +
    /*
    +
    +Demonstrates how to prepare options for mongoc_client_read_command_with_opts and
    +mongoc_client_write_command_with_opts. First it calls "cloneCollectionAsCapped"
    +command with "writeConcern" option, then "distinct" command with "collation" and
    +"readConcern" options,
    +
    +Start a MongoDB 3.4 replica set with --enableMajorityReadConcern and insert two
    +documents:
    +
    +$ mongo
    +MongoDB Enterprise replset:PRIMARY> db.my_collection.insert({x: 1, y: "One"})
    +WriteResult({ "nInserted" : 1 })
    +MongoDB Enterprise replset:PRIMARY> db.my_collection.insert({x: 2, y: "Two"})
    +WriteResult({ "nInserted" : 1 })
    +
    +Build and run the example:
    +
    +gcc example-command-with-opts.c -o example-command-with-opts $(pkg-config
    +--cflags --libs libmongoc-1.0)
    +./example-command-with-opts [CONNECTION_STRING]
    +cloneCollectionAsCapped: { "ok" : 1 }
    +distinct: { "values" : [ 1, 2 ], "ok" : 1 }
    +
    +*/
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=client-example";
    +   mongoc_uri_t *uri;
    +   bson_t *cmd;
    +   bson_t *opts;
    +   mongoc_write_concern_t *write_concern;
    +   mongoc_read_prefs_t *read_prefs;
    +   mongoc_read_concern_t *read_concern;
    +   bson_t reply;
    +   bson_error_t error;
    +   char *json;
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   cmd = BCON_NEW ("cloneCollectionAsCapped",
    +                   BCON_UTF8 ("my_collection"),
    +                   "toCollection",
    +                   BCON_UTF8 ("my_capped_collection"),
    +                   "size",
    +                   BCON_INT64 (1024 * 1024));
    +
    +   /* include write concern "majority" in command options */
    +   write_concern = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_wmajority (write_concern, 10000 /* wtimeoutMS */);
    +   opts = bson_new ();
    +   mongoc_write_concern_append (write_concern, opts);
    +
    +   if (mongoc_client_write_command_with_opts (
    +          client, "test", cmd, opts, &reply, &error)) {
    +      json = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("cloneCollectionAsCapped: %s\n", json);
    +      bson_free (json);
    +   } else {
    +      fprintf (stderr, "cloneCollectionAsCapped: %s\n", error.message);
    +   }
    +
    +   bson_free (cmd);
    +   bson_free (opts);
    +
    +   /* distinct values of "x" in "my_collection" where "y" sorts after "one" */
    +   cmd = BCON_NEW ("distinct",
    +                   BCON_UTF8 ("my_collection"),
    +                   "key",
    +                   BCON_UTF8 ("x"),
    +                   "query",
    +                   "{",
    +                   "y",
    +                   "{",
    +                   "$gt",
    +                   BCON_UTF8 ("one"),
    +                   "}",
    +                   "}");
    +
    +   read_prefs = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
    +
    +   /* "One" normally sorts before "one"; make "One" sort after "one" */
    +   opts = BCON_NEW ("collation",
    +                    "{",
    +                    "locale",
    +                    BCON_UTF8 ("en_US"),
    +                    "caseFirst",
    +                    BCON_UTF8 ("lower"),
    +                    "}");
    +
    +   /* add a read concern to "opts" */
    +   read_concern = mongoc_read_concern_new ();
    +   mongoc_read_concern_set_level (read_concern,
    +                                  MONGOC_READ_CONCERN_LEVEL_MAJORITY);
    +
    +   mongoc_read_concern_append (read_concern, opts);
    +
    +   if (mongoc_client_read_command_with_opts (
    +          client, "test", cmd, read_prefs, opts, &reply, &error)) {
    +      json = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("distinct: %s\n", json);
    +      bson_free (json);
    +   } else {
    +      fprintf (stderr, "distinct: %s\n", error.message);
    +   }
    +
    +   bson_destroy (cmd);
    +   bson_destroy (opts);
    +   bson_destroy (&reply);
    +   mongoc_read_prefs_destroy (read_prefs);
    +   mongoc_read_concern_destroy (read_concern);
    +   mongoc_write_concern_destroy (write_concern);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_aggregate.html b/libmongoc/1.23.2/mongoc_collection_aggregate.html new file mode 100644 index 0000000000000000000000000000000000000000..908568fb3eed29ea5f3d49c77b456548670c32b0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_aggregate.html @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + mongoc_collection_aggregate() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_aggregate()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_collection_aggregate (mongoc_collection_t *collection,
    +                             mongoc_query_flags_t flags,
    +                             const bson_t *pipeline,
    +                             const bson_t *opts,
    +                             const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • flags: A mongoc_query_flags_t. Not all flag values apply. In particular, setting MONGOC_QUERY_EXHAUST results in an error.

    • +
    • pipeline: A bson_t, either a BSON array or a BSON document containing an array field named “pipeline”.

    • +
    • opts: A bson_t containing options for the command, or NULL.

    • +
    • read_prefs: A mongoc_read_prefs_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    For a list of all options, see the MongoDB Manual entry on the aggregate command.

    +

    This function is considered a retryable read operation unless the pipeline contains a write stage like $out or $merge. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Description

    +

    This function creates a cursor which sends the aggregate command on the underlying collection upon the first call to mongoc_cursor_next(). For more information on building aggregation pipelines, see the MongoDB Manual entry on the aggregate command.

    +

    Read preferences, read and write concern, and collation can be overridden by various sources. The highest-priority sources for these options are listed first in the following table. In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. Write concern is applied from opts, or if opts has no write concern and the aggregation pipeline includes “$out”, the write concern is applied from collection. The write concern is omitted for MongoDB before 3.4.

    + + + + + + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Write Concern

    Collation

    read_prefs

    opts

    opts

    opts

    Transaction

    Transaction

    Transaction

    collection

    collection

    collection

    +

    See the example for transactions and for the “distinct” command with opts.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +
    +static mongoc_cursor_t *
    +pipeline_query (mongoc_collection_t *collection)
    +{
    +   mongoc_cursor_t *cursor;
    +   bson_t *pipeline;
    +
    +   pipeline = BCON_NEW ("pipeline",
    +                        "[",
    +                        "{",
    +                        "$match",
    +                        "{",
    +                        "foo",
    +                        BCON_UTF8 ("A"),
    +                        "}",
    +                        "}",
    +                        "{",
    +                        "$match",
    +                        "{",
    +                        "bar",
    +                        BCON_BOOL (false),
    +                        "}",
    +                        "}",
    +                        "]");
    +
    +   cursor = mongoc_collection_aggregate (
    +      collection, MONGOC_QUERY_NONE, pipeline, NULL, NULL);
    +
    +   bson_destroy (pipeline);
    +
    +   return cursor;
    +}
    +
    +
    +
    +
    +

    Other Parameters

    +

    When using $out, the pipeline stage that writes, the write_concern field of the mongoc_cursor_t will be set to the mongoc_write_concern_t parameter, if it is valid, and applied to the write command when mongoc_cursor_next() is called. Pass any other parameters to the aggregate command, besides pipeline, as fields in opts:

    +
    mongoc_write_concern_t *write_concern = mongoc_write_concern_new ();
    +mongoc_write_concern_set_w (write_concern, 3);
    +
    +pipeline =
    +   BCON_NEW ("pipeline", "[", "{", "$out", BCON_UTF8 ("collection2"), "}", "]");
    +
    +opts = BCON_NEW ("bypassDocumentValidation", BCON_BOOL (true));
    +mongoc_write_concern_append (write_concern, opts);
    +
    +cursor = mongoc_collection_aggregate (
    +   collection1, MONGOC_QUERY_NONE, pipeline, opts, NULL);
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_command.html b/libmongoc/1.23.2/mongoc_collection_command.html new file mode 100644 index 0000000000000000000000000000000000000000..de92b33a0bef9630987d5f991a47967ef6eedd07 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_command.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + mongoc_collection_command() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_command()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_collection_command (mongoc_collection_t *collection,
    +                           mongoc_query_flags_t flags,
    +                           uint32_t skip,
    +                           uint32_t limit,
    +                           uint32_t batch_size,
    +                           const bson_t *command,
    +                           const bson_t *fields,
    +                           const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    This function is superseded by mongoc_collection_command_with_opts(), mongoc_collection_read_command_with_opts(), mongoc_collection_write_command_with_opts(), and mongoc_collection_read_write_command_with_opts().

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • flags: A mongoc_query_flags_t.

    • +
    • skip: A uint32_t with the number of documents to skip or zero.

    • +
    • limit: A uint32_t with the max number of documents to return or zero.

    • +
    • batch_size: A uint32_t with the number of documents in each batch or zero. Default is 100.

    • +
    • command: A bson_t containing the command to execute.

    • +
    • fields: A bson_t containing the fields to return or NULL. Not all commands support this option.

    • +
    • read_prefs: An optional mongoc_read_prefs_t. Otherwise, the command uses mode MONGOC_READ_PRIMARY.

    • +
    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_command_simple.html b/libmongoc/1.23.2/mongoc_collection_command_simple.html new file mode 100644 index 0000000000000000000000000000000000000000..4b385e5c617af1ff5de96656d1f6ecd5c6913853 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_command_simple.html @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + mongoc_collection_command_simple() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_command_simple()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_command_simple (mongoc_collection_t *collection,
    +                                  const bson_t *command,
    +                                  const mongoc_read_prefs_t *read_prefs,
    +                                  bson_t *reply,
    +                                  bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • command: A bson_t containing the command to execute.

    • +
    • read_prefs: An optional mongoc_read_prefs_t. Otherwise, the command uses mode MONGOC_READ_PRIMARY.

    • +
    • reply: A location to initialize a bson_t. This should be on the stack.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    This is a simplified version of mongoc_collection_command() that returns the first result document in reply. The collection’s read preference, read concern, and write concern are not applied to the command. The parameter reply is initialized even upon failure to simplify memory management.

    +

    This function tries to unwrap an embedded error in the command when possible. The unwrapped error will be propagated via the error parameter. Additionally, the result document is set in reply.

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    This function does not check the server response for a write concern error or write concern timeout.

    +
    +
    +

    Example

    +

    The following is an example of executing the collection stats command.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_collection_stats (mongoc_collection_t *collection)
    +{
    +   bson_error_t error;
    +   const char *name;
    +   bson_t *cmd;
    +   bson_t reply;
    +
    +   name = mongoc_collection_get_name (collection);
    +   cmd = BCON_NEW ("collStats", BCON_UTF8 (name));
    +
    +   if (mongoc_collection_command_simple (
    +          collection, cmd, NULL, &reply, &error)) {
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (stderr, "%s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (cmd);
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_command_with_opts.html b/libmongoc/1.23.2/mongoc_collection_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..b0f3b615aaa63f62cb3da5828669abd9c484ecc9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_command_with_opts.html @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + mongoc_collection_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_command_with_opts (
    +   mongoc_collection_t *collection,
    +   const bson_t *command,
    +   const mongoc_read_prefs_t *read_prefs,
    +   const bson_t *opts,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    Execute a command on the server, interpreting opts according to the MongoDB server version. To send a raw command to the server without any of this logic, use mongoc_client_command_simple().

    +

    Read preferences, read and write concern, and collation can be overridden by various sources. The highest-priority sources for these options are listed first:

    + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Write Concern

    Collation

    read_prefs

    opts

    opts

    opts

    Transaction

    Transaction

    Transaction

    +

    In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. +See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    The reply is not parsed for a write concern timeout or write concern error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_copy.html b/libmongoc/1.23.2/mongoc_collection_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..85679fec26caf85d0306648ff719a47aa6d2bf26 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_copy.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_collection_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_copy()

    +
    +

    Synopsis

    +
    mongoc_collection_t *
    +mongoc_collection_copy (mongoc_collection_t *collection)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a deep copy of the collection struct and its configuration. Useful if you intend to call mongoc_collection_set_write_concern(), mongoc_collection_set_read_prefs(), or mongoc_collection_set_read_concern(), and want to preserve an unaltered copy of the struct.

    +

    This function does not copy the contents of the collection on the MongoDB server.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_collection_t that should be freed with mongoc_collection_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_count.html b/libmongoc/1.23.2/mongoc_collection_count.html new file mode 100644 index 0000000000000000000000000000000000000000..b773d03c42f260fbad1e9648bd93054b4b56bb39 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_count.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + mongoc_collection_count() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_count()

    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code. +Use mongoc_collection_count_documents() or mongoc_collection_estimated_document_count() instead.

    +

    mongoc_collection_count_documents() has similar performance to calling mongoc_collection_count() with a non-NULL query, and is guaranteed to retrieve an accurate collection count. See migrating from deprecated count functions for details.

    +

    mongoc_collection_estimated_document_count() has the same performance as calling mongoc_collection_count() with a NULL query, but is not guaranteed to retrieve an accurate collection count.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Synopsis

    +
    int64_t
    +mongoc_collection_count (mongoc_collection_t *collection,
    +                         mongoc_query_flags_t flags,
    +                         const bson_t *query,
    +                         int64_t skip,
    +                         int64_t limit,
    +                         const mongoc_read_prefs_t *read_prefs,
    +                         bson_error_t *error)
    + BSON_GNUC_DEPRECATED_FOR (mongoc_collection_count_documents or
    +                           mongoc_collection_estimated_document_count);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall execute a count query on the underlying ‘collection’. The bson ‘query’ is not validated, simply passed along as appropriate to the server. As such, compatibility and errors should be validated in the appropriate server documentation.

    +

    For more information, see the query reference at the MongoDB website.

    +

    The mongoc_read_concern_t specified on the mongoc_collection_t will be used, if any. If read_prefs is NULL, the collection’s read preferences are used.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    -1 on failure, otherwise the number of documents counted.

    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_query_count (mongoc_collection_t *collection, bson_t *query)
    +{
    +   bson_error_t error;
    +   int64_t count;
    +
    +   count = mongoc_collection_count (
    +      collection, MONGOC_QUERY_NONE, query, 0, 0, NULL, &error);
    +
    +   if (count < 0) {
    +      fprintf (stderr, "Count failed: %s\n", error.message);
    +   } else {
    +      printf ("%" PRId64 " documents counted.\n", count);
    +   }
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_count_documents.html b/libmongoc/1.23.2/mongoc_collection_count_documents.html new file mode 100644 index 0000000000000000000000000000000000000000..684bea9ac3052cb7e90fedc098e6f854ae5e4489 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_count_documents.html @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + mongoc_collection_count_documents() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_count_documents()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_collection_count_documents (mongoc_collection_t *collection,
    +                                   const bson_t *filter,
    +                                   const bson_t *opts,
    +                                   const mongoc_read_prefs_t *read_prefs,
    +                                   bson_t *reply,
    +                                   bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • filter: A bson_t containing the filter.

    • +
    • opts: A bson_t, NULL to ignore.

    • +
    • read_prefs: A mongoc_read_prefs_t or NULL.

    • +
    • reply: A location for an uninitialized bson_t to store the command reply, NULL to ignore. If not NULL, reply will be initialized.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
      +
    • skip: An int specifying how many documents matching the query should be skipped before counting.

    • +
    • limit: An int specifying the maximum number of documents to count.

    • +
    • comment: A bson_value_t specifying the comment to attach to this command. The comment will appear in log messages, profiler output, and currentOp output. Specifying a non-string value requires MongoDB 4.4 or later.

    • +
    +
    +
    +

    Description

    +

    This functions executes a count query on collection. In contrast with mongoc_collection_estimated_document_count(), the count returned is guaranteed to be accurate.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    -1 on failure, otherwise the number of documents counted.

    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_count (mongoc_collection_t *collection, bson_t *filter)
    +{
    +   bson_error_t error;
    +   int64_t count;
    +   bson_t* opts = BCON_NEW ("skip", BCON_INT64(5));
    +
    +   count = mongoc_collection_count_documents (
    +      collection, filter, opts, NULL, NULL, &error);
    +   bson_destroy (opts);
    +
    +   if (count < 0) {
    +      fprintf (stderr, "Count failed: %s\n", error.message);
    +   } else {
    +      printf ("%" PRId64 " documents counted.\n", count);
    +   }
    +}
    +
    +
    +
    +
    +

    Migrating from deprecated count functions

    +

    When migrating to mongoc_collection_count_documents() from the deprecated mongoc_collection_count() or mongoc_collection_count_with_opts(), the following query operators in the filter must be replaced:

    + + + + + + + + + + + + + + + + + +

    Operator

    Replacement

    $where

    $expr

    $near

    $geoWithin with $center

    $nearSphere

    $geoWithin with $centerSphere

    +

    $expr requires MongoDB 3.6+

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_count_with_opts.html b/libmongoc/1.23.2/mongoc_collection_count_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..efeac2f479716b137d8684f7e46508ef50ab2bcc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_count_with_opts.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + mongoc_collection_count_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_count_with_opts()

    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code. +Use mongoc_collection_count_documents() or mongoc_collection_estimated_document_count() instead.

    +

    mongoc_collection_count_documents() has similar performance to calling mongoc_collection_count() with a non-NULL query, and is guaranteed to retrieve an accurate collection count. See migrating from deprecated count functions for details.

    +

    mongoc_collection_estimated_document_count() has the same performance as calling mongoc_collection_count() with a NULL query, but is not guaranteed to retrieve an accurate collection count.

    +
    +
    +

    Synopsis

    +
    int64_t
    +mongoc_collection_count_with_opts (mongoc_collection_t *collection,
    +                                   mongoc_query_flags_t flags,
    +                                   const bson_t *query,
    +                                   int64_t skip,
    +                                   int64_t limit,
    +                                   const bson_t *opts,
    +                                   const mongoc_read_prefs_t *read_prefs,
    +                                   bson_error_t *error)
    + BSON_GNUC_DEPRECATED_FOR (mongoc_collection_count_documents or
    +                           mongoc_collection_estimated_document_count);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function shall execute a count query on the underlying ‘collection’. The bson ‘query’ is not validated, simply passed along as appropriate to the server. As such, compatibility and errors should be validated in the appropriate server documentation.

    +

    The mongoc_read_concern_t specified on the mongoc_collection_t will be used, if any. If read_prefs is NULL, the collection’s read preferences are used.

    +

    In addition to the standard functionality available from mongoc_collection_count, this function allows the user to add arbitrary extra keys to the count. This pass through enables features such as hinting for counts.

    +

    For more information, see the query reference at the MongoDB website.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    -1 on failure, otherwise the number of documents counted.

    +
    +
    +

    Examples

    +
    +
    Basic Counting
    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_query_count (mongoc_collection_t *collection, bson_t *query)
    +{
    +   bson_error_t error;
    +   int64_t count;
    +   bson_t opts;
    +
    +   bson_init (&opts);
    +   BSON_APPEND_UTF8 (&opts, "hint", "_id_");
    +
    +   count = mongoc_collection_count_with_opts (
    +      collection, MONGOC_QUERY_NONE, query, 0, 0, &opts, NULL, &error);
    +
    +   bson_destroy (&opts);
    +
    +   if (count < 0) {
    +      fprintf (stderr, "Count failed: %s\n", error.message);
    +   } else {
    +      printf ("%" PRId64 " documents counted.\n", count);
    +   }
    +}
    +
    +
    +
    +
    +
    Counting with Collation
    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_query_count (mongoc_collection_t *collection, bson_t *query)
    +{
    +   bson_t *selector;
    +   bson_t *opts;
    +   bson_error_t error;
    +   int64_t count;
    +
    +   selector = BCON_NEW ("_id", "{", "$gt", BCON_UTF8 ("one"), "}");
    +
    +   /* "One" normally sorts before "one"; make "one" come first */
    +   opts = BCON_NEW ("collation",
    +                    "{",
    +                    "locale",
    +                    BCON_UTF8 ("en_US"),
    +                    "caseFirst",
    +                    BCON_UTF8 ("lower"),
    +                    "}");
    +
    +   count = mongoc_collection_count_with_opts (
    +      collection, MONGOC_QUERY_NONE, query, 0, 0, opts, NULL, &error);
    +
    +   bson_destroy (selector);
    +   bson_destroy (opts);
    +
    +   if (count < 0) {
    +      fprintf (stderr, "Count failed: %s\n", error.message);
    +   } else {
    +      printf ("%" PRId64 " documents counted.\n", count);
    +   }
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_create_bulk_operation.html b/libmongoc/1.23.2/mongoc_collection_create_bulk_operation.html new file mode 100644 index 0000000000000000000000000000000000000000..b68cec6e935366e5d4d36a18c93d28606261d531 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_create_bulk_operation.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + mongoc_collection_create_bulk_operation() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_bulk_operation()

    +
    +

    Synopsis

    +
    mongoc_bulk_operation_t *
    +mongoc_collection_create_bulk_operation (
    +   mongoc_collection_t *collection,
    +   bool ordered,
    +   const mongoc_write_concern_t *write_concern) BSON_GNUC_WARN_UNUSED_RESULT
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_collection_create_bulk_operation_with_opts);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_create_bulk_operation_with_opts() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall begin a new bulk operation. After creating this you may call various functions such as mongoc_bulk_operation_update(), mongoc_bulk_operation_insert() and others.

    +

    After calling mongoc_bulk_operation_execute() the commands will be executed in as large as batches as reasonable by the client.

    +

    If ordered is true, then processing will stop at the first error.

    +

    If ordered is not true, then the bulk operation will attempt to continue processing even after the first failure.

    +

    write_concern contains the write concern for all operations in the bulk operation. If NULL, the collection’s write concern is used. The global default is acknowledged writes: MONGOC_WRITE_CONCERN_W_DEFAULT.

    +
    +
    +

    Errors

    +

    Errors are propagated when executing the bulk operation.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_bulk_operation_t that should be freed with mongoc_bulk_operation_destroy() when no longer in use.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_create_bulk_operation_with_opts.html b/libmongoc/1.23.2/mongoc_collection_create_bulk_operation_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..3cd6979c083dfe077596933d6faa2510798d4e74 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_create_bulk_operation_with_opts.html @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + mongoc_collection_create_bulk_operation_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_bulk_operation_with_opts()

    +
    +

    Synopsis

    +
    mongoc_bulk_operation_t *
    +mongoc_collection_create_bulk_operation_with_opts (
    +   mongoc_collection_t *collection,
    +   const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function shall begin a new bulk operation. After creating this you may call various functions such as mongoc_bulk_operation_update(), mongoc_bulk_operation_insert() and others.

    +

    After calling mongoc_bulk_operation_execute() the commands will be executed in as large as batches as reasonable by the client.

    +
    +
    +

    Errors

    +

    Errors are propagated when executing the bulk operation.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_bulk_operation_t that should be freed with mongoc_bulk_operation_destroy() when no longer in use.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_create_index.html b/libmongoc/1.23.2/mongoc_collection_create_index.html new file mode 100644 index 0000000000000000000000000000000000000000..7497598ab5408a6c7c1afe79b28daa08c4227571 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_create_index.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_collection_create_index() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_index()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_create_index (mongoc_collection_t *collection,
    +                                const bson_t *keys,
    +                                const mongoc_index_opt_t *opt,
    +                                bson_error_t *error);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code. See Creating Indexes.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_create_index_with_opts.html b/libmongoc/1.23.2/mongoc_collection_create_index_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..5d9561a429bde0b32577c03f16d236e195c07640 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_create_index_with_opts.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + mongoc_collection_create_index_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_index_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_create_index_with_opts (mongoc_collection_t *collection,
    +                                          const bson_t *keys,
    +                                          const mongoc_index_opt_t *index_opts,
    +                                          const bson_t *command_opts,
    +                                          bson_t *reply,
    +                                          bson_error_t *error);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code. See Creating Indexes.

    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • keys: A bson_t.

    • +
    • index_opts: A mongoc_index_opt_t.

    • +
    • reply: An optional location for a bson_t which will store the server’s reply.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    command_opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function will request the creation of a new index.

    +

    This function will use the createIndexes command. +The server’s reply is stored in reply.

    +

    If no write concern is provided in command_opts, the collection’s write concern is used.

    +

    See mongoc_index_opt_t for options on creating indexes.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    reply is always initialized and must be destroyed with bson_destroy(). If the server is running an obsolete version of MongoDB then reply may be empty, though it will still be initialized.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_delete.html b/libmongoc/1.23.2/mongoc_collection_delete.html new file mode 100644 index 0000000000000000000000000000000000000000..c1e40e93f07dfe5b4d33e336668316567f97330a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_delete.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_collection_delete() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_delete()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_delete (mongoc_collection_t *collection,
    +                          mongoc_delete_flags_t flags,
    +                          const bson_t *selector,
    +                          const mongoc_write_concern_t *write_concern,
    +                          bson_error_t *error)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_collection_delete_one or
    +                             mongoc_collection_delete_many);
    +
    +
    +
    +
    +

    Deprecated

    +

    Please use mongoc_collection_delete_one() or mongoc_collection_delete_many() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall delete documents in the given collection that match selector. The bson selector is not validated, simply passed along as appropriate to the server. As such, compatibility and errors should be validated in the appropriate server documentation.

    +

    If you want to limit deletes to a single document, provide MONGOC_DELETE_SINGLE_REMOVE in flags.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_delete_many.html b/libmongoc/1.23.2/mongoc_collection_delete_many.html new file mode 100644 index 0000000000000000000000000000000000000000..4dbda91acb9907430ff65aa45f2bcd21039a931b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_delete_many.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + mongoc_collection_delete_many() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_delete_many()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_delete_many (mongoc_collection_t *collection,
    +                               const bson_t *selector,
    +                               const bson_t *opts,
    +                               bson_t *reply,
    +                               bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • selector: A bson_t containing the query to match documents.

    • +
    • reply: Optional. An uninitialized bson_t populated with the delete result, or NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function removes all documents in the given collection that match selector.

    +

    To delete at most one matching document, use mongoc_collection_delete_one().

    +

    If you pass a non-NULL reply, it is filled out with the field “deletedCount”. If there is a server error then reply contains either a “writeErrors” array with one subdocument or a “writeConcernErrors” array. The reply must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_delete_one.html b/libmongoc/1.23.2/mongoc_collection_delete_one.html new file mode 100644 index 0000000000000000000000000000000000000000..889f6ce7991fc1763059b974aa7cdef7664638ab --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_delete_one.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + mongoc_collection_delete_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_delete_one()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_delete_one (mongoc_collection_t *collection,
    +                              const bson_t *selector,
    +                              const bson_t *opts,
    +                              bson_t *reply,
    +                              bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • selector: A bson_t containing the query to match documents.

    • +
    • reply: Optional. An uninitialized bson_t populated with the delete result, or NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function removes at most one document in the given collection that matches selector.

    +

    To delete all matching documents, use mongoc_collection_delete_many().

    +

    If you pass a non-NULL reply, it is filled out with the field “deletedCount”. If there is a server error then reply contains either a “writeErrors” array with one subdocument or a “writeConcernErrors” array. The reply must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_destroy.html b/libmongoc/1.23.2/mongoc_collection_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..8548a4b73c3cd8e3134e5a99abb50af505b3f799 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_destroy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_collection_destroy (mongoc_collection_t *collection);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall destroy a mongoc_collection_t and its associated resources. Does nothing if collection is NULL.

    +
    +

    Warning

    +

    Always destroy a mongoc_cursor_t created from a collection before destroying the collection.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_drop.html b/libmongoc/1.23.2/mongoc_collection_drop.html new file mode 100644 index 0000000000000000000000000000000000000000..0462173ec9509fce110ef94767de0455232f7f1d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_drop.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_collection_drop() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_drop()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_drop (mongoc_collection_t *collection, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    For more information, see mongoc_collection_drop_with_opts(). This function is a thin wrapper, passing NULL in as bson_t parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_drop_index.html b/libmongoc/1.23.2/mongoc_collection_drop_index.html new file mode 100644 index 0000000000000000000000000000000000000000..879552438519dfee2839ff90d520a9b6e67efffb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_drop_index.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_drop_index() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_drop_index()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_drop_index (mongoc_collection_t *collection,
    +                              const char *index_name,
    +                              bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    For more information, see mongoc_collection_drop_with_opts(). This function is a thin wrapper, passing NULL in as bson_t parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_drop_index_with_opts.html b/libmongoc/1.23.2/mongoc_collection_drop_index_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..4b60f8ccde12d2107ba68e456a7f2a553bc266c6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_drop_index_with_opts.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_collection_drop_index_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_drop_index_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_drop_index_with_opts (mongoc_collection_t *collection,
    +                                        const char *index_name,
    +                                        const bson_t *opts,
    +                                        bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function requests than an index on collection be dropped.

    +

    If no write concern is provided in opts, the collection’s write concern is used.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_drop_with_opts.html b/libmongoc/1.23.2/mongoc_collection_drop_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..5095300680c94a794a6758cb0029f41d6c1b8eda --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_drop_with_opts.html @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + mongoc_collection_drop_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_drop_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_drop_with_opts (mongoc_collection_t *collection,
    +                                  bson_t *opts,
    +                                  bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function requests that a collection be dropped, including all indexes associated with the collection.

    +

    If no write concern is provided in opts, the collection’s write concern is used.

    +

    If the collection does not exist, the server responds with an “ns not found” error. It is safe to ignore this error; set the Error API Version to 2 and ignore server error code 26:

    +
    mongoc_client_t *client;
    +mongoc_collection_t *collection;
    +bson_error_t error;
    +bool r;
    +
    +client = mongoc_client_new (NULL);
    +mongoc_client_set_error_api (client, 2);
    +collection = mongoc_client_get_collection (client, "db", "collection");
    +r = mongoc_collection_drop_with_opts (collection, NULL /* opts */, &error);
    +if (r) {
    +   printf ("Dropped.\n");
    +} else {
    +   printf ("Error message: %s\n", error.message);
    +   if (error.domain == MONGOC_ERROR_SERVER && error.code == 26) {
    +      printf ("Ignoring 'ns not found' error\n");
    +   } else {
    +      fprintf (stderr, "Unrecognized error!\n");
    +   }
    +}
    +
    +mongoc_collection_destroy (collection);
    +mongoc_client_destroy (client);
    +
    +
    +

    In MongoDB 3.0 and older, the “ns not found” error code is the generic MONGOC_ERROR_QUERY_FAILURE; in this case check whether the error message is equal to the string “ns not found”.

    +

    The encryptedFields document in opts may be used to create a collection used for Using Client-Side Field Level Encryption. If encryptedFields is specified, the “ns not found” error is not returned.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if the collection was successfully dropped. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_ensure_index.html b/libmongoc/1.23.2/mongoc_collection_ensure_index.html new file mode 100644 index 0000000000000000000000000000000000000000..b291d4b82f5206d594d611340566ddd5f11cb4b6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_ensure_index.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_collection_ensure_index() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_ensure_index()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_ensure_index (mongoc_collection_t *collection,
    +                                const bson_t *keys,
    +                                const mongoc_index_opt_t *opt,
    +                                bson_error_t *error)
    +   BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code. See Creating Indexes.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_estimated_document_count.html b/libmongoc/1.23.2/mongoc_collection_estimated_document_count.html new file mode 100644 index 0000000000000000000000000000000000000000..20751ed57248147ccc79e0ee35d9411ceabd1e79 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_estimated_document_count.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + mongoc_collection_estimated_document_count() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_estimated_document_count()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_collection_estimated_document_count (mongoc_collection_t *collection,
    +                                            const bson_t *opts,
    +                                            const mongoc_read_prefs_t *read_prefs,
    +                                            bson_t *reply,
    +                                            bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
      +
    • skip: An int specifying how many documents matching the query should be skipped before counting.

    • +
    • limit: An int specifying the maximum number of documents to count.

    • +
    • comment: A bson_value_t specifying the comment to attach to this command. The comment will appear in log messages, profiler output, and currentOp output. Requires MongoDB 4.4 or later.

    • +
    +

    For a list of all options, see the MongoDB Manual entry on the count command.

    +
    +
    +

    Description

    +

    This functions executes a count query on collection. In contrast with mongoc_collection_count_documents(), the count returned is not guaranteed to be accurate.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +

    Behavior

    +

    This method is implemented using the count command. Due to an oversight in versions 5.0.0-5.0.8 of MongoDB, the count command was not included in version “1” of the Stable API. Applications using this method with the Stable API are recommended to upgrade their server version to 5.0.9+ or disable strict mode (via :symbol:`mongoc_server_api_strict()) to avoid encountering errors.

    +
    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    -1 on failure, otherwise the number of documents counted.

    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_count (mongoc_collection_t *collection, bson_t *query)
    +{
    +   bson_error_t error;
    +   int64_t count;
    +   bson_t* opts = BCON_NEW ("skip", BCON_INT64(5));
    +
    +   count = mongoc_collection_estimated_document_count (
    +      collection, opts, NULL, NULL, &error);
    +   bson_destroy (opts);
    +
    +   if (count < 0) {
    +      fprintf (stderr, "Count failed: %s\n", error.message);
    +   } else {
    +      printf ("%" PRId64 " documents counted.\n", count);
    +   }
    +}
    +
    +
    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_find.html b/libmongoc/1.23.2/mongoc_collection_find.html new file mode 100644 index 0000000000000000000000000000000000000000..d99839ed02df6b15065538c90fa5bf762221066e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_find.html @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + mongoc_collection_find() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find()

    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Use the more convenient mongoc_collection_find_with_opts() instead.

    +
    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_collection_find (mongoc_collection_t *collection,
    +                        mongoc_query_flags_t flags,
    +                        uint32_t skip,
    +                        uint32_t limit,
    +                        uint32_t batch_size,
    +                        const bson_t *query,
    +                        const bson_t *fields,
    +                        const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_collection_find_with_opts)
    +      BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • flags: A mongoc_query_flags_t.

    • +
    • skip: A uint32_t of number of documents to skip or 0.

    • +
    • limit: A uint32_t of max number of documents to return or 0.

    • +
    • batch_size: A uint32_t containing batch size of document result sets or 0 for default. Default is 100.

    • +
    • query: A bson_t containing the query and options to execute.

    • +
    • fields: A bson_t containing fields to return or NULL.

    • +
    • read_prefs: A mongoc_read_prefs_t or NULL for default read preferences.

    • +
    +
    +
    +

    Description

    +

    This function shall execute a query on the underlying collection.

    +

    If no options are necessary, query can simply contain a query such as {a:1}. If you would like to specify options such as a sort order, the query must be placed inside of {"$query": {}}. See the example below for how to properly specify additional options to query.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    +

    Example

    +
    +
    Print All Documents in a Collection
    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_all_documents (mongoc_collection_t *collection)
    +{
    +   mongoc_cursor_t *cursor;
    +   bson_error_t error;
    +   const bson_t *doc;
    +   char *str;
    +   bson_t *query;
    +
    +   query = BCON_NEW ("$query",
    +                     "{",
    +                     "foo",
    +                     BCON_INT32 (1),
    +                     "}",
    +                     "$orderby",
    +                     "{",
    +                     "bar",
    +                     BCON_INT32 (-1),
    +                     "}");
    +   cursor = mongoc_collection_find (
    +      collection, MONGOC_QUERY_NONE, 0, 0, 0, query, NULL, NULL);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "An error occurred: %s\n", error.message);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   bson_destroy (query);
    +}
    +
    +
    +
    +
    +
    +

    The “find” command

    +

    Queries have historically been sent as OP_QUERY wire protocol messages, but beginning in MongoDB 3.2 queries use the “find” command instead.

    +

    The driver automatically converts queries to the new “find” command syntax if needed, so this change is typically invisible to C Driver users. However, an application written exclusively for MongoDB 3.2 and later can choose to use the new syntax directly instead of relying on the driver to convert from the old syntax:

    +
    /* MongoDB 3.2+ "find" command syntax */
    +query = BCON_NEW ("filter",
    +                  "{",
    +                  "foo",
    +                  BCON_INT32 (1),
    +                  "}",
    +                  "sort",
    +                  "{",
    +                  "bar",
    +                  BCON_INT32 (-1),
    +                  "}");
    +cursor = mongoc_collection_find (
    +   collection, MONGOC_QUERY_NONE, 0, 0, 0, query, NULL, NULL);
    +
    +
    +

    The “find” command takes different options from the traditional OP_QUERY message.

    + + + + + + + + + + + + + + + + + + + +

    Query

    $query

    filter

    Sort

    $orderby

    sort

    Show record location

    $showDiskLoc

    showRecordId

    Other $-options

    $<option name>

    <option name>

    +

    Most applications should use the OP_QUERY syntax, with “$query”, “$orderby”, and so on, and rely on the driver to convert to the new syntax if needed.

    +
    +

    See also

    +
    +
    The “find” command in the MongoDB Manual.
    +
    +
    +
    +
    +

    The “explain” command

    +

    With MongoDB before 3.2, a query with option $explain: true returns information about the query plan, instead of the query results. Beginning in MongoDB 3.2, there is a separate “explain” command. The driver will not convert “$explain” queries to “explain” commands, you must call the “explain” command explicitly:

    +
    /* MongoDB 3.2+, "explain" command syntax */
    +command = BCON_NEW ("explain",
    +                    "{",
    +                    "find",
    +                    BCON_UTF8 ("collection_name"),
    +                    "filter",
    +                    "{",
    +                    "foo",
    +                    BCON_INT32 (1),
    +                    "}",
    +                    "}");
    +mongoc_collection_command_simple (collection, command, NULL, &reply, &error);
    +
    +
    +
    +

    See also

    +
    +
    The “explain” command in the MongoDB Manual.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_find_and_modify.html b/libmongoc/1.23.2/mongoc_collection_find_and_modify.html new file mode 100644 index 0000000000000000000000000000000000000000..46add1ac3e3a65b140f008608b0003a29bce787e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_find_and_modify.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + mongoc_collection_find_and_modify() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find_and_modify()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_find_and_modify (mongoc_collection_t *collection,
    +                                   const bson_t *query,
    +                                   const bson_t *sort,
    +                                   const bson_t *update,
    +                                   const bson_t *fields,
    +                                   bool _remove,
    +                                   bool upsert,
    +                                   bool _new,
    +                                   bson_t *reply,
    +                                   bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • query: A bson_t containing the query to locate target document(s).

    • +
    • sort: A bson_t containing the sort order for query.

    • +
    • update: A bson_t containing an update spec.

    • +
    • fields: An optional bson_t containing the fields to return or NULL.

    • +
    • _remove: If the matching documents should be removed.

    • +
    • upsert: If an upsert should be performed.

    • +
    • _new: If the new version of the document should be returned.

    • +
    • reply: Optional pointer to an uninitialized bson_t that will be initialized with the result.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    Update and return an object.

    +

    This is a thin wrapper around the findAndModify command. Either update or _remove arguments are required.

    +

    As of MongoDB 3.2, the mongoc_write_concern_t specified on the mongoc_collection_t will be used, if any.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns either the document before or after modification based on the _new parameter.

    +

    A write concern timeout or write concern error is considered a failure.

    + +
    +
    +

    Example

    +
    +
    find-and-modify.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +
    +int
    +main (void)
    +{
    +   mongoc_collection_t *collection;
    +   mongoc_client_t *client;
    +   const char *uri_string =
    +      "mongodb://127.0.0.1:27017/?appname=find-and-modify-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +   bson_t *query;
    +   bson_t *update;
    +   bson_t reply;
    +   char *str;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "test", "test");
    +
    +   /*
    +    * Build our query, {"cmpxchg": 1}
    +    */
    +   query = BCON_NEW ("cmpxchg", BCON_INT32 (1));
    +
    +   /*
    +    * Build our update. {"$set": {"cmpxchg": 2}}
    +    */
    +   update = BCON_NEW ("$set", "{", "cmpxchg", BCON_INT32 (2), "}");
    +
    +   /*
    +    * Submit the findAndModify.
    +    */
    +   if (!mongoc_collection_find_and_modify (collection,
    +                                           query,
    +                                           NULL,
    +                                           update,
    +                                           NULL,
    +                                           false,
    +                                           false,
    +                                           true,
    +                                           &reply,
    +                                           &error)) {
    +      fprintf (stderr, "find_and_modify() failure: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   /*
    +    * Print the result as JSON.
    +    */
    +   str = bson_as_canonical_extended_json (&reply, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   /*
    +    * Cleanup.
    +    */
    +   bson_destroy (query);
    +   bson_destroy (update);
    +   bson_destroy (&reply);
    +   mongoc_collection_destroy (collection);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_find_and_modify_with_opts.html b/libmongoc/1.23.2/mongoc_collection_find_and_modify_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..be2cceb9163b30c6c6b1a7c0c5c990c2cf3601fb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_find_and_modify_with_opts.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_collection_find_and_modify_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find_and_modify_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_find_and_modify_with_opts (
    +   mongoc_collection_t *collection,
    +   const bson_t *query,
    +   const mongoc_find_and_modify_opts_t *opts,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Update and return an object.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    If an unacknowledged write concern is set (through mongoc_find_and_modify_opts_append()), the output reply is always an empty document.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Example

    +

    See the example code for mongoc_find_and_modify_opts_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_find_indexes.html b/libmongoc/1.23.2/mongoc_collection_find_indexes.html new file mode 100644 index 0000000000000000000000000000000000000000..66cf828c4d72577989514ce7a2ed3b0330cf180a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_find_indexes.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_collection_find_indexes() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find_indexes()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_collection_find_indexes (mongoc_collection_t *collection,
    +                                bson_error_t *error);
    +   BSON_GNUC_WARN_UNUSED_RESULT
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_collection_find_indexes_with_opts);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_find_indexes_with_opts() instead.

    +

    Fetches a cursor containing documents, each corresponding to an index on this collection.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +

    In the returned cursor each result corresponds to the server’s representation of an index on this collection. If the collection does not exist on the server, the cursor will be empty.

    +

    The cursor functions mongoc_cursor_set_limit(), mongoc_cursor_set_batch_size(), and mongoc_cursor_set_max_await_time_ms() have no use on the returned cursor.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_find_indexes_with_opts.html b/libmongoc/1.23.2/mongoc_collection_find_indexes_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..1f1cd71ce44bb888ff3166edd40dd193f07bf0b0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_find_indexes_with_opts.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_collection_find_indexes_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find_indexes_with_opts()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_collection_find_indexes_with_opts (mongoc_collection_t *collection,
    +                                          const bson_t *opts)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Fetches a cursor containing documents, each corresponding to an index on this collection.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    For a list of all options, see the MongoDB Manual entry on the listIndexes command.

    +
    +
    +

    Errors

    +

    Use mongoc_cursor_error() on the returned cursor to check for errors.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +

    In the returned cursor each result corresponds to the server’s representation of an index on this collection. If the collection does not exist on the server, the cursor will be empty.

    +

    The cursor functions mongoc_cursor_set_limit(), mongoc_cursor_set_batch_size(), and mongoc_cursor_set_max_await_time_ms() have no use on the returned cursor.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_find_with_opts.html b/libmongoc/1.23.2/mongoc_collection_find_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..1c492bb5122924497ffb6d10f524fc456276c618 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_find_with_opts.html @@ -0,0 +1,429 @@ + + + + + + + + + + + + + + mongoc_collection_find_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find_with_opts()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_collection_find_with_opts (mongoc_collection_t *collection,
    +                                  const bson_t *filter,
    +                                  const bson_t *opts,
    +                                  const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Query on collection, passing arbitrary query options to the server in opts.

    +

    To target a specific server, include an integer “serverId” field in opts with an id obtained first by calling mongoc_client_select_server(), then mongoc_server_description_id() on its return value.

    +

    Read preferences, read concern, and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. The highest-priority sources for these options are listed first in the following table. No write concern is applied.

    + + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Collation

    read_prefs

    opts

    opts

    Transaction

    Transaction

    collection

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    +

    Examples

    +
    +
    Print First Ten Documents in a Collection
    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +print_ten_documents (mongoc_collection_t *collection)
    +{
    +   bson_t *filter;
    +   bson_t *opts;
    +   mongoc_cursor_t *cursor;
    +   bson_error_t error;
    +   const bson_t *doc;
    +   char *str;
    +
    +   /* filter by "foo": 1, order by "bar" descending */
    +   filter = BCON_NEW ("foo", BCON_INT32 (1));
    +   opts = BCON_NEW (
    +      "limit", BCON_INT64 (10), "sort", "{", "bar", BCON_INT32 (-1), "}");
    +
    +   cursor = mongoc_collection_find_with_opts (collection, filter, opts, NULL);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "An error occurred: %s\n", error.message);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   bson_destroy (filter);
    +   bson_destroy (opts);
    +}
    +
    +
    +
    +
    +
    More examples of modifying the query with opts:
    +
    bson_t *filter;
    +bson_t *opts;
    +mongoc_read_prefs_t *read_prefs;
    +
    +filter = BCON_NEW ("foo", BCON_INT32 (1));
    +
    +/* Include "field_name_one" and "field_name_two" in "projection", omit
    + * others. "_id" must be specifically removed or it is included by default.
    + */
    +opts = BCON_NEW ("projection", "{",
    +                    "field_name_one", BCON_BOOL (true),
    +                    "field_name_two", BCON_BOOL (true),
    +                    "_id", BCON_BOOL (false),
    +                 "}",
    +                 "tailable", BCON_BOOL (true),
    +                 "awaitData", BCON_BOOL (true),
    +                 "sort", "{", "bar", BCON_INT32 (-1), "}",
    +                 "collation", "{",
    +                    "locale", BCON_UTF8("en_US"),
    +                    "caseFirst", BCON_UTF8 ("lower"),
    +                 "}");
    +
    +read_prefs = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
    +
    +cursor =
    +   mongoc_collection_find_with_opts (collection, filter, opts, read_prefs);
    +
    +
    +
    +

    The following options are supported.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Option

    BSON type

    Option

    BSON type

    projection

    document

    max

    document

    sort

    document

    maxTimeMS

    non-negative int64

    skip

    non-negative int64

    maxAwaitTimeMS

    non-negative int64

    limit

    non-negative int64

    min

    document

    batchSize

    non-negative int64

    noCursorTimeout

    bool

    exhaust

    bool

    oplogReplay

    bool

    hint

    string or document

    readConcern

    document

    allowPartialResults

    bool

    returnKey

    bool

    awaitData

    bool

    sessionId

    (none)

    collation

    document

    showRecordId

    bool

    comment

    any

    singleBatch

    bool

    allowDiskUse

    bool

    let

    document

    +

    All options are documented in the reference page for the “find” command in the MongoDB server manual, except for “maxAwaitTimeMS”, “sessionId”, and “exhaust”.

    +

    “maxAwaitTimeMS” is the maximum amount of time for the server to wait on new documents to satisfy a query, if “tailable” and “awaitData” are both true. +If no new documents are found, the tailable cursor receives an empty batch. The “maxAwaitTimeMS” option is ignored for MongoDB older than 3.4.

    +

    To add a “sessionId”, construct a mongoc_client_session_t with mongoc_client_start_session(). You can begin a transaction with mongoc_client_session_start_transaction(), optionally with a mongoc_transaction_opt_t that overrides the options inherited from collection. Then use mongoc_client_session_append() to add the session to opts. See the example code for mongoc_client_session_t.

    +

    To add a “readConcern”, construct a mongoc_read_concern_t with mongoc_read_concern_new() and configure it with mongoc_read_concern_set_level(). Then use mongoc_read_concern_append() to add the read concern to opts.

    +

    “exhaust” requests the construction of an exhaust cursor. For MongoDB servers before 5.1, this option converts the command into a legacy OP_QUERY message. For MongoDB servers 5.1 and newer, this option is ignored and a normal cursor is constructed instead.

    +

    For some options like “collation”, the driver returns an error if the server version is too old to support the feature. +Any fields in opts that are not listed here are passed to the server unmodified.

    +

    allowDiskUse is only supported in MongoDB 4.4+.

    +

    comment only supports string values prior to MongoDB 4.4.

    +
    +
    +

    Deprecated Options

    +

    The snapshot boolean option is removed in MongoDB 4.0. The maxScan option, a non-negative int64, is deprecated in MongoDB 4.0 and will be removed in a future MongoDB version. The oplogReplay boolean option is deprecated in MongoDB 4.4. All of these options are supported by the C Driver with older MongoDB versions.

    +
    +

    See also

    +
    +
    The “find” command in the MongoDB Manual. All options listed there are supported by the C Driver. For MongoDB servers before 3.2, the driver transparently converts the query to a legacy OP_QUERY message.
    +
    +
    +
    +
    +

    The “explain” command

    +

    With MongoDB before 3.2, a query with option $explain: true returns information about the query plan, instead of the query results. Beginning in MongoDB 3.2, there is a separate “explain” command. The driver will not convert “$explain” queries to “explain” commands, you must call the “explain” command explicitly:

    +
    /* MongoDB 3.2+, "explain" command syntax */
    +command = BCON_NEW ("explain", "{",
    +                    "find", BCON_UTF8 ("collection_name"),
    +                    "filter", "{", "foo", BCON_INT32 (1), "}",
    +                    "}");
    +
    +mongoc_collection_command_simple (collection, command, NULL, &reply, &error);
    +
    +
    +
    +

    See also

    +
    +
    The “explain” command in the MongoDB Manual.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_get_last_error.html b/libmongoc/1.23.2/mongoc_collection_get_last_error.html new file mode 100644 index 0000000000000000000000000000000000000000..0eb6aa9a7245ccd7a7077f21c094c5c401d16346 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_get_last_error.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_collection_get_last_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_get_last_error()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_collection_get_last_error (const mongoc_collection_t *collection);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The mongoc_collection_get_last_error() function returns a bulk result. See Bulk Write Operations for examples of bulk results.

    +

    A write_concern must be at least MONGOC_WRITE_CONCERN_W_DEFAULT in last command execution for this to be available.

    +
    +
    +

    Returns

    +

    A bson_t that should not be modified or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_get_name.html b/libmongoc/1.23.2/mongoc_collection_get_name.html new file mode 100644 index 0000000000000000000000000000000000000000..3b902c1776f7de82b37b791f650bace959279820 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_get_name.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_get_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_get_name()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_collection_get_name (mongoc_collection_t *collection);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the name of collection.

    +
    +
    +

    Returns

    +

    A string which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_get_read_concern.html b/libmongoc/1.23.2/mongoc_collection_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..fde8b2fb849886c3fbe39c9124556a2b7be103c5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_get_read_concern.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_get_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_get_read_concern()

    +
    +

    Synopsis

    +
    const mongoc_read_concern_t *
    +mongoc_collection_get_read_concern (const mongoc_collection_t *collection);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the default read concern to be used on read operations originating from collection.

    +
    +
    +

    Returns

    +

    A mongoc_read_concern_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_get_read_prefs.html b/libmongoc/1.23.2/mongoc_collection_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..d858019912c268ec3dbb41450526019998189cb9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_get_read_prefs.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_get_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_get_read_prefs()

    +
    +

    Synopsis

    +
    const mongoc_read_prefs_t *
    +mongoc_collection_get_read_prefs (const mongoc_collection_t *collection);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the default read preferences to use for collection. Operations without specified read-preferences will default to this.

    +
    +
    +

    Returns

    +

    A mongoc_read_prefs_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_get_write_concern.html b/libmongoc/1.23.2/mongoc_collection_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..a3a082a7682f719373a3cb29ca393ad58bf826b8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_get_write_concern.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_get_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_get_write_concern()

    +
    +

    Synopsis

    +
    const mongoc_write_concern_t *
    +mongoc_collection_get_write_concern (const mongoc_collection_t *collection);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the default write concern to be used on write operations originating from collection and not specifying a write concern.

    +
    +
    +

    Returns

    +

    A mongoc_write_concern_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_insert.html b/libmongoc/1.23.2/mongoc_collection_insert.html new file mode 100644 index 0000000000000000000000000000000000000000..d61ab833e6e022be1b931ba070048e831d424436 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_insert.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_collection_insert() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_insert()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_insert (mongoc_collection_t *collection,
    +                          mongoc_insert_flags_t flags,
    +                          const bson_t *document,
    +                          const mongoc_write_concern_t *write_concern,
    +                          bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Superseded by mongoc_collection_insert_one() and mongoc_collection_insert_many().

    +

    This function shall insert document into collection.

    +

    If no _id element is found in document, then a bson_oid_t will be generated locally and added to the document. If you must know the inserted document’s _id, generate it in your code and include it in the document. The _id you generate can be a bson_oid_t or any other non-array BSON type.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_insert_bulk.html b/libmongoc/1.23.2/mongoc_collection_insert_bulk.html new file mode 100644 index 0000000000000000000000000000000000000000..1b0c811aa3f0c244b93296ab0235e31b1de03484 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_insert_bulk.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_collection_insert_bulk() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_insert_bulk()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_insert_bulk (mongoc_collection_t *collection,
    +                               mongoc_insert_flags_t flags,
    +                               const bson_t **documents,
    +                               uint32_t n_documents,
    +                               const mongoc_write_concern_t *write_concern,
    +                               bson_error_t *error)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_collection_insert_many);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_insert_many() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function performs a bulk insert of all of the documents in documents. This function is deprecated as it cannot accurately return which documents may have failed during the bulk insert.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_insert_many.html b/libmongoc/1.23.2/mongoc_collection_insert_many.html new file mode 100644 index 0000000000000000000000000000000000000000..e07d97e86f52cab40346128ff7c281d0fdf7b46e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_insert_many.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_collection_insert_many() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_insert_many()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_insert_many (mongoc_collection_t *collection,
    +                               const bson_t **documents,
    +                               size_t n_documents,
    +                               const bson_t *opts,
    +                               bson_t *reply,
    +                               bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • documents: An array of pointers to bson_t.

    • +
    • n_documents: The length of documents.

    • +
    • reply: Optional. An uninitialized bson_t populated with the insert result, or NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    Insert documents into collection.

    +

    To insert a single document, see mongoc_collection_insert_one().

    +

    For any document that does not have an “_id” field, a bson_oid_t will be generated locally and added to the document. If you must know the inserted document’s _id, generate it in your code and include it in the document. The _id you generate can be a bson_oid_t or any other non-array BSON type.

    +

    If you pass a non-NULL reply, it is filled out with an “insertedCount” field. If there is a server error then reply may contain a “writeErrors” array and/or a “writeConcernErrors” array (see Bulk Write Operations for examples). The reply must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_insert_one.html b/libmongoc/1.23.2/mongoc_collection_insert_one.html new file mode 100644 index 0000000000000000000000000000000000000000..799ebd4e21d20905486441f56cff395d40871a07 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_insert_one.html @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + mongoc_collection_insert_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_insert_one()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_insert_one (mongoc_collection_t *collection,
    +                              const bson_t *document,
    +                              const bson_t *opts,
    +                              bson_t *reply,
    +                              bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function shall insert document into collection.

    +

    To insert an array of documents, see mongoc_collection_insert_many().

    +

    If no _id element is found in document, then a bson_oid_t will be generated locally and added to the document. If you must know the inserted document’s _id, generate it in your code and include it in the document. The _id you generate can be a bson_oid_t or any other non-array BSON type.

    +

    If you pass a non-NULL reply, it is filled out with an “insertedCount” field. If there is a server error then reply contains either a “writeErrors” array with one subdocument or a “writeConcernErrors” array. The reply must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_keys_to_index_string.html b/libmongoc/1.23.2/mongoc_collection_keys_to_index_string.html new file mode 100644 index 0000000000000000000000000000000000000000..1f760127c8a11b57079384086adc87c195723181 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_keys_to_index_string.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_collection_keys_to_index_string() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_keys_to_index_string()

    +
    +

    Synopsis

    +
    char *
    +mongoc_collection_keys_to_index_string (const bson_t *keys)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function returns the canonical stringification of a given key specification. See Creating Indexes.

    +

    It is a programming error to call this function on a non-standard index, such one other than a straight index with ascending and descending.

    +
    +
    +

    Returns

    +

    A string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_read_command_with_opts.html b/libmongoc/1.23.2/mongoc_collection_read_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..903f7199cb7086048624672b5386a6a61e4d2ae4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_read_command_with_opts.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + mongoc_collection_read_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_read_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_read_command_with_opts (mongoc_collection_t *collection,
    +                                          const bson_t *command,
    +                                          const mongoc_read_prefs_t *read_prefs,
    +                                          const bson_t *opts,
    +                                          bson_t *reply,
    +                                          bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic that is specific to commands that read, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_collection_command_simple().

    +

    Use this function for commands that read such as “count” or “distinct”.

    +

    Read preferences, read concern, and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. The highest-priority sources for these options are listed first in the following table. No write concern is applied.

    + + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Collation

    read_prefs

    opts

    opts

    Transaction

    Transaction

    collection

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +

    Retry logic occurs regardless of the underlying command. Retrying mapReduce has the potential for degraded performance. +Retrying a getMore command has the potential to miss results. For those commands, use generic command helpers (like mongoc_collection_command_with_opts()) instead.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_read_write_command_with_opts.html b/libmongoc/1.23.2/mongoc_collection_read_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..a0f4963a0276be6b2bc335f88f5ac9d54e9f349d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_read_write_command_with_opts.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + mongoc_collection_read_write_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_read_write_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_read_write_command_with_opts (
    +   mongoc_collection_t *collection,
    +   const bson_t *command,
    +   const mongoc_read_prefs_t *read_prefs /* UNUSED */,
    +   const bson_t *opts,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic for commands that both read and write, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_collection_command_simple().

    +

    Use this function for commands that both read and write, such as “mapReduce” with an output collection.

    +

    Read and write concern and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts. The highest-priority sources for these options are listed first in the following table. Read preferences are not applied. The write concern is omitted for MongoDB before 3.4.

    + + + + + + + + + + + + + + + + + + + + + +

    Read Concern

    Write Concern

    Collation

    opts

    opts

    opts

    Transaction

    Transaction

    collection

    collection

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    (The mongoc_read_prefs_t parameter was included by mistake when this function was introduced in libmongoc 1.5. A command that writes must not obey a read preference.)

    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • command: A bson_t containing the command specification.

    • +
    • read_prefs: Ignored.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_remove.html b/libmongoc/1.23.2/mongoc_collection_remove.html new file mode 100644 index 0000000000000000000000000000000000000000..8f62964690206fe84284d8d6d17ade221e1c2deb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_remove.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_collection_remove() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_remove()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_remove (mongoc_collection_t *collection,
    +                          mongoc_remove_flags_t flags,
    +                          const bson_t *selector,
    +                          const mongoc_write_concern_t *write_concern,
    +                          bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Superseded by mongoc_collection_delete_one() and mongoc_collection_delete_many().

    +

    This function shall remove documents in the given collection that match selector. The bson selector is not validated, simply passed along as appropriate to the server. As such, compatibility and errors should be validated in the appropriate server documentation.

    +

    If you want to limit deletes to a single document, provide MONGOC_REMOVE_SINGLE_REMOVE in flags.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_rename.html b/libmongoc/1.23.2/mongoc_collection_rename.html new file mode 100644 index 0000000000000000000000000000000000000000..42cd37a3387d58933175174b79cdd2f13cbfd9f7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_rename.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_collection_rename() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_rename()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_rename (mongoc_collection_t *collection,
    +                          const char *new_db,
    +                          const char *new_name,
    +                          bool drop_target_before_rename,
    +                          bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • new_db: The name of the new database.

    • +
    • new_name: The new name for the collection.

    • +
    • drop_target_before_rename: If an existing collection matches the new name, drop it before the rename.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    For more information, see mongoc_collection_rename_with_opts(). This function is a thin wrapper, passing NULL in as bson_t parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_rename_with_opts.html b/libmongoc/1.23.2/mongoc_collection_rename_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..b8ca3a94554c84ad0d532672795b66e11a692bee --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_rename_with_opts.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_collection_rename_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_rename_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_rename_with_opts (mongoc_collection_t *collection,
    +                                    const char *new_db,
    +                                    const char *new_name,
    +                                    bool drop_target_before_rename,
    +                                    const bson_t *opts,
    +                                    bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • new_db: The name of the new database.

    • +
    • new_name: The new name for the collection.

    • +
    • drop_target_before_rename: If an existing collection matches the new name, drop it before the rename.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function is a helper to rename an existing collection on a MongoDB server. The name of the collection will also be updated internally so it is safe to continue using this collection after the rename. Additional operations will occur on renamed collection.

    +

    If no write concern is provided in opts, the collection’s write concern is used.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_replace_one.html b/libmongoc/1.23.2/mongoc_collection_replace_one.html new file mode 100644 index 0000000000000000000000000000000000000000..fe479cfa01a287859ce1617770ba143552f65601 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_replace_one.html @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + mongoc_collection_replace_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_replace_one()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_replace_one (mongoc_collection_t *collection,
    +                               const bson_t *selector,
    +                               const bson_t *replacement,
    +                               const bson_t *opts,
    +                               bson_t *reply,
    +                               bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • selector: A bson_t containing the query to match the document for updating.

    • +
    • replacement: A bson_t containing the replacement document.

    • +
    • reply: Optional. An uninitialized bson_t populated with the update result, or NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function shall replace documents in collection that match selector with replacement.

    +

    If provided, reply will be initialized and populated with the fields matchedCount, modifiedCount, upsertedCount, and optionally upsertedId if applicable. If there is a server error then reply contains either a writeErrors array with one subdocument or a writeConcernErrors array. The reply must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +

    See also

    +
    +
    MongoDB update command documentation for more information on the update options.
    +
    + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_save.html b/libmongoc/1.23.2/mongoc_collection_save.html new file mode 100644 index 0000000000000000000000000000000000000000..54cee9c43487023e1caa9dfb853db8a5f9cd0568 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_save.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_collection_save() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_save()

    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_insert_one() or +mongoc_collection_replace_one() with “upsert” instead.

    +
    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_save (mongoc_collection_t *collection,
    +                        const bson_t *document,
    +                        const mongoc_write_concern_t *write_concern,
    +                        bson_error_t *error)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_collection_insert_one or
    +                             mongoc_collection_replace_one);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall save a document into collection. If the document has an _id field it will be updated. Otherwise it will be inserted.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_set_read_concern.html b/libmongoc/1.23.2/mongoc_collection_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..ae8800104fe0e5383ee155aef56a1cd76c37d4a4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_set_read_concern.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_collection_set_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_set_read_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_collection_set_read_concern (mongoc_collection_t *collection,
    +                                    const mongoc_read_concern_t *read_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the read concern to use for operations on collection.

    +

    The default read concern is empty: No readConcern is sent to the server unless explicitly configured.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_set_read_prefs.html b/libmongoc/1.23.2/mongoc_collection_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..be8735d108138e709b77aca9322a2036681bc8e3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_set_read_prefs.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_set_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_set_read_prefs()

    +
    +

    Synopsis

    +
    void
    +mongoc_collection_set_read_prefs (mongoc_collection_t *collection,
    +                                  const mongoc_read_prefs_t *read_prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the default read preferences to use for operations on collection not specifying a read preference.

    +

    The global default is MONGOC_READ_PRIMARY: if the client is connected to a replica set it reads from the primary, otherwise it reads from the current MongoDB server.

    +

    Please see the MongoDB website for a description of Read Preferences.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_set_write_concern.html b/libmongoc/1.23.2/mongoc_collection_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..4ea4829aa299884edb1e838978d7122b9a900d4e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_set_write_concern.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_set_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_set_write_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_collection_set_write_concern (
    +   mongoc_collection_t *collection,
    +   const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the write concern to use for operations on collection.

    +

    The default write concern is MONGOC_WRITE_CONCERN_W_DEFAULT: the driver blocks awaiting basic acknowledgement of write operations from MongoDB. This is the correct write concern for the great majority of applications.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_stats.html b/libmongoc/1.23.2/mongoc_collection_stats.html new file mode 100644 index 0000000000000000000000000000000000000000..fe54d0bcb469fdc6a058cc1ca40c1ef7e4360eb5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_stats.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_collection_stats() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_stats()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_stats (mongoc_collection_t *collection,
    +                         const bson_t *options,
    +                         bson_t *reply,
    +                         bson_error_t *error) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    Deprecated

    +

    This helper function is deprecated and should not be used in new code. Run the collStats command directly with mongoc_client_read_command_with_opts() instead.

    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • options: An optional bson_t containing extra options to pass to the collStats command.

    • +
    • reply: An uninitialized bson_t to store the result.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    Run the collStats command to retrieve statistics about the collection.

    +

    The command uses the mongoc_read_prefs_t set on collection.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    reply is always initialized and must be freed with bson_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_t.html b/libmongoc/1.23.2/mongoc_collection_t.html new file mode 100644 index 0000000000000000000000000000000000000000..8b0e61443e4902bba735fa5bc378a866373b40cf --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_t.html @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + mongoc_collection_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_collection_t mongoc_collection_t;
    +
    +
    +

    mongoc_collection_t provides access to a MongoDB collection. This handle is useful for actions for most CRUD operations, I.e. insert, update, delete, find, etc.

    +
    +
    +

    Read Preferences and Write Concerns

    +

    Read preferences and write concerns are inherited from the parent client. They can be overridden by set_* commands if so desired.

    +
    +
    +

    Functions

    +
    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_update.html b/libmongoc/1.23.2/mongoc_collection_update.html new file mode 100644 index 0000000000000000000000000000000000000000..2eebf41db46a6502b8c0ba9cbfcf4eb9fce8050f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_update.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_collection_update() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_update()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_update (mongoc_collection_t *collection,
    +                          mongoc_update_flags_t flags,
    +                          const bson_t *selector,
    +                          const bson_t *update,
    +                          const mongoc_write_concern_t *write_concern,
    +                          bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Superseded by mongoc_collection_update_one(), mongoc_collection_update_many(), and mongoc_collection_replace_one().

    +

    This function shall update documents in collection that match selector.

    +

    By default, updates only a single document. Set flags to MONGOC_UPDATE_MULTI_UPDATE to update multiple documents.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_update_many.html b/libmongoc/1.23.2/mongoc_collection_update_many.html new file mode 100644 index 0000000000000000000000000000000000000000..4f70d399e3dfda44ac68860d997166bb88b6388b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_update_many.html @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + mongoc_collection_update_many() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_update_many()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_update_many (mongoc_collection_t *collection,
    +                               const bson_t *selector,
    +                               const bson_t *update,
    +                               const bson_t *opts,
    +                               bson_t *reply,
    +                               bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • selector: A bson_t containing the query to match documents for updating.

    • +
    • update: A bson_t containing the update to perform. If updating with a pipeline, a bson_t array.

    • +
    • reply: Optional. An uninitialized bson_t populated with the update result, or NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function updates all documents in collection that match selector.

    +

    To update at most one document see mongoc_collection_update_one().

    +

    If you pass a non-NULL reply, it is filled out with fields matchedCount, modifiedCount, and optionally upsertedId if applicable. If there is a server error then reply contains either a “writeErrors” array with one subdocument or a “writeConcernErrors” array. The reply must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +

    See also

    +
    +
    MongoDB update command documentation for more information on the update options.
    +
    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_update_one.html b/libmongoc/1.23.2/mongoc_collection_update_one.html new file mode 100644 index 0000000000000000000000000000000000000000..3a18611a0f595a7c07d30b7b35508a42a4355cde --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_update_one.html @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + mongoc_collection_update_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_update_one()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_update_one (mongoc_collection_t *collection,
    +                              const bson_t *selector,
    +                              const bson_t *update,
    +                              const bson_t *opts,
    +                              bson_t *reply,
    +                              bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • selector: A bson_t containing the query to match the document for updating.

    • +
    • update: A bson_t containing the update to perform. If updating with a pipeline, a bson_t array.

    • +
    • reply: Optional. An uninitialized bson_t populated with the update result, or NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function updates at most one document in collection that matches selector.

    +

    To update multiple documents see mongoc_collection_update_many().

    +

    If you pass a non-NULL reply, it is filled out with fields matchedCount, modifiedCount, and optionally upsertedId if applicable. If there is a server error then reply contains either a “writeErrors” array with one subdocument or a “writeConcernErrors” array. The reply must be freed with bson_destroy().

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Example

    +
    +
    example-update.c
    +
    #include "mongoc/mongoc.h"
    +
    +int
    +main (void)
    +{
    +   bson_t *to_insert = BCON_NEW ("_id", BCON_INT32 (1));
    +   bson_t *selector = BCON_NEW ("_id", "{", "$gt", BCON_INT32 (0), "}");
    +   bson_t *update = BCON_NEW ("$set", "{", "x", BCON_INT32 (1), "}");
    +   const bson_t *next_doc;
    +   char *to_str;
    +   bson_error_t error = {0};
    +   mongoc_cursor_t *cursor;
    +   mongoc_client_t *client;
    +   mongoc_collection_t *coll;
    +   const char *uri_string = "mongodb://localhost:27017/?appname=example-update";
    +   mongoc_uri_t *uri = mongoc_uri_new_with_error (uri_string, &error);
    +
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   coll = mongoc_client_get_collection (client, "db", "example_coll");
    +
    +   mongoc_client_set_error_api (client, 2);
    +   /* insert a document */
    +   if (!mongoc_collection_insert_one (coll, to_insert, NULL, NULL, &error)) {
    +      fprintf (stderr, "insert failed: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   if (!mongoc_collection_update_one (
    +          coll, selector, update, NULL, NULL, &error)) {
    +      fprintf (stderr, "update failed: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   to_str = bson_as_relaxed_extended_json (to_insert, NULL);
    +   printf ("inserted: %s\n", to_str);
    +   bson_free (to_str);
    +
    +   cursor = mongoc_collection_find_with_opts (coll, selector, NULL, NULL);
    +   BSON_ASSERT (mongoc_cursor_next (cursor, &next_doc));
    +   printf ("after update, collection has the following document:\n");
    +
    +   to_str = bson_as_relaxed_extended_json (next_doc, NULL);
    +   printf ("%s\n", to_str);
    +   bson_free (to_str);
    +
    +   BSON_ASSERT (mongoc_collection_drop (coll, NULL));
    +
    +   bson_destroy (to_insert);
    +   bson_destroy (update);
    +   bson_destroy (selector);
    +   mongoc_collection_destroy (coll);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +

    See also

    +
    +
    MongoDB update command documentation for more information on the update options.
    +
    + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_validate.html b/libmongoc/1.23.2/mongoc_collection_validate.html new file mode 100644 index 0000000000000000000000000000000000000000..ae9435e989d236d6870a69910adb3e1a560bd5f6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_validate.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_collection_validate() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_validate()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_validate (mongoc_collection_t *collection,
    +                            const bson_t *options,
    +                            bson_t *reply,
    +                            bson_error_t *error);
    +
    +
    +
    +
    +

    Deprecated

    +

    This helper function is deprecated and should not be used in new code. Run the validate command directly with mongoc_client_read_command_with_opts() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function is a helper function to execute the validate MongoDB command.

    +

    Currently, the only supported options are full, which is a boolean and scandata, also a boolean.

    +

    See the MongoDB documentation for more information on this command.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    reply is always initialized if it’s not NULL and must be destroyed with bson_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_watch.html b/libmongoc/1.23.2/mongoc_collection_watch.html new file mode 100644 index 0000000000000000000000000000000000000000..8a1169c73f8fa72a0db6da66e49bf94aece019c2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_watch.html @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + mongoc_collection_watch() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_watch()

    +
    +

    Synopsis

    +
    mongoc_change_stream_t*
    +mongoc_collection_watch (const mongoc_collection_t *coll,
    +                         const bson_t *pipeline,
    +                         const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    A helper function to create a change stream. It is preferred to call this +function over using a raw aggregation to create a change stream.

    +

    This function uses the read preference and read concern of the collection. If +the change stream needs to re-establish connection, the same read preference +will be used. This may happen if the change stream encounters a resumable error.

    +
    +

    Warning

    +

    A change stream is only supported with majority read concern.

    +
    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    +
      +
    • coll: A mongoc_collection_t specifying the collection which the change stream listens to.

    • +
    • pipeline: A bson_t representing an aggregation pipeline appended to the change stream. This may be an empty document.

    • +
    • opts: A bson_t containing change stream options.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • batchSize: An int32 representing number of documents requested to be returned on each call to mongoc_change_stream_next()

    • +
    • resumeAfter: A Document representing the logical starting point of the change stream. The result of mongoc_change_stream_get_resume_token() or the _id field of any change received from a change stream can be used here. This option is mutually exclusive with startAfter and startAtOperationTime.

    • +
    • startAfter: A Document representing the logical starting point of the change stream. Unlike resumeAfter, this can resume notifications after an “invalidate” event. The result of mongoc_change_stream_get_resume_token() or the _id field of any change received from a change stream can be used here. This option is mutually exclusive with resumeAfter and startAtOperationTime.

    • +
    • startAtOperationTime: A Timestamp. The change stream only provides changes that occurred at or after the specified timestamp. Any command run against the server will return an operation time that can be used here. This option is mutually exclusive with resumeAfter and startAfter.

    • +
    • maxAwaitTimeMS: An int64 representing the maximum amount of time a call to mongoc_change_stream_next() will block waiting for data

    • +
    • fullDocument: An optional UTF-8 string. Set this option to “default”, “updateLookup”, “whenAvailable”, or “required”, If unset, The string “default” is assumed. Set this option to “updateLookup” to direct the change stream cursor to lookup the most current majority-committed version of the document associated to an update change stream event.

    • +
    • fullDocumentBeforeChange: An optional UTF-8 string. Set this option to “whenAvailable”, “required”, or “off”. When unset, the default value is “off”. Similar to “fullDocument”, but returns the value of the document before the associated change.

    • +
    • comment: A bson_value_t specifying the comment to attach to this command. The comment will appear in log messages, profiler output, and currentOp output. Only string values are supported prior to MongoDB 4.4.

    • +
    +
    +
    +

    Returns

    +

    A newly allocated mongoc_change_stream_t which must be freed with +mongoc_change_stream_destroy() when no longer in use. The returned +mongoc_change_stream_t is never NULL. If there is an error, it can +be retrieved with mongoc_change_stream_error_document(), and subsequent +calls to mongoc_change_stream_next() will return false.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_collection_write_command_with_opts.html b/libmongoc/1.23.2/mongoc_collection_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..bf288ce264f97e0a3b8c4e6644aa89827514dc0a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_collection_write_command_with_opts.html @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + mongoc_collection_write_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_write_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_write_command_with_opts (mongoc_collection_t *collection,
    +                                           const bson_t *command,
    +                                           const bson_t *opts,
    +                                           bson_t *reply,
    +                                           bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic that is specific to commands that write, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_collection_command_simple().

    +

    Use this function for commands that write such as “drop” or “createRole” (but not for “insert”, “update”, or “delete”, see Basic Write Operations). Write concern and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts. The highest-priority sources for these options are listed first in the following table. The write concern is omitted for MongoDB before 3.4.

    + + + + + + + + + + + + + + + + + +

    Write Concern

    Collation

    opts

    opts

    Transaction

    collection

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.

    • +
    • command: A bson_t containing the command specification.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Basic Write Operations

    +

    Do not use this function to call the basic write commands “insert”, “update”, and “delete”. Those commands require special logic not implemented in mongoc_collection_write_command_with_opts. For basic write operations use CRUD functions such as mongoc_collection_insert_one() and the others described in the CRUD tutorial, or use the Bulk API.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_clone.html b/libmongoc/1.23.2/mongoc_cursor_clone.html new file mode 100644 index 0000000000000000000000000000000000000000..b22054a416374a4d72665fbc576046b54717b372 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_clone.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_cursor_clone() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_clone()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_cursor_clone (const mongoc_cursor_t *cursor)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall create a copy of a mongoc_cursor_t. The cloned cursor will be reset to the beginning of the query, and therefore the query will be re-executed on the MongoDB server when mongoc_cursor_next() is called.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_current.html b/libmongoc/1.23.2/mongoc_cursor_current.html new file mode 100644 index 0000000000000000000000000000000000000000..91706b5ad43bc6f91243d7579af92ee1efb8eac4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_current.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_cursor_current() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_current()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_cursor_current (const mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the cursors current document or NULL if there has been an error.

    +
    +
    +

    Returns

    +

    A bson_t that should not be modified or freed or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_destroy.html b/libmongoc/1.23.2/mongoc_cursor_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..a46d4c1672ea5ba3140c3ed26761b4236357281f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_cursor_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_cursor_destroy (mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees a mongoc_cursor_t and releases all associated resources. If a server-side cursor has been allocated, it will be released as well. Does nothing if cursor is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_error.html b/libmongoc/1.23.2/mongoc_cursor_error.html new file mode 100644 index 0000000000000000000000000000000000000000..43236d0fcd675747b6209366e00cefd37e3aacfc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_error.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_cursor_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_error()

    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_error (mongoc_cursor_t *cursor, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function checks to see if an error has occurred while iterating the cursor.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    false if no error has occurred, otherwise true and error is set.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_error_document.html b/libmongoc/1.23.2/mongoc_cursor_error_document.html new file mode 100644 index 0000000000000000000000000000000000000000..1cb32d5047897d4f141dab10f6112f8a3cb94f24 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_error_document.html @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + mongoc_cursor_error_document() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_error_document()

    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_error_document (mongoc_cursor_t *cursor,
    +                              bson_error_t *error,
    +                              const bson_t **reply);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function checks to see if an error has occurred while iterating the cursor.

    +

    If an error occurred client-side, for example if there was a network error or timeout, or the cursor was created with invalid parameters, then reply is set to an empty BSON document. If an error occurred server-side, reply is set to the server’s reply document with information about the error.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error and reply parameters.

    +
    +
    +

    Returns

    +

    False if no error has occurred, otherwise true and error is set.

    +

    If the function returns true and reply is not NULL, then reply is set to a pointer to a BSON document, which is either empty or the server’s error response. The document is invalid after the cursor is freed with mongoc_cursor_destroy().

    +
    +
    +

    Example

    +

    This example shows the difference between a client-side and server-side error. If the client cannot connect to the server, for example, the error message includes “No suitable servers found” and reply is set to an empty BSON document.

    +

    On the other hand, if the client connects to the server successfully and attempts to execute an invalid query, the error message comes from the server and reply is set to the server’s reply document, with fields errmsg and code.

    +
    void
    +run_query (const char *uri_str, const bson_t *query)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   mongoc_cursor_t *cursor;
    +   const bson_t *doc;
    +   bson_error_t error;
    +   const bson_t *reply;
    +   char *str;
    +
    +   client = mongoc_client_new (uri_str);
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   collection = mongoc_client_get_collection (client, "db", "collection");
    +   cursor = mongoc_collection_find_with_opts (
    +      collection,
    +      query,
    +      NULL,  /* additional options */
    +      NULL); /* read prefs, NULL for default */
    +
    +   /* this loop is never run: mongoc_cursor_next immediately returns false */
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +   }
    +
    +   if (mongoc_cursor_error_document (cursor, &error, &reply)) {
    +      str = bson_as_json (reply, NULL);
    +      fprintf (stderr, "Cursor Failure: %s\nReply: %s\n", error.message, str);
    +      bson_free (str);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +}
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   bson_t *good_query;
    +   bson_t *bad_query;
    +
    +   mongoc_init ();
    +
    +   /* find documents matching the query {"x": 1} */
    +   good_query = BCON_NEW ("x", BCON_INT64 (1));
    +
    +   /* Cause a network error. This will print an error and empty reply document:
    +    *
    +    * Cursor Failure: No suitable servers found (`serverSelectionTryOnce` set):
    +    *     [Failed to resolve 'fake-domain']
    +    *
    +    * Reply: { }
    +    *
    +    */
    +   run_query ("mongodb://fake-domain/?appname=cursor-example", good_query);
    +
    +   /* invalid: {"x": {"$badOperator": 1}} */
    +   bad_query = BCON_NEW ("x", "{", "$badOperator", BCON_INT64 (1), "}");
    +
    +   /* Cause a server error. This will print an error and server reply document:
    +    *
    +    * Cursor Failure: unknown operator: $badOperator
    +    *
    +    * Reply:
    +    * {"ok": 0.0,
    +    *  "errmsg":"unknown operator: $badOperator",
    +    *  "code": 2,
    +    *  "codeName":"BadValue"
    +    * }
    +    *
    +    */
    +   run_query ("mongodb://localhost/?appname=cursor-example", bad_query);
    +
    +   bson_destroy (good_query);
    +   bson_destroy (bad_query);
    +
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_get_batch_size.html b/libmongoc/1.23.2/mongoc_cursor_get_batch_size.html new file mode 100644 index 0000000000000000000000000000000000000000..64a91a3d625c74dc8844abb39c5a6221b66a70f7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_get_batch_size.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_cursor_get_batch_size() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_get_batch_size()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_cursor_get_batch_size (const mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Retrieve the cursor’s batch size, the maximum number of documents returned per round trip to the server. A batch size of zero means the cursor accepts the server’s maximum batch size.

    +

    See Cursor Batches in the MongoDB Manual.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_get_hint.html b/libmongoc/1.23.2/mongoc_cursor_get_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..2ee15c6d867e9075d3be8e213ba748c9d4ee0bc9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_get_hint.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_cursor_get_hint() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_get_hint()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_cursor_get_hint (const mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Retrieves the opaque id of the server used for the operation.

    +

    (The function name includes the old term “hint” for the sake of backward compatibility, but we now call this number a “server id”.)

    +

    This number is zero until the driver actually uses a server when executing the find operation or mongoc_cursor_set_hint() is called.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_get_host.html b/libmongoc/1.23.2/mongoc_cursor_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..783fef2ba78f162761ebdc4744629164ec0c1765 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_get_host.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_cursor_get_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_get_host()

    +
    +

    Synopsis

    +
    void
    +mongoc_cursor_get_host (mongoc_cursor_t *cursor, mongoc_host_list_t *host);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the MongoDB host that the cursor is communicating with in the host out parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_get_id.html b/libmongoc/1.23.2/mongoc_cursor_get_id.html new file mode 100644 index 0000000000000000000000000000000000000000..6e3c1b8eccb86e9158160c790cf5773fd0e84bce --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_get_id.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_cursor_get_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_get_id()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_cursor_get_id (const mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Retrieves the cursor id used by the server to track the cursor.

    +

    This number is zero until the driver actually uses a server when executing the query, and after it has fetched all results from the server.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_get_limit.html b/libmongoc/1.23.2/mongoc_cursor_get_limit.html new file mode 100644 index 0000000000000000000000000000000000000000..b827e6fef32f9785fa11138818f34ee66b31954b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_get_limit.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_cursor_get_limit() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_get_limit()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_cursor_get_limit (mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Return the value set with mongoc_cursor_set_limit() or mongoc_collection_find().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_get_max_await_time_ms.html b/libmongoc/1.23.2/mongoc_cursor_get_max_await_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..5d54adec7de0bd7311bdc274ab9b909547f92bdc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_get_max_await_time_ms.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_cursor_get_max_await_time_ms() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_get_max_await_time_ms()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_cursor_get_max_await_time_ms (mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Retrieve the value set with mongoc_cursor_set_max_await_time_ms().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_is_alive.html b/libmongoc/1.23.2/mongoc_cursor_is_alive.html new file mode 100644 index 0000000000000000000000000000000000000000..6265dc433bb00cb3f1ac6c99a6010b0616f69ff9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_is_alive.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_cursor_is_alive() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_is_alive()

    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_is_alive (const mongoc_cursor_t *cursor)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_cursor_more);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Deprecated

    +

    This function is superseded by mongoc_cursor_more(), which has equivalent behavior.

    +
    +
    +

    Returns

    +

    See mongoc_cursor_more().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_more.html b/libmongoc/1.23.2/mongoc_cursor_more.html new file mode 100644 index 0000000000000000000000000000000000000000..ef310fb1cbb84ea9942b99e234777b73a6cc0041 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_more.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_cursor_more() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_more()

    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_more (mongoc_cursor_t *cursor);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall indicate if there is potentially more data to be read from the cursor. This is only useful with tailable cursors. Use mongoc_cursor_next() for regular cursors.

    +

    Details: mongoc_cursor_more is unreliable because it does not contact the server to see if there are actually more documents in the result set. It simply returns true if the cursor has not begun, or if it has begun and there are buffered documents in the client-side cursor, or if it has begun and the server has not yet told the cursor it is completely iterated.

    +

    This is unreliable with regular queries because it returns true for a new cursor before iteration, even if the cursor will match no documents. It is also true if the collection has been dropped on the server since the previous fetch, or if the cursor has finished its final batch and the next batch will be empty.

    +
    +
    +

    Returns

    +

    true if the cursor has locally-buffered documents, or if a round-trip to the server might fetch additional documents.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_new_from_command_reply.html b/libmongoc/1.23.2/mongoc_cursor_new_from_command_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..74e7d7f33610a3cdbaf5f671dc2bdee75cd97bf9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_new_from_command_reply.html @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + mongoc_cursor_new_from_command_reply() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_new_from_command_reply()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_cursor_new_from_command_reply (mongoc_client_t *client,
    +                                      bson_t *reply,
    +                                      uint32_t server_id);
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_cursor_new_from_command_reply_with_opts);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_cursor_new_from_command_reply_with_opts() instead.

    +

    When migrating from the deprecated mongoc_cursor_new_from_command_reply() to mongoc_cursor_new_from_command_reply_with_opts(), +note that options previously passed to the reply argument (e.g. “batchSize”) must instead be provided in the opts argument.

    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • reply: The reply to a command, such as “aggregate”, “find”, or “listCollections”, that returns a cursor document. The reply is destroyed by mongoc_cursor_new_from_command_reply and must not be accessed afterward.

    • +
    • server_id: The opaque id of the server used to execute the command.

    • +
    +
    +
    +

    Description

    +

    Some MongoDB commands return a “cursor” document. For example, given an “aggregate” command:

    +
    { "aggregate" : "collection", "pipeline" : [], "cursor" : {}}
    +
    +
    +

    The server replies:

    +
    {
    +   "cursor" : {
    +      "id" : 1234,
    +      "ns" : "db.collection",
    +      "firstBatch" : [ ]
    +   },
    +   "ok" : 1
    +}
    +
    +
    +

    mongoc_cursor_new_from_command_reply is a low-level function that initializes a mongoc_cursor_t from such a reply. Additional options such as “tailable” or “awaitData” can be included in the reply.

    +

    When synthesizing a completed cursor response that has no more batches (i.e. with cursor id 0), set server_id to 0 as well.

    +

    Use this function only for building a language driver that wraps the C Driver. When writing applications in C, higher-level functions such as mongoc_collection_aggregate() are more appropriate, and ensure compatibility with a range of MongoDB versions.

    +
    +
    +

    Returns

    +

    A mongoc_cursor_t. On failure, the cursor’s error is set. Check for failure with mongoc_cursor_error().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_new_from_command_reply_with_opts.html b/libmongoc/1.23.2/mongoc_cursor_new_from_command_reply_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..f831e777a7278c65c6c15fc07e7533d6fc9a8472 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_new_from_command_reply_with_opts.html @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + mongoc_cursor_new_from_command_reply_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_new_from_command_reply_with_opts()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_cursor_new_from_command_reply_with_opts (mongoc_client_t *client,
    +                                                bson_t *reply,
    +                                                const bson_t *opts);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • client: A mongoc_client_t.

    • +
    • reply: The reply to a command, such as “aggregate”, “find”, or “listCollections”, that returns a cursor document. The reply is destroyed by mongoc_cursor_new_from_command_reply_with_opts and must not be accessed afterward.

    • +
    • opts: A bson_t.

    • +
    +

    opts may be NULL or a BSON document with additional options, which have the same meaning for this function as for mongoc_collection_find_with_opts():

    +
      +
    • awaitData

    • +
    • batchSize

    • +
    • limit

    • +
    • maxAwaitTimeMS

    • +
    • serverId

    • +
    • sessionId

    • +
    • skip

    • +
    • tailable

    • +
    +
    +
    +

    Description

    +

    Some MongoDB commands return a “cursor” document. For example, given an “aggregate” command:

    +
    { "aggregate" : "collection", "pipeline" : [], "cursor" : {}}
    +
    +
    +

    The server replies:

    +
    {
    +   "cursor" : {
    +      "id" : 1234,
    +      "ns" : "db.collection",
    +      "firstBatch" : [ ]
    +   },
    +   "ok" : 1
    +}
    +
    +
    +

    mongoc_cursor_new_from_command_reply_with_opts is a low-level function that initializes a mongoc_cursor_t from such a reply.

    +

    Use this function only for building a language driver that wraps the C Driver. When writing applications in C, higher-level functions such as mongoc_collection_aggregate() are more appropriate, and ensure compatibility with a range of MongoDB versions.

    +
    +
    +

    Returns

    +

    A mongoc_cursor_t. On failure, the cursor’s error is set. Check for failure with mongoc_cursor_error().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_next.html b/libmongoc/1.23.2/mongoc_cursor_next.html new file mode 100644 index 0000000000000000000000000000000000000000..6b5545608cc986fc74810d3c5b7abf3c581cc493 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_next.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_cursor_next() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_next()

    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_next (mongoc_cursor_t *cursor, const bson_t **bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall iterate the underlying cursor, setting bson to the next document.

    +

    This function is a blocking function.

    +
    +
    +

    Returns

    +

    This function returns true if a valid bson document was read from the cursor. Otherwise, false if there was an error or the cursor was exhausted.

    +

    Errors can be determined with the mongoc_cursor_error() function.

    +
    +
    +

    Lifecycle

    +

    The bson objects set in this function are ephemeral and good until the next call. This means that you must copy the returned bson if you wish to retain it beyond the lifetime of a single call to mongoc_cursor_next().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_set_batch_size.html b/libmongoc/1.23.2/mongoc_cursor_set_batch_size.html new file mode 100644 index 0000000000000000000000000000000000000000..5339873a890913e840d12ed3fc6a7b262b1c42ca --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_set_batch_size.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_cursor_set_batch_size() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_set_batch_size()

    +
    +

    Synopsis

    +
    void
    +mongoc_cursor_set_batch_size (mongoc_cursor_t *cursor, uint32_t batch_size);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • cursor: A mongoc_cursor_t.

    • +
    • batch_size: The requested number of documents per batch.

    • +
    +
    +
    +

    Description

    +

    Limits the number of documents returned in one batch. Each batch requires a round trip to the server. If the batch size is zero, the cursor uses the server-defined maximum batch size.

    +

    See Cursor Batches in the MongoDB Manual.

    +

    This is not applicable to all cursors. Calling mongoc_cursor_set_batch_size() on a cursor returned by mongoc_client_find_databases_with_opts(), mongoc_database_find_collections_with_opts(), or mongoc_collection_find_indexes_with_opts() will not change the results.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_set_hint.html b/libmongoc/1.23.2/mongoc_cursor_set_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..af07d4de0a3068176d9f3264f5bd3854e522ba0d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_set_hint.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_cursor_set_hint() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_set_hint()

    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_set_hint (mongoc_cursor_t *cursor, uint32_t server_id);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • cursor: A mongoc_cursor_t.

    • +
    • server_id: An opaque id identifying the server to use.

    • +
    +
    +
    +

    Description

    +

    Specifies which server to use for the operation. This function has an effect only if called before the find operation is executed.

    +

    (The function name includes the old term “hint” for the sake of backward compatibility, but we now call this number a “server id”.)

    +

    Use mongoc_cursor_set_hint only for building a language driver that wraps the C Driver. When writing applications in C, leave the server id unset and allow the driver to choose a suitable server from the find operation’s read preference.

    +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_set_limit.html b/libmongoc/1.23.2/mongoc_cursor_set_limit.html new file mode 100644 index 0000000000000000000000000000000000000000..a2e555e7cb4d8c468c8e0a52c8d77c10df2e02da --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_set_limit.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_cursor_set_limit() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_set_limit()

    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_set_limit (mongoc_cursor_t *cursor, int64_t limit);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • cursor: A mongoc_cursor_t.

    • +
    • limit: The maximum number of documents to retrieve for this query.

    • +
    +
    +
    +

    Description

    +

    Limits the number of documents in the result set.

    +

    This function is useful for setting the limit on a cursor after the cursor is created, but before any calls to mongoc_cursor_next(). It can also be used to pass a negative limit: The limit parameter to mongoc_cursor_set_limit is signed, although for backward-compatibility reasons the limit parameter to mongoc_collection_find() is not.

    +

    Calling this function after mongoc_cursor_next() has no effect.

    +

    This is not applicable to all cursors. Calling mongoc_cursor_set_limit() on a cursor returned by mongoc_client_find_databases_with_opts(), mongoc_database_find_collections_with_opts(), or mongoc_collection_find_indexes_with_opts() will not change the results.

    +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and leaves the limit unchanged.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_set_max_await_time_ms.html b/libmongoc/1.23.2/mongoc_cursor_set_max_await_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..08bd47176a83bbc2c86fdeaacb89b098e002a1e1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_set_max_await_time_ms.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_cursor_set_max_await_time_ms() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_set_max_await_time_ms()

    +
    +

    Synopsis

    +
    void
    +mongoc_cursor_set_max_await_time_ms (mongoc_cursor_t *cursor,
    +                                     uint32_t max_await_time_ms);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • cursor: A mongoc_cursor_t.

    • +
    • max_await_time_ms: A timeout in milliseconds.

    • +
    +
    +
    +

    Description

    +

    The maximum amount of time for the server to wait on new documents to satisfy a tailable cursor query. Only applies if the cursor is created from mongoc_collection_find_with_opts() with “tailable” and “awaitData” options, and the server is MongoDB 3.2 or later. See the documentation for maxTimeMS and the “getMore” command.

    +

    The max_await_time_ms cannot be changed after the first call to mongoc_cursor_next().

    +

    This is not applicable to all cursors. Calling mongoc_cursor_set_batch_size() on a cursor returned by mongoc_client_find_databases_with_opts(), mongoc_database_find_collections_with_opts(), or mongoc_collection_find_indexes_with_opts() will not change the results.

    +

    Note: although max_await_time_ms is a uint32_t, it is possible to set it as a uint64_t through the options arguments in some cursor returning functions like mongoc_collection_find_with_opts().

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_cursor_t.html b/libmongoc/1.23.2/mongoc_cursor_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a4f3c82a916d4ae5a44f1d027b902ec0abe72ea2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_cursor_t.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + mongoc_cursor_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_t

    +

    Client-side cursor abstraction

    +
    +

    Synopsis

    +
    typedef struct _mongoc_cursor_t mongoc_cursor_t;
    +
    +
    +

    mongoc_cursor_t provides access to a MongoDB query cursor. +It wraps up the wire protocol negotiation required to initiate a query and retrieve an unknown number of documents.

    +

    Common cursor operations include:

    + +

    Cursors are lazy, meaning that no connection is established and no network traffic occurs until the first call to mongoc_cursor_next().

    +
    +
    +

    Thread Safety

    +

    mongoc_cursor_t is NOT thread safe. It may only be used from within the thread in which it was created.

    +
    +
    +

    Example

    +
    +
    Query MongoDB and iterate results
    +
    /* gcc example-client.c -o example-client $(pkg-config --cflags --libs
    + * libmongoc-1.0) */
    +
    +/* ./example-client [CONNECTION_STRING [COLLECTION_NAME]] */
    +
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   mongoc_cursor_t *cursor;
    +   bson_error_t error;
    +   const bson_t *doc;
    +   const char *collection_name = "test";
    +   bson_t query;
    +   char *str;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=client-example";
    +   mongoc_uri_t *uri;
    +
    +   mongoc_init ();
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   if (argc > 2) {
    +      collection_name = argv[2];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +
    +   bson_init (&query);
    +   collection = mongoc_client_get_collection (client, "test", collection_name);
    +   cursor = mongoc_collection_find_with_opts (
    +      collection,
    +      &query,
    +      NULL,  /* additional options */
    +      NULL); /* read prefs, NULL for default */
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      fprintf (stdout, "%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "Cursor Failure: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   bson_destroy (&query);
    +   mongoc_cursor_destroy (cursor);
    +   mongoc_collection_destroy (collection);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_add_user.html b/libmongoc/1.23.2/mongoc_database_add_user.html new file mode 100644 index 0000000000000000000000000000000000000000..fdbb3936ebdd06223ffae48927acee09b3a7ba42 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_add_user.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_database_add_user() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_add_user()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_add_user (mongoc_database_t *database,
    +                          const char *username,
    +                          const char *password,
    +                          const bson_t *roles,
    +                          const bson_t *custom_data,
    +                          bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • username: The name of the user.

    • +
    • password: The cleartext password for the user.

    • +
    • roles: An optional bson_t for roles.

    • +
    • custom_data: A optional bson_t for extra data.

    • +
    • error: A location for a bson_error_t or NULL.

    • +
    +

    This function shall create a new user with access to database.

    +
    +

    Warning

    +

    Do not call this function without TLS.

    +
    +
    +
    +

    Errors

    +

    Errors are returned through the error parameter and can include socket or other server side failures.

    +
    +
    +

    Returns

    +

    Returns true if the user was successfully added. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_aggregate.html b/libmongoc/1.23.2/mongoc_database_aggregate.html new file mode 100644 index 0000000000000000000000000000000000000000..b45c2f70bdf8a699476fcfd4f9941f1f52e48baa --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_aggregate.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + mongoc_database_aggregate() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_aggregate()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_database_aggregate (mongoc_database_t *database,
    +                           const bson_t *pipeline,
    +                           const bson_t *opts,
    +                           const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • pipeline: A bson_t, either a BSON array or a BSON document containing an array field named “pipeline”.

    • +
    • opts: A bson_t containing options for the command, or NULL.

    • +
    • read_prefs: A mongoc_read_prefs_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    For a list of all options, see the MongoDB Manual entry on the aggregate command.

    +
    +
    +

    Description

    +

    This function creates a cursor which sends the aggregate command on the underlying database upon the first call to mongoc_cursor_next(). For more information on building aggregation pipelines, see the MongoDB Manual entry on the aggregate command. Note that the pipeline must start with a compatible stage that does not require an underlying collection (e.g. “$currentOp”, “$listLocalSessions”).

    +

    Read preferences, read and write concern, and collation can be overridden by various sources. The highest-priority sources for these options are listed first in the following table. In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. Write concern is applied from opts, or if opts has no write concern and the aggregation pipeline includes “$out”, the write concern is applied from database.

    + + + + + + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Write Concern

    Collation

    read_prefs

    opts

    opts

    opts

    Transaction

    Transaction

    Transaction

    database

    database

    database

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    This function is considered a retryable read operation unless the pipeline contains a write stage like $out or $merge. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    +

    Example

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +
    +static mongoc_cursor_t *
    +current_op_query (mongoc_client_t *client)
    +{
    +   mongoc_cursor_t *cursor;
    +   mongoc_database_t *database;
    +   bson_t *pipeline;
    +
    +   pipeline = BCON_NEW ("pipeline",
    +                        "[",
    +                        "{",
    +                        "$currentOp",
    +                        "{",
    +                        "}",
    +                        "}",
    +                        "]");
    +
    +   /* $currentOp must be run on the admin database */
    +   database = mongoc_client_get_database (client, "admin");
    +
    +   cursor = mongoc_database_aggregate (
    +      database, pipeline, NULL, NULL);
    +
    +   bson_destroy (pipeline);
    +   mongoc_database_destroy (database);
    +
    +   return cursor;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_command.html b/libmongoc/1.23.2/mongoc_database_command.html new file mode 100644 index 0000000000000000000000000000000000000000..af7911e8ed024f6911c7100542c7942550419ed4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_command.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_database_command() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_command()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_database_command (mongoc_database_t *database,
    +                         mongoc_query_flags_t flags,
    +                         uint32_t skip,
    +                         uint32_t limit,
    +                         uint32_t batch_size,
    +                         const bson_t *command,
    +                         const bson_t *fields,
    +                         const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    This function is superseded by mongoc_database_command_with_opts(), mongoc_database_read_command_with_opts(), mongoc_database_write_command_with_opts(), and mongoc_database_read_write_command_with_opts().

    +
    +
    +

    Description

    +

    This function creates a cursor which will execute the command when mongoc_cursor_next() is called on it. The database’s read preference, read concern, and write concern are not applied to the command, and mongoc_cursor_next() will not check the server response for a write concern error or write concern timeout.

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • flags: A mongoc_query_flags_t.

    • +
    • skip: The number of documents to skip on the server.

    • +
    • limit: The maximum number of documents to return from the cursor.

    • +
    • batch_size: Attempt to batch results from the server in groups of batch_size documents.

    • +
    • command: A bson_t containing the command.

    • +
    • fields: An optional bson_t containing the fields to return. NULL for all fields.

    • +
    • read_prefs: An optional mongoc_read_prefs_t. Otherwise, the command uses mode MONGOC_READ_PRIMARY.

    • +
    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_command_simple.html b/libmongoc/1.23.2/mongoc_database_command_simple.html new file mode 100644 index 0000000000000000000000000000000000000000..d05d1cbf348e969ec368c787bd886ed5a7a44ea3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_command_simple.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_database_command_simple() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_command_simple()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_command_simple (mongoc_database_t *database,
    +                                const bson_t *command,
    +                                const mongoc_read_prefs_t *read_prefs,
    +                                bson_t *reply,
    +                                bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • command: A bson_t containing the command.

    • +
    • read_prefs: An optional mongoc_read_prefs_t. Otherwise, the command uses mode MONGOC_READ_PRIMARY.

    • +
    • reply: A location to store the commands first result document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    This is a simplified interface to mongoc_database_command() that returns the first result document. The database’s read preference, read concern, and write concern are not applied to the command. The parameter reply is initialized even upon failure to simplify memory management.

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Errors

    +

    Errors are propagated through the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    This function does not check the server response for a write concern error or write concern timeout.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_command_with_opts.html b/libmongoc/1.23.2/mongoc_database_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..1d5c84828f06907d7eabe3e5cb2bf924b91b279f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_command_with_opts.html @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + mongoc_database_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_command_with_opts (
    +   mongoc_database_t *database,
    +   const bson_t *command,
    +   const mongoc_read_prefs_t *read_prefs,
    +   const bson_t *opts,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    Execute a command on the server, interpreting opts according to the MongoDB server version. To send a raw command to the server without any of this logic, use mongoc_client_command_simple().

    +

    Read preferences, read and write concern, and collation can be overridden by various sources. The highest-priority sources for these options are listed first:

    + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Write Concern

    Collation

    read_prefs

    opts

    opts

    opts

    Transaction

    Transaction

    Transaction

    +

    In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. +See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    This function is not considered a retryable read operation.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    The reply is not parsed for a write concern timeout or write concern error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_copy.html b/libmongoc/1.23.2/mongoc_database_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..07d960e1050ff417afd0b911f592e028c2bd4df3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_copy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_database_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_copy()

    +
    +

    Synopsis

    +
    mongoc_database_t *
    +mongoc_database_copy (mongoc_database_t *database) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a deep copy of the database struct and its configuration. Useful if you intend to call mongoc_database_set_write_concern(), mongoc_database_set_read_prefs(), or mongoc_database_set_read_concern(), and want to preserve an unaltered copy of the struct.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_database_t that should be freed with mongoc_database_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_create_collection.html b/libmongoc/1.23.2/mongoc_database_create_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..54918974836bf5110487ec1e3c2b592757151edb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_create_collection.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_database_create_collection() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_create_collection()

    +
    +

    Synopsis

    +
    mongoc_collection_t *
    +mongoc_database_create_collection (mongoc_database_t *database,
    +                                   const char *name,
    +                                   const bson_t *opts,
    +                                   bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • name: The name of the new collection.

    • +
    • opts: An optional bson_t for opts to the create command.

    • +
    • error: A location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    This function creates a mongoc_collection_t from the given mongoc_database_t.

    +

    If no write concern is provided in opts, the database’s write concern is used.

    +

    The encryptedFields document in opts may be used to create a collection used for Using Client-Side Field Level Encryption.

    +

    For a list of all options, see the MongoDB Manual entry on the create command.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_collection_t upon success, NULL upon failure and error is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_destroy.html b/libmongoc/1.23.2/mongoc_database_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..e1e4897a9765808296f36925759100f7df088786 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_database_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_database_destroy (mongoc_database_t *database);
    +
    +
    +

    Releases all resources associated with database, including freeing the structure. Does nothing if database is NULL.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_drop.html b/libmongoc/1.23.2/mongoc_database_drop.html new file mode 100644 index 0000000000000000000000000000000000000000..71867946dbe32259b88a49e3e7d7c15bdeac8703 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_drop.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_database_drop() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_drop()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_drop (mongoc_database_t *database, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    For more information, see mongoc_database_drop_with_opts(). This function is a thin wrapper, passing NULL in as bson_t parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_drop_with_opts.html b/libmongoc/1.23.2/mongoc_database_drop_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..67ca58311114e37836c9fa81a8514d19f5f806ee --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_drop_with_opts.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_database_drop_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_drop_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_drop_with_opts (mongoc_database_t *database,
    +                                const bson_t *opts,
    +                                bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    This function attempts to drop a database on the MongoDB server.

    +

    If no write concern is provided in opts, the database’s write concern is used.

    +

    The encryptedFields document in opts may be used to drop a collection used for Using Client-Side Field Level Encryption.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_find_collections.html b/libmongoc/1.23.2/mongoc_database_find_collections.html new file mode 100644 index 0000000000000000000000000000000000000000..9950f039782fcae1da8d956ef54fa0d6d506f309 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_find_collections.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_database_find_collections() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_find_collections()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_database_find_collections (mongoc_database_t *database,
    +                                  const bson_t *filter,
    +                                  bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_database_find_collections_with_opts);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_database_find_collections_with_opts() instead.

    +
    +
    +

    Description

    +

    Fetches a cursor containing documents, each corresponding to a collection on this database.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • filter: A matcher used by the server to filter the returned collections. May be NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use, or NULL in case of error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    In the returned cursor each result corresponds to the server’s representation of a collection in this database.

    +

    The cursor functions mongoc_cursor_set_limit(), mongoc_cursor_set_batch_size(), and mongoc_cursor_set_max_await_time_ms() have no use on the returned cursor.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_find_collections_with_opts.html b/libmongoc/1.23.2/mongoc_database_find_collections_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..1eda771322aeb843453c8f3aac453a29bd486585 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_find_collections_with_opts.html @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + mongoc_database_find_collections_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_find_collections_with_opts()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_database_find_collections_with_opts (mongoc_database_t *database,
    +                                            const bson_t *opts)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Fetches a cursor containing documents, each corresponding to a collection on this database.

    +

    To get collection names only, use mongoc_database_get_collection_names_with_opts().

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    For a list of all options, see the MongoDB Manual entry on the listCollections command.

    +
    +
    +

    Errors

    +

    Use mongoc_cursor_error() on the returned cursor to check for errors.

    +
    +
    +

    Returns

    +

    This function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. The returned mongoc_cursor_t is never NULL, even on error. The user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command.

    +

    Cursor errors can be checked with mongoc_cursor_error_document(). It always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +

    In the returned cursor each result corresponds to the server’s representation of a collection in this database.

    +

    The cursor functions mongoc_cursor_set_limit(), mongoc_cursor_set_batch_size(), and mongoc_cursor_set_max_await_time_ms() have no use on the returned cursor.

    +
    +
    +

    Examples

    +
    {
    +   bson_t opts = BSON_INITIALIZER;
    +   bson_t name_filter;
    +   const bson_t *doc;
    +   bson_iter_t iter;
    +   bson_error_t error;
    +
    +   BSON_APPEND_DOCUMENT_BEGIN (&opts, "filter", &name_filter);
    +   /* find collections with names like "abbbbc" */
    +   BSON_APPEND_REGEX (&name_filter, "name", "ab+c", NULL);
    +   bson_append_document_end (&opts, &name_filter);
    +
    +   cursor = mongoc_database_find_collections_with_opts (database, &opts);
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      bson_iter_init_find (&iter, doc, "name");
    +      printf ("found collection: %s\n", bson_iter_utf8 (&iter, NULL));
    +   }
    +
    +   if (mongoc_cursor_error (cursor, &error))
    +      fprintf (stderr, "%s\n", error.msg);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   bson_destroy (&opts);
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_get_collection.html b/libmongoc/1.23.2/mongoc_database_get_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..71c0c0997ff0ad16f6fb8b709a70cbf7600b3302 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_get_collection.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_database_get_collection() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_collection()

    +
    +

    Synopsis

    +
    mongoc_collection_t *
    +mongoc_database_get_collection (mongoc_database_t *database,
    +                                const char *name) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Allocates a new mongoc_collection_t structure for the collection named name in database.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_collection_t that should be freed with mongoc_collection_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_get_collection_names.html b/libmongoc/1.23.2/mongoc_database_get_collection_names.html new file mode 100644 index 0000000000000000000000000000000000000000..091bd57731c2cbf650e8bdc72d47ce73d7eeb5f1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_get_collection_names.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_database_get_collection_names() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_collection_names()

    +
    +

    Synopsis

    +
    char **
    +mongoc_database_get_collection_names (mongoc_database_t *database,
    +                                      bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_database_get_collection_names_with_opts);
    +
    +
    +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_database_get_collection_names_with_opts() instead.

    +
    +
    +

    Description

    +

    Fetches a NULL terminated array of NULL-byte terminated char* strings containing the names of all of the collections in database.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A NULL terminated array of NULL terminated char* strings that should be freed with bson_strfreev(). Upon failure, NULL is returned and error is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_get_collection_names_with_opts.html b/libmongoc/1.23.2/mongoc_database_get_collection_names_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..477e6e9e0c4f923a8b34ad35c9f520503ace14eb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_get_collection_names_with_opts.html @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + mongoc_database_get_collection_names_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_collection_names_with_opts()

    +
    +

    Synopsis

    +
    char **
    +mongoc_database_get_collection_names_with_opts (mongoc_database_t *database,
    +                                                const bson_t *opts,
    +                                                bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Fetches a NULL terminated array of NULL-byte terminated char* strings containing the names of all of the collections in database.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    For a list of all options, see the MongoDB Manual entry on the listCollections command.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A NULL terminated array of NULL terminated char* strings that should be freed with bson_strfreev(). Upon failure, NULL is returned and error is set.

    +
    +
    +

    Examples

    +
    {
    +   bson_t opts = BSON_INITIALIZER;
    +   mongoc_read_concern_t *rc;
    +   bson_error_t error;
    +   char **strv;
    +   unsigned i;
    +
    +   rc = mongoc_read_concern_new ();
    +   mongoc_read_concern_set_level (rc, MONGOC_READ_CONCERN_LEVEL_MAJORITY);
    +   mongoc_read_concern_append (rc, &opts);
    +   if ((strv = mongoc_database_get_collection_names_with_opts (
    +          database, &opts, &error))) {
    +
    +      for (i = 0; strv[i]; i++)
    +         printf ("%s\n", strv[i]);
    +
    +      bson_strfreev (strv);
    +   } else {
    +      fprintf (stderr, "Command failed: %s\n", error.message);
    +   }
    +
    +   mongoc_read_concern_destroy (rc);
    +   bson_destroy (&opts);
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_get_name.html b/libmongoc/1.23.2/mongoc_database_get_name.html new file mode 100644 index 0000000000000000000000000000000000000000..30a04cf034dfddf99472a79a2ec6a15af16ea47e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_get_name.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_database_get_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_name()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_database_get_name (mongoc_database_t *database);
    +
    +
    +

    Fetches the name of the database.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A string which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_get_read_concern.html b/libmongoc/1.23.2/mongoc_database_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..eb92d13e8d25c5efe44f53bcf7b097c99833f5ad --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_get_read_concern.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_database_get_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_read_concern()

    +
    +

    Synopsis

    +
    const mongoc_read_concern_t *
    +mongoc_database_get_read_concern (const mongoc_database_t *database);
    +
    +
    +

    This function retrieves the default mongoc_read_concern_t to use with database as configured by the client.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_read_concern_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_get_read_prefs.html b/libmongoc/1.23.2/mongoc_database_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..e7efb46e5573b284c26642fffb9e49a52611bc3a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_get_read_prefs.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_database_get_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_read_prefs()

    +
    +

    Synopsis

    +
    const mongoc_read_prefs_t *
    +mongoc_database_get_read_prefs (const mongoc_database_t *database);
    +
    +
    +

    Fetches the default read preferences to use with database.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_write_concern_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_get_write_concern.html b/libmongoc/1.23.2/mongoc_database_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..fb59556d0c1e5047022bb87bf90e089217d34d73 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_get_write_concern.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_database_get_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_write_concern()

    +
    +

    Synopsis

    +
    const mongoc_write_concern_t *
    +mongoc_database_get_write_concern (const mongoc_database_t *database);
    +
    +
    +

    This function retrieves the default mongoc_write_concern_t to use with database as configured by the client.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_write_concern_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_has_collection.html b/libmongoc/1.23.2/mongoc_database_has_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..b36674183405785fc3d7c56c4bcb0014eabc859a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_has_collection.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_database_has_collection() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_has_collection()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_has_collection (mongoc_database_t *database,
    +                                const char *name,
    +                                bson_error_t *error);
    +
    +
    +

    This function checks to see if a collection exists on the MongoDB server within database.

    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • name: A string containing the name of the collection.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    If the function succeeds, it returns true if the collection exists and false if not, and in either case the fields of error are cleared, if error is not NULL.

    +

    Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_read_command_with_opts.html b/libmongoc/1.23.2/mongoc_database_read_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..a2182d7255e312e06084cfe4312d6f1c239e8aad --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_read_command_with_opts.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + mongoc_database_read_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_read_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_read_command_with_opts (mongoc_database_t *database,
    +                                        const bson_t *command,
    +                                        const mongoc_read_prefs_t *read_prefs,
    +                                        const bson_t *opts,
    +                                        bson_t *reply,
    +                                        bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic that is specific to commands that read, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_database_command_simple().

    +

    Use this function for commands that read such as “count” or “distinct”.

    +

    Read preferences, read concern, and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts and the read preference must be primary or NULL. The highest-priority sources for these options are listed first in the following table. No write concern is applied.

    + + + + + + + + + + + + + + + + + + + + + +

    Read Preferences

    Read Concern

    Collation

    read_prefs

    opts

    opts

    Transaction

    Transaction

    database

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +

    Retry logic occurs regardless of the underlying command. Retrying mapReduce has the potential for degraded performance. +Retrying a getMore command has the potential to miss results. For those commands, use generic command helpers (like mongoc_database_command_with_opts()) instead.

    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_read_write_command_with_opts.html b/libmongoc/1.23.2/mongoc_database_read_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..f1bb7f71f7e3af4de1bee9d434c6cbadd92f6352 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_read_write_command_with_opts.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + mongoc_database_read_write_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_read_write_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_read_write_command_with_opts (
    +   mongoc_database_t *database,
    +   const bson_t *command,
    +   const mongoc_read_prefs_t *read_prefs /* UNUSED */,
    +   const bson_t *opts,
    +   bson_t *reply,
    +   bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic for commands that both read and write, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_database_command_simple().

    +

    Use this function for commands that both read and write, such as “mapReduce” with an output collection.

    +

    Read and write concern and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts. The highest-priority sources for these options are listed first in the following table. Read preferences are not applied. The write concern is omitted for MongoDB before 3.4.

    + + + + + + + + + + + + + + + + + + + + + +

    Read Concern

    Write Concern

    Collation

    opts

    opts

    opts

    Transaction

    Transaction

    database

    database

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +

    (The mongoc_read_prefs_t parameter was included by mistake when this function was introduced in libmongoc 1.5. A command that writes must not obey a read preference.)

    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • command: A bson_t containing the command specification.

    • +
    • read_prefs: Ignored.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_remove_all_users.html b/libmongoc/1.23.2/mongoc_database_remove_all_users.html new file mode 100644 index 0000000000000000000000000000000000000000..dd2d4c355e74283b2f731a567bb310fc49686801 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_remove_all_users.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_database_remove_all_users() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_remove_all_users()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_remove_all_users (mongoc_database_t *database,
    +                                  bson_error_t *error);
    +
    +
    +

    This function will remove all users configured to access database.

    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter. This may fail if there are socket errors or the current user is not authorized to perform the given command.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_remove_user.html b/libmongoc/1.23.2/mongoc_database_remove_user.html new file mode 100644 index 0000000000000000000000000000000000000000..d719f61c09a749e1e0ecab65afba0b436ffc0da2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_remove_user.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_database_remove_user() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_remove_user()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_remove_user (mongoc_database_t *database,
    +                             const char *username,
    +                             bson_error_t *error);
    +
    +
    +

    This function removes the user named username from database.

    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • username: A string containing the username of the user to remove.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter. This could include socket errors or others if the current user is not authorized to perform the command.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_set_read_concern.html b/libmongoc/1.23.2/mongoc_database_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..a090154fcf06e7a69b5d2ea022b56d520b7eb505 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_set_read_concern.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_database_set_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_set_read_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_database_set_read_concern (mongoc_database_t *database,
    +                                  const mongoc_read_concern_t *read_concern);
    +
    +
    +

    This function sets the read concern to use on operations performed with database. Collections created with mongoc_database_get_collection() after this call will inherit this read concern.

    +

    The default read concern is empty: No readConcern is sent to the server unless explicitly configured.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_set_read_prefs.html b/libmongoc/1.23.2/mongoc_database_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..8703cb7b371b7a9ae9bf161b9401ffe6be675a64 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_set_read_prefs.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_database_set_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_set_read_prefs()

    +
    +

    Synopsis

    +
    void
    +mongoc_database_set_read_prefs (mongoc_database_t *database,
    +                                const mongoc_read_prefs_t *read_prefs);
    +
    +
    +

    This function sets the default read preferences to use on operations performed with database. Collections created with mongoc_database_get_collection() after this call will inherit these read preferences.

    +

    The global default is MONGOC_READ_PRIMARY: if the client is connected to a replica set it reads from the primary, otherwise it reads from the current MongoDB server.

    +

    Please see the MongoDB website for a description of Read Preferences.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_set_write_concern.html b/libmongoc/1.23.2/mongoc_database_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..05784808e1bde7f6f3b1a17460a48ad48f7cdcf5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_set_write_concern.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_database_set_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_set_write_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_database_set_write_concern (mongoc_database_t *database,
    +                                   const mongoc_write_concern_t *write_concern);
    +
    +
    +

    This function sets the write concern to use on operations performed with database. Collections created with mongoc_database_get_collection() after this call will inherit this write concern.

    +

    The default write concern is MONGOC_WRITE_CONCERN_W_DEFAULT: the driver blocks awaiting basic acknowledgement of write operations from MongoDB. This is the correct write concern for the great majority of applications.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_t.html b/libmongoc/1.23.2/mongoc_database_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0817a2531c13fa44c6f3c9c0ad2ba45407bc5f9c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_t.html @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + mongoc_database_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_t

    +

    MongoDB Database Abstraction

    +
    +

    Synopsis

    +
    typedef struct _mongoc_database_t mongoc_database_t;
    +
    +
    +

    mongoc_database_t provides access to a MongoDB database. This handle is useful for actions a particular database object. It is not a container for mongoc_collection_t structures.

    +

    Read preferences and write concerns are inherited from the parent client. They can be overridden with mongoc_database_set_read_prefs() and mongoc_database_set_write_concern().

    +
    +
    +

    Functions

    + +
    +
    +

    Examples

    +
    #include <mongoc/mongoc.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_database_t *database;
    +   mongoc_client_t *client;
    +
    +   mongoc_init ();
    +
    +   client = mongoc_client_new ("mongodb://localhost/");
    +   database = mongoc_client_get_database (client, "test");
    +
    +   mongoc_database_destroy (database);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_watch.html b/libmongoc/1.23.2/mongoc_database_watch.html new file mode 100644 index 0000000000000000000000000000000000000000..7a8d243b4356791852b84ec804b316ce3ed4b909 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_watch.html @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + mongoc_database_watch() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_watch()

    +
    +

    Synopsis

    +
    mongoc_change_stream_t*
    +mongoc_database_watch (const mongoc_database_t *db,
    +                       const bson_t *pipeline,
    +                       const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    A helper function to create a change stream. It is preferred to call this +function over using a raw aggregation to create a change stream.

    +

    This function uses the read preference and read concern of the database. If +the change stream needs to re-establish connection, the same read preference +will be used. This may happen if the change stream encounters a resumable error.

    +
    +

    Warning

    +

    A change stream is only supported with majority read concern.

    +
    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Parameters

    +
      +
    • db: A mongoc_database_t specifying the database which the change stream listens to.

    • +
    • pipeline: A bson_t representing an aggregation pipeline appended to the change stream. This may be an empty document.

    • +
    • opts: A bson_t containing change stream options.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • batchSize: An int32 representing number of documents requested to be returned on each call to mongoc_change_stream_next()

    • +
    • resumeAfter: A Document representing the logical starting point of the change stream. The result of mongoc_change_stream_get_resume_token() or the _id field of any change received from a change stream can be used here. This option is mutually exclusive with startAfter and startAtOperationTime.

    • +
    • startAfter: A Document representing the logical starting point of the change stream. Unlike resumeAfter, this can resume notifications after an “invalidate” event. The result of mongoc_change_stream_get_resume_token() or the _id field of any change received from a change stream can be used here. This option is mutually exclusive with resumeAfter and startAtOperationTime.

    • +
    • startAtOperationTime: A Timestamp. The change stream only provides changes that occurred at or after the specified timestamp. Any command run against the server will return an operation time that can be used here. This option is mutually exclusive with resumeAfter and startAfter.

    • +
    • maxAwaitTimeMS: An int64 representing the maximum amount of time a call to mongoc_change_stream_next() will block waiting for data

    • +
    • fullDocument: An optional UTF-8 string. Set this option to “default”, “updateLookup”, “whenAvailable”, or “required”, If unset, The string “default” is assumed. Set this option to “updateLookup” to direct the change stream cursor to lookup the most current majority-committed version of the document associated to an update change stream event.

    • +
    • fullDocumentBeforeChange: An optional UTF-8 string. Set this option to “whenAvailable”, “required”, or “off”. When unset, the default value is “off”. Similar to “fullDocument”, but returns the value of the document before the associated change.

    • +
    • comment: A bson_value_t specifying the comment to attach to this command. The comment will appear in log messages, profiler output, and currentOp output. Only string values are supported prior to MongoDB 4.4.

    • +
    +
    +
    +

    Returns

    +

    A newly allocated mongoc_change_stream_t which must be freed with +mongoc_change_stream_destroy() when no longer in use. The returned +mongoc_change_stream_t is never NULL. If there is an error, it can +be retrieved with mongoc_change_stream_error_document(), and subsequent +calls to mongoc_change_stream_next() will return false.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_database_write_command_with_opts.html b/libmongoc/1.23.2/mongoc_database_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..c23219ce770568aa9c1e6601a325039771d1c739 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_database_write_command_with_opts.html @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + mongoc_database_write_command_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_write_command_with_opts()

    +
    +

    Synopsis

    +
    bool
    +mongoc_database_write_command_with_opts (mongoc_database_t *database,
    +                                         const bson_t *command,
    +                                         const bson_t *opts,
    +                                         bson_t *reply,
    +                                         bson_error_t *error);
    +
    +
    +

    Execute a command on the server, applying logic that is specific to commands that write, and taking the MongoDB server version into account. To send a raw command to the server without any of this logic, use mongoc_database_command_simple().

    +

    Use this function for commands that write such as “drop” or “createRole” (but not for “insert”, “update”, or “delete”, see Basic Write Operations). Write concern and collation can be overridden by various sources. In a transaction, read concern and write concern are prohibited in opts. The highest-priority sources for these options are listed first in the following table. The write concern is omitted for MongoDB before 3.4.

    + + + + + + + + + + + + + + + + + +

    Write Concern

    Collation

    opts

    opts

    Transaction

    database

    +

    See the example for transactions and for the “distinct” command with opts.

    +

    reply is always initialized, and must be freed with bson_destroy().

    +
    +
    +

    Parameters

    +
      +
    • database: A mongoc_database_t.

    • +
    • db_name: The name of the database to run the command on.

    • +
    • command: A bson_t containing the command specification.

    • +
    • opts: A bson_t containing additional options.

    • +
    • reply: A location for the resulting document.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Consult the MongoDB Manual entry on Database Commands for each command’s arguments.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +

    A write concern timeout or write concern error is considered a failure.

    +
    +
    +

    Basic Write Operations

    +

    Do not use this function to call the basic write commands “insert”, “update”, and “delete”. Those commands require special logic not implemented in mongoc_database_write_command_with_opts. For basic write operations use CRUD functions such as mongoc_collection_insert_one() and the others described in the CRUD tutorial, or use the Bulk API.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_delete_flags_t.html b/libmongoc/1.23.2/mongoc_delete_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..4830407e0837ada906e10c659a982499ac542833 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_delete_flags_t.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_delete_flags_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_delete_flags_t

    +

    Flags for deletion operations

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_DELETE_NONE = 0,
    +   MONGOC_DELETE_SINGLE_REMOVE = 1 << 0,
    +} mongoc_delete_flags_t;
    +
    +
    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    These flags are deprecated and should not be used in new code.

    +
    +

    Please use mongoc_collection_delete_one() or mongoc_collection_delete_many() instead.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_error_has_label.html b/libmongoc/1.23.2/mongoc_error_has_label.html new file mode 100644 index 0000000000000000000000000000000000000000..26d165c64c5bb6cfda6bd7c361afe29befc7899b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_error_has_label.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_error_has_label() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_error_has_label()

    +
    +

    Synopsis

    +
    bool
    +mongoc_error_has_label (const bson_t *reply, const char *label);
    +
    +
    +

    Test whether a reply from a failed operation includes a specific error label. See Error Labels for details, and see mongoc_client_session_start_transaction() for example code that demonstrates their use.

    +
    +
    +

    Parameters

    +
      +
    • reply: A bson_t, the reply to a failed operation.

    • +
    • label: The label to test for, such as “TransientTransactionError” or “UnknownTransactionCommitResult”.

    • +
    +
    +
    +

    Returns

    +

    Returns true if reply contains the error label.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_append.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_append.html new file mode 100644 index 0000000000000000000000000000000000000000..40109d694511c3c9f2d4c8bf59330478288dbcf9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_append.html @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_append() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_append()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_append (mongoc_find_and_modify_opts_t *opts,
    +                                    const bson_t *extra);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Adds arbitrary options to a findAndModify command.

    +

    extra does not have to remain valid after calling this function.

    +

    extra may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    +
    +
    +

    Appending options to findAndModify

    +
    +
    opts.c
    +
    void
    +fam_opts (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t reply;
    +   bson_t *update;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   mongoc_write_concern_t *wc;
    +   bson_t extra = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic, the striker */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "profession", "Football player");
    +
    +   /* Bump his age */
    +   update = BCON_NEW ("$inc", "{", "age", BCON_INT32 (1), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +
    +   /* Abort if the operation takes too long. */
    +   mongoc_find_and_modify_opts_set_max_time_ms (opts, 100);
    +
    +   /* Set write concern w: 2 */
    +   wc = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_w (wc, 2);
    +   mongoc_write_concern_append (wc, &extra);
    +
    +   /* Some future findAndModify option the driver doesn't support conveniently
    +    */
    +   BSON_APPEND_INT32 (&extra, "futureOption", 42);
    +   mongoc_find_and_modify_opts_append (opts, &extra);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (&extra);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_write_concern_destroy (wc);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_destroy.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..7aa1d1bfdd22d5c96d905340d53f27c77176ca6f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_destroy.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_find_and_modify_opts_destroy (
    +   mongoc_find_and_modify_opts_t *find_and_modify_opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees all resources associated with the find and modify builder structure. Does nothing if find_and_modify_opts is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_bypass_document_validation.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_bypass_document_validation.html new file mode 100644 index 0000000000000000000000000000000000000000..6a9c973b9b1bef5d7ce2ba9f3de31d3f8c7ca9e3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_bypass_document_validation.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_bypass_document_validation() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_get_bypass_document_validation()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_get_bypass_document_validation (
    +   const mongoc_find_and_modify_opts_t *opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if mongoc_find_and_modify_opts_set_bypass_document_validation() was called previously on opts.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_fields.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_fields.html new file mode 100644 index 0000000000000000000000000000000000000000..0550fb886d875e3c6ee3b114ac805dfad4279a17 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_fields.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_fields() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_get_fields()

    +
    +

    Synopsis

    +
    void
    +mongoc_find_and_modify_opts_get_fields (
    +   const mongoc_find_and_modify_opts_t *opts, bson_t *fields);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Copy to fields the BSON document that was set with mongoc_find_and_modify_opts_set_fields(), or initializes fields with an empty BSON document.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_flags.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_flags.html new file mode 100644 index 0000000000000000000000000000000000000000..e09bb78658557a3ae4870a82dbc108662a99b6d3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_flags.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_flags() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_get_flags()

    +
    +

    Synopsis

    +
    mongoc_find_and_modify_flags_t
    +mongoc_find_and_modify_opts_get_flags (
    +   const mongoc_find_and_modify_opts_t *opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns the flags set with mongoc_find_and_modify_opts_set_flags().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_max_time_ms.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_max_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..791f42ea5a9aca946d9664e63904d6afc750a13b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_max_time_ms.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_max_time_ms() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_get_max_time_ms()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_find_and_modify_opts_get_max_time_ms (
    +   const mongoc_find_and_modify_opts_t *opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns the “maxTimeMS” value set with mongoc_find_and_modify_opts_set_max_time_ms().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_sort.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_sort.html new file mode 100644 index 0000000000000000000000000000000000000000..9ccc84f16177051623ba547f6ee6ce555918b0e1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_sort.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_sort() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_get_sort()

    +
    +

    Synopsis

    +
    void
    +mongoc_find_and_modify_opts_get_sort (const mongoc_find_and_modify_opts_t *opts,
    +                                      bson_t *sort);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Copies the sort document set with mongoc_find_and_modify_opts_set_sort(), or initializes sort with an empty BSON document.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_update.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_update.html new file mode 100644 index 0000000000000000000000000000000000000000..8c2a8c12c2db04e60303faea3737572bcdf41984 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_get_update.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_update() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_get_update()

    +
    +

    Synopsis

    +
    void
    +mongoc_find_and_modify_opts_get_update (
    +   const mongoc_find_and_modify_opts_t *opts, bson_t *update);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Copies the update document set with mongoc_find_and_modify_opts_set_update(), or initializes update with an empty BSON document.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_new.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..8b5a61d939555b708773a378c170f634d9d453d8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_new.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_new()

    +
    +

    Synopsis

    +
    mongoc_find_and_modify_opts_t *
    +mongoc_find_and_modify_opts_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Returns

    +

    Creates a newly allocated find and modify builder structure that is used to create a findAndModify command. This should be freed with mongoc_find_and_modify_opts_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_bypass_document_validation.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_bypass_document_validation.html new file mode 100644 index 0000000000000000000000000000000000000000..c5097d97bdbd77170b6ece3495e5cd6c383063dc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_bypass_document_validation.html @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_bypass_document_validation() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_set_bypass_document_validation()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_set_bypass_document_validation (
    +   mongoc_find_and_modify_opts_t *opts, bool bypass);
    +
    +
    +

    This option is only available when talking to MongoDB 3.2 and later.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Adds bypassDocumentValidation argument to the builder.

    +

    When authentication is enabled, the authenticated user must have either the “dbadmin” or “restore” roles to bypass document validation.

    +
    +
    +

    Returns

    +

    Returns true if it successfully added the option to the builder, otherwise false and logs an error.

    +
    +
    +

    Setting bypassDocumentValidation

    +
    +
    bypass.c
    +
    void
    +fam_bypass (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t reply;
    +   bson_t *update;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic, the striker */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "profession", "Football player");
    +
    +   /* Bump his age */
    +   update = BCON_NEW ("$inc", "{", "age", BCON_INT32 (1), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +   /* He can still play, even though he is pretty old. */
    +   mongoc_find_and_modify_opts_set_bypass_document_validation (opts, true);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +

    Outputs:

    +
    {
    +   "lastErrorObject" : {"updatedExisting" : true, "n" : 1},
    +                       "value" : {
    +                          "_id" : {"$oid" : "56562a99d13e6d86239c7b00"},
    +                          "age" : 34,
    +                          "firstname" : "Zlatan",
    +                          "goals" : 342,
    +                          "lastname" : "Ibrahimovic",
    +                          "profession" : "Football player",
    +                          "position" : "striker"
    +                       },
    +                                 "ok" : 1
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_fields.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_fields.html new file mode 100644 index 0000000000000000000000000000000000000000..b28fc46d9b15673f80a1b7058b1354f0cfc70a41 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_fields.html @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_fields() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_set_fields()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_set_fields (mongoc_find_and_modify_opts_t *opts,
    +                                        const bson_t *fields);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • opts: A mongoc_find_and_modify_opts_t.

    • +
    • fields: A subset of fields to return. Choose which fields to include by appending {fieldname: 1} for each fieldname, or excluding it with {fieldname: 0}.

    • +
    +
    +
    +

    Description

    +

    Adds fields argument to the builder.

    +

    fields does not have to remain valid after calling this function.

    +
    +
    +

    Returns

    +

    Returns true if it successfully added the option to the builder, otherwise false.

    +
    +
    +

    Setting fields

    +
    +
    fields.c
    +
    void
    +fam_fields (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t fields = BSON_INITIALIZER;
    +   bson_t *update;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic */
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +
    +   /* Return his goal tally */
    +   BSON_APPEND_INT32 (&fields, "goals", 1);
    +
    +   /* Bump his goal tally */
    +   update = BCON_NEW ("$inc", "{", "goals", BCON_INT32 (1), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +   mongoc_find_and_modify_opts_set_fields (opts, &fields);
    +   /* Return the new tally */
    +   mongoc_find_and_modify_opts_set_flags (opts,
    +                                          MONGOC_FIND_AND_MODIFY_RETURN_NEW);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&fields);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +

    Outputs:

    +
    {
    +   "lastErrorObject"
    +      : {"updatedExisting" : true, "n" : 1},
    +        "value"
    +        : {"_id" : {"$oid" : "56562a99d13e6d86239c7b00"}, "goals" : 343},
    +          "ok" : 1
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_flags.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_flags.html new file mode 100644 index 0000000000000000000000000000000000000000..94ac2f329ae831ae9785ea45ed95f8fa99d89e21 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_flags.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_flags() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_set_flags()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_set_flags (
    +   mongoc_find_and_modify_opts_t *opts,
    +   const mongoc_find_and_modify_flags_t flags);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Adds one or more flags to the builder.

    + + + + + + + + + + + + + + + +

    MONGOC_FIND_AND_MODIFY_NONE

    Default. Doesn’t add anything to the builder.

    MONGOC_FIND_AND_MODIFY_REMOVE

    Will instruct find_and_modify to remove the matching document.

    MONGOC_FIND_AND_MODIFY_UPSERT

    Update the matching document or, if no document matches, insert the document.

    MONGOC_FIND_AND_MODIFY_RETURN_NEW

    Return the resulting document.

    +
    +
    +

    Returns

    +

    Returns Returns true if it successfully added the option to the builder, otherwise false and logs an error.

    +
    +
    +

    Setting flags

    +
    +
    flags.c
    +
    void
    +fam_flags (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bson_t *update;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic, the striker */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "profession", "Football player");
    +   BSON_APPEND_INT32 (&query, "age", 34);
    +   BSON_APPEND_INT32 (
    +      &query, "goals", (16 + 35 + 23 + 57 + 16 + 14 + 28 + 84) + (1 + 6 + 62));
    +
    +   /* Add his football position */
    +   update = BCON_NEW ("$set", "{", "position", BCON_UTF8 ("striker"), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +
    +   /* Create the document if it didn't exist, and return the updated document */
    +   mongoc_find_and_modify_opts_set_flags (
    +      opts, MONGOC_FIND_AND_MODIFY_UPSERT | MONGOC_FIND_AND_MODIFY_RETURN_NEW);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +

    Outputs:

    +
    {
    +   "lastErrorObject" : {
    +      "updatedExisting" : false,
    +      "n" : 1,
    +      "upserted" : {"$oid" : "56562a99d13e6d86239c7b00"}
    +   },
    +                       "value" : {
    +                          "_id" : {"$oid" : "56562a99d13e6d86239c7b00"},
    +                          "age" : 34,
    +                          "firstname" : "Zlatan",
    +                          "goals" : 342,
    +                          "lastname" : "Ibrahimovic",
    +                          "profession" : "Football player",
    +                          "position" : "striker"
    +                       },
    +                                 "ok" : 1
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_max_time_ms.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_max_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..1c3fa7b38492dab508b6e828b182e757047e369e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_max_time_ms.html @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_max_time_ms() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_set_max_time_ms()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_set_max_time_ms (
    +   mongoc_find_and_modify_opts_t *opts, uint32_t max_time_ms);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • opts: A mongoc_find_and_modify_opts_t.

    • +
    • max_time_ms: The maximum server-side execution time permitted, in milliseconds, or 0 to specify no maximum time (the default setting).

    • +
    +
    +
    +

    Description

    +

    Adds a maxTimeMS argument to the builder.

    +
    +
    +

    Returns

    +

    Returns true if it successfully added the option to the builder, otherwise false and logs an error.

    +

    Note: although max_time_ms is a uint32_t, it is possible to set it as a uint64_t through the options arguments in some cursor returning functions like mongoc_collection_find_with_opts().

    +
    +
    +

    Setting maxTimeMS

    +
    +
    opts.c
    +
    void
    +fam_opts (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t reply;
    +   bson_t *update;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   mongoc_write_concern_t *wc;
    +   bson_t extra = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic, the striker */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "profession", "Football player");
    +
    +   /* Bump his age */
    +   update = BCON_NEW ("$inc", "{", "age", BCON_INT32 (1), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +
    +   /* Abort if the operation takes too long. */
    +   mongoc_find_and_modify_opts_set_max_time_ms (opts, 100);
    +
    +   /* Set write concern w: 2 */
    +   wc = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_w (wc, 2);
    +   mongoc_write_concern_append (wc, &extra);
    +
    +   /* Some future findAndModify option the driver doesn't support conveniently
    +    */
    +   BSON_APPEND_INT32 (&extra, "futureOption", 42);
    +   mongoc_find_and_modify_opts_append (opts, &extra);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (&extra);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_write_concern_destroy (wc);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_sort.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_sort.html new file mode 100644 index 0000000000000000000000000000000000000000..f5594d4a2bc0270b93c85b5103fee84a20f2a1c5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_sort.html @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_sort() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_set_sort()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_set_sort (mongoc_find_and_modify_opts_t *opts,
    +                                      const bson_t *sort);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • opts: A mongoc_find_and_modify_opts_t.

    • +
    • sort: Determines which document the operation modifies if the query selects multiple documents. findAndModify modifies the first document in the sort order specified by this argument.

    • +
    +
    +
    +

    Description

    +

    Adds sort argument to the builder.

    +

    sort does not have to remain valid after calling this function.

    +
    +
    +

    Returns

    +

    Returns true if it successfully added the option to the builder, otherwise false.

    +
    +
    +

    Setting sort

    +
    +
    sort.c
    +
    void
    +fam_sort (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t *update;
    +   bson_t sort = BSON_INITIALIZER;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find all users with the lastname Ibrahimovic */
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +
    +   /* Sort by age (descending) */
    +   BSON_APPEND_INT32 (&sort, "age", -1);
    +
    +   /* Bump his goal tally */
    +   update = BCON_NEW ("$set", "{", "oldest", BCON_BOOL (true), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +   mongoc_find_and_modify_opts_set_sort (opts, &sort);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&sort);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +

    Outputs:

    +
    {
    +   "lastErrorObject" : {"updatedExisting" : true, "n" : 1},
    +                       "value" : {
    +                          "_id" : {"$oid" : "56562a99d13e6d86239c7b00"},
    +                          "age" : 35,
    +                          "firstname" : "Zlatan",
    +                          "goals" : 343,
    +                          "lastname" : "Ibrahimovic",
    +                          "profession" : "Football player",
    +                          "position" : "striker",
    +                          "author" : true
    +                       },
    +                                 "ok" : 1
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_update.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_update.html new file mode 100644 index 0000000000000000000000000000000000000000..9fcf51ebe8a784ca927bc949aade1b80dfc88aac --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_set_update.html @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_update() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_set_update()

    +
    +

    Synopsis

    +
    bool
    +mongoc_find_and_modify_opts_set_update (mongoc_find_and_modify_opts_t *opts,
    +                                        const bson_t *update);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Adds update argument to the builder.

    +

    update does not have to remain valid after calling this function.

    +
    +
    +

    Returns

    +

    Returns true if it successfully added the option to the builder, otherwise false.

    +
    +
    +

    Setting update

    +
    +
    update.c
    +
    void
    +fam_update (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t *update;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +
    +   /* Make him a book author */
    +   update = BCON_NEW ("$set", "{", "author", BCON_BOOL (true), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   /* Note that the document returned is the _previous_ version of the document
    +    * To fetch the modified new version, use
    +    * mongoc_find_and_modify_opts_set_flags (opts,
    +    * MONGOC_FIND_AND_MODIFY_RETURN_NEW);
    +    */
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +

    Outputs:

    +
    {
    +   "lastErrorObject" : {"updatedExisting" : true, "n" : 1},
    +                       "value" : {
    +                          "_id" : {"$oid" : "56562a99d13e6d86239c7b00"},
    +                          "age" : 35,
    +                          "firstname" : "Zlatan",
    +                          "goals" : 342,
    +                          "lastname" : "Ibrahimovic",
    +                          "profession" : "Football player",
    +                          "position" : "striker"
    +                       },
    +                                 "ok" : 1
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_find_and_modify_opts_t.html b/libmongoc/1.23.2/mongoc_find_and_modify_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..ab583c69ccea8bd05a35e8ce688d2ff57a03fcc4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_find_and_modify_opts_t.html @@ -0,0 +1,700 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_t

    +

    find_and_modify abstraction

    +
    +

    Synopsis

    +

    mongoc_find_and_modify_opts_t is a builder interface to construct a find_and_modify command.

    +

    It was created to be able to accommodate new arguments to the MongoDB find_and_modify command.

    +

    As of MongoDB 3.2, the mongoc_write_concern_t specified on the mongoc_collection_t will be used, if any.

    +
    +
    +

    Example

    +
    +
    flags.c
    +
    void
    +fam_flags (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bson_t *update;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic, the striker */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "profession", "Football player");
    +   BSON_APPEND_INT32 (&query, "age", 34);
    +   BSON_APPEND_INT32 (
    +      &query, "goals", (16 + 35 + 23 + 57 + 16 + 14 + 28 + 84) + (1 + 6 + 62));
    +
    +   /* Add his football position */
    +   update = BCON_NEW ("$set", "{", "position", BCON_UTF8 ("striker"), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +
    +   /* Create the document if it didn't exist, and return the updated document */
    +   mongoc_find_and_modify_opts_set_flags (
    +      opts, MONGOC_FIND_AND_MODIFY_UPSERT | MONGOC_FIND_AND_MODIFY_RETURN_NEW);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    bypass.c
    +
    void
    +fam_bypass (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t reply;
    +   bson_t *update;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic, the striker */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "profession", "Football player");
    +
    +   /* Bump his age */
    +   update = BCON_NEW ("$inc", "{", "age", BCON_INT32 (1), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +   /* He can still play, even though he is pretty old. */
    +   mongoc_find_and_modify_opts_set_bypass_document_validation (opts, true);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    update.c
    +
    void
    +fam_update (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t *update;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +
    +   /* Make him a book author */
    +   update = BCON_NEW ("$set", "{", "author", BCON_BOOL (true), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   /* Note that the document returned is the _previous_ version of the document
    +    * To fetch the modified new version, use
    +    * mongoc_find_and_modify_opts_set_flags (opts,
    +    * MONGOC_FIND_AND_MODIFY_RETURN_NEW);
    +    */
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    fields.c
    +
    void
    +fam_fields (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t fields = BSON_INITIALIZER;
    +   bson_t *update;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic */
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +
    +   /* Return his goal tally */
    +   BSON_APPEND_INT32 (&fields, "goals", 1);
    +
    +   /* Bump his goal tally */
    +   update = BCON_NEW ("$inc", "{", "goals", BCON_INT32 (1), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +   mongoc_find_and_modify_opts_set_fields (opts, &fields);
    +   /* Return the new tally */
    +   mongoc_find_and_modify_opts_set_flags (opts,
    +                                          MONGOC_FIND_AND_MODIFY_RETURN_NEW);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&fields);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    sort.c
    +
    void
    +fam_sort (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t *update;
    +   bson_t sort = BSON_INITIALIZER;
    +   bson_t reply;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find all users with the lastname Ibrahimovic */
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +
    +   /* Sort by age (descending) */
    +   BSON_APPEND_INT32 (&sort, "age", -1);
    +
    +   /* Bump his goal tally */
    +   update = BCON_NEW ("$set", "{", "oldest", BCON_BOOL (true), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +   mongoc_find_and_modify_opts_set_sort (opts, &sort);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (update);
    +   bson_destroy (&sort);
    +   bson_destroy (&query);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    opts.c
    +
    void
    +fam_opts (mongoc_collection_t *collection)
    +{
    +   mongoc_find_and_modify_opts_t *opts;
    +   bson_t reply;
    +   bson_t *update;
    +   bson_error_t error;
    +   bson_t query = BSON_INITIALIZER;
    +   mongoc_write_concern_t *wc;
    +   bson_t extra = BSON_INITIALIZER;
    +   bool success;
    +
    +
    +   /* Find Zlatan Ibrahimovic, the striker */
    +   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
    +   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
    +   BSON_APPEND_UTF8 (&query, "profession", "Football player");
    +
    +   /* Bump his age */
    +   update = BCON_NEW ("$inc", "{", "age", BCON_INT32 (1), "}");
    +
    +   opts = mongoc_find_and_modify_opts_new ();
    +   mongoc_find_and_modify_opts_set_update (opts, update);
    +
    +   /* Abort if the operation takes too long. */
    +   mongoc_find_and_modify_opts_set_max_time_ms (opts, 100);
    +
    +   /* Set write concern w: 2 */
    +   wc = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_w (wc, 2);
    +   mongoc_write_concern_append (wc, &extra);
    +
    +   /* Some future findAndModify option the driver doesn't support conveniently
    +    */
    +   BSON_APPEND_INT32 (&extra, "futureOption", 42);
    +   mongoc_find_and_modify_opts_append (opts, &extra);
    +
    +   success = mongoc_collection_find_and_modify_with_opts (
    +      collection, &query, opts, &reply, &error);
    +
    +   if (success) {
    +      char *str;
    +
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (&extra);
    +   bson_destroy (update);
    +   bson_destroy (&query);
    +   mongoc_write_concern_destroy (wc);
    +   mongoc_find_and_modify_opts_destroy (opts);
    +}
    +
    +
    +
    +
    +
    fam.c
    +
    int
    +main (void)
    +{
    +   mongoc_collection_t *collection;
    +   mongoc_database_t *database;
    +   mongoc_client_t *client;
    +   const char *uri_string =
    +      "mongodb://localhost:27017/admin?appname=find-and-modify-opts-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +   bson_t *options;
    +
    +   mongoc_init ();
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   database = mongoc_client_get_database (client, "databaseName");
    +
    +   options = BCON_NEW ("validator",
    +                       "{",
    +                       "age",
    +                       "{",
    +                       "$lte",
    +                       BCON_INT32 (34),
    +                       "}",
    +                       "}",
    +                       "validationAction",
    +                       BCON_UTF8 ("error"),
    +                       "validationLevel",
    +                       BCON_UTF8 ("moderate"));
    +
    +   collection = mongoc_database_create_collection (
    +      database, "collectionName", options, &error);
    +   if (!collection) {
    +      fprintf (
    +         stderr, "Got error: \"%s\" on line %d\n", error.message, __LINE__);
    +      return EXIT_FAILURE;
    +   }
    +
    +   fam_flags (collection);
    +   fam_bypass (collection);
    +   fam_update (collection);
    +   fam_fields (collection);
    +   fam_opts (collection);
    +   fam_sort (collection);
    +
    +   mongoc_collection_drop (collection, NULL);
    +   bson_destroy (options);
    +   mongoc_uri_destroy (uri);
    +   mongoc_database_destroy (database);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +

    Outputs:

    +
    {
    +    "lastErrorObject": {
    +        "updatedExisting": false,
    +        "n": 1,
    +        "upserted": {
    +            "$oid": "56562a99d13e6d86239c7b00"
    +        }
    +    },
    +    "value": {
    +        "_id": {
    +            "$oid": "56562a99d13e6d86239c7b00"
    +        },
    +        "age": 34,
    +        "firstname": "Zlatan",
    +        "goals": 342,
    +        "lastname": "Ibrahimovic",
    +        "profession": "Football player",
    +        "position": "striker"
    +    },
    +    "ok": 1
    +}
    +{
    +    "lastErrorObject": {
    +        "updatedExisting": true,
    +        "n": 1
    +    },
    +    "value": {
    +        "_id": {
    +            "$oid": "56562a99d13e6d86239c7b00"
    +        },
    +        "age": 34,
    +        "firstname": "Zlatan",
    +        "goals": 342,
    +        "lastname": "Ibrahimovic",
    +        "profession": "Football player",
    +        "position": "striker"
    +    },
    +    "ok": 1
    +}
    +{
    +    "lastErrorObject": {
    +        "updatedExisting": true,
    +        "n": 1
    +    },
    +    "value": {
    +        "_id": {
    +            "$oid": "56562a99d13e6d86239c7b00"
    +        },
    +        "age": 35,
    +        "firstname": "Zlatan",
    +        "goals": 342,
    +        "lastname": "Ibrahimovic",
    +        "profession": "Football player",
    +        "position": "striker"
    +    },
    +    "ok": 1
    +}
    +{
    +    "lastErrorObject": {
    +        "updatedExisting": true,
    +        "n": 1
    +    },
    +    "value": {
    +        "_id": {
    +            "$oid": "56562a99d13e6d86239c7b00"
    +        },
    +        "goals": 343
    +    },
    +    "ok": 1
    +}
    +{
    +    "lastErrorObject": {
    +        "updatedExisting": true,
    +        "n": 1
    +    },
    +    "value": {
    +        "_id": {
    +            "$oid": "56562a99d13e6d86239c7b00"
    +        },
    +        "age": 35,
    +        "firstname": "Zlatan",
    +        "goals": 343,
    +        "lastname": "Ibrahimovic",
    +        "profession": "Football player",
    +        "position": "striker",
    +        "author": true
    +    },
    +    "ok": 1
    +}
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_get_major_version.html b/libmongoc/1.23.2/mongoc_get_major_version.html new file mode 100644 index 0000000000000000000000000000000000000000..a6bec4ecac52ce072d5216d0ee1d719d606564a0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_get_major_version.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_get_major_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_get_major_version()

    +
    +

    Synopsis

    +
    int
    +mongoc_get_major_version (void);
    +
    +
    +
    +
    +

    Returns

    +

    The value of MONGOC_MAJOR_VERSION when libmongoc was compiled.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_get_micro_version.html b/libmongoc/1.23.2/mongoc_get_micro_version.html new file mode 100644 index 0000000000000000000000000000000000000000..6d2e175f7ea3fdbe4dd41cb0d995c59d1c060cbc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_get_micro_version.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_get_micro_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_get_micro_version()

    +
    +

    Synopsis

    +
    int
    +mongoc_get_micro_version (void);
    +
    +
    +
    +
    +

    Returns

    +

    The value of MONGOC_MICRO_VERSION when libmongoc was compiled.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_get_minor_version.html b/libmongoc/1.23.2/mongoc_get_minor_version.html new file mode 100644 index 0000000000000000000000000000000000000000..0b2ea593f70cb6d2b427e3c67849682e9de9afbd --- /dev/null +++ b/libmongoc/1.23.2/mongoc_get_minor_version.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_get_minor_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_get_minor_version()

    +
    +

    Synopsis

    +
    int
    +mongoc_get_minor_version (void);
    +
    +
    +
    +
    +

    Returns

    +

    The value of MONGOC_MINOR_VERSION when libmongoc was compiled.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_get_version.html b/libmongoc/1.23.2/mongoc_get_version.html new file mode 100644 index 0000000000000000000000000000000000000000..7fe276a286c7d6f50e004a0e888e4c9d84c974a9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_get_version.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_get_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_get_version()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_get_version (void);
    +
    +
    +
    +
    +

    Returns

    +

    A string representation of libmongoc’s version, formatted something like “1.2.3” or “1.2.3-pre”.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_abort_upload.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_abort_upload.html new file mode 100644 index 0000000000000000000000000000000000000000..1ac4c565f1ab39c22cc3cd4c9dffad72985a11a5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_abort_upload.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_abort_upload() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_abort_upload()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_abort_upload (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Aborts the upload of a GridFS upload stream.

    +
    +
    +

    Returns

    +

    True on success. False otherwise, and sets an error on stream.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_delete_by_id.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_delete_by_id.html new file mode 100644 index 0000000000000000000000000000000000000000..416508f738c2ce8b975ffd199598ba582938eb1a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_delete_by_id.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_delete_by_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_delete_by_id()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_delete_by_id (mongoc_gridfs_bucket_t *bucket,
    +                                   const bson_value_t *file_id,
    +                                   bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Deletes a file and its contents from GridFS.

    +
    +
    +

    Returns

    +

    True if the operation succeeded. False otherwise, and sets error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_destroy.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..55394e02ab3381c9ead98954ba2763ec05e35e15 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_bucket_destroy (mongoc_gridfs_bucket_t *bucket);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Destroys a mongoc_gridfs_bucket_t. Does nothing if passed NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_download_to_stream.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_download_to_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..87a42f433863d9eb024d2cc52a3613e9cf3b5f6f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_download_to_stream.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_download_to_stream() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_download_to_stream()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_download_to_stream (mongoc_gridfs_bucket_t *bucket,
    +                                         const bson_value_t *file_id,
    +                                         mongoc_stream_t *destination,
    +                                         bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Reads from the GridFS file and writes to the destination stream.

    +

    Writes the full contents of the file to the destination stream. +The destination stream is not closed after calling mongoc_gridfs_bucket_download_to_stream(); call mongoc_stream_close() after.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Returns

    +

    True if the operation succeeded. False otherwise, and sets error.

    +
    +

    See also

    +
    +
    mongoc_stream_file_new() and mongoc_stream_file_new_for_path(), which can be used to create a destination stream from a file.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_find.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_find.html new file mode 100644 index 0000000000000000000000000000000000000000..329737f422828de56c6ef3856b387dccdb698b3b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_find.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_find() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_find()

    +
    +

    Synopsis

    +
    mongoc_cursor_t *
    +mongoc_gridfs_bucket_find (mongoc_gridfs_bucket_t *bucket,
    +                           const bson_t *filter,
    +                           const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Finds file documents from the bucket’s files collection.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_cursor_t that must be freed with mongoc_cursor_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_new.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_new.html new file mode 100644 index 0000000000000000000000000000000000000000..216517da8806bfedc78adc99d92bfdd6e1a36069 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_new.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_new()

    +
    +

    Synopsis

    +
    mongoc_gridfs_bucket_t *
    +mongoc_gridfs_bucket_new (mongoc_database_t *db,
    +                          const bson_t *opts,
    +                          const mongoc_read_prefs_t *read_prefs,
    +                          bson_error_t* error) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    + +
    +
    +

    Description

    +

    Creates a new mongoc_gridfs_bucket_t. Use this handle to perform GridFS operations.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_gridfs_bucket_t that should be freed with mongoc_gridfs_bucket_destroy() or NULL on failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_open_download_stream.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_open_download_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..c33f098f369165a8a98f32be2b6eb212a801eea2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_open_download_stream.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_open_download_stream() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_open_download_stream()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_gridfs_bucket_open_download_stream (mongoc_gridfs_bucket_t *bucket,
    +                                           const bson_value_t *file_id,
    +                                           bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Opens a stream for reading a file from GridFS.

    +
    +
    +

    Returns

    +

    A mongoc_stream_t that can be read from or NULL on failure. Errors on this stream can be retrieved with mongoc_gridfs_bucket_stream_error().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_open_upload_stream.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_open_upload_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..46e467f3f5af7ab641e5ffc918126ac8933a1fc9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_open_upload_stream.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_open_upload_stream() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_open_upload_stream()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_gridfs_bucket_open_upload_stream (mongoc_gridfs_bucket_t *bucket,
    +                                         const char *filename,
    +                                         const bson_t *opts,
    +                                         bson_value_t *file_id,
    +                                         bson_error_t *error)
    +  BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • chunkSizeBytes: An int32 chunk size to use for this file. Overrides the chunkSizeBytes set on bucket.

    • +
    • metadata: A bson_t representing metadata to include with the file.

    • +
    +
    +
    +

    Description

    +

    Opens a stream for writing to a new file in GridFS. The file id is generated automatically. +To specify an explicit file id, use mongoc_gridfs_bucket_open_upload_stream_with_id().

    +
    +
    +

    Returns

    +

    A mongoc_stream_t that can be written to or NULL on failure. Errors on this stream can be retrieved with mongoc_gridfs_bucket_stream_error(). After calling mongoc_stream_close() the file is completely written in GridFS.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_open_upload_stream_with_id.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_open_upload_stream_with_id.html new file mode 100644 index 0000000000000000000000000000000000000000..7e980e7ed50ad8f5a60a1592bacec446f567c9f2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_open_upload_stream_with_id.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_open_upload_stream_with_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_open_upload_stream_with_id()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_gridfs_bucket_open_upload_stream_with_id (mongoc_gridfs_bucket_t *bucket,
    +                                                 const bson_value_t *file_id,
    +                                                 const char *filename,
    +                                                 const bson_t *opts,
    +                                                 bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • chunkSizeBytes: An int32 chunk size to use for this file. Overrides the chunkSizeBytes set on bucket.

    • +
    • metadata: A bson_t representing metadata to include with the file.

    • +
    +
    +
    +

    Description

    +

    Opens a stream for writing to a new file in GridFS for a specified file id. +To have libmongoc generate an id, use mongoc_gridfs_bucket_open_upload_stream().

    +
    +
    +

    Returns

    +

    A mongoc_stream_t that can be written to or NULL on failure. Errors on this stream can be retrieved with mongoc_gridfs_bucket_stream_error(). After calling mongoc_stream_close() the file is completely written in GridFS.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_stream_error.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_stream_error.html new file mode 100644 index 0000000000000000000000000000000000000000..715372fed9c52a601bca3b92fdabbcf92ebd0a22 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_stream_error.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_stream_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_stream_error()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_stream_error (mongoc_stream_t *stream,
    +                                   bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Retrieves an error for a GridFS stream if one exists.

    +
    +
    +

    Returns

    +

    True if an error occurred on the stream and sets error. False otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_t.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_t.html new file mode 100644 index 0000000000000000000000000000000000000000..ea0295a22fb2594b37bf7722271fd760591269f6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_t.html @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_t

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct _mongoc_gridfs_bucket_t mongoc_gridfs_bucket_t;
    +
    +
    +
    +
    +

    Description

    +

    mongoc_gridfs_bucket_t provides a spec-compliant MongoDB GridFS implementation, superseding mongoc_gridfs_t. See the GridFS MongoDB documentation.

    +
    +
    +

    Thread Safety

    +

    mongoc_gridfs_bucket_t is NOT thread-safe and should only be used in the same thread as the owning mongoc_client_t.

    +
    +
    +

    Lifecycle

    +

    It is an error to free a mongoc_gridfs_bucket_t before freeing all derived instances of mongoc_stream_t. The owning mongoc_client_t must outlive the mongoc_gridfs_bucket_t.

    +
    +
    +

    Example

    +
    +
    example-gridfs-bucket.c
    +
    #include <stdio.h>
    +#include <stdlib.h>
    +
    +#include <mongoc/mongoc.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   const char *uri_string =
    +      "mongodb://localhost:27017/?appname=new-gridfs-example";
    +   mongoc_client_t *client;
    +   mongoc_database_t *db;
    +   mongoc_stream_t *file_stream;
    +   mongoc_gridfs_bucket_t *bucket;
    +   mongoc_cursor_t *cursor;
    +   bson_t filter;
    +   bool res;
    +   bson_value_t file_id;
    +   bson_error_t error;
    +   const bson_t *doc;
    +   char *str;
    +   mongoc_init ();
    +
    +   if (argc != 3) {
    +      fprintf (stderr, "usage: %s SOURCE_FILE_PATH FILE_COPY_PATH\n", argv[0]);
    +      return EXIT_FAILURE;
    +   }
    +
    +   /* 1. Make a bucket. */
    +   client = mongoc_client_new (uri_string);
    +   db = mongoc_client_get_database (client, "test");
    +   bucket = mongoc_gridfs_bucket_new (db, NULL, NULL, &error);
    +   if (!bucket) {
    +      printf ("Error creating gridfs bucket: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   /* 2. Insert a file.  */
    +   file_stream = mongoc_stream_file_new_for_path (argv[1], O_RDONLY, 0);
    +   res = mongoc_gridfs_bucket_upload_from_stream (
    +      bucket, "my-file", file_stream, NULL, &file_id, &error);
    +   if (!res) {
    +      printf ("Error uploading file: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_stream_close (file_stream);
    +   mongoc_stream_destroy (file_stream);
    +
    +   /* 3. Download the file in GridFS to a local file. */
    +   file_stream = mongoc_stream_file_new_for_path (argv[2], O_CREAT | O_RDWR, 0);
    +   if (!file_stream) {
    +      perror ("Error opening file stream");
    +      return EXIT_FAILURE;
    +   }
    +
    +   res = mongoc_gridfs_bucket_download_to_stream (
    +      bucket, &file_id, file_stream, &error);
    +   if (!res) {
    +      printf ("Error downloading file to stream: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +   mongoc_stream_close (file_stream);
    +   mongoc_stream_destroy (file_stream);
    +
    +   /* 4. List what files are available in GridFS. */
    +   bson_init (&filter);
    +   cursor = mongoc_gridfs_bucket_find (bucket, &filter, NULL);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   /* 5. Delete the file that we added. */
    +   res = mongoc_gridfs_bucket_delete_by_id (bucket, &file_id, &error);
    +   if (!res) {
    +      printf ("Error deleting the file: %s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   /* 6. Cleanup. */
    +   mongoc_stream_close (file_stream);
    +   mongoc_stream_destroy (file_stream);
    +   mongoc_cursor_destroy (cursor);
    +   bson_destroy (&filter);
    +   mongoc_gridfs_bucket_destroy (bucket);
    +   mongoc_database_destroy (db);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +

    See also

    + +
    +
    The non spec-compliant mongoc_gridfs_t.
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_upload_from_stream.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_upload_from_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..7d4c6c4f30ef29573bb814ce1b2bb813bb6f0123 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_upload_from_stream.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_upload_from_stream() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_upload_from_stream()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_upload_from_stream (mongoc_gridfs_bucket_t *bucket,
    +                                         const char *filename,
    +                                         mongoc_stream_t *source,
    +                                         const bson_t *opts,
    +                                         bson_value_t *file_id,
    +                                         bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • chunkSizeBytes: An int32 chunk size to use for this file. Overrides the chunkSizeBytes set on bucket.

    • +
    • metadata: A bson_t representing metadata to include with the file.

    • +
    +
    +
    +

    Description

    +

    Reads from the source stream and writes to a new file in GridFS. The file id is generated automatically. +To specify an explicit file id, use mongoc_gridfs_bucket_upload_from_stream_with_id().

    +

    Reads from the source stream using mongoc_stream_read() until the return value indicates end-of-file. +The source stream is not closed after calling mongoc_gridfs_bucket_upload_from_stream(); call mongoc_stream_close() after.

    +
    +
    +

    Returns

    +

    True if the operation succeeded. False otherwise and sets error.

    +
    +

    See also

    +
    +
    mongoc_stream_file_new() and mongoc_stream_file_new_for_path(), which can be used to create a source stream from a file.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_bucket_upload_from_stream_with_id.html b/libmongoc/1.23.2/mongoc_gridfs_bucket_upload_from_stream_with_id.html new file mode 100644 index 0000000000000000000000000000000000000000..da6f5f49ff78a83547a344d2636d11266308b511 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_bucket_upload_from_stream_with_id.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_upload_from_stream_with_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_upload_from_stream_with_id()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_upload_from_stream_with_id (mongoc_gridfs_bucket_t *bucket,
    +                                                 const bson_value_t *file_id,
    +                                                 const char *filename,
    +                                                 mongoc_stream_t *source,
    +                                                 const bson_t *opts,
    +                                                 bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +

    opts may be NULL or a BSON document with additional command options:

    +
      +
    • chunkSizeBytes: An int32 chunk size to use for this file. Overrides the chunkSizeBytes set on bucket.

    • +
    • metadata: A bson_t representing metadata to include with the file.

    • +
    +
    +
    +

    Description

    +

    Reads from the source stream and writes to a new file in GridFS. +To have libmongoc generate an id, use mongoc_gridfs_bucket_upload_from_stream().

    +

    Reads from the source stream using mongoc_stream_read() until the return value indicates end-of-file. +The source stream is not closed after calling mongoc_gridfs_bucket_upload_from_stream(); call mongoc_stream_close() after.

    +
    +
    +

    Returns

    +

    True if the operation succeeded. False otherwise and sets error.

    +
    +

    See also

    +
    +
    mongoc_stream_file_new() and mongoc_stream_file_new_for_path(), which can be used to create a source stream from a file.
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_create_file.html b/libmongoc/1.23.2/mongoc_gridfs_create_file.html new file mode 100644 index 0000000000000000000000000000000000000000..05ded9cecb21f650a390a62a453ac7139a401823 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_create_file.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_gridfs_create_file() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_create_file()

    +
    +

    Synopsis

    +
    mongoc_gridfs_file_t *
    +mongoc_gridfs_create_file (mongoc_gridfs_t *gridfs,
    +                           mongoc_gridfs_file_opt_t *opt)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall create a new mongoc_gridfs_file_t.

    +

    Use mongoc_gridfs_file_writev() to write to the file.

    +
    +
    +

    Returns

    +

    Returns a newly allocated mongoc_gridfs_file_t that should be freed with mongoc_gridfs_file_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_create_file_from_stream.html b/libmongoc/1.23.2/mongoc_gridfs_create_file_from_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..bc1efda3c0791e57d0eb34ea1d52c02823a34326 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_create_file_from_stream.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_gridfs_create_file_from_stream() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_create_file_from_stream()

    +
    +

    Synopsis

    +
    mongoc_gridfs_file_t *
    +mongoc_gridfs_create_file_from_stream (mongoc_gridfs_t *gridfs,
    +                                       mongoc_stream_t *stream,
    +                                       mongoc_gridfs_file_opt_t *opt)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall create a new mongoc_gridfs_file_t and fill it with the contents of stream. Note that this function will read from stream until End of File, making it best suited for file-backed streams.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_gridfs_file_t that should be freed with mongoc_gridfs_file_destroy() when no longer in use. +Returns NULL and logs an error message if there is a network or server error writing data to the MongoDB server.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_destroy.html b/libmongoc/1.23.2/mongoc_gridfs_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..56d61c9415e00eedf8052ce72606994eaaab0d4d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_gridfs_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_destroy (mongoc_gridfs_t *gridfs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall destroy the gridfs structure referenced by gridfs and any resources associated with the gridfs. Does nothing if gridfs is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_drop.html b/libmongoc/1.23.2/mongoc_gridfs_drop.html new file mode 100644 index 0000000000000000000000000000000000000000..84cbe2f391dbc79ca4a4bd0de133624b1825ef85 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_drop.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_gridfs_drop() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_drop()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_drop (mongoc_gridfs_t *gridfs, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Requests that an entire GridFS be dropped, including all files associated with it.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_destroy.html b/libmongoc/1.23.2/mongoc_gridfs_file_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..c119fcf0e6bf097cc227af87c2a493e97078a4aa --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_file_destroy (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Destroys the mongoc_gridfs_file_t instance and any resources associated with it. Does nothing if file is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_error.html b/libmongoc/1.23.2/mongoc_gridfs_file_error.html new file mode 100644 index 0000000000000000000000000000000000000000..8184a9dda80035070e4dfce3da7d080bdb5b7677 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_error.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_error()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_file_error (mongoc_gridfs_file_t *file, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function checks to see if there has been an error associated with the last operation upon file.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns false if there has been no registered error, otherwise true and error is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_aliases.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_aliases.html new file mode 100644 index 0000000000000000000000000000000000000000..7369f2dd5c137a3f8567b1264e1f3e01ec5e591c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_aliases.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_aliases() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_aliases()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_gridfs_file_get_aliases (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the aliases associated with a gridfs file.

    +
    +
    +

    Returns

    +

    Returns a bson_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_chunk_size.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_chunk_size.html new file mode 100644 index 0000000000000000000000000000000000000000..6a750e6bfc35b061fa6fd3ffa58d28c299640445 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_chunk_size.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_chunk_size() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_chunk_size()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_gridfs_file_get_chunk_size (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the chunk size used with the underlying gridfs file.

    +
    +
    +

    Returns

    +

    A signed 32-bit integer.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_content_type.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_content_type.html new file mode 100644 index 0000000000000000000000000000000000000000..43eec359c4f8f6c0b822f63d267a06e7fe30d0da --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_content_type.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_content_type() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_content_type()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_gridfs_file_get_content_type (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the content type specified for the underlying file.

    +
    +
    +

    Returns

    +

    Returns a string which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_filename.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..5228f23b197d350330a984a02f38fa53ca1dd523 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_filename.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_filename() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_filename()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_gridfs_file_get_filename (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the filename for the given gridfs file.

    +
    +
    +

    Returns

    +

    A string which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_id.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_id.html new file mode 100644 index 0000000000000000000000000000000000000000..9c3fcaad19b65f3c912c856ed4132cd784978570 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_id.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_id()

    +
    +

    Synopsis

    +
    const bson_value_t *
    +mongoc_gridfs_file_get_id (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the id of a gridfs file.

    +

    The C Driver always uses an ObjectId for _id, but files created by other drivers may have any type of _id.

    +
    +
    +

    Returns

    +

    Returns a bson_value_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_length.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_length.html new file mode 100644 index 0000000000000000000000000000000000000000..3a9091184858dd297710ffa19c9f611371bb9252 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_length.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_length() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_length()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_gridfs_file_get_length (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the length of the gridfs file in bytes.

    +
    +
    +

    Returns

    +

    A 64-bit signed integer.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_md5.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_md5.html new file mode 100644 index 0000000000000000000000000000000000000000..883fbdc098dbe023d61ca4e42bdd5ae02277dd79 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_md5.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_md5() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_md5()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_gridfs_file_get_md5 (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the pre-computed MD5 for the underlying gridfs file.

    +
    +
    +

    Returns

    +

    Returns a string that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_metadata.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_metadata.html new file mode 100644 index 0000000000000000000000000000000000000000..3af6cc357f2ad1258098c5b04f0737539a8d7d9f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_metadata.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_metadata() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_metadata()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_gridfs_file_get_metadata (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a bson document containing the metadata for the gridfs file.

    +
    +
    +

    Returns

    +

    Returns a bson_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_get_upload_date.html b/libmongoc/1.23.2/mongoc_gridfs_file_get_upload_date.html new file mode 100644 index 0000000000000000000000000000000000000000..e465498fb7c367830a471f28f3d522afc0e47902 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_get_upload_date.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_upload_date() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_get_upload_date()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_gridfs_file_get_upload_date (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the specified upload date of the gridfs file in milliseconds since the UNIX epoch.

    +
    +
    +

    Returns

    +

    A signed int64 with the upload date in milliseconds since the UNIX epoch.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_list_destroy.html b/libmongoc/1.23.2/mongoc_gridfs_file_list_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..84004f4d37a3e46146f58c076e128e12410310cf --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_list_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_list_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_file_list_destroy (mongoc_gridfs_file_list_t *list);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees a mongoc_gridfs_file_list_t and releases any associated resources. Does nothing if list is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_list_error.html b/libmongoc/1.23.2/mongoc_gridfs_file_list_error.html new file mode 100644 index 0000000000000000000000000000000000000000..8ddb584f1a6888953bec13219cc7f61b58b7ff66 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_list_error.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_list_error()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_file_list_error (mongoc_gridfs_file_list_t *list,
    +                               bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches any error that has occurred while trying to retrieve the file list.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    false if no error has been registered, otherwise true and error is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_list_next.html b/libmongoc/1.23.2/mongoc_gridfs_file_list_next.html new file mode 100644 index 0000000000000000000000000000000000000000..ebb67529b0fdd86f36715553bb1104eb18fde025 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_list_next.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_next() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_list_next()

    +
    +

    Synopsis

    +
    mongoc_gridfs_file_t *
    +mongoc_gridfs_file_list_next (mongoc_gridfs_file_list_t *list)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall iterate the underlying gridfs file list, returning the next file each iteration. This is a blocking function.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_gridfs_file_t that should be freed with mongoc_gridfs_file_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_list_t.html b/libmongoc/1.23.2/mongoc_gridfs_file_list_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f6245fc746c1e2f563722efeceb95094a34845fd --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_list_t.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_list_t

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct _mongoc_gridfs_file_list_t mongoc_gridfs_file_list_t;
    +
    +
    +
    +
    +

    Description

    +

    mongoc_gridfs_file_list_t provides a gridfs file list abstraction. It provides iteration and basic marshalling on top of a regular mongoc_collection_find_with_opts() style query. In interface, it’s styled after mongoc_cursor_t.

    +
    +
    +

    Example

    +
    mongoc_gridfs_file_list_t *list;
    +mongoc_gridfs_file_t *file;
    +
    +list = mongoc_gridfs_find (gridfs, query);
    +
    +while ((file = mongoc_gridfs_file_list_next (list))) {
    +   do_something (file);
    +
    +   mongoc_gridfs_file_destroy (file);
    +}
    +
    +mongoc_gridfs_file_list_destroy (list);
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_opt_t.html b/libmongoc/1.23.2/mongoc_gridfs_file_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0102138248f02ef4aa9e12a74a9f45517fb141b1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_opt_t.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_opt_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_opt_t

    +
    +

    Synopsis

    +
    typedef struct {
    +   const char *md5;
    +   const char *filename;
    +   const char *content_type;
    +   const bson_t *aliases;
    +   const bson_t *metadata;
    +   uint32_t chunk_size;
    +} mongoc_gridfs_file_opt_t;
    +
    +
    +
    +
    +

    Description

    +

    This structure contains options that can be set on a mongoc_gridfs_file_t. It can be used by various functions when creating a new gridfs file.

    +
    +
    +

    Functions

    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_readv.html b/libmongoc/1.23.2/mongoc_gridfs_file_readv.html new file mode 100644 index 0000000000000000000000000000000000000000..f5ac0db54bec7a2ee634d3a39e429a160eb64626 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_readv.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_readv() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_readv()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_gridfs_file_readv (mongoc_gridfs_file_t *file,
    +                          mongoc_iovec_t *iov,
    +                          size_t iovcnt,
    +                          size_t min_bytes,
    +                          uint32_t timeout_msec);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • file: A mongoc_gridfs_file_t.

    • +
    • iov: An array of mongoc_iovec_t.

    • +
    • iovcnt: The number of elements in iov.

    • +
    • min_bytes: The minimum number of bytes that must be read or an error will be synthesized.

    • +
    • timeout_msec: Unused.

    • +
    +
    +
    +

    Description

    +

    This function performs a scattered read from file, potentially blocking to read from the MongoDB server.

    +

    The timeout_msec parameter is unused.

    +
    +
    +

    Returns

    +

    Returns the number of bytes read, or -1 on failure. Use mongoc_gridfs_file_error() to retrieve error details.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_remove.html b/libmongoc/1.23.2/mongoc_gridfs_file_remove.html new file mode 100644 index 0000000000000000000000000000000000000000..ab9fbd985cf890449171044f1bc5caabcd66045e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_remove.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_remove() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_remove()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_file_remove (mongoc_gridfs_file_t *file, bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Removes file and its data chunks from the MongoDB server.

    +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_save.html b/libmongoc/1.23.2/mongoc_gridfs_file_save.html new file mode 100644 index 0000000000000000000000000000000000000000..acbe8af5bd29aadc5f1d4f08ee5d8b1924eb11d0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_save.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_save() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_save()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_file_save (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Saves modifications to file to the MongoDB server.

    +

    If an error occurred, false is returned and the error can be retrieved with mongoc_gridfs_file_error().

    +

    Modifying GridFS files is NOT thread-safe. Only one thread or process can access a GridFS file while it is being modified.

    +
    +
    +

    Returns

    +

    Returns true if successful, otherwise false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_seek.html b/libmongoc/1.23.2/mongoc_gridfs_file_seek.html new file mode 100644 index 0000000000000000000000000000000000000000..7da6aedd506c454f8565a5297691e77c1bcfc828 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_seek.html @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_seek() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_seek()

    +
    +

    Synopsis

    +
    int
    +mongoc_gridfs_file_seek (mongoc_gridfs_file_t *file, int64_t delta, int whence);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • file: A mongoc_gridfs_file_t.

    • +
    • delta: The amount to move the file position. May be positive or negative.

    • +
    • whence: One of SEEK_SET, SEEK_CUR or SEEK_END.

    • +
    +
    +
    +

    Description

    +

    Adjust the file position pointer in the given file by delta, starting from the position whence. The whence argument is interpreted as in fseek(2):

    + + + + + + + + + + + + +

    SEEK_SET

    Set the position relative to the start of the file.

    SEEK_CUR

    Move delta relative to the current file position.

    SEEK_END

    Move delta relative to the end of the file.

    +

    On success, the file’s underlying position pointer is set appropriately. On failure, the file position is NOT changed and errno is set to indicate the error.

    +
    +
    +

    Errors

    + + + + + + + + + +

    EINVAL

    whence is not one of SEEK_SET, SEEK_CUR or SEEK_END.

    EINVAL

    The resulting file position would be negative.

    +
    +
    +

    Returns

    +

    Returns 0 if successful; otherwise -1 and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_set_aliases.html b/libmongoc/1.23.2/mongoc_gridfs_file_set_aliases.html new file mode 100644 index 0000000000000000000000000000000000000000..5779aac0d4ea88d22d4bbc8065da8db6a29d1655 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_set_aliases.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_aliases() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_set_aliases()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_file_set_aliases (mongoc_gridfs_file_t *file, const bson_t *bson);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the aliases for a gridfs file.

    +

    You need to call mongoc_gridfs_file_save() to persist this change.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_set_content_type.html b/libmongoc/1.23.2/mongoc_gridfs_file_set_content_type.html new file mode 100644 index 0000000000000000000000000000000000000000..64d3f35b316c8e549729a2b2993befa3c102bcb2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_set_content_type.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_content_type() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_set_content_type()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_file_set_content_type (mongoc_gridfs_file_t *file,
    +                                     const char *content_type);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the content type for the gridfs file. This should be something like "text/plain".

    +

    You need to call mongoc_gridfs_file_save() to persist this change.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_set_filename.html b/libmongoc/1.23.2/mongoc_gridfs_file_set_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..0f404ec9f9279d7d807768a89dabc4fba0897cb0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_set_filename.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_filename() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_set_filename()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_file_set_filename (mongoc_gridfs_file_t *file,
    +                                 const char *filename);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the filename for file.

    +

    You need to call mongoc_gridfs_file_save() to persist this change.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_set_id.html b/libmongoc/1.23.2/mongoc_gridfs_file_set_id.html new file mode 100644 index 0000000000000000000000000000000000000000..dbe0f2de39f351d10da1f3b1dbceb36c5c594a7c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_set_id.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_set_id()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_file_set_id (mongoc_gridfs_file_t *file,
    +                           const bson_value_t *id,
    +                           bson_error_t error);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the id of file to any BSON type.

    +

    If an error occurred, false is returned.

    +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_set_md5.html b/libmongoc/1.23.2/mongoc_gridfs_file_set_md5.html new file mode 100644 index 0000000000000000000000000000000000000000..03372e395961438971b81b7281d45f1f4a520b60 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_set_md5.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_md5() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_set_md5()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_file_set_md5 (mongoc_gridfs_file_t *file, const char *md5);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the MD5 checksum for file.

    +

    You need to call mongoc_gridfs_file_save() to persist this change.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_set_metadata.html b/libmongoc/1.23.2/mongoc_gridfs_file_set_metadata.html new file mode 100644 index 0000000000000000000000000000000000000000..171b2585f57c7156e12ef6423d9f7fbb3dfd074b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_set_metadata.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_metadata() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_set_metadata()

    +
    +

    Synopsis

    +
    void
    +mongoc_gridfs_file_set_metadata (mongoc_gridfs_file_t *file,
    +                                 const bson_t *metadata);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the metadata associated with file.

    +

    You need to call mongoc_gridfs_file_save() to persist this change.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_t.html b/libmongoc/1.23.2/mongoc_gridfs_file_t.html new file mode 100644 index 0000000000000000000000000000000000000000..af001b6fce02ed80f1ef4f6e3c1893a2bea219e5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_t.html @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_gridfs_file_t mongoc_gridfs_file_t;
    +
    +
    +
    +
    +

    Description

    +

    This structure provides a MongoDB GridFS file abstraction. It provides several APIs.

    +
      +
    • readv, writev, seek, and tell.

    • +
    • General file metadata such as filename and length.

    • +
    • GridFS metadata such as md5, filename, content_type, aliases, metadata, chunk_size, and upload_date.

    • +
    +
    +
    +

    Thread Safety

    +

    This structure is NOT thread-safe and should only be used from one thread at a time.

    +
    +
    +

    Functions

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_tell.html b/libmongoc/1.23.2/mongoc_gridfs_file_tell.html new file mode 100644 index 0000000000000000000000000000000000000000..3a43afbaa7837c51319f252760d94b8da181c74b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_tell.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_tell() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_tell()

    +
    +

    Synopsis

    +
    uint64_t
    +mongoc_gridfs_file_tell (mongoc_gridfs_file_t *file);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function returns the current position indicator within file.

    +
    +
    +

    Returns

    +

    Returns a file position as an unsigned 64-bit integer.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_file_writev.html b/libmongoc/1.23.2/mongoc_gridfs_file_writev.html new file mode 100644 index 0000000000000000000000000000000000000000..d7261bfa7b0fa8debce4aaeca8811659e15826bd --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_file_writev.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_writev() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_file_writev()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_gridfs_file_writev (mongoc_gridfs_file_t *file,
    +                           const mongoc_iovec_t *iov,
    +                           size_t iovcnt,
    +                           uint32_t timeout_msec);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a gathered write to the underlying gridfs file.

    +

    The timeout_msec parameter is unused.

    +

    Modifying GridFS files is NOT thread-safe. Only one thread or process can access a GridFS file while it is being modified.

    +
    +
    +

    Returns

    +

    Returns the number of bytes written, or -1 on failure. Use mongoc_gridfs_file_error() to retrieve error details.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_find.html b/libmongoc/1.23.2/mongoc_gridfs_find.html new file mode 100644 index 0000000000000000000000000000000000000000..2b0996a7fe1120c806ce6d3f63086d05da35faa4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_find.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_gridfs_find() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_find()

    +
    +

    Deprecated

    +

    This function is deprecated, use mongoc_gridfs_find_with_opts() instead.

    +
    +
    +

    Synopsis

    +
    mongoc_gridfs_file_list_t *
    +mongoc_gridfs_find (mongoc_gridfs_t *gridfs,
    +                    const bson_t *query) BSON_GNUC_WARN_UNUSED_RESULT
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_gridfs_find_with_opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Finds all gridfs files matching query. You can iterate the matched gridfs files with the resulting file list.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_gridfs_file_list_t that should be freed with mongoc_gridfs_file_list_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_find_one.html b/libmongoc/1.23.2/mongoc_gridfs_find_one.html new file mode 100644 index 0000000000000000000000000000000000000000..367e99ae3ff332667d2da06ce25eec3297e361f9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_find_one.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_one() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_find_one()

    +
    +

    Deprecated

    +

    This function is deprecated, use mongoc_gridfs_find_one_with_opts() instead.

    +
    +
    +

    Synopsis

    +
    mongoc_gridfs_file_t *
    +mongoc_gridfs_find_one (mongoc_gridfs_t *gridfs,
    +                        const bson_t *query,
    +                        bson_error_t *error) BSON_GNUC_WARN_UNUSED_RESULT
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_gridfs_find_one_with_opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall execute a query on the underlying gridfs implementation. The first file matching query will be returned. If there is an error, NULL is returned and error is filled out; if there is no error but no matching file is found, NULL is returned and the error code and domain are 0.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_gridfs_file_t or NULL if no file could be found. You must free the resulting file with mongoc_gridfs_file_destroy() if non-NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_find_one_by_filename.html b/libmongoc/1.23.2/mongoc_gridfs_find_one_by_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..e518d5e23e65a4a4411f67f59e02a358e66fe315 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_find_one_by_filename.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_one_by_filename() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_find_one_by_filename()

    +
    +

    Synopsis

    +
    mongoc_gridfs_file_t *
    +mongoc_gridfs_find_one_by_filename (mongoc_gridfs_t *gridfs,
    +                                    const char *filename,
    +                                    bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • gridfs: A mongoc_gridfs_t.

    • +
    • filename: A UTF-8 encoded string containing the filename.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    Finds the first file matching the filename specified. If there is an error, NULL is returned and error is filled out; if there is no error but no matching file is found, NULL is returned and the error code and domain are 0.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns a newly allocated mongoc_gridfs_file_t if successful. You must free the resulting file with mongoc_gridfs_file_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_find_one_with_opts.html b/libmongoc/1.23.2/mongoc_gridfs_find_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..5e2e11c8ae7ddc403ee4c0088bcc46b17ca715b6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_find_one_with_opts.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_one_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_find_one_with_opts()

    +
    +

    Synopsis

    +
    mongoc_gridfs_file_t *
    +mongoc_gridfs_find_one_with_opts (mongoc_gridfs_t *gridfs,
    +                                  const bson_t *filter,
    +                                  const bson_t *opts,
    +                                  bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • gridfs: A mongoc_gridfs_t.

    • +
    • filter: A bson_t containing the query to execute.

    • +
    • opts: A bson_t query options, including sort order and which fields to return. Can be NULL.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    Find the first GridFS file matching filter. If there is an error, NULL is returned and error is filled out; if there is no error but no matching file is found, NULL is returned and the error code and domain are 0.

    +

    See mongoc_collection_find_with_opts() for a description of the filter and opts parameters.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    Returns a newly allocated mongoc_gridfs_file_t if successful. You must free the resulting file with mongoc_gridfs_file_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_find_with_opts.html b/libmongoc/1.23.2/mongoc_gridfs_find_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..212123ed0dbf951d6d7d5f30d6e0bd38b79fe7ad --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_find_with_opts.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_with_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_find_with_opts()

    +
    +

    Synopsis

    +
    mongoc_gridfs_file_list_t *
    +mongoc_gridfs_find_with_opts (mongoc_gridfs_t *gridfs,
    +                              const bson_t *filter,
    +                              const bson_t *opts) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • gridfs: A mongoc_gridfs_t.

    • +
    • filter: A bson_t containing the query to execute.

    • +
    • opts: A bson_t query options, including sort order and which fields to return. Can be NULL.

    • +
    +
    +
    +

    Description

    +

    Finds all gridfs files matching filter. You can iterate the matched gridfs files with the resulting file list.

    +

    See mongoc_collection_find_with_opts() for a description of the filter and opts parameters.

    +

    This function is considered a retryable read operation. +Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. +If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_gridfs_file_list_t that should be freed with mongoc_gridfs_file_list_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_get_chunks.html b/libmongoc/1.23.2/mongoc_gridfs_get_chunks.html new file mode 100644 index 0000000000000000000000000000000000000000..324ce356b4dae785c5a3fd7d55123ec881b18152 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_get_chunks.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_get_chunks() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_get_chunks()

    +
    +

    Synopsis

    +
    mongoc_collection_t *
    +mongoc_gridfs_get_chunks (mongoc_gridfs_t *gridfs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Returns a mongoc_collection_t that contains the chunks for files. This instance is owned by the mongoc_gridfs_t instance and should not be modified or freed.

    +
    +
    +

    Returns

    +

    Returns a mongoc_collection_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_get_files.html b/libmongoc/1.23.2/mongoc_gridfs_get_files.html new file mode 100644 index 0000000000000000000000000000000000000000..3828e2bad38c3b488a50d30e551653d7681c1e4c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_get_files.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_get_files() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_get_files()

    +
    +

    Synopsis

    +
    mongoc_collection_t *
    +mongoc_gridfs_get_files (mongoc_gridfs_t *gridfs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Retrieves the mongoc_collection_t containing the file metadata for GridFS. This instance is owned by the mongoc_gridfs_t and should not be modified or freed.

    +
    +
    +

    Returns

    +

    Returns a mongoc_collection_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_remove_by_filename.html b/libmongoc/1.23.2/mongoc_gridfs_remove_by_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..e335d02e11c3441a7cb8a48a5009e56a8313974a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_remove_by_filename.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_gridfs_remove_by_filename() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_remove_by_filename()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_remove_by_filename (mongoc_gridfs_t *gridfs,
    +                                  const char *filename,
    +                                  bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • gridfs: A mongoc_gridfs_t.

    • +
    • filename: A UTF-8 encoded string containing the filename.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    Removes all files matching filename and their data chunks from the MongoDB server.

    +
    +
    +

    Returns

    +

    Returns true if successful, including when no files match. Returns false and sets error if there are invalid arguments or a server or network error.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_gridfs_t.html b/libmongoc/1.23.2/mongoc_gridfs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0c155aee878a3d2fcb04d429156b1a74377dad54 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_gridfs_t.html @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + mongoc_gridfs_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_t

    +
    +

    Warning

    +

    This GridFS implementation does not conform to the MongoDB GridFS specification. For a spec compliant implementation, use mongoc_gridfs_bucket_t.

    +
    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct _mongoc_gridfs_t mongoc_gridfs_t;
    +
    +
    +
    +
    +

    Description

    +

    mongoc_gridfs_t provides a MongoDB gridfs implementation. The system as a whole is made up of gridfs objects, which contain gridfs_files and gridfs_file_lists. Essentially, a basic file system API.

    +

    There are extensive caveats about the kind of use cases gridfs is practical for. In particular, any writing after initial file creation is likely to both break any concurrent readers and be quite expensive. That said, this implementation does allow for arbitrary writes to existing gridfs object, just use them with caution.

    +

    mongoc_gridfs also integrates tightly with the mongoc_stream_t abstraction, which provides some convenient wrapping for file creation and reading/writing. It can be used without, but its worth looking to see if your problem can fit that model.

    +
    +

    Warning

    +

    mongoc_gridfs_t does not support read preferences. In a replica set, GridFS queries are always routed to the primary.

    +
    +
    +
    +

    Thread Safety

    +

    mongoc_gridfs_t is NOT thread-safe and should only be used in the same thread as the owning mongoc_client_t.

    +
    +
    +

    Lifecycle

    +

    It is an error to free a mongoc_gridfs_t before freeing all related instances of mongoc_gridfs_file_t and mongoc_gridfs_file_list_t.

    +
    +
    +

    Example

    +
    +
    example-gridfs.c
    +
    #include <assert.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +#include <fcntl.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_gridfs_t *gridfs;
    +   mongoc_gridfs_file_t *file;
    +   mongoc_gridfs_file_list_t *list;
    +   mongoc_gridfs_file_opt_t opt = {0};
    +   mongoc_client_t *client;
    +   const char *uri_string = "mongodb://127.0.0.1:27017/?appname=gridfs-example";
    +   mongoc_uri_t *uri;
    +   mongoc_stream_t *stream;
    +   bson_t filter;
    +   bson_t opts;
    +   bson_t child;
    +   bson_error_t error;
    +   ssize_t r;
    +   char buf[4096];
    +   mongoc_iovec_t iov;
    +   const char *filename;
    +   const char *command;
    +   bson_value_t id;
    +
    +   if (argc < 2) {
    +      fprintf (stderr, "usage - %s command ...\n", argv[0]);
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_init ();
    +
    +   iov.iov_base = (void *) buf;
    +   iov.iov_len = sizeof buf;
    +
    +   /* connect to localhost client */
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   assert (client);
    +   mongoc_client_set_error_api (client, 2);
    +
    +   /* grab a gridfs handle in test prefixed by fs */
    +   gridfs = mongoc_client_get_gridfs (client, "test", "fs", &error);
    +   assert (gridfs);
    +
    +   command = argv[1];
    +   filename = argv[2];
    +
    +   if (strcmp (command, "read") == 0) {
    +      if (argc != 3) {
    +         fprintf (stderr, "usage - %s read filename\n", argv[0]);
    +         return EXIT_FAILURE;
    +      }
    +      file = mongoc_gridfs_find_one_by_filename (gridfs, filename, &error);
    +      assert (file);
    +
    +      stream = mongoc_stream_gridfs_new (file);
    +      assert (stream);
    +
    +      for (;;) {
    +         r = mongoc_stream_readv (stream, &iov, 1, -1, 0);
    +
    +         assert (r >= 0);
    +
    +         if (r == 0) {
    +            break;
    +         }
    +
    +         if (fwrite (iov.iov_base, 1, r, stdout) != r) {
    +            MONGOC_ERROR ("Failed to write to stdout. Exiting.\n");
    +            exit (1);
    +         }
    +      }
    +
    +      mongoc_stream_destroy (stream);
    +      mongoc_gridfs_file_destroy (file);
    +   } else if (strcmp (command, "list") == 0) {
    +      bson_init (&filter);
    +
    +      bson_init (&opts);
    +      bson_append_document_begin (&opts, "sort", -1, &child);
    +      BSON_APPEND_INT32 (&child, "filename", 1);
    +      bson_append_document_end (&opts, &child);
    +
    +      list = mongoc_gridfs_find_with_opts (gridfs, &filter, &opts);
    +
    +      bson_destroy (&filter);
    +      bson_destroy (&opts);
    +
    +      while ((file = mongoc_gridfs_file_list_next (list))) {
    +         const char *name = mongoc_gridfs_file_get_filename (file);
    +         printf ("%s\n", name ? name : "?");
    +
    +         mongoc_gridfs_file_destroy (file);
    +      }
    +
    +      mongoc_gridfs_file_list_destroy (list);
    +   } else if (strcmp (command, "write") == 0) {
    +      if (argc != 4) {
    +         fprintf (stderr, "usage - %s write filename input_file\n", argv[0]);
    +         return EXIT_FAILURE;
    +      }
    +
    +      stream = mongoc_stream_file_new_for_path (argv[3], O_RDONLY, 0);
    +      assert (stream);
    +
    +      opt.filename = filename;
    +
    +      /* the driver generates a file_id for you */
    +      file = mongoc_gridfs_create_file_from_stream (gridfs, stream, &opt);
    +      assert (file);
    +
    +      id.value_type = BSON_TYPE_INT32;
    +      id.value.v_int32 = 1;
    +
    +      /* optional: the following method specifies a file_id of any
    +         BSON type */
    +      if (!mongoc_gridfs_file_set_id (file, &id, &error)) {
    +         fprintf (stderr, "%s\n", error.message);
    +         return EXIT_FAILURE;
    +      }
    +
    +      if (!mongoc_gridfs_file_save (file)) {
    +         mongoc_gridfs_file_error (file, &error);
    +         fprintf (stderr, "Could not save: %s\n", error.message);
    +         return EXIT_FAILURE;
    +      }
    +
    +      mongoc_gridfs_file_destroy (file);
    +   } else {
    +      fprintf (stderr, "Unknown command");
    +      return EXIT_FAILURE;
    +   }
    +
    +   mongoc_gridfs_destroy (gridfs);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +

    See also

    + +
    +
    The spec-compliant mongoc_gridfs_bucket_t.
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_handshake_data_append.html b/libmongoc/1.23.2/mongoc_handshake_data_append.html new file mode 100644 index 0000000000000000000000000000000000000000..50788d082af438a9ed27af1e45e937a33a2dd3c6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_handshake_data_append.html @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + mongoc_handshake_data_append() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_handshake_data_append()

    +
    +

    Synopsis

    +
    bool
    +mongoc_handshake_data_append (const char *driver_name,
    +                              const char *driver_version,
    +                              const char *platform);
    +
    +
    +

    Appends the given strings to the handshake data for the underlying C Driver.

    +
    +
    +

    Description

    +

    This function is intended for use by drivers which wrap the C Driver. +Calling this function will store the given strings as handshake data about +the system and driver by appending them to the handshake data for the +underlying C Driver. These values, along with other handshake data collected +during mongoc_init will be sent to the server as part of the initial +connection handshake in the “client” document. This function must not be +called more than once, or after server monitoring begins. For a single-threaded +mongoc_client_t, server monitoring begins on the first operation +requiring a server. For a mongoc_client_pool_t, server monitoring +begins on the first call to :symbol:`mongoc_client_pool_pop.

    +

    The passed in strings are copied, and don’t have to remain valid after the +call to mongoc_handshake_data_append(). The driver may store truncated +versions of the passed in strings.

    +
    +

    Note

    +

    This function allocates memory, and therefore caution should be used when +using this in conjunction with bson_mem_set_vtable(). If this function is +called before bson_mem_set_vtable(), then bson_mem_restore_vtable() must be +called before calling mongoc_cleanup(). Failure to do so will result in +memory being freed by the wrong allocator.

    +
    +
    +
    +

    Parameters

    +
      +
    • driver_name: An optional string storing the name of the wrapping driver

    • +
    • driver_version: An optional string storing the version of the wrapping driver.

    • +
    • platform: An optional string storing any information about the current platform, for example configure options or compile flags.

    • +
    +
    +
    +

    Returns

    +

    true if the given fields are set successfully. Otherwise, it returns false and logs an error.

    +

    The default handshake data the driver sends with “hello” looks something +like:

    +
    client: {
    +  driver: {
    +    name: "mongoc",
    +    version: "1.5.0"
    +  },
    +  os: {...},
    +  platform: "CC=gcc CFLAGS=-Wall -pedantic"
    +}
    +
    +
    +

    If we call +mongoc_handshake_data_append() (“phongo”, “1.1.8”, “CC=clang / “) +and it returns true, the driver sends handshake data like:

    +
    client: {
    +  driver: {
    +    name: "mongoc / phongo",
    +    version: "1.5.0 / 1.1.8"
    +  },
    +  os: {...},
    +  platform: "CC=clang / gcc CFLAGS=-Wall -pedantic"
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_host_list_t.html b/libmongoc/1.23.2/mongoc_host_list_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a381fea421d182891e026f8807c2bfb2dce8917a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_host_list_t.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_host_list_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_host_list_t

    +
    +

    Synopsis

    +
    typedef struct {
    +   mongoc_host_list_t *next;
    +   char host[BSON_HOST_NAME_MAX + 1];
    +   char host_and_port[BSON_HOST_NAME_MAX + 7];
    +   uint16_t port;
    +   int family;
    +   void *padding[4];
    +} mongoc_host_list_t;
    +
    +
    +
    +
    +

    Description

    +

    The host and port of a MongoDB server. Can be part of a linked list: for example the return value of mongoc_uri_get_hosts() when multiple hosts are provided in the MongoDB URI.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_geo_get_default.html b/libmongoc/1.23.2/mongoc_index_opt_geo_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..a5eeae81159538d659b068803002bb51143a026f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_geo_get_default.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_index_opt_geo_get_default() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_geo_get_default()

    +
    +

    Synopsis

    +
    const mongoc_index_opt_geo_t *
    +mongoc_index_opt_geo_get_default (void) BSON_GNUC_PURE;
    +
    +
    +
    +
    +

    Returns

    +

    Returns a pointer to the default GEO index creation options.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_geo_init.html b/libmongoc/1.23.2/mongoc_index_opt_geo_init.html new file mode 100644 index 0000000000000000000000000000000000000000..f60ddc85ad5dce4d4a5e710a3fbb64529d8472cb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_geo_init.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_index_opt_geo_init() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_geo_init()

    +
    +

    Synopsis

    +
    void
    +mongoc_index_opt_geo_init (mongoc_index_opt_geo_t *opt);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function will initialize opt to the default values. It should be called before modifying any fields within the structure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_geo_t.html b/libmongoc/1.23.2/mongoc_index_opt_geo_t.html new file mode 100644 index 0000000000000000000000000000000000000000..d19c06ed6642b0be13cd15cca95a7d213f620d5f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_geo_t.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_index_opt_geo_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_geo_t

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct {
    +   uint8_t twod_sphere_version;
    +   uint8_t twod_bits_precision;
    +   double twod_location_min;
    +   double twod_location_max;
    +   double haystack_bucket_size;
    +   uint8_t *padding[32];
    +} mongoc_index_opt_geo_t;
    +
    +
    +
    +
    +

    Description

    +

    This structure contains the options that may be used for tuning a GEO index.

    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_get_default.html b/libmongoc/1.23.2/mongoc_index_opt_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..967d38926ee57e69fceb3894f396f656c0037c48 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_get_default.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_index_opt_get_default() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_get_default()

    +
    +

    Synopsis

    +
    const mongoc_index_opt_t *
    +mongoc_index_opt_get_default (void) BSON_GNUC_PURE;
    +
    +
    +
    +
    +

    Returns

    +

    Returns a pointer to the default index creation options.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_init.html b/libmongoc/1.23.2/mongoc_index_opt_init.html new file mode 100644 index 0000000000000000000000000000000000000000..8d0111c0a5fbb267902b84b8c5402839b3da2c6b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_init.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_index_opt_init() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_init()

    +
    +

    Synopsis

    +
    void
    +mongoc_index_opt_init (mongoc_index_opt_t *opt);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function will initialize opt to the default values. It should be called before modifying any fields within the structure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_t.html b/libmongoc/1.23.2/mongoc_index_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5e0973ed7def73bbec69c0324305634822b33e6c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_t.html @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + mongoc_index_opt_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_t

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct {
    +   bool is_initialized;
    +   bool background;
    +   bool unique;
    +   const char *name;
    +   bool drop_dups;
    +   bool sparse;
    +   int32_t expire_after_seconds;
    +   int32_t v;
    +   const bson_t *weights;
    +   const char *default_language;
    +   const char *language_override;
    +   mongoc_index_opt_geo_t *geo_options;
    +   mongoc_index_opt_storage_t *storage_options;
    +   const bson_t *partial_filter_expression;
    +   const bson_t *collation;
    +   void *padding[4];
    +} mongoc_index_opt_t;
    +
    +
    +
    +
    +

    Deprecated

    +

    This structure is deprecated and should not be used in new code. See Creating Indexes.

    +
    +
    +

    Description

    +

    This structure contains the options that may be used for tuning a specific index.

    +

    See the createIndexes documentations in the MongoDB manual for descriptions of individual options.

    +
    +

    Note

    +

    dropDups is deprecated as of MongoDB version 3.0.0. This option is silently ignored by the server and unique index builds using this option will fail if a duplicate value is detected.

    +
    +
    +
    +

    Example

    +
    {
    +   bson_t keys;
    +   bson_error_t error;
    +   mongoc_index_opt_t opt;
    +   mongoc_index_opt_geo_t geo_opt;
    +
    +   mongoc_index_opt_init (&opt);
    +   mongoc_index_opt_geo_init (&geo_opt);
    +
    +   bson_init (&keys);
    +   BSON_APPEND_UTF8 (&keys, "location", "2d");
    +
    +   geo_opt.twod_location_min = -123;
    +   geo_opt.twod_location_max = +123;
    +   geo_opt.twod_bits_precision = 30;
    +   opt.geo_options = &geo_opt;
    +
    +   collection = mongoc_client_get_collection (client, "test", "geo_test");
    +   if (mongoc_collection_create_index (collection, &keys, &opt, &error)) {
    +      /* Successfully created the geo index */
    +   }
    +   bson_destroy (&keys);
    +   mongoc_collection_destroy (&collection);
    +}
    +
    +
    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_wt_get_default.html b/libmongoc/1.23.2/mongoc_index_opt_wt_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..bc0e3f339355dfba4625652e5c8d42f7f871a923 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_wt_get_default.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_index_opt_wt_get_default() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_wt_get_default()

    +
    +

    Synopsis

    +
    const mongoc_index_opt_wt_t *
    +mongoc_index_opt_wt_get_default (void) BSON_GNUC_PURE;
    +
    +
    +
    +
    +

    Returns

    +

    Returns a pointer to the default WiredTiger index creation options.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_wt_init.html b/libmongoc/1.23.2/mongoc_index_opt_wt_init.html new file mode 100644 index 0000000000000000000000000000000000000000..74c1af1d49562bea17a75616e487bebf509bf0d1 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_wt_init.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_index_opt_wt_init() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_wt_init()

    +
    +

    Synopsis

    +
    void
    +mongoc_index_opt_wt_init (mongoc_index_opt_wt_t *opt);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function will initialize opt to the default values. It should be called before modifying any fields within the structure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_index_opt_wt_t.html b/libmongoc/1.23.2/mongoc_index_opt_wt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5c07741e58280da4ef92492436ef967c0afe1786 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_index_opt_wt_t.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_index_opt_wt_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_wt_t

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct {
    +   mongoc_index_opt_storage_t base;
    +   const char *config_str;
    +   void *padding[8];
    +} mongoc_index_opt_wt_t;
    +
    +
    +
    +
    +

    Description

    +

    This structure contains the options that may be used for tuning a WiredTiger specific index.

    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_init.html b/libmongoc/1.23.2/mongoc_init.html new file mode 100644 index 0000000000000000000000000000000000000000..3f2ad60cc9086420d698f75f8666bafff74d81b9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_init.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_init() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_init()

    +
    +

    Synopsis

    +
    void
    +mongoc_init (void);
    +
    +
    +
    +
    +

    Description

    +

    Initialize the MongoDB C Driver by calling mongoc_init() exactly once at the beginning of your program. It is responsible for initializing global state such as process counters, SSL, and threading primitives.

    +

    Exception to this is mongoc_log_set_handler(), which should be called before mongoc_init() or some log traces would not use your log handling function. See Custom Log Handlers for a detailed example.

    +

    Call mongoc_cleanup() exactly once at the end of your program to release all memory and other resources allocated by the driver. You must not call any other MongoDB C Driver functions after mongoc_cleanup(). Note that mongoc_init() does not reinitialize the driver after mongoc_cleanup().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_insert_flags_t.html b/libmongoc/1.23.2/mongoc_insert_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..42448aab7bd3f24321e718141f7028b0f44efe2b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_insert_flags_t.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_insert_flags_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_insert_flags_t

    +

    Flags for insert operations

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_INSERT_NONE = 0,
    +   MONGOC_INSERT_CONTINUE_ON_ERROR = 1 << 0,
    +} mongoc_insert_flags_t;
    +
    +#define MONGOC_INSERT_NO_VALIDATE (1U << 31)
    +
    +
    +
    +
    +

    Description

    +

    These flags correspond to the MongoDB wire protocol. They may be bitwise or’d together. They may modify how an insert happens on the MongoDB server.

    +
    +
    +

    Flag Values

    + + + + + + + + + + + + +

    MONGOC_INSERT_NONE

    Specify no insert flags.

    MONGOC_INSERT_CONTINUE_ON_ERROR

    Continue inserting documents from the insertion set even if one insert fails.

    MONGOC_INSERT_NO_VALIDATE

    Do not validate insertion documents before performing an insert. Validation can be expensive, so this can save some time if you know your documents are already valid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_iovec_t.html b/libmongoc/1.23.2/mongoc_iovec_t.html new file mode 100644 index 0000000000000000000000000000000000000000..829a6495cd37d879519ffafc33e933aa3b0bb1fe --- /dev/null +++ b/libmongoc/1.23.2/mongoc_iovec_t.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_iovec_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_iovec_t

    +
    +

    Synopsis

    +
    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +#ifdef _WIN32
    +typedef struct {
    +   u_long iov_len;
    +   char *iov_base;
    +} mongoc_iovec_t;
    +#else
    +typedef struct iovec mongoc_iovec_t;
    +#endif
    +
    +
    +

    The mongoc_iovec_t structure is a portability abstraction for consumers of the mongoc_stream_t interfaces. It allows for scatter/gather I/O through the socket subsystem.

    +
    +

    Warning

    +

    When writing portable code, beware of the ordering of iov_len and iov_base as they are different on various platforms. Therefore, you should not use C initializers for initialization.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_matcher_destroy.html b/libmongoc/1.23.2/mongoc_matcher_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..9c6be4c1ee324456040be691bd9cd6a4079b5c18 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_matcher_destroy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_matcher_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_matcher_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_matcher_destroy (mongoc_matcher_t *matcher);
    +
    +
    +

    Release all resources associated with matcher including freeing the structure.

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    mongoc_matcher_t is deprecated and will be removed in version 2.0.

    +
    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_matcher_match.html b/libmongoc/1.23.2/mongoc_matcher_match.html new file mode 100644 index 0000000000000000000000000000000000000000..44c19e3b025171fb89f9d1c9ad346938cee362e7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_matcher_match.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_matcher_match() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_matcher_match()

    +
    +

    Synopsis

    +
    bool
    +mongoc_matcher_match (const mongoc_matcher_t *matcher, const bson_t *document);
    +
    +
    +

    This function will check to see if the query compiled in matcher matches document.

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    mongoc_matcher_t is deprecated and will be removed in version 2.0.

    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    true if document matches the query specification provided to mongoc_matcher_new(). Otherwise, false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_matcher_new.html b/libmongoc/1.23.2/mongoc_matcher_new.html new file mode 100644 index 0000000000000000000000000000000000000000..4571ab4d6a24b22ae02cc5fc0b5fbb0aa8f58525 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_matcher_new.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_matcher_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_matcher_new()

    +
    +

    Synopsis

    +
    mongoc_matcher_t *
    +mongoc_matcher_new (const bson_t *query, bson_error_t *error)
    +   BSON_GNUC_WARN_UNUSED_RESULT BSON_GNUC_DEPRECATED;
    +
    +
    +

    Create a new mongoc_matcher_t using the query specification provided.

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    mongoc_matcher_t is deprecated and will be removed in version 2.0.

    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_matcher_t that should be freed with mongoc_matcher_destroy() when no longer in use. Upon failure, NULL is returned and error is set. This could happen if query contains an invalid query specification.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_matcher_t.html b/libmongoc/1.23.2/mongoc_matcher_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9b47c80147e7641d4173e74aafebc12e0bf961cb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_matcher_t.html @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + mongoc_matcher_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_matcher_t

    +

    Client-side document matching abstraction

    +
    +

    Synopsis

    +
    typedef struct _mongoc_matcher_t mongoc_matcher_t;
    +
    +
    +

    mongoc_matcher_t provides a reduced-interface for client-side matching of BSON documents.

    +

    It can perform the basics such as $in, $nin, $eq, $neq, $gt, $gte, $lt, and $lte.

    +
    +

    Warning

    +

    mongoc_matcher_t does not currently support the full spectrum of query operations that the MongoDB server supports.

    +
    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    mongoc_matcher_t is deprecated and will be removed in version 2.0.

    +
    +
    +
    +

    Functions

    + +
    +
    +

    Example

    +
    +
    Filter a sequence of BSON documents from STDIN based on a query
    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_matcher_t *matcher;
    +   bson_reader_t *reader;
    +   const bson_t *bson;
    +   bson_t *spec;
    +   char *str;
    +   int fd;
    +
    +   mongoc_init ();
    +
    +#ifdef _WIN32
    +   fd = fileno (stdin);
    +#else
    +   fd = STDIN_FILENO;
    +#endif
    +
    +   reader = bson_reader_new_from_fd (fd, false);
    +
    +   spec = BCON_NEW ("hello", "world");
    +   matcher = mongoc_matcher_new (spec, NULL);
    +
    +   while ((bson = bson_reader_read (reader, NULL))) {
    +      if (mongoc_matcher_match (matcher, bson)) {
    +         str = bson_as_canonical_extended_json (bson, NULL);
    +         printf ("%s\n", str);
    +         bson_free (str);
    +      }
    +   }
    +
    +   bson_reader_destroy (reader);
    +   bson_destroy (spec);
    +
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_optional_copy.html b/libmongoc/1.23.2/mongoc_optional_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..751016316335cce14772ec97a832b6a7fd653c8b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_optional_copy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_optional_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_optional_copy()

    +
    +

    Synopsis

    +
    void
    +mongoc_optional_copy (const mongoc_optional_t *source, mongoc_optional_t *copy);
    +
    +
    +

    Creates a deep copy of source into copy.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_optional_init.html b/libmongoc/1.23.2/mongoc_optional_init.html new file mode 100644 index 0000000000000000000000000000000000000000..69e509f64b6c898084b0ed0d0acd3b22b21ea999 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_optional_init.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_optional_init() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_optional_init()

    +
    +

    Synopsis

    +
    void
    +mongoc_optional_init (mongoc_optional_t *opt);
    +
    +
    +

    Initializes values for a mongoc_optional_t.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_optional_is_set.html b/libmongoc/1.23.2/mongoc_optional_is_set.html new file mode 100644 index 0000000000000000000000000000000000000000..9cb21d02c97ad2b63c43bfba402ecc87807e5c55 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_optional_is_set.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_optional_is_set() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_optional_is_set()

    +
    +

    Synopsis

    +
    bool
    +mongoc_optional_is_set (const mongoc_optional_t *opt);
    +
    +
    +

    Returns whether a value for a mongoc_optional_t was set.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if a value was set, or false otherwise.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_optional_set_value.html b/libmongoc/1.23.2/mongoc_optional_set_value.html new file mode 100644 index 0000000000000000000000000000000000000000..c8ed9dfd75bf5c9ccf78bcfe02bc7f83278e5ebd --- /dev/null +++ b/libmongoc/1.23.2/mongoc_optional_set_value.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_optional_set_value() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_optional_set_value()

    +
    +

    Synopsis

    +
    void
    +mongoc_optional_set_value (mongoc_optional_t *opt);
    +
    +
    +

    Sets a value on a 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.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_optional_t.html b/libmongoc/1.23.2/mongoc_optional_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1bb0f0612b58ed88c9df7a978e3bc39d0b58f0f6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_optional_t.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_optional_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_optional_t

    +

    A struct to store optional boolean values.

    +
    +

    Synopsis

    +

    Used to specify optional boolean flags, which may remain unset.

    +

    This is used within mongoc_server_api_t to track whether a flag was explicitly set.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_optional_value.html b/libmongoc/1.23.2/mongoc_optional_value.html new file mode 100644 index 0000000000000000000000000000000000000000..d4e39d2b30e837516b5b9a94b785df2ca69baf74 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_optional_value.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_optional_value() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_optional_value()

    +
    +

    Synopsis

    +
    bool
    +mongoc_optional_value (const mongoc_optional_t *opt);
    +
    +
    +

    Returns the value for a mongoc_optional_t.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns the value that was set on the mongoc_optional_t. If no value was set, false is returned.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_query_flags_t.html b/libmongoc/1.23.2/mongoc_query_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..087c5b0a96b00b98a6db796cecfbb2fd15883047 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_query_flags_t.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + mongoc_query_flags_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_query_flags_t

    +

    Flags for query operations

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_QUERY_NONE = 0,
    +   MONGOC_QUERY_TAILABLE_CURSOR = 1 << 1,
    +   MONGOC_QUERY_SECONDARY_OK = 1 << 2,
    +   MONGOC_QUERY_OPLOG_REPLAY = 1 << 3,
    +   MONGOC_QUERY_NO_CURSOR_TIMEOUT = 1 << 4,
    +   MONGOC_QUERY_AWAIT_DATA = 1 << 5,
    +   MONGOC_QUERY_EXHAUST = 1 << 6,
    +   MONGOC_QUERY_PARTIAL = 1 << 7,
    +} mongoc_query_flags_t;
    +
    +
    +
    +
    +

    Description

    +

    These flags correspond to the MongoDB wire protocol. They may be bitwise or’d together. They may modify how a query is performed in the MongoDB server.

    +
    +
    +

    Flag Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    MONGOC_QUERY_NONE

    Specify no query flags.

    MONGOC_QUERY_TAILABLE_CURSOR

    Cursor will not be closed when the last data is retrieved. You can resume this cursor later.

    MONGOC_QUERY_SECONDARY_OK

    Allow query of replica set secondaries.

    MONGOC_QUERY_OPLOG_REPLAY

    Used internally by MongoDB.

    MONGOC_QUERY_NO_CURSOR_TIMEOUT

    The server normally times out an idle cursor after an inactivity period (10 minutes). This prevents that.

    MONGOC_QUERY_AWAIT_DATA

    Use with MONGOC_QUERY_TAILABLE_CURSOR. Block rather than returning no data. After a period, time out.

    MONGOC_QUERY_EXHAUST

    Stream the data down full blast in multiple “reply” packets. Faster when you are pulling down a lot of data and you know you want to retrieve it all. +Only applies to cursors created from a find operation (i.e. mongoc_collection_find()).

    MONGOC_QUERY_PARTIAL

    Get partial results from mongos if some shards are down (instead of throwing an error).

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_rand.html b/libmongoc/1.23.2/mongoc_rand.html new file mode 100644 index 0000000000000000000000000000000000000000..c1c1bef2cc5468a7901899850b08983e2e9ee275 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_rand.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_rand — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_rand

    +

    MongoDB Random Number Generator

    +
    +

    Synopsis

    +
    void
    +mongoc_rand_add (const void *buf, int num, double entropy);
    +
    +void
    +mongoc_rand_seed (const void *buf, int num);
    +
    +int
    +mongoc_rand_status (void);
    +
    +
    +
    +
    +

    Description

    +

    The mongoc_rand family of functions provide access to the low level randomness primitives used by the MongoDB C Driver. In particular, they control the creation of cryptographically strong pseudo-random bytes required by some security mechanisms.

    +

    While we can usually pull enough entropy from the environment, you may be required to seed the PRNG manually depending on your OS, hardware and other entropy consumers running on the same system.

    +
    +
    +

    Entropy

    +

    mongoc_rand_add and mongoc_rand_seed allow the user to directly provide entropy. They differ insofar as mongoc_rand_seed requires that each bit provided is fully random. mongoc_rand_add allows the user to specify the degree of randomness in the provided bytes as well.

    +
    +
    +

    Status

    +

    The mongoc_rand_status function allows the user to check the status of the mongoc PRNG. This can be used to guarantee sufficient entropy at program startup, rather than waiting for runtime errors to occur.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_rand_add.html b/libmongoc/1.23.2/mongoc_rand_add.html new file mode 100644 index 0000000000000000000000000000000000000000..33ea56139e88631727300ee66c36d7cfc2a0f09d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_rand_add.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_rand_add() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_rand_add()

    +
    +

    Synopsis

    +
    void
    +mongoc_rand_add (const void *buf, int num, double entropy);
    +
    +
    +
    +
    +

    Description

    +

    Mixes num bytes of data into the mongoc random number generator. Entropy specifies a lower bound estimate of the randomness contained in buf.

    +
    +
    +

    Parameters

    +
      +
    • buf: A buffer.

    • +
    • num: An int of number of bytes in buf.

    • +
    • entropy: A double of randomness estimate in buf.

    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_rand_seed.html b/libmongoc/1.23.2/mongoc_rand_seed.html new file mode 100644 index 0000000000000000000000000000000000000000..18fb6c3adad407cd0d31b80c9e48225a48dc5c1d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_rand_seed.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_rand_seed() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_rand_seed()

    +
    +

    Synopsis

    +
    void
    +mongoc_rand_seed (const void *buf, int num);
    +
    +
    +
    +
    +

    Description

    +

    Seeds the mongoc random number generator with num bytes of entropy.

    +
    +
    +

    Parameters

    +
      +
    • buf: A buffer.

    • +
    • num: An int of number of bytes in buf.

    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_rand_status.html b/libmongoc/1.23.2/mongoc_rand_status.html new file mode 100644 index 0000000000000000000000000000000000000000..a285a13a3a8769804ea94ccb19c75844a4932863 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_rand_status.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_rand_status() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_rand_status()

    +
    +

    Synopsis

    +
    int
    +mongoc_rand_status (void);
    +
    +
    +
    +
    +

    Description

    +

    The status of the mongoc random number generator.

    +
    +
    +

    Returns

    +

    Returns 1 if the PRNG has been seeded with enough data, 0 otherwise.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_append.html b/libmongoc/1.23.2/mongoc_read_concern_append.html new file mode 100644 index 0000000000000000000000000000000000000000..7a4a596b5c7aadb5992064902c614bff2e8563d3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_append.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_read_concern_append() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_append()

    +
    +

    Synopsis

    +
    bool
    +mongoc_read_concern_append (mongoc_read_concern_t *read_concern, bson_t *opts);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function appends a read concern to command options. It is useful for appending a read concern to command options before passing them to mongoc_client_read_command_with_opts() or a related function that takes an options document.

    +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_read_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_copy.html b/libmongoc/1.23.2/mongoc_read_concern_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..869eeee49cc95b5493afd558c6619e913e881bc0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_copy.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_read_concern_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_copy()

    +
    +

    Synopsis

    +
    mongoc_read_concern_t *
    +mongoc_read_concern_copy (const mongoc_read_concern_t *read_concern)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a deep copy of read_concern.

    +
    +
    +

    Returns

    +

    Returns a newly allocated copy of read_concern that should be freed with mongoc_read_concern_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_destroy.html b/libmongoc/1.23.2/mongoc_read_concern_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..7ccb99fcbe6b1605d386e0191bc2d9f2eafde98d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_read_concern_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_read_concern_destroy (mongoc_read_concern_t *read_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees all resources associated with the read concern structure. Does nothing if read_concern is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_get_level.html b/libmongoc/1.23.2/mongoc_read_concern_get_level.html new file mode 100644 index 0000000000000000000000000000000000000000..de8dabe863f02b92f3680ab5148a3e29ab2faa93 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_get_level.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_read_concern_get_level() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_get_level()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_read_concern_get_level (const mongoc_read_concern_t *read_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Returns the currently set read concern.

    +
    +
    +

    Returns

    +

    Returns the current readConcern. If none is set, returns NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_is_default.html b/libmongoc/1.23.2/mongoc_read_concern_is_default.html new file mode 100644 index 0000000000000000000000000000000000000000..41ded2270a4b59b92df2350679c1778f8d198711 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_is_default.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_read_concern_is_default() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_is_default()

    +
    +

    Synopsis

    +
    bool
    +mongoc_read_concern_is_default (mongoc_read_concern_t *read_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Returns true if read_concern has not been modified from the default. For example, if no “readConcern” option is set in the MongoDB URI and you have not called mongoc_client_set_read_concern(), then mongoc_read_concern_is_default() is true for the read concern returned by mongoc_client_get_read_concern().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_new.html b/libmongoc/1.23.2/mongoc_read_concern_new.html new file mode 100644 index 0000000000000000000000000000000000000000..4eb5a0d5b86564fb8a8af3719cb0c4e97ff8d38b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_new.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_read_concern_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_new()

    +
    +

    Synopsis

    +
    mongoc_read_concern_t *
    +mongoc_read_concern_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Returns

    +

    Creates a newly allocated read concern that can be configured based on user preference. This should be freed with mongoc_read_concern_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_set_level.html b/libmongoc/1.23.2/mongoc_read_concern_set_level.html new file mode 100644 index 0000000000000000000000000000000000000000..c46bac0478cef97e9cfc3f9864583779054729d7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_set_level.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_read_concern_set_level() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_set_level()

    +
    +

    Synopsis

    +
    bool
    +mongoc_read_concern_set_level (mongoc_read_concern_t *read_concern,
    +                               const char *level);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the read concern level. See mongoc_read_concern_t for details.

    +

    Beginning in version 1.9.0, this function can now alter the read concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would return false +instead of altering the read concern.

    +
    +
    +

    Returns

    +

    Returns true if the read concern level was set, or false otherwise.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_concern_t.html b/libmongoc/1.23.2/mongoc_read_concern_t.html new file mode 100644 index 0000000000000000000000000000000000000000..144ec2454b6803038bdbd3ddf62e791c98e66f91 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_concern_t.html @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + mongoc_read_concern_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_concern_t

    +

    Read Concern abstraction

    +
    +

    Synopsis

    +

    New in MongoDB 3.2.

    +

    The mongoc_read_concern_t allows clients to choose a level of isolation for their reads. The default, MONGOC_READ_CONCERN_LEVEL_LOCAL, is right for the great majority of applications.

    +

    You can specify a read concern on connection objects, database objects, or collection objects.

    +

    See readConcern on the MongoDB website for more information.

    +

    Read Concern is only sent to MongoDB when it has explicitly been set by mongoc_read_concern_set_level() to anything other than NULL.

    +
    +
    +

    Read Concern Levels

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Macro

    Description

    First MongoDB version

    MONGOC_READ_CONCERN_LEVEL_LOCAL

    Level “local”, the default.

    3.2

    MONGOC_READ_CONCERN_LEVEL_MAJORITY

    Level “majority”.

    3.2

    MONGOC_READ_CONCERN_LEVEL_LINEARIZABLE

    Level “linearizable”.

    3.4

    MONGOC_READ_CONCERN_LEVEL_AVAILABLE

    Level “available”.

    3.6

    MONGOC_READ_CONCERN_LEVEL_SNAPSHOT

    Level “snapshot”.

    4.0

    +

    For the sake of compatibility with future versions of MongoDB, mongoc_read_concern_set_level() allows any string, not just this list of known read concern levels.

    +

    See Read Concern Levels in the MongoDB manual for more information about the individual read concern levels.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_mode_t.html b/libmongoc/1.23.2/mongoc_read_mode_t.html new file mode 100644 index 0000000000000000000000000000000000000000..691d35cfdb45ec55d04c3eaaf4ef6756ecd13e6f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_mode_t.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_read_mode_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_mode_t

    +

    Read Preference Modes

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_READ_PRIMARY = (1 << 0),
    +   MONGOC_READ_SECONDARY = (1 << 1),
    +   MONGOC_READ_PRIMARY_PREFERRED = (1 << 2) | MONGOC_READ_PRIMARY,
    +   MONGOC_READ_SECONDARY_PREFERRED = (1 << 2) | MONGOC_READ_SECONDARY,
    +   MONGOC_READ_NEAREST = (1 << 3) | MONGOC_READ_SECONDARY,
    +} mongoc_read_mode_t;
    +
    +
    +
    +
    +

    Description

    +

    This enum describes how reads should be dispatched. The default is MONGOC_READ_PRIMARY.

    +

    Please see the MongoDB website for a description of Read Preferences.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_add_tag.html b/libmongoc/1.23.2/mongoc_read_prefs_add_tag.html new file mode 100644 index 0000000000000000000000000000000000000000..67936039154bda176ec6425eb140d50d566d56f0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_add_tag.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_read_prefs_add_tag() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_add_tag()

    +
    +

    Synopsis

    +
    void
    +mongoc_read_prefs_add_tag (mongoc_read_prefs_t *read_prefs, const bson_t *tag);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall add a tag to a read preference.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_copy.html b/libmongoc/1.23.2/mongoc_read_prefs_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..6f109c04f34e13fec68b8fb36ea8907f40169a8a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_copy.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_read_prefs_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_copy()

    +
    +

    Synopsis

    +
    mongoc_read_prefs_t *
    +mongoc_read_prefs_copy (const mongoc_read_prefs_t *read_prefs)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function shall deep copy a read preference.

    +
    +
    +

    Returns

    +

    Returns a newly allocated read preference that should be freed with mongoc_read_prefs_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_destroy.html b/libmongoc/1.23.2/mongoc_read_prefs_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..4a8a1f9d741f0ce33e9d0a4c0e61a5565f0dd3bb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_read_prefs_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_read_prefs_destroy (mongoc_read_prefs_t *read_prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees a read preference and all associated resources. Does nothing if read_prefs is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_get_hedge.html b/libmongoc/1.23.2/mongoc_read_prefs_get_hedge.html new file mode 100644 index 0000000000000000000000000000000000000000..98268e653d0c25f3ef51fe34b9ca3911f0df210b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_get_hedge.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_hedge() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_get_hedge()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_read_prefs_get_hedge (const mongoc_read_prefs_t *read_prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches any read preference hedge document that has been registered.

    +
    +
    +

    Returns

    +

    Returns a bson_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_get_max_staleness_seconds.html b/libmongoc/1.23.2/mongoc_read_prefs_get_max_staleness_seconds.html new file mode 100644 index 0000000000000000000000000000000000000000..4612141a839b9177cc8f34bf05f09de8022b655f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_get_max_staleness_seconds.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_max_staleness_seconds() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_get_max_staleness_seconds()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_read_prefs_get_max_staleness_seconds (
    +   const mongoc_read_prefs_t *read_prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Clients estimate the staleness of each secondary, and select for reads only those secondaries whose estimated staleness is less than or equal to maxStalenessSeconds. The default is MONGOC_NO_MAX_STALENESS.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_get_mode.html b/libmongoc/1.23.2/mongoc_read_prefs_get_mode.html new file mode 100644 index 0000000000000000000000000000000000000000..52bc24caf04bba902571e58b5da131fce70d2499 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_get_mode.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_mode() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_get_mode()

    +
    +

    Synopsis

    +
    mongoc_read_mode_t
    +mongoc_read_prefs_get_mode (const mongoc_read_prefs_t *read_prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the mongoc_read_mode_t for the read preference.

    +
    +
    +

    Returns

    +

    Returns the read preference mode.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_get_tags.html b/libmongoc/1.23.2/mongoc_read_prefs_get_tags.html new file mode 100644 index 0000000000000000000000000000000000000000..6522c0fcc5c95c86acab4556531e49cb3b8e9d80 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_get_tags.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_tags() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_get_tags()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_read_prefs_get_tags (const mongoc_read_prefs_t *read_prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches any read preference tags that have been registered.

    +
    +
    +

    Returns

    +

    Returns a bson_t that should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_is_valid.html b/libmongoc/1.23.2/mongoc_read_prefs_is_valid.html new file mode 100644 index 0000000000000000000000000000000000000000..b4ce0d9144d7fafd77f336206cfd5a96e79ce318 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_is_valid.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_read_prefs_is_valid() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_is_valid()

    +
    +

    Synopsis

    +
    bool
    +mongoc_read_prefs_is_valid (const mongoc_read_prefs_t *read_prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a consistency check of read_prefs to ensure it makes sense and can be satisfied.

    +

    This only performs local consistency checks.

    +
    +
    +

    Returns

    +

    Returns true if the read pref is valid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_new.html b/libmongoc/1.23.2/mongoc_read_prefs_new.html new file mode 100644 index 0000000000000000000000000000000000000000..6c270cc963917658d2d1c75721e8a6357911bfb6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_new.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_read_prefs_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_new()

    +
    +

    Synopsis

    +
    mongoc_read_prefs_t *
    +mongoc_read_prefs_new (mongoc_read_mode_t read_mode)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Creates a new mongoc_read_prefs_t using the mode specified.

    +
    +
    +

    Returns

    +

    Returns a newly allocated mongoc_read_prefs_t that should be freed with mongoc_read_prefs_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_set_hedge.html b/libmongoc/1.23.2/mongoc_read_prefs_set_hedge.html new file mode 100644 index 0000000000000000000000000000000000000000..71588bfc3beb0a0f4747d26120f6b7b54305fe49 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_set_hedge.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_hedge() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_set_hedge()

    +
    +

    Synopsis

    +
    void
    +mongoc_read_prefs_set_hedge (mongoc_read_prefs_t *read_prefs,
    +                             const bson_t *hedge);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the hedge document to be used for the read preference. Sharded clusters running MongoDB 4.4 or later can dispatch read operations in parallel, returning the result from the fastest host and cancelling the unfinished operations.

    +

    For example, this is a valid hedge document

    +
    {
    +   enabled: true
    +}
    +
    +
    +

    Appropriate values for the enabled key are true or false.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_set_max_staleness_seconds.html b/libmongoc/1.23.2/mongoc_read_prefs_set_max_staleness_seconds.html new file mode 100644 index 0000000000000000000000000000000000000000..9d1e245a7c3026944d6d581295e5c87e7d5a7b7e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_set_max_staleness_seconds.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_max_staleness_seconds() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_set_max_staleness_seconds()

    +
    +

    Synopsis

    +
    void
    +mongoc_read_prefs_set_max_staleness_seconds (mongoc_read_prefs_t *read_prefs,
    +                                             int64_t max_staleness_seconds);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • read_prefs: A mongoc_read_prefs_t.

    • +
    • max_staleness_seconds: A positive integer or MONGOC_NO_MAX_STALENESS.

    • +
    +
    +
    +

    Description

    +

    Sets the maxStalenessSeconds to be used for the read preference. Clients estimate the staleness of each secondary, and select for reads only those secondaries whose estimated staleness is less than or equal to maxStalenessSeconds.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_set_mode.html b/libmongoc/1.23.2/mongoc_read_prefs_set_mode.html new file mode 100644 index 0000000000000000000000000000000000000000..75299821e0342c244144886a372f6ac5a31947f6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_set_mode.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_mode() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_set_mode()

    +
    +

    Synopsis

    +
    void
    +mongoc_read_prefs_set_mode (mongoc_read_prefs_t *read_prefs,
    +                            mongoc_read_mode_t mode);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the read preference mode. See the MongoDB website for more information on Read Preferences.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_set_tags.html b/libmongoc/1.23.2/mongoc_read_prefs_set_tags.html new file mode 100644 index 0000000000000000000000000000000000000000..ed0899bbdecf7235426f8bde149a6f871db12503 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_set_tags.html @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_tags() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_set_tags()

    +
    +

    Synopsis

    +
    void
    +mongoc_read_prefs_set_tags (mongoc_read_prefs_t *read_prefs,
    +                            const bson_t *tags);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the tags to be used for the read preference. Only mongod instances matching these tags will be suitable for handling the request.

    +
    +
    +

    Examples

    +
    #include <mongoc/mongoc.h>
    +
    +static void
    +run_query_with_read_prefs_tags (mongoc_collection_t *collection)
    +{
    +   char *str;
    +   const bson_t *doc;
    +   bson_t filter = BSON_INITIALIZER;
    +   bson_error_t error;
    +   mongoc_cursor_t *cursor;
    +   mongoc_read_prefs_t *read_prefs;
    +   /*  Create a tagset representing
    +    *  [
    +    *    {"dc": "ny", "rack": "1" }, // Any node in rack1 in the ny datacenter
    +    *    {"dc": "ny", "rack": "2" }, // Any node in rack2 in the ny datacenter
    +    *    {"dc": "ny" },              // Any node in the ny datacenter
    +    *    {}                          // If all else fails, just any available node
    +    * ]
    +    */
    +   bson_t *tags = BCON_NEW (
    +      "0", "{", "dc", BCON_UTF8("ny"), "rack", BCON_UTF8("1"), "}",
    +      "1", "{", "dc", BCON_UTF8("ny"), "rack", BCON_UTF8("2"), "}",
    +      "2", "{", "dc", BCON_UTF8("ny"), "}",
    +      "3", "{", "}"
    +   );
    +
    +   read_prefs = mongoc_read_prefs_new (MONGOC_READ_SECONDARY);
    +   mongoc_read_prefs_set_tags (read_prefs, tags);
    +   bson_destroy (tags);
    +
    +   cursor =
    +      mongoc_collection_find_with_opts (collection, &filter, NULL, read_prefs);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +   if (mongoc_cursor_error (cursor, &error)) {
    +      fprintf (stderr, "Cursor error: %s\n", error.message);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   mongoc_read_prefs_destroy (read_prefs);
    +   bson_destroy (doc);
    +}
    +
    +int main (void)
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +
    +   mongoc_init ();
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost/?appname=rp_tags&replicaSet=foo");
    +   mongoc_client_set_error_api (client, 2);
    +   collection = mongoc_client_get_collection (client, "dbname", "collname");
    +   run_query_with_read_prefs_tags (collection);
    +
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup();
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_read_prefs_t.html b/libmongoc/1.23.2/mongoc_read_prefs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9cafd2cef1369baea5ab53a387b4d9c14309feca --- /dev/null +++ b/libmongoc/1.23.2/mongoc_read_prefs_t.html @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + mongoc_read_prefs_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_read_prefs_t

    +

    A read preference abstraction

    +
    +

    Synopsis

    +

    mongoc_read_prefs_t provides an abstraction on top of the MongoDB connection read preferences. It allows for hinting to the driver which nodes in a replica set should be accessed first and how.

    +

    You can specify a read preference mode on connection objects, database objects, collection objects, or per-operation. Generally, it makes the most sense to stick with the global default mode, MONGOC_READ_PRIMARY. All of the other modes come with caveats that won’t be covered in great detail here.

    +
    +
    +

    Read Modes

    + + + + + + + + + + + + + + + + + + +

    MONGOC_READ_PRIMARY

    Default mode. All operations read from the current replica set primary.

    MONGOC_READ_SECONDARY

    All operations read from among the nearest secondary members of the replica set.

    MONGOC_READ_PRIMARY_PREFERRED

    In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

    MONGOC_READ_SECONDARY_PREFERRED

    In most situations, operations read from among the nearest secondary members, but if no secondaries are available, operations read from the primary.

    MONGOC_READ_NEAREST

    Operations read from among the nearest members of the replica set, irrespective of the member’s type.

    +
    +
    +

    Tag Sets

    +

    Tag sets allow you to specify custom read preferences and write concerns so that your application can target operations to specific members.

    +

    Custom read preferences and write concerns evaluate tags sets in different ways: read preferences consider the value of a tag when selecting a member to read from, while write concerns ignore the value of a tag when selecting a member, except to consider whether or not the value is unique.

    +

    You can specify tag sets with the following read preference modes:

    +
      +
    • primaryPreferred

    • +
    • secondary

    • +
    • secondaryPreferred

    • +
    • nearest

    • +
    +

    Tags are not compatible with MONGOC_READ_PRIMARY and, in general, only apply when selecting a secondary member of a set for a read operation. However, the nearest read mode, when combined with a tag set, will select the nearest member that matches the specified tag set, which may be a primary or secondary.

    +

    Tag sets are represented as a comma-separated list of colon-separated key-value +pairs when provided as a connection string, e.g. dc:ny,rack:1.

    +

    To specify a list of tag sets, using multiple readPreferenceTags, e.g.

    +
    readPreferenceTags=dc:ny,rack:1;readPreferenceTags=dc:ny;readPreferenceTags=
    +
    +
    +

    Note the empty value for the last one, which means “match any secondary as a last resort”.

    +

    Order matters when using multiple readPreferenceTags.

    +

    Tag Sets can also be configured using mongoc_read_prefs_set_tags().

    +

    All interfaces use the same member selection logic to choose the member to which to direct read operations, basing the choice on read preference mode and tag sets.

    +
    +
    +

    Max Staleness

    +

    When connected to replica set running MongoDB 3.4 or later, the driver estimates the staleness of each secondary based on lastWriteDate values provided in server hello responses.

    +

    Max Staleness is the maximum replication lag in seconds (wall clock time) that a secondary can suffer and still be eligible for reads. The default is MONGOC_NO_MAX_STALENESS, which disables staleness checks. Otherwise, it must be a positive integer at least MONGOC_SMALLEST_MAX_STALENESS_SECONDS (90 seconds).

    +

    Max Staleness is also supported by sharded clusters of replica sets if all servers run MongoDB 3.4 or later.

    +
    +
    +

    Hedged Reads

    +

    When connecting to a sharded cluster running MongoDB 4.4 or later, reads can be sent in parallel to the two “best” hosts. Once one result returns, any other outstanding operations that were part of the hedged read are cancelled.

    +

    When the read preference mode is MONGOC_READ_NEAREST and the sharded cluster is running MongoDB 4.4 or later, hedged reads are enabled by default. Additionally, hedged reads may be explicitly enabled or disabled by calling mongoc_read_prefs_set_hedge() with a BSON document, e.g.

    +
    {
    +   enabled: true
    +}
    +
    +
    +

    Appropriate values for the enabled key are true or false.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_remove_flags_t.html b/libmongoc/1.23.2/mongoc_remove_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..df2e29abfca9337e7fac505871fbdaff43f3303a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_remove_flags_t.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_remove_flags_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_remove_flags_t

    +

    Flags for deletion operations

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_REMOVE_NONE = 0,
    +   MONGOC_REMOVE_SINGLE_REMOVE = 1 << 0,
    +} mongoc_remove_flags_t;
    +
    +
    +
    +
    +

    Description

    +

    These flags correspond to the MongoDB wire protocol. They may be bitwise or’d together. They may change the number of documents that are removed during a remove command.

    +
    +
    +

    Flag Values

    + + + + + + + + + +

    MONGOC_REMOVE_NONE

    Specify no removal flags. All matching documents will be removed.

    MONGOC_REMOVE_SINGLE_REMOVE

    Only remove the first matching document from the selector.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_reply_flags_t.html b/libmongoc/1.23.2/mongoc_reply_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..bc162240ab80ef2a7fdbf2b63766bf5f91b85786 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_reply_flags_t.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_reply_flags_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_reply_flags_t

    +

    Flags from server replies

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_REPLY_NONE = 0,
    +   MONGOC_REPLY_CURSOR_NOT_FOUND = 1 << 0,
    +   MONGOC_REPLY_QUERY_FAILURE = 1 << 1,
    +   MONGOC_REPLY_SHARD_CONFIG_STALE = 1 << 2,
    +   MONGOC_REPLY_AWAIT_CAPABLE = 1 << 3,
    +} mongoc_reply_flags_t;
    +
    +
    +
    +
    +

    Description

    +

    These flags correspond to the wire protocol. They may be bitwise or’d together.

    +
    +
    +

    Flag Values

    + + + + + + + + + + + + + + + + + + +

    MONGOC_REPLY_NONE

    No flags set.

    MONGOC_REPLY_CURSOR_NOT_FOUND

    No matching cursor was found on the server.

    MONGOC_REPLY_QUERY_FAILURE

    The query failed or was invalid. Error document has been provided.

    MONGOC_REPLY_SHARD_CONFIG_STALE

    Shard config is stale.

    MONGOC_REPLY_AWAIT_CAPABLE

    If the returned cursor is capable of MONGOC_QUERY_AWAIT_DATA.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_copy.html b/libmongoc/1.23.2/mongoc_server_api_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..ee4ab4e2c4f531048f5181be52ce4ac1243e2831 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_copy.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_server_api_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_copy()

    +
    +

    Synopsis

    +
    mongoc_server_api_t *
    +mongoc_server_api_copy (const mongoc_server_api_t *api)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Creates a deep copy of api.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns a newly allocated copy of api that must be freed with mongoc_server_api_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_deprecation_errors.html b/libmongoc/1.23.2/mongoc_server_api_deprecation_errors.html new file mode 100644 index 0000000000000000000000000000000000000000..a7f69aec91c1166e19cc27ca08eca82bb8425597 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_deprecation_errors.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_server_api_deprecation_errors() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_deprecation_errors()

    +
    +

    Synopsis

    +
    void
    +mongoc_server_api_deprecation_errors (mongoc_server_api_t *api,
    +                                      bool deprecation_errors);
    +
    +
    +

    Set whether or not to error on commands that are deprecated in this API version.

    +
    +
    +

    Parameters

    +
      +
    • api: A mongoc_server_api_t.

    • +
    • deprecation_errors: Whether or not to error on commands that are deprecated.

    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_destroy.html b/libmongoc/1.23.2/mongoc_server_api_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..fb971cfd567079673b931019c6d70e70101b5c49 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_destroy.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + mongoc_server_api_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_server_api_destroy (mongoc_server_api_t *api);
    +
    +
    +

    Free a mongoc_server_api_t. Does nothing if api is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_get_deprecation_errors.html b/libmongoc/1.23.2/mongoc_server_api_get_deprecation_errors.html new file mode 100644 index 0000000000000000000000000000000000000000..a8d8fdb0b1a6343424aeb5077ce921bb9ac4b9b6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_get_deprecation_errors.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_server_api_get_deprecation_errors() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_get_deprecation_errors()

    +
    +

    Synopsis

    +
    const mongoc_optional_t *
    +mongoc_server_api_get_deprecation_errors (const mongoc_server_api_t *api);
    +
    +
    +

    Returns the value of the deprecation_errors flag for the mongoc_server_api_t.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns a mongoc_optional_t indicating whether the deprecation_errors flag was set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_get_strict.html b/libmongoc/1.23.2/mongoc_server_api_get_strict.html new file mode 100644 index 0000000000000000000000000000000000000000..65c1aee7703f03a1963c5d49e3f393bd2bac44be --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_get_strict.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_server_api_get_strict() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_get_strict()

    +
    +

    Synopsis

    +
    const mongoc_optional_t *
    +mongoc_server_api_get_strict (const mongoc_server_api_t *api);
    +
    +
    +

    Returns the value of the strict flag for the mongoc_server_api_t.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns a mongoc_optional_t indicating whether the strict flag was set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_get_version.html b/libmongoc/1.23.2/mongoc_server_api_get_version.html new file mode 100644 index 0000000000000000000000000000000000000000..b8b32eecfaafbafd076b28e47a2a85c9db7638eb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_get_version.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_server_api_get_version() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_get_version()

    +
    +

    Synopsis

    +
    mongoc_server_api_version_t
    +mongoc_server_api_get_version (const mongoc_server_api_t *api);
    +
    +
    +

    Fetch the declared API version as from a mongoc_server_api_t.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns a mongoc_server_api_version_t with the API version declare in the mongoc_server_api_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_new.html b/libmongoc/1.23.2/mongoc_server_api_new.html new file mode 100644 index 0000000000000000000000000000000000000000..2baad50fd599737dbf4c2908072feed6db566657 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_new.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_server_api_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_new()

    +
    +

    Synopsis

    +
    mongoc_server_api_t *
    +mongoc_server_api_new (mongoc_server_api_version_t version)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Create a struct to hold server API preferences.

    +
    +
    +

    Returns

    +

    A new mongoc_server_api_t you must free with mongoc_server_api_destroy().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_strict.html b/libmongoc/1.23.2/mongoc_server_api_strict.html new file mode 100644 index 0000000000000000000000000000000000000000..49f468d052c4ebb607fc0caad0f625d822692124 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_strict.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_server_api_strict() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_strict()

    +
    +

    Synopsis

    +
    void
    +mongoc_server_api_strict (mongoc_server_api_t *api, bool strict);
    +
    +
    +

    Set whether to be strict about the list of allowed commands in this API version.

    +
    +
    +

    Parameters

    +
      +
    • api: A mongoc_server_api_t.

    • +
    • strict: Whether or not to be struct about the list of allowed API commands.

    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_t.html b/libmongoc/1.23.2/mongoc_server_api_t.html new file mode 100644 index 0000000000000000000000000000000000000000..791e03e72c87b0bd128da37990a04f1fb627a30e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_t.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_server_api_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_t

    +

    A versioned API to use for connections.

    +
    +

    Synopsis

    +

    Used to specify which version of the MongoDB server’s API to use for driver connections.

    +

    The server API type takes a mongoc_server_api_version_t. It can optionally be strict about the list of allowed commands in that API version, and can also optionally provide errors for deprecated commands in that API version.

    +

    A mongoc_server_api_t can be set on a client, and will then be sent to MongoDB for most commands run using that client.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_version_from_string.html b/libmongoc/1.23.2/mongoc_server_api_version_from_string.html new file mode 100644 index 0000000000000000000000000000000000000000..d6d965885815adbed65d05882a3991163fb35002 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_version_from_string.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_server_api_version_from_string() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_version_from_string()

    +
    +

    Synopsis

    +
    bool
    +mongoc_server_api_version_from_string (const char *version,
    +                                       mongoc_server_api_version_t *out);
    +
    +
    +

    Given a string version, populates out with the equivalent mongoc_server_api_version_t if version represents a valid API version.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True on success, false on failure. On success, out is populated with the converted version string. On failure, out is not altered.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_version_t.html b/libmongoc/1.23.2/mongoc_server_api_version_t.html new file mode 100644 index 0000000000000000000000000000000000000000..66bc5686b603d256d24290627edf2d4000cc07e5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_version_t.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_server_api_version_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_version_t

    +

    A representation of server API version numbers.

    +
    +

    Synopsis

    +

    Used to specify which version of the MongoDB server’s API to use for driver connections.

    +
    +
    +

    Supported API Versions

    +

    The driver currently supports the following MongoDB API versions:

    + + + + + + + + + + + +

    Enum value

    MongoDB version string

    MONGOC_SERVER_API_V1

    “1”

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_api_version_to_string.html b/libmongoc/1.23.2/mongoc_server_api_version_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..6ec243cc9f9858ac18b53954e5aaf5988a16746a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_api_version_to_string.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_server_api_version_to_string() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_api_version_to_string()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_server_api_version_to_string (mongoc_server_api_version_t version);
    +
    +
    +

    Returns the string representation of version, or NULL if version has no string representation.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns the string representation of version or NULL. The returned string should not be freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_destroy.html b/libmongoc/1.23.2/mongoc_server_description_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..70ebd018f3cd646db1e755b94c4968d8cf5116c5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_server_description_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_server_description_destroy (mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees all resources associated with the server description. Does nothing if description is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_hello_response.html b/libmongoc/1.23.2/mongoc_server_description_hello_response.html new file mode 100644 index 0000000000000000000000000000000000000000..11b4dc56c050d9913b4f9dc0b05273112de231ba --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_hello_response.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_server_description_hello_response() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_hello_response()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_server_description_hello_response (
    +   const mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The client or client pool periodically runs a +“hello” +command on each server, to update its view of the MongoDB deployment. Use +mongoc_client_get_server_descriptions() and +mongoc_server_description_hello_response() to get the most recent “hello” +response.

    +
    +
    +

    Returns

    +

    A reference to a BSON document, owned by the server description. The document is empty if the driver is not connected to the server.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_host.html b/libmongoc/1.23.2/mongoc_server_description_host.html new file mode 100644 index 0000000000000000000000000000000000000000..40eea4cb0767f09054a6f77c998e9f20083ec5da --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_host.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_server_description_host() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_host()

    +
    +

    Synopsis

    +
    mongoc_host_list_t *
    +mongoc_server_description_host (const mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Return the server’s host and port. This object is owned by the server description.

    +
    +
    +

    Returns

    +

    A reference to the server description’s mongoc_host_list_t, which you must not modify or free.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_id.html b/libmongoc/1.23.2/mongoc_server_description_id.html new file mode 100644 index 0000000000000000000000000000000000000000..2a6c313260ca8b6231313b892e8dec4e1aab7ac3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_id.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_server_description_id() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_id()

    +
    +

    Synopsis

    +
    uint32_t
    +mongoc_server_description_id (const mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Get the server’s id, an opaque identifier generated by the client or client pool.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_ismaster.html b/libmongoc/1.23.2/mongoc_server_description_ismaster.html new file mode 100644 index 0000000000000000000000000000000000000000..f02d3f942df0565a4ea9caf9eb9d80500c6004f6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_ismaster.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_server_description_ismaster() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_ismaster()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_server_description_ismaster (
    +   const mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    This function is deprecated and should not be used in new code.

    +
    +

    Please use mongoc_server_description_hello_response() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    The client or client pool periodically runs a “hello” command on each server, to update its view of the MongoDB deployment. Use mongoc_client_get_server_descriptions() and mongoc_server_description_hello_response() to get the most recent “hello” response.

    +
    +
    +

    Returns

    +

    A reference to a BSON document, owned by the server description. The document is empty if the driver is not connected to the server.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_last_update_time.html b/libmongoc/1.23.2/mongoc_server_description_last_update_time.html new file mode 100644 index 0000000000000000000000000000000000000000..31723e372daf6f30f8966093ec62629506cb7c2b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_last_update_time.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_server_description_last_update_time() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_last_update_time()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_server_description_last_update_time (const mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Get the last point in time when we processed a hello for this server, or, if we have not processed any hellos since creating the description, the time the server description was initialized.

    +
    +
    +

    Returns

    +

    The server’s last update time, in microseconds.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_new_copy.html b/libmongoc/1.23.2/mongoc_server_description_new_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..01f50c613805e55c59169ec32e5171412649f2ea --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_new_copy.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_server_description_new_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_new_copy()

    +
    +

    Synopsis

    +
    mongoc_server_description_t *
    +mongoc_server_description_new_copy (
    +   const mongoc_server_description_t *description) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a deep copy of description.

    +
    +
    +

    Returns

    +

    Returns a newly allocated copy of description that should be freed with mongoc_server_description_destroy() when no longer in use. Returns NULL if description is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_round_trip_time.html b/libmongoc/1.23.2/mongoc_server_description_round_trip_time.html new file mode 100644 index 0000000000000000000000000000000000000000..0da253ac4abc34c6193bf2d791ca84d320d1faec --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_round_trip_time.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_server_description_round_trip_time() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_round_trip_time()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_server_description_round_trip_time (
    +   const mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Get the server’s round trip time in milliseconds. This is the client’s measurement of the duration of a “hello” command.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_t.html b/libmongoc/1.23.2/mongoc_server_description_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a4a25e5143c7d53d886a1398496f1603d002d62d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_t.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_server_description_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_t

    +

    Server description

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +typedef struct _mongoc_server_description_t mongoc_server_description_t
    +
    +
    +

    mongoc_server_description_t holds information about a mongod or mongos the driver is connected to.

    +
    +
    +

    Lifecycle

    +

    Clean up a mongoc_server_description_t with mongoc_server_description_destroy() when necessary.

    +

    Applications receive a temporary reference to a mongoc_server_description_t as a parameter to an SDAM Monitoring callback that must not be destroyed. See +Introduction to Application Performance Monitoring.

    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_description_type.html b/libmongoc/1.23.2/mongoc_server_description_type.html new file mode 100644 index 0000000000000000000000000000000000000000..ca72fbd6a01cee272b35d90598b4457bc88a7c99 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_description_type.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_server_description_type() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_type()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_server_description_type (const mongoc_server_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function returns a string, one of the server types defined in the Server Discovery And Monitoring Spec:

    +
      +
    • Standalone

    • +
    • Mongos

    • +
    • PossiblePrimary

    • +
    • LoadBalancer

    • +
    • RSPrimary

    • +
    • RSSecondary

    • +
    • RSArbiter

    • +
    • RSOther

    • +
    • RSGhost

    • +
    • Unknown

    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_server_descriptions_destroy_all.html b/libmongoc/1.23.2/mongoc_server_descriptions_destroy_all.html new file mode 100644 index 0000000000000000000000000000000000000000..2ca993c0feffe7f5e8edc917b99ece4b063a219d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_server_descriptions_destroy_all.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_server_descriptions_destroy_all() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_descriptions_destroy_all()

    +
    +

    Synopsis

    +
    void
    +mongoc_server_descriptions_destroy_all (mongoc_server_description_t **sds,
    +                                        size_t n);
    +
    +
    +

    Frees the array of mongoc_server_description_t structs returned by mongoc_client_get_server_descriptions().

    +
    +
    +

    Parameters

    +
      +
    • sds: The array of server descriptions.

    • +
    • n: The number of elements in sds.

    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opt_t.html b/libmongoc/1.23.2/mongoc_session_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c2849e84c70e6a070181b47427eae3b234c346dc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opt_t.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_session_opt_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opt_t

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct _mongoc_session_opt_t mongoc_session_opt_t;
    +
    +
    +
    +

    Synopsis

    +

    Start a session with mongoc_client_start_session(), use the session for a sequence of operations and multi-document transactions, then free it with mongoc_client_session_destroy(). Any mongoc_cursor_t or mongoc_change_stream_t using a session must be destroyed before the session, and a session must be destroyed before the mongoc_client_t it came from.

    +

    By default, sessions are causally consistent. To disable causal consistency, before starting a session create a mongoc_session_opt_t with mongoc_session_opts_new() and call mongoc_session_opts_set_causal_consistency(), then free the struct with mongoc_session_opts_destroy().

    +

    Unacknowledged writes are prohibited with sessions.

    +

    A mongoc_client_session_t must be used by only one thread at a time. Due to session pooling, mongoc_client_start_session() may return a session that has been idle for some time and is about to be closed after its idle timeout. Use the session within one minute of acquiring it to refresh the session and avoid a timeout.

    +

    See the example code for mongoc_session_opts_set_causal_consistency().

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_clone.html b/libmongoc/1.23.2/mongoc_session_opts_clone.html new file mode 100644 index 0000000000000000000000000000000000000000..d984ed9aa3bf479fadbe7cbadcb41f5e0d8885f8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_clone.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + mongoc_session_opts_clone() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_clone()

    +
    +

    Synopsis

    +
    mongoc_session_opt_t *
    +mongoc_session_opts_clone (const mongoc_session_opt_t *opts)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Create a copy of a session options struct.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A new mongoc_session_opt_t that must be freed with mongoc_session_opts_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_destroy.html b/libmongoc/1.23.2/mongoc_session_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..bb2063bfcfad97973251dcbc70cb7b3a06b69faf --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_destroy.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_session_opts_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_session_opts_destroy (mongoc_session_opt_t *opts);
    +
    +
    +

    Free a mongoc_session_opt_t. Does nothing if opts is NULL.

    +
    +
    +

    Parameters

    + +
    +
    +

    Example

    +

    See the example code for mongoc_session_opts_set_causal_consistency().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_get_causal_consistency.html b/libmongoc/1.23.2/mongoc_session_opts_get_causal_consistency.html new file mode 100644 index 0000000000000000000000000000000000000000..f5a6dea920c72f4df080d2201e6bbf7b9baba2f3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_get_causal_consistency.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_causal_consistency() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_get_causal_consistency()

    +
    +

    Synopsis

    +
    bool
    +mongoc_session_opts_get_causal_consistency (const mongoc_session_opt_t *opts);
    +
    +
    +

    Return true if this session is configured for causal consistency (the default), else false. See mongoc_session_opts_set_causal_consistency().

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_get_default_transaction_opts.html b/libmongoc/1.23.2/mongoc_session_opts_get_default_transaction_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..2141fedee135f09ea78f9e1d5dcda500fd9666ee --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_get_default_transaction_opts.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_default_transaction_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_get_default_transaction_opts()

    +
    +

    Synopsis

    +
    const mongoc_transaction_opt_t *
    +mongoc_session_opts_get_default_transaction_opts (const mongoc_session_opt_t *opts);
    +
    +
    +

    The default options for transactions started with this session. See mongoc_session_opts_set_default_transaction_opts().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_transaction_opt_t that is valid only for the lifetime of opts.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_get_snapshot.html b/libmongoc/1.23.2/mongoc_session_opts_get_snapshot.html new file mode 100644 index 0000000000000000000000000000000000000000..c9bece801d56dc1378d6b8e562d502615b10c63d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_get_snapshot.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_snapshot() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_get_snapshot()

    +
    +

    Synopsis

    +
    bool
    +mongoc_session_opts_get_snapshot (const mongoc_session_opt_t *opts);
    +
    +
    +

    Return true if this session is configured for snapshot reads, false by default. See mongoc_session_opts_set_snapshot().

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_get_transaction_opts.html b/libmongoc/1.23.2/mongoc_session_opts_get_transaction_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..f3375c9c9cdf8d619bd9b8df397ff1ee5f503630 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_get_transaction_opts.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_transaction_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_get_transaction_opts()

    +
    +

    Synopsis

    +
    mongoc_transaction_opt_t *
    +mongoc_session_opts_get_transaction_opts (
    +   const mongoc_client_session_t *session) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    The options for the current transaction started with this session.

    +

    If this session is not in a transaction, then the returned value is NULL. See mongoc_client_session_in_transaction().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    If the session is in a transaction, a new mongoc_transaction_opt_t that must be freed with mongoc_transaction_opts_destroy(). Otherwise, NULL.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_new.html b/libmongoc/1.23.2/mongoc_session_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..9641286889149c1fd9e47c050294480ea305f2c9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_new.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_session_opts_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_new()

    +
    +

    Synopsis

    +
    mongoc_session_opt_t *
    +mongoc_session_opts_new (void);
    +
    +
    +

    Start a session with mongoc_client_start_session(), use the session for a sequence of operations and multi-document transactions, then free it with mongoc_client_session_destroy(). Any mongoc_cursor_t or mongoc_change_stream_t using a session must be destroyed before the session, and a session must be destroyed before the mongoc_client_t it came from.

    +

    By default, sessions are causally consistent. To disable causal consistency, before starting a session create a mongoc_session_opt_t with mongoc_session_opts_new() and call mongoc_session_opts_set_causal_consistency(), then free the struct with mongoc_session_opts_destroy().

    +

    Unacknowledged writes are prohibited with sessions.

    +

    A mongoc_client_session_t must be used by only one thread at a time. Due to session pooling, mongoc_client_start_session() may return a session that has been idle for some time and is about to be closed after its idle timeout. Use the session within one minute of acquiring it to refresh the session and avoid a timeout.

    +

    See the example code for mongoc_session_opts_set_causal_consistency().

    +
    +
    +

    Returns

    +

    A new mongoc_session_opt_t that must be freed with mongoc_session_opts_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_set_causal_consistency.html b/libmongoc/1.23.2/mongoc_session_opts_set_causal_consistency.html new file mode 100644 index 0000000000000000000000000000000000000000..fa640a1ea699de94a6755f048aac12b84603f8fc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_set_causal_consistency.html @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + mongoc_session_opts_set_causal_consistency() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_set_causal_consistency()

    +
    +

    Synopsis

    +
    void
    +mongoc_session_opts_set_causal_consistency (mongoc_session_opt_t *opts,
    +                                            bool causal_consistency);
    +
    +
    +

    Configure causal consistency in a session. If true (the default), each operation in the session will be causally ordered after the previous read or write operation. Set to false to disable causal consistency. See the MongoDB Manual Entry for Causal Consistency.

    +

    Causal consistency and snapshot reads are mutually exclusive. Attempting to set both to true will result in an error. See mongoc_session_opts_set_snapshot().

    +

    Unacknowledged writes are not causally consistent. If you execute a write operation with a mongoc_write_concern_t on which you have called mongoc_write_concern_set_w() with a value of 0, the write does not participate in causal consistency.

    +
    +
    +

    Parameters

    + +
    +
    +

    Example

    +
    mongoc_client_t *client;
    +mongoc_session_opt_t *session_opts;
    +mongoc_client_session_t *client_session;
    +mongoc_collection_t *collection;
    +bson_t insert_opts = BSON_INITIALIZER;
    +bson_t *doc;
    +bson_error_t error;
    +bool r;
    +
    +client = mongoc_client_new ("mongodb://example/?appname=session-opts-example");
    +mongoc_client_set_error_api (client, 2);
    +
    +session_opts = mongoc_session_opts_new ();
    +mongoc_session_opts_set_causal_consistency (session_opts, false);
    +client_session = mongoc_client_start_session (client, session_opts, &error);
    +mongoc_session_opts_destroy (session_opts);
    +
    +if (!client_session) {
    +   fprintf (stderr, "Failed to start session: %s\n", error.message);
    +   abort ();
    +}
    +
    +collection = mongoc_client_get_collection (client, "test", "collection");
    +doc = BCON_NEW ("_id", BCON_INT32 (1));
    +r = mongoc_client_session_append (client_session, &insert_opts, NULL);
    +if (!r) {
    +   fprintf (stderr, "mongoc_client_session_append failed: %s\n", error.message);
    +   abort ();
    +}
    +
    +r = mongoc_collection_insert_one (
    +   collection, doc, &insert_opts, NULL /* reply */, &error);
    +
    +if (!r) {
    +   fprintf (stderr, "Insert failed: %s\n", error.message);
    +   abort ();
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_set_default_transaction_opts.html b/libmongoc/1.23.2/mongoc_session_opts_set_default_transaction_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..b23c1769655217b9b5b5b1ffd4bbfe92c7b2aff2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_set_default_transaction_opts.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + mongoc_session_opts_set_default_transaction_opts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_set_default_transaction_opts()

    +
    +

    Synopsis

    +
    void
    +mongoc_session_opts_set_default_transaction_opts (
    +   mongoc_session_opt_t *opts, const mongoc_transaction_opt_t *txn_opts);
    +
    +
    +

    Set the default options for transactions started with this session. The txn_opts argument is copied and can be freed after calling this function.

    +

    When a session is first created with mongoc_client_start_session(), it inherits from the client the read concern, write concern, and read preference with which to start transactions. Each of these fields can be overridden independently. Create a mongoc_transaction_opt_t with mongoc_transaction_opts_new(), and pass a non-NULL option to any of the mongoc_transaction_opt_t setter functions:

    + +

    Pass the resulting transaction options to mongoc_session_opts_set_default_transaction_opts(). Each field set in the transaction options overrides the inherited client configuration. There is an opportunity to override each one of these fields again by passing a mongoc_transaction_opt_t to mongoc_client_session_start_transaction().

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_session_opts_set_snapshot.html b/libmongoc/1.23.2/mongoc_session_opts_set_snapshot.html new file mode 100644 index 0000000000000000000000000000000000000000..c43f582772d7de1d312a7da2c61c2a085f7aed37 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_session_opts_set_snapshot.html @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + mongoc_session_opts_set_snapshot() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_session_opts_set_snapshot()

    +
    +

    Synopsis

    +
    void
    +mongoc_session_opts_set_snapshot (mongoc_session_opt_t *opts,
    +                                  bool snapshot);
    +
    +
    +

    Configure snapshot reads for a session. If true (false by default), each read operation in the session will be sent with a “snapshot” level read concern. After the first read operation (“find”, “aggregate” or “distinct”), subsequent read operations will read from the same point in time as the first read operation. Set to true to enable snapshot reads. See the official documentation for Read Concern “snapshot”.

    +

    Snapshot reads and causal consistency are mutually exclusive. Attempting to set both to true will result in an error. See mongoc_session_opts_set_causal_consistency().

    +

    Snapshot reads can only be used on MongoDB server version 5.0 and later and cannot be used during a transaction. A write operation in a snapshot-enabled session will also result in an error.

    +
    +
    +

    Parameters

    + +
    +
    +

    Example

    +
    mongoc_client_t *client;
    +mongoc_session_opt_t *session_opts;
    +mongoc_client_session_t *client_session;
    +mongoc_collection_t *collection;
    +bson_t query_opts = BSON_INITIALIZER;
    +bson_t filter = BSON_INITIALIZER;
    +bson_t pipeline = BSON_INITIALIZER;
    +
    +client = mongoc_client_new ("mongodb://example/?appname=session-opts-example");
    +mongoc_client_set_error_api (client, MONGOC_ERROR_API_VERSION_2);
    +
    +session_opts = mongoc_session_opts_new ();
    +mongoc_session_opts_set_snapshot (session_opts, true);
    +client_session = mongoc_client_start_session (client, session_opts, &error);
    +mongoc_session_opts_destroy (session_opts);
    +
    +if (!client_session) {
    +   fprintf (stderr, "Failed to start session: %s\n", error.message);
    +   abort ();
    +}
    +
    +collection = mongoc_client_get_collection (client, "test", "collection");
    +r = mongoc_client_session_append (client_session, &find_opts, &error);
    +if (!r) {
    +   fprintf (stderr, "mongoc_client_session_append failed: %s\n", error.message);
    +   abort ();
    +}
    +
    +/* First read operation will set the snapshot time for subsequent reads. */
    +cursor = mongoc_collection_find_with_opts (collection, filter, &query_opts, NULL);
    +
    +/* Subsequent read operations will automatically read from the same point
    + * in time as the first read operation. */
    +cursor = mongoc_collection_aggregate (collection, MONGOC_QUERY_NONE, pipeline, &query_opts, NULL);
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_accept.html b/libmongoc/1.23.2/mongoc_socket_accept.html new file mode 100644 index 0000000000000000000000000000000000000000..fccb74df1693709413b784f8615a57d78981ec2b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_accept.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_socket_accept() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_accept()

    +
    +

    Synopsis

    +
    mongoc_socket_t *
    +mongoc_socket_accept (mongoc_socket_t *sock,
    +                      int64_t expire_at) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • expire_at: An int64_t containing a timeout in milliseconds.

    • +
    +
    +
    +

    Description

    +

    This function is a wrapper around the BSD socket accept() interface. It allows for more portability between UNIX-like and Microsoft Windows platforms.

    +
    +
    +

    Returns

    +

    NULL upon failure to accept or timeout. A newly allocated mongoc_socket_t that should be released with mongoc_socket_destroy() on success.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_bind.html b/libmongoc/1.23.2/mongoc_socket_bind.html new file mode 100644 index 0000000000000000000000000000000000000000..56625bb0a8538c98ffdb1d029419451c4fcef487 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_bind.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_socket_bind() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_bind()

    +
    +

    Synopsis

    +
    int
    +mongoc_socket_bind (mongoc_socket_t *sock,
    +                    const struct sockaddr *addr,
    +                    mongoc_socklen_t addrlen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • addr: A struct sockaddr.

    • +
    • addrlen: A mongoc_socklen_t.

    • +
    +
    +
    +

    Description

    +

    This function is a wrapper around the BSD socket bind() interface. It provides better portability between UNIX-like and Microsoft Windows platforms.

    +
    +
    +

    Returns

    +

    0 on success, -1 on failure and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_close.html b/libmongoc/1.23.2/mongoc_socket_close.html new file mode 100644 index 0000000000000000000000000000000000000000..f87518828ea234559bfd09e708c1da00a7d8a456 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_close.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_socket_close() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_close()

    +
    +

    Synopsis

    +
    int
    +mongoc_socket_close (mongoc_socket_t *socket);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function is a wrapper around the BSD socket shutdown() and close() functions, and their Windows equivalents. The socket is shut down only if the current process is the same as the process that opened the socket. Regardless, the socket is then closed.

    +
    +
    +

    Returns

    +

    0 on success, -1 on failure to close the socket. On failure, the socket’s errno is set; retrieve it with mongoc_socket_errno().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_connect.html b/libmongoc/1.23.2/mongoc_socket_connect.html new file mode 100644 index 0000000000000000000000000000000000000000..bd5fb763274c07463147603ab8f3d11fc8140b53 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_connect.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_socket_connect() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_connect()

    +
    +

    Synopsis

    +
    int
    +mongoc_socket_connect (mongoc_socket_t *sock,
    +                       const struct sockaddr *addr,
    +                       mongoc_socklen_t addrlen,
    +                       int64_t expire_at);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • addr: A struct sockaddr.

    • +
    • addrlen: A mongoc_socklen_t.

    • +
    • expire_at: A int64_t containing the absolute timeout using the monotonic clock.

    • +
    +
    +
    +

    Description

    +

    This function is a wrapper around the BSD socket connect() interface. It provides better portability between UNIX-like and Microsoft Windows platforms.

    +

    This function performs a socket connection but will fail if expire_at has been reached by the monotonic clock. Keep in mind that this is an absolute timeout in milliseconds. You should add your desired timeout to System Clock.

    +
    +
    +

    Returns

    +

    0 if successful, -1 on failure and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_destroy.html b/libmongoc/1.23.2/mongoc_socket_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..b190f06f6ad68928df46a4a7108a3fae29640e8d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_socket_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_socket_destroy (mongoc_socket_t *sock);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function releases all resources associated with a mongoc_socket_t. This should be called when you are no longer using the socket. Does nothing if sock is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_errno.html b/libmongoc/1.23.2/mongoc_socket_errno.html new file mode 100644 index 0000000000000000000000000000000000000000..569604b577f04a04bfd1fddf5b581291bdf32849 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_errno.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_socket_errno() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_errno()

    +
    +

    Synopsis

    +
    int
    +mongoc_socket_errno (mongoc_socket_t *sock);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function returns the currently captured errno for a socket. This may be useful to check was the last errno was after another function call has been made that clears the threads errno variable.

    +
    +
    +

    Returns

    +

    0 if there is no error, otherwise a specific errno.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_getnameinfo.html b/libmongoc/1.23.2/mongoc_socket_getnameinfo.html new file mode 100644 index 0000000000000000000000000000000000000000..b9eac498ff0264b37010650f64c34beb4028ba9b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_getnameinfo.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_socket_getnameinfo() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_getnameinfo()

    +
    +

    Synopsis

    +
    char *
    +mongoc_socket_getnameinfo (mongoc_socket_t *sock) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This is a helper around getting the local name of a socket. It is a wrapper around getpeername() and getnameinfo().

    +
    +
    +

    Returns

    +

    A newly allocated string that should be freed with bson_free().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_getsockname.html b/libmongoc/1.23.2/mongoc_socket_getsockname.html new file mode 100644 index 0000000000000000000000000000000000000000..ea5e6086360de300699b34cc8a247e66e99ce712 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_getsockname.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_socket_getsockname() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_getsockname()

    +
    +

    Synopsis

    +
    int
    +mongoc_socket_getsockname (mongoc_socket_t *sock,
    +                           struct sockaddr *addr,
    +                           mongoc_socklen_t *addrlen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • addr: A struct sockaddr.

    • +
    • addrlen: A mongoc_socklen_t.

    • +
    +
    +
    +

    Description

    +

    Retrieves the socket name for sock. The result is stored in addr. addrlen should be the size of the addr when calling this.

    +
    +
    +

    Returns

    +

    0 if successful, otherwise -1 and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_listen.html b/libmongoc/1.23.2/mongoc_socket_listen.html new file mode 100644 index 0000000000000000000000000000000000000000..6c94c69eb51b571a7b54099f73a6ca19644a9897 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_listen.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_socket_listen() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_listen()

    +
    +

    Synopsis

    +
    int
    +mongoc_socket_listen (mongoc_socket_t *sock, unsigned int backlog);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function is similar to the BSD sockets listen() function. It is meant for socket servers.

    +
    +
    +

    Returns

    +

    0 on success, -1 on failure and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_new.html b/libmongoc/1.23.2/mongoc_socket_new.html new file mode 100644 index 0000000000000000000000000000000000000000..a22c2840731c0b160786a77553e2c661556c4fa0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_new.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_socket_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_new()

    +
    +

    Synopsis

    +
    mongoc_socket_t *
    +mongoc_socket_new (int domain,
    +                   int type,
    +                   int protocol) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • domain: An int containing the address family such as AF_INET.

    • +
    • type: An int containing the socket type such as SOCK_STREAM.

    • +
    • protocol: A protocol subset, typically 0.

    • +
    +
    +
    +

    Description

    +

    Creates a new mongoc_socket_t structure. This calls socket() underneath to create a network socket.

    +
    +
    +

    Returns

    +

    A new socket if successful, otherwise NULL and errno is set. The result should be freed with mongoc_socket_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_recv.html b/libmongoc/1.23.2/mongoc_socket_recv.html new file mode 100644 index 0000000000000000000000000000000000000000..4ec710755f81039c99ce5ef4a75da31a28f4a706 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_recv.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_socket_recv() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_recv()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_socket_recv (mongoc_socket_t *sock,
    +                    void *buf,
    +                    size_t buflen,
    +                    int flags,
    +                    int64_t expire_at);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • buf: A buffer to read into.

    • +
    • buflen: A size_t with the number of bytes to receive.

    • +
    • flags: flags for recv().

    • +
    • expire_at: A int64_t with the time to expire in monotonic time using System Clock, which is in microseconds.

    • +
    +
    +
    +

    Description

    +

    This function performs a recv() on the underlying socket.

    +
    +
    +

    Returns

    +

    The number of bytes received on success, 0 on stream closed, and -1 if there was a failure and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_send.html b/libmongoc/1.23.2/mongoc_socket_send.html new file mode 100644 index 0000000000000000000000000000000000000000..a8b5ebd65bb3295be630ad2693b3fb3d785d13e7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_send.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_socket_send() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_send()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_socket_send (mongoc_socket_t *sock,
    +                    const void *buf,
    +                    size_t buflen,
    +                    int64_t expire_at);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • buf: A buffer to send.

    • +
    • buflen: A size_t with the number of bytes in buf.

    • +
    • expire_at: A int64_t with an absolute timeout for the operation or 0. The timeout is in monotonic time using microseconds. You can retrieve the current monotonic time with System Clock.

    • +
    +
    +
    +

    Description

    +

    Sends buflen bytes in buf to the destination. If a timeout expired, the number of bytes sent will be returned or -1 if no bytes were sent.

    +
    +
    +

    Returns

    +

    -1 on failure and errno is set, or the number of bytes sent.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_sendv.html b/libmongoc/1.23.2/mongoc_socket_sendv.html new file mode 100644 index 0000000000000000000000000000000000000000..b61d614124733ca9da0833d913dd2144524641b9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_sendv.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_socket_sendv() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_sendv()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_socket_sendv (mongoc_socket_t *sock,
    +                     mongoc_iovec_t *iov,
    +                     size_t iovcnt,
    +                     int64_t expire_at);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • iov: A mongoc_iovec_t.

    • +
    • iovcnt: A size_t containing the number of elements in iov.

    • +
    • expire_at: A int64_t with absolute timeout in monotonic time. The monotonic clock is in microseconds and can be fetched using System Clock.

    • +
    +
    +
    +

    Description

    +

    Sends a vector of buffers to the destination. This uses sendmsg() when available to perform a gathered write. If IOV_MAX is reached, a fallback will be used.

    +
    +
    +

    Returns

    +

    the number of bytes sent on success, or -1 on failure and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_setsockopt.html b/libmongoc/1.23.2/mongoc_socket_setsockopt.html new file mode 100644 index 0000000000000000000000000000000000000000..7c14eafb9002c86497701f4355a33509a95e5505 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_setsockopt.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_socket_setsockopt() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_setsockopt()

    +
    +

    Synopsis

    +
    int
    +mongoc_socket_setsockopt (mongoc_socket_t *sock,
    +                          int level,
    +                          int optname,
    +                          const void *optval,
    +                          mongoc_socklen_t optlen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • sock: A mongoc_socket_t.

    • +
    • level: A sockopt level.

    • +
    • optname: A sockopt name.

    • +
    • optval: A the value for the sockopt.

    • +
    • optlen: A mongoc_socklen_t that contains the length of optval.

    • +
    +
    +
    +

    Description

    +

    This is a helper function for setsockopt().

    +
    +
    +

    Returns

    +

    0 on success, -1 on failure and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_socket_t.html b/libmongoc/1.23.2/mongoc_socket_t.html new file mode 100644 index 0000000000000000000000000000000000000000..2218a5f337d412f4b4d210e1a9edc55923b31f83 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_socket_t.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_socket_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_socket_t

    +

    Portable socket abstraction

    +
    +

    Synopsis

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct _mongoc_socket_t mongoc_socket_t
    +
    +
    +
    +
    +

    Synopsis

    +

    This structure provides a socket abstraction that is friendlier for portability than BSD sockets directly. Inconsistencies between Linux, various BSDs, Solaris, and Windows are handled here.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_ssl_opt_get_default.html b/libmongoc/1.23.2/mongoc_ssl_opt_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..1d4563af0291288591a7d33cc29cc88f6ddc7bc9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_ssl_opt_get_default.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_ssl_opt_get_default() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_ssl_opt_get_default()

    +
    +

    Synopsis

    +
    const mongoc_ssl_opt_t *
    +mongoc_ssl_opt_get_default (void) BSON_GNUC_PURE;
    +
    +
    +
    +
    +

    Returns

    +

    Returns the default SSL options for the process. This should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_ssl_opt_t.html b/libmongoc/1.23.2/mongoc_ssl_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1b5cfca00afd8b255edb4da37d8759c21e3b265b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_ssl_opt_t.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_ssl_opt_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_ssl_opt_t

    +
    +

    Synopsis

    +
    typedef struct {
    +   const char *pem_file;
    +   const char *pem_pwd;
    +   const char *ca_file;
    +   const char *ca_dir;
    +   const char *crl_file;
    +   bool weak_cert_validation;
    +   bool allow_invalid_hostname;
    +   void *internal;
    +   void *padding[6];
    +} mongoc_ssl_opt_t;
    +
    +
    +
    +
    +

    Description

    +

    This structure is used to set the TLS options for a mongoc_client_t or mongoc_client_pool_t.

    +

    Beginning in version 1.2.0, once a pool or client has any TLS options set, all connections use TLS, even if ssl=true is omitted from the MongoDB URI. Before, TLS options were ignored unless tls=true was included in the URI.

    +

    As of 1.4.0, the mongoc_client_pool_set_ssl_opts() and mongoc_client_set_ssl_opts() will not only shallow copy the struct, but will also copy the const char*. It is therefore no longer needed to make sure the values remain valid after setting them.

    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_buffered_new.html b/libmongoc/1.23.2/mongoc_stream_buffered_new.html new file mode 100644 index 0000000000000000000000000000000000000000..b6034a83112dcd6b5516294b8bb9f10ffb564128 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_buffered_new.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_stream_buffered_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_buffered_new()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_stream_buffered_new (mongoc_stream_t *base_stream,
    +                        size_t buffer_size) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • base_stream: A mongoc_stream_t to buffer.

    • +
    • buffer_size: A size_t containing the desired buffer size.

    • +
    +

    This function shall create a new mongoc_stream_t that buffers bytes to and from the underlying base_stream.

    +

    buffer_size will be used as the initial buffer size. It may grow past this size.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_stream_buffered_t on success, otherwise NULL. This should be freed with mongoc_stream_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_buffered_t.html b/libmongoc/1.23.2/mongoc_stream_buffered_t.html new file mode 100644 index 0000000000000000000000000000000000000000..4955e831c276841964ab5e537734d0cf4fd01559 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_buffered_t.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_stream_buffered_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_buffered_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_stream_buffered_t mongoc_stream_buffered_t;
    +
    +
    +
    +
    +

    Description

    +

    mongoc_stream_buffered_t should be considered a subclass of mongoc_stream_t. It performs buffering on an underlying stream.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_close.html b/libmongoc/1.23.2/mongoc_stream_close.html new file mode 100644 index 0000000000000000000000000000000000000000..e129c026bea7da43ee51907c1a6239978c4347fb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_close.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_stream_close() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_close()

    +
    +

    Synopsis

    +
    int
    +mongoc_stream_close (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall close underlying file-descriptors of stream.

    +
    +
    +

    Returns

    +

    0 on success, otherwise -1 and errno is set.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_cork.html b/libmongoc/1.23.2/mongoc_stream_cork.html new file mode 100644 index 0000000000000000000000000000000000000000..d82db0e1ed37aaca93e65f8ed326f58f0a7fd66b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_cork.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_stream_cork() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_cork()

    +
    +

    Synopsis

    +
    int
    +mongoc_stream_cork (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall prevent the writing of bytes to the underlying socket.

    +
    +

    Note

    +

    Not all streams implement this function. Buffering generally works better.

    +
    +
    +
    +

    Returns

    +

    0 on success, -1 on failure and errno is set.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_destroy.html b/libmongoc/1.23.2/mongoc_stream_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..36c794afc6f979551f20e623e2b378cd8f33d89c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_stream_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_stream_destroy (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall release all resources associated with a mongoc_stream_t, including freeing the structure. It is invalid to use stream after calling this function. Does nothing if stream is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_file_get_fd.html b/libmongoc/1.23.2/mongoc_stream_file_get_fd.html new file mode 100644 index 0000000000000000000000000000000000000000..f9c80a840b676c1592e6c2826b277595f897dfc2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_file_get_fd.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_stream_file_get_fd() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_file_get_fd()

    +
    +

    Synopsis

    +
    int
    +mongoc_stream_file_get_fd (mongoc_stream_file_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall return the underlying file-descriptor of a mongoc_stream_file_t.

    +
    +

    Warning

    +

    Performing operations on the underlying file-descriptor may not be safe if used in conjunction with buffering. Avoid reading or writing from this file-descriptor.

    +
    +
    +
    +

    Returns

    +

    A file-descriptor that should not be modified by the caller.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_file_new.html b/libmongoc/1.23.2/mongoc_stream_file_new.html new file mode 100644 index 0000000000000000000000000000000000000000..eed95a449636747e371199f829988e1cf693704f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_file_new.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_stream_file_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_file_new()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_stream_file_new (int fd) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • fd: A UNIX style file-descriptor.

    • +
    +

    Creates a new mongoc_stream_file_t using the file-descriptor provided.

    +
    +
    +

    Returns

    +

    NULL upon failure, otherwise a newly allocated mongoc_stream_file_t that should be freed with mongoc_stream_destroy() when no longer in use.

    +

    errno is set upon failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_file_new_for_path.html b/libmongoc/1.23.2/mongoc_stream_file_new_for_path.html new file mode 100644 index 0000000000000000000000000000000000000000..2d21ebaa09aed46bc33e332a8fac0efb03779846 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_file_new_for_path.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_stream_file_new_for_path() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_file_new_for_path()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_stream_file_new_for_path (const char *path,
    +                                 int flags,
    +                                 int mode) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • path: The path of the target file.

    • +
    • flags: Flags to be passed to open().

    • +
    • mode: An optional mode to be passed to open() when creating a file.

    • +
    +

    This function shall create a new mongoc_stream_file_t after opening the underlying file with open() or the platform equivalent.

    +
    +
    +

    Returns

    +

    NULL on failure, otherwise a newly allocated mongoc_stream_file_t that should be freed with mongoc_stream_destroy() when no longer in use.

    +

    errno is set upon failure.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_file_t.html b/libmongoc/1.23.2/mongoc_stream_file_t.html new file mode 100644 index 0000000000000000000000000000000000000000..756bedf2213acb5a10bbbb41eb3dd77573810586 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_file_t.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_stream_file_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_file_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_stream_file_t mongoc_stream_file_t
    +
    +
    +

    mongoc_stream_file_t is a mongoc_stream_t subclass for working with standard UNIX style file-descriptors.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_flush.html b/libmongoc/1.23.2/mongoc_stream_flush.html new file mode 100644 index 0000000000000000000000000000000000000000..702bf25b1cfdd5a206a2df071228bff3083cebd7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_flush.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_stream_flush() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_flush()

    +
    +

    Synopsis

    +
    int
    +mongoc_stream_flush (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall flush any buffered bytes in the underlying stream to the physical transport. It mimics the API and semantics of fflush(), forcing a write of user space buffered data.

    +

    Not all stream implementations may implement this feature.

    +
    +
    +

    Returns

    +

    0 is returned on success, otherwise -1 and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_get_base_stream.html b/libmongoc/1.23.2/mongoc_stream_get_base_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..36c0b8749cbf94c23d5ded58d7c07447f0241459 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_get_base_stream.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_stream_get_base_stream() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_get_base_stream()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_stream_get_base_stream (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall fetch the underlying stream for streams that wrap a base stream. Such implementations include mongoc_stream_buffered_t and mongoc_stream_tls_t.

    +
    +
    +

    Returns

    +

    A mongoc_stream_t or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_gridfs_new.html b/libmongoc/1.23.2/mongoc_stream_gridfs_new.html new file mode 100644 index 0000000000000000000000000000000000000000..d86db01dad1a52972698fa32325e4f12d0910cfe --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_gridfs_new.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_stream_gridfs_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_gridfs_new()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_stream_gridfs_new (mongoc_gridfs_file_t *file)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall create a new mongoc_stream_t to read from and write to a GridFS file. GridFS files are created with mongoc_gridfs_create_file() or mongoc_gridfs_create_file_from_stream().

    +

    This function does not transfer ownership of file. Therefore, file must remain valid for the lifetime of this stream.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_stream_t if successful, otherwise NULL.

    +

    Note, the returned stream ignores read and write timeouts passed to mongoc_stream_readv(), mongoc_stream_writev(), and so on. It uses the “socketTimeoutMS” and “connectTimeoutMS” values from the MongoDB URI.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_read.html b/libmongoc/1.23.2/mongoc_stream_read.html new file mode 100644 index 0000000000000000000000000000000000000000..73d40b680fe220a953b3c5f2a4648b5f4bf6304b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_read.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_stream_read() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_read()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_stream_read (mongoc_stream_t *stream,
    +                    void *buf,
    +                    size_t count,
    +                    size_t min_bytes,
    +                    int32_t timeout_msec);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • stream: A mongoc_stream_t.

    • +
    • buf: The buffer to read into.

    • +
    • count: The number of bytes to read.

    • +
    • min_bytes: The minimum number of bytes to read, or else indicate failure.

    • +
    • timeout_msec: The number of milliseconds to wait before failure, a timeout of 0 will not block. If negative, use the default timeout.

    • +
    +

    The mongoc_stream_read() function shall perform a read from a mongoc_stream_t. It’s modeled on the API and semantics of read(), though the parameters map only loosely.

    +
    +
    +

    Returns

    +

    The mongoc_stream_read() function returns the number of bytes read on success. It returns >= 0 and < min_bytes when end-of-file is encountered and -1 on failure. errno is set upon failure.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_readv.html b/libmongoc/1.23.2/mongoc_stream_readv.html new file mode 100644 index 0000000000000000000000000000000000000000..efec08aba5737c5a6b287098ea8c7e170c8970e0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_readv.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_stream_readv() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_readv()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_stream_readv (mongoc_stream_t *stream,
    +                     mongoc_iovec_t *iov,
    +                     size_t iovcnt,
    +                     size_t min_bytes,
    +                     int32_t timeout_msec);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • stream: A mongoc_stream_t.

    • +
    • iov: A vector of mongoc_iovec_t.

    • +
    • iovcnt: The number of items in iov.

    • +
    • min_bytes: The minimum number of bytes to read or failure will be indicated.

    • +
    • timeout_msec: A timeout in milliseconds, or 0 to indicate non-blocking. A negative value with use the default timeout.

    • +
    +

    This function is identical to mongoc_stream_read() except that it takes a mongoc_iovec_t to perform gathered I/O.

    +
    +
    +

    Returns

    +

    >= 0 on success, -1 on failure and errno is set.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_setsockopt.html b/libmongoc/1.23.2/mongoc_stream_setsockopt.html new file mode 100644 index 0000000000000000000000000000000000000000..dd3c3a3821956691321a2955f1a8989cb0276ae6 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_setsockopt.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_stream_setsockopt() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_setsockopt()

    +
    +

    Synopsis

    +
    int
    +mongoc_stream_setsockopt (mongoc_stream_t *stream,
    +                          int level,
    +                          int optname,
    +                          void *optval,
    +                          mongoc_socklen_t optlen);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • stream: A mongoc_stream_t.

    • +
    • level: The level to pass to setsockopt().

    • +
    • optname: The optname to pass to setsockopt().

    • +
    • optval: The optval to pass to setsockopt().

    • +
    • optlen: The optlen to pass to setsockopt().

    • +
    +

    This function is a wrapper around setsockopt() for streams that wrap sockets.

    +
    +
    +

    Returns

    +

    0 on success, otherwise -1 and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_should_retry.html b/libmongoc/1.23.2/mongoc_stream_should_retry.html new file mode 100644 index 0000000000000000000000000000000000000000..be1d62e74c6f48f51e72126c48e29987f6aa4190 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_should_retry.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_stream_should_retry() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_should_retry()

    +
    +

    Synopsis

    +
    bool
    +mongoc_stream_should_retry (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True if the stream is open and has encountered a retryable network error such as EAGAIN or if a TLS exchange is in progress and needs more data.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_socket_get_socket.html b/libmongoc/1.23.2/mongoc_stream_socket_get_socket.html new file mode 100644 index 0000000000000000000000000000000000000000..8201a2f37bff31afa8363f80fdd0a837a799c200 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_socket_get_socket.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_stream_socket_get_socket() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_socket_get_socket()

    +
    +

    Synopsis

    +
    mongoc_socket_t *
    +mongoc_stream_socket_get_socket (mongoc_stream_socket_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    Retrieves the underlying mongoc_socket_t for a mongoc_stream_socket_t.

    +
    +
    +

    Returns

    +

    A mongoc_stream_socket_t.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_socket_new.html b/libmongoc/1.23.2/mongoc_stream_socket_new.html new file mode 100644 index 0000000000000000000000000000000000000000..01a4ca7b97d46ea7399e46b485f216d7fb169625 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_socket_new.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_stream_socket_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_socket_new()

    +
    +

    Synopsis

    +
    mongoc_stream_t *
    +mongoc_stream_socket_new (mongoc_socket_t *socket)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +

    Creates a new mongoc_stream_socket_t using the mongoc_socket_t provided.

    +
    +

    Warning

    +

    This function transfers ownership of socket to the newly allocated stream.

    +
    +
    +
    +

    Returns

    +

    A newly allocated mongoc_stream_socket_t that should be freed with mongoc_stream_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_socket_t.html b/libmongoc/1.23.2/mongoc_stream_socket_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f8085613edc535dc5000b060a9bbdda78258b70d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_socket_t.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_stream_socket_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_socket_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_stream_socket_t mongoc_stream_socket_t
    +
    +
    +

    mongoc_stream_socket_t should be considered a subclass of mongoc_stream_t that works upon socket streams.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_t.html b/libmongoc/1.23.2/mongoc_stream_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a9c74ce480aaf77df5d95a773ccd95bec505b829 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_t.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_stream_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_stream_t mongoc_stream_t
    +
    +
    +

    mongoc_stream_t provides a generic streaming IO abstraction based on a struct of pointers interface. The idea is to allow wrappers, perhaps other language drivers, to easily shim their IO system on top of mongoc_stream_t.

    +

    The API for the stream abstraction is currently private and non-extensible.

    +
    +
    +

    Stream Types

    +

    There are a number of built in stream types that come with mongoc. The default configuration is a buffered unix stream. If TLS is in use, that in turn is wrapped in a tls stream.

    + +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_timed_out.html b/libmongoc/1.23.2/mongoc_stream_timed_out.html new file mode 100644 index 0000000000000000000000000000000000000000..b383e36a3fcaf20101d1c4f2d699539a0fac7b79 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_timed_out.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_stream_timed_out() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_timed_out()

    +
    +

    Synopsis

    +
    bool
    +mongoc_stream_timed_out (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True if there has been a network timeout error on this stream.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_tls_t.html b/libmongoc/1.23.2/mongoc_stream_tls_t.html new file mode 100644 index 0000000000000000000000000000000000000000..e28d344f006e817f53ef628c959196c104e2c787 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_tls_t.html @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + mongoc_stream_tls_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_tls_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_stream_tls_t mongoc_stream_tls_t
    +
    +
    +

    mongoc_stream_tls_t is a mongoc_stream_t subclass for working with TLS streams.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_uncork.html b/libmongoc/1.23.2/mongoc_stream_uncork.html new file mode 100644 index 0000000000000000000000000000000000000000..59a00eabf1953441598f79bca41ff9d66e1371ca --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_uncork.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_stream_uncork() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_uncork()

    +
    +

    Synopsis

    +
    int
    +mongoc_stream_uncork (mongoc_stream_t *stream);
    +
    +
    +
    +
    +

    Parameters

    + +

    This function shall allow a previously corked socket to pass bytes to the underlying socket.

    +
    +

    Note

    +

    Not all streams implement this function. Buffering generally works better.

    +
    +
    +
    +

    Returns

    +

    0 on success, -1 on failure and errno is set.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_write.html b/libmongoc/1.23.2/mongoc_stream_write.html new file mode 100644 index 0000000000000000000000000000000000000000..009cc88a9802af24ec76055bdd9d32f9700753af --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_write.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_stream_write() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_write()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_stream_write (mongoc_stream_t *stream,
    +                     void *buf,
    +                     size_t count,
    +                     int32_t timeout_msec);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • stream: A mongoc_stream_t.

    • +
    • buf: The buffer to write.

    • +
    • count: The number of bytes to write.

    • +
    • timeout_msec: The number of milliseconds to wait before failure, a timeout of 0 will not block. If negative, use the default timeout.

    • +
    +

    The mongoc_stream_write() function shall perform a write to a mongoc_stream_t. It’s modeled on the API and semantics of write(), though the parameters map only loosely.

    +
    +
    +

    Returns

    +

    The mongoc_stream_write() function returns the number of bytes written on success. It returns -1 and sets errno upon failure.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_stream_writev.html b/libmongoc/1.23.2/mongoc_stream_writev.html new file mode 100644 index 0000000000000000000000000000000000000000..74cb03a53e552cbd3feaadabae5e3cf4f2132426 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_stream_writev.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_stream_writev() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_stream_writev()

    +
    +

    Synopsis

    +
    ssize_t
    +mongoc_stream_writev (mongoc_stream_t *stream,
    +                      mongoc_iovec_t *iov,
    +                      size_t iovcnt,
    +                      int32_t timeout_msec);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • stream: A mongoc_stream_t.

    • +
    • iov: A vector of mongoc_iovec_t.

    • +
    • iovcnt: The number of items in iov.

    • +
    • timeout_msec: The number of milliseconds to block before indicating failure, or 0 for non-blocking. Negative values indicate the default timeout.

    • +
    +

    The mongoc_stream_writev() function shall perform a write +to a mongoc_stream_t. It’s modeled on the +API and semantics of writev(), though the parameters map only +loosely.

    +
    +
    +

    Returns

    +

    The number of bytes written on success, or -1 upon failure and errno is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_topology_description_destroy.html b/libmongoc/1.23.2/mongoc_topology_description_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..de94befc04a65fb2234b096aadde0c50f102929b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_topology_description_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_topology_description_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_topology_description_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_topology_description_destroy (mongoc_topology_description_t *description);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees all resources associated with the topology description. Does nothing if description is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_topology_description_get_servers.html b/libmongoc/1.23.2/mongoc_topology_description_get_servers.html new file mode 100644 index 0000000000000000000000000000000000000000..2cee7f872cf3d16169b0ee087b287c0b681e097c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_topology_description_get_servers.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_topology_description_get_servers() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_topology_description_get_servers()

    +
    +

    Synopsis

    +
    mongoc_server_description_t **
    +mongoc_topology_description_get_servers (
    +   const mongoc_topology_description_t *td,
    +   size_t *n) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Fetches an array of mongoc_server_description_t structs for all known servers in the topology.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A newly allocated array that must be freed with mongoc_server_descriptions_destroy_all().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_topology_description_has_readable_server.html b/libmongoc/1.23.2/mongoc_topology_description_has_readable_server.html new file mode 100644 index 0000000000000000000000000000000000000000..a4a000588462274bd4bb4d517ba7448b3a9736df --- /dev/null +++ b/libmongoc/1.23.2/mongoc_topology_description_has_readable_server.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_topology_description_has_readable_server() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_topology_description_has_readable_server()

    +
    +

    Synopsis

    +
    bool
    +mongoc_topology_description_has_readable_server (
    +  const mongoc_topology_description_t *td, const mongoc_read_prefs_t *prefs);
    +
    +
    +

    Determines if the topology has a readable server available. Servers are filtered +by the given read preferences only if the driver is connected to a replica set, +otherwise the read preferences are ignored. This function uses the driver’s +current knowledge of the state of the MongoDB server or servers it is connected +to; it does no I/O and it does not block.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True if there is a known server matching prefs.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_topology_description_has_writable_server.html b/libmongoc/1.23.2/mongoc_topology_description_has_writable_server.html new file mode 100644 index 0000000000000000000000000000000000000000..ade939b20d78f2659f0ca792a88db226285a5476 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_topology_description_has_writable_server.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_topology_description_has_writable_server() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_topology_description_has_writable_server()

    +
    +

    Synopsis

    +
    bool
    +mongoc_topology_description_has_writable_server (
    +   const mongoc_topology_description_t *td);
    +
    +
    +

    Determines if the topology has a writable server available, such as a primary, +mongos, or standalone. This function uses the driver’s current knowledge of the +state of the MongoDB server or servers it is connected to; it does no I/O and it +does not block.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    True if there is a known writable server.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_topology_description_new_copy.html b/libmongoc/1.23.2/mongoc_topology_description_new_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..c88d817818187f10424fac4ad4519eb44429717f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_topology_description_new_copy.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_topology_description_new_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_topology_description_new_copy()

    +
    +

    Synopsis

    +
    mongoc_topology_description_t *
    +mongoc_topology_description_new_copy (
    +   const mongoc_topology_description_t *description)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a deep copy of description.

    +
    +
    +

    Returns

    +

    Returns a newly allocated copy of description that should be freed with mongoc_topology_description_destroy() when no longer in use. Returns NULL if description is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_topology_description_t.html b/libmongoc/1.23.2/mongoc_topology_description_t.html new file mode 100644 index 0000000000000000000000000000000000000000..cfdb8058e35082a1db48b9e9881a0a2b7042c8fc --- /dev/null +++ b/libmongoc/1.23.2/mongoc_topology_description_t.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_topology_description_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_topology_description_t

    +

    Status of MongoDB Servers

    +
    +

    Synopsis

    +
    typedef struct _mongoc_topology_description_t mongoc_topology_description_t;
    +
    +
    +

    mongoc_topology_description_t is an opaque type representing the driver’s knowledge of the MongoDB server or servers it is connected to. +Its API conforms to the SDAM Monitoring Specification.

    +

    Applications receive a temporary reference to a mongoc_topology_description_t as a parameter to an SDAM Monitoring callback that must not be destroyed. See Introduction to Application Performance Monitoring.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_topology_description_type.html b/libmongoc/1.23.2/mongoc_topology_description_type.html new file mode 100644 index 0000000000000000000000000000000000000000..92bf6f50556118486ea2cee65509b8054f1eadbe --- /dev/null +++ b/libmongoc/1.23.2/mongoc_topology_description_type.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_topology_description_type() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_topology_description_type()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_topology_description_type (const mongoc_topology_description_t *td);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function returns a string, one of the topology types defined in the Server Discovery And Monitoring Spec:

    +
      +
    • Unknown

    • +
    • Single

    • +
    • Sharded

    • +
    • ReplicaSetNoPrimary

    • +
    • ReplicaSetWithPrimary

    • +
    • LoadBalanced

    • +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opt_t.html b/libmongoc/1.23.2/mongoc_transaction_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0cae56ef149b8e9d6f478cd26ea796219a9baf69 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opt_t.html @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + mongoc_transaction_opt_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opt_t

    +
    #include <mongoc/mongoc.h>
    +
    +typedef struct _mongoc_transaction_opt_t mongoc_transaction_opt_t;
    +
    +
    +
    +

    Synopsis

    +

    Options for starting a multi-document transaction.

    +

    When a session is first created with mongoc_client_start_session(), it inherits from the client the read concern, write concern, and read preference with which to start transactions. Each of these fields can be overridden independently. Create a mongoc_transaction_opt_t with mongoc_transaction_opts_new(), and pass a non-NULL option to any of the mongoc_transaction_opt_t setter functions:

    + +

    Pass the resulting transaction options to mongoc_client_session_start_transaction(). Each field set in the transaction options overrides the inherited client configuration.

    +
    +
    +

    Example

    +
    +
    example-transaction.c
    +
    /* gcc example-transaction.c -o example-transaction \
    + *     $(pkg-config --cflags --libs libmongoc-1.0) */
    +
    +/* ./example-transaction [CONNECTION_STRING] */
    +
    +#include <stdio.h>
    +#include <mongoc/mongoc.h>
    +
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   int exit_code = EXIT_FAILURE;
    +
    +   mongoc_client_t *client = NULL;
    +   mongoc_database_t *database = NULL;
    +   mongoc_collection_t *collection = NULL;
    +   mongoc_client_session_t *session = NULL;
    +   mongoc_session_opt_t *session_opts = NULL;
    +   mongoc_transaction_opt_t *default_txn_opts = NULL;
    +   mongoc_transaction_opt_t *txn_opts = NULL;
    +   mongoc_read_concern_t *read_concern = NULL;
    +   mongoc_write_concern_t *write_concern = NULL;
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=transaction-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +   bson_t *doc = NULL;
    +   bson_t *insert_opts = NULL;
    +   int32_t i;
    +   int64_t start;
    +   bson_t reply = BSON_INITIALIZER;
    +   char *reply_json;
    +   bool r;
    +
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      MONGOC_ERROR ("failed to parse URI: %s\n"
    +                    "error message:       %s\n",
    +                    uri_string,
    +                    error.message);
    +      goto done;
    +   }
    +
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      goto done;
    +   }
    +
    +   mongoc_client_set_error_api (client, 2);
    +   database = mongoc_client_get_database (client, "example-transaction");
    +
    +   /* inserting into a nonexistent collection normally creates it, but a
    +    * collection can't be created in a transaction; create it now */
    +   collection =
    +      mongoc_database_create_collection (database, "collection", NULL, &error);
    +
    +   if (!collection) {
    +      /* code 48 is NamespaceExists, see error_codes.err in mongodb source */
    +      if (error.code == 48) {
    +         collection = mongoc_database_get_collection (database, "collection");
    +      } else {
    +         MONGOC_ERROR ("Failed to create collection: %s", error.message);
    +         goto done;
    +      }
    +   }
    +
    +   /* a transaction's read preferences, read concern, and write concern can be
    +    * set on the client, on the default transaction options, or when starting
    +    * the transaction. for the sake of this example, set read concern on the
    +    * default transaction options. */
    +   default_txn_opts = mongoc_transaction_opts_new ();
    +   read_concern = mongoc_read_concern_new ();
    +   mongoc_read_concern_set_level (read_concern, "snapshot");
    +   mongoc_transaction_opts_set_read_concern (default_txn_opts, read_concern);
    +   session_opts = mongoc_session_opts_new ();
    +   mongoc_session_opts_set_default_transaction_opts (session_opts,
    +                                                     default_txn_opts);
    +
    +   session = mongoc_client_start_session (client, session_opts, &error);
    +   if (!session) {
    +      MONGOC_ERROR ("Failed to start session: %s", error.message);
    +      goto done;
    +   }
    +
    +   /* in this example, set write concern when starting the transaction */
    +   txn_opts = mongoc_transaction_opts_new ();
    +   write_concern = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_wmajority (write_concern, 1000 /* wtimeout */);
    +   mongoc_transaction_opts_set_write_concern (txn_opts, write_concern);
    +
    +   insert_opts = bson_new ();
    +   if (!mongoc_client_session_append (session, insert_opts, &error)) {
    +      MONGOC_ERROR ("Could not add session to opts: %s", error.message);
    +      goto done;
    +   }
    +
    +retry_transaction:
    +   r = mongoc_client_session_start_transaction (session, txn_opts, &error);
    +   if (!r) {
    +      MONGOC_ERROR ("Failed to start transaction: %s", error.message);
    +      goto done;
    +   }
    +
    +   /* insert two documents - on error, retry the whole transaction */
    +   for (i = 0; i < 2; i++) {
    +      doc = BCON_NEW ("_id", BCON_INT32 (i));
    +      bson_destroy (&reply);
    +      r = mongoc_collection_insert_one (
    +         collection, doc, insert_opts, &reply, &error);
    +
    +      bson_destroy (doc);
    +
    +      if (!r) {
    +         MONGOC_ERROR ("Insert failed: %s", error.message);
    +         mongoc_client_session_abort_transaction (session, NULL);
    +
    +         /* a network error, primary failover, or other temporary error in a
    +          * transaction includes {"errorLabels": ["TransientTransactionError"]},
    +          * meaning that trying the entire transaction again may succeed
    +          */
    +         if (mongoc_error_has_label (&reply, "TransientTransactionError")) {
    +            goto retry_transaction;
    +         }
    +
    +         goto done;
    +      }
    +
    +      reply_json = bson_as_json (&reply, NULL);
    +      printf ("%s\n", reply_json);
    +      bson_free (reply_json);
    +   }
    +
    +   /* in case of transient errors, retry for 5 seconds to commit transaction */
    +   start = bson_get_monotonic_time ();
    +   while (bson_get_monotonic_time () - start < 5 * 1000 * 1000) {
    +      bson_destroy (&reply);
    +      r = mongoc_client_session_commit_transaction (session, &reply, &error);
    +      if (r) {
    +         /* success */
    +         break;
    +      } else {
    +         MONGOC_ERROR ("Warning: commit failed: %s", error.message);
    +         if (mongoc_error_has_label (&reply, "TransientTransactionError")) {
    +            goto retry_transaction;
    +         } else if (mongoc_error_has_label (&reply,
    +                                            "UnknownTransactionCommitResult")) {
    +            /* try again to commit */
    +            continue;
    +         }
    +
    +         /* unrecoverable error trying to commit */
    +         break;
    +      }
    +   }
    +
    +   exit_code = EXIT_SUCCESS;
    +
    +done:
    +   bson_destroy (&reply);
    +   bson_destroy (insert_opts);
    +   mongoc_write_concern_destroy (write_concern);
    +   mongoc_read_concern_destroy (read_concern);
    +   mongoc_transaction_opts_destroy (txn_opts);
    +   mongoc_transaction_opts_destroy (default_txn_opts);
    +   mongoc_client_session_destroy (session);
    +   mongoc_collection_destroy (collection);
    +   mongoc_database_destroy (database);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +
    +   mongoc_cleanup ();
    +
    +   return exit_code;
    +}
    +
    +
    +
    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_clone.html b/libmongoc/1.23.2/mongoc_transaction_opts_clone.html new file mode 100644 index 0000000000000000000000000000000000000000..21a043c0f458e83291eddd96468300ce2070aa72 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_clone.html @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_clone() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_clone()

    +
    +

    Synopsis

    +
    mongoc_transaction_opt_t *
    +mongoc_transaction_opts_clone (const mongoc_transaction_opt_t *opts)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Create a copy of a transaction options struct.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A new mongoc_transaction_opt_t that must be freed with mongoc_transaction_opts_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_destroy.html b/libmongoc/1.23.2/mongoc_transaction_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..9d9923936ae923e0ca008b33b952f35a3fc71a2b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_destroy.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_transaction_opts_destroy (mongoc_transaction_opt_t *opts);
    +
    +
    +

    Free a mongoc_transaction_opt_t. Does nothing if opts is NULL.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_get_max_commit_time_ms.html b/libmongoc/1.23.2/mongoc_transaction_opts_get_max_commit_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..f499353f53b81a8fd852f128c8ff40401b1510ed --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_get_max_commit_time_ms.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_max_commit_time_ms() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_get_max_commit_time_ms()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_transaction_opts_get_max_commit_time_ms (const mongoc_transaction_opt_t *opts);
    +
    +
    +

    Return the transaction options’ max commit time, in milliseconds. See mongoc_transaction_opts_set_max_commit_time_ms().

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_get_read_concern.html b/libmongoc/1.23.2/mongoc_transaction_opts_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..716fa7b756f859406c8156294fdaae0b5fcc202c --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_get_read_concern.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_get_read_concern()

    +
    +

    Synopsis

    +
    const mongoc_read_concern_t *
    +mongoc_transaction_opts_get_read_concern (const mongoc_transaction_opt_t *opts);
    +
    +
    +

    Return the transaction options’ mongoc_read_concern_t. See mongoc_transaction_opts_set_read_concern().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_read_concern_t that is valid only for the lifetime of opts.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_get_read_prefs.html b/libmongoc/1.23.2/mongoc_transaction_opts_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..33b8e7e58d1731b2d8a7e323210000391f7e2b80 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_get_read_prefs.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_get_read_prefs()

    +
    +

    Synopsis

    +
    const mongoc_read_prefs_t *
    +mongoc_transaction_opts_get_read_prefs (const mongoc_transaction_opt_t *opts);
    +
    +
    +

    Return the transaction options’ mongoc_read_prefs_t. See mongoc_transaction_opts_set_read_prefs().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_read_prefs_t that is valid only for the lifetime of opts.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_get_write_concern.html b/libmongoc/1.23.2/mongoc_transaction_opts_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..301bdd4afc992020c2a9fe9ecbe443a54d92ffb7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_get_write_concern.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_get_write_concern()

    +
    +

    Synopsis

    +
    const mongoc_write_concern_t *
    +mongoc_transaction_opts_get_write_concern (const mongoc_transaction_opt_t *opts);
    +
    +
    +

    Return the transaction options’ mongoc_write_concern_t. See mongoc_transaction_opts_set_write_concern().

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    A mongoc_write_concern_t that is valid only for the lifetime of opts.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_new.html b/libmongoc/1.23.2/mongoc_transaction_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..ec7546ba00cac81264f9336e1ca1f45daedeab95 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_new.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_new()

    +
    +

    Synopsis

    +
    mongoc_transaction_opt_t *
    +mongoc_transaction_opts_new (void);
    +
    +
    +

    Create a mongoc_transaction_opt_t to configure multi-document transactions.

    +
    +
    +

    Returns

    +

    A new mongoc_transaction_opt_t that must be freed with mongoc_transaction_opts_destroy().

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_set_max_commit_time_ms.html b/libmongoc/1.23.2/mongoc_transaction_opts_set_max_commit_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..a1003e05503225da8de47e23691372087e76b28e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_set_max_commit_time_ms.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_max_commit_time_ms() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_set_max_commit_time_ms()

    +
    +

    Synopsis

    +
    void
    +mongoc_transaction_opts_set_max_commit_time_ms (mongoc_transaction_opt_t *opts,
    +                                                int64_t max_commit_time_ms);
    +
    +
    +

    Configure the transaction’s max commit time, in milliseconds.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_set_read_concern.html b/libmongoc/1.23.2/mongoc_transaction_opts_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..2e033bfa1ee9ad28e7fc2ab5900741f23c00898e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_set_read_concern.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_set_read_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_transaction_opts_set_read_concern (mongoc_transaction_opt_t *opts,
    +                                          const mongoc_read_concern_t *read_concern);
    +
    +
    +

    Configure the transaction’s read concern. The argument is copied into the struct and can be freed after calling this function.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_set_read_prefs.html b/libmongoc/1.23.2/mongoc_transaction_opts_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..021a2698108886f6d76cba597378fb84b80640e3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_set_read_prefs.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_set_read_prefs()

    +
    +

    Synopsis

    +
    void
    +mongoc_transaction_opts_set_read_prefs (mongoc_transaction_opt_t *opts,
    +                                        const mongoc_read_prefs_t *read_prefs);
    +
    +
    +

    Configure the transaction’s read preference. The argument is copied into the struct and can be freed after calling this function.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_opts_set_write_concern.html b/libmongoc/1.23.2/mongoc_transaction_opts_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..c651420374e4b6d87d2be7769c4d078760f403c0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_opts_set_write_concern.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_opts_set_write_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_transaction_opts_set_write_concern (mongoc_transaction_opt_t *opts,
    +                                           const mongoc_write_concern_t *write_concern);
    +
    +
    +

    Configure the transaction’s write concern. The argument is copied into the struct and can be freed after calling this function.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_transaction_state_t.html b/libmongoc/1.23.2/mongoc_transaction_state_t.html new file mode 100644 index 0000000000000000000000000000000000000000..6a70b96f8fe427d4e947fb621cc15bb0d5f8778a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_transaction_state_t.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_transaction_state_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_transaction_state_t

    +

    Constants for transaction states

    +
    +

    Synopsis

    +
    typedef enum {
    +  MONGOC_TRANSACTION_NONE = 0,
    +  MONGOC_TRANSACTION_STARTING = 1,
    +  MONGOC_TRANSACTION_IN_PROGRESS = 2,
    +  MONGOC_TRANSACTION_COMMITTED = 3,
    +  MONGOC_TRANSACTION_ABORTED = 4,
    +} mongoc_transaction_state_t;
    +
    +
    +
    +
    +

    Description

    +

    These constants describe the current transaction state of a session.

    +
    +
    +

    Flag Values

    + + + + + + + + + + + + + + + + + + +

    MONGOC_TRANSACTION_NONE

    There is no transaction in progress.

    MONGOC_TRANSACTION_STARTING

    A transaction has been started, but no operation has been sent to the server.

    MONGOC_TRANSACTION_IN_PROGRESS

    A transaction is in progress.

    MONGOC_TRANSACTION_COMMITTED

    The transaction was committed.

    MONGOC_TRANSACTION_ABORTED

    The transaction was aborted.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_update_flags_t.html b/libmongoc/1.23.2/mongoc_update_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..e3f291cf7ba3c8abb2a55b700b7708fb1094e2c0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_update_flags_t.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_update_flags_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_update_flags_t

    +

    Flags for update operations

    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_UPDATE_NONE = 0,
    +   MONGOC_UPDATE_UPSERT = 1 << 0,
    +   MONGOC_UPDATE_MULTI_UPDATE = 1 << 1,
    +} mongoc_update_flags_t;
    +
    +#define MONGOC_UPDATE_NO_VALIDATE (1U << 31)
    +
    +
    +
    +
    +

    Description

    +

    These flags correspond to the MongoDB wire protocol. They may be bitwise or’d together. The allow for modifying the way an update is performed in the MongoDB server.

    +
    +
    +

    Flag Values

    + + + + + + + + + + + + + + + +

    MONGOC_UPDATE_NONE

    No update flags set.

    MONGOC_UPDATE_UPSERT

    If an upsert should be performed.

    MONGOC_UPDATE_MULTI_UPDATE

    If more than a single matching document should be updated. By default only the first document is updated.

    MONGOC_UPDATE_NO_VALIDATE

    Do not perform client side BSON validations when performing an update. This is useful if you already know your BSON documents are valid.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_copy.html b/libmongoc/1.23.2/mongoc_uri_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..4387f437906c3355a0609e6356f41dcec354ae67 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_copy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_copy()

    +
    +

    Synopsis

    +
    mongoc_uri_t *
    +mongoc_uri_copy (const mongoc_uri_t *uri) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Copies the entire contents of a URI.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_uri_t that should be freed with mongoc_uri_destroy(). May return NULL on invalid host.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_destroy.html b/libmongoc/1.23.2/mongoc_uri_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..9fe7014c851f3ced45f89c8fa5d33d6c860164a4 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_uri_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_uri_destroy (mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees all resources associated with a uri. Does nothing if uri is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_auth_mechanism.html b/libmongoc/1.23.2/mongoc_uri_get_auth_mechanism.html new file mode 100644 index 0000000000000000000000000000000000000000..ba8ed914849fb9e7a5917a34a280ddb5eef1bba5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_auth_mechanism.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_uri_get_auth_mechanism() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_auth_mechanism()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_auth_mechanism (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the authMechanism parameter to an URI if provided.

    +
    +
    +

    Returns

    +

    A string which should not be modified or freed. Returns NULL if the authMechanism parameter was not provided to uri.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_auth_source.html b/libmongoc/1.23.2/mongoc_uri_get_auth_source.html new file mode 100644 index 0000000000000000000000000000000000000000..f7b285abaae071e8b0ab3284e4ec2fa6677eed69 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_auth_source.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_uri_get_auth_source() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_auth_source()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_auth_source (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the authSource parameter of an URI if provided.

    +
    +
    +

    Returns

    +

    A string which should not be modified or freed if the authSource parameter is provided, otherwise NULL.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_compressors.html b/libmongoc/1.23.2/mongoc_uri_get_compressors.html new file mode 100644 index 0000000000000000000000000000000000000000..f8c02e4eb1571be3482e8fc2f07bae96bd93fc7b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_compressors.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_uri_get_compressors() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_compressors()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_uri_get_compressors (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Returns a bson document with the enabled compressors as the keys or an empty document if no compressors were provided.

    +
    +
    +

    Example

    +
    mongoc_client_t *client;
    +mongoc_uri_t *uri;
    +
    +uri = mongoc_uri_new ("mongodb://localhost/?compressors=zlib,snappy,zstd");
    +
    +if (bson_has_field (mongoc_uri_get_compressors (uri), "snappy")) {
    +   /* snappy enabled */
    +}
    +
    +
    +
    +
    +

    Returns

    +

    A bson_t * which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_database.html b/libmongoc/1.23.2/mongoc_uri_get_database.html new file mode 100644 index 0000000000000000000000000000000000000000..57d7628ae61ebfec0ff7901ef151e90f3fea0e78 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_database.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_database() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_database()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_database (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the database portion of an URI if provided. This is the portion after the / but before the ?.

    +
    +
    +

    Returns

    +

    A string which should not be modified or freed or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_hosts.html b/libmongoc/1.23.2/mongoc_uri_get_hosts.html new file mode 100644 index 0000000000000000000000000000000000000000..328e9778cbba036c76ebc60dfd0d73fc949a2595 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_hosts.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_hosts() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_hosts()

    +
    +

    Synopsis

    +
    const mongoc_host_list_t *
    +mongoc_uri_get_hosts (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a linked list of hosts that were defined in the URI (the comma-separated host section).

    +
    +
    +

    Returns

    +

    A linked list of mongoc_host_list_t structures that should not be modified or freed. Returns NULL if this URI’s scheme is “mongodb+srv://”.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_mechanism_properties.html b/libmongoc/1.23.2/mongoc_uri_get_mechanism_properties.html new file mode 100644 index 0000000000000000000000000000000000000000..82521142c2086494f888f6ff0277cc7d78c3678d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_mechanism_properties.html @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + mongoc_uri_get_mechanism_properties() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_mechanism_properties()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_get_mechanism_properties (const mongoc_uri_t *uri,
    +                                     bson_t *properties /* OUT */);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the “authMechanismProperties” options set on this mongoc_uri_t. The out-parameter properties should be an uninitialized, stack-allocated bson_t. It is statically initialized with bson_init_static() to point to the internal data of uri, so its contents must not be modified and it becomes invalid after uri is destroyed.

    +
    +
    +

    Returns

    +

    If no “authMechanismProperties” have been set on uri, this functions returns false and properties remains uninitialized.

    +
    +
    +

    Example

    +
    mongoc_uri_t *uri;
    +bson_t props;
    +
    +uri = mongoc_uri_new (
    +   "mongodb://user%40DOMAIN.COM:password@localhost/?authMechanism=GSSAPI"
    +   "&authMechanismProperties=SERVICE_NAME:other,CANONICALIZE_HOST_NAME:true");
    +
    +if (mongoc_uri_get_mechanism_properties (uri, &props)) {
    +   char *json = bson_as_canonical_extended_json (&props, NULL);
    +   printf ("%s\n", json);
    +   bson_free (json);
    +} else {
    +   printf ("No authMechanismProperties.\n");
    +}
    +
    +
    +

    This code produces the output:

    +
    { "SERVICE_NAME" : "other", "CANONICALIZE_HOST_NAME" : "true" }
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_option_as_bool.html b/libmongoc/1.23.2/mongoc_uri_get_option_as_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..06f0eb42c0671ec8e33742a96b8a7c2aba345f20 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_option_as_bool.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_bool() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_option_as_bool()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_get_option_as_bool (const mongoc_uri_t *uri,
    +                               const char *option,
    +                               bool fallback);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • fallback: A default value to return.

    • +
    +
    +
    +

    Description

    +

    Returns the value of the URI option if it is set and of the correct type (bool). If not set, or set to an invalid type, returns fallback.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_option_as_int32.html b/libmongoc/1.23.2/mongoc_uri_get_option_as_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..0f797fc87b552a42a633a03006eecaf82950cf98 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_option_as_int32.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_int32() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_option_as_int32()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_uri_get_option_as_int32 (const mongoc_uri_t *uri,
    +                                const char *option,
    +                                int32_t fallback);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • fallback: A default value to return.

    • +
    +
    +
    +

    Description

    +

    Returns the value of the URI option if it is set and of the correct type (integer). Returns fallback if the option is not set, set to an invalid type, or zero.

    +

    Zero is considered “unset”, so URIs can be constructed like so, and still accept default values:

    +
    bson_strdup_printf ("mongodb://localhost/?connectTimeoutMS=%d", myvalue)
    +
    +
    +

    If myvalue is non-zero it is the connection timeout; if it is zero the driver uses the default timeout.

    +

    When reading an option that is an int64, this function will return the value as int32_t. If the value is outside the range of a 32-bit integer, a warning will be emitted and fallback is returned instead.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_option_as_int64.html b/libmongoc/1.23.2/mongoc_uri_get_option_as_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..b6de43f41144f82c854d1d8b108c36561349b367 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_option_as_int64.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_int64() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_option_as_int64()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_uri_get_option_as_int64 (const mongoc_uri_t *uri,
    +                                const char *option,
    +                                int64_t fallback);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • fallback: A default value to return.

    • +
    +
    +
    +

    Description

    +

    Returns the value of the URI option if it is set and of the correct type (integer). Returns fallback if the option is not set, set to an invalid type, or zero.

    +

    Zero is considered “unset”, so URIs can be constructed like so, and still accept default values:

    +
    bson_strdup_printf ("mongodb://localhost/?wTimeoutMS=%" PRId64, myvalue)
    +
    +
    +

    If myvalue is non-zero it is the write concern timeout; if it is zero the driver uses the default timeout.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_option_as_utf8.html b/libmongoc/1.23.2/mongoc_uri_get_option_as_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..4ec8a632cf0a76e051831e40c03cb736175a12da --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_option_as_utf8.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_utf8() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_option_as_utf8()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_option_as_utf8 (const mongoc_uri_t *uri,
    +                               const char *option,
    +                               const char *fallback);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • fallback: A default value to return.

    • +
    +
    +
    +

    Description

    +

    Returns the value of the URI option if it is set and of the correct type (string). This value is a pointer into the URI’s internal buffer, and is only valid until the URI is modified or freed. If the option is not set, or set to an invalid type, returns fallback.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_options.html b/libmongoc/1.23.2/mongoc_uri_get_options.html new file mode 100644 index 0000000000000000000000000000000000000000..aab92f555653426d28109d96a449aa87ddb8f490 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_options.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_options() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_options()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_uri_get_options (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a bson document containing all of the options provided after the ? of a URI.

    +
    +
    +

    Returns

    +

    A bson_t which should not be modified or freed if uri has options provided, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_password.html b/libmongoc/1.23.2/mongoc_uri_get_password.html new file mode 100644 index 0000000000000000000000000000000000000000..6d80a93ceb959186596f2f4e70dcd26d3849cf7b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_password.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_password() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_password()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_password (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the password portion of an URI.

    +
    +
    +

    Returns

    +

    A string which should not be modified or freed if uri has a password specified, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_read_concern.html b/libmongoc/1.23.2/mongoc_uri_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..a1e63c8fb03c028a9b408d98a32398e4344d67a5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_read_concern.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_read_concern()

    +
    +

    Synopsis

    +
    const mongoc_read_concern_t *
    +mongoc_uri_get_read_concern (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a read concern that is owned by the URI instance. This read concern is configured based on URI parameters.

    +
    +
    +

    Returns

    +

    Returns a mongoc_read_concern_t that should not be modified or freed if a read concern is provided to uri, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_read_prefs.html b/libmongoc/1.23.2/mongoc_uri_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..c8f74347453e41069a54fbcd0fa5b264425b8575 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_read_prefs.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_uri_get_read_prefs() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_read_prefs()

    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_uri_get_read_prefs (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    This function is deprecated and should not be used in new code.

    +
    +

    Please use mongoc_uri_get_read_prefs_t() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a bson document containing read preference tag information from a URI. Note that this does not include the read preference mode.

    +
    +
    +

    Returns

    +

    Returns a bson document that should not be modified or freed if uri has read preferences, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_read_prefs_t.html b/libmongoc/1.23.2/mongoc_uri_get_read_prefs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f5632b7c04ed180a92c5ab77cbefaf90aaf10c94 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_read_prefs_t.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_read_prefs_t() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_read_prefs_t()

    +
    +

    Synopsis

    +
    const mongoc_read_prefs_t *
    +mongoc_uri_get_read_prefs_t (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a read preference that is owned by the URI instance. This read preference concern is configured based on URI parameters.

    +
    +
    +

    Returns

    +

    Returns a mongoc_read_prefs_t that should not be modified or freed if uri has read preferences, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_replica_set.html b/libmongoc/1.23.2/mongoc_uri_get_replica_set.html new file mode 100644 index 0000000000000000000000000000000000000000..8bd4b552bb47b9fc55c8a49c8bf397643a0ea9c5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_replica_set.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_replica_set() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_replica_set()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_replica_set (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the replicaSet parameter of an URI.

    +
    +
    +

    Returns

    +

    Returns a string which should not be modified or freed. Returns NULL if the replicaSet parameter was not provided to uri.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_service.html b/libmongoc/1.23.2/mongoc_uri_get_service.html new file mode 100644 index 0000000000000000000000000000000000000000..7075f8daf4170507e9f4d1291413421b7393a4f3 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_service.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_uri_get_service() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_service()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_service (const mongoc_uri_t *uri)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_uri_get_srv_hostname);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Deprecated

    +

    This function is deprecated and should not be used in new code.

    +

    Please use mongoc_uri_get_srv_hostname() instead.

    +

    Returns the SRV host and domain name of a MongoDB URI.

    +
    +
    +

    Returns

    +

    A string if this URI’s scheme is “mongodb+srv://”, or NULL if the scheme is “mongodb://”.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_srv_hostname.html b/libmongoc/1.23.2/mongoc_uri_get_srv_hostname.html new file mode 100644 index 0000000000000000000000000000000000000000..324bb3b6a2f683c5040d8652803923125408f9a9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_srv_hostname.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_srv_hostname() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_srv_hostname()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_srv_hostname (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Returns the SRV host and domain name of a MongoDB URI.

    +
    +
    +

    Returns

    +

    A string if this URI’s scheme is “mongodb+srv://”, or NULL if the scheme is “mongodb://”.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_srv_service_name.html b/libmongoc/1.23.2/mongoc_uri_get_srv_service_name.html new file mode 100644 index 0000000000000000000000000000000000000000..90f7e3ff01f4a1f895ae31fb678df3e5abcf635a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_srv_service_name.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_srv_service_name() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_srv_service_name()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_srv_service_name (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Returns the SRV service name of a MongoDB URI.

    +
    +
    +

    Returns

    +

    A string corresponding to the value of the srvServiceName URI option if present. Otherwise, the default value “mongodb”.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_ssl.html b/libmongoc/1.23.2/mongoc_uri_get_ssl.html new file mode 100644 index 0000000000000000000000000000000000000000..a87012ca5d4b1b3e15c0d266fd6d293e078b8618 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_ssl.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_uri_get_ssl() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_ssl()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_get_ssl (const mongoc_uri_t *uri)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_uri_get_tls);
    +
    +
    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    This function is deprecated and should not be used in new code.

    +
    +

    Please use mongoc_uri_get_tls() instead.

    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a boolean indicating if TLS was specified for use in the URI.

    +
    +
    +

    Returns

    +

    Returns a boolean, true indicating that TLS should be used. This returns true if any TLS option is specified.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_string.html b/libmongoc/1.23.2/mongoc_uri_get_string.html new file mode 100644 index 0000000000000000000000000000000000000000..2233423590aeaba7fc488fc11684e3df6b69eb70 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_string.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_string() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_string()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_string (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the URI as a string.

    +
    +
    +

    Returns

    +

    Returns a string which should not be modified or freed.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_tls.html b/libmongoc/1.23.2/mongoc_uri_get_tls.html new file mode 100644 index 0000000000000000000000000000000000000000..81d2244c2374025d65c7e36b9c7014e00b82ed84 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_tls.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_tls() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_tls()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_get_tls (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a boolean indicating if TLS was specified for use in the URI.

    +
    +
    +

    Returns

    +

    Returns a boolean, true indicating that TLS should be used. This returns true if any TLS option is specified.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_username.html b/libmongoc/1.23.2/mongoc_uri_get_username.html new file mode 100644 index 0000000000000000000000000000000000000000..fcd3aadbb8e6c0e4e889cf1f8a24fc0a07ca7141 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_username.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_username() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_username()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_username (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the username portion of a URI.

    +
    +
    +

    Returns

    +

    Returns a string which should not be modified or freed if uri has a username provided, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_get_write_concern.html b/libmongoc/1.23.2/mongoc_uri_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..b9623786d54b43d5e1c8db4d974eaf771058c06a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_get_write_concern.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_get_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_write_concern()

    +
    +

    Synopsis

    +
    const mongoc_write_concern_t *
    +mongoc_uri_get_write_concern (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches a write concern that is owned by the URI instance. This write concern is configured based on URI parameters.

    +
    +
    +

    Returns

    +

    Returns a mongoc_write_concern_t that should not be modified or freed if uri has a write concern provided, otherwise NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_has_option.html b/libmongoc/1.23.2/mongoc_uri_has_option.html new file mode 100644 index 0000000000000000000000000000000000000000..139fe1ed5b57a363137f103a557fbaeba43e473e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_has_option.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_uri_has_option() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_has_option()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_has_option (const mongoc_uri_t *uri, const char *option);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    +
    +
    +

    Description

    +

    Returns true if the option was present in the initial MongoDB URI.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_new.html b/libmongoc/1.23.2/mongoc_uri_new.html new file mode 100644 index 0000000000000000000000000000000000000000..0b9eeda99568bcece548daebd7e2999a3369cfa0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_new.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_uri_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_new()

    +
    +

    Synopsis

    +
    mongoc_uri_t *
    +mongoc_uri_new (const char *uri_string) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri_string: A string containing a URI.

    • +
    +
    +
    +

    Description

    +

    Calls mongoc_uri_new_with_error().

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_uri_t if successful. Otherwise NULL, using +MONGOC_WARNING on error.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_new_for_host_port.html b/libmongoc/1.23.2/mongoc_uri_new_for_host_port.html new file mode 100644 index 0000000000000000000000000000000000000000..14374ee6e9ad182c58e46d72574f0463b8c63571 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_new_for_host_port.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_uri_new_for_host_port() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_new_for_host_port()

    +
    +

    Synopsis

    +
    mongoc_uri_t *
    +mongoc_uri_new_for_host_port (const char *hostname, uint16_t port);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • hostname: A string containing the hostname.

    • +
    • port: A uint16_t.

    • +
    +
    +
    +

    Description

    +

    Creates a new mongoc_uri_t based on the hostname and port provided.

    +
    +
    +

    Returns

    +

    Returns a newly allocated mongoc_uri_t that should be freed with mongoc_uri_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_new_with_error.html b/libmongoc/1.23.2/mongoc_uri_new_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..22e44d1c3658761536d6e5d831926a1d78c25e70 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_new_with_error.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_uri_new_with_error() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_new_with_error()

    +
    +

    Synopsis

    +
    mongoc_uri_t *
    +mongoc_uri_new_with_error (const char *uri_string,
    +                           bson_error_t *error) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri_string: A string containing a URI.

    • +
    • error: An optional location for a bson_error_t or NULL.

    • +
    +
    +
    +

    Description

    +

    Parses a string containing a MongoDB style URI connection string.

    +
    +
    +

    Returns

    +

    A newly allocated mongoc_uri_t if successful. Otherwise NULL +populating error with the error description.

    +
    +

    Warning

    +

    Failure to handle the result of this function is a programming error.

    +
    +
    +
    +

    Examples

    +

    Examples of some valid MongoDB connection strings can be seen below.

    +

    "mongodb://localhost/"

    +

    "mongodb://localhost/?replicaSet=myreplset"

    +

    "mongodb://myuser:mypass@localhost/"

    +

    "mongodb://kerberosuser%40EXAMPLE.COM@example.com/?authMechanism=GSSAPI"

    +

    "mongodb://[::1]:27017/"

    +

    "mongodb://10.0.0.1:27017,10.0.0.1:27018,[::1]:27019/?tls=true"

    +

    "mongodb://%2Ftmp%2Fmongodb-27017.sock"

    +

    "mongodb://user:pass@%2Ftmp%2Fmongodb-27017.sock"

    +

    "mongodb://localhost,[::1]/mydb?authSource=mydb"

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_option_is_bool.html b/libmongoc/1.23.2/mongoc_uri_option_is_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..35da8e16e74a5b4f6ef169379031abd260f4b9ce --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_option_is_bool.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_bool() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_option_is_bool()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_option_is_bool (const char *option);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • option: The name of an option, case insensitive.

    • +
    +
    +
    +

    Description

    +

    Returns true if the option is a known MongoDB URI option of boolean type. For example, “tls=false” is a valid MongoDB URI option, so mongoc_uri_option_is_bool ("tls") is true.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_option_is_int32.html b/libmongoc/1.23.2/mongoc_uri_option_is_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..2520873626db507c2e019886ea02c0b546534c95 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_option_is_int32.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_int32() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_option_is_int32()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_option_is_int32 (const char *option);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • option: The name of an option, case insensitive.

    • +
    +
    +
    +

    Description

    +

    Returns true if the option is a known MongoDB URI option of integer type. For example, “zlibCompressionLevel=5” is a valid integer MongoDB URI option, so mongoc_uri_option_is_int32 ("zlibCompressionLevel") is true. This will also return true for all 64-bit integer options.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_option_is_int64.html b/libmongoc/1.23.2/mongoc_uri_option_is_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..3164d0898a9d74cd5dea19fc303a627307907fcf --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_option_is_int64.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_int64() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_option_is_int64()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_option_is_int64 (const char *option);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • option: The name of an option, case insensitive.

    • +
    +
    +
    +

    Description

    +

    Returns true if the option is a known MongoDB URI option of 64-bit integer type. For example, “wTimeoutMS=100” is a valid 64-bit integer MongoDB URI option, so mongoc_uri_option_is_int64 ("wTimeoutMS") is true.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_option_is_utf8.html b/libmongoc/1.23.2/mongoc_uri_option_is_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..88aa8b0351525ac1fcbd558d9558c357ff93db3a --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_option_is_utf8.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_utf8() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_option_is_utf8()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_option_is_utf8 (const char *option);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • option: The name of an option, case insensitive.

    • +
    +
    +
    +

    Description

    +

    Returns true if the option is a known MongoDB URI option of string type. For example, “replicaSet=my_rs” is a valid MongoDB URI option, so mongoc_uri_option_is_utf8 ("replicaSet") is true.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_auth_mechanism.html b/libmongoc/1.23.2/mongoc_uri_set_auth_mechanism.html new file mode 100644 index 0000000000000000000000000000000000000000..3d4a5325784b9e6b9d1f2e56d668ff70be05195f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_auth_mechanism.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_uri_set_auth_mechanism() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_auth_mechanism()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_auth_mechanism (mongoc_uri_t *uri, const char *value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • value: The new “authMechanism” value.

    • +
    +
    +
    +

    Description

    +

    Sets the “authMechanism” URI option, such as “SCRAM-SHA-1” or “GSSAPI”, after the URI has been parsed from a string.

    +

    Updates the option in-place if already set, otherwise appends it to the URI’s bson_t of options.

    +
    +
    +

    Returns

    +

    Returns false if the option cannot be set, for example if value is not valid UTF-8.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_auth_source.html b/libmongoc/1.23.2/mongoc_uri_set_auth_source.html new file mode 100644 index 0000000000000000000000000000000000000000..9ea16d68a69b62c266b45c65d88f751cd7aae6c5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_auth_source.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_uri_set_auth_source() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_auth_source()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_auth_source (mongoc_uri_t *uri, const char *value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • value: The new “authSource” value.

    • +
    +
    +
    +

    Description

    +

    Sets the “authSource” URI option, after the URI has been parsed from a string.

    +

    Updates the option in-place if already set, otherwise appends it to the URI’s bson_t of options.

    +
    +
    +

    Returns

    +

    Returns false if the option cannot be set, for example if value is not valid UTF-8.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_compressors.html b/libmongoc/1.23.2/mongoc_uri_set_compressors.html new file mode 100644 index 0000000000000000000000000000000000000000..e1ca4af46003d2a90e9b99bb5e6f642f183b757d --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_compressors.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_uri_set_compressors() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_compressors()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_compressors (mongoc_uri_t *uri, const char *compressors);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • compressors: A string consisting of one or more comma (,) separated compressors (e.g. “snappy,zlib”) or NULL. Passing NULL clears any existing compressors set on uri.

    • +
    +
    +
    +

    Description

    +

    Sets the URI’s compressors, after the URI has been parsed from a string. +Will overwrite any previously set value.

    +
    +
    +

    Example

    +
    mongoc_client_t *client;
    +mongoc_uri_t *uri;
    +
    +uri = mongoc_uri_new ("mongodb://localhost/");
    +mongoc_uri_set_compressors (uri, "snappy,zlib,zstd");
    +mongoc_client_new_from_uri (uri);
    +/* Snappy & zlib & zstd compressors are enabled */
    +
    +
    +
    +
    +

    Returns

    +

    Returns false if the option cannot be set, for example if compressors is not valid UTF-8. +Logs a warning to stderr with the MONGOC_WARNING macro +if compressor is not available.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_database.html b/libmongoc/1.23.2/mongoc_uri_set_database.html new file mode 100644 index 0000000000000000000000000000000000000000..0767b59f71f20f869b2d06cb940b1b6e200efaba --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_database.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_uri_set_database() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_database()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_database (mongoc_uri_t *uri, const char *database);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the URI’s database, after the URI has been parsed from a string.

    +

    The driver authenticates to this database if the connection string includes authentication credentials. This database is also the return value of mongoc_client_get_default_database().

    +
    +
    +

    Returns

    +

    Returns false if the option cannot be set, for example if database is not valid UTF-8.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_mechanism_properties.html b/libmongoc/1.23.2/mongoc_uri_set_mechanism_properties.html new file mode 100644 index 0000000000000000000000000000000000000000..6dd3e361bef9799c085de7770792b3adce76c78e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_mechanism_properties.html @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + mongoc_uri_set_mechanism_properties() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_mechanism_properties()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_mechanism_properties (mongoc_uri_t *uri,
    +                                     const bson_t *properties);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Replaces all the options in URI’s “authMechanismProperties” after the URI has been parsed from a string.

    +
    +
    +

    Returns

    +

    Returns false if the option cannot be set, for example if properties is not valid BSON data.

    +
    +
    +

    Example

    +
    mongoc_uri_t *uri;
    +bson_t props = BSON_INITIALIZER;
    +
    +uri = mongoc_uri_new (
    +   "mongodb://user%40DOMAIN.COM:password@localhost/?authMechanism=GSSAPI"
    +   "&authMechanismProperties=SERVICE_NAME:other,CANONICALIZE_HOST_NAME:true");
    +
    +/* replace all options: replace service name "other" with "my_service", unset
    + * "CANONICALIZE_HOST_NAME" and accept its default.
    + */
    +BSON_APPEND_UTF8 (&props, "SERVICE_NAME", "my_service");
    +mongoc_uri_set_mechanism_properties (uri, &props);
    +
    +bson_destroy (&props);
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_option_as_bool.html b/libmongoc/1.23.2/mongoc_uri_set_option_as_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..c459cbe3cf239ee8658a9a37d9e5731b8f9d3962 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_option_as_bool.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_bool() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_option_as_bool()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_option_as_bool (const mongoc_uri_t *uri,
    +                               const char *option,
    +                               bool value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • value: The new value.

    • +
    +
    +
    +

    Description

    +

    Sets an individual URI option, after the URI has been parsed from a string.

    +

    Only known options of type bool can be set.

    +

    Updates the option in-place if already set, otherwise appends it to the URI’s bson_t of options.

    +
    +
    +

    Returns

    +

    True if successfully set (the named option is a known option of type bool).

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_option_as_int32.html b/libmongoc/1.23.2/mongoc_uri_set_option_as_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..a12cdc229502d901d7561d66255b490591397af9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_option_as_int32.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_int32() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_option_as_int32()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_option_as_int32 (const mongoc_uri_t *uri,
    +                                const char *option,
    +                                int32_t value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • value: The new value.

    • +
    +
    +
    +

    Description

    +

    Sets an individual URI option, after the URI has been parsed from a string.

    +

    Only known options of type integer can be set. Some integer options, such as minHeartbeatFrequencyMS, have additional constraints.

    +

    Updates the option in-place if already set, otherwise appends it to the URI’s bson_t of options.

    +
    +
    +

    Returns

    +

    True if successfully set (the named option is a known option of type int32 or int64).

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_option_as_int64.html b/libmongoc/1.23.2/mongoc_uri_set_option_as_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..b6e72501c1386589c733a35add13973317402bf0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_option_as_int64.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_int64() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_option_as_int64()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_option_as_int64 (const mongoc_uri_t *uri,
    +                                const char *option,
    +                                int64_t value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • value: The new value.

    • +
    +
    +
    +

    Description

    +

    Sets an individual URI option, after the URI has been parsed from a string.

    +

    Only known options of type int32 or int64 can be set. For 32-bit integer options, the function returns false when trying to set a 64-bit value that exceeds the range of an int32_t. Values that fit into an int32_t will be set correctly. In both cases, a warning will be emitted.

    +

    Updates the option in-place if already set, otherwise appends it to the URI’s bson_t of options.

    +
    +
    +

    Returns

    +

    True if successfully set (the named option is a known option of type int64).

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_option_as_utf8.html b/libmongoc/1.23.2/mongoc_uri_set_option_as_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..ba0a19925e8a955f1601144d62f28fd080387d8f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_option_as_utf8.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_utf8() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_option_as_utf8()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_option_as_utf8 (const mongoc_uri_t *uri,
    +                               const char *option,
    +                               utf8 value);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • uri: A mongoc_uri_t.

    • +
    • option: The name of an option, case insensitive.

    • +
    • value: The new value.

    • +
    +
    +
    +

    Description

    +

    Sets an individual URI option, after the URI has been parsed from a string.

    +

    Only known string-type options can be set.

    +

    Updates the option in-place if already set, otherwise appends it to the URI’s bson_t of options.

    +
    +
    +

    Returns

    +

    True if successfully set (the named option is a known option of string type).

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_password.html b/libmongoc/1.23.2/mongoc_uri_set_password.html new file mode 100644 index 0000000000000000000000000000000000000000..bfa1759faa6bfdafc0a7e86eb54ab6900bb8d8b2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_password.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_uri_set_password() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_password()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_password (mongoc_uri_t *uri, const char *password);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the URI’s password, after the URI has been parsed from a string. The driver authenticates with this password if the username is also set.

    +
    +
    +

    Returns

    +

    Returns false if the option cannot be set, for example if password is not valid UTF-8.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_read_concern.html b/libmongoc/1.23.2/mongoc_uri_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..a5dff2f3508ac0f4f8f911fa6c1c48eeb46b292b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_read_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_set_read_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_read_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_uri_set_read_concern (mongoc_uri_t *uri,
    +                             const mongoc_read_concern_t *rc);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets a MongoDB URI’s read concern option, after the URI has been parsed from a string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_read_prefs_t.html b/libmongoc/1.23.2/mongoc_uri_set_read_prefs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..d4f8c8b4735af0855cb6341204ac3ac52b8b0069 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_read_prefs_t.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_set_read_prefs_t() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_read_prefs_t()

    +
    +

    Synopsis

    +
    void
    +mongoc_uri_set_read_prefs_t (mongoc_uri_t *uri,
    +                             const mongoc_read_prefs_t *prefs);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets a MongoDB URI’s read preferences, after the URI has been parsed from a string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_username.html b/libmongoc/1.23.2/mongoc_uri_set_username.html new file mode 100644 index 0000000000000000000000000000000000000000..4020c5432703b9b3d771593afaa95fe51cd5eac0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_username.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_uri_set_username() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_username()

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_set_username (mongoc_uri_t *uri, const char *username);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the URI’s username, after the URI has been parsed from a string. The driver authenticates with this username if the password is also set.

    +
    +
    +

    Returns

    +

    Returns false if the option cannot be set, for example if username is not valid UTF-8.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_set_write_concern.html b/libmongoc/1.23.2/mongoc_uri_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..d7c8046afe1a429a2a28b3f0a45fc18af313b695 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_set_write_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_set_write_concern() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_set_write_concern()

    +
    +

    Synopsis

    +
    void
    +mongoc_uri_set_write_concern (mongoc_uri_t *uri,
    +                              const mongoc_write_concern_t *wc);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets a MongoDB URI’s write concern option, after the URI has been parsed from a string.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_t.html b/libmongoc/1.23.2/mongoc_uri_t.html new file mode 100644 index 0000000000000000000000000000000000000000..8753b3faaf36625e8b23095d53ad51ee12467012 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_t.html @@ -0,0 +1,609 @@ + + + + + + + + + + + + + + mongoc_uri_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +

    mongoc_uri_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_uri_t mongoc_uri_t;
    +
    +
    +
    +
    +

    Description

    +

    mongoc_uri_t provides an abstraction on top of the MongoDB connection URI format. It provides standardized parsing as well as convenience methods for extracting useful information such as replica hosts or authorization information.

    +

    See Connection String URI Reference on the MongoDB website for more information.

    +
    +
    +

    Format

    +
    mongodb[+srv]://                             <1>
    +   [username:password@]                      <2>
    +   host1                                     <3>
    +   [:port1]                                  <4>
    +   [,host2[:port2],...[,hostN[:portN]]]      <5>
    +   [/[database]                              <6>
    +   [?options]]                               <7>
    +
    +
    +
      +
    1. “mongodb” is the specifier of the MongoDB protocol. Use “mongodb+srv” with a single service name in place of “host1” to specify the initial list of servers with an SRV record.

    2. +
    3. An optional username and password.

    4. +
    5. The only required part of the uri. This specifies either a hostname, IPv4 address, IPv6 address enclosed in “[” and “]”, or UNIX domain socket.

    6. +
    7. An optional port number. Defaults to :27017.

    8. +
    9. Extra optional hosts and ports. You would specify multiple hosts, for example, for connections to replica sets.

    10. +
    11. The name of the database to authenticate if the connection string includes authentication credentials. If /database is not specified and the connection string includes credentials, defaults to the ‘admin’ database.

    12. +
    13. Connection specific options.

    14. +
    +
    +

    Note

    +

    Option names are case-insensitive. Do not repeat the same option (e.g. “mongodb://localhost/db?opt=value1&OPT=value2”) since this may have unexpected results.

    +
    +

    The MongoDB C Driver exposes constants for each supported connection option. These constants make it easier to discover connection options, but their string values can be used as well.

    +

    For example, the following calls are equal.

    +
    uri = mongoc_uri_new ("mongodb://localhost/?" MONGOC_URI_APPNAME "=applicationName");
    +uri = mongoc_uri_new ("mongodb://localhost/?appname=applicationName");
    +uri = mongoc_uri_new ("mongodb://localhost/?appName=applicationName");
    +
    +
    +
    +
    +

    Replica Set Example

    +

    To describe a connection to a replica set named ‘test’ with the following mongod hosts:

    +
      +
    • db1.example.com on port 27017

    • +
    • db2.example.com on port 2500

    • +
    +

    You would use a connection string that resembles the following.

    +
    mongodb://db1.example.com,db2.example.com:2500/?replicaSet=test
    +
    +
    +
    +
    +

    SRV Example

    +

    If you have configured an SRV record with a name like “_mongodb._tcp.server.example.com” whose records are a list of one or more MongoDB server hostnames, use a connection string like this:

    +
    uri = mongoc_uri_new ("mongodb+srv://server.example.com/?replicaSet=rs&appName=applicationName");
    +
    +
    +

    The driver prefixes the service name with “_mongodb._tcp.”, then performs a DNS SRV query to resolve the service name to one or more hostnames. If this query succeeds, the driver performs a DNS TXT query on the service name (without the “_mongodb._tcp” prefix) for additional URI options configured as TXT records.

    +

    On Unix, the MongoDB C Driver relies on libresolv to look up SRV and TXT records. If libresolv is unavailable, then using a “mongodb+srv” URI will cause an error. If your libresolv lacks res_nsearch then the driver will fall back to res_search, which is not thread-safe.

    +
    +
    +

    IPv4 and IPv6

    +

    If connecting to a hostname that has both IPv4 and IPv6 DNS records, the behavior follows RFC-6555. A connection to the IPv6 address is attempted first. If IPv6 fails, then a connection is attempted to the IPv4 address. If the connection attempt to IPv6 does not complete within 250ms, then IPv4 is tried in parallel. Whichever succeeds connection first cancels the other. The successful DNS result is cached for 10 minutes.

    +

    As a consequence, attempts to connect to a mongod only listening on IPv4 may be delayed if there are both A (IPv4) and AAAA (IPv6) DNS records associated with the host.

    +

    To avoid a delay, configure hostnames to match the MongoDB configuration. That is, only create an A record if the mongod is only listening on IPv4.

    +
    +
    +

    Connection Options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Default

    Description

    MONGOC_URI_RETRYREADS

    retryreads

    true

    If “true” and the server is a MongoDB 3.6+ standalone, replica set, or sharded cluster, the driver safely retries a read that failed due to a network error or replica set failover.

    MONGOC_URI_RETRYWRITES

    retrywrites

    true if driver built w/ TLS

    If “true” and the server is a MongoDB 3.6+ replica set or sharded cluster, the driver safely retries a write that failed due to a network error or replica set failover. Only inserts, updates of single documents, or deletes of single +documents are retried.

    MONGOC_URI_APPNAME

    appname

    Empty (no appname)

    The client application name. This value is used by MongoDB when it logs connection information and profile information, such as slow queries.

    MONGOC_URI_TLS

    tls

    Empty (not set, same as false)

    {true|false}, indicating if TLS must be used. (See also mongoc_client_set_ssl_opts() and mongoc_client_pool_set_ssl_opts().)

    MONGOC_URI_COMPRESSORS

    compressors

    Empty (no compressors)

    Comma separated list of compressors, if any, to use to compress the wire protocol messages. Snappy, zlib, and zstd are optional build time dependencies, and enable the “snappy”, “zlib”, and “zstd” values respectively.

    MONGOC_URI_CONNECTTIMEOUTMS

    connecttimeoutms

    10,000 ms (10 seconds)

    This setting applies to new server connections. It is also used as the socket timeout for server discovery and monitoring operations.

    MONGOC_URI_SOCKETTIMEOUTMS

    sockettimeoutms

    300,000 ms (5 minutes)

    The time in milliseconds to attempt to send or receive on a socket before the attempt times out.

    MONGOC_URI_REPLICASET

    replicaset

    Empty (no replicaset)

    The name of the Replica Set that the driver should connect to.

    MONGOC_URI_ZLIBCOMPRESSIONLEVEL

    zlibcompressionlevel

    -1

    When the MONGOC_URI_COMPRESSORS includes “zlib” this options configures the zlib compression level, when the zlib compressor is used to compress client data.

    MONGOC_URI_LOADBALANCED

    loadbalanced

    false

    If true, this indicates the driver is connecting to a MongoDB cluster behind a load balancer.

    MONGOC_URI_SRVMAXHOSTS

    srvmaxhosts

    0

    If zero, the number of hosts in DNS results is unlimited. If greater than zero, the number of hosts in DNS results is limited to being less than or equal to the given value.

    +

    Setting any of the *timeoutMS options above to 0 will be interpreted as “use the default value”.

    +
    +
    +

    Authentication Options

    + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_AUTHMECHANISM

    authmechanism

    Specifies the mechanism to use when authenticating as the provided user. See Authentication for supported values.

    MONGOC_URI_AUTHMECHANISMPROPERTIES

    authmechanismproperties

    Certain authentication mechanisms have additional options that can be configured. These options should be provided as comma separated option_key:option_value pair and provided as authMechanismProperties. Specifying the same option_key multiple times has undefined behavior.

    MONGOC_URI_AUTHSOURCE

    authsource

    The authSource defines the database that should be used to authenticate to. It is unnecessary to provide this option the database name is the same as the database used in the URI.

    +
    +

    Mechanism Properties

    + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_CANONICALIZEHOSTNAME

    canonicalizehostname

    Use the canonical hostname of the service, rather than its configured alias, when authenticating with Cyrus-SASL Kerberos.

    MONGOC_URI_GSSAPISERVICENAME

    gssapiservicename

    Use alternative service name. The default is mongodb.

    +
    +
    +
    +

    TLS Options

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_TLS

    tls

    {true|false}, indicating if TLS must be used.

    MONGOC_URI_TLSCERTIFICATEKEYFILE

    tlscertificatekeyfile

    Path to PEM formatted Private Key, with its Public Certificate concatenated at the end.

    MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD

    tlscertificatekeypassword

    The password, if any, to use to unlock encrypted Private Key.

    MONGOC_URI_TLSCAFILE

    tlscafile

    One, or a bundle of, Certificate Authorities whom should be considered to be trusted.

    MONGOC_URI_TLSALLOWINVALIDCERTIFICATES

    tlsallowinvalidcertificates

    Accept and ignore certificate verification errors (e.g. untrusted issuer, expired, etc.)

    MONGOC_URI_TLSALLOWINVALIDHOSTNAMES

    tlsallowinvalidhostnames

    Ignore hostname verification of the certificate (e.g. Man In The Middle, using valid certificate, but issued for another hostname)

    MONGOC_URI_TLSINSECURE

    tlsinsecure

    {true|false}, indicating if insecure TLS options should be used. Currently this implies MONGOC_URI_TLSALLOWINVALIDCERTIFICATES and MONGOC_URI_TLSALLOWINVALIDHOSTNAMES.

    MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK

    tlsdisablecertificaterevocationcheck

    {true|false}, indicates if revocation checking (CRL / OCSP) should be disabled.

    MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECK

    tlsdisableocspendpointcheck

    {true|false}, indicates if OCSP responder endpoints should not be requested when an OCSP response is not stapled.

    +

    See Configuring TLS for details about these options and about building libmongoc with TLS support.

    +
    +
    +

    Deprecated SSL Options

    +

    The following options have been deprecated and may be removed from future releases of libmongoc.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Deprecated For

    Key

    MONGOC_URI_SSL

    ssl

    MONGOC_URI_TLS

    tls

    MONGOC_URI_SSLCLIENTCERTIFICATEKEYFILE

    sslclientcertificatekeyfile

    MONGOC_URI_TLSCERTIFICATEKEYFILE

    tlscertificatekeyfile

    MONGOC_URI_SSLCLIENTCERTIFICATEKEYPASSWORD

    sslclientcertificatekeypassword

    MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORD

    tlscertificatekeypassword

    MONGOC_URI_SSLCERTIFICATEAUTHORITYFILE

    sslcertificateauthorityfile

    MONGOC_URI_TLSCAFILE

    tlscafile

    MONGOC_URI_SSLALLOWINVALIDCERTIFICATES

    sslallowinvalidcertificates

    MONGOC_URI_TLSALLOWINVALIDCERTIFICATES

    tlsallowinvalidcertificates

    MONGOC_URI_SSLALLOWINVALIDHOSTNAMES

    sslallowinvalidhostnames

    MONGOC_URI_TLSALLOWINVALIDHOSTNAMES

    tlsallowinvalidhostnames

    +
    +
    +

    Server Discovery, Monitoring, and Selection Options

    +

    Clients in a mongoc_client_pool_t share a topology scanner that runs on a background thread. The thread wakes every heartbeatFrequencyMS (default 10 seconds) to scan all MongoDB servers in parallel. Whenever an application operation requires a server that is not known–for example, if there is no known primary and your application attempts an insert–the thread rescans all servers every half-second. In this situation the pooled client waits up to serverSelectionTimeoutMS (default 30 seconds) for the thread to find a server suitable for the operation, then returns an error with domain MONGOC_ERROR_SERVER_SELECTION.

    +

    Technically, the total time an operation may wait while a pooled client scans the topology is controlled both by serverSelectionTimeoutMS and connectTimeoutMS. The longest wait occurs if the last scan begins just at the end of the selection timeout, and a slow or down server requires the full connection timeout before the client gives up.

    +

    A non-pooled client is single-threaded. Every heartbeatFrequencyMS, it blocks the next application operation while it does a parallel scan. This scan takes as long as needed to check the slowest server: roughly connectTimeoutMS. Therefore the default heartbeatFrequencyMS for single-threaded clients is greater than for pooled clients: 60 seconds.

    +

    By default, single-threaded (non-pooled) clients scan only once when an operation requires a server that is not known. If you attempt an insert and there is no known primary, the client checks all servers once trying to find it, then succeeds or returns an error with domain MONGOC_ERROR_SERVER_SELECTION. But if you set serverSelectionTryOnce to “false”, the single-threaded client loops, checking all servers every half-second, until serverSelectionTimeoutMS.

    +

    The total time an operation may wait for a single-threaded client to scan the topology is determined by connectTimeoutMS in the try-once case, or serverSelectionTimeoutMS and connectTimeoutMS if serverSelectionTryOnce is set “false”.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_HEARTBEATFREQUENCYMS

    heartbeatfrequencyms

    The interval between server monitoring checks. Defaults to 10,000ms (10 seconds) in pooled (multi-threaded) mode, 60,000ms (60 seconds) in non-pooled mode (single-threaded).

    MONGOC_URI_SERVERSELECTIONTIMEOUTMS

    serverselectiontimeoutms

    A timeout in milliseconds to block for server selection before throwing an exception. The default is 30,0000ms (30 seconds).

    MONGOC_URI_SERVERSELECTIONTRYONCE

    serverselectiontryonce

    If “true”, the driver scans the topology exactly once after server selection fails, then either selects a server or returns an error. If it is false, then the driver repeatedly searches for a suitable server for up to serverSelectionTimeoutMS milliseconds (pausing a half second between attempts). The default for serverSelectionTryOnce is “false” for pooled clients, otherwise “true”. Pooled clients ignore serverSelectionTryOnce; they signal the thread to rescan the topology every half-second until serverSelectionTimeoutMS expires.

    MONGOC_URI_SOCKETCHECKINTERVALMS

    socketcheckintervalms

    Only applies to single threaded clients. If a socket has not been used within this time, its connection is checked with a quick “hello” call before it is used again. Defaults to 5,000ms (5 seconds).

    MONGOC_URI_DIRECTCONNECTION

    directconnection

    If “true”, the driver connects to a single server directly and will not monitor additional servers. If “false”, the driver connects based on the presence and value of the replicaSet option.

    +

    Setting any of the *TimeoutMS options above to 0 will be interpreted as “use the default value”.

    +
    +
    +

    Connection Pool Options

    +

    These options govern the behavior of a mongoc_client_pool_t. They are ignored by a non-pooled mongoc_client_t.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_MAXPOOLSIZE

    maxpoolsize

    The maximum number of clients created by a mongoc_client_pool_t total (both in the pool and checked out). The default value is 100. Once it is reached, mongoc_client_pool_pop() blocks until another thread pushes a client.

    MONGOC_URI_MINPOOLSIZE

    minpoolsize

    Deprecated. This option’s behavior does not match its name, and its actual behavior will likely hurt performance.

    MONGOC_URI_MAXIDLETIMEMS

    maxidletimems

    Not implemented.

    MONGOC_URI_WAITQUEUEMULTIPLE

    waitqueuemultiple

    Not implemented.

    MONGOC_URI_WAITQUEUETIMEOUTMS

    waitqueuetimeoutms

    The maximum time to wait for a client to become available from the pool.

    +
    +
    +

    Write Concern Options

    + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_W

    w

    Determines the write concern (guarantee). Valid values:

    +
      +
    • 0 = The driver will not acknowledge write operations but will pass or handle any network and socket errors that it receives to the client. If you disable write concern but enable the getLastError command’s w option, w overrides the w option.

    • +
    • 1 = Provides basic acknowledgement of write operations. By specifying 1, you require that a standalone mongod instance, or the primary for replica sets, acknowledge all write operations. For drivers released after the default write concern change, this is the default write concern setting.

    • +
    • majority = For replica sets, if you specify the special majority value to w option, write operations will only return successfully after a majority of the configured replica set members have acknowledged the write operation.

    • +
    • n = For replica sets, if you specify a number n greater than 1, operations with this write concern return only after n members of the set have acknowledged the write. If you set n to a number that is greater than the number of available set members or members that hold data, MongoDB will wait, potentially indefinitely, for these members to become available.

    • +
    • tags = For replica sets, you can specify a tag set to require that all members of the set that have these tags configured return confirmation of the write operation.

    • +
    +

    MONGOC_URI_WTIMEOUTMS

    wtimeoutms

    The time in milliseconds to wait for replication to succeed, as specified in the w option, before timing out. When wtimeoutMS is 0, write operations will never time out.

    MONGOC_URI_JOURNAL

    journal

    Controls whether write operations will wait until the mongod acknowledges the write operations and commits the data to the on disk journal.

    +
      +
    • true = Enables journal commit acknowledgement write concern. Equivalent to specifying the getLastError command with the j option enabled.

    • +
    • false = Does not require that mongod commit write operations to the journal before acknowledging the write operation. This is the default option for the journal parameter.

    • +
    +
    +
    +
    +

    Read Concern Options

    + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_READCONCERNLEVEL

    readconcernlevel

    The level of isolation for read operations. If the level is left unspecified, the server default will be used. See readConcern in the MongoDB Manual for details.

    +
    +
    +

    Read Preference Options

    +

    When connected to a replica set, the driver chooses which member to query using the read preference:

    +
      +
    1. Choose members whose type matches “readPreference”.

    2. +
    3. From these, if there are any tags sets configured, choose members matching the first tag set. If there are none, fall back to the next tag set and so on, until some members are chosen or the tag sets are exhausted.

    4. +
    5. From the chosen servers, distribute queries randomly among the server with the fastest round-trip times. These include the server with the fastest time and any whose round-trip time is no more than “localThresholdMS” slower.

    6. +
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_READPREFERENCE

    readpreference

    Specifies the replica set read preference for this connection. This setting overrides any secondaryOk value. The read preference values are the following:

    +
      +
    • primary (default)

    • +
    • primaryPreferred

    • +
    • secondary

    • +
    • secondaryPreferred

    • +
    • nearest

    • +
    +

    MONGOC_URI_READPREFERENCETAGS

    readpreferencetags

    A representation of a tag set. See also Tag Sets.

    MONGOC_URI_LOCALTHRESHOLDMS

    localthresholdms

    How far to distribute queries, beyond the server with the fastest round-trip time. By default, only servers within 15ms of the fastest round-trip time receive queries.

    MONGOC_URI_MAXSTALENESSSECONDS

    maxstalenessseconds

    The maximum replication lag, in wall clock time, that a secondary can suffer and still be eligible. The smallest allowed value for maxStalenessSeconds is 90 seconds.

    +
    +

    Note

    +

    When connecting to more than one mongos, libmongoc’s localThresholdMS applies only to the selection of mongos servers. The threshold for selecting among replica set members in shards is controlled by the mongos’s localThreshold command line option.

    +
    +
    +
    +

    Legacy Options

    +

    For historical reasons, the following options are available. They should however not be used.

    + + + + + + + + + + + + + +

    Constant

    Key

    Description

    MONGOC_URI_SAFE

    safe

    {true|false} Same as w={1|0}

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_uri_unescape.html b/libmongoc/1.23.2/mongoc_uri_unescape.html new file mode 100644 index 0000000000000000000000000000000000000000..a21a63b64a15f8b7512c7ddee837098a7a2fb353 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_uri_unescape.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_unescape() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_unescape()

    +
    +

    Synopsis

    +
    char *
    +mongoc_uri_unescape (const char *escaped_string) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • escaped_string: A utf8 encoded string.

    • +
    +
    +
    +

    Description

    +

    Unescapes an URI encoded string. For example, “%40” would become “@”.

    +
    +
    +

    Returns

    +

    Returns a newly allocated string that should be freed with bson_free(). If escaped_string contains an invalid UTF-8 character or an invalid escape sequence, returns NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_version.html b/libmongoc/1.23.2/mongoc_version.html new file mode 100644 index 0000000000000000000000000000000000000000..8b8c8f27a51f1fe33f9d320bc240f11e2c6bb0fa --- /dev/null +++ b/libmongoc/1.23.2/mongoc_version.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + Version Checks — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Version Checks

    +

    Conditional compilation based on mongoc version

    +
    +

    Description

    +

    The following preprocessor macros can be used to perform various checks based on the version of the library you are compiling against. +This may be useful if you only want to enable a feature on a certain version of the library.

    +
    #include <mongoc/mongoc.h>
    +
    +#define MONGOC_MAJOR_VERSION (x)
    +#define MONGOC_MINOR_VERSION (y)
    +#define MONGOC_MICRO_VERSION (z)
    +#define MONGOC_VERSION_S     "x.y.z"
    +#define MONGOC_VERSION_HEX   ((1 << 24) | (0 << 16) | (0 << 8) | 0)
    +#define MONGOC_CHECK_VERSION(major, minor, micro)
    +
    +
    +

    Only compile a block on MongoDB C Driver 1.1.0 and newer.

    +
    #if MONGOC_CHECK_VERSION(1, 1, 0)
    +static void
    +do_something (void)
    +{
    +}
    +#endif
    +
    +
    +
    +
    +

    Run-Time Version Checks

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_append.html b/libmongoc/1.23.2/mongoc_write_concern_append.html new file mode 100644 index 0000000000000000000000000000000000000000..8d1aa046fd7834faee1899c576009c5391502eb9 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_append.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_write_concern_append() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_append()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_append (mongoc_write_concern_t *write_concern,
    +                             bson_t *command);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    This function appends a write concern to command options. It is useful for appending a write concern to command options before passing them to mongoc_client_write_command_with_opts() or a related function that takes an options document.

    +
    +
    +

    Returns

    +

    Returns true on success. If any arguments are invalid, returns false and logs an error.

    +
    +
    +

    Example

    +

    See the example code for mongoc_client_write_command_with_opts().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_copy.html b/libmongoc/1.23.2/mongoc_write_concern_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..c951b96e5d34fff6df329eef9209d43adce62fa7 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_copy.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_write_concern_copy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_copy()

    +
    +

    Synopsis

    +
    mongoc_write_concern_t *
    +mongoc_write_concern_copy (const mongoc_write_concern_t *write_concern)
    +   BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Performs a deep copy of write_concern.

    +
    +
    +

    Returns

    +

    Returns a newly allocated copy of write_concern that should be freed with mongoc_write_concern_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_destroy.html b/libmongoc/1.23.2/mongoc_write_concern_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..28d89da1b580994894eb135be4afe94a800c718e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_destroy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_write_concern_destroy() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_destroy (mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Frees all resources associated with the write concern structure. Does nothing if write_concern is NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_get_fsync.html b/libmongoc/1.23.2/mongoc_write_concern_get_fsync.html new file mode 100644 index 0000000000000000000000000000000000000000..601cc7b9e2409a5bfdcece3b7f04dc3ceee54855 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_get_fsync.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_fsync() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_fsync()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_get_fsync (const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches if an fsync should be performed before returning success on a write operation.

    +
    +
    +

    Returns

    +

    Returns true if fsync is set as part of the write concern.

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    The fsync write concern is deprecated; use journal instead.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_get_journal.html b/libmongoc/1.23.2/mongoc_write_concern_get_journal.html new file mode 100644 index 0000000000000000000000000000000000000000..02450071944fd9f426852d06c5c3c7286a55eeaf --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_get_journal.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_journal() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_journal()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_get_journal (const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches if the write should be journaled before indicating success.

    +
    +
    +

    Returns

    +

    Returns true if the write should be journaled.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_get_w.html b/libmongoc/1.23.2/mongoc_write_concern_get_w.html new file mode 100644 index 0000000000000000000000000000000000000000..97c9992f0a25bac72dc04b9657a5a4ff51ef491b --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_get_w.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_w() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_w()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_write_concern_get_w (const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches the w parameter of the write concern.

    +
    +
    +

    Returns

    +

    Returns an integer containing the w value. If wmajority is set, this would be MONGOC_WRITE_CONCERN_W_MAJORITY.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_get_wmajority.html b/libmongoc/1.23.2/mongoc_write_concern_get_wmajority.html new file mode 100644 index 0000000000000000000000000000000000000000..9569268a07b23cdf41058acbdeb8a1a17c2b4758 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_get_wmajority.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wmajority() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_wmajority()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_get_wmajority (
    +   const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Fetches if the write should be written to a majority of nodes before indicating success.

    +
    +
    +

    Returns

    +

    Returns true if wmajority is set.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_get_wtag.html b/libmongoc/1.23.2/mongoc_write_concern_get_wtag.html new file mode 100644 index 0000000000000000000000000000000000000000..8cf404784294612949e53240ebe987672a63c870 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_get_wtag.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wtag() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_wtag()

    +
    +

    Synopsis

    +
    const char *
    +mongoc_write_concern_get_wtag (const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    A string containing the wtag setting if it has been set. Otherwise returns NULL.

    +
    +
    +

    Returns

    +

    Returns a string which should not be modified or freed, or NULL.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_get_wtimeout.html b/libmongoc/1.23.2/mongoc_write_concern_get_wtimeout.html new file mode 100644 index 0000000000000000000000000000000000000000..a84b1c82b4101d798e4d98aa2e8a980a00cbf863 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_get_wtimeout.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wtimeout() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_wtimeout()

    +
    +

    Synopsis

    +
    int32_t
    +mongoc_write_concern_get_wtimeout (const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Get the timeout in milliseconds that the server should wait before returning with a write concern timeout.

    +

    A value of 0 indicates no write timeout.

    +
    +
    +

    Returns

    +

    Returns an 32-bit signed integer containing the timeout.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_get_wtimeout_int64.html b/libmongoc/1.23.2/mongoc_write_concern_get_wtimeout_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..67c31df6a7a794e46140c48848f3b7ed904e05a5 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_get_wtimeout_int64.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wtimeout_int64() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_wtimeout_int64()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_write_concern_get_wtimeout_int64 (const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Get the timeout in milliseconds that the server should wait before returning with a write concern timeout.

    +

    A value of 0 indicates no write timeout.

    +
    +
    +

    Returns

    +

    Returns a 64-bit signed integer containing the timeout.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_is_acknowledged.html b/libmongoc/1.23.2/mongoc_write_concern_is_acknowledged.html new file mode 100644 index 0000000000000000000000000000000000000000..535176b510e849523dcf43e07e845a100bd1cadf --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_is_acknowledged.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_write_concern_is_acknowledged() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_is_acknowledged()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_is_acknowledged (
    +   const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Test if this is an acknowledged or unacknowledged write concern.

    +

    If write_concern is NULL, returns true. (In other words, writes are acknowledged by default.)

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_is_default.html b/libmongoc/1.23.2/mongoc_write_concern_is_default.html new file mode 100644 index 0000000000000000000000000000000000000000..0f027ca8ec47d83f6c3bba33d378e26dd3f25c9e --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_is_default.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_write_concern_is_default() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_is_default()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_is_default (mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Returns true if write_concern has not been modified from the default. For example, if no “w” option is set in the MongoDB URI and you have not called mongoc_client_set_write_concern(), then +mongoc_write_concern_is_default() is true for the write concern returned by mongoc_client_get_write_concern().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_is_valid.html b/libmongoc/1.23.2/mongoc_write_concern_is_valid.html new file mode 100644 index 0000000000000000000000000000000000000000..eb9f0455c31cd1bf88a46be17d6b3ecaf2f6e4ab --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_is_valid.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_write_concern_is_valid() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_is_valid()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_is_valid (const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Test if this write concern uses an invalid combination of options.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_journal_is_set.html b/libmongoc/1.23.2/mongoc_write_concern_journal_is_set.html new file mode 100644 index 0000000000000000000000000000000000000000..ef8a7c8f5cce831d15153acc49909016bff8c7fa --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_journal_is_set.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_write_concern_journal_is_set() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_journal_is_set()

    +
    +

    Synopsis

    +
    bool
    +mongoc_write_concern_journal_is_set (
    +   const mongoc_write_concern_t *write_concern);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Test whether this write concern’s “journal” option was explicitly set or uses the default setting.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_new.html b/libmongoc/1.23.2/mongoc_write_concern_new.html new file mode 100644 index 0000000000000000000000000000000000000000..6d15be809a0022230c704dde34b969aa55df37e8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_new.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_write_concern_new() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_new()

    +
    +

    Synopsis

    +
    mongoc_write_concern_t *
    +mongoc_write_concern_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    +
    +

    Returns

    +

    Creates a newly allocated write concern that can be configured based on user preference. This should be freed with mongoc_write_concern_destroy() when no longer in use.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_set_fsync.html b/libmongoc/1.23.2/mongoc_write_concern_set_fsync.html new file mode 100644 index 0000000000000000000000000000000000000000..bbe01c89757a9bf14751aab27d1ba96e56659540 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_set_fsync.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_fsync() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_fsync()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_set_fsync (mongoc_write_concern_t *write_concern,
    +                                bool fsync_);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets if a fsync must be performed before indicating write success.

    +

    Beginning in version 1.9.0, this function can now alter the write concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would log a warning instead +instead of altering the write concern.

    +
    +
    +

    Deprecated

    +
    +

    Warning

    +

    The fsync write concern is deprecated.

    +
    +

    Please use mongoc_write_concern_set_journal() instead.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_set_journal.html b/libmongoc/1.23.2/mongoc_write_concern_set_journal.html new file mode 100644 index 0000000000000000000000000000000000000000..d5397125a8a68da05e33789be6c0fe5433f7c138 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_set_journal.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_journal() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_journal()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_set_journal (mongoc_write_concern_t *write_concern,
    +                                  bool journal);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets if the write must have been journaled before indicating success.

    +

    Beginning in version 1.9.0, this function can now alter the write concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would log a warning instead +instead of altering the write concern.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_set_w.html b/libmongoc/1.23.2/mongoc_write_concern_set_w.html new file mode 100644 index 0000000000000000000000000000000000000000..1584d2a3ca42355c6caf99688652e67b2a93dd5f --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_set_w.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_w() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_w()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_set_w (mongoc_write_concern_t *write_concern, int32_t w);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the w value for the write concern. See mongoc_write_concern_t for more information on this setting.

    +

    Unacknowledged writes are not causally consistent. If you execute a write operation with a mongoc_write_concern_t on which you have called mongoc_write_concern_set_w() with a value of 0, the write does not participate in causal consistency, even when executed with a mongoc_client_session_t.

    +

    Beginning in version 1.9.0, this function can now alter the write concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would log a warning instead +instead of altering the write concern.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_set_wmajority.html b/libmongoc/1.23.2/mongoc_write_concern_set_wmajority.html new file mode 100644 index 0000000000000000000000000000000000000000..f39a71e4fc1dcc624953e9eb0759e7493d3550d2 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_set_wmajority.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wmajority() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_wmajority()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_set_wmajority (mongoc_write_concern_t *write_concern,
    +                                    int32_t wtimeout_msec);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets if the write must have been propagated to a majority of nodes before indicating write success.

    +

    The timeout specifies how long, in milliseconds, the server should wait before indicating that the write has failed. This is not the same as a socket timeout. A value of zero may be used to indicate no timeout.

    +

    Beginning in version 1.9.0, this function can now alter the write concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would log a warning instead +instead of altering the write concern.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_set_wtag.html b/libmongoc/1.23.2/mongoc_write_concern_set_wtag.html new file mode 100644 index 0000000000000000000000000000000000000000..593225c2a4f8f1c9792c3ee26f34f891812e0efb --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_set_wtag.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wtag() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_wtag()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_set_wtag (mongoc_write_concern_t *write_concern,
    +                               const char *tag);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Sets the write tag that must be satisfied for the write to indicate success. Write tags are preset write concerns configured on your MongoDB server. See mongoc_write_concern_t for more information on this setting.

    +

    Beginning in version 1.9.0, this function can now alter the write concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would log a warning instead +instead of altering the write concern.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_set_wtimeout.html b/libmongoc/1.23.2/mongoc_write_concern_set_wtimeout.html new file mode 100644 index 0000000000000000000000000000000000000000..47152483a02c0d1a628a4735a1ef1e2b7bb727c0 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_set_wtimeout.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wtimeout() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_wtimeout()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_set_wtimeout (mongoc_write_concern_t *write_concern,
    +                                   int32_t wtimeout_msec);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Set the timeout in milliseconds that the server should wait before returning with a write concern timeout. This is not the same as a socket timeout. A value of zero may be used to indicate no write concern timeout.

    +

    Beginning in version 1.9.0, this function can now alter the write concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would log a warning instead +instead of altering the write concern.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_set_wtimeout_int64.html b/libmongoc/1.23.2/mongoc_write_concern_set_wtimeout_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..fa30328bda025faf4094e333f5a6809a0dd736b8 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_set_wtimeout_int64.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wtimeout_int64() — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_wtimeout_int64()

    +
    +

    Synopsis

    +
    void
    +mongoc_write_concern_set_wtimeout_int64 (mongoc_write_concern_t *write_concern,
    +                                         int64_t wtimeout_msec);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Description

    +

    Set the timeout in milliseconds that the server should wait before returning with a write concern timeout. This is not the same as a socket timeout. A value of zero may be used to indicate no write concern timeout.

    +

    Beginning in version 1.9.0, this function can now alter the write concern after +it has been used in an operation. Previously, using the struct with an operation +would mark it as “frozen” and calling this function would log a warning instead +instead of altering the write concern.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/mongoc_write_concern_t.html b/libmongoc/1.23.2/mongoc_write_concern_t.html new file mode 100644 index 0000000000000000000000000000000000000000..abb87adb954b140b4ef90c6c6d28a1d2cb783548 --- /dev/null +++ b/libmongoc/1.23.2/mongoc_write_concern_t.html @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + mongoc_write_concern_t — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_t

    +

    Write Concern abstraction

    +
    +

    Synopsis

    +

    mongoc_write_concern_t tells the driver what level of acknowledgement to await from the server. The default, MONGOC_WRITE_CONCERN_W_DEFAULT, is right for the great majority of applications.

    +

    You can specify a write concern on connection objects, database objects, collection objects, or per-operation. Data-modifying operations typically use the write concern of the object they operate on, and check the server response for a write concern error or write concern timeout. For example, mongoc_collection_drop_index() uses the collection’s write concern, and a write concern error or timeout in the response is considered a failure.

    +

    Exceptions to this principle are the generic command functions:

    + +

    These generic command functions do not automatically apply a write concern, and they do not check the server response for a write concern error or write concern timeout.

    +

    See Write Concern on the MongoDB website for more information.

    +
    +
    +

    Write Concern Levels

    +

    Set the write concern level with mongoc_write_concern_set_w().

    + + + + + + + + + + + + + + + +

    MONGOC_WRITE_CONCERN_W_DEFAULT (1)

    By default, writes block awaiting acknowledgement from MongoDB. Acknowledged write concern allows clients to catch network, duplicate key, and other errors.

    MONGOC_WRITE_CONCERN_W_UNACKNOWLEDGED (0)

    With this write concern, MongoDB does not acknowledge the receipt of write operation. Unacknowledged is similar to errors ignored; however, mongoc attempts to receive and handle network errors when possible.

    MONGOC_WRITE_CONCERN_W_MAJORITY (majority)

    Block until a write has been propagated to a majority of the nodes in the replica set.

    n

    Block until a write has been propagated to at least n nodes in the replica set.

    +
    +
    +

    Deprecations

    +

    The write concern MONGOC_WRITE_CONCERN_W_ERRORS_IGNORED (value -1) is a deprecated synonym for MONGOC_WRITE_CONCERN_W_UNACKNOWLEDGED (value 0), and will be removed in the next major release.

    +

    mongoc_write_concern_set_fsync() is deprecated.

    +
    +
    +

    Functions

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/objects.inv b/libmongoc/1.23.2/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..417ba262055825bc96e006aa3657d7e27a542391 Binary files /dev/null and b/libmongoc/1.23.2/objects.inv differ diff --git a/libmongoc/1.23.2/queryable-encryption.html b/libmongoc/1.23.2/queryable-encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..43ca56d2f66278085cd464145a3d8e30beee8a4e --- /dev/null +++ b/libmongoc/1.23.2/queryable-encryption.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + Experimental: Queryable Encryption — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Experimental: Queryable Encryption

    +

    MongoDB 6.0 introduces Queryable Encryption as a Public Technical Preview. +This API is still experimental and subject to breaking changes!

    +

    APIs that are part of Queryable Encryption will be marked as experimental, and +one should not rely on their stability.

    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/search.html b/libmongoc/1.23.2/search.html new file mode 100644 index 0000000000000000000000000000000000000000..034728f673aafcd0f3f8dccc6e08be766c2a0935 --- /dev/null +++ b/libmongoc/1.23.2/search.html @@ -0,0 +1,125 @@ + + + + + + + + + + + + + Search — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Search

    +
    + +

    + Please activate JavaScript to enable the search + functionality. +

    +
    +

    + From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

    +
    + + + +
    + +
    + +
    + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/searchindex.js b/libmongoc/1.23.2/searchindex.js new file mode 100644 index 0000000000000000000000000000000000000000..cf6adbb3a637d08d5dd88f4c32228c1aea97e3ee --- /dev/null +++ b/libmongoc/1.23.2/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["advanced-connections", "aggregate", "api", "application-performance-monitoring", "authentication", "basic-troubleshooting", "bulk", "configuring_tls", "connection-pooling", "create-indexes", "cursors", "debugging", "distinct-mapreduce", "errors", "full_index", "gridfs", "guides", "index", "init-cleanup", "installing", "lifecycle", "logging", "matcher", "mongoc-common-task-examples", "mongoc_apm_callbacks_destroy", "mongoc_apm_callbacks_new", "mongoc_apm_callbacks_t", "mongoc_apm_command_failed_get_command_name", "mongoc_apm_command_failed_get_context", "mongoc_apm_command_failed_get_duration", "mongoc_apm_command_failed_get_error", "mongoc_apm_command_failed_get_host", "mongoc_apm_command_failed_get_operation_id", "mongoc_apm_command_failed_get_reply", "mongoc_apm_command_failed_get_request_id", "mongoc_apm_command_failed_get_server_connection_id", "mongoc_apm_command_failed_get_server_id", "mongoc_apm_command_failed_get_service_id", "mongoc_apm_command_failed_t", "mongoc_apm_command_started_get_command", "mongoc_apm_command_started_get_command_name", "mongoc_apm_command_started_get_context", "mongoc_apm_command_started_get_database_name", "mongoc_apm_command_started_get_host", "mongoc_apm_command_started_get_operation_id", "mongoc_apm_command_started_get_request_id", "mongoc_apm_command_started_get_server_connection_id", "mongoc_apm_command_started_get_server_id", "mongoc_apm_command_started_get_service_id", "mongoc_apm_command_started_t", "mongoc_apm_command_succeeded_get_command_name", "mongoc_apm_command_succeeded_get_context", "mongoc_apm_command_succeeded_get_duration", "mongoc_apm_command_succeeded_get_host", "mongoc_apm_command_succeeded_get_operation_id", "mongoc_apm_command_succeeded_get_reply", "mongoc_apm_command_succeeded_get_request_id", "mongoc_apm_command_succeeded_get_server_connection_id", "mongoc_apm_command_succeeded_get_server_id", "mongoc_apm_command_succeeded_get_service_id", "mongoc_apm_command_succeeded_t", "mongoc_apm_server_changed_get_context", "mongoc_apm_server_changed_get_host", "mongoc_apm_server_changed_get_new_description", "mongoc_apm_server_changed_get_previous_description", "mongoc_apm_server_changed_get_topology_id", "mongoc_apm_server_changed_t", "mongoc_apm_server_closed_get_context", "mongoc_apm_server_closed_get_host", "mongoc_apm_server_closed_get_topology_id", "mongoc_apm_server_closed_t", "mongoc_apm_server_heartbeat_failed_get_awaited", "mongoc_apm_server_heartbeat_failed_get_context", "mongoc_apm_server_heartbeat_failed_get_duration", "mongoc_apm_server_heartbeat_failed_get_error", "mongoc_apm_server_heartbeat_failed_get_host", "mongoc_apm_server_heartbeat_failed_t", "mongoc_apm_server_heartbeat_started_get_awaited", "mongoc_apm_server_heartbeat_started_get_context", "mongoc_apm_server_heartbeat_started_get_host", "mongoc_apm_server_heartbeat_started_t", "mongoc_apm_server_heartbeat_succeeded_get_awaited", "mongoc_apm_server_heartbeat_succeeded_get_context", "mongoc_apm_server_heartbeat_succeeded_get_duration", "mongoc_apm_server_heartbeat_succeeded_get_host", "mongoc_apm_server_heartbeat_succeeded_get_reply", "mongoc_apm_server_heartbeat_succeeded_t", "mongoc_apm_server_opening_get_context", "mongoc_apm_server_opening_get_host", "mongoc_apm_server_opening_get_topology_id", "mongoc_apm_server_opening_t", "mongoc_apm_set_command_failed_cb", "mongoc_apm_set_command_started_cb", "mongoc_apm_set_command_succeeded_cb", "mongoc_apm_set_server_changed_cb", "mongoc_apm_set_server_closed_cb", "mongoc_apm_set_server_heartbeat_failed_cb", "mongoc_apm_set_server_heartbeat_started_cb", "mongoc_apm_set_server_heartbeat_succeeded_cb", "mongoc_apm_set_server_opening_cb", "mongoc_apm_set_topology_changed_cb", "mongoc_apm_set_topology_closed_cb", "mongoc_apm_set_topology_opening_cb", "mongoc_apm_topology_changed_get_context", "mongoc_apm_topology_changed_get_new_description", "mongoc_apm_topology_changed_get_previous_description", "mongoc_apm_topology_changed_get_topology_id", "mongoc_apm_topology_changed_t", "mongoc_apm_topology_closed_get_context", "mongoc_apm_topology_closed_get_topology_id", "mongoc_apm_topology_closed_t", "mongoc_apm_topology_opening_get_context", "mongoc_apm_topology_opening_get_topology_id", "mongoc_apm_topology_opening_t", "mongoc_auto_encryption_opts_destroy", "mongoc_auto_encryption_opts_new", "mongoc_auto_encryption_opts_set_bypass_auto_encryption", "mongoc_auto_encryption_opts_set_bypass_query_analysis", "mongoc_auto_encryption_opts_set_encrypted_fields_map", "mongoc_auto_encryption_opts_set_extra", "mongoc_auto_encryption_opts_set_keyvault_client", "mongoc_auto_encryption_opts_set_keyvault_client_pool", "mongoc_auto_encryption_opts_set_keyvault_namespace", "mongoc_auto_encryption_opts_set_kms_credential_provider_callback", "mongoc_auto_encryption_opts_set_kms_providers", "mongoc_auto_encryption_opts_set_schema_map", "mongoc_auto_encryption_opts_set_tls_opts", "mongoc_auto_encryption_opts_t", "mongoc_bulk_operation_delete", "mongoc_bulk_operation_delete_one", "mongoc_bulk_operation_destroy", "mongoc_bulk_operation_execute", "mongoc_bulk_operation_get_hint", "mongoc_bulk_operation_get_write_concern", "mongoc_bulk_operation_insert", "mongoc_bulk_operation_insert_with_opts", "mongoc_bulk_operation_remove", "mongoc_bulk_operation_remove_many_with_opts", "mongoc_bulk_operation_remove_one", "mongoc_bulk_operation_remove_one_with_opts", "mongoc_bulk_operation_replace_one", "mongoc_bulk_operation_replace_one_with_opts", "mongoc_bulk_operation_set_bypass_document_validation", "mongoc_bulk_operation_set_client_session", "mongoc_bulk_operation_set_comment", "mongoc_bulk_operation_set_hint", "mongoc_bulk_operation_set_let", "mongoc_bulk_operation_t", "mongoc_bulk_operation_update", "mongoc_bulk_operation_update_many_with_opts", "mongoc_bulk_operation_update_one", "mongoc_bulk_operation_update_one_with_opts", "mongoc_change_stream_destroy", "mongoc_change_stream_error_document", "mongoc_change_stream_get_resume_token", "mongoc_change_stream_next", "mongoc_change_stream_t", "mongoc_check_version", "mongoc_cleanup", "mongoc_client_command", "mongoc_client_command_simple", "mongoc_client_command_simple_with_server_id", "mongoc_client_command_with_opts", "mongoc_client_destroy", "mongoc_client_enable_auto_encryption", "mongoc_client_encryption_add_key_alt_name", "mongoc_client_encryption_create_datakey", "mongoc_client_encryption_datakey_opts_destroy", "mongoc_client_encryption_datakey_opts_new", "mongoc_client_encryption_datakey_opts_set_keyaltnames", "mongoc_client_encryption_datakey_opts_set_keymaterial", "mongoc_client_encryption_datakey_opts_set_masterkey", "mongoc_client_encryption_datakey_opts_t", "mongoc_client_encryption_decrypt", "mongoc_client_encryption_delete_key", "mongoc_client_encryption_destroy", "mongoc_client_encryption_encrypt", "mongoc_client_encryption_encrypt_opts_destroy", "mongoc_client_encryption_encrypt_opts_new", "mongoc_client_encryption_encrypt_opts_set_algorithm", "mongoc_client_encryption_encrypt_opts_set_contention_factor", "mongoc_client_encryption_encrypt_opts_set_keyaltname", "mongoc_client_encryption_encrypt_opts_set_keyid", "mongoc_client_encryption_encrypt_opts_set_query_type", "mongoc_client_encryption_encrypt_opts_t", "mongoc_client_encryption_get_crypt_shared_version", "mongoc_client_encryption_get_key", "mongoc_client_encryption_get_key_by_alt_name", "mongoc_client_encryption_get_keys", "mongoc_client_encryption_new", "mongoc_client_encryption_opts_destroy", "mongoc_client_encryption_opts_new", "mongoc_client_encryption_opts_set_keyvault_client", "mongoc_client_encryption_opts_set_keyvault_namespace", "mongoc_client_encryption_opts_set_kms_credential_provider_callback", "mongoc_client_encryption_opts_set_kms_providers", "mongoc_client_encryption_opts_set_tls_opts", "mongoc_client_encryption_opts_t", "mongoc_client_encryption_remove_key_alt_name", "mongoc_client_encryption_rewrap_many_datakey", "mongoc_client_encryption_rewrap_many_datakey_result_destroy", "mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result", "mongoc_client_encryption_rewrap_many_datakey_result_new", "mongoc_client_encryption_rewrap_many_datakey_result_t", "mongoc_client_encryption_t", "mongoc_client_find_databases_with_opts", "mongoc_client_get_collection", "mongoc_client_get_crypt_shared_version", "mongoc_client_get_database", "mongoc_client_get_database_names", "mongoc_client_get_database_names_with_opts", "mongoc_client_get_default_database", "mongoc_client_get_gridfs", "mongoc_client_get_handshake_description", "mongoc_client_get_max_bson_size", "mongoc_client_get_max_message_size", "mongoc_client_get_read_concern", "mongoc_client_get_read_prefs", "mongoc_client_get_server_description", "mongoc_client_get_server_descriptions", "mongoc_client_get_server_status", "mongoc_client_get_uri", "mongoc_client_get_write_concern", "mongoc_client_new", "mongoc_client_new_from_uri", "mongoc_client_new_from_uri_with_error", "mongoc_client_pool_destroy", "mongoc_client_pool_enable_auto_encryption", "mongoc_client_pool_max_size", "mongoc_client_pool_min_size", "mongoc_client_pool_new", "mongoc_client_pool_new_with_error", "mongoc_client_pool_pop", "mongoc_client_pool_push", "mongoc_client_pool_set_apm_callbacks", "mongoc_client_pool_set_appname", "mongoc_client_pool_set_error_api", "mongoc_client_pool_set_server_api", "mongoc_client_pool_set_ssl_opts", "mongoc_client_pool_t", "mongoc_client_pool_try_pop", "mongoc_client_read_command_with_opts", "mongoc_client_read_write_command_with_opts", "mongoc_client_reset", "mongoc_client_select_server", "mongoc_client_session_abort_transaction", "mongoc_client_session_advance_cluster_time", "mongoc_client_session_advance_operation_time", "mongoc_client_session_append", "mongoc_client_session_commit_transaction", "mongoc_client_session_destroy", "mongoc_client_session_get_client", "mongoc_client_session_get_cluster_time", "mongoc_client_session_get_dirty", "mongoc_client_session_get_lsid", "mongoc_client_session_get_operation_time", "mongoc_client_session_get_opts", "mongoc_client_session_get_server_id", "mongoc_client_session_get_transaction_state", "mongoc_client_session_in_transaction", "mongoc_client_session_start_transaction", "mongoc_client_session_t", "mongoc_client_session_with_transaction", "mongoc_client_session_with_transaction_cb_t", "mongoc_client_set_apm_callbacks", "mongoc_client_set_appname", "mongoc_client_set_error_api", "mongoc_client_set_read_concern", "mongoc_client_set_read_prefs", "mongoc_client_set_server_api", "mongoc_client_set_ssl_opts", "mongoc_client_set_stream_initiator", "mongoc_client_set_write_concern", "mongoc_client_start_session", "mongoc_client_t", "mongoc_client_watch", "mongoc_client_write_command_with_opts", "mongoc_collection_aggregate", "mongoc_collection_command", "mongoc_collection_command_simple", "mongoc_collection_command_with_opts", "mongoc_collection_copy", "mongoc_collection_count", "mongoc_collection_count_documents", "mongoc_collection_count_with_opts", "mongoc_collection_create_bulk_operation", "mongoc_collection_create_bulk_operation_with_opts", "mongoc_collection_create_index", "mongoc_collection_create_index_with_opts", "mongoc_collection_delete", "mongoc_collection_delete_many", "mongoc_collection_delete_one", "mongoc_collection_destroy", "mongoc_collection_drop", "mongoc_collection_drop_index", "mongoc_collection_drop_index_with_opts", "mongoc_collection_drop_with_opts", "mongoc_collection_ensure_index", "mongoc_collection_estimated_document_count", "mongoc_collection_find", "mongoc_collection_find_and_modify", "mongoc_collection_find_and_modify_with_opts", "mongoc_collection_find_indexes", "mongoc_collection_find_indexes_with_opts", "mongoc_collection_find_with_opts", "mongoc_collection_get_last_error", "mongoc_collection_get_name", "mongoc_collection_get_read_concern", "mongoc_collection_get_read_prefs", "mongoc_collection_get_write_concern", "mongoc_collection_insert", "mongoc_collection_insert_bulk", "mongoc_collection_insert_many", "mongoc_collection_insert_one", "mongoc_collection_keys_to_index_string", "mongoc_collection_read_command_with_opts", "mongoc_collection_read_write_command_with_opts", "mongoc_collection_remove", "mongoc_collection_rename", "mongoc_collection_rename_with_opts", "mongoc_collection_replace_one", "mongoc_collection_save", "mongoc_collection_set_read_concern", "mongoc_collection_set_read_prefs", "mongoc_collection_set_write_concern", "mongoc_collection_stats", "mongoc_collection_t", "mongoc_collection_update", "mongoc_collection_update_many", "mongoc_collection_update_one", "mongoc_collection_validate", "mongoc_collection_watch", "mongoc_collection_write_command_with_opts", "mongoc_cursor_clone", "mongoc_cursor_current", "mongoc_cursor_destroy", "mongoc_cursor_error", "mongoc_cursor_error_document", "mongoc_cursor_get_batch_size", "mongoc_cursor_get_hint", "mongoc_cursor_get_host", "mongoc_cursor_get_id", "mongoc_cursor_get_limit", "mongoc_cursor_get_max_await_time_ms", "mongoc_cursor_is_alive", "mongoc_cursor_more", "mongoc_cursor_new_from_command_reply", "mongoc_cursor_new_from_command_reply_with_opts", "mongoc_cursor_next", "mongoc_cursor_set_batch_size", "mongoc_cursor_set_hint", "mongoc_cursor_set_limit", "mongoc_cursor_set_max_await_time_ms", "mongoc_cursor_t", "mongoc_database_add_user", "mongoc_database_aggregate", "mongoc_database_command", "mongoc_database_command_simple", "mongoc_database_command_with_opts", "mongoc_database_copy", "mongoc_database_create_collection", "mongoc_database_destroy", "mongoc_database_drop", "mongoc_database_drop_with_opts", "mongoc_database_find_collections", "mongoc_database_find_collections_with_opts", "mongoc_database_get_collection", "mongoc_database_get_collection_names", "mongoc_database_get_collection_names_with_opts", "mongoc_database_get_name", "mongoc_database_get_read_concern", "mongoc_database_get_read_prefs", "mongoc_database_get_write_concern", "mongoc_database_has_collection", "mongoc_database_read_command_with_opts", "mongoc_database_read_write_command_with_opts", "mongoc_database_remove_all_users", "mongoc_database_remove_user", "mongoc_database_set_read_concern", "mongoc_database_set_read_prefs", "mongoc_database_set_write_concern", "mongoc_database_t", "mongoc_database_watch", "mongoc_database_write_command_with_opts", "mongoc_delete_flags_t", "mongoc_error_has_label", "mongoc_find_and_modify_opts_append", "mongoc_find_and_modify_opts_destroy", "mongoc_find_and_modify_opts_get_bypass_document_validation", "mongoc_find_and_modify_opts_get_fields", "mongoc_find_and_modify_opts_get_flags", "mongoc_find_and_modify_opts_get_max_time_ms", "mongoc_find_and_modify_opts_get_sort", "mongoc_find_and_modify_opts_get_update", "mongoc_find_and_modify_opts_new", "mongoc_find_and_modify_opts_set_bypass_document_validation", "mongoc_find_and_modify_opts_set_fields", "mongoc_find_and_modify_opts_set_flags", "mongoc_find_and_modify_opts_set_max_time_ms", "mongoc_find_and_modify_opts_set_sort", "mongoc_find_and_modify_opts_set_update", "mongoc_find_and_modify_opts_t", "mongoc_get_major_version", "mongoc_get_micro_version", "mongoc_get_minor_version", "mongoc_get_version", "mongoc_gridfs_bucket_abort_upload", "mongoc_gridfs_bucket_delete_by_id", "mongoc_gridfs_bucket_destroy", "mongoc_gridfs_bucket_download_to_stream", "mongoc_gridfs_bucket_find", "mongoc_gridfs_bucket_new", "mongoc_gridfs_bucket_open_download_stream", "mongoc_gridfs_bucket_open_upload_stream", "mongoc_gridfs_bucket_open_upload_stream_with_id", "mongoc_gridfs_bucket_stream_error", "mongoc_gridfs_bucket_t", "mongoc_gridfs_bucket_upload_from_stream", "mongoc_gridfs_bucket_upload_from_stream_with_id", "mongoc_gridfs_create_file", "mongoc_gridfs_create_file_from_stream", "mongoc_gridfs_destroy", "mongoc_gridfs_drop", "mongoc_gridfs_file_destroy", "mongoc_gridfs_file_error", "mongoc_gridfs_file_get_aliases", "mongoc_gridfs_file_get_chunk_size", "mongoc_gridfs_file_get_content_type", "mongoc_gridfs_file_get_filename", "mongoc_gridfs_file_get_id", "mongoc_gridfs_file_get_length", "mongoc_gridfs_file_get_md5", "mongoc_gridfs_file_get_metadata", "mongoc_gridfs_file_get_upload_date", "mongoc_gridfs_file_list_destroy", "mongoc_gridfs_file_list_error", "mongoc_gridfs_file_list_next", "mongoc_gridfs_file_list_t", "mongoc_gridfs_file_opt_t", "mongoc_gridfs_file_readv", "mongoc_gridfs_file_remove", "mongoc_gridfs_file_save", "mongoc_gridfs_file_seek", "mongoc_gridfs_file_set_aliases", "mongoc_gridfs_file_set_content_type", "mongoc_gridfs_file_set_filename", "mongoc_gridfs_file_set_id", "mongoc_gridfs_file_set_md5", "mongoc_gridfs_file_set_metadata", "mongoc_gridfs_file_t", "mongoc_gridfs_file_tell", "mongoc_gridfs_file_writev", "mongoc_gridfs_find", "mongoc_gridfs_find_one", "mongoc_gridfs_find_one_by_filename", "mongoc_gridfs_find_one_with_opts", "mongoc_gridfs_find_with_opts", "mongoc_gridfs_get_chunks", "mongoc_gridfs_get_files", "mongoc_gridfs_remove_by_filename", "mongoc_gridfs_t", "mongoc_handshake_data_append", "mongoc_host_list_t", "mongoc_index_opt_geo_get_default", "mongoc_index_opt_geo_init", "mongoc_index_opt_geo_t", "mongoc_index_opt_get_default", "mongoc_index_opt_init", "mongoc_index_opt_t", "mongoc_index_opt_wt_get_default", "mongoc_index_opt_wt_init", "mongoc_index_opt_wt_t", "mongoc_init", "mongoc_insert_flags_t", "mongoc_iovec_t", "mongoc_matcher_destroy", "mongoc_matcher_match", "mongoc_matcher_new", "mongoc_matcher_t", "mongoc_optional_copy", "mongoc_optional_init", "mongoc_optional_is_set", "mongoc_optional_set_value", "mongoc_optional_t", "mongoc_optional_value", "mongoc_query_flags_t", "mongoc_rand", "mongoc_rand_add", "mongoc_rand_seed", "mongoc_rand_status", "mongoc_read_concern_append", "mongoc_read_concern_copy", "mongoc_read_concern_destroy", "mongoc_read_concern_get_level", "mongoc_read_concern_is_default", "mongoc_read_concern_new", "mongoc_read_concern_set_level", "mongoc_read_concern_t", "mongoc_read_mode_t", "mongoc_read_prefs_add_tag", "mongoc_read_prefs_copy", "mongoc_read_prefs_destroy", "mongoc_read_prefs_get_hedge", "mongoc_read_prefs_get_max_staleness_seconds", "mongoc_read_prefs_get_mode", "mongoc_read_prefs_get_tags", "mongoc_read_prefs_is_valid", "mongoc_read_prefs_new", "mongoc_read_prefs_set_hedge", "mongoc_read_prefs_set_max_staleness_seconds", "mongoc_read_prefs_set_mode", "mongoc_read_prefs_set_tags", "mongoc_read_prefs_t", "mongoc_remove_flags_t", "mongoc_reply_flags_t", "mongoc_server_api_copy", "mongoc_server_api_deprecation_errors", "mongoc_server_api_destroy", "mongoc_server_api_get_deprecation_errors", "mongoc_server_api_get_strict", "mongoc_server_api_get_version", "mongoc_server_api_new", "mongoc_server_api_strict", "mongoc_server_api_t", "mongoc_server_api_version_from_string", "mongoc_server_api_version_t", "mongoc_server_api_version_to_string", "mongoc_server_description_destroy", "mongoc_server_description_hello_response", "mongoc_server_description_host", "mongoc_server_description_id", "mongoc_server_description_ismaster", "mongoc_server_description_last_update_time", "mongoc_server_description_new_copy", "mongoc_server_description_round_trip_time", "mongoc_server_description_t", "mongoc_server_description_type", "mongoc_server_descriptions_destroy_all", "mongoc_session_opt_t", "mongoc_session_opts_clone", "mongoc_session_opts_destroy", "mongoc_session_opts_get_causal_consistency", "mongoc_session_opts_get_default_transaction_opts", "mongoc_session_opts_get_snapshot", "mongoc_session_opts_get_transaction_opts", "mongoc_session_opts_new", "mongoc_session_opts_set_causal_consistency", "mongoc_session_opts_set_default_transaction_opts", "mongoc_session_opts_set_snapshot", "mongoc_socket_accept", "mongoc_socket_bind", "mongoc_socket_close", "mongoc_socket_connect", "mongoc_socket_destroy", "mongoc_socket_errno", "mongoc_socket_getnameinfo", "mongoc_socket_getsockname", "mongoc_socket_listen", "mongoc_socket_new", "mongoc_socket_recv", "mongoc_socket_send", "mongoc_socket_sendv", "mongoc_socket_setsockopt", "mongoc_socket_t", "mongoc_ssl_opt_get_default", "mongoc_ssl_opt_t", "mongoc_stream_buffered_new", "mongoc_stream_buffered_t", "mongoc_stream_close", "mongoc_stream_cork", "mongoc_stream_destroy", "mongoc_stream_file_get_fd", "mongoc_stream_file_new", "mongoc_stream_file_new_for_path", "mongoc_stream_file_t", "mongoc_stream_flush", "mongoc_stream_get_base_stream", "mongoc_stream_gridfs_new", "mongoc_stream_read", "mongoc_stream_readv", "mongoc_stream_setsockopt", "mongoc_stream_should_retry", "mongoc_stream_socket_get_socket", "mongoc_stream_socket_new", "mongoc_stream_socket_t", "mongoc_stream_t", "mongoc_stream_timed_out", "mongoc_stream_tls_t", "mongoc_stream_uncork", "mongoc_stream_write", "mongoc_stream_writev", "mongoc_topology_description_destroy", "mongoc_topology_description_get_servers", "mongoc_topology_description_has_readable_server", "mongoc_topology_description_has_writable_server", "mongoc_topology_description_new_copy", "mongoc_topology_description_t", "mongoc_topology_description_type", "mongoc_transaction_opt_t", "mongoc_transaction_opts_clone", "mongoc_transaction_opts_destroy", "mongoc_transaction_opts_get_max_commit_time_ms", "mongoc_transaction_opts_get_read_concern", "mongoc_transaction_opts_get_read_prefs", "mongoc_transaction_opts_get_write_concern", "mongoc_transaction_opts_new", "mongoc_transaction_opts_set_max_commit_time_ms", "mongoc_transaction_opts_set_read_concern", "mongoc_transaction_opts_set_read_prefs", "mongoc_transaction_opts_set_write_concern", "mongoc_transaction_state_t", "mongoc_update_flags_t", "mongoc_uri_copy", "mongoc_uri_destroy", "mongoc_uri_get_auth_mechanism", "mongoc_uri_get_auth_source", "mongoc_uri_get_compressors", "mongoc_uri_get_database", "mongoc_uri_get_hosts", "mongoc_uri_get_mechanism_properties", "mongoc_uri_get_option_as_bool", "mongoc_uri_get_option_as_int32", "mongoc_uri_get_option_as_int64", "mongoc_uri_get_option_as_utf8", "mongoc_uri_get_options", "mongoc_uri_get_password", "mongoc_uri_get_read_concern", "mongoc_uri_get_read_prefs", "mongoc_uri_get_read_prefs_t", "mongoc_uri_get_replica_set", "mongoc_uri_get_service", "mongoc_uri_get_srv_hostname", "mongoc_uri_get_srv_service_name", "mongoc_uri_get_ssl", "mongoc_uri_get_string", "mongoc_uri_get_tls", "mongoc_uri_get_username", "mongoc_uri_get_write_concern", "mongoc_uri_has_option", "mongoc_uri_new", "mongoc_uri_new_for_host_port", "mongoc_uri_new_with_error", "mongoc_uri_option_is_bool", "mongoc_uri_option_is_int32", "mongoc_uri_option_is_int64", "mongoc_uri_option_is_utf8", "mongoc_uri_set_auth_mechanism", "mongoc_uri_set_auth_source", "mongoc_uri_set_compressors", "mongoc_uri_set_database", "mongoc_uri_set_mechanism_properties", "mongoc_uri_set_option_as_bool", "mongoc_uri_set_option_as_int32", "mongoc_uri_set_option_as_int64", "mongoc_uri_set_option_as_utf8", "mongoc_uri_set_password", "mongoc_uri_set_read_concern", "mongoc_uri_set_read_prefs_t", "mongoc_uri_set_username", "mongoc_uri_set_write_concern", "mongoc_uri_t", "mongoc_uri_unescape", "mongoc_version", "mongoc_write_concern_append", "mongoc_write_concern_copy", "mongoc_write_concern_destroy", "mongoc_write_concern_get_fsync", "mongoc_write_concern_get_journal", "mongoc_write_concern_get_w", "mongoc_write_concern_get_wmajority", "mongoc_write_concern_get_wtag", "mongoc_write_concern_get_wtimeout", "mongoc_write_concern_get_wtimeout_int64", "mongoc_write_concern_is_acknowledged", "mongoc_write_concern_is_default", "mongoc_write_concern_is_valid", "mongoc_write_concern_journal_is_set", "mongoc_write_concern_new", "mongoc_write_concern_set_fsync", "mongoc_write_concern_set_journal", "mongoc_write_concern_set_w", "mongoc_write_concern_set_wmajority", "mongoc_write_concern_set_wtag", "mongoc_write_concern_set_wtimeout", "mongoc_write_concern_set_wtimeout_int64", "mongoc_write_concern_t", "queryable-encryption", "tutorial", "using_client_side_encryption", "visual-studio-guide"], "filenames": ["advanced-connections.rst", "aggregate.rst", "api.rst", "application-performance-monitoring.rst", "authentication.rst", "basic-troubleshooting.rst", "bulk.rst", "configuring_tls.rst", "connection-pooling.rst", "create-indexes.rst", "cursors.rst", "debugging.rst", "distinct-mapreduce.rst", "errors.rst", "full_index.rst", "gridfs.rst", "guides.rst", "index.rst", "init-cleanup.rst", "installing.rst", "lifecycle.rst", "logging.rst", "matcher.rst", "mongoc-common-task-examples.rst", "mongoc_apm_callbacks_destroy.rst", "mongoc_apm_callbacks_new.rst", "mongoc_apm_callbacks_t.rst", "mongoc_apm_command_failed_get_command_name.rst", "mongoc_apm_command_failed_get_context.rst", "mongoc_apm_command_failed_get_duration.rst", "mongoc_apm_command_failed_get_error.rst", "mongoc_apm_command_failed_get_host.rst", "mongoc_apm_command_failed_get_operation_id.rst", "mongoc_apm_command_failed_get_reply.rst", "mongoc_apm_command_failed_get_request_id.rst", "mongoc_apm_command_failed_get_server_connection_id.rst", "mongoc_apm_command_failed_get_server_id.rst", "mongoc_apm_command_failed_get_service_id.rst", "mongoc_apm_command_failed_t.rst", "mongoc_apm_command_started_get_command.rst", "mongoc_apm_command_started_get_command_name.rst", "mongoc_apm_command_started_get_context.rst", "mongoc_apm_command_started_get_database_name.rst", "mongoc_apm_command_started_get_host.rst", "mongoc_apm_command_started_get_operation_id.rst", "mongoc_apm_command_started_get_request_id.rst", "mongoc_apm_command_started_get_server_connection_id.rst", "mongoc_apm_command_started_get_server_id.rst", "mongoc_apm_command_started_get_service_id.rst", "mongoc_apm_command_started_t.rst", "mongoc_apm_command_succeeded_get_command_name.rst", "mongoc_apm_command_succeeded_get_context.rst", "mongoc_apm_command_succeeded_get_duration.rst", "mongoc_apm_command_succeeded_get_host.rst", "mongoc_apm_command_succeeded_get_operation_id.rst", "mongoc_apm_command_succeeded_get_reply.rst", "mongoc_apm_command_succeeded_get_request_id.rst", "mongoc_apm_command_succeeded_get_server_connection_id.rst", "mongoc_apm_command_succeeded_get_server_id.rst", "mongoc_apm_command_succeeded_get_service_id.rst", "mongoc_apm_command_succeeded_t.rst", "mongoc_apm_server_changed_get_context.rst", "mongoc_apm_server_changed_get_host.rst", "mongoc_apm_server_changed_get_new_description.rst", "mongoc_apm_server_changed_get_previous_description.rst", "mongoc_apm_server_changed_get_topology_id.rst", "mongoc_apm_server_changed_t.rst", "mongoc_apm_server_closed_get_context.rst", "mongoc_apm_server_closed_get_host.rst", "mongoc_apm_server_closed_get_topology_id.rst", "mongoc_apm_server_closed_t.rst", "mongoc_apm_server_heartbeat_failed_get_awaited.rst", "mongoc_apm_server_heartbeat_failed_get_context.rst", "mongoc_apm_server_heartbeat_failed_get_duration.rst", "mongoc_apm_server_heartbeat_failed_get_error.rst", "mongoc_apm_server_heartbeat_failed_get_host.rst", "mongoc_apm_server_heartbeat_failed_t.rst", "mongoc_apm_server_heartbeat_started_get_awaited.rst", "mongoc_apm_server_heartbeat_started_get_context.rst", "mongoc_apm_server_heartbeat_started_get_host.rst", "mongoc_apm_server_heartbeat_started_t.rst", "mongoc_apm_server_heartbeat_succeeded_get_awaited.rst", "mongoc_apm_server_heartbeat_succeeded_get_context.rst", "mongoc_apm_server_heartbeat_succeeded_get_duration.rst", "mongoc_apm_server_heartbeat_succeeded_get_host.rst", "mongoc_apm_server_heartbeat_succeeded_get_reply.rst", "mongoc_apm_server_heartbeat_succeeded_t.rst", "mongoc_apm_server_opening_get_context.rst", "mongoc_apm_server_opening_get_host.rst", "mongoc_apm_server_opening_get_topology_id.rst", "mongoc_apm_server_opening_t.rst", "mongoc_apm_set_command_failed_cb.rst", "mongoc_apm_set_command_started_cb.rst", "mongoc_apm_set_command_succeeded_cb.rst", "mongoc_apm_set_server_changed_cb.rst", "mongoc_apm_set_server_closed_cb.rst", "mongoc_apm_set_server_heartbeat_failed_cb.rst", "mongoc_apm_set_server_heartbeat_started_cb.rst", "mongoc_apm_set_server_heartbeat_succeeded_cb.rst", "mongoc_apm_set_server_opening_cb.rst", "mongoc_apm_set_topology_changed_cb.rst", "mongoc_apm_set_topology_closed_cb.rst", "mongoc_apm_set_topology_opening_cb.rst", "mongoc_apm_topology_changed_get_context.rst", "mongoc_apm_topology_changed_get_new_description.rst", "mongoc_apm_topology_changed_get_previous_description.rst", "mongoc_apm_topology_changed_get_topology_id.rst", "mongoc_apm_topology_changed_t.rst", "mongoc_apm_topology_closed_get_context.rst", "mongoc_apm_topology_closed_get_topology_id.rst", "mongoc_apm_topology_closed_t.rst", "mongoc_apm_topology_opening_get_context.rst", "mongoc_apm_topology_opening_get_topology_id.rst", "mongoc_apm_topology_opening_t.rst", "mongoc_auto_encryption_opts_destroy.rst", "mongoc_auto_encryption_opts_new.rst", "mongoc_auto_encryption_opts_set_bypass_auto_encryption.rst", "mongoc_auto_encryption_opts_set_bypass_query_analysis.rst", "mongoc_auto_encryption_opts_set_encrypted_fields_map.rst", "mongoc_auto_encryption_opts_set_extra.rst", "mongoc_auto_encryption_opts_set_keyvault_client.rst", "mongoc_auto_encryption_opts_set_keyvault_client_pool.rst", "mongoc_auto_encryption_opts_set_keyvault_namespace.rst", "mongoc_auto_encryption_opts_set_kms_credential_provider_callback.rst", "mongoc_auto_encryption_opts_set_kms_providers.rst", "mongoc_auto_encryption_opts_set_schema_map.rst", "mongoc_auto_encryption_opts_set_tls_opts.rst", "mongoc_auto_encryption_opts_t.rst", "mongoc_bulk_operation_delete.rst", "mongoc_bulk_operation_delete_one.rst", "mongoc_bulk_operation_destroy.rst", "mongoc_bulk_operation_execute.rst", "mongoc_bulk_operation_get_hint.rst", "mongoc_bulk_operation_get_write_concern.rst", "mongoc_bulk_operation_insert.rst", "mongoc_bulk_operation_insert_with_opts.rst", "mongoc_bulk_operation_remove.rst", "mongoc_bulk_operation_remove_many_with_opts.rst", "mongoc_bulk_operation_remove_one.rst", "mongoc_bulk_operation_remove_one_with_opts.rst", "mongoc_bulk_operation_replace_one.rst", "mongoc_bulk_operation_replace_one_with_opts.rst", "mongoc_bulk_operation_set_bypass_document_validation.rst", "mongoc_bulk_operation_set_client_session.rst", "mongoc_bulk_operation_set_comment.rst", "mongoc_bulk_operation_set_hint.rst", "mongoc_bulk_operation_set_let.rst", "mongoc_bulk_operation_t.rst", "mongoc_bulk_operation_update.rst", "mongoc_bulk_operation_update_many_with_opts.rst", "mongoc_bulk_operation_update_one.rst", "mongoc_bulk_operation_update_one_with_opts.rst", "mongoc_change_stream_destroy.rst", "mongoc_change_stream_error_document.rst", "mongoc_change_stream_get_resume_token.rst", "mongoc_change_stream_next.rst", "mongoc_change_stream_t.rst", "mongoc_check_version.rst", "mongoc_cleanup.rst", "mongoc_client_command.rst", "mongoc_client_command_simple.rst", "mongoc_client_command_simple_with_server_id.rst", "mongoc_client_command_with_opts.rst", "mongoc_client_destroy.rst", "mongoc_client_enable_auto_encryption.rst", "mongoc_client_encryption_add_key_alt_name.rst", "mongoc_client_encryption_create_datakey.rst", "mongoc_client_encryption_datakey_opts_destroy.rst", "mongoc_client_encryption_datakey_opts_new.rst", "mongoc_client_encryption_datakey_opts_set_keyaltnames.rst", "mongoc_client_encryption_datakey_opts_set_keymaterial.rst", "mongoc_client_encryption_datakey_opts_set_masterkey.rst", "mongoc_client_encryption_datakey_opts_t.rst", "mongoc_client_encryption_decrypt.rst", "mongoc_client_encryption_delete_key.rst", "mongoc_client_encryption_destroy.rst", "mongoc_client_encryption_encrypt.rst", "mongoc_client_encryption_encrypt_opts_destroy.rst", "mongoc_client_encryption_encrypt_opts_new.rst", "mongoc_client_encryption_encrypt_opts_set_algorithm.rst", "mongoc_client_encryption_encrypt_opts_set_contention_factor.rst", "mongoc_client_encryption_encrypt_opts_set_keyaltname.rst", "mongoc_client_encryption_encrypt_opts_set_keyid.rst", "mongoc_client_encryption_encrypt_opts_set_query_type.rst", "mongoc_client_encryption_encrypt_opts_t.rst", "mongoc_client_encryption_get_crypt_shared_version.rst", "mongoc_client_encryption_get_key.rst", "mongoc_client_encryption_get_key_by_alt_name.rst", "mongoc_client_encryption_get_keys.rst", "mongoc_client_encryption_new.rst", "mongoc_client_encryption_opts_destroy.rst", "mongoc_client_encryption_opts_new.rst", "mongoc_client_encryption_opts_set_keyvault_client.rst", "mongoc_client_encryption_opts_set_keyvault_namespace.rst", "mongoc_client_encryption_opts_set_kms_credential_provider_callback.rst", "mongoc_client_encryption_opts_set_kms_providers.rst", "mongoc_client_encryption_opts_set_tls_opts.rst", "mongoc_client_encryption_opts_t.rst", "mongoc_client_encryption_remove_key_alt_name.rst", "mongoc_client_encryption_rewrap_many_datakey.rst", "mongoc_client_encryption_rewrap_many_datakey_result_destroy.rst", "mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.rst", "mongoc_client_encryption_rewrap_many_datakey_result_new.rst", "mongoc_client_encryption_rewrap_many_datakey_result_t.rst", "mongoc_client_encryption_t.rst", "mongoc_client_find_databases_with_opts.rst", "mongoc_client_get_collection.rst", "mongoc_client_get_crypt_shared_version.rst", "mongoc_client_get_database.rst", "mongoc_client_get_database_names.rst", "mongoc_client_get_database_names_with_opts.rst", "mongoc_client_get_default_database.rst", "mongoc_client_get_gridfs.rst", "mongoc_client_get_handshake_description.rst", "mongoc_client_get_max_bson_size.rst", "mongoc_client_get_max_message_size.rst", "mongoc_client_get_read_concern.rst", "mongoc_client_get_read_prefs.rst", "mongoc_client_get_server_description.rst", "mongoc_client_get_server_descriptions.rst", "mongoc_client_get_server_status.rst", "mongoc_client_get_uri.rst", "mongoc_client_get_write_concern.rst", "mongoc_client_new.rst", "mongoc_client_new_from_uri.rst", "mongoc_client_new_from_uri_with_error.rst", "mongoc_client_pool_destroy.rst", "mongoc_client_pool_enable_auto_encryption.rst", "mongoc_client_pool_max_size.rst", "mongoc_client_pool_min_size.rst", "mongoc_client_pool_new.rst", "mongoc_client_pool_new_with_error.rst", "mongoc_client_pool_pop.rst", "mongoc_client_pool_push.rst", "mongoc_client_pool_set_apm_callbacks.rst", "mongoc_client_pool_set_appname.rst", "mongoc_client_pool_set_error_api.rst", "mongoc_client_pool_set_server_api.rst", "mongoc_client_pool_set_ssl_opts.rst", "mongoc_client_pool_t.rst", "mongoc_client_pool_try_pop.rst", "mongoc_client_read_command_with_opts.rst", "mongoc_client_read_write_command_with_opts.rst", "mongoc_client_reset.rst", "mongoc_client_select_server.rst", "mongoc_client_session_abort_transaction.rst", "mongoc_client_session_advance_cluster_time.rst", "mongoc_client_session_advance_operation_time.rst", "mongoc_client_session_append.rst", "mongoc_client_session_commit_transaction.rst", "mongoc_client_session_destroy.rst", "mongoc_client_session_get_client.rst", "mongoc_client_session_get_cluster_time.rst", "mongoc_client_session_get_dirty.rst", "mongoc_client_session_get_lsid.rst", "mongoc_client_session_get_operation_time.rst", "mongoc_client_session_get_opts.rst", "mongoc_client_session_get_server_id.rst", "mongoc_client_session_get_transaction_state.rst", "mongoc_client_session_in_transaction.rst", "mongoc_client_session_start_transaction.rst", "mongoc_client_session_t.rst", "mongoc_client_session_with_transaction.rst", "mongoc_client_session_with_transaction_cb_t.rst", "mongoc_client_set_apm_callbacks.rst", "mongoc_client_set_appname.rst", "mongoc_client_set_error_api.rst", "mongoc_client_set_read_concern.rst", "mongoc_client_set_read_prefs.rst", "mongoc_client_set_server_api.rst", "mongoc_client_set_ssl_opts.rst", "mongoc_client_set_stream_initiator.rst", "mongoc_client_set_write_concern.rst", "mongoc_client_start_session.rst", "mongoc_client_t.rst", "mongoc_client_watch.rst", "mongoc_client_write_command_with_opts.rst", "mongoc_collection_aggregate.rst", "mongoc_collection_command.rst", "mongoc_collection_command_simple.rst", "mongoc_collection_command_with_opts.rst", "mongoc_collection_copy.rst", "mongoc_collection_count.rst", "mongoc_collection_count_documents.rst", "mongoc_collection_count_with_opts.rst", "mongoc_collection_create_bulk_operation.rst", "mongoc_collection_create_bulk_operation_with_opts.rst", "mongoc_collection_create_index.rst", "mongoc_collection_create_index_with_opts.rst", "mongoc_collection_delete.rst", "mongoc_collection_delete_many.rst", "mongoc_collection_delete_one.rst", "mongoc_collection_destroy.rst", "mongoc_collection_drop.rst", "mongoc_collection_drop_index.rst", "mongoc_collection_drop_index_with_opts.rst", "mongoc_collection_drop_with_opts.rst", "mongoc_collection_ensure_index.rst", "mongoc_collection_estimated_document_count.rst", "mongoc_collection_find.rst", "mongoc_collection_find_and_modify.rst", "mongoc_collection_find_and_modify_with_opts.rst", "mongoc_collection_find_indexes.rst", "mongoc_collection_find_indexes_with_opts.rst", "mongoc_collection_find_with_opts.rst", "mongoc_collection_get_last_error.rst", "mongoc_collection_get_name.rst", "mongoc_collection_get_read_concern.rst", "mongoc_collection_get_read_prefs.rst", "mongoc_collection_get_write_concern.rst", "mongoc_collection_insert.rst", "mongoc_collection_insert_bulk.rst", "mongoc_collection_insert_many.rst", "mongoc_collection_insert_one.rst", "mongoc_collection_keys_to_index_string.rst", "mongoc_collection_read_command_with_opts.rst", "mongoc_collection_read_write_command_with_opts.rst", "mongoc_collection_remove.rst", "mongoc_collection_rename.rst", "mongoc_collection_rename_with_opts.rst", "mongoc_collection_replace_one.rst", "mongoc_collection_save.rst", "mongoc_collection_set_read_concern.rst", "mongoc_collection_set_read_prefs.rst", "mongoc_collection_set_write_concern.rst", "mongoc_collection_stats.rst", "mongoc_collection_t.rst", "mongoc_collection_update.rst", "mongoc_collection_update_many.rst", "mongoc_collection_update_one.rst", "mongoc_collection_validate.rst", "mongoc_collection_watch.rst", "mongoc_collection_write_command_with_opts.rst", "mongoc_cursor_clone.rst", "mongoc_cursor_current.rst", "mongoc_cursor_destroy.rst", "mongoc_cursor_error.rst", "mongoc_cursor_error_document.rst", "mongoc_cursor_get_batch_size.rst", "mongoc_cursor_get_hint.rst", "mongoc_cursor_get_host.rst", "mongoc_cursor_get_id.rst", "mongoc_cursor_get_limit.rst", "mongoc_cursor_get_max_await_time_ms.rst", "mongoc_cursor_is_alive.rst", "mongoc_cursor_more.rst", "mongoc_cursor_new_from_command_reply.rst", "mongoc_cursor_new_from_command_reply_with_opts.rst", "mongoc_cursor_next.rst", "mongoc_cursor_set_batch_size.rst", "mongoc_cursor_set_hint.rst", "mongoc_cursor_set_limit.rst", "mongoc_cursor_set_max_await_time_ms.rst", "mongoc_cursor_t.rst", "mongoc_database_add_user.rst", "mongoc_database_aggregate.rst", "mongoc_database_command.rst", "mongoc_database_command_simple.rst", "mongoc_database_command_with_opts.rst", "mongoc_database_copy.rst", "mongoc_database_create_collection.rst", "mongoc_database_destroy.rst", "mongoc_database_drop.rst", "mongoc_database_drop_with_opts.rst", "mongoc_database_find_collections.rst", "mongoc_database_find_collections_with_opts.rst", "mongoc_database_get_collection.rst", "mongoc_database_get_collection_names.rst", "mongoc_database_get_collection_names_with_opts.rst", "mongoc_database_get_name.rst", "mongoc_database_get_read_concern.rst", "mongoc_database_get_read_prefs.rst", "mongoc_database_get_write_concern.rst", "mongoc_database_has_collection.rst", "mongoc_database_read_command_with_opts.rst", "mongoc_database_read_write_command_with_opts.rst", "mongoc_database_remove_all_users.rst", "mongoc_database_remove_user.rst", "mongoc_database_set_read_concern.rst", "mongoc_database_set_read_prefs.rst", "mongoc_database_set_write_concern.rst", "mongoc_database_t.rst", "mongoc_database_watch.rst", "mongoc_database_write_command_with_opts.rst", "mongoc_delete_flags_t.rst", "mongoc_error_has_label.rst", "mongoc_find_and_modify_opts_append.rst", "mongoc_find_and_modify_opts_destroy.rst", "mongoc_find_and_modify_opts_get_bypass_document_validation.rst", "mongoc_find_and_modify_opts_get_fields.rst", "mongoc_find_and_modify_opts_get_flags.rst", "mongoc_find_and_modify_opts_get_max_time_ms.rst", "mongoc_find_and_modify_opts_get_sort.rst", "mongoc_find_and_modify_opts_get_update.rst", "mongoc_find_and_modify_opts_new.rst", "mongoc_find_and_modify_opts_set_bypass_document_validation.rst", "mongoc_find_and_modify_opts_set_fields.rst", "mongoc_find_and_modify_opts_set_flags.rst", "mongoc_find_and_modify_opts_set_max_time_ms.rst", "mongoc_find_and_modify_opts_set_sort.rst", "mongoc_find_and_modify_opts_set_update.rst", "mongoc_find_and_modify_opts_t.rst", "mongoc_get_major_version.rst", "mongoc_get_micro_version.rst", "mongoc_get_minor_version.rst", "mongoc_get_version.rst", "mongoc_gridfs_bucket_abort_upload.rst", "mongoc_gridfs_bucket_delete_by_id.rst", "mongoc_gridfs_bucket_destroy.rst", "mongoc_gridfs_bucket_download_to_stream.rst", "mongoc_gridfs_bucket_find.rst", "mongoc_gridfs_bucket_new.rst", "mongoc_gridfs_bucket_open_download_stream.rst", "mongoc_gridfs_bucket_open_upload_stream.rst", "mongoc_gridfs_bucket_open_upload_stream_with_id.rst", "mongoc_gridfs_bucket_stream_error.rst", "mongoc_gridfs_bucket_t.rst", "mongoc_gridfs_bucket_upload_from_stream.rst", "mongoc_gridfs_bucket_upload_from_stream_with_id.rst", "mongoc_gridfs_create_file.rst", "mongoc_gridfs_create_file_from_stream.rst", "mongoc_gridfs_destroy.rst", "mongoc_gridfs_drop.rst", "mongoc_gridfs_file_destroy.rst", "mongoc_gridfs_file_error.rst", "mongoc_gridfs_file_get_aliases.rst", "mongoc_gridfs_file_get_chunk_size.rst", "mongoc_gridfs_file_get_content_type.rst", "mongoc_gridfs_file_get_filename.rst", "mongoc_gridfs_file_get_id.rst", "mongoc_gridfs_file_get_length.rst", "mongoc_gridfs_file_get_md5.rst", "mongoc_gridfs_file_get_metadata.rst", "mongoc_gridfs_file_get_upload_date.rst", "mongoc_gridfs_file_list_destroy.rst", "mongoc_gridfs_file_list_error.rst", "mongoc_gridfs_file_list_next.rst", "mongoc_gridfs_file_list_t.rst", "mongoc_gridfs_file_opt_t.rst", "mongoc_gridfs_file_readv.rst", "mongoc_gridfs_file_remove.rst", "mongoc_gridfs_file_save.rst", "mongoc_gridfs_file_seek.rst", "mongoc_gridfs_file_set_aliases.rst", "mongoc_gridfs_file_set_content_type.rst", "mongoc_gridfs_file_set_filename.rst", "mongoc_gridfs_file_set_id.rst", "mongoc_gridfs_file_set_md5.rst", "mongoc_gridfs_file_set_metadata.rst", "mongoc_gridfs_file_t.rst", "mongoc_gridfs_file_tell.rst", "mongoc_gridfs_file_writev.rst", "mongoc_gridfs_find.rst", "mongoc_gridfs_find_one.rst", "mongoc_gridfs_find_one_by_filename.rst", "mongoc_gridfs_find_one_with_opts.rst", "mongoc_gridfs_find_with_opts.rst", "mongoc_gridfs_get_chunks.rst", "mongoc_gridfs_get_files.rst", "mongoc_gridfs_remove_by_filename.rst", "mongoc_gridfs_t.rst", "mongoc_handshake_data_append.rst", "mongoc_host_list_t.rst", "mongoc_index_opt_geo_get_default.rst", "mongoc_index_opt_geo_init.rst", "mongoc_index_opt_geo_t.rst", "mongoc_index_opt_get_default.rst", "mongoc_index_opt_init.rst", "mongoc_index_opt_t.rst", "mongoc_index_opt_wt_get_default.rst", "mongoc_index_opt_wt_init.rst", "mongoc_index_opt_wt_t.rst", "mongoc_init.rst", "mongoc_insert_flags_t.rst", "mongoc_iovec_t.rst", "mongoc_matcher_destroy.rst", "mongoc_matcher_match.rst", "mongoc_matcher_new.rst", "mongoc_matcher_t.rst", "mongoc_optional_copy.rst", "mongoc_optional_init.rst", "mongoc_optional_is_set.rst", "mongoc_optional_set_value.rst", "mongoc_optional_t.rst", "mongoc_optional_value.rst", "mongoc_query_flags_t.rst", "mongoc_rand.rst", "mongoc_rand_add.rst", "mongoc_rand_seed.rst", "mongoc_rand_status.rst", "mongoc_read_concern_append.rst", "mongoc_read_concern_copy.rst", "mongoc_read_concern_destroy.rst", "mongoc_read_concern_get_level.rst", "mongoc_read_concern_is_default.rst", "mongoc_read_concern_new.rst", "mongoc_read_concern_set_level.rst", "mongoc_read_concern_t.rst", "mongoc_read_mode_t.rst", "mongoc_read_prefs_add_tag.rst", "mongoc_read_prefs_copy.rst", "mongoc_read_prefs_destroy.rst", "mongoc_read_prefs_get_hedge.rst", "mongoc_read_prefs_get_max_staleness_seconds.rst", "mongoc_read_prefs_get_mode.rst", "mongoc_read_prefs_get_tags.rst", "mongoc_read_prefs_is_valid.rst", "mongoc_read_prefs_new.rst", "mongoc_read_prefs_set_hedge.rst", "mongoc_read_prefs_set_max_staleness_seconds.rst", "mongoc_read_prefs_set_mode.rst", "mongoc_read_prefs_set_tags.rst", "mongoc_read_prefs_t.rst", "mongoc_remove_flags_t.rst", "mongoc_reply_flags_t.rst", "mongoc_server_api_copy.rst", "mongoc_server_api_deprecation_errors.rst", "mongoc_server_api_destroy.rst", "mongoc_server_api_get_deprecation_errors.rst", "mongoc_server_api_get_strict.rst", "mongoc_server_api_get_version.rst", "mongoc_server_api_new.rst", "mongoc_server_api_strict.rst", "mongoc_server_api_t.rst", "mongoc_server_api_version_from_string.rst", "mongoc_server_api_version_t.rst", "mongoc_server_api_version_to_string.rst", "mongoc_server_description_destroy.rst", "mongoc_server_description_hello_response.rst", "mongoc_server_description_host.rst", "mongoc_server_description_id.rst", "mongoc_server_description_ismaster.rst", "mongoc_server_description_last_update_time.rst", "mongoc_server_description_new_copy.rst", "mongoc_server_description_round_trip_time.rst", "mongoc_server_description_t.rst", "mongoc_server_description_type.rst", "mongoc_server_descriptions_destroy_all.rst", "mongoc_session_opt_t.rst", "mongoc_session_opts_clone.rst", "mongoc_session_opts_destroy.rst", "mongoc_session_opts_get_causal_consistency.rst", "mongoc_session_opts_get_default_transaction_opts.rst", "mongoc_session_opts_get_snapshot.rst", "mongoc_session_opts_get_transaction_opts.rst", "mongoc_session_opts_new.rst", "mongoc_session_opts_set_causal_consistency.rst", "mongoc_session_opts_set_default_transaction_opts.rst", "mongoc_session_opts_set_snapshot.rst", "mongoc_socket_accept.rst", "mongoc_socket_bind.rst", "mongoc_socket_close.rst", "mongoc_socket_connect.rst", "mongoc_socket_destroy.rst", "mongoc_socket_errno.rst", "mongoc_socket_getnameinfo.rst", "mongoc_socket_getsockname.rst", "mongoc_socket_listen.rst", "mongoc_socket_new.rst", "mongoc_socket_recv.rst", "mongoc_socket_send.rst", "mongoc_socket_sendv.rst", "mongoc_socket_setsockopt.rst", "mongoc_socket_t.rst", "mongoc_ssl_opt_get_default.rst", "mongoc_ssl_opt_t.rst", "mongoc_stream_buffered_new.rst", "mongoc_stream_buffered_t.rst", "mongoc_stream_close.rst", "mongoc_stream_cork.rst", "mongoc_stream_destroy.rst", "mongoc_stream_file_get_fd.rst", "mongoc_stream_file_new.rst", "mongoc_stream_file_new_for_path.rst", "mongoc_stream_file_t.rst", "mongoc_stream_flush.rst", "mongoc_stream_get_base_stream.rst", "mongoc_stream_gridfs_new.rst", "mongoc_stream_read.rst", "mongoc_stream_readv.rst", "mongoc_stream_setsockopt.rst", "mongoc_stream_should_retry.rst", "mongoc_stream_socket_get_socket.rst", "mongoc_stream_socket_new.rst", "mongoc_stream_socket_t.rst", "mongoc_stream_t.rst", "mongoc_stream_timed_out.rst", "mongoc_stream_tls_t.rst", "mongoc_stream_uncork.rst", "mongoc_stream_write.rst", "mongoc_stream_writev.rst", "mongoc_topology_description_destroy.rst", "mongoc_topology_description_get_servers.rst", "mongoc_topology_description_has_readable_server.rst", "mongoc_topology_description_has_writable_server.rst", "mongoc_topology_description_new_copy.rst", "mongoc_topology_description_t.rst", "mongoc_topology_description_type.rst", "mongoc_transaction_opt_t.rst", "mongoc_transaction_opts_clone.rst", "mongoc_transaction_opts_destroy.rst", "mongoc_transaction_opts_get_max_commit_time_ms.rst", "mongoc_transaction_opts_get_read_concern.rst", "mongoc_transaction_opts_get_read_prefs.rst", "mongoc_transaction_opts_get_write_concern.rst", "mongoc_transaction_opts_new.rst", "mongoc_transaction_opts_set_max_commit_time_ms.rst", "mongoc_transaction_opts_set_read_concern.rst", "mongoc_transaction_opts_set_read_prefs.rst", "mongoc_transaction_opts_set_write_concern.rst", "mongoc_transaction_state_t.rst", "mongoc_update_flags_t.rst", "mongoc_uri_copy.rst", "mongoc_uri_destroy.rst", "mongoc_uri_get_auth_mechanism.rst", "mongoc_uri_get_auth_source.rst", "mongoc_uri_get_compressors.rst", "mongoc_uri_get_database.rst", "mongoc_uri_get_hosts.rst", "mongoc_uri_get_mechanism_properties.rst", "mongoc_uri_get_option_as_bool.rst", "mongoc_uri_get_option_as_int32.rst", "mongoc_uri_get_option_as_int64.rst", "mongoc_uri_get_option_as_utf8.rst", "mongoc_uri_get_options.rst", "mongoc_uri_get_password.rst", "mongoc_uri_get_read_concern.rst", "mongoc_uri_get_read_prefs.rst", "mongoc_uri_get_read_prefs_t.rst", "mongoc_uri_get_replica_set.rst", "mongoc_uri_get_service.rst", "mongoc_uri_get_srv_hostname.rst", "mongoc_uri_get_srv_service_name.rst", "mongoc_uri_get_ssl.rst", "mongoc_uri_get_string.rst", "mongoc_uri_get_tls.rst", "mongoc_uri_get_username.rst", "mongoc_uri_get_write_concern.rst", "mongoc_uri_has_option.rst", "mongoc_uri_new.rst", "mongoc_uri_new_for_host_port.rst", "mongoc_uri_new_with_error.rst", "mongoc_uri_option_is_bool.rst", "mongoc_uri_option_is_int32.rst", "mongoc_uri_option_is_int64.rst", "mongoc_uri_option_is_utf8.rst", "mongoc_uri_set_auth_mechanism.rst", "mongoc_uri_set_auth_source.rst", "mongoc_uri_set_compressors.rst", "mongoc_uri_set_database.rst", "mongoc_uri_set_mechanism_properties.rst", "mongoc_uri_set_option_as_bool.rst", "mongoc_uri_set_option_as_int32.rst", "mongoc_uri_set_option_as_int64.rst", "mongoc_uri_set_option_as_utf8.rst", "mongoc_uri_set_password.rst", "mongoc_uri_set_read_concern.rst", "mongoc_uri_set_read_prefs_t.rst", "mongoc_uri_set_username.rst", "mongoc_uri_set_write_concern.rst", "mongoc_uri_t.rst", "mongoc_uri_unescape.rst", "mongoc_version.rst", "mongoc_write_concern_append.rst", "mongoc_write_concern_copy.rst", "mongoc_write_concern_destroy.rst", "mongoc_write_concern_get_fsync.rst", "mongoc_write_concern_get_journal.rst", "mongoc_write_concern_get_w.rst", "mongoc_write_concern_get_wmajority.rst", "mongoc_write_concern_get_wtag.rst", "mongoc_write_concern_get_wtimeout.rst", "mongoc_write_concern_get_wtimeout_int64.rst", "mongoc_write_concern_is_acknowledged.rst", "mongoc_write_concern_is_default.rst", "mongoc_write_concern_is_valid.rst", "mongoc_write_concern_journal_is_set.rst", "mongoc_write_concern_new.rst", "mongoc_write_concern_set_fsync.rst", "mongoc_write_concern_set_journal.rst", "mongoc_write_concern_set_w.rst", "mongoc_write_concern_set_wmajority.rst", "mongoc_write_concern_set_wtag.rst", "mongoc_write_concern_set_wtimeout.rst", "mongoc_write_concern_set_wtimeout_int64.rst", "mongoc_write_concern_t.rst", "queryable-encryption.rst", "tutorial.rst", "using_client_side_encryption.rst", "visual-studio-guide.rst"], "titles": ["Advanced Connections", "Aggregation Framework Examples", "API Reference", "Application Performance Monitoring (APM)", "Authentication", "Basic Troubleshooting", "Bulk Write Operations", "Configuring TLS", "Connection Pooling", "Creating Indexes", "Cursors", "Aids for Debugging", "\u201cdistinct\u201d and \u201cmapReduce\u201d", "Error Reporting", "Index", "GridFS", "Guides", "libmongoc", "Initialization and cleanup", "Installing the MongoDB C Driver (libmongoc) and BSON library (libbson)", "Object Lifecycle", "Logging", "Client Side Document Matching", "Common Tasks", "mongoc_apm_callbacks_destroy()", "mongoc_apm_callbacks_new()", "mongoc_apm_callbacks_t", "mongoc_apm_command_failed_get_command_name()", "mongoc_apm_command_failed_get_context()", "mongoc_apm_command_failed_get_duration()", "mongoc_apm_command_failed_get_error()", "mongoc_apm_command_failed_get_host()", "mongoc_apm_command_failed_get_operation_id()", "mongoc_apm_command_failed_get_reply()", "mongoc_apm_command_failed_get_request_id()", "mongoc_apm_command_failed_get_server_connection_id()", "mongoc_apm_command_failed_get_server_id()", "mongoc_apm_command_failed_get_service_id()", "mongoc_apm_command_failed_t", "mongoc_apm_command_started_get_command()", "mongoc_apm_command_started_get_command_name()", "mongoc_apm_command_started_get_context()", "mongoc_apm_command_started_get_database_name()", "mongoc_apm_command_started_get_host()", "mongoc_apm_command_started_get_operation_id()", "mongoc_apm_command_started_get_request_id()", "mongoc_apm_command_started_get_server_connection_id()", "mongoc_apm_command_started_get_server_id()", "mongoc_apm_command_started_get_service_id()", "mongoc_apm_command_started_t", "mongoc_apm_command_succeeded_get_command_name()", "mongoc_apm_command_succeeded_get_context()", "mongoc_apm_command_succeeded_get_duration()", "mongoc_apm_command_succeeded_get_host()", "mongoc_apm_command_succeeded_get_operation_id()", "mongoc_apm_command_succeeded_get_reply()", "mongoc_apm_command_succeeded_get_request_id()", "mongoc_apm_command_succeeded_get_server_connection_id()", "mongoc_apm_command_succeeded_get_server_id()", "mongoc_apm_command_succeeded_get_service_id()", "mongoc_apm_command_succeeded_t", "mongoc_apm_server_changed_get_context()", "mongoc_apm_server_changed_get_host()", "mongoc_apm_server_changed_get_new_description()", "mongoc_apm_server_changed_get_previous_description()", "mongoc_apm_server_changed_get_topology_id()", "mongoc_apm_server_changed_t", "mongoc_apm_server_closed_get_context()", "mongoc_apm_server_closed_get_host()", "mongoc_apm_server_closed_get_topology_id()", "mongoc_apm_server_closed_t", "mongoc_apm_server_heartbeat_failed_get_awaited()", "mongoc_apm_server_heartbeat_failed_get_context()", "mongoc_apm_server_heartbeat_failed_get_duration()", "mongoc_apm_server_heartbeat_failed_get_error()", "mongoc_apm_server_heartbeat_failed_get_host()", "mongoc_apm_server_heartbeat_failed_t", "mongoc_apm_server_heartbeat_started_get_awaited()", "mongoc_apm_server_heartbeat_started_get_context()", "mongoc_apm_server_heartbeat_started_get_host()", "mongoc_apm_server_heartbeat_started_t", "mongoc_apm_server_heartbeat_succeeded_get_awaited()", "mongoc_apm_server_heartbeat_succeeded_get_context()", "mongoc_apm_server_heartbeat_succeeded_get_duration()", "mongoc_apm_server_heartbeat_succeeded_get_host()", "mongoc_apm_server_heartbeat_succeeded_get_reply()", "mongoc_apm_server_heartbeat_succeeded_t", "mongoc_apm_server_opening_get_context()", "mongoc_apm_server_opening_get_host()", "mongoc_apm_server_opening_get_topology_id()", "mongoc_apm_server_opening_t", "mongoc_apm_set_command_failed_cb()", "mongoc_apm_set_command_started_cb()", "mongoc_apm_set_command_succeeded_cb()", "mongoc_apm_set_server_changed_cb()", "mongoc_apm_set_server_closed_cb()", "mongoc_apm_set_server_heartbeat_failed_cb()", "mongoc_apm_set_server_heartbeat_started_cb()", "mongoc_apm_set_server_heartbeat_succeeded_cb()", "mongoc_apm_set_server_opening_cb()", "mongoc_apm_set_topology_changed_cb()", "mongoc_apm_set_topology_closed_cb()", "mongoc_apm_set_topology_opening_cb()", "mongoc_apm_topology_changed_get_context()", "mongoc_apm_topology_changed_get_new_description()", "mongoc_apm_topology_changed_get_previous_description()", "mongoc_apm_topology_changed_get_topology_id()", "mongoc_apm_topology_changed_t", "mongoc_apm_topology_closed_get_context()", "mongoc_apm_topology_closed_get_topology_id()", "mongoc_apm_topology_closed_t", "mongoc_apm_topology_opening_get_context()", "mongoc_apm_topology_opening_get_topology_id()", "mongoc_apm_topology_opening_t", "mongoc_auto_encryption_opts_destroy()", "mongoc_auto_encryption_opts_new()", "mongoc_auto_encryption_opts_set_bypass_auto_encryption()", "mongoc_auto_encryption_opts_set_bypass_query_analysis()", "mongoc_auto_encryption_opts_set_encrypted_fields_map()", "mongoc_auto_encryption_opts_set_extra()", "mongoc_auto_encryption_opts_set_keyvault_client()", "mongoc_auto_encryption_opts_set_keyvault_client_pool()", "mongoc_auto_encryption_opts_set_keyvault_namespace()", "mongoc_auto_encryption_opts_set_kms_credential_provider_callback()", "mongoc_auto_encryption_opts_set_kms_providers()", "mongoc_auto_encryption_opts_set_schema_map()", "mongoc_auto_encryption_opts_set_tls_opts()", "mongoc_auto_encryption_opts_t", "mongoc_bulk_operation_delete()", "mongoc_bulk_operation_delete_one()", "mongoc_bulk_operation_destroy()", "mongoc_bulk_operation_execute()", "mongoc_bulk_operation_get_hint()", "mongoc_bulk_operation_get_write_concern()", "mongoc_bulk_operation_insert()", "mongoc_bulk_operation_insert_with_opts()", "mongoc_bulk_operation_remove()", "mongoc_bulk_operation_remove_many_with_opts()", "mongoc_bulk_operation_remove_one()", "mongoc_bulk_operation_remove_one_with_opts()", "mongoc_bulk_operation_replace_one()", "mongoc_bulk_operation_replace_one_with_opts()", "mongoc_bulk_operation_set_bypass_document_validation()", "mongoc_bulk_operation_set_client_session()", "mongoc_bulk_operation_set_comment()", "mongoc_bulk_operation_set_hint()", "mongoc_bulk_operation_set_let()", "mongoc_bulk_operation_t", "mongoc_bulk_operation_update()", "mongoc_bulk_operation_update_many_with_opts()", "mongoc_bulk_operation_update_one()", "mongoc_bulk_operation_update_one_with_opts()", "mongoc_change_stream_destroy()", "mongoc_change_stream_error_document()", "mongoc_change_stream_get_resume_token()", "mongoc_change_stream_next()", "mongoc_change_stream_t", "mongoc_check_version()", "mongoc_cleanup()", "mongoc_client_command()", "mongoc_client_command_simple()", "mongoc_client_command_simple_with_server_id()", "mongoc_client_command_with_opts()", "mongoc_client_destroy()", "mongoc_client_enable_auto_encryption()", "mongoc_client_encryption_add_key_alt_name()", "mongoc_client_encryption_create_datakey()", "mongoc_client_encryption_datakey_opts_destroy()", "mongoc_client_encryption_datakey_opts_new()", "mongoc_client_encryption_datakey_opts_set_keyaltnames()", "mongoc_client_encryption_datakey_opts_set_keymaterial()", "mongoc_client_encryption_datakey_opts_set_masterkey()", "mongoc_client_encryption_datakey_opts_t", "mongoc_client_decryption_decrypt()", "mongoc_client_encryption_delete_key()", "mongoc_client_encryption_destroy()", "mongoc_client_encryption_encrypt()", "mongoc_client_encryption_encrypt_opts_destroy()", "mongoc_client_encryption_encrypt_opts_new()", "mongoc_client_encryption_encrypt_opts_set_algorithm()", "mongoc_client_encryption_encrypt_opts_set_contention_factor()", "mongoc_client_encryption_encrypt_opts_set_keyaltname()", "mongoc_client_encryption_encrypt_opts_set_keyid()", "mongoc_client_encryption_encrypt_opts_set_query_type()", "mongoc_client_encryption_encrypt_opts_t", "mongoc_client_encryption_get_crypt_shared_version()", "mongoc_client_encryption_get_key()", "mongoc_client_encryption_get_key_by_alt_name()", "mongoc_client_encryption_get_keys()", "mongoc_client_encryption_new()", "mongoc_client_encryption_opts_destroy()", "mongoc_client_encryption_opts_new()", "mongoc_client_encryption_opts_set_keyvault_client()", "mongoc_client_encryption_opts_set_keyvault_namespace()", "mongoc_client_encryption_opts_set_kms_credential_provider_callback ()", "mongoc_client_encryption_opts_set_kms_providers()", "mongoc_client_encryption_opts_set_tls_opts()", "mongoc_client_encryption_opts_t", "mongoc_client_encryption_remove_key_alt_name()", "mongoc_client_encryption_rewrap_many_datakey()", "mongoc_client_encryption_rewrap_many_datakey_result_destroy()", "mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result()", "mongoc_client_encryption_rewrap_many_datakey_result_new()", "mongoc_client_encryption_rewrap_many_datakey_result_t", "mongoc_client_encryption_t", "mongoc_client_find_databases_with_opts()", "mongoc_client_get_collection()", "mongoc_client_get_crypt_shared_version()", "mongoc_client_get_database()", "mongoc_client_get_database_names()", "mongoc_client_get_database_names_with_opts()", "mongoc_client_get_default_database()", "mongoc_client_get_gridfs()", "mongoc_client_get_handshake_description()", "mongoc_client_get_max_bson_size()", "mongoc_client_get_max_message_size()", "mongoc_client_get_read_concern()", "mongoc_client_get_read_prefs()", "mongoc_client_get_server_description()", "mongoc_client_get_server_descriptions()", "mongoc_client_get_server_status()", "mongoc_client_get_uri()", "mongoc_client_get_write_concern()", "mongoc_client_new()", "mongoc_client_new_from_uri()", "mongoc_client_new_from_uri_with_error()", "mongoc_client_pool_destroy()", "mongoc_client_pool_enable_auto_encryption()", "mongoc_client_pool_max_size()", "mongoc_client_pool_min_size()", "mongoc_client_pool_new()", "mongoc_client_pool_new_with_error()", "mongoc_client_pool_pop()", "mongoc_client_pool_push()", "mongoc_client_pool_set_apm_callbacks()", "mongoc_client_pool_set_appname()", "mongoc_client_pool_set_error_api()", "mongoc_client_pool_set_server_api()", "mongoc_client_pool_set_ssl_opts()", "mongoc_client_pool_t", "mongoc_client_pool_try_pop()", "mongoc_client_read_command_with_opts()", "mongoc_client_read_write_command_with_opts()", "mongoc_client_reset()", "mongoc_client_select_server()", "mongoc_client_session_abort_transaction()", "mongoc_client_session_advance_cluster_time()", "mongoc_client_session_advance_operation_time()", "mongoc_client_session_append()", "mongoc_client_session_commit_transaction()", "mongoc_client_session_destroy()", "mongoc_client_session_get_client()", "mongoc_client_session_get_cluster_time()", "mongoc_client_session_get_dirty()", "mongoc_client_session_get_lsid()", "mongoc_client_session_get_operation_time()", "mongoc_client_session_get_opts()", "mongoc_client_session_get_server_id()", "mongoc_client_session_get_transaction_state()", "mongoc_client_session_in_transaction()", "mongoc_client_session_start_transaction()", "mongoc_client_session_t", "mongoc_client_session_with_transaction()", "mongoc_client_session_with_transaction_cb_t", "mongoc_client_set_apm_callbacks()", "mongoc_client_set_appname()", "mongoc_client_set_error_api()", "mongoc_client_set_read_concern()", "mongoc_client_set_read_prefs()", "mongoc_client_set_server_api()", "mongoc_client_set_ssl_opts()", "mongoc_client_set_stream_initiator()", "mongoc_client_set_write_concern()", "mongoc_client_start_session()", "mongoc_client_t", "mongoc_client_watch()", "mongoc_client_write_command_with_opts()", "mongoc_collection_aggregate()", "mongoc_collection_command()", "mongoc_collection_command_simple()", "mongoc_collection_command_with_opts()", "mongoc_collection_copy()", "mongoc_collection_count()", "mongoc_collection_count_documents()", "mongoc_collection_count_with_opts()", "mongoc_collection_create_bulk_operation()", "mongoc_collection_create_bulk_operation_with_opts()", "mongoc_collection_create_index()", "mongoc_collection_create_index_with_opts()", "mongoc_collection_delete()", "mongoc_collection_delete_many()", "mongoc_collection_delete_one()", "mongoc_collection_destroy()", "mongoc_collection_drop()", "mongoc_collection_drop_index()", "mongoc_collection_drop_index_with_opts()", "mongoc_collection_drop_with_opts()", "mongoc_collection_ensure_index()", "mongoc_collection_estimated_document_count()", "mongoc_collection_find()", "mongoc_collection_find_and_modify()", "mongoc_collection_find_and_modify_with_opts()", "mongoc_collection_find_indexes()", "mongoc_collection_find_indexes_with_opts()", "mongoc_collection_find_with_opts()", "mongoc_collection_get_last_error()", "mongoc_collection_get_name()", "mongoc_collection_get_read_concern()", "mongoc_collection_get_read_prefs()", "mongoc_collection_get_write_concern()", "mongoc_collection_insert()", "mongoc_collection_insert_bulk()", "mongoc_collection_insert_many()", "mongoc_collection_insert_one()", "mongoc_collection_keys_to_index_string()", "mongoc_collection_read_command_with_opts()", "mongoc_collection_read_write_command_with_opts()", "mongoc_collection_remove()", "mongoc_collection_rename()", "mongoc_collection_rename_with_opts()", "mongoc_collection_replace_one()", "mongoc_collection_save()", "mongoc_collection_set_read_concern()", "mongoc_collection_set_read_prefs()", "mongoc_collection_set_write_concern()", "mongoc_collection_stats()", "mongoc_collection_t", "mongoc_collection_update()", "mongoc_collection_update_many()", "mongoc_collection_update_one()", "mongoc_collection_validate()", "mongoc_collection_watch()", "mongoc_collection_write_command_with_opts()", "mongoc_cursor_clone()", "mongoc_cursor_current()", "mongoc_cursor_destroy()", "mongoc_cursor_error()", "mongoc_cursor_error_document()", "mongoc_cursor_get_batch_size()", "mongoc_cursor_get_hint()", "mongoc_cursor_get_host()", "mongoc_cursor_get_id()", "mongoc_cursor_get_limit()", "mongoc_cursor_get_max_await_time_ms()", "mongoc_cursor_is_alive()", "mongoc_cursor_more()", "mongoc_cursor_new_from_command_reply()", "mongoc_cursor_new_from_command_reply_with_opts()", "mongoc_cursor_next()", "mongoc_cursor_set_batch_size()", "mongoc_cursor_set_hint()", "mongoc_cursor_set_limit()", "mongoc_cursor_set_max_await_time_ms()", "mongoc_cursor_t", "mongoc_database_add_user()", "mongoc_database_aggregate()", "mongoc_database_command()", "mongoc_database_command_simple()", "mongoc_database_command_with_opts()", "mongoc_database_copy()", "mongoc_database_create_collection()", "mongoc_database_destroy()", "mongoc_database_drop()", "mongoc_database_drop_with_opts()", "mongoc_database_find_collections()", "mongoc_database_find_collections_with_opts()", "mongoc_database_get_collection()", "mongoc_database_get_collection_names()", "mongoc_database_get_collection_names_with_opts()", "mongoc_database_get_name()", "mongoc_database_get_read_concern()", "mongoc_database_get_read_prefs()", "mongoc_database_get_write_concern()", "mongoc_database_has_collection()", "mongoc_database_read_command_with_opts()", "mongoc_database_read_write_command_with_opts()", "mongoc_database_remove_all_users()", "mongoc_database_remove_user()", "mongoc_database_set_read_concern()", "mongoc_database_set_read_prefs()", "mongoc_database_set_write_concern()", "mongoc_database_t", "mongoc_database_watch()", "mongoc_database_write_command_with_opts()", "mongoc_delete_flags_t", "mongoc_error_has_label()", "mongoc_find_and_modify_opts_append()", "mongoc_find_and_modify_opts_destroy()", "mongoc_find_and_modify_opts_get_bypass_document_validation()", "mongoc_find_and_modify_opts_get_fields()", "mongoc_find_and_modify_opts_get_flags()", "mongoc_find_and_modify_opts_get_max_time_ms()", "mongoc_find_and_modify_opts_get_sort()", "mongoc_find_and_modify_opts_get_update()", "mongoc_find_and_modify_opts_new()", "mongoc_find_and_modify_opts_set_bypass_document_validation()", "mongoc_find_and_modify_opts_set_fields()", "mongoc_find_and_modify_opts_set_flags()", "mongoc_find_and_modify_opts_set_max_time_ms()", "mongoc_find_and_modify_opts_set_sort()", "mongoc_find_and_modify_opts_set_update()", "mongoc_find_and_modify_opts_t", "mongoc_get_major_version()", "mongoc_get_micro_version()", "mongoc_get_minor_version()", "mongoc_get_version()", "mongoc_gridfs_bucket_abort_upload()", "mongoc_gridfs_bucket_delete_by_id()", "mongoc_gridfs_bucket_destroy()", "mongoc_gridfs_bucket_download_to_stream()", "mongoc_gridfs_bucket_find()", "mongoc_gridfs_bucket_new()", "mongoc_gridfs_bucket_open_download_stream()", "mongoc_gridfs_bucket_open_upload_stream()", "mongoc_gridfs_bucket_open_upload_stream_with_id()", "mongoc_gridfs_bucket_stream_error()", "mongoc_gridfs_bucket_t", "mongoc_gridfs_bucket_upload_from_stream()", "mongoc_gridfs_bucket_upload_from_stream_with_id()", "mongoc_gridfs_create_file()", "mongoc_gridfs_create_file_from_stream()", "mongoc_gridfs_destroy()", "mongoc_gridfs_drop()", "mongoc_gridfs_file_destroy()", "mongoc_gridfs_file_error()", "mongoc_gridfs_file_get_aliases()", "mongoc_gridfs_file_get_chunk_size()", "mongoc_gridfs_file_get_content_type()", "mongoc_gridfs_file_get_filename()", "mongoc_gridfs_file_get_id()", "mongoc_gridfs_file_get_length()", "mongoc_gridfs_file_get_md5()", "mongoc_gridfs_file_get_metadata()", "mongoc_gridfs_file_get_upload_date()", "mongoc_gridfs_file_list_destroy()", "mongoc_gridfs_file_list_error()", "mongoc_gridfs_file_list_next()", "mongoc_gridfs_file_list_t", "mongoc_gridfs_file_opt_t", "mongoc_gridfs_file_readv()", "mongoc_gridfs_file_remove()", "mongoc_gridfs_file_save()", "mongoc_gridfs_file_seek()", "mongoc_gridfs_file_set_aliases()", "mongoc_gridfs_file_set_content_type()", "mongoc_gridfs_file_set_filename()", "mongoc_gridfs_file_set_id()", "mongoc_gridfs_file_set_md5()", "mongoc_gridfs_file_set_metadata()", "mongoc_gridfs_file_t", "mongoc_gridfs_file_tell()", "mongoc_gridfs_file_writev()", "mongoc_gridfs_find()", "mongoc_gridfs_find_one()", "mongoc_gridfs_find_one_by_filename()", "mongoc_gridfs_find_one_with_opts()", "mongoc_gridfs_find_with_opts()", "mongoc_gridfs_get_chunks()", "mongoc_gridfs_get_files()", "mongoc_gridfs_remove_by_filename()", "mongoc_gridfs_t", "mongoc_handshake_data_append()", "mongoc_host_list_t", "mongoc_index_opt_geo_get_default()", "mongoc_index_opt_geo_init()", "mongoc_index_opt_geo_t", "mongoc_index_opt_get_default()", "mongoc_index_opt_init()", "mongoc_index_opt_t", "mongoc_index_opt_wt_get_default()", "mongoc_index_opt_wt_init()", "mongoc_index_opt_wt_t", "mongoc_init()", "mongoc_insert_flags_t", "mongoc_iovec_t", "mongoc_matcher_destroy()", "mongoc_matcher_match()", "mongoc_matcher_new()", "mongoc_matcher_t", "mongoc_optional_copy()", "mongoc_optional_init()", "mongoc_optional_is_set()", "mongoc_optional_set_value()", "mongoc_optional_t", "mongoc_optional_value()", "mongoc_query_flags_t", "mongoc_rand", "mongoc_rand_add()", "mongoc_rand_seed()", "mongoc_rand_status()", "mongoc_read_concern_append()", "mongoc_read_concern_copy()", "mongoc_read_concern_destroy()", "mongoc_read_concern_get_level()", "mongoc_read_concern_is_default()", "mongoc_read_concern_new()", "mongoc_read_concern_set_level()", "mongoc_read_concern_t", "mongoc_read_mode_t", "mongoc_read_prefs_add_tag()", "mongoc_read_prefs_copy()", "mongoc_read_prefs_destroy()", "mongoc_read_prefs_get_hedge()", "mongoc_read_prefs_get_max_staleness_seconds()", "mongoc_read_prefs_get_mode()", "mongoc_read_prefs_get_tags()", "mongoc_read_prefs_is_valid()", "mongoc_read_prefs_new()", "mongoc_read_prefs_set_hedge()", "mongoc_read_prefs_set_max_staleness_seconds()", "mongoc_read_prefs_set_mode()", "mongoc_read_prefs_set_tags()", "mongoc_read_prefs_t", "mongoc_remove_flags_t", "mongoc_reply_flags_t", "mongoc_server_api_copy()", "mongoc_server_api_deprecation_errors()", "mongoc_server_api_destroy()", "mongoc_server_api_get_deprecation_errors()", "mongoc_server_api_get_strict()", "mongoc_server_api_get_version()", "mongoc_server_api_new()", "mongoc_server_api_strict()", "mongoc_server_api_t", "mongoc_server_api_version_from_string()", "mongoc_server_api_version_t", "mongoc_server_api_version_to_string()", "mongoc_server_description_destroy()", "mongoc_server_description_hello_response()", "mongoc_server_description_host()", "mongoc_server_description_id()", "mongoc_server_description_ismaster()", "mongoc_server_description_last_update_time()", "mongoc_server_description_new_copy()", "mongoc_server_description_round_trip_time()", "mongoc_server_description_t", "mongoc_server_description_type()", "mongoc_server_descriptions_destroy_all()", "mongoc_session_opt_t", "mongoc_session_opts_clone()", "mongoc_session_opts_destroy()", "mongoc_session_opts_get_causal_consistency()", "mongoc_session_opts_get_default_transaction_opts()", "mongoc_session_opts_get_snapshot()", "mongoc_session_opts_get_transaction_opts()", "mongoc_session_opts_new()", "mongoc_session_opts_set_causal_consistency()", "mongoc_session_opts_set_default_transaction_opts()", "mongoc_session_opts_set_snapshot()", "mongoc_socket_accept()", "mongoc_socket_bind()", "mongoc_socket_close()", "mongoc_socket_connect()", "mongoc_socket_destroy()", "mongoc_socket_errno()", "mongoc_socket_getnameinfo()", "mongoc_socket_getsockname()", "mongoc_socket_listen()", "mongoc_socket_new()", "mongoc_socket_recv()", "mongoc_socket_send()", "mongoc_socket_sendv()", "mongoc_socket_setsockopt()", "mongoc_socket_t", "mongoc_ssl_opt_get_default()", "mongoc_ssl_opt_t", "mongoc_stream_buffered_new()", "mongoc_stream_buffered_t", "mongoc_stream_close()", "mongoc_stream_cork()", "mongoc_stream_destroy()", "mongoc_stream_file_get_fd()", "mongoc_stream_file_new()", "mongoc_stream_file_new_for_path()", "mongoc_stream_file_t", "mongoc_stream_flush()", "mongoc_stream_get_base_stream()", "mongoc_stream_gridfs_new()", "mongoc_stream_read()", "mongoc_stream_readv()", "mongoc_stream_setsockopt()", "mongoc_stream_should_retry()", "mongoc_stream_socket_get_socket()", "mongoc_stream_socket_new()", "mongoc_stream_socket_t", "mongoc_stream_t", "mongoc_stream_timed_out()", "mongoc_stream_tls_t", "mongoc_stream_uncork()", "mongoc_stream_write()", "mongoc_stream_writev()", "mongoc_topology_description_destroy()", "mongoc_topology_description_get_servers()", "mongoc_topology_description_has_readable_server()", "mongoc_topology_description_has_writable_server()", "mongoc_topology_description_new_copy()", "mongoc_topology_description_t", "mongoc_topology_description_type()", "mongoc_transaction_opt_t", "mongoc_transaction_opts_clone()", "mongoc_transaction_opts_destroy()", "mongoc_transaction_opts_get_max_commit_time_ms()", "mongoc_transaction_opts_get_read_concern()", "mongoc_transaction_opts_get_read_prefs()", "mongoc_transaction_opts_get_write_concern()", "mongoc_transaction_opts_new()", "mongoc_transaction_opts_set_max_commit_time_ms()", "mongoc_transaction_opts_set_read_concern()", "mongoc_transaction_opts_set_read_prefs()", "mongoc_transaction_opts_set_write_concern()", "mongoc_transaction_state_t", "mongoc_update_flags_t", "mongoc_uri_copy()", "mongoc_uri_destroy()", "mongoc_uri_get_auth_mechanism()", "mongoc_uri_get_auth_source()", "mongoc_uri_get_compressors()", "mongoc_uri_get_database()", "mongoc_uri_get_hosts()", "mongoc_uri_get_mechanism_properties()", "mongoc_uri_get_option_as_bool()", "mongoc_uri_get_option_as_int32()", "mongoc_uri_get_option_as_int64()", "mongoc_uri_get_option_as_utf8()", "mongoc_uri_get_options()", "mongoc_uri_get_password()", "mongoc_uri_get_read_concern()", "mongoc_uri_get_read_prefs()", "mongoc_uri_get_read_prefs_t()", "mongoc_uri_get_replica_set()", "mongoc_uri_get_service()", "mongoc_uri_get_srv_hostname()", "mongoc_uri_get_srv_service_name()", "mongoc_uri_get_ssl()", "mongoc_uri_get_string()", "mongoc_uri_get_tls()", "mongoc_uri_get_username()", "mongoc_uri_get_write_concern()", "mongoc_uri_has_option()", "mongoc_uri_new()", "mongoc_uri_new_for_host_port()", "mongoc_uri_new_with_error()", "mongoc_uri_option_is_bool()", "mongoc_uri_option_is_int32()", "mongoc_uri_option_is_int64()", "mongoc_uri_option_is_utf8()", "mongoc_uri_set_auth_mechanism()", "mongoc_uri_set_auth_source()", "mongoc_uri_set_compressors()", "mongoc_uri_set_database()", "mongoc_uri_set_mechanism_properties()", "mongoc_uri_set_option_as_bool()", "mongoc_uri_set_option_as_int32()", "mongoc_uri_set_option_as_int64()", "mongoc_uri_set_option_as_utf8()", "mongoc_uri_set_password()", "mongoc_uri_set_read_concern()", "mongoc_uri_set_read_prefs_t()", "mongoc_uri_set_username()", "mongoc_uri_set_write_concern()", "mongoc_uri_t", "mongoc_uri_unescape()", "Version Checks", "mongoc_write_concern_append()", "mongoc_write_concern_copy()", "mongoc_write_concern_destroy()", "mongoc_write_concern_get_fsync()", "mongoc_write_concern_get_journal()", "mongoc_write_concern_get_w()", "mongoc_write_concern_get_wmajority()", "mongoc_write_concern_get_wtag()", "mongoc_write_concern_get_wtimeout()", "mongoc_write_concern_get_wtimeout_int64()", "mongoc_write_concern_is_acknowledged()", "mongoc_write_concern_is_default()", "mongoc_write_concern_is_valid()", "mongoc_write_concern_journal_is_set()", "mongoc_write_concern_new()", "mongoc_write_concern_set_fsync()", "mongoc_write_concern_set_journal()", "mongoc_write_concern_set_w()", "mongoc_write_concern_set_wmajority()", "mongoc_write_concern_set_wtag()", "mongoc_write_concern_set_wtimeout()", "mongoc_write_concern_set_wtimeout_int64()", "mongoc_write_concern_t", "Experimental: Queryable Encryption", "Tutorial", "Using Client-Side Field Level Encryption", "Using libmongoc in a Microsoft Visual Studio project"], "terms": {"i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "part": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "experiment": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 687, 688, 689], "queryabl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 687, 688, 689], "encrypt": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 687, 689], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "mai": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "subject": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "break": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "chang": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "futur": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "releas": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "The": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 27, 28, 29, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 67, 68, 69, 72, 73, 75, 78, 79, 82, 83, 84, 85, 87, 88, 89, 103, 104, 105, 106, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 131, 132, 134, 135, 144, 145, 147, 154, 155, 156, 157, 159, 160, 161, 162, 164, 165, 166, 169, 170, 171, 173, 174, 176, 182, 185, 186, 187, 192, 193, 194, 195, 196, 198, 199, 204, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 220, 222, 227, 228, 229, 232, 234, 235, 236, 238, 241, 242, 246, 247, 260, 262, 263, 264, 265, 266, 267, 268, 270, 271, 272, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 285, 286, 288, 289, 290, 291, 296, 298, 302, 303, 305, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 322, 323, 324, 325, 328, 329, 331, 332, 333, 337, 339, 346, 347, 348, 349, 350, 351, 352, 354, 355, 356, 357, 358, 360, 363, 364, 365, 374, 375, 378, 379, 380, 382, 383, 385, 386, 398, 400, 402, 403, 404, 409, 411, 413, 414, 416, 417, 418, 429, 439, 442, 451, 453, 460, 461, 462, 474, 485, 486, 489, 496, 497, 498, 503, 512, 514, 523, 525, 526, 528, 531, 532, 537, 542, 544, 547, 551, 556, 558, 559, 560, 561, 573, 578, 579, 580, 585, 589, 590, 607, 608, 609, 610, 611, 619, 620, 621, 622, 623, 638, 642, 643, 644, 645, 646, 647, 649, 651, 652, 653, 654, 655, 658, 660, 662, 666, 678, 681, 685, 687, 688, 689], "follow": [0, 1, 4, 5, 7, 10, 12, 13, 19, 21, 23, 115, 119, 124, 125, 126, 146, 156, 171, 195, 196, 241, 242, 260, 265, 276, 277, 279, 283, 286, 290, 291, 304, 315, 316, 320, 328, 329, 332, 355, 374, 375, 383, 386, 460, 512, 525, 660, 662, 687, 688, 689], "guid": [0, 4, 14, 17, 19, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 164, 192, 193, 195, 196, 204, 227, 687], "contain": [0, 4, 11, 12, 13, 15, 19, 33, 119, 122, 124, 126, 140, 141, 148, 149, 150, 151, 156, 159, 160, 162, 193, 195, 196, 205, 206, 210, 223, 241, 242, 262, 263, 275, 276, 277, 278, 279, 280, 282, 283, 284, 285, 289, 290, 291, 294, 295, 299, 300, 301, 302, 303, 304, 312, 313, 315, 316, 317, 320, 321, 325, 327, 328, 329, 331, 332, 355, 356, 357, 358, 364, 365, 367, 368, 373, 374, 375, 377, 381, 382, 383, 385, 410, 432, 438, 443, 444, 445, 447, 448, 454, 455, 456, 457, 458, 459, 460, 465, 468, 471, 476, 477, 487, 549, 552, 557, 558, 561, 562, 566, 624, 627, 639, 640, 641, 661, 668, 670, 671, 672, 682, 688], "inform": [0, 4, 5, 119, 131, 156, 218, 277, 282, 284, 293, 294, 299, 304, 318, 320, 328, 329, 330, 337, 355, 362, 461, 497, 510, 535, 627, 660, 680, 682, 685, 687], "specif": [0, 4, 12, 13, 15, 19, 22, 23, 119, 148, 149, 150, 151, 159, 160, 161, 162, 171, 199, 205, 210, 241, 242, 253, 276, 277, 280, 283, 284, 295, 296, 298, 303, 304, 314, 315, 316, 319, 332, 355, 358, 363, 365, 368, 374, 375, 383, 385, 416, 460, 468, 471, 476, 477, 512, 554, 596, 660, 687, 688], "certain": [0, 6, 13, 23, 660, 662], "type": [0, 5, 6, 11, 19, 20, 22, 147, 176, 183, 194, 213, 274, 304, 310, 312, 313, 427, 429, 444, 446, 460, 512, 523, 536, 558, 596, 597, 620, 621, 622, 623, 642, 643, 644, 645, 651, 652, 653, 654, 660, 687], "configur": [0, 3, 4, 8, 10, 11, 14, 16, 17, 18, 20, 21, 116, 124, 125, 126, 137, 139, 141, 149, 151, 162, 166, 176, 192, 195, 196, 204, 211, 216, 217, 222, 236, 238, 241, 242, 248, 256, 262, 266, 273, 276, 277, 280, 281, 283, 284, 290, 291, 295, 296, 298, 304, 315, 316, 320, 322, 328, 329, 332, 355, 358, 359, 363, 370, 372, 374, 375, 376, 378, 383, 461, 495, 512, 541, 543, 546, 547, 548, 565, 585, 598, 605, 606, 607, 608, 609, 626, 628, 637, 660, 677, 682, 688, 689], "For": [0, 4, 8, 13, 18, 19, 21, 119, 156, 205, 210, 241, 267, 268, 272, 276, 277, 282, 284, 293, 294, 298, 303, 304, 312, 315, 318, 332, 346, 347, 355, 360, 362, 365, 368, 374, 383, 460, 461, 494, 497, 508, 642, 643, 644, 645, 653, 660, 661, 674, 685, 687, 688], "exampl": [0, 4, 6, 8, 10, 11, 13, 14, 16, 17, 18, 21, 125, 126, 131, 158, 171, 196, 205, 250, 286, 288, 290, 291, 295, 296, 303, 305, 312, 313, 319, 320, 328, 345, 346, 347, 363, 385, 386, 411, 461, 462, 472, 494, 508, 538, 545, 642, 643, 644, 645, 646, 647, 649, 655, 658, 661, 674, 685, 687, 688], "simpl": [0, 12, 687], "standalon": [0, 536, 594, 660, 687], "see": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 18, 19, 21, 23, 119, 126, 131, 137, 139, 141, 148, 149, 150, 151, 156, 158, 162, 164, 166, 179, 196, 204, 205, 209, 210, 227, 236, 239, 241, 242, 248, 250, 251, 260, 261, 262, 266, 268, 274, 275, 276, 277, 280, 282, 283, 284, 286, 287, 288, 290, 291, 293, 294, 295, 296, 297, 298, 299, 301, 302, 303, 304, 305, 312, 313, 314, 315, 316, 318, 319, 320, 323, 328, 329, 330, 331, 332, 336, 337, 338, 344, 345, 349, 352, 355, 358, 360, 362, 363, 364, 365, 367, 368, 373, 374, 375, 379, 382, 383, 385, 386, 409, 410, 411, 416, 424, 452, 453, 454, 455, 456, 460, 468, 472, 476, 490, 496, 497, 498, 510, 535, 538, 540, 541, 542, 543, 544, 545, 546, 548, 596, 598, 601, 602, 603, 604, 660, 663, 680, 682, 685, 687, 688], "tutori": [0, 4, 6, 14, 17, 276, 332, 383, 689], "To": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 19, 20, 21, 22, 128, 129, 136, 137, 138, 139, 140, 141, 148, 149, 150, 151, 162, 164, 176, 205, 210, 213, 227, 241, 242, 261, 262, 273, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 400, 401, 413, 414, 417, 418, 512, 538, 545, 660, 687, 688, 689], "establish": [0, 213, 214, 215, 275, 331, 353, 382, 687], "authent": [0, 5, 6, 12, 13, 14, 17, 19, 23, 164, 213, 227, 395, 614, 615, 619, 646, 647, 649, 650, 655, 658, 689], "enabl": [0, 5, 6, 7, 11, 12, 18, 21, 115, 120, 121, 127, 164, 227, 270, 284, 395, 508, 512, 548, 616, 648, 660, 662, 688], "page": [0, 20, 304, 687], "much": [0, 5], "like": [0, 1, 3, 4, 5, 7, 8, 9, 11, 12, 13, 18, 19, 229, 241, 246, 277, 299, 304, 315, 352, 355, 365, 374, 398, 405, 444, 460, 461, 549, 550, 552, 621, 622, 660, 687, 689], "simpli": [0, 5, 12, 19, 262, 282, 284, 289, 299, 317, 345, 687], "specifi": [0, 1, 3, 4, 5, 7, 8, 12, 19, 124, 131, 137, 139, 141, 144, 145, 149, 151, 154, 155, 161, 195, 211, 218, 232, 275, 277, 282, 283, 284, 286, 290, 291, 296, 298, 299, 300, 308, 309, 312, 313, 320, 323, 328, 329, 331, 350, 355, 382, 386, 398, 399, 401, 413, 414, 417, 418, 419, 420, 427, 433, 454, 460, 473, 483, 485, 486, 487, 497, 507, 512, 513, 523, 525, 625, 633, 635, 660, 681, 685, 688], "name": [0, 1, 3, 4, 9, 11, 13, 19, 23, 27, 40, 42, 50, 122, 126, 132, 145, 146, 159, 160, 161, 162, 165, 169, 171, 181, 187, 193, 196, 198, 206, 208, 211, 212, 235, 241, 242, 265, 276, 277, 279, 286, 290, 291, 294, 295, 299, 306, 318, 319, 320, 328, 329, 339, 350, 354, 355, 360, 365, 366, 367, 368, 369, 373, 377, 383, 386, 411, 413, 414, 417, 418, 460, 461, 468, 555, 556, 562, 620, 621, 622, 623, 630, 631, 632, 638, 642, 643, 644, 645, 649, 650, 651, 652, 653, 654, 660, 687, 688], "us": [0, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 23, 26, 34, 45, 56, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 131, 132, 133, 137, 139, 141, 143, 145, 149, 151, 156, 158, 159, 160, 161, 162, 164, 166, 169, 170, 171, 172, 176, 179, 181, 182, 183, 184, 192, 193, 195, 196, 197, 199, 203, 204, 205, 206, 208, 209, 210, 211, 213, 214, 215, 220, 221, 223, 224, 225, 226, 227, 229, 230, 231, 232, 237, 239, 241, 242, 243, 244, 246, 247, 248, 252, 253, 255, 260, 261, 262, 266, 268, 269, 270, 271, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 295, 296, 297, 298, 299, 300, 302, 303, 304, 307, 308, 309, 311, 312, 313, 315, 316, 319, 320, 321, 322, 323, 324, 325, 326, 328, 329, 330, 331, 332, 333, 339, 341, 345, 346, 347, 349, 350, 351, 353, 355, 356, 357, 358, 359, 360, 363, 364, 365, 367, 368, 370, 371, 372, 374, 375, 378, 379, 380, 381, 382, 383, 384, 385, 386, 394, 400, 401, 409, 411, 413, 414, 416, 417, 418, 419, 420, 426, 429, 436, 438, 439, 449, 451, 452, 453, 454, 455, 456, 460, 461, 465, 468, 471, 472, 474, 477, 483, 485, 486, 490, 491, 495, 496, 507, 508, 509, 511, 512, 515, 523, 525, 528, 531, 533, 538, 545, 548, 552, 553, 554, 558, 559, 560, 561, 565, 566, 570, 571, 572, 573, 577, 578, 579, 583, 585, 589, 593, 594, 595, 611, 621, 622, 627, 630, 633, 635, 639, 640, 660, 662, 663, 664, 666, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685], "replicaset": [0, 3, 8, 10, 156, 219, 511, 629, 641, 645, 660], "myreplset": [0, 10, 641], "uri": [0, 1, 3, 6, 8, 9, 10, 12, 23, 119, 156, 205, 209, 210, 211, 219, 223, 224, 225, 230, 231, 232, 239, 241, 260, 261, 262, 267, 268, 272, 274, 275, 276, 277, 282, 283, 284, 298, 299, 300, 302, 303, 304, 315, 329, 331, 353, 355, 364, 365, 367, 368, 374, 382, 401, 409, 410, 452, 453, 454, 455, 456, 460, 462, 494, 565, 577, 598, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 674, 687], "includ": [0, 1, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 17, 19, 21, 23, 132, 145, 156, 162, 171, 205, 210, 219, 226, 234, 239, 241, 242, 260, 261, 262, 264, 274, 276, 277, 278, 279, 280, 282, 283, 284, 295, 296, 298, 299, 300, 302, 303, 304, 310, 312, 313, 315, 316, 319, 329, 332, 337, 339, 346, 350, 353, 354, 355, 356, 358, 361, 363, 365, 368, 374, 375, 377, 381, 383, 385, 396, 413, 414, 416, 417, 418, 422, 437, 455, 456, 459, 460, 465, 468, 471, 474, 475, 478, 511, 535, 538, 563, 565, 570, 576, 598, 627, 649, 660, 662, 688, 689], "bson": [0, 10, 11, 13, 14, 17, 33, 124, 126, 135, 137, 139, 141, 146, 149, 151, 153, 155, 162, 165, 166, 173, 174, 176, 182, 186, 194, 195, 196, 198, 205, 210, 214, 241, 242, 247, 252, 254, 255, 262, 275, 276, 277, 279, 280, 282, 283, 284, 286, 288, 289, 290, 291, 295, 296, 298, 299, 303, 304, 310, 312, 313, 315, 316, 317, 319, 320, 328, 329, 331, 332, 337, 347, 348, 355, 358, 363, 365, 368, 374, 375, 382, 383, 386, 389, 392, 393, 411, 413, 414, 417, 418, 432, 443, 446, 448, 460, 478, 512, 528, 531, 611, 616, 624, 627, 650, 689], "h": [0, 1, 3, 6, 9, 10, 12, 23, 156, 239, 241, 260, 261, 262, 274, 276, 277, 279, 282, 283, 284, 298, 299, 300, 304, 329, 353, 355, 381, 416, 437, 460, 465, 468, 471, 474, 478, 511, 535, 538, 563, 598, 662, 688, 689], "mongoc": [0, 1, 3, 5, 6, 9, 10, 12, 19, 23, 156, 239, 241, 260, 261, 262, 274, 276, 277, 279, 282, 283, 284, 298, 299, 300, 304, 329, 353, 355, 381, 416, 437, 460, 461, 465, 468, 471, 474, 478, 486, 487, 488, 489, 511, 535, 538, 563, 585, 598, 662, 685, 688, 689], "int": [0, 1, 3, 6, 9, 10, 12, 21, 23, 156, 157, 239, 241, 260, 261, 262, 274, 276, 283, 298, 300, 329, 337, 353, 381, 401, 402, 403, 404, 416, 442, 460, 462, 478, 486, 487, 488, 489, 511, 550, 551, 552, 554, 556, 557, 558, 559, 562, 568, 569, 571, 572, 573, 575, 580, 588, 598, 687, 688], "main": [0, 1, 3, 5, 6, 9, 10, 12, 18, 20, 21, 23, 156, 239, 241, 260, 261, 262, 274, 276, 300, 329, 337, 353, 381, 401, 416, 460, 478, 511, 598, 687, 688], "argc": [0, 3, 9, 10, 12, 21, 23, 239, 241, 260, 261, 262, 274, 276, 337, 353, 381, 416, 460, 478, 598, 687], "char": [0, 1, 3, 6, 9, 10, 12, 21, 23, 27, 40, 42, 50, 122, 156, 159, 160, 161, 162, 165, 166, 169, 179, 181, 183, 185, 187, 193, 198, 199, 206, 207, 208, 209, 210, 212, 223, 235, 239, 241, 242, 260, 261, 262, 265, 274, 276, 279, 294, 295, 299, 300, 304, 306, 314, 318, 319, 329, 337, 353, 354, 360, 366, 367, 368, 369, 373, 377, 381, 385, 386, 395, 396, 397, 398, 399, 400, 401, 405, 413, 414, 416, 417, 418, 427, 428, 431, 438, 444, 445, 447, 454, 459, 460, 461, 462, 468, 471, 474, 478, 493, 496, 511, 524, 526, 536, 555, 565, 573, 597, 598, 614, 615, 617, 619, 620, 621, 622, 623, 625, 629, 630, 631, 632, 634, 636, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 651, 652, 653, 654, 655, 658, 661, 670, 682, 687, 688], "argv": [0, 3, 9, 10, 12, 21, 23, 239, 241, 260, 261, 262, 274, 276, 337, 353, 381, 416, 460, 478, 598, 687], "mongoc_client_t": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 17, 20, 23, 116, 120, 121, 143, 156, 159, 160, 161, 162, 163, 164, 176, 192, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 232, 233, 239, 240, 241, 242, 243, 244, 251, 260, 261, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 276, 296, 300, 329, 337, 346, 347, 353, 355, 381, 401, 416, 449, 460, 461, 511, 538, 545, 546, 548, 565, 598, 616, 648, 660, 687, 688], "client": [0, 1, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 17, 23, 34, 45, 56, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 135, 141, 143, 149, 151, 153, 156, 159, 160, 161, 162, 163, 164, 192, 193, 195, 196, 199, 204, 205, 206, 207, 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, 219, 220, 221, 222, 226, 227, 229, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 250, 253, 260, 261, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 285, 286, 290, 291, 296, 300, 312, 313, 320, 323, 326, 328, 329, 337, 345, 346, 347, 353, 355, 360, 363, 370, 372, 379, 381, 401, 416, 460, 461, 468, 478, 497, 503, 509, 511, 523, 528, 530, 531, 534, 546, 547, 548, 565, 598, 611, 616, 648, 660, 685, 687], "mongoc_init": [0, 1, 3, 5, 6, 9, 10, 12, 14, 18, 20, 21, 23, 156, 158, 239, 241, 260, 261, 262, 274, 276, 300, 337, 353, 381, 401, 416, 460, 461, 478, 511, 598, 687, 688], "creat": [0, 1, 3, 4, 5, 6, 8, 11, 13, 14, 16, 17, 18, 20, 25, 26, 115, 153, 155, 159, 166, 167, 171, 177, 189, 190, 200, 206, 208, 212, 221, 223, 224, 225, 230, 231, 232, 237, 251, 260, 261, 262, 273, 275, 277, 285, 286, 287, 288, 292, 296, 297, 314, 320, 328, 329, 331, 333, 337, 351, 352, 353, 354, 355, 356, 360, 378, 379, 380, 382, 394, 397, 401, 406, 409, 411, 413, 414, 415, 416, 417, 418, 419, 420, 429, 438, 468, 477, 479, 485, 495, 507, 511, 515, 521, 532, 538, 539, 545, 547, 558, 566, 572, 573, 577, 583, 598, 599, 605, 640, 660, 677, 688, 689], "our": [0, 5, 12, 262, 300, 687], "mongoc_client_new": [0, 4, 8, 14, 20, 211, 274, 296, 337, 381, 416, 511, 546, 548, 687, 688], "host01": 0, "27017": [0, 1, 3, 7, 12, 23, 156, 300, 329, 401, 416, 460, 641, 660, 687], "host02": 0, "host03": 0, "do": [0, 6, 9, 12, 13, 23, 163, 237, 239, 266, 269, 276, 332, 354, 383, 461, 473, 611, 660, 685, 687, 688], "some": [0, 7, 12, 13, 18, 20, 21, 22, 23, 158, 261, 273, 304, 346, 347, 352, 386, 398, 401, 460, 472, 473, 485, 486, 538, 545, 641, 652, 660], "work": [0, 19, 23, 119, 569, 574, 584, 587, 588, 687], "todo": 0, "clean": [0, 535, 687], "up": [0, 7, 12, 13, 261, 353, 460, 535, 660, 687, 688], "mongoc_client_destroi": [0, 1, 3, 6, 9, 10, 12, 14, 20, 23, 156, 211, 223, 224, 225, 241, 260, 261, 262, 274, 276, 296, 300, 329, 337, 353, 381, 401, 416, 460, 511, 598, 687, 688], "mongoc_cleanup": [0, 1, 3, 5, 6, 9, 12, 14, 18, 20, 21, 23, 156, 239, 241, 260, 261, 262, 274, 276, 300, 337, 353, 381, 401, 416, 460, 461, 472, 478, 511, 598, 687, 688], "return": [0, 1, 3, 6, 8, 9, 10, 12, 13, 20, 21, 23, 132, 156, 194, 233, 239, 250, 261, 274, 338, 342, 349, 352, 353, 381, 401, 416, 460, 462, 478, 482, 485, 494, 508, 512, 514, 536, 537, 538, 541, 543, 597, 598, 601, 620, 621, 622, 623, 638, 642, 643, 644, 645, 660, 673, 674, 683, 684, 687, 688], "0": [0, 1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 18, 19, 21, 22, 23, 117, 118, 123, 124, 131, 156, 180, 183, 194, 195, 210, 219, 239, 241, 255, 257, 260, 261, 262, 274, 276, 282, 283, 284, 296, 298, 299, 300, 304, 329, 337, 346, 353, 368, 381, 384, 396, 398, 416, 442, 453, 454, 455, 460, 461, 468, 473, 475, 476, 477, 478, 485, 489, 496, 497, 498, 511, 513, 514, 546, 548, 550, 551, 552, 554, 556, 557, 558, 559, 560, 562, 565, 568, 569, 575, 578, 579, 580, 588, 589, 590, 598, 610, 611, 641, 660, 662, 671, 672, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "multipl": [0, 19, 20, 147, 228, 229, 232, 233, 240, 262, 327, 329, 399, 462, 485, 512, 660], "hostnam": [0, 4, 7, 640, 660], "can": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 13, 18, 19, 20, 21, 23, 146, 155, 156, 162, 166, 169, 205, 210, 213, 232, 234, 235, 236, 238, 241, 242, 260, 262, 273, 274, 275, 276, 277, 278, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 299, 302, 303, 304, 310, 312, 313, 315, 316, 319, 320, 326, 328, 329, 331, 332, 346, 348, 351, 354, 355, 356, 358, 363, 365, 368, 374, 375, 381, 382, 383, 386, 395, 401, 409, 412, 413, 414, 417, 418, 438, 441, 451, 452, 455, 456, 460, 462, 473, 478, 485, 486, 495, 496, 497, 506, 508, 512, 523, 547, 548, 560, 561, 598, 607, 608, 609, 621, 622, 641, 651, 652, 653, 654, 660, 662, 677, 678, 679, 680, 681, 682, 683, 684, 685, 687, 688, 689], "string": [0, 1, 4, 7, 8, 11, 12, 13, 22, 23, 27, 40, 42, 50, 119, 124, 125, 126, 137, 139, 141, 149, 151, 166, 169, 171, 181, 185, 195, 196, 207, 209, 210, 223, 238, 262, 265, 270, 275, 277, 283, 290, 291, 294, 295, 296, 304, 306, 314, 320, 328, 329, 331, 355, 367, 368, 369, 373, 377, 382, 386, 405, 411, 427, 428, 431, 444, 445, 447, 454, 459, 461, 497, 512, 524, 525, 526, 536, 555, 597, 614, 615, 617, 623, 625, 629, 630, 631, 632, 634, 636, 639, 640, 641, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 670, 682, 687, 688], "comma": [0, 512, 618, 648, 660], "separ": [0, 1, 19, 20, 23, 120, 121, 299, 304, 512, 618, 648, 660, 688], "host": [0, 3, 4, 23, 31, 43, 53, 62, 68, 75, 79, 84, 88, 119, 171, 211, 274, 340, 353, 462, 508, 512, 529, 612, 618, 630, 631, 660, 687], "seed": [0, 486, 488, 489], "list": [0, 4, 5, 7, 11, 13, 19, 31, 43, 53, 62, 68, 75, 79, 84, 88, 162, 169, 205, 209, 210, 219, 241, 242, 276, 277, 280, 298, 303, 304, 315, 316, 332, 355, 358, 360, 365, 368, 374, 375, 383, 416, 434, 435, 436, 437, 452, 456, 460, 462, 497, 512, 522, 523, 618, 660, 689], "It": [0, 1, 3, 4, 7, 10, 12, 15, 17, 18, 19, 23, 118, 121, 125, 131, 143, 144, 146, 147, 150, 151, 156, 158, 160, 180, 183, 213, 226, 238, 243, 248, 253, 267, 268, 270, 272, 274, 275, 277, 278, 296, 299, 302, 303, 304, 314, 331, 345, 351, 353, 355, 356, 365, 381, 382, 401, 416, 437, 438, 449, 460, 464, 467, 470, 472, 474, 478, 490, 512, 523, 549, 550, 552, 555, 557, 565, 566, 567, 570, 575, 577, 578, 589, 590, 619, 660, 663, 687, 688], "recommend": [0, 4, 7, 15, 19, 156, 274, 298, 688], "member": [0, 3, 13, 219, 512, 660], "allow": [0, 3, 6, 7, 15, 145, 156, 214, 215, 284, 350, 460, 474, 485, 486, 497, 512, 522, 523, 549, 585, 588, 611, 660, 685, 688], "driver": [0, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 21, 22, 23, 38, 49, 60, 66, 70, 76, 80, 86, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 107, 110, 113, 119, 125, 132, 145, 158, 213, 236, 238, 239, 244, 253, 265, 266, 270, 272, 273, 299, 304, 324, 339, 341, 346, 347, 350, 380, 386, 398, 401, 429, 460, 461, 472, 486, 512, 523, 525, 528, 531, 535, 585, 593, 594, 596, 621, 622, 649, 655, 658, 660, 662, 685, 687, 688, 689], "ani": [0, 5, 6, 7, 12, 13, 18, 20, 23, 100, 107, 119, 120, 121, 141, 146, 149, 151, 156, 158, 162, 192, 194, 229, 234, 241, 242, 248, 252, 255, 260, 261, 263, 264, 266, 270, 273, 274, 275, 276, 277, 280, 282, 284, 286, 290, 291, 300, 304, 310, 312, 313, 315, 316, 320, 328, 329, 331, 332, 350, 351, 355, 358, 374, 375, 382, 383, 386, 401, 407, 409, 412, 413, 414, 417, 418, 421, 423, 429, 434, 435, 446, 460, 461, 464, 467, 470, 472, 490, 497, 502, 505, 511, 512, 532, 538, 545, 547, 565, 575, 598, 633, 635, 648, 660, 663, 687, 688], "node": [0, 3, 274, 511, 512, 669, 681, 685], "mongo": [0, 1, 4, 10, 11, 13, 19, 22, 219, 241, 257, 276, 485, 535, 536, 594, 660, 687, 688, 689], "should": [0, 1, 7, 8, 10, 13, 18, 19, 20, 27, 31, 33, 37, 39, 40, 42, 43, 48, 50, 53, 55, 59, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 119, 120, 121, 125, 128, 129, 133, 140, 148, 149, 150, 151, 154, 156, 158, 159, 160, 163, 204, 206, 208, 209, 210, 211, 212, 214, 215, 216, 217, 220, 221, 222, 223, 224, 225, 226, 229, 230, 231, 243, 251, 262, 263, 271, 273, 274, 277, 278, 279, 281, 282, 283, 284, 285, 286, 287, 288, 289, 297, 298, 299, 300, 302, 303, 304, 305, 306, 307, 308, 309, 311, 314, 317, 321, 325, 328, 329, 330, 333, 334, 346, 355, 356, 359, 364, 365, 366, 367, 368, 369, 370, 371, 372, 384, 394, 395, 411, 416, 419, 420, 425, 427, 428, 429, 431, 432, 436, 444, 449, 452, 456, 457, 458, 460, 461, 464, 467, 468, 470, 472, 474, 477, 491, 495, 498, 500, 502, 505, 507, 512, 526, 531, 533, 549, 552, 553, 555, 556, 558, 564, 566, 567, 571, 572, 573, 583, 584, 595, 611, 612, 614, 615, 616, 617, 618, 619, 624, 625, 626, 627, 628, 629, 630, 633, 634, 635, 636, 637, 640, 660, 661, 664, 666, 667, 669, 670, 671, 672, 677, 681, 683, 684, 686, 687, 688], "c": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 21, 22, 23, 145, 156, 158, 213, 236, 238, 239, 241, 244, 260, 261, 262, 266, 270, 274, 276, 299, 300, 304, 329, 346, 347, 350, 353, 365, 386, 395, 396, 397, 398, 399, 400, 401, 416, 429, 460, 461, 472, 474, 486, 598, 660, 662, 688, 689], "automat": [0, 7, 10, 11, 19, 20, 116, 117, 120, 121, 125, 127, 156, 164, 166, 176, 206, 208, 213, 227, 244, 260, 299, 413, 417, 548, 685], "detect": [0, 13, 19, 468], "ha": [0, 1, 3, 7, 8, 10, 13, 20, 120, 121, 145, 153, 154, 174, 186, 187, 213, 214, 215, 219, 232, 241, 246, 247, 252, 253, 255, 259, 261, 262, 265, 273, 277, 282, 284, 315, 321, 329, 334, 335, 336, 337, 341, 344, 345, 346, 350, 351, 355, 374, 424, 435, 482, 489, 494, 496, 497, 502, 514, 526, 538, 545, 552, 554, 565, 581, 586, 593, 594, 610, 624, 625, 627, 628, 636, 637, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 670, 674, 678, 679, 680, 681, 682, 683, 684, 685, 687], "If": [0, 4, 5, 8, 10, 11, 12, 19, 20, 21, 33, 116, 119, 141, 149, 151, 153, 155, 159, 170, 180, 185, 199, 205, 207, 209, 210, 213, 218, 232, 234, 235, 239, 241, 244, 248, 249, 250, 252, 255, 262, 263, 264, 266, 271, 273, 275, 277, 282, 283, 284, 285, 288, 289, 290, 291, 295, 296, 298, 299, 300, 301, 302, 303, 304, 310, 312, 313, 315, 317, 318, 319, 320, 321, 327, 328, 329, 331, 335, 337, 349, 350, 351, 355, 360, 363, 364, 365, 367, 368, 373, 374, 382, 386, 395, 409, 410, 441, 446, 452, 453, 454, 455, 456, 461, 484, 490, 493, 511, 514, 544, 546, 548, 560, 561, 578, 585, 589, 611, 619, 620, 621, 622, 623, 660, 661, 663, 668, 673, 680, 681, 687, 688, 689], "more": [0, 4, 8, 10, 11, 21, 118, 119, 125, 148, 149, 150, 151, 156, 199, 277, 282, 284, 293, 294, 299, 304, 318, 320, 328, 329, 330, 345, 346, 347, 353, 355, 362, 397, 461, 497, 510, 549, 581, 611, 648, 660, 680, 682, 685, 687, 688], "than": [0, 1, 4, 8, 9, 12, 13, 19, 118, 125, 156, 157, 246, 247, 265, 295, 304, 314, 461, 485, 486, 497, 503, 509, 563, 611, 660, 687, 688], "one": [0, 1, 6, 8, 11, 13, 19, 20, 124, 156, 195, 213, 226, 232, 239, 240, 241, 261, 273, 274, 276, 284, 290, 291, 313, 314, 320, 328, 329, 349, 397, 415, 441, 442, 449, 451, 473, 512, 536, 538, 545, 547, 597, 648, 660, 686, 687], "attempt": [0, 4, 6, 7, 13, 19, 119, 156, 213, 237, 262, 263, 269, 285, 286, 312, 337, 356, 363, 546, 548, 660, 685], "failov": [0, 205, 209, 210, 241, 260, 275, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 598, 660], "between": [0, 4, 337, 549, 550, 552, 563, 660], "instanc": [0, 1, 12, 23, 212, 216, 217, 222, 262, 416, 423, 457, 458, 460, 511, 626, 628, 637, 660, 687], "paramet": [0, 13, 535, 596, 660], "when": [0, 4, 5, 6, 7, 8, 10, 13, 15, 19, 20, 21, 26, 38, 49, 60, 66, 70, 76, 80, 86, 90, 107, 110, 113, 119, 123, 145, 153, 155, 159, 171, 180, 183, 194, 199, 206, 208, 211, 213, 223, 224, 225, 230, 231, 232, 242, 243, 244, 260, 262, 270, 273, 274, 275, 277, 278, 279, 281, 283, 285, 286, 299, 302, 303, 304, 316, 320, 328, 329, 331, 333, 339, 341, 346, 347, 350, 355, 356, 359, 364, 365, 375, 382, 394, 395, 402, 403, 404, 420, 436, 438, 452, 454, 455, 456, 459, 461, 462, 474, 477, 485, 491, 495, 497, 512, 515, 532, 533, 535, 547, 553, 556, 558, 561, 566, 572, 573, 578, 583, 595, 598, 611, 621, 640, 653, 660, 664, 677, 680, 685, 687, 688, 689], "invalid": [0, 4, 7, 13, 23, 121, 135, 137, 139, 141, 149, 151, 160, 161, 162, 220, 234, 236, 241, 242, 243, 245, 248, 249, 260, 264, 266, 275, 276, 279, 280, 288, 289, 290, 291, 295, 296, 301, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 337, 350, 351, 354, 357, 358, 363, 373, 374, 375, 376, 377, 382, 383, 386, 422, 440, 446, 459, 477, 490, 514, 570, 612, 619, 620, 621, 622, 623, 661, 663, 675, 688], "myshard01": 0, "someth": [0, 3, 12, 19, 23, 239, 405, 444, 461, 687], "free": [0, 20, 24, 25, 130, 163, 166, 167, 173, 175, 176, 177, 190, 200, 212, 226, 250, 261, 273, 335, 361, 387, 416, 434, 453, 454, 455, 460, 475, 492, 501, 517, 521, 527, 529, 537, 538, 540, 545, 570, 591, 600, 613, 665], "resolv": [0, 119, 337, 660], "howev": [0, 6, 10, 213, 262, 299, 512, 660, 685, 687], "directli": [0, 4, 8, 19, 20, 219, 220, 299, 325, 330, 386, 486, 563, 660], "wrap": [0, 145, 213, 244, 253, 274, 346, 347, 350, 353, 460, 461, 576, 580, 585], "mongoc_uri_t": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 14, 17, 23, 156, 205, 209, 210, 221, 224, 225, 230, 231, 239, 241, 260, 261, 262, 274, 275, 276, 277, 282, 283, 284, 298, 299, 300, 302, 303, 304, 315, 329, 331, 353, 355, 364, 365, 367, 368, 374, 382, 401, 409, 410, 452, 453, 454, 455, 456, 460, 598, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 687], "mongoc_uri_new": [0, 4, 7, 8, 14, 616, 619, 648, 650, 660], "1": [0, 1, 3, 5, 6, 7, 9, 10, 11, 12, 13, 17, 19, 22, 23, 35, 46, 57, 117, 118, 123, 156, 180, 183, 194, 219, 239, 241, 242, 260, 261, 262, 274, 276, 282, 283, 284, 298, 299, 300, 304, 316, 329, 337, 346, 347, 353, 375, 384, 386, 395, 396, 397, 398, 399, 400, 401, 405, 416, 439, 442, 451, 460, 461, 462, 473, 485, 489, 496, 498, 511, 512, 513, 514, 525, 546, 550, 551, 552, 556, 557, 559, 560, 561, 562, 565, 568, 569, 575, 578, 579, 580, 588, 589, 590, 598, 610, 611, 641, 646, 660, 662, 678, 679, 680, 681, 682, 683, 684, 685, 687, 688, 689], "both": [0, 8, 19, 213, 242, 304, 316, 375, 460, 546, 548, 653, 660], "dn": [0, 13, 660], "record": [0, 299, 353, 660], "behavior": [0, 7, 8, 12, 13, 119, 126, 156, 196, 205, 209, 210, 229, 241, 275, 277, 282, 283, 284, 299, 302, 303, 304, 315, 331, 344, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 660, 688], "rfc": [0, 4, 7, 660], "6555": [0, 660], "A": [0, 4, 6, 8, 12, 13, 17, 19, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 68, 69, 71, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 84, 85, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 111, 112, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 153, 154, 155, 156, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 195, 196, 198, 199, 200, 201, 202, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 400, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 464, 467, 470, 475, 476, 477, 479, 480, 481, 482, 483, 484, 487, 488, 490, 491, 492, 493, 494, 496, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 515, 516, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 536, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 566, 568, 569, 570, 571, 572, 575, 576, 577, 578, 579, 580, 581, 582, 583, 586, 588, 589, 590, 591, 592, 593, 594, 595, 597, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 678, 679, 680, 681, 682, 683, 684, 687, 688], "first": [0, 1, 3, 6, 8, 12, 19, 20, 23, 119, 131, 156, 160, 162, 205, 206, 208, 210, 234, 235, 236, 238, 241, 242, 276, 277, 279, 280, 283, 284, 285, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 352, 353, 355, 357, 358, 363, 365, 368, 374, 375, 383, 386, 399, 453, 454, 455, 461, 497, 512, 513, 547, 548, 598, 611, 660, 687], "fail": [0, 1, 3, 5, 6, 9, 10, 12, 13, 19, 23, 26, 33, 38, 76, 91, 96, 119, 131, 132, 156, 210, 237, 239, 241, 260, 261, 262, 269, 273, 274, 276, 282, 283, 284, 298, 300, 311, 329, 337, 353, 368, 376, 385, 401, 460, 468, 473, 511, 514, 546, 548, 552, 598, 660, 681, 687, 688], "doe": [0, 4, 5, 13, 15, 18, 19, 24, 130, 148, 149, 150, 151, 156, 158, 160, 161, 163, 165, 167, 175, 177, 186, 187, 190, 198, 200, 205, 209, 210, 229, 241, 250, 262, 273, 275, 277, 279, 281, 282, 283, 284, 292, 296, 298, 299, 302, 303, 304, 312, 315, 331, 335, 345, 355, 357, 361, 364, 365, 367, 368, 374, 382, 386, 387, 396, 399, 400, 408, 409, 410, 421, 423, 434, 452, 453, 454, 455, 456, 460, 472, 478, 492, 501, 517, 527, 540, 546, 553, 570, 577, 591, 593, 594, 600, 613, 627, 660, 665, 680, 685, 688], "complet": [0, 8, 10, 13, 19, 21, 86, 93, 98, 260, 262, 271, 345, 346, 413, 414, 660], "within": [0, 8, 13, 19, 20, 261, 262, 263, 273, 353, 373, 450, 464, 467, 470, 483, 538, 545, 660], "250m": [0, 660], "tri": [0, 13, 279, 660], "parallel": [0, 6, 508, 512, 660], "whichev": [0, 660], "succe": [0, 6, 13, 26, 260, 373, 598, 660], "cancel": [0, 508, 512, 660], "other": [0, 4, 12, 13, 18, 19, 20, 23, 119, 125, 158, 226, 246, 247, 260, 265, 276, 285, 286, 299, 304, 310, 312, 313, 314, 332, 337, 354, 377, 383, 429, 461, 472, 486, 497, 512, 585, 598, 619, 650, 660, 673, 685, 687, 688], "success": [0, 3, 5, 131, 132, 135, 137, 139, 141, 149, 151, 160, 161, 162, 164, 165, 166, 173, 174, 176, 186, 187, 188, 189, 194, 198, 199, 201, 212, 220, 227, 234, 241, 242, 248, 260, 263, 264, 266, 273, 276, 279, 280, 288, 289, 290, 291, 295, 301, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 332, 350, 351, 357, 358, 360, 363, 374, 375, 376, 377, 383, 386, 395, 396, 397, 398, 399, 400, 401, 406, 422, 440, 441, 442, 446, 454, 455, 459, 490, 524, 549, 550, 551, 552, 556, 557, 558, 559, 561, 562, 566, 568, 569, 575, 577, 578, 579, 580, 588, 589, 590, 598, 639, 641, 660, 663, 666, 667, 669, 678, 679, 681, 682, 687], "result": [0, 1, 4, 6, 7, 10, 12, 32, 44, 54, 125, 155, 156, 160, 162, 164, 173, 174, 176, 186, 187, 188, 199, 200, 201, 203, 205, 209, 210, 216, 217, 220, 222, 227, 241, 242, 262, 275, 276, 277, 278, 279, 280, 285, 286, 290, 291, 299, 300, 301, 302, 303, 304, 305, 312, 313, 315, 316, 320, 325, 328, 329, 331, 332, 333, 341, 345, 349, 351, 352, 353, 355, 356, 357, 358, 364, 365, 374, 375, 382, 383, 397, 442, 452, 453, 454, 455, 456, 461, 485, 508, 512, 546, 547, 548, 556, 558, 598, 639, 641, 660, 687, 688], "cach": [0, 4, 154, 156, 660], "10": [0, 6, 8, 12, 19, 23, 239, 304, 485, 641, 660, 687], "minut": [0, 8, 20, 261, 273, 485, 538, 545, 660], "As": [0, 8, 22, 282, 284, 289, 300, 317, 401, 565, 660], "consequ": [0, 660], "mongod": [0, 1, 3, 4, 12, 23, 511, 535, 660], "onli": [0, 4, 5, 6, 7, 8, 9, 10, 19, 20, 27, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 116, 120, 121, 125, 128, 129, 131, 136, 137, 138, 139, 140, 141, 144, 145, 147, 148, 149, 150, 151, 156, 163, 164, 180, 183, 185, 204, 207, 211, 213, 226, 227, 234, 235, 236, 238, 239, 244, 246, 247, 252, 254, 256, 261, 267, 272, 273, 274, 275, 277, 304, 327, 330, 331, 345, 346, 347, 350, 352, 353, 355, 365, 382, 395, 416, 441, 449, 451, 460, 485, 497, 503, 506, 509, 511, 512, 513, 538, 542, 545, 548, 551, 565, 578, 589, 590, 593, 602, 603, 604, 611, 623, 651, 652, 653, 654, 660, 662, 687, 688, 689], "listen": [0, 156, 275, 331, 382, 557, 660], "delai": [0, 660], "ar": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13, 15, 19, 20, 21, 22, 118, 119, 123, 124, 125, 126, 128, 129, 131, 134, 135, 136, 137, 138, 139, 140, 141, 144, 148, 149, 151, 156, 159, 160, 161, 162, 164, 179, 194, 195, 196, 206, 208, 209, 210, 212, 220, 227, 229, 232, 234, 238, 239, 241, 242, 243, 245, 246, 247, 248, 249, 255, 260, 261, 264, 266, 273, 275, 276, 277, 279, 280, 282, 283, 284, 285, 286, 288, 289, 290, 291, 295, 296, 297, 298, 299, 300, 301, 302, 304, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 326, 327, 328, 329, 330, 331, 332, 336, 337, 345, 346, 347, 348, 350, 351, 353, 354, 355, 356, 357, 358, 360, 363, 364, 367, 368, 373, 374, 375, 376, 377, 381, 382, 383, 384, 386, 416, 422, 424, 435, 440, 446, 453, 454, 455, 459, 460, 461, 462, 473, 474, 477, 485, 490, 508, 512, 513, 516, 538, 545, 546, 548, 553, 563, 577, 585, 593, 611, 648, 660, 662, 663, 673, 680, 682, 685, 686, 687, 688, 689], "aaaa": [0, 660], "associ": [0, 4, 144, 152, 163, 175, 226, 250, 254, 271, 275, 292, 296, 331, 335, 361, 382, 387, 421, 422, 423, 424, 425, 434, 448, 475, 492, 501, 527, 553, 570, 591, 613, 660, 665], "avoid": [0, 19, 20, 261, 273, 298, 538, 545, 571, 660], "match": [0, 1, 13, 19, 141, 149, 151, 199, 229, 277, 283, 289, 290, 291, 298, 300, 317, 318, 319, 320, 327, 328, 329, 337, 345, 397, 452, 453, 454, 455, 456, 459, 476, 478, 511, 512, 513, 514, 593, 611, 660, 687], "That": [0, 7, 460, 660], "On": [0, 4, 5, 18, 19, 131, 156, 164, 212, 223, 224, 225, 230, 231, 237, 269, 273, 337, 346, 347, 442, 524, 551, 660, 687], "system": [0, 3, 7, 19, 21, 119, 460, 461, 486, 552, 559, 560, 561, 585, 689], "pass": [0, 3, 4, 6, 9, 12, 13, 23, 26, 28, 41, 51, 61, 67, 72, 78, 82, 87, 103, 108, 111, 119, 123, 124, 131, 135, 137, 139, 141, 149, 151, 154, 156, 167, 177, 190, 194, 195, 200, 213, 234, 244, 260, 261, 262, 263, 264, 271, 277, 282, 284, 289, 290, 291, 293, 294, 304, 312, 313, 317, 318, 325, 328, 329, 346, 351, 362, 400, 408, 461, 490, 547, 573, 577, 580, 588, 598, 641, 648, 660, 663, 687, 688], "url": [0, 4], "encod": [0, 4, 124, 195, 445, 454, 459, 661], "path": [0, 4, 7, 11, 15, 19, 119, 573, 660, 688, 689], "which": [0, 3, 6, 7, 11, 12, 13, 18, 19, 23, 37, 48, 59, 115, 120, 121, 125, 131, 137, 138, 139, 140, 141, 145, 148, 149, 150, 151, 154, 156, 158, 159, 161, 163, 164, 194, 211, 212, 213, 227, 228, 229, 238, 239, 251, 256, 262, 270, 275, 277, 288, 304, 306, 311, 328, 329, 330, 331, 337, 344, 347, 350, 353, 355, 356, 369, 382, 396, 399, 409, 417, 418, 427, 428, 455, 456, 460, 461, 472, 483, 512, 523, 525, 529, 546, 547, 559, 598, 614, 615, 616, 617, 624, 625, 629, 634, 636, 660, 670, 680, 688, 689], "must": [0, 1, 4, 6, 7, 8, 11, 12, 13, 18, 20, 23, 25, 115, 120, 121, 124, 131, 143, 147, 148, 149, 150, 151, 158, 162, 165, 166, 168, 169, 173, 174, 176, 178, 185, 186, 187, 189, 191, 192, 194, 195, 198, 199, 201, 202, 204, 207, 212, 213, 218, 219, 226, 232, 234, 235, 236, 238, 239, 241, 242, 244, 249, 260, 261, 273, 275, 276, 277, 278, 280, 283, 285, 288, 290, 291, 299, 300, 301, 302, 303, 304, 305, 310, 312, 313, 315, 316, 320, 325, 328, 329, 330, 331, 332, 346, 347, 348, 355, 356, 358, 364, 365, 374, 375, 382, 383, 395, 410, 411, 416, 439, 453, 454, 455, 461, 472, 512, 515, 521, 529, 535, 538, 539, 544, 545, 577, 592, 596, 599, 605, 619, 660, 678, 679, 681, 682, 687, 688, 689], "suffix": [0, 411], "sock": [0, 549, 550, 552, 553, 554, 555, 556, 557, 559, 560, 561, 562, 641], "tmp": [0, 4, 23], "2ftmp": [0, 641], "2fmongodb": [0, 641], "usernam": [0, 4, 12, 23, 354, 377, 636, 655, 658, 660], "password": [0, 4, 7, 12, 23, 354, 619, 625, 650, 655, 658, 660], "so": [0, 4, 6, 7, 8, 12, 19, 132, 155, 237, 238, 262, 269, 270, 299, 319, 326, 461, 473, 512, 577, 619, 621, 622, 642, 643, 644, 645, 660, 687, 688], "user": [0, 4, 6, 12, 15, 19, 23, 123, 156, 164, 194, 227, 262, 263, 271, 277, 278, 284, 299, 302, 303, 304, 354, 355, 356, 364, 365, 376, 377, 395, 399, 401, 486, 495, 575, 619, 641, 650, 660, 677, 687, 688], "These": [0, 1, 6, 13, 384, 461, 473, 485, 513, 514, 610, 611, 660, 685, 687], "instruct": [0, 12, 19, 397, 687, 688, 689], "ssl": [0, 18, 158, 238, 270, 472, 564, 565], "run": [0, 4, 6, 10, 11, 19, 159, 160, 161, 162, 220, 241, 242, 262, 263, 271, 275, 276, 288, 325, 330, 331, 337, 355, 382, 383, 486, 508, 512, 523, 528, 531, 660, 687, 689], "local": [0, 4, 6, 7, 10, 11, 12, 19, 23, 124, 166, 171, 195, 241, 276, 284, 304, 310, 312, 313, 345, 416, 497, 506, 555, 687], "port": [0, 3, 12, 23, 171, 462, 529, 640, 660, 687], "tlsmode": [0, 4], "requiretl": [0, 4], "tlscertificatekeyfil": [0, 4, 7, 126, 196, 660], "pem": [0, 4, 7, 126, 196, 660], "tlscafil": [0, 4, 7, 126, 196, 660], "ca": [0, 1, 4], "add": [0, 3, 6, 11, 12, 13, 90, 99, 162, 165, 205, 210, 241, 242, 260, 261, 262, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 395, 396, 397, 398, 399, 400, 401, 411, 499, 552, 598, 687, 689], "true": [0, 3, 4, 6, 7, 10, 11, 12, 23, 116, 117, 119, 135, 137, 139, 140, 141, 148, 149, 150, 151, 155, 156, 157, 160, 161, 162, 164, 165, 166, 173, 174, 176, 186, 187, 194, 198, 199, 220, 227, 234, 235, 236, 237, 239, 241, 242, 244, 245, 248, 249, 259, 260, 262, 263, 264, 265, 266, 269, 276, 277, 279, 280, 285, 288, 289, 290, 291, 295, 296, 299, 300, 301, 304, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 332, 336, 337, 345, 348, 350, 351, 354, 355, 357, 358, 363, 373, 374, 375, 376, 377, 383, 385, 386, 388, 395, 396, 397, 398, 399, 400, 401, 406, 407, 409, 415, 417, 418, 422, 424, 435, 440, 441, 446, 459, 461, 476, 481, 482, 490, 494, 496, 506, 508, 512, 524, 541, 543, 546, 548, 565, 581, 586, 593, 594, 619, 633, 635, 638, 641, 642, 643, 644, 645, 650, 651, 652, 653, 654, 660, 663, 666, 667, 669, 673, 674, 687, 688], "end": [0, 5, 7, 18, 156, 158, 250, 417, 418, 420, 442, 472, 578, 660, 687], "null": [0, 1, 3, 6, 9, 10, 11, 12, 13, 21, 23, 24, 37, 48, 59, 123, 130, 131, 135, 137, 139, 141, 149, 151, 153, 154, 156, 160, 161, 162, 163, 166, 167, 175, 177, 185, 188, 189, 190, 194, 199, 200, 201, 205, 207, 209, 210, 211, 212, 213, 218, 219, 220, 223, 224, 225, 230, 231, 232, 239, 240, 241, 242, 244, 245, 248, 249, 250, 252, 260, 261, 262, 263, 264, 273, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 347, 353, 354, 355, 356, 357, 358, 360, 361, 362, 363, 364, 365, 367, 368, 373, 374, 375, 376, 377, 382, 383, 386, 387, 395, 396, 397, 398, 399, 400, 401, 407, 408, 409, 411, 412, 413, 414, 416, 417, 418, 420, 421, 422, 423, 424, 434, 435, 440, 453, 454, 455, 456, 459, 477, 478, 492, 493, 497, 501, 511, 517, 526, 527, 533, 540, 544, 546, 547, 548, 549, 553, 558, 566, 570, 572, 573, 576, 577, 591, 593, 595, 598, 600, 612, 613, 614, 615, 617, 618, 619, 624, 625, 626, 627, 628, 629, 630, 631, 636, 637, 639, 641, 648, 661, 665, 670, 673, 687, 688], "localhost": [0, 1, 3, 4, 6, 7, 12, 23, 119, 156, 329, 337, 381, 401, 416, 460, 511, 616, 619, 621, 622, 641, 648, 650, 660, 687, 688], "requir": [0, 4, 7, 11, 12, 19, 23, 32, 44, 54, 115, 137, 139, 141, 149, 151, 157, 162, 164, 171, 213, 227, 238, 241, 242, 262, 270, 275, 276, 277, 280, 283, 284, 286, 290, 291, 295, 296, 298, 300, 312, 313, 315, 316, 320, 328, 329, 331, 332, 349, 353, 355, 358, 363, 374, 375, 382, 383, 386, 411, 461, 486, 660, 687, 688, 689], "certif": [0, 17, 660], "default": [0, 4, 5, 6, 7, 13, 18, 19, 20, 21, 119, 124, 155, 171, 180, 195, 211, 212, 214, 215, 216, 217, 222, 229, 232, 260, 261, 262, 267, 268, 271, 272, 273, 274, 275, 278, 285, 299, 304, 307, 308, 309, 321, 322, 323, 324, 327, 331, 337, 353, 370, 371, 372, 378, 379, 380, 382, 397, 398, 411, 461, 463, 464, 466, 467, 469, 470, 494, 497, 498, 503, 512, 538, 541, 542, 543, 545, 546, 547, 548, 564, 578, 579, 585, 589, 590, 593, 598, 611, 620, 621, 622, 623, 632, 650, 660, 673, 674, 676, 685, 687], "unless": [0, 7, 12, 23, 131, 277, 322, 355, 378, 565], "tlsallowconnectionswithoutcertif": 0, "provid": [0, 1, 4, 5, 6, 7, 11, 12, 13, 15, 19, 21, 23, 118, 123, 124, 125, 126, 135, 141, 147, 149, 151, 161, 166, 170, 171, 194, 195, 196, 199, 204, 214, 215, 223, 224, 225, 230, 231, 260, 262, 263, 274, 275, 277, 288, 289, 290, 291, 295, 296, 312, 313, 317, 319, 320, 326, 328, 329, 331, 346, 353, 355, 360, 363, 381, 382, 416, 437, 449, 460, 462, 476, 477, 478, 486, 512, 514, 523, 550, 552, 563, 572, 583, 585, 614, 615, 616, 617, 624, 626, 629, 636, 637, 640, 660, 687, 689], "present": [0, 4, 7, 19, 632, 638], "referenc": [0, 19, 421], "through": [0, 4, 7, 12, 15, 19, 120, 121, 237, 238, 270, 271, 284, 301, 352, 354, 357, 398, 474, 687], "constant": [0, 7, 12, 146, 277, 286, 290, 291, 320, 328, 329, 355, 386, 610, 660], "mongoc_uri_tlscertificatekeyfil": [0, 7, 126, 196, 660], "mongoc_uri_set_option_as_utf8": [0, 7, 14, 660], "mongoc_client_new_from_uri": [0, 1, 3, 6, 7, 9, 10, 12, 14, 20, 23, 156, 223, 241, 260, 261, 262, 274, 276, 300, 329, 353, 401, 460, 598, 648, 687], "issu": [0, 4, 5, 7, 243, 660, 687], "trust": [0, 7, 660], "author": [0, 5, 7, 376, 377, 399, 400, 401, 660], "nativ": [0, 4, 17], "store": [0, 4, 7, 156, 161, 220, 283, 288, 298, 325, 357, 461, 483, 556, 687, 688], "omit": [0, 155, 242, 276, 277, 304, 316, 332, 375, 383, 565], "variou": [0, 21, 162, 241, 242, 276, 277, 280, 285, 286, 304, 315, 316, 332, 355, 358, 374, 375, 383, 438, 474, 563, 662], "relat": [0, 3, 13, 18, 194, 460, 490, 663], "3": [0, 1, 3, 4, 6, 11, 12, 19, 21, 23, 137, 139, 141, 149, 151, 162, 241, 242, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 299, 300, 304, 315, 316, 320, 328, 329, 332, 352, 355, 358, 363, 374, 375, 383, 395, 401, 405, 411, 416, 460, 468, 485, 497, 498, 511, 512, 514, 610, 660, 687], "4": [0, 3, 4, 6, 9, 12, 13, 19, 21, 23, 35, 46, 57, 144, 156, 241, 242, 275, 276, 277, 283, 286, 290, 291, 298, 304, 312, 313, 316, 320, 328, 329, 331, 332, 355, 375, 382, 383, 386, 416, 460, 462, 468, 485, 497, 508, 512, 565, 610, 660, 688], "ad": [0, 10, 11, 19, 144, 146, 147, 310, 312, 313, 354, 395, 396, 397, 398, 399, 400, 416, 689], "snappi": [0, 616, 648, 660], "support": [0, 4, 5, 6, 9, 13, 15, 17, 22, 124, 126, 137, 139, 141, 144, 149, 151, 164, 183, 195, 196, 227, 273, 275, 277, 278, 290, 291, 304, 320, 328, 329, 330, 331, 355, 382, 386, 398, 401, 410, 460, 478, 512, 660, 688], "zlib": [0, 616, 648, 660], "6": [0, 19, 23, 173, 176, 283, 397, 401, 416, 485, 497, 565, 660, 686, 687], "zstd": [0, 616, 648, 660], "2": [0, 1, 3, 6, 9, 10, 11, 12, 13, 18, 19, 22, 23, 35, 46, 57, 137, 139, 141, 149, 151, 156, 162, 239, 241, 242, 260, 261, 262, 274, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 299, 300, 304, 315, 316, 320, 328, 329, 332, 337, 352, 353, 355, 358, 363, 374, 375, 383, 386, 395, 398, 401, 405, 411, 416, 442, 460, 475, 476, 477, 478, 485, 497, 498, 511, 514, 546, 565, 598, 610, 660, 687, 688], "compressor": [0, 616, 648, 660], "prioriti": [0, 162, 241, 242, 276, 277, 280, 304, 315, 316, 332, 355, 358, 374, 375, 383], "order": [0, 1, 3, 4, 20, 131, 137, 139, 141, 149, 151, 162, 241, 242, 276, 277, 280, 283, 284, 285, 286, 290, 291, 295, 296, 298, 299, 300, 304, 312, 315, 316, 320, 328, 329, 332, 355, 358, 363, 374, 375, 383, 399, 455, 456, 474, 512, 546, 687], "want": [0, 5, 12, 211, 239, 281, 289, 317, 359, 485, 662, 687, 689], "messag": [0, 1, 3, 6, 9, 10, 12, 13, 21, 23, 34, 45, 56, 144, 156, 164, 210, 215, 219, 227, 236, 239, 241, 260, 261, 262, 274, 275, 276, 277, 279, 282, 283, 284, 286, 290, 291, 296, 298, 299, 300, 304, 312, 313, 320, 328, 329, 331, 337, 353, 355, 368, 382, 386, 395, 396, 397, 398, 399, 400, 401, 416, 420, 460, 511, 546, 548, 598, 660, 687, 688], "share": [0, 5, 8, 19, 660, 687, 688], "common": [0, 7, 12, 14, 16, 17, 353, 687], "note": [0, 1, 4, 6, 7, 12, 18, 19, 21, 158, 176, 235, 346, 352, 355, 398, 400, 401, 420, 472, 512, 577, 627], "might": [0, 4, 12, 13, 194, 345], "same": [0, 1, 4, 13, 19, 22, 132, 143, 154, 194, 204, 238, 275, 282, 284, 331, 347, 382, 400, 416, 460, 486, 512, 548, 551, 660, 681, 683, 684, 688], "send": [0, 6, 13, 23, 76, 96, 125, 162, 171, 241, 242, 243, 276, 277, 280, 315, 316, 332, 355, 358, 374, 375, 383, 461, 560, 561, 660, 688], "possibl": [0, 5, 6, 7, 10, 15, 19, 154, 279, 352, 398, 415, 685, 688], "still": [0, 213, 288, 395, 401, 512, 621, 622, 660, 686], "repli": [0, 3, 5, 6, 9, 12, 13, 23, 33, 55, 85, 131, 153, 156, 160, 161, 162, 174, 220, 241, 242, 249, 260, 261, 262, 263, 276, 277, 278, 279, 280, 283, 288, 290, 291, 298, 299, 300, 301, 302, 303, 304, 312, 313, 315, 316, 320, 325, 328, 329, 330, 332, 337, 346, 347, 355, 356, 357, 358, 365, 374, 375, 383, 385, 386, 395, 396, 397, 398, 399, 400, 401, 485, 514, 546, 598, 687, 688], "depend": [0, 3, 17, 19, 20, 486, 660, 688, 689], "how": [0, 1, 5, 6, 10, 12, 13, 19, 23, 236, 241, 260, 266, 276, 283, 298, 299, 473, 485, 498, 512, 660, 681, 687, 688, 689], "wa": [0, 1, 6, 8, 10, 13, 19, 20, 33, 90, 99, 131, 153, 155, 185, 194, 201, 207, 213, 232, 235, 236, 237, 238, 242, 245, 249, 251, 256, 259, 260, 262, 269, 270, 296, 298, 316, 337, 348, 353, 354, 375, 388, 389, 401, 402, 403, 404, 481, 483, 484, 496, 514, 518, 519, 532, 554, 559, 565, 610, 614, 629, 633, 635, 638, 676, 688], "built": [0, 5, 13, 15, 19, 164, 227, 273, 585, 660], "unknown": [0, 3, 13, 337, 353, 460, 536, 597], "compil": [0, 4, 5, 7, 10, 12, 19, 21, 23, 238, 270, 402, 403, 404, 461, 476, 662, 687], "valu": [0, 1, 4, 7, 12, 21, 118, 125, 132, 154, 162, 165, 173, 176, 179, 180, 183, 186, 194, 198, 205, 210, 232, 237, 241, 242, 262, 269, 275, 276, 277, 280, 283, 284, 295, 296, 298, 303, 304, 315, 316, 319, 331, 332, 342, 343, 355, 358, 363, 365, 368, 374, 375, 382, 383, 386, 391, 395, 396, 397, 399, 400, 401, 402, 403, 404, 417, 418, 460, 461, 462, 464, 467, 468, 470, 479, 480, 481, 482, 483, 484, 508, 512, 518, 519, 525, 544, 546, 562, 565, 577, 579, 590, 620, 621, 622, 623, 632, 646, 647, 648, 649, 651, 652, 653, 654, 660, 668, 671, 672, 680, 681, 683, 684, 685, 687, 688], "ignor": [0, 7, 242, 245, 282, 283, 284, 296, 298, 304, 316, 375, 395, 468, 512, 565, 577, 593, 660, 685], "build": [0, 1, 4, 7, 9, 11, 17, 23, 145, 213, 241, 244, 276, 277, 300, 346, 347, 350, 355, 468, 660, 688, 689], "cmake": [0, 4, 5, 7, 18, 19, 688, 689], "12": [0, 687], "higher": [0, 17, 213, 244, 346, 347], "full": [0, 330, 409, 478, 485, 660], "found": [0, 5, 12, 13, 156, 244, 296, 304, 310, 313, 337, 365, 453, 454, 455, 514, 687], "doc": [0, 1, 3, 6, 10, 12, 19, 23, 156, 260, 261, 262, 274, 299, 304, 337, 353, 365, 416, 511, 546, 598, 687], "descript": [0, 7, 19, 63, 64, 104, 105, 126, 196, 219, 225, 231, 268, 379, 497, 535, 537, 592], "so_keepal": 0, "tcp": [0, 271], "keep": [0, 5, 19, 229, 552, 688], "aliv": 0, "tcp_keepidl": 0, "long": [0, 235, 386, 398, 401, 660, 681], "need": [0, 4, 6, 8, 19, 20, 123, 155, 194, 206, 208, 262, 275, 299, 331, 382, 443, 444, 445, 447, 448, 565, 581, 660, 681, 687], "remain": [0, 1, 10, 234, 238, 264, 265, 270, 271, 386, 396, 399, 400, 461, 483, 565, 577, 619], "idl": [0, 20, 229, 261, 273, 485, 538, 545], "befor": [0, 4, 6, 18, 19, 20, 21, 90, 99, 145, 155, 158, 165, 198, 234, 235, 236, 238, 241, 242, 261, 262, 270, 273, 275, 276, 277, 283, 284, 292, 298, 299, 300, 304, 316, 318, 319, 331, 332, 345, 350, 351, 375, 382, 383, 416, 460, 461, 464, 467, 470, 472, 473, 490, 538, 545, 565, 578, 589, 590, 617, 660, 663, 666, 667, 669, 671, 672, 678, 679, 681, 683, 684, 687, 689], "start": [0, 3, 4, 6, 7, 11, 12, 13, 17, 19, 20, 49, 80, 92, 148, 149, 150, 151, 154, 241, 259, 260, 261, 262, 263, 273, 275, 276, 331, 355, 382, 442, 538, 542, 544, 545, 546, 547, 548, 598, 610], "keepal": 0, "probe": 0, "120": [0, 262, 411], "second": [0, 1, 3, 6, 8, 19, 23, 156, 260, 262, 512, 598, 660], "tcp_keepintvl": 0, "time": [0, 3, 6, 8, 10, 13, 19, 20, 156, 234, 246, 247, 261, 262, 264, 271, 273, 274, 275, 304, 331, 352, 382, 398, 449, 473, 485, 512, 532, 534, 538, 545, 548, 559, 560, 561, 601, 606, 660, 687], "tcp_keepcnt": 0, "mani": [0, 13, 283, 298], "without": [0, 5, 7, 12, 19, 23, 117, 119, 156, 162, 241, 242, 243, 262, 276, 280, 308, 315, 316, 332, 354, 358, 374, 375, 383, 460, 660, 688], "acknowledg": [0, 272, 285, 324, 380, 660, 673, 685], "drop": [0, 1, 3, 18, 276, 295, 296, 318, 319, 332, 345, 363, 383, 422], "9": [0, 4, 19, 298, 496, 678, 679, 680, 681, 682, 683, 684, 687], "tcp_nodelai": 0, "packet": [0, 5, 21, 485], "soon": [0, 8], "buffer": [0, 6, 271, 345, 487, 488, 559, 560, 561, 566, 567, 569, 571, 575, 578, 585, 588, 589, 623], "small": 0, "nagl": 0, "algorithm": [0, 125, 179, 180, 183, 688], "option": [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689], "document": [1, 3, 4, 10, 12, 13, 17, 20, 33, 118, 124, 126, 128, 129, 131, 134, 135, 136, 137, 138, 139, 140, 141, 142, 146, 148, 149, 150, 151, 153, 155, 156, 160, 162, 165, 166, 171, 174, 186, 187, 188, 194, 195, 196, 198, 199, 205, 206, 208, 210, 214, 241, 242, 245, 248, 249, 250, 252, 254, 259, 260, 261, 262, 273, 275, 276, 277, 278, 279, 280, 282, 283, 284, 286, 288, 289, 290, 291, 295, 296, 298, 299, 300, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 327, 328, 329, 330, 331, 332, 334, 337, 338, 345, 346, 347, 348, 349, 351, 352, 353, 355, 356, 357, 358, 360, 363, 364, 365, 368, 374, 375, 382, 383, 386, 389, 392, 393, 395, 397, 399, 400, 401, 410, 411, 413, 414, 416, 417, 418, 432, 461, 468, 473, 476, 478, 490, 502, 508, 512, 513, 514, 528, 531, 538, 545, 548, 598, 605, 611, 616, 624, 627, 660, 663, 688], "number": [1, 5, 6, 12, 32, 34, 44, 45, 54, 56, 132, 145, 146, 169, 171, 228, 229, 232, 275, 277, 278, 282, 283, 284, 286, 290, 291, 298, 299, 311, 320, 328, 329, 331, 338, 339, 341, 349, 350, 351, 353, 355, 356, 382, 386, 439, 451, 486, 487, 488, 489, 513, 525, 537, 559, 560, 561, 578, 579, 585, 589, 590, 660, 687], "practic": [1, 7, 12, 460, 688], "displai": [1, 19], "capabl": [1, 514], "publicli": 1, "avail": [1, 3, 4, 5, 6, 7, 13, 18, 19, 35, 46, 57, 119, 154, 155, 228, 240, 284, 305, 395, 416, 497, 511, 512, 561, 593, 594, 648, 660, 687], "all": [1, 3, 4, 5, 6, 7, 8, 10, 12, 18, 19, 20, 21, 32, 44, 54, 131, 135, 141, 142, 144, 146, 147, 149, 151, 156, 158, 163, 164, 175, 188, 199, 205, 210, 219, 226, 227, 229, 232, 238, 250, 260, 264, 270, 277, 278, 285, 286, 290, 291, 296, 298, 299, 303, 304, 311, 312, 313, 320, 328, 329, 335, 341, 349, 351, 352, 355, 356, 360, 361, 365, 367, 368, 376, 387, 399, 401, 410, 416, 422, 452, 456, 459, 460, 472, 475, 485, 492, 501, 511, 512, 513, 527, 553, 565, 569, 570, 575, 588, 591, 592, 613, 624, 643, 650, 660, 665, 687, 688, 689], "zipcod": 1, "unit": 1, "json": [1, 11, 125, 156, 241, 276, 300, 619, 688], "let": [1, 10, 146, 277, 286, 290, 291, 304, 320, 328, 329, 355, 386], "": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 19, 20, 21, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51, 52, 53, 54, 55, 56, 58, 59, 61, 62, 63, 64, 65, 67, 68, 69, 72, 73, 74, 75, 78, 79, 82, 83, 84, 85, 87, 88, 89, 103, 104, 105, 106, 108, 109, 111, 112, 119, 153, 156, 157, 159, 160, 161, 162, 171, 199, 205, 210, 219, 234, 239, 241, 242, 246, 247, 252, 255, 260, 261, 262, 264, 271, 274, 276, 279, 280, 282, 283, 284, 285, 288, 295, 296, 298, 299, 300, 301, 302, 303, 304, 310, 312, 313, 315, 316, 319, 329, 330, 332, 337, 338, 346, 347, 350, 353, 356, 357, 358, 360, 363, 364, 365, 368, 374, 375, 383, 386, 395, 396, 397, 398, 399, 400, 401, 405, 410, 416, 437, 442, 460, 478, 511, 512, 523, 525, 529, 530, 532, 534, 546, 548, 551, 578, 589, 590, 593, 594, 596, 598, 606, 607, 608, 609, 618, 619, 623, 630, 631, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 676, 685, 687, 688, 689], "check": [1, 2, 4, 5, 7, 8, 10, 14, 17, 19, 76, 80, 86, 96, 97, 98, 153, 159, 160, 161, 205, 259, 277, 278, 279, 296, 299, 302, 303, 304, 336, 337, 346, 347, 355, 356, 357, 365, 373, 424, 476, 486, 506, 512, 554, 660, 685, 687], "everyth": [1, 6], "instal": [1, 4, 5, 7, 11, 14, 17, 689], "command": [1, 4, 9, 11, 13, 17, 19, 26, 27, 32, 33, 35, 38, 39, 40, 44, 46, 49, 50, 54, 57, 60, 76, 80, 86, 96, 97, 98, 117, 120, 121, 135, 137, 139, 141, 144, 149, 151, 156, 159, 160, 161, 162, 188, 205, 210, 220, 241, 242, 243, 248, 262, 275, 276, 277, 278, 279, 280, 283, 284, 285, 286, 288, 290, 291, 295, 296, 298, 300, 302, 303, 305, 312, 313, 315, 316, 319, 320, 325, 326, 328, 329, 330, 331, 332, 346, 347, 352, 355, 356, 357, 358, 360, 363, 364, 365, 368, 374, 375, 376, 377, 382, 383, 386, 394, 401, 411, 413, 414, 417, 418, 460, 490, 513, 516, 522, 523, 528, 531, 534, 660, 663, 685, 688], "load": [1, 7, 11, 13, 37, 48, 59, 119, 185, 207, 213, 660, 688], "mongoimport": 1, "d": [1, 3, 5, 22, 156, 386, 395, 396, 397, 398, 399, 400, 401, 473, 485, 513, 514, 611, 621], "test": [1, 3, 6, 9, 10, 12, 13, 19, 22, 23, 241, 261, 274, 276, 300, 353, 381, 385, 416, 460, 468, 546, 548, 660, 673, 675, 676, 687, 688], "mongodb": [1, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 18, 21, 22, 23, 26, 37, 38, 48, 49, 59, 60, 91, 92, 93, 119, 137, 139, 141, 144, 149, 150, 151, 156, 158, 162, 164, 204, 205, 206, 208, 209, 210, 211, 213, 219, 223, 227, 238, 239, 241, 242, 260, 261, 262, 267, 268, 270, 272, 274, 275, 276, 277, 280, 281, 282, 283, 284, 286, 288, 290, 291, 295, 296, 298, 299, 300, 303, 304, 312, 313, 315, 316, 319, 320, 323, 324, 326, 328, 329, 330, 331, 332, 333, 337, 338, 340, 346, 347, 349, 352, 353, 355, 358, 360, 363, 365, 368, 373, 374, 375, 379, 380, 381, 382, 383, 386, 395, 401, 411, 416, 420, 439, 440, 441, 449, 459, 460, 462, 468, 472, 473, 478, 485, 486, 494, 497, 498, 508, 510, 511, 512, 513, 523, 525, 528, 531, 546, 548, 565, 577, 593, 594, 596, 598, 611, 616, 618, 619, 621, 622, 630, 631, 632, 638, 641, 642, 643, 644, 645, 648, 650, 656, 657, 659, 660, 662, 674, 682, 685, 686, 688, 689], "shell": [1, 10, 19, 23, 687], "verifi": [1, 7, 687], "import": [1, 7, 11, 19, 21, 687], "successfulli": [1, 19, 60, 213, 237, 262, 265, 269, 296, 337, 354, 395, 396, 397, 398, 399, 400, 461, 468, 651, 652, 653, 654, 660, 687], "connect": [1, 3, 4, 7, 9, 12, 13, 14, 16, 17, 19, 22, 23, 35, 37, 46, 48, 57, 59, 66, 94, 100, 107, 119, 211, 213, 214, 215, 219, 223, 228, 238, 239, 265, 270, 274, 275, 323, 331, 337, 353, 379, 382, 460, 461, 497, 512, 523, 525, 528, 531, 535, 552, 565, 593, 594, 596, 621, 641, 649, 685, 688, 689], "db": [1, 6, 9, 10, 22, 122, 125, 156, 193, 206, 211, 212, 219, 241, 275, 276, 296, 329, 337, 346, 347, 382, 411, 416, 660, 687], "count": [1, 6, 8, 12, 131, 241, 282, 284, 298, 315, 374, 578, 589], "29467": 1, "findon": 1, "_id": [1, 3, 6, 10, 12, 13, 22, 156, 182, 260, 261, 262, 275, 284, 304, 310, 312, 313, 321, 329, 331, 382, 395, 396, 397, 399, 400, 401, 429, 546, 598, 687], "35004": 1, "acmar": 1, "loc": 1, "86": 1, "51557": 1, "33": 1, "584132": 1, "pop": [1, 270], "6055": 1, "al": 1, "each": [1, 5, 6, 8, 12, 20, 124, 146, 156, 162, 195, 205, 213, 234, 241, 242, 262, 264, 275, 276, 277, 278, 280, 286, 290, 291, 302, 303, 315, 316, 320, 328, 329, 331, 332, 349, 355, 358, 364, 365, 374, 375, 382, 383, 386, 396, 436, 486, 503, 509, 512, 528, 531, 546, 547, 548, 598, 660, 687, 689], "collect": [1, 3, 6, 9, 10, 12, 13, 22, 23, 118, 120, 121, 122, 125, 131, 156, 164, 166, 174, 186, 187, 188, 193, 199, 206, 208, 212, 227, 242, 260, 261, 262, 267, 272, 274, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 337, 345, 346, 347, 353, 355, 360, 363, 364, 365, 366, 367, 368, 373, 375, 378, 379, 380, 386, 395, 396, 397, 398, 399, 400, 401, 410, 411, 461, 468, 497, 511, 512, 546, 548, 598, 685, 687, 688], "form": [1, 12, 13, 23, 126, 196], "In": [1, 4, 6, 7, 8, 12, 13, 19, 23, 156, 162, 241, 242, 262, 276, 277, 280, 283, 284, 296, 298, 302, 303, 304, 315, 316, 332, 355, 358, 364, 365, 374, 375, 383, 437, 460, 486, 512, 653, 660, 673], "field": [1, 6, 7, 9, 12, 13, 14, 16, 17, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 140, 141, 148, 149, 150, 151, 156, 159, 162, 164, 192, 193, 195, 196, 198, 199, 204, 205, 210, 227, 241, 242, 275, 276, 277, 278, 280, 283, 284, 290, 291, 295, 296, 298, 299, 300, 303, 304, 312, 313, 315, 316, 319, 320, 321, 328, 329, 331, 332, 337, 355, 356, 358, 360, 363, 365, 368, 373, 374, 375, 382, 383, 386, 389, 401, 455, 456, 461, 464, 467, 470, 547, 598, 687], "hold": [1, 11, 25, 239, 521, 535, 660, 687], "two": [1, 3, 6, 8, 11, 15, 19, 23, 241, 260, 276, 512, 598, 688, 689], "letter": 1, "abbrevi": 1, "locat": [1, 19, 119, 131, 135, 137, 139, 153, 155, 160, 161, 162, 171, 209, 210, 212, 213, 220, 225, 231, 241, 242, 244, 245, 248, 249, 260, 262, 263, 276, 279, 280, 282, 283, 284, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 321, 325, 327, 328, 329, 330, 332, 336, 337, 348, 354, 357, 358, 360, 362, 363, 364, 367, 368, 373, 374, 375, 376, 377, 383, 422, 424, 435, 440, 453, 454, 455, 459, 468, 477, 641], "latitud": 1, "longitud": 1, "arrai": [1, 6, 12, 13, 22, 119, 149, 151, 169, 185, 207, 219, 277, 290, 291, 310, 311, 312, 313, 320, 327, 328, 329, 355, 367, 368, 439, 451, 537, 592, 687], "get": [1, 12, 19, 131, 186, 187, 188, 201, 206, 208, 211, 218, 252, 254, 255, 256, 257, 262, 365, 485, 528, 530, 531, 532, 534, 555, 671, 672, 687, 688], "greater": [1, 12, 157, 246, 247, 660], "pipelin": [1, 6, 156, 275, 277, 327, 328, 329, 331, 346, 347, 355, 382, 548], "aggregation1": 1, "stdio": [1, 3, 6, 9, 10, 12, 23, 239, 241, 260, 261, 262, 274, 276, 279, 282, 283, 284, 298, 299, 300, 304, 353, 416, 460, 478, 598, 687, 688], "static": [1, 3, 6, 10, 11, 156, 239, 277, 279, 282, 283, 284, 298, 299, 304, 355, 511, 619, 662, 687, 688], "void": [1, 3, 6, 10, 12, 21, 23, 24, 25, 28, 30, 41, 51, 61, 65, 67, 69, 72, 74, 78, 82, 87, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 106, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 134, 136, 138, 140, 142, 143, 144, 145, 146, 148, 150, 152, 156, 158, 163, 167, 168, 169, 170, 171, 175, 177, 178, 179, 180, 181, 182, 183, 190, 191, 192, 193, 194, 195, 196, 200, 202, 219, 226, 228, 229, 233, 234, 238, 239, 243, 246, 247, 250, 255, 262, 263, 264, 267, 268, 270, 271, 272, 274, 279, 282, 283, 284, 292, 298, 299, 300, 304, 322, 323, 324, 329, 335, 337, 340, 349, 352, 361, 378, 379, 380, 386, 387, 389, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 408, 421, 423, 434, 443, 444, 445, 447, 448, 460, 462, 463, 464, 466, 467, 468, 469, 470, 471, 472, 475, 479, 480, 482, 486, 487, 488, 489, 492, 495, 499, 501, 508, 509, 510, 511, 516, 517, 522, 527, 537, 540, 545, 546, 547, 548, 553, 559, 560, 562, 564, 565, 570, 578, 580, 589, 591, 600, 605, 606, 607, 608, 609, 613, 656, 657, 659, 662, 665, 677, 678, 679, 680, 681, 682, 683, 684, 687, 688], "print_pipelin": 1, "mongoc_collection_t": [1, 2, 3, 6, 10, 12, 14, 17, 20, 23, 156, 206, 260, 261, 262, 274, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 337, 353, 360, 366, 381, 386, 395, 396, 397, 398, 399, 400, 401, 457, 458, 511, 546, 548, 598, 687, 688], "mongoc_cursor_t": [1, 2, 10, 12, 14, 17, 20, 159, 188, 205, 261, 273, 274, 277, 278, 292, 299, 302, 303, 304, 329, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 355, 356, 364, 365, 410, 416, 437, 511, 538, 545, 687], "cursor": [1, 5, 12, 13, 14, 16, 17, 155, 159, 160, 205, 243, 261, 274, 275, 277, 278, 299, 302, 303, 304, 329, 331, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 364, 365, 382, 398, 416, 485, 511, 514, 548, 687], "bson_error_t": [1, 3, 6, 9, 10, 12, 13, 23, 30, 74, 131, 135, 137, 139, 141, 149, 151, 153, 156, 160, 161, 162, 164, 165, 166, 173, 174, 176, 186, 187, 188, 189, 194, 198, 199, 209, 210, 212, 213, 219, 220, 225, 227, 231, 237, 239, 241, 242, 244, 245, 248, 249, 260, 261, 262, 263, 269, 273, 274, 276, 277, 278, 279, 280, 282, 283, 284, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 321, 325, 327, 328, 329, 330, 332, 336, 337, 353, 354, 355, 356, 357, 358, 360, 362, 363, 364, 365, 367, 368, 373, 374, 375, 376, 377, 383, 386, 395, 396, 397, 398, 399, 400, 401, 407, 409, 411, 412, 413, 414, 415, 416, 417, 418, 422, 424, 435, 440, 446, 453, 454, 455, 459, 460, 468, 477, 511, 546, 598, 641, 687, 688], "error": [1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 14, 17, 19, 21, 23, 30, 33, 74, 125, 143, 153, 155, 156, 159, 161, 164, 165, 166, 173, 174, 176, 180, 183, 186, 187, 188, 189, 194, 198, 199, 213, 219, 223, 224, 225, 227, 230, 231, 234, 235, 236, 237, 239, 244, 245, 248, 249, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 274, 275, 277, 278, 287, 293, 294, 299, 304, 314, 318, 331, 333, 334, 346, 347, 348, 350, 353, 355, 356, 362, 382, 385, 386, 395, 396, 397, 398, 399, 400, 401, 406, 407, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 420, 439, 441, 446, 451, 452, 456, 460, 461, 468, 485, 486, 490, 511, 514, 516, 523, 546, 548, 554, 581, 586, 598, 639, 641, 660, 663, 685, 687, 688], "const": [1, 3, 6, 9, 10, 12, 21, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 68, 69, 71, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 84, 85, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 111, 112, 118, 119, 122, 124, 125, 126, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 144, 145, 146, 148, 149, 150, 151, 153, 154, 155, 156, 159, 160, 161, 162, 165, 166, 170, 171, 173, 174, 176, 179, 181, 182, 183, 185, 186, 187, 193, 194, 195, 196, 198, 199, 201, 205, 206, 207, 208, 210, 212, 216, 217, 219, 221, 222, 223, 224, 225, 230, 231, 235, 237, 238, 239, 241, 242, 244, 246, 248, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 265, 267, 268, 269, 270, 272, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 294, 295, 297, 298, 299, 300, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 337, 338, 339, 341, 344, 347, 348, 353, 354, 355, 356, 357, 358, 360, 363, 364, 365, 366, 368, 369, 370, 371, 372, 373, 374, 375, 377, 378, 379, 380, 382, 383, 385, 386, 388, 389, 390, 391, 392, 393, 396, 397, 399, 400, 401, 405, 407, 409, 410, 411, 412, 413, 414, 416, 417, 418, 425, 427, 428, 429, 431, 432, 438, 443, 444, 445, 446, 447, 448, 451, 452, 453, 454, 455, 456, 459, 460, 461, 463, 466, 468, 469, 471, 476, 477, 478, 479, 481, 484, 486, 487, 488, 491, 493, 496, 499, 500, 502, 503, 504, 505, 506, 508, 511, 515, 518, 519, 520, 524, 526, 528, 529, 530, 531, 532, 533, 534, 536, 539, 541, 542, 543, 544, 547, 550, 552, 560, 562, 564, 565, 573, 592, 593, 594, 595, 597, 598, 599, 601, 602, 603, 604, 607, 608, 609, 612, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 664, 666, 667, 668, 669, 670, 671, 672, 673, 675, 676, 682, 687, 688], "bson_t": [1, 3, 6, 9, 10, 11, 12, 13, 23, 33, 39, 55, 85, 118, 119, 124, 125, 126, 128, 129, 131, 134, 135, 136, 137, 138, 139, 140, 141, 146, 148, 149, 150, 151, 153, 154, 155, 156, 159, 160, 161, 162, 165, 171, 174, 186, 187, 194, 195, 196, 198, 199, 201, 205, 210, 213, 219, 220, 239, 241, 242, 246, 248, 249, 252, 254, 260, 261, 262, 263, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 286, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, 301, 303, 304, 305, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 334, 337, 346, 347, 348, 353, 354, 355, 356, 357, 358, 360, 362, 363, 364, 365, 368, 374, 375, 382, 383, 385, 386, 389, 392, 393, 395, 396, 397, 398, 399, 400, 401, 410, 411, 413, 414, 416, 417, 418, 425, 432, 438, 443, 448, 452, 453, 455, 456, 460, 468, 476, 477, 478, 490, 499, 502, 505, 508, 511, 528, 531, 546, 548, 598, 616, 619, 624, 627, 646, 647, 650, 651, 652, 653, 654, 663, 687, 688], "str": [1, 6, 10, 12, 23, 261, 262, 274, 279, 299, 300, 304, 337, 353, 386, 395, 396, 397, 398, 399, 400, 401, 416, 444, 445, 447, 478, 511, 687, 688], "bcon_new": [1, 3, 6, 9, 12, 23, 156, 219, 241, 260, 261, 262, 276, 277, 279, 283, 284, 298, 299, 300, 304, 329, 337, 355, 386, 395, 396, 397, 398, 399, 400, 401, 478, 511, 546, 598, 687, 688], "group": [1, 356], "total_pop": 1, "sum": [1, 12], "gte": [1, 6, 22, 478], "bcon_int32": [1, 3, 6, 23, 156, 219, 260, 261, 262, 299, 300, 304, 329, 386, 395, 396, 398, 401, 546, 598, 687, 688], "10000000": 1, "mongoc_collection_aggreg": [1, 14, 326, 346, 347, 548], "mongoc_query_non": [1, 12, 277, 282, 284, 299, 485, 548, 687], "while": [1, 8, 10, 12, 13, 19, 135, 137, 139, 141, 149, 151, 156, 194, 239, 260, 261, 263, 274, 299, 304, 336, 337, 353, 365, 416, 435, 437, 441, 451, 460, 478, 486, 511, 512, 598, 660, 687], "mongoc_cursor_next": [1, 10, 12, 13, 14, 155, 159, 261, 274, 277, 278, 299, 302, 303, 304, 329, 333, 337, 345, 351, 352, 353, 355, 356, 364, 365, 416, 511, 687], "bson_as_canonical_extended_json": [1, 3, 6, 10, 12, 23, 156, 241, 274, 276, 279, 299, 300, 304, 353, 386, 395, 396, 397, 398, 399, 400, 401, 416, 478, 511, 619, 687, 688], "printf": [1, 3, 6, 9, 10, 12, 23, 156, 210, 219, 241, 260, 262, 276, 279, 282, 283, 284, 296, 298, 299, 300, 304, 329, 365, 368, 386, 395, 396, 397, 398, 399, 400, 401, 416, 460, 478, 511, 598, 619, 687, 688], "n": [1, 3, 5, 6, 9, 10, 12, 23, 156, 210, 219, 239, 241, 260, 261, 262, 274, 276, 279, 282, 283, 284, 296, 298, 299, 300, 304, 329, 337, 346, 347, 353, 365, 368, 386, 395, 396, 397, 398, 399, 400, 401, 416, 460, 478, 511, 537, 546, 548, 592, 598, 619, 660, 685, 687, 688], "bson_fre": [1, 3, 6, 9, 10, 12, 23, 156, 241, 260, 261, 262, 274, 276, 279, 299, 300, 304, 314, 329, 337, 353, 386, 395, 396, 397, 398, 399, 400, 401, 416, 478, 511, 555, 598, 619, 661, 687, 688], "mongoc_cursor_error": [1, 10, 12, 13, 14, 159, 205, 261, 274, 299, 303, 304, 337, 346, 347, 348, 353, 365, 511], "fprintf": [1, 3, 6, 9, 10, 12, 23, 156, 210, 239, 241, 261, 274, 276, 279, 282, 283, 284, 296, 298, 299, 300, 304, 329, 337, 353, 365, 368, 386, 395, 396, 397, 398, 399, 400, 401, 416, 460, 511, 546, 548, 687, 688], "stderr": [1, 3, 5, 6, 9, 10, 12, 21, 23, 156, 210, 239, 241, 261, 274, 276, 279, 282, 283, 284, 296, 298, 299, 300, 304, 329, 337, 353, 365, 368, 386, 395, 396, 397, 398, 399, 400, 401, 416, 460, 511, 546, 548, 648, 687, 688], "failur": [1, 5, 13, 131, 173, 176, 194, 199, 209, 210, 212, 220, 237, 242, 260, 261, 262, 263, 269, 274, 276, 277, 278, 279, 282, 283, 284, 285, 286, 289, 298, 299, 300, 301, 302, 303, 304, 310, 311, 312, 313, 316, 320, 321, 327, 328, 329, 332, 333, 337, 346, 347, 353, 354, 355, 356, 357, 360, 365, 367, 368, 375, 383, 411, 412, 413, 414, 439, 442, 451, 461, 477, 524, 549, 550, 551, 552, 557, 559, 560, 561, 562, 569, 572, 573, 578, 579, 588, 589, 590, 639, 641, 685, 687], "mongoc_cursor_destroi": [1, 10, 12, 14, 159, 261, 274, 277, 278, 299, 302, 303, 304, 333, 337, 353, 355, 356, 364, 365, 410, 416, 511, 687], "bson_destroi": [1, 3, 6, 9, 10, 12, 23, 131, 156, 160, 162, 165, 174, 186, 219, 220, 239, 241, 242, 249, 260, 261, 262, 274, 276, 277, 279, 280, 283, 284, 288, 290, 291, 298, 299, 300, 301, 304, 312, 313, 315, 316, 320, 325, 328, 329, 330, 332, 337, 353, 355, 358, 365, 368, 374, 375, 383, 386, 395, 396, 397, 398, 399, 400, 401, 416, 460, 468, 478, 511, 598, 650, 687, 688], "uri_str": [1, 3, 6, 9, 156, 223, 239, 241, 260, 261, 262, 274, 276, 300, 329, 337, 353, 401, 416, 460, 598, 639, 641, 687], "appnam": [1, 3, 6, 9, 235, 239, 241, 260, 261, 262, 265, 274, 276, 300, 329, 337, 353, 401, 416, 460, 511, 546, 548, 598, 660, 687, 688], "mongoc_uri_new_with_error": [1, 3, 6, 9, 10, 12, 14, 23, 156, 239, 241, 260, 261, 262, 274, 276, 300, 329, 353, 401, 460, 598, 639, 660, 687], "pars": [1, 3, 6, 9, 10, 12, 17, 23, 156, 162, 239, 241, 260, 261, 262, 274, 276, 280, 300, 329, 353, 358, 401, 460, 598, 641, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 687, 688], "exit_failur": [1, 3, 6, 9, 10, 12, 23, 156, 239, 241, 260, 261, 262, 274, 276, 300, 329, 353, 401, 416, 460, 598, 687, 688], "mongoc_client_set_error_api": [1, 3, 6, 9, 10, 12, 13, 14, 23, 241, 260, 261, 262, 274, 276, 296, 300, 329, 337, 353, 401, 460, 511, 546, 548, 598], "mongoc_client_get_collect": [1, 3, 6, 10, 14, 156, 261, 274, 296, 300, 329, 337, 353, 468, 511, 546, 548, 687, 688], "mongoc_uri_destroi": [1, 3, 6, 9, 10, 12, 14, 23, 156, 239, 241, 260, 261, 262, 274, 276, 300, 329, 353, 401, 460, 598, 612, 640, 660, 687], "mongoc_collection_destroi": [1, 3, 6, 10, 12, 14, 23, 156, 206, 260, 261, 262, 274, 281, 296, 300, 326, 329, 337, 353, 366, 401, 468, 511, 598, 687, 688], "exit_success": [1, 3, 6, 9, 10, 12, 156, 239, 241, 260, 261, 262, 274, 276, 300, 329, 353, 401, 416, 460, 598, 687, 688], "you": [1, 3, 4, 5, 10, 11, 12, 13, 18, 19, 20, 21, 22, 23, 25, 158, 162, 205, 210, 211, 212, 239, 241, 242, 274, 276, 277, 280, 281, 283, 284, 285, 286, 288, 289, 290, 291, 295, 296, 298, 299, 303, 304, 310, 312, 313, 315, 316, 317, 319, 320, 328, 329, 332, 348, 355, 358, 359, 363, 365, 368, 374, 375, 383, 386, 443, 444, 445, 447, 448, 452, 453, 454, 455, 456, 460, 472, 473, 474, 485, 486, 494, 497, 512, 521, 529, 546, 552, 553, 560, 611, 660, 662, 674, 680, 681, 685, 687, 688, 689], "pa": 1, "11881643": 1, "oh": 1, "10847115": 1, "ny": [1, 511, 512], "17990455": 1, "fl": 1, "12937284": 1, "tx": 1, "16986510": 1, "il": 1, "11430472": 1, "29760021": 1, "abov": [1, 6, 19, 21, 660, 689], "from": [1, 4, 5, 6, 7, 8, 10, 11, 12, 13, 15, 17, 20, 23, 35, 46, 57, 71, 77, 81, 118, 119, 125, 143, 154, 155, 156, 160, 162, 163, 170, 192, 198, 205, 210, 213, 226, 228, 229, 232, 233, 235, 238, 239, 240, 241, 242, 243, 246, 247, 251, 260, 261, 262, 265, 267, 268, 270, 272, 273, 274, 275, 276, 277, 280, 282, 284, 286, 288, 290, 291, 292, 295, 296, 298, 299, 303, 304, 307, 309, 312, 313, 315, 316, 319, 320, 323, 324, 326, 328, 329, 331, 332, 337, 341, 345, 346, 347, 348, 350, 352, 353, 355, 356, 358, 360, 363, 365, 368, 374, 375, 377, 379, 380, 381, 382, 383, 385, 386, 407, 409, 410, 411, 412, 417, 418, 420, 439, 440, 442, 449, 459, 473, 478, 485, 486, 494, 508, 512, 513, 514, 520, 538, 545, 547, 548, 565, 566, 571, 577, 578, 598, 627, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 674, 685, 688, 689], "oper": [1, 3, 5, 8, 12, 13, 14, 16, 17, 20, 23, 32, 44, 54, 91, 92, 93, 119, 128, 129, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 156, 159, 160, 161, 162, 164, 201, 205, 209, 210, 213, 227, 241, 244, 246, 247, 252, 255, 260, 261, 262, 263, 267, 268, 272, 273, 275, 277, 278, 279, 280, 282, 283, 284, 285, 286, 298, 299, 302, 303, 304, 305, 307, 308, 309, 312, 315, 319, 322, 323, 324, 326, 331, 337, 339, 350, 353, 355, 356, 357, 358, 364, 365, 367, 368, 374, 378, 379, 380, 382, 384, 385, 386, 398, 399, 401, 407, 409, 410, 411, 417, 418, 424, 452, 453, 454, 455, 456, 461, 473, 478, 485, 496, 508, 512, 513, 538, 545, 546, 548, 560, 571, 610, 611, 660, 666, 678, 679, 680, 681, 682, 683, 684, 685, 688, 689], "where": [1, 6, 13, 18, 118, 125, 156, 205, 241, 276, 283, 688], "we": [1, 6, 12, 19, 23, 132, 145, 156, 261, 262, 339, 350, 353, 416, 461, 486, 532, 687, 688], "gener": [1, 7, 12, 13, 17, 170, 194, 241, 243, 296, 310, 312, 313, 315, 374, 413, 414, 417, 418, 449, 460, 486, 487, 488, 489, 512, 530, 569, 585, 588, 685, 687, 689], "composit": 1, "function": [1, 4, 5, 8, 9, 10, 11, 12, 15, 18, 20, 21, 23, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 123, 128, 129, 131, 132, 134, 136, 138, 140, 144, 145, 146, 148, 149, 150, 151, 154, 155, 158, 159, 160, 161, 162, 194, 205, 209, 210, 212, 213, 214, 215, 220, 228, 229, 230, 231, 232, 233, 234, 235, 236, 238, 240, 241, 242, 244, 248, 253, 260, 262, 265, 266, 267, 268, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 281, 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 302, 303, 304, 305, 310, 311, 313, 314, 315, 316, 317, 318, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 333, 336, 337, 339, 344, 345, 346, 347, 348, 350, 351, 352, 354, 355, 356, 357, 358, 360, 362, 363, 364, 365, 367, 368, 370, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 386, 396, 398, 399, 400, 409, 410, 419, 420, 421, 424, 436, 439, 450, 452, 453, 454, 455, 456, 461, 464, 467, 470, 472, 476, 490, 496, 499, 500, 531, 536, 547, 549, 550, 551, 552, 553, 554, 557, 559, 562, 566, 568, 569, 570, 571, 573, 575, 576, 577, 578, 579, 580, 583, 588, 589, 590, 593, 594, 597, 607, 608, 609, 619, 621, 627, 630, 633, 639, 641, 653, 663, 678, 679, 680, 681, 682, 683, 684, 687], "addtoset": 1, "last": [1, 246, 247, 262, 305, 424, 485, 512, 532, 554, 660, 687], "max": [1, 13, 156, 214, 215, 278, 299, 304, 411, 557, 601, 606], "min": [1, 304], "avg": 1, "push": [1, 163, 226, 229, 660], "syntax": [1, 299, 304, 688], "read": [1, 12, 13, 15, 155, 156, 159, 160, 161, 162, 205, 209, 210, 213, 216, 217, 241, 242, 244, 260, 261, 267, 268, 274, 275, 276, 277, 278, 279, 280, 282, 283, 284, 298, 299, 302, 303, 304, 307, 308, 315, 316, 322, 323, 331, 332, 337, 345, 348, 350, 353, 355, 356, 357, 358, 364, 365, 367, 368, 371, 374, 375, 378, 379, 381, 382, 383, 409, 410, 411, 412, 417, 418, 420, 439, 452, 453, 454, 455, 456, 460, 490, 492, 493, 494, 495, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 508, 509, 510, 511, 543, 546, 547, 548, 559, 571, 577, 578, 579, 593, 598, 607, 608, 621, 626, 627, 628, 656, 657, 688], "queri": [1, 4, 5, 6, 10, 12, 13, 22, 32, 44, 54, 120, 121, 137, 139, 141, 149, 151, 159, 176, 183, 209, 210, 220, 239, 241, 261, 274, 276, 282, 283, 284, 289, 290, 291, 298, 299, 300, 301, 304, 317, 320, 327, 328, 329, 333, 337, 341, 345, 351, 352, 353, 386, 395, 396, 397, 398, 399, 400, 401, 410, 437, 452, 453, 455, 456, 460, 476, 477, 478, 485, 514, 660, 687, 688], "process": [1, 5, 10, 18, 19, 21, 117, 119, 158, 243, 285, 441, 451, 472, 532, 551, 564, 688], "4866692": 1, "sourc": [1, 11, 13, 19, 162, 241, 242, 260, 262, 276, 277, 280, 304, 315, 316, 332, 355, 358, 374, 375, 383, 417, 418, 479, 598, 688], "pipe": [1, 22], "equal": [1, 22, 157, 183, 296, 503, 509, 660], "three": 1, "greatest": 1, "per": [1, 8, 338, 349, 512, 685], "avg_city_pop": 1, "sort": [1, 6, 241, 276, 284, 299, 300, 304, 392, 401, 455, 456, 460], "limit": [1, 8, 12, 23, 159, 232, 262, 278, 282, 283, 284, 289, 298, 299, 304, 317, 347, 349, 351, 356, 660], "produc": [1, 13, 19, 619], "dc": [1, 511, 512], "303450": 1, "27942": 1, "29805615551": 1, "27735": 1, "341099720412": 1, "wy": 1, "smoot": 1, "414": 1, "t": [1, 6, 10, 11, 12, 23, 238, 260, 262, 265, 270, 386, 397, 398, 401, 461, 512, 598, 687], "nest": 1, "except": [1, 12, 18, 20, 23, 158, 235, 238, 239, 240, 262, 304, 472, 512, 579, 660, 685], "descend": [1, 304, 314, 399, 401], "final": [1, 3, 10, 19, 345, 689], "initi": [2, 4, 13, 14, 17, 19, 102, 113, 119, 131, 158, 162, 166, 173, 176, 213, 220, 241, 242, 249, 262, 265, 271, 276, 277, 278, 279, 280, 283, 288, 298, 299, 300, 301, 302, 303, 304, 315, 316, 320, 325, 330, 332, 346, 347, 353, 355, 356, 357, 358, 364, 365, 374, 375, 383, 389, 392, 393, 460, 461, 464, 467, 470, 472, 474, 480, 532, 566, 619, 638, 660, 687], "cleanup": [2, 5, 12, 14, 17, 19, 23, 156, 243, 300, 416], "log": [2, 14, 17, 18, 34, 45, 56, 144, 158, 223, 224, 230, 234, 235, 236, 264, 265, 266, 275, 277, 283, 286, 290, 291, 298, 312, 313, 320, 328, 329, 331, 350, 355, 382, 386, 395, 397, 398, 420, 446, 461, 472, 490, 648, 660, 663, 678, 679, 680, 681, 682, 683, 684, 687, 688], "report": [2, 4, 6, 14, 17, 135, 137, 139, 141, 149, 151, 236, 266, 687], "object": [2, 8, 14, 15, 17, 123, 125, 185, 194, 226, 262, 300, 301, 348, 381, 460, 497, 512, 529, 685, 687, 688], "lifecycl": [2, 14, 17], "gridf": [2, 13, 14, 17, 212, 406, 407, 409, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 425, 426, 428, 429, 430, 431, 432, 433, 436, 437, 438, 441, 443, 444, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 577], "mongoc_auto_encryption_opts_t": [2, 14, 17, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 164, 176, 227, 688], "mongoc_bulk_operation_t": [2, 6, 12, 14, 17, 20, 23, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 285, 286], "mongoc_change_stream_t": [2, 14, 17, 20, 152, 153, 154, 155, 261, 273, 275, 331, 382, 538, 545], "mongoc_client_encryption_t": [2, 14, 17, 20, 165, 166, 173, 174, 175, 176, 185, 186, 187, 188, 189, 192, 198, 199, 688], "mongoc_client_encryption_datakey_opts_t": [2, 14, 17, 166, 167, 168, 169, 170, 171, 688], "mongoc_client_encryption_rewrap_many_datakey_result_t": [2, 14, 17, 199, 200, 201, 202], "mongoc_client_encryption_encrypt_opts_t": [2, 14, 17, 176, 177, 178, 179, 180, 181, 182, 183, 688], "mongoc_client_encryption_opts_t": [2, 14, 17, 189, 190, 191, 192, 193, 194, 195, 196, 688], "mongoc_client_pool_t": [2, 8, 14, 17, 20, 121, 163, 192, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 265, 267, 268, 270, 272, 274, 461, 565, 660, 687], "mongoc_client_session_t": [2, 14, 17, 20, 143, 162, 205, 210, 241, 242, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, 273, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 680], "mongoc_client_session_with_transaction_cb_t": [2, 14, 17, 262], "mongoc_database_t": [2, 6, 9, 12, 14, 17, 20, 23, 208, 211, 260, 262, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 401, 411, 416, 598, 687], "mongoc_delete_flags_t": [2, 14, 17, 289], "mongoc_find_and_modify_opts_t": [2, 14, 17, 301, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400], "mongoc_gridfs_file_list_t": [2, 14, 17, 20, 434, 435, 436, 449, 452, 456, 460], "mongoc_gridfs_file_opt_t": [2, 14, 17, 419, 420, 449, 460], "mongoc_gridfs_file_t": [2, 14, 15, 17, 20, 419, 420, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 450, 451, 453, 454, 455, 460, 577], "mongoc_gridfs_bucket_t": [2, 14, 15, 17, 20, 407, 408, 409, 410, 411, 412, 413, 414, 417, 418, 460], "mongoc_gridfs_t": [2, 14, 15, 17, 20, 212, 416, 419, 420, 421, 422, 449, 452, 453, 454, 455, 456, 457, 458, 459], "mongoc_host_list_t": [2, 14, 17, 31, 43, 53, 62, 68, 75, 79, 84, 88, 274, 340, 529, 618], "mongoc_index_opt_geo_t": [2, 14, 17, 463, 464, 468, 471], "mongoc_index_opt_t": [2, 14, 17, 287, 288, 297, 465, 466, 467, 471], "mongoc_index_opt_wt_t": [2, 14, 17, 465, 468, 469, 470], "mongoc_insert_flags_t": [2, 14, 17, 310, 311], "mongoc_iovec_t": [2, 14, 17, 439, 451, 460, 561, 579, 590], "mongoc_matcher_t": [2, 14, 17, 475, 476, 477], "mongoc_optional_t": [2, 14, 17, 479, 480, 481, 482, 484, 518, 519], "mongoc_query_flags_t": [2, 14, 17, 159, 277, 278, 282, 284, 299, 356], "mongoc_rand": [2, 14, 17], "mongoc_read_concern_t": [2, 14, 17, 162, 216, 241, 242, 260, 267, 276, 277, 280, 282, 283, 284, 298, 304, 307, 315, 316, 322, 355, 358, 368, 370, 374, 375, 378, 411, 490, 491, 492, 493, 494, 495, 496, 598, 602, 607, 626, 656], "mongoc_read_mode_t": [2, 14, 17, 504, 507, 510], "mongoc_read_prefs_t": [2, 3, 12, 13, 14, 17, 159, 160, 161, 162, 217, 220, 241, 242, 244, 261, 268, 274, 276, 277, 278, 279, 280, 282, 283, 284, 298, 299, 304, 308, 315, 316, 323, 325, 355, 356, 357, 358, 371, 374, 375, 379, 411, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 593, 603, 608, 628, 657], "mongoc_remove_flags_t": [2, 14, 17, 317], "mongoc_reply_flags_t": [2, 14, 17], "mongoc_server_api_t": [2, 14, 17, 237, 269, 483, 515, 516, 517, 518, 519, 520, 521, 522], "mongoc_server_api_version_t": [2, 14, 17, 520, 521, 523, 524, 526], "mongoc_server_description_t": [2, 3, 14, 17, 63, 64, 70, 90, 95, 99, 213, 218, 219, 244, 527, 528, 529, 530, 531, 532, 533, 534, 536, 537, 592], "mongoc_session_opt_t": [2, 14, 17, 20, 256, 260, 261, 273, 539, 540, 541, 542, 543, 545, 546, 547, 548, 598], "mongoc_socket_t": [2, 14, 17, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 582, 583], "mongoc_ssl_opt_t": [2, 4, 14, 17, 238, 270, 564], "mongoc_stream_buffered_t": [2, 14, 17, 566, 576, 585], "mongoc_stream_file_t": [2, 14, 17, 571, 572, 573, 585], "mongoc_stream_socket_t": [2, 14, 17, 582, 583, 585], "mongoc_stream_t": [2, 14, 15, 17, 20, 271, 274, 406, 409, 412, 413, 414, 415, 416, 417, 418, 420, 460, 474, 566, 567, 568, 569, 570, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 583, 584, 586, 587, 588, 589, 590], "mongoc_stream_tls_t": [2, 14, 17, 576, 585], "mongoc_topology_description_t": [2, 3, 14, 17, 101, 102, 104, 105, 110, 113, 591, 592, 593, 594, 595, 597], "mongoc_transaction_opt_t": [2, 14, 17, 162, 205, 210, 241, 242, 260, 262, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 542, 544, 547, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_transaction_state_t": [2, 14, 17, 258], "mongoc_update_flags_t": [2, 14, 17, 327], "version": [2, 7, 9, 12, 14, 17, 18, 19, 22, 23, 117, 118, 123, 157, 162, 171, 180, 183, 185, 194, 207, 236, 237, 241, 242, 266, 269, 275, 276, 279, 280, 288, 296, 298, 300, 304, 315, 316, 331, 332, 346, 347, 358, 374, 375, 382, 383, 400, 401, 405, 461, 468, 475, 476, 477, 478, 496, 497, 516, 520, 521, 522, 523, 524, 526, 548, 565, 678, 679, 680, 681, 682, 683, 684, 687, 688], "mongoc_write_concern_t": [2, 6, 14, 17, 133, 156, 162, 222, 241, 242, 260, 272, 274, 276, 277, 280, 285, 286, 288, 289, 290, 291, 295, 296, 300, 309, 310, 311, 312, 313, 316, 317, 319, 320, 321, 324, 327, 328, 329, 332, 355, 358, 363, 371, 372, 375, 380, 383, 386, 398, 401, 411, 546, 598, 604, 609, 637, 659, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 688], "execut": [3, 6, 8, 9, 17, 18, 38, 49, 60, 80, 91, 97, 120, 121, 128, 129, 131, 136, 137, 138, 139, 140, 141, 144, 146, 147, 148, 149, 150, 151, 159, 161, 162, 201, 241, 242, 260, 276, 277, 278, 279, 280, 282, 283, 284, 285, 286, 298, 299, 302, 303, 304, 305, 315, 316, 330, 332, 333, 337, 339, 341, 346, 350, 353, 355, 356, 358, 364, 365, 374, 375, 383, 398, 410, 453, 455, 456, 546, 680, 689], "event": [3, 8, 19, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 156, 234, 264, 275, 331, 382], "notif": [3, 25, 26, 38, 49, 60, 66, 70, 76, 80, 86, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 107, 110, 113, 234, 264, 275, 331, 382], "conform": [3, 15, 199, 460, 596], "spec": [3, 6, 244, 300, 416, 460, 478, 536, 597], "server": [3, 4, 5, 6, 8, 9, 13, 19, 22, 23, 31, 33, 34, 35, 36, 43, 45, 46, 47, 53, 56, 57, 58, 62, 66, 68, 70, 75, 76, 79, 80, 84, 86, 88, 90, 94, 95, 96, 97, 98, 99, 100, 101, 107, 110, 118, 125, 131, 132, 145, 149, 150, 151, 153, 156, 159, 160, 161, 162, 205, 206, 208, 209, 210, 213, 214, 215, 218, 219, 220, 239, 241, 242, 244, 245, 249, 254, 257, 262, 263, 265, 270, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 288, 289, 290, 291, 295, 296, 298, 299, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 322, 323, 325, 327, 328, 329, 330, 331, 332, 333, 335, 337, 338, 339, 341, 345, 346, 347, 349, 350, 352, 354, 355, 356, 357, 358, 363, 364, 365, 368, 373, 374, 375, 376, 377, 378, 379, 382, 383, 386, 398, 420, 422, 439, 440, 441, 459, 461, 462, 468, 473, 478, 485, 512, 514, 521, 523, 525, 527, 528, 529, 530, 531, 532, 534, 535, 536, 537, 548, 557, 592, 593, 594, 596, 597, 610, 611, 671, 672, 681, 682, 683, 684, 685, 687], "discoveri": [3, 536, 597], "And": [3, 213, 536, 597], "logic": [3, 13, 156, 162, 241, 242, 244, 248, 254, 262, 275, 276, 280, 315, 316, 331, 332, 358, 374, 375, 382, 383, 512], "receiv": [3, 5, 6, 7, 8, 13, 26, 27, 30, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 65, 68, 69, 74, 75, 79, 84, 85, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 109, 112, 156, 219, 234, 249, 255, 262, 263, 264, 275, 304, 331, 382, 407, 409, 412, 413, 414, 415, 417, 418, 535, 559, 592, 596, 660, 685], "mongoc_apm_callbacks_t": [3, 14, 17, 24, 25, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 234, 264], "mongoc_apm_callbacks_new": [3, 14, 26], "set": [3, 4, 7, 10, 11, 12, 19, 20, 26, 115, 117, 119, 120, 121, 122, 123, 131, 135, 137, 139, 141, 143, 149, 151, 153, 155, 156, 160, 161, 162, 164, 165, 166, 169, 170, 171, 172, 173, 174, 176, 180, 183, 184, 186, 187, 188, 189, 192, 193, 194, 197, 198, 199, 201, 205, 209, 210, 212, 219, 220, 227, 228, 229, 234, 235, 236, 237, 238, 241, 242, 245, 249, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 274, 275, 276, 277, 279, 280, 282, 283, 284, 286, 288, 289, 290, 291, 295, 296, 298, 299, 300, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 336, 337, 342, 343, 345, 346, 347, 348, 351, 352, 354, 355, 357, 358, 360, 363, 364, 365, 367, 368, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 386, 389, 390, 391, 392, 393, 401, 406, 407, 409, 410, 413, 414, 415, 417, 418, 422, 424, 435, 438, 440, 442, 443, 444, 445, 446, 447, 448, 452, 453, 454, 455, 456, 459, 460, 461, 473, 477, 481, 482, 483, 484, 485, 493, 494, 496, 497, 508, 509, 510, 511, 514, 516, 518, 519, 522, 523, 546, 547, 548, 550, 551, 552, 556, 557, 558, 559, 560, 561, 562, 565, 568, 569, 572, 573, 575, 578, 579, 580, 588, 589, 590, 593, 598, 611, 619, 620, 621, 622, 623, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 666, 668, 669, 670, 674, 676, 678, 679, 680, 681, 682, 683, 684, 685, 687, 688, 689], "callback": [3, 24, 25, 26, 27, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 75, 79, 84, 85, 88, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 105, 123, 194, 234, 262, 263, 264, 271, 535, 596], "mongoc_client_set_apm_callback": [3, 14, 26, 28, 41, 51, 61, 67, 72, 78, 82, 87, 103, 108, 111, 274], "mongoc_client_pool_set_apm_callback": [3, 14, 26, 28, 41, 51, 61, 67, 72, 78, 82, 87, 103, 108, 111, 239], "gcc": [3, 9, 10, 12, 19, 23, 239, 241, 260, 261, 262, 274, 276, 353, 461, 598, 687], "o": [3, 7, 9, 10, 12, 22, 23, 239, 241, 260, 261, 262, 274, 276, 353, 461, 474, 486, 579, 593, 594, 598, 687], "pkg": [3, 9, 10, 12, 19, 23, 239, 241, 260, 261, 262, 274, 276, 353, 598], "config": [3, 9, 10, 12, 19, 23, 239, 241, 260, 261, 262, 274, 276, 353, 514, 598], "cflag": [3, 9, 10, 12, 23, 239, 241, 260, 261, 262, 274, 276, 353, 461, 598, 687], "lib": [3, 9, 10, 12, 23, 239, 241, 260, 261, 262, 274, 276, 353, 598, 687, 689], "libmongoc": [3, 4, 7, 9, 10, 12, 13, 14, 16, 20, 23, 123, 156, 157, 164, 194, 204, 227, 239, 241, 242, 253, 260, 261, 262, 274, 276, 316, 353, 375, 402, 403, 404, 405, 414, 418, 598, 660, 688], "connection_str": [3, 9, 239, 241, 260, 261, 262, 274, 276, 353, 598, 687], "typedef": [3, 21, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 127, 147, 156, 172, 184, 194, 197, 203, 204, 239, 262, 263, 274, 326, 353, 381, 384, 416, 437, 438, 449, 460, 462, 465, 468, 471, 473, 474, 478, 485, 498, 513, 514, 535, 538, 563, 565, 567, 574, 584, 585, 587, 596, 598, 610, 611, 660], "struct": [3, 7, 20, 25, 115, 127, 147, 156, 172, 184, 197, 203, 204, 219, 238, 239, 261, 262, 270, 273, 274, 281, 326, 353, 359, 381, 416, 437, 438, 449, 460, 462, 465, 468, 471, 474, 478, 483, 496, 521, 522, 535, 537, 538, 539, 545, 550, 552, 556, 563, 565, 567, 574, 584, 585, 587, 592, 596, 598, 599, 607, 608, 609, 660, 678, 679, 680, 681, 682, 683, 684, 687], "succeed": [3, 60, 86, 407, 409, 417, 418, 687], "stats_t": 3, "command_start": 3, "mongoc_apm_command_started_t": [3, 14, 17, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 92], "bson_as_relaxed_extended_json": [3, 156, 329], "mongoc_apm_command_started_get_command": [3, 14, 49], "mongoc_apm_command_started_get_command_nam": [3, 14, 49], "mongoc_apm_command_started_get_host": [3, 14, 49], "mongoc_apm_command_started_get_context": [3, 14, 49], "command_succeed": 3, "mongoc_apm_command_succeeded_t": [3, 14, 17, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 93], "mongoc_apm_command_succeeded_get_repli": [3, 14, 60], "mongoc_apm_command_succeeded_get_command_nam": [3, 14, 60], "mongoc_apm_command_succeeded_get_context": [3, 14, 60], "command_fail": 3, "mongoc_apm_command_failed_t": [3, 14, 17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 91], "mongoc_apm_command_failed_get_error": [3, 14, 38], "mongoc_apm_command_failed_get_command_nam": [3, 14, 38], "mongoc_apm_command_failed_get_context": [3, 14, 38], "stat": [3, 5, 279], "127": [3, 9, 239, 241, 260, 261, 262, 274, 276, 300, 353, 460, 598, 687], "cmd": [3, 241, 276, 279], "collection_nam": [3, 9, 12, 23, 274, 299, 304, 353], "mongoc_apm_set_command_started_cb": [3, 14, 26], "mongoc_apm_set_command_succeeded_cb": [3, 14, 26], "mongoc_apm_set_command_failed_cb": [3, 14, 26], "context": [3, 28, 35, 41, 51, 61, 67, 72, 78, 82, 87, 103, 108, 111, 234, 262, 264], "pointer": [3, 28, 41, 51, 61, 67, 72, 78, 82, 87, 103, 108, 111, 123, 170, 185, 194, 207, 234, 248, 255, 264, 271, 300, 312, 337, 442, 463, 466, 469, 490, 494, 524, 585, 623, 663, 674], "mongoc_collection_drop": [3, 14, 326, 329, 401, 688], "mongoc_collection_insert_mani": [3, 14, 310, 311, 313, 326], "duplic": [3, 6, 13, 468, 685], "kei": [3, 4, 6, 7, 9, 12, 13, 20, 118, 120, 121, 122, 124, 125, 126, 140, 141, 148, 149, 150, 151, 165, 166, 169, 170, 171, 174, 181, 182, 186, 187, 188, 192, 193, 195, 196, 198, 199, 204, 241, 276, 284, 287, 288, 297, 314, 468, 508, 512, 616, 660, 685, 687, 688], "insert": [3, 5, 8, 10, 12, 13, 22, 23, 134, 135, 141, 149, 151, 156, 166, 176, 206, 208, 241, 260, 262, 276, 286, 310, 311, 312, 313, 321, 326, 329, 332, 383, 397, 416, 473, 546, 598, 660, 688], "mongoc_collection_insert_on": [3, 13, 14, 156, 260, 262, 276, 310, 312, 321, 326, 329, 332, 383, 546, 598, 687, 688], "mongoc_apm_callbacks_destroi": [3, 14, 25, 26], "nsucceed": 3, "nfail": 3, "program": [3, 5, 8, 12, 17, 18, 19, 20, 22, 23, 158, 239, 267, 268, 270, 272, 277, 278, 285, 286, 299, 302, 303, 304, 314, 333, 355, 356, 365, 472, 486, 639, 641], "print": [3, 11, 13, 21, 299, 300, 304, 337, 687], "nindexeswa": 3, "ok": [3, 12, 23, 241, 276, 337, 346, 347, 395, 396, 397, 399, 400, 401, 687], "writeerror": [3, 6, 290, 291, 312, 313, 320, 328, 329], "index": [3, 6, 13, 16, 17, 117, 137, 139, 141, 149, 151, 176, 179, 180, 183, 287, 288, 290, 291, 294, 295, 296, 297, 302, 303, 314, 320, 328, 329, 386, 463, 465, 466, 468, 469, 471, 688], "code": [3, 6, 12, 13, 18, 19, 21, 23, 128, 129, 162, 205, 209, 210, 214, 215, 220, 241, 242, 248, 250, 260, 262, 276, 277, 280, 282, 283, 284, 285, 286, 287, 288, 290, 291, 295, 296, 297, 298, 299, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 319, 320, 321, 325, 328, 329, 330, 332, 337, 346, 355, 358, 363, 364, 365, 367, 368, 374, 375, 383, 384, 385, 386, 411, 453, 454, 455, 468, 474, 490, 531, 538, 540, 545, 598, 619, 627, 630, 633, 663, 687, 688, 689], "11000": [3, 6], "errmsg": [3, 6, 337], "output": [3, 10, 12, 19, 144, 194, 242, 275, 277, 283, 286, 290, 291, 298, 301, 312, 313, 316, 320, 328, 329, 331, 355, 375, 382, 386, 395, 396, 397, 399, 400, 401, 619, 688], "been": [3, 5, 19, 20, 120, 121, 154, 213, 214, 215, 226, 232, 252, 253, 255, 259, 261, 273, 299, 334, 335, 345, 424, 435, 482, 489, 494, 496, 497, 502, 505, 514, 538, 545, 552, 554, 586, 610, 619, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 670, 674, 678, 679, 680, 681, 682, 683, 684, 685, 687], "edit": [3, 4, 689], "format": [3, 7, 17, 21, 124, 171, 195, 400, 405, 687], "clariti": 3, "your": [3, 4, 5, 7, 8, 11, 13, 17, 18, 19, 20, 21, 158, 274, 310, 312, 313, 460, 472, 473, 486, 512, 552, 611, 660, 682, 688, 689], "metadata": [3, 4, 413, 414, 417, 418, 432, 438, 448, 449, 458], "databas": [3, 4, 6, 12, 23, 42, 122, 159, 160, 161, 162, 164, 193, 205, 206, 208, 209, 210, 211, 212, 227, 239, 241, 242, 260, 262, 267, 272, 276, 280, 315, 316, 318, 319, 332, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 401, 411, 497, 512, 598, 617, 649, 660, 685, 687, 688], "session": [3, 4, 11, 13, 143, 162, 205, 210, 241, 242, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 273, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 538, 539, 541, 542, 543, 544, 545, 546, 547, 548, 598, 610], "id": [3, 4, 5, 32, 34, 35, 36, 37, 44, 45, 46, 47, 48, 54, 56, 57, 58, 59, 65, 69, 89, 106, 109, 112, 131, 132, 145, 161, 162, 165, 205, 210, 213, 218, 241, 242, 248, 250, 254, 257, 262, 276, 277, 280, 283, 284, 295, 296, 298, 303, 304, 315, 316, 319, 332, 339, 341, 346, 347, 350, 355, 358, 363, 365, 368, 374, 375, 383, 407, 409, 412, 413, 414, 417, 418, 429, 446, 460, 530], "cluster": [3, 37, 48, 59, 213, 214, 215, 246, 274, 508, 512, 660, 687, 688], "shown": 3, "here": [3, 10, 12, 19, 275, 304, 331, 382, 512, 563], "consid": [3, 5, 7, 12, 21, 131, 159, 160, 161, 162, 205, 209, 210, 241, 242, 275, 276, 277, 278, 279, 280, 282, 283, 284, 289, 298, 299, 300, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 320, 321, 327, 328, 329, 331, 332, 355, 356, 357, 358, 364, 365, 367, 368, 374, 375, 382, 383, 409, 410, 452, 453, 454, 455, 456, 512, 567, 584, 621, 622, 660, 685, 687], "despit": [3, 260], "becaus": [3, 12, 13, 229, 345], "overal": [3, 6, 100, 107], "server_changed_ev": 3, "server_opening_ev": 3, "server_closed_ev": 3, "topology_changed_ev": 3, "topology_opening_ev": 3, "topology_closed_ev": 3, "heartbeat_started_ev": 3, "heartbeat_succeeded_ev": 3, "heartbeat_failed_ev": 3, "server_chang": 3, "mongoc_apm_server_changed_t": [3, 14, 17, 61, 62, 63, 64, 65, 94], "prev_sd": 3, "new_sd": 3, "mongoc_apm_server_changed_get_context": [3, 14, 66], "mongoc_apm_server_changed_get_previous_descript": [3, 14, 66], "mongoc_apm_server_changed_get_new_descript": [3, 14, 66], "mongoc_apm_server_changed_get_host": [3, 14, 66], "host_and_port": [3, 12, 23, 219, 462], "mongoc_server_description_typ": [3, 14, 213, 535], "server_open": 3, "mongoc_apm_server_opening_t": [3, 14, 17, 87, 88, 89, 99], "mongoc_apm_server_opening_get_context": [3, 14, 90], "open": [3, 5, 8, 10, 19, 90, 113, 156, 412, 413, 414, 416, 551, 573, 581, 689], "mongoc_apm_server_opening_get_host": [3, 14, 90], "server_clos": 3, "mongoc_apm_server_closed_t": [3, 14, 17, 67, 68, 69, 95], "mongoc_apm_server_closed_get_context": [3, 14, 70], "close": [3, 13, 20, 70, 110, 229, 261, 273, 409, 417, 418, 485, 538, 545, 551, 559, 568], "mongoc_apm_server_closed_get_host": [3, 14, 70], "topology_chang": 3, "mongoc_apm_topology_changed_t": [3, 14, 17, 100, 103, 104, 105, 106], "prev_td": 3, "new_td": 3, "size_t": [3, 156, 219, 312, 439, 451, 537, 559, 560, 561, 566, 578, 579, 589, 590, 592, 687, 688], "n_prev_sd": 3, "n_new_sd": 3, "pref": [3, 244, 274, 337, 353, 506, 593, 657, 688], "mongoc_apm_topology_changed_get_context": [3, 14, 107], "mongoc_apm_topology_changed_get_previous_descript": [3, 14, 107], "mongoc_topology_description_get_serv": [3, 14, 596], "mongoc_apm_topology_changed_get_new_descript": [3, 14, 107], "topologi": [3, 8, 65, 69, 89, 100, 101, 106, 107, 109, 110, 112, 113, 218, 219, 591, 592, 593, 594, 597, 660], "mongoc_topology_description_typ": [3, 14, 596], "previou": [3, 8, 11, 64, 105, 243, 345, 546], "mongoc_server_description_host": [3, 14, 219, 535], "new": [3, 5, 7, 8, 13, 15, 25, 63, 90, 99, 104, 115, 117, 118, 123, 128, 129, 154, 166, 168, 170, 171, 178, 180, 183, 189, 191, 194, 199, 202, 209, 212, 214, 215, 220, 223, 224, 225, 229, 230, 231, 237, 239, 246, 247, 262, 269, 271, 282, 284, 285, 286, 287, 288, 297, 299, 300, 302, 304, 311, 318, 319, 320, 321, 325, 328, 329, 330, 345, 346, 352, 354, 360, 364, 366, 367, 384, 396, 400, 401, 411, 413, 414, 416, 417, 418, 419, 420, 438, 468, 477, 497, 507, 521, 531, 539, 544, 545, 558, 566, 572, 573, 577, 583, 599, 605, 627, 630, 633, 640, 646, 647, 649, 651, 652, 653, 654, 655, 658, 660, 687, 688, 689], "mongoc_read_prefs_new": [3, 12, 14, 241, 261, 276, 304, 511, 512], "mongoc_read_secondari": [3, 12, 241, 261, 276, 304, 498, 511, 512], "safe": [3, 8, 11, 204, 205, 209, 210, 226, 228, 229, 232, 233, 239, 240, 241, 262, 274, 275, 277, 282, 283, 284, 296, 298, 299, 302, 303, 304, 315, 319, 331, 353, 355, 364, 365, 367, 368, 374, 382, 409, 410, 416, 441, 449, 451, 452, 453, 454, 455, 456, 460, 571, 660, 687], "unfortun": 3, "necessari": [3, 6, 8, 19, 261, 271, 299, 535, 688], "cast": 3, "awai": 3, "mongoc_topology_description_has_readable_serv": [3, 14, 596], "secondari": [3, 8, 12, 261, 485, 503, 509, 512, 660], "els": [3, 6, 8, 12, 23, 156, 210, 241, 260, 262, 276, 279, 282, 283, 284, 296, 298, 368, 386, 395, 396, 397, 398, 399, 400, 401, 460, 474, 478, 511, 541, 578, 598, 619, 687], "unavail": [3, 512, 660], "mongoc_topology_description_has_writable_serv": [3, 14, 596], "primari": [3, 8, 13, 162, 171, 241, 244, 260, 261, 268, 276, 277, 280, 304, 315, 323, 355, 358, 374, 379, 460, 512, 594, 598, 660], "mongoc_read_prefs_destroi": [3, 12, 14, 241, 261, 276, 500, 507, 511, 512], "mongoc_server_descriptions_destroy_al": [3, 14, 219, 535, 592], "topology_open": 3, "mongoc_apm_topology_opening_t": [3, 14, 17, 102, 111, 112], "mongoc_apm_topology_opening_get_context": [3, 14, 113], "topology_clos": 3, "mongoc_apm_topology_closed_t": [3, 14, 17, 101, 108, 109], "mongoc_apm_topology_closed_get_context": [3, 14, 110], "server_heartbeat_start": 3, "mongoc_apm_server_heartbeat_started_t": [3, 14, 17, 77, 78, 79, 97], "mongoc_apm_server_heartbeat_started_get_context": [3, 14, 80], "heartbeat": [3, 71, 76, 77, 80, 81, 86], "mongoc_apm_server_heartbeat_started_get_host": [3, 14, 80], "server_heartbeat_succeed": 3, "mongoc_apm_server_heartbeat_succeeded_t": [3, 14, 17, 81, 82, 83, 84, 85, 98], "mongoc_apm_server_heartbeat_succeeded_get_context": [3, 14, 86], "mongoc_apm_server_heartbeat_succeeded_get_repli": [3, 14, 86], "mongoc_apm_server_heartbeat_succeeded_get_host": [3, 14, 86], "server_heartbeat_fail": 3, "mongoc_apm_server_heartbeat_failed_t": [3, 14, 17, 71, 72, 73, 74, 75, 96], "mongoc_apm_server_heartbeat_failed_get_context": [3, 14, 76], "mongoc_apm_server_heartbeat_failed_get_error": [3, 14, 76], "mongoc_apm_server_heartbeat_failed_get_host": [3, 14, 76], "cb": [3, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 262, 263], "bson_initi": [3, 6, 10, 12, 156, 239, 260, 365, 368, 386, 395, 396, 397, 398, 399, 400, 401, 511, 546, 548, 598, 650, 687, 688], "mongoc_apm_set_server_changed_cb": [3, 14, 26], "mongoc_apm_set_server_opening_cb": [3, 14, 26], "mongoc_apm_set_server_closed_cb": [3, 14, 26], "mongoc_apm_set_topology_changed_cb": [3, 14, 26], "mongoc_apm_set_topology_opening_cb": [3, 14, 26], "mongoc_apm_set_topology_closed_cb": [3, 14, 26], "mongoc_apm_set_server_heartbeat_started_cb": [3, 14, 26], "mongoc_apm_set_server_heartbeat_succeeded_cb": [3, 14, 26], "mongoc_apm_set_server_heartbeat_failed_cb": [3, 14, 26], "demand": [3, 8, 123, 194, 687], "bson_append_int32": [3, 9, 239, 386, 396, 397, 398, 399, 401, 460, 687], "buildinfo": 3, "mongoc_client_command_simpl": [3, 14, 162, 219, 239, 241, 242, 274, 276, 280, 358, 685, 687, 688], "admin": [3, 4, 239, 355, 401, 660, 687], "replica": [3, 10, 12, 13, 205, 209, 210, 219, 241, 268, 274, 275, 276, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 323, 331, 355, 364, 365, 367, 368, 374, 379, 382, 409, 410, 452, 453, 454, 455, 456, 460, 485, 512, 593, 685, 687], "r": [3, 9, 10, 156, 219, 239, 260, 261, 296, 460, 546, 548, 598, 660, 687], "27018": [3, 12, 23, 156, 641], "replicasetnoprimari": [3, 597], "rsprimari": [3, 536], "27019": [3, 156, 641], "replicasetwithprimari": [3, 597], "rssecondari": [3, 536], "were": [3, 20, 154, 512, 560, 565, 616, 618, 687], "determin": [3, 4, 13, 155, 348, 353, 399, 593, 594, 660, 688], "also": [3, 4, 6, 7, 8, 11, 12, 17, 18, 19, 156, 198, 235, 243, 262, 263, 319, 330, 345, 351, 460, 512, 523, 548, 565, 643, 649, 655, 658, 660, 687, 688, 689], "discov": [3, 8, 660], "third": [3, 6], "cover": [4, 512], "ensur": [4, 5, 7, 19, 219, 234, 238, 246, 247, 264, 271, 346, 347, 506, 687, 688], "properli": [4, 299], "make": [4, 6, 13, 17, 19, 21, 241, 276, 284, 400, 401, 416, 420, 506, 512, 565, 660, 689], "secur": [4, 118, 125, 170, 486, 688], "sever": [4, 19, 156, 449, 687], "mechan": [4, 486], "By": [4, 6, 7, 20, 261, 273, 327, 538, 545, 611, 660, 685], "an": [4, 5, 6, 7, 8, 10, 11, 12, 13, 15, 19, 21, 23, 38, 49, 60, 66, 70, 71, 76, 77, 80, 81, 86, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 107, 110, 113, 118, 119, 120, 121, 123, 124, 125, 131, 134, 135, 137, 139, 140, 141, 143, 145, 147, 148, 149, 150, 151, 152, 153, 155, 156, 159, 160, 161, 162, 164, 165, 166, 169, 171, 174, 176, 180, 183, 186, 187, 194, 195, 198, 199, 205, 209, 210, 212, 213, 218, 219, 220, 223, 224, 225, 227, 230, 231, 234, 235, 236, 239, 241, 242, 243, 244, 245, 246, 247, 248, 249, 260, 262, 263, 264, 265, 266, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 334, 336, 337, 346, 347, 348, 350, 353, 354, 355, 356, 357, 358, 359, 360, 362, 363, 364, 365, 367, 368, 373, 374, 375, 376, 377, 382, 383, 386, 389, 392, 393, 395, 397, 398, 406, 411, 413, 414, 415, 416, 417, 418, 420, 422, 424, 429, 435, 439, 440, 441, 446, 450, 451, 453, 454, 455, 459, 460, 461, 473, 477, 479, 485, 487, 488, 490, 496, 512, 530, 535, 546, 547, 548, 549, 552, 557, 558, 560, 567, 573, 592, 596, 611, 614, 615, 616, 617, 619, 620, 621, 622, 623, 625, 629, 638, 641, 642, 643, 644, 645, 651, 652, 653, 654, 660, 661, 663, 666, 668, 671, 673, 675, 678, 679, 680, 681, 682, 683, 684, 687, 688], "thei": [4, 5, 6, 8, 10, 12, 20, 123, 194, 229, 238, 243, 261, 270, 326, 381, 473, 474, 485, 486, 513, 514, 611, 660, 685, 687], "select": [4, 8, 19, 137, 138, 139, 140, 141, 148, 149, 150, 151, 213, 244, 399, 503, 509, 512, 689], "below": [4, 19, 21, 179, 262, 299, 641, 687], "authsourc": [4, 615, 641, 647, 660], "mydb": [4, 641, 687], "current": [4, 7, 13, 19, 22, 124, 154, 156, 183, 194, 195, 199, 220, 246, 247, 258, 275, 323, 330, 331, 334, 376, 377, 379, 382, 442, 450, 461, 478, 493, 512, 525, 544, 551, 554, 560, 585, 593, 594, 610, 660], "authmechan": [4, 614, 619, 641, 646, 650, 660], "deprec": [4, 15, 229, 516, 523], "x509": 4, "introduc": [4, 13, 242, 316, 375, 686], "protocol": [4, 5, 7, 34, 45, 56, 299, 353, 473, 485, 513, 514, 558, 611, 660], "hash": 4, "describ": [4, 6, 19, 171, 199, 213, 244, 276, 332, 383, 498, 610, 660, 688], "7677": 4, "mean": [4, 5, 6, 10, 13, 260, 338, 347, 348, 353, 512, 598, 687], "never": [4, 10, 275, 277, 278, 299, 302, 303, 304, 331, 337, 355, 356, 365, 382, 660], "actual": [4, 8, 132, 229, 339, 341, 345, 660, 689], "sent": [4, 5, 6, 38, 49, 60, 66, 70, 76, 80, 86, 90, 107, 110, 113, 265, 299, 322, 378, 386, 461, 497, 512, 523, 548, 560, 561, 610], "over": [4, 6, 12, 19, 153, 275, 331, 382], "wire": [4, 5, 34, 45, 56, 299, 353, 473, 485, 513, 514, 611, 660], "rather": [4, 8, 19, 485, 486, 660], "comput": [4, 431], "proof": [4, 18], "know": [4, 13, 310, 312, 313, 473, 485, 611], "correct": [4, 267, 272, 324, 380, 620, 621, 622, 623], "negoti": [4, 353], "altern": [4, 7, 19, 165, 169, 171, 181, 187, 198, 660, 687], "explicitli": [4, 23, 299, 304, 322, 378, 483, 497, 512, 676, 688], "undergo": 4, "preprocess": 4, "step": [4, 12, 17, 19], "known": [4, 13, 17, 19, 209, 210, 219, 497, 592, 593, 594, 642, 643, 644, 645, 651, 652, 653, 654, 660], "saslprep": 4, "4013": 4, "perform": [4, 6, 8, 10, 14, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 116, 134, 135, 148, 150, 164, 173, 176, 213, 227, 229, 234, 239, 241, 262, 264, 281, 282, 284, 285, 300, 311, 315, 327, 328, 329, 359, 374, 376, 377, 378, 379, 380, 411, 439, 451, 473, 478, 485, 491, 506, 533, 535, 552, 559, 561, 567, 571, 578, 579, 589, 590, 593, 594, 595, 596, 611, 660, 662, 664, 666, 678, 687, 688, 689], "non": [4, 7, 8, 180, 262, 282, 283, 284, 290, 291, 304, 310, 312, 313, 314, 328, 329, 416, 453, 547, 579, 585, 590, 598, 621, 622, 660], "ascii": 4, "charact": [4, 185, 207, 411, 661], "libicu": 4, "link": [4, 7, 17, 19, 31, 43, 53, 62, 68, 75, 79, 84, 88, 462, 618], "enable_icu": 4, "icu_root": 4, "findicu": 4, "5802": 4, "against": [4, 6, 7, 10, 118, 120, 121, 125, 263, 275, 331, 382, 662, 687, 688], "anoth": [4, 7, 8, 11, 13, 19, 156, 232, 246, 247, 554, 660], "longer": [4, 206, 208, 218, 223, 224, 225, 230, 231, 265, 273, 275, 277, 278, 281, 285, 286, 299, 302, 303, 304, 331, 333, 355, 356, 359, 364, 365, 382, 394, 420, 436, 452, 454, 455, 456, 477, 491, 495, 515, 533, 553, 558, 565, 566, 572, 573, 583, 595, 640, 664, 677], "instead": [4, 128, 129, 156, 163, 209, 220, 229, 240, 241, 267, 268, 270, 272, 282, 284, 285, 289, 299, 302, 304, 311, 315, 321, 325, 330, 346, 364, 367, 374, 384, 452, 453, 485, 496, 531, 621, 627, 630, 633, 666, 678, 679, 680, 681, 682, 683, 684, 687, 688, 689], "compat": [4, 7, 13, 18, 132, 145, 282, 284, 289, 317, 339, 346, 347, 350, 351, 355, 497, 512], "unix": [4, 7, 433, 549, 550, 552, 572, 574, 585, 660], "cyru": [4, 19, 660], "window": [4, 549, 550, 551, 552, 563, 687], "sspi": 4, "modifi": [4, 27, 31, 33, 37, 39, 40, 42, 43, 48, 50, 53, 55, 59, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 133, 150, 151, 154, 185, 201, 207, 216, 217, 221, 222, 300, 301, 304, 305, 306, 307, 308, 309, 334, 369, 370, 371, 372, 387, 394, 399, 400, 401, 425, 427, 428, 429, 431, 432, 441, 451, 457, 458, 464, 467, 470, 473, 485, 494, 502, 505, 529, 564, 571, 611, 614, 615, 616, 617, 618, 619, 623, 624, 625, 626, 627, 628, 629, 634, 636, 637, 670, 674, 685], "enable_sasl": 4, "enterpris": [4, 164, 227, 241, 276, 688, 689], "kinit": 4, "method": [4, 6, 226, 237, 239, 243, 262, 269, 298, 460, 660, 688, 689], "mongodbus": 4, "com": [4, 10, 19, 124, 171, 195, 619, 641, 650, 660], "klistcredenti": 4, "file": [4, 7, 11, 12, 13, 19, 22, 23, 119, 156, 211, 212, 407, 409, 410, 411, 412, 413, 414, 416, 417, 418, 419, 420, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 568, 571, 572, 573, 574, 577, 578, 687, 688, 689], "krb5cc_1000": 4, "princip": 4, "expir": [4, 7, 13, 232, 559, 560, 660], "feb": 4, "13": 4, "48": [4, 260, 262, 598, 687], "51": 4, "2013": [4, 19], "23": [4, 19, 123, 194, 397, 401], "krbtgt": 4, "now": [4, 6, 12, 19, 23, 132, 145, 260, 262, 339, 350, 496, 598, 678, 679, 680, 681, 682, 683, 684, 688, 689], "extern": [4, 124, 195], "virtual": 4, "40exampl": [4, 641], "properti": [4, 125, 619, 650, 688, 689], "canonicalize_host_nam": [4, 619, 650], "differ": [4, 19, 213, 299, 337, 474, 486, 512, 687, 689], "what": [4, 12, 13, 19, 21, 229, 416, 685], "fals": [4, 6, 7, 11, 12, 13, 23, 118, 119, 125, 131, 135, 137, 139, 141, 149, 151, 155, 156, 159, 160, 161, 162, 164, 165, 166, 173, 174, 176, 186, 187, 194, 198, 199, 205, 209, 210, 220, 227, 234, 235, 236, 237, 239, 241, 242, 245, 248, 249, 259, 260, 262, 263, 264, 265, 266, 269, 275, 276, 277, 279, 280, 282, 283, 284, 286, 288, 289, 290, 291, 295, 296, 298, 299, 300, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 336, 337, 348, 350, 351, 354, 355, 357, 358, 363, 364, 365, 367, 368, 373, 374, 375, 376, 377, 382, 383, 386, 395, 396, 397, 398, 399, 400, 401, 406, 407, 409, 410, 415, 417, 418, 422, 424, 435, 440, 441, 446, 452, 453, 454, 455, 456, 459, 461, 476, 478, 481, 484, 490, 496, 508, 512, 524, 541, 543, 546, 548, 619, 642, 646, 647, 648, 649, 650, 653, 655, 658, 660, 663, 687, 688], "service_nam": [4, 619, 650], "servic": [4, 37, 48, 59, 124, 126, 166, 171, 195, 196, 632, 650, 660], "authmechanismproperti": [4, 619, 650, 660], "encount": [4, 13, 275, 298, 331, 382, 578, 581], "net": [4, 171], "address": [4, 558, 660], "applic": [4, 5, 8, 10, 12, 13, 14, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 119, 145, 156, 213, 226, 229, 234, 235, 244, 253, 264, 265, 267, 271, 272, 298, 299, 320, 324, 328, 329, 346, 347, 349, 350, 351, 352, 380, 497, 512, 535, 593, 594, 596, 660, 685, 687, 688, 689], "behind": [4, 13, 37, 48, 59, 660], "nat": 4, "network": [4, 5, 6, 10, 13, 21, 33, 149, 151, 160, 161, 162, 205, 209, 210, 220, 241, 242, 245, 249, 260, 275, 276, 277, 279, 280, 282, 283, 284, 288, 289, 290, 291, 295, 296, 298, 299, 301, 302, 303, 304, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 337, 353, 354, 355, 357, 358, 363, 364, 365, 367, 368, 373, 374, 375, 376, 377, 382, 383, 409, 410, 420, 422, 440, 452, 453, 454, 455, 456, 459, 558, 581, 586, 598, 660, 685], "translat": 4, "firewal": 4, "ticket": 4, "forward": [4, 23, 131], "addressless": 4, "done": [4, 10, 23, 260, 261, 262, 598, 687], "f": [4, 11, 12, 212, 411, 460], "intend": [4, 253, 281, 359, 461, 687], "deleg": 4, "ldap": [4, 19], "veri": 4, "similar": [4, 19, 153, 155, 275, 282, 284, 331, 382, 557, 685, 687], "challeng": 4, "respons": [4, 7, 8, 12, 13, 18, 35, 46, 57, 156, 158, 159, 160, 161, 213, 234, 262, 264, 271, 279, 337, 346, 356, 357, 472, 512, 528, 531, 660, 685, 688], "clear": [4, 123, 194, 243, 264, 373, 554, 648, 688], "text": [4, 444], "strongli": 4, "tl": [4, 13, 14, 16, 17, 19, 126, 196, 238, 270, 271, 354, 565, 581, 585, 587, 633, 635, 641, 642, 689], "valid": [4, 7, 9, 27, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 125, 131, 135, 137, 139, 141, 142, 147, 149, 151, 154, 155, 179, 185, 207, 234, 238, 252, 254, 256, 264, 265, 270, 271, 277, 282, 284, 289, 290, 291, 312, 313, 317, 320, 328, 329, 330, 348, 355, 386, 395, 396, 399, 400, 401, 461, 473, 506, 508, 524, 542, 565, 577, 602, 603, 604, 611, 623, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 655, 658, 660, 688], "onc": [4, 8, 12, 18, 19, 20, 131, 147, 156, 158, 205, 209, 210, 226, 234, 235, 236, 237, 238, 241, 269, 275, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 461, 472, 482, 512, 565, 660, 688], "deriv": [4, 15, 20, 143, 416], "distinguish": 4, "dure": [4, 21, 120, 121, 192, 311, 461, 513, 548], "ssl_opt": 4, "pem_fil": [4, 7, 238, 270, 565], "mycert": 4, "pem_pwd": [4, 7, 238, 270, 565], "mycertpassword": 4, "ca_fil": [4, 7, 238, 270, 565], "myca": 4, "ca_dir": [4, 7, 238, 270, 565], "trust_dir": 4, "weak_cert_valid": [4, 7, 565], "x509_derived_usernam": 4, "mongoc_client_set_ssl_opt": [4, 7, 14, 238, 274, 565, 660], "none": [4, 13, 141, 149, 151, 211, 304, 493, 660], "ident": [4, 235, 238, 240, 579], "access": [4, 5, 27, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 146, 156, 203, 262, 274, 326, 346, 347, 353, 354, 376, 381, 441, 451, 486, 512, 687, 688], "manag": [4, 5, 17, 124, 126, 166, 171, 195, 196, 262, 274, 279, 357, 687, 688], "amazon": [4, 171], "resourc": [4, 18, 158, 163, 167, 171, 175, 177, 190, 200, 226, 243, 250, 292, 335, 361, 387, 421, 423, 434, 472, 475, 492, 501, 527, 553, 570, 591, 613, 665], "arn": [4, 171], "sinc": [4, 6, 8, 156, 239, 261, 345, 433, 532, 660], "alwai": [4, 13, 15, 18, 20, 131, 160, 162, 166, 173, 176, 220, 241, 242, 249, 276, 277, 278, 280, 288, 292, 299, 300, 301, 302, 303, 304, 315, 316, 325, 330, 332, 355, 356, 358, 365, 374, 375, 383, 429, 460, 482], "secret": 4, "token": [4, 13, 154, 156], "obtain": [4, 12, 19, 23, 118, 125, 156, 162, 163, 185, 192, 205, 207, 210, 213, 226, 241, 242, 276, 277, 280, 283, 284, 295, 296, 298, 303, 304, 315, 316, 319, 332, 355, 358, 363, 365, 368, 374, 375, 383, 687, 688], "wai": [4, 8, 10, 13, 19, 512, 611, 687], "aws_session_token": 4, "variabl": [4, 5, 11, 554, 688], "aws_access_key_id": 4, "aws_secret_access_kei": 4, "aws_container_credentials_relative_uri": 4, "retriev": [4, 10, 120, 121, 132, 159, 216, 217, 222, 232, 235, 238, 239, 274, 275, 282, 284, 325, 331, 338, 339, 341, 343, 351, 353, 370, 372, 382, 412, 413, 414, 415, 435, 439, 441, 451, 458, 485, 551, 556, 560, 582, 687, 688], "temporari": [4, 260, 535, 596, 598], "task": [4, 14, 16, 17], "machin": [4, 7, 12, 23], "mongoc_uri_get_auth_mechan": [4, 14, 615, 619, 646, 647, 650, 660], "mongoc_uri_get_auth_sourc": [4, 14, 614, 619, 646, 647, 650, 660], "mongoc_uri_get_mechanism_properti": [4, 14, 614, 615, 646, 647, 650, 660], "mongoc_uri_set_auth_mechan": [4, 14, 614, 615, 619, 647, 650, 660], "mongoc_uri_set_auth_sourc": [4, 14, 614, 615, 619, 646, 650, 660], "mongoc_uri_set_mechanism_properti": [4, 14, 614, 615, 619, 646, 647, 660], "short": [5, 687], "thing": [5, 12, 23], "have": [5, 6, 8, 9, 11, 12, 13, 19, 120, 121, 141, 149, 151, 164, 205, 213, 226, 227, 238, 265, 270, 299, 302, 303, 311, 312, 347, 364, 365, 386, 395, 396, 399, 400, 414, 418, 429, 461, 494, 505, 532, 546, 619, 652, 660, 674, 679, 680, 681, 687, 689], "problem": [5, 460], "did": [5, 261], "call": [5, 6, 8, 10, 12, 13, 18, 20, 21, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 123, 128, 129, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 144, 145, 146, 147, 148, 149, 150, 151, 154, 155, 158, 159, 162, 163, 166, 173, 176, 194, 201, 205, 210, 220, 226, 228, 229, 232, 233, 234, 235, 236, 238, 239, 240, 241, 242, 243, 252, 260, 261, 262, 265, 267, 268, 270, 272, 273, 275, 276, 277, 278, 280, 281, 282, 283, 284, 285, 286, 295, 296, 298, 299, 302, 303, 304, 314, 315, 316, 319, 331, 332, 333, 339, 348, 349, 350, 351, 352, 353, 354, 355, 356, 358, 359, 363, 364, 365, 368, 374, 375, 378, 379, 380, 382, 383, 386, 388, 396, 399, 400, 409, 413, 414, 417, 418, 443, 444, 445, 447, 448, 461, 464, 467, 470, 472, 482, 494, 496, 512, 538, 545, 546, 547, 553, 554, 556, 558, 570, 607, 608, 609, 639, 660, 674, 678, 679, 680, 681, 682, 683, 684, 687, 688], "segfault": 5, "leak": [5, 10], "pid": 5, "deliv": 5, "egress": 5, "byte": [5, 124, 170, 195, 209, 210, 367, 368, 430, 439, 451, 486, 487, 488, 559, 560, 561, 566, 569, 575, 578, 579, 588, 589, 590, 688], "valgrind": 5, "show": [5, 11, 156, 299, 337, 688], "linger": 5, "alloc": [5, 11, 18, 131, 152, 158, 206, 208, 211, 219, 223, 224, 225, 230, 231, 262, 273, 275, 277, 278, 281, 285, 286, 299, 302, 303, 304, 331, 333, 335, 355, 356, 359, 360, 364, 365, 366, 382, 394, 410, 411, 419, 420, 436, 452, 453, 454, 455, 456, 461, 472, 477, 491, 495, 500, 507, 515, 533, 549, 555, 566, 572, 573, 577, 583, 592, 595, 612, 619, 639, 640, 641, 661, 664, 677, 687], "own": [5, 8, 12, 21, 23, 156, 416, 457, 458, 460, 528, 529, 531, 626, 628, 637, 687], "copi": [5, 12, 19, 21, 23, 27, 30, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 74, 75, 79, 84, 85, 88, 104, 105, 154, 155, 234, 238, 246, 247, 260, 262, 264, 265, 270, 281, 333, 348, 359, 389, 392, 393, 461, 479, 491, 500, 515, 533, 539, 547, 565, 595, 599, 607, 608, 609, 612, 664], "denable_trac": [5, 21], "ON": [5, 11, 19, 21, 688], "trace": [5, 18, 158, 472], "hex": [5, 21, 688], "dump": [5, 21], "stdout": [5, 10, 21, 261, 274, 353, 460, 687], "come": [5, 6, 21, 284, 337, 512, 585], "uniqu": [5, 6, 13, 169, 468, 512, 688, 689], "featur": [5, 6, 19, 22, 164, 227, 238, 270, 284, 304, 575, 662, 687, 688], "help": [5, 11, 19, 687, 689], "develop": [5, 21, 229, 688], "sysadmin": 5, "product": [5, 19], "outsid": [5, 621], "via": [5, 17, 20, 128, 129, 131, 134, 135, 136, 137, 138, 139, 140, 141, 148, 149, 151, 160, 162, 166, 204, 209, 210, 212, 220, 241, 242, 276, 279, 280, 282, 283, 284, 288, 289, 290, 291, 295, 296, 297, 298, 300, 301, 302, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 332, 336, 337, 358, 360, 363, 364, 367, 368, 373, 374, 375, 376, 377, 383, 422, 424, 435, 440, 453, 454, 455, 459, 477, 687], "memori": [5, 10, 18, 158, 262, 279, 357, 461, 472], "segment": 5, "graph": 5, "statist": [5, 325], "about": [5, 20, 33, 218, 261, 273, 299, 304, 325, 337, 460, 461, 497, 522, 523, 535, 538, 545, 660, 687], "easili": [5, 156, 585], "tool": [5, 19, 688], "munin": 5, "nagio": 5, "often": 5, "watch": [5, 154, 156], "interv": [5, 8, 660], "5": [5, 6, 19, 156, 242, 260, 283, 298, 304, 316, 375, 416, 461, 485, 548, 598, 643, 660], "monitor": [5, 8, 14, 17, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 213, 234, 264, 461, 535, 536, 593, 594, 596, 597], "linux": [5, 7, 19, 563], "platform": [5, 7, 17, 18, 461, 474, 549, 550, 552, 573, 687, 689], "maco": 5, "arm64": 5, "denable_shm_count": 5, "off": [5, 7, 18, 19, 156, 275, 331, 382, 688], "addition": [5, 19, 156, 279, 512], "alreadi": [5, 13, 19, 194, 213, 260, 265, 473, 611, 646, 647, 651, 652, 653, 654], "disabl": [5, 7, 20, 117, 261, 273, 298, 512, 538, 545, 546, 660, 688], "runtim": [5, 11, 486], "environ": [5, 17, 486, 688, 689], "mongoc_disable_shm": 5, "track": [5, 341, 483, 687], "activ": [5, 8, 213], "dispos": 5, "pool": [5, 14, 16, 17, 121, 163, 164, 226, 227, 228, 229, 232, 233, 234, 235, 236, 237, 238, 239, 240, 243, 250, 261, 266, 267, 268, 270, 272, 273, 274, 528, 530, 531, 538, 545, 565, 687], "socket": [5, 8, 274, 354, 376, 377, 474, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 563, 569, 580, 583, 584, 588, 660, 681, 683, 684, 689], "stream": [5, 13, 32, 44, 54, 152, 153, 154, 155, 156, 271, 275, 331, 382, 406, 409, 412, 413, 414, 415, 416, 417, 418, 420, 460, 485, 559, 567, 568, 569, 570, 571, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 586, 587, 588, 589, 590], "transfer": [5, 577, 583], "given": [5, 12, 119, 174, 185, 186, 187, 199, 207, 239, 243, 262, 271, 274, 289, 290, 291, 314, 317, 346, 347, 360, 376, 428, 442, 461, 524, 593, 660, 687], "22203": 5, "total": [5, 8, 12, 232, 660], "13247": 5, "ingress": 5, "13246": 5, "getmor": [5, 32, 44, 54, 156, 241, 315, 352, 374], "delet": [5, 128, 129, 137, 146, 174, 276, 289, 290, 291, 317, 326, 332, 383, 384, 407, 416, 513, 660], "updat": [5, 6, 8, 10, 13, 123, 146, 148, 149, 150, 151, 154, 194, 261, 262, 275, 276, 300, 301, 319, 320, 321, 326, 327, 328, 329, 331, 332, 382, 383, 386, 393, 395, 396, 397, 398, 399, 401, 528, 531, 532, 611, 646, 647, 651, 652, 653, 654, 660, 689], "killcursor": [5, 243], "msg": [5, 365], "794931": 5, "589694": 5, "timeout": [5, 8, 10, 13, 20, 131, 155, 159, 160, 161, 162, 232, 242, 261, 262, 273, 276, 279, 280, 289, 300, 301, 310, 311, 312, 313, 316, 320, 321, 327, 328, 329, 332, 337, 352, 356, 357, 358, 375, 383, 538, 545, 549, 552, 560, 561, 577, 578, 579, 586, 589, 590, 606, 621, 622, 660, 671, 672, 681, 683, 684, 685], "auth": 5, "request": [5, 7, 19, 34, 45, 56, 171, 194, 239, 275, 277, 288, 295, 296, 304, 331, 349, 355, 382, 422, 511, 660, 687], "think": 5, "ve": [5, 10, 11, 353], "pleas": [5, 19, 22, 128, 129, 209, 268, 285, 289, 302, 311, 321, 323, 346, 364, 367, 379, 384, 498, 531, 627, 630, 633, 678, 687], "case": [5, 6, 10, 12, 13, 19, 22, 132, 220, 260, 262, 265, 296, 364, 373, 460, 598, 620, 621, 622, 623, 638, 642, 643, 644, 645, 651, 652, 653, 654, 660], "jira": 5, "account": [5, 241, 242, 276, 315, 316, 332, 374, 375, 383], "login": [5, 124, 195], "navig": 5, "cdriver": 5, "project": [5, 14, 16, 17, 19, 304], "click": [5, 689], "reproduc": 5, "e": [5, 6, 7, 10, 12, 15, 19, 166, 192, 262, 326, 346, 355, 482, 485, 512, 648, 660], "csharp": 5, "java": 5, "core": [5, 688], "public": [5, 7, 660, 686], "explain": [6, 689], "take": [6, 7, 8, 241, 242, 248, 262, 276, 299, 315, 316, 332, 374, 375, 383, 386, 398, 401, 490, 523, 579, 660, 663], "advantag": [6, 19], "batch": [6, 147, 156, 278, 285, 286, 299, 304, 338, 345, 346, 349, 356], "reduc": [6, 12, 21, 164, 227, 478], "round": [6, 338, 345, 349, 534, 660], "trip": [6, 338, 345, 349, 534, 660], "increas": 6, "throughput": 6, "fetch": [6, 133, 205, 219, 221, 302, 303, 306, 307, 308, 309, 334, 340, 341, 345, 364, 365, 367, 368, 369, 371, 400, 401, 425, 426, 427, 428, 429, 430, 431, 432, 433, 435, 502, 504, 505, 520, 561, 576, 592, 614, 615, 617, 618, 619, 624, 625, 626, 627, 628, 629, 633, 634, 635, 636, 637, 666, 667, 668, 669, 687], "handl": [6, 13, 18, 156, 158, 262, 277, 278, 285, 286, 299, 302, 303, 304, 326, 333, 355, 356, 365, 381, 411, 460, 472, 511, 563, 639, 641, 660, 685, 687], "mongoc_collection_create_bulk_operation_with_opt": [6, 12, 14, 23, 131, 285, 326], "until": [6, 8, 13, 132, 134, 135, 155, 214, 215, 219, 232, 262, 339, 341, 348, 353, 417, 418, 420, 623, 660, 685], "coalesc": 6, "singl": [6, 12, 22, 120, 121, 129, 134, 135, 138, 139, 140, 141, 147, 150, 151, 163, 164, 192, 219, 274, 289, 312, 317, 327, 348, 461, 597, 611, 660, 687], "consecut": 6, "mongoc_bulk_operation_insert": [6, 12, 14, 23, 141, 147, 285, 286], "effect": [6, 7, 9, 145, 246, 247, 350, 351], "mongoc_bulk_operation_execut": [6, 12, 13, 14, 23, 128, 129, 132, 134, 135, 136, 137, 138, 139, 140, 141, 145, 147, 148, 149, 150, 151, 285, 286], "bulk1": 6, "assert": [6, 211, 460], "bool": [6, 9, 11, 12, 23, 71, 77, 81, 116, 117, 135, 137, 139, 140, 141, 142, 148, 149, 150, 151, 153, 155, 156, 157, 160, 161, 162, 164, 165, 166, 173, 174, 176, 186, 187, 194, 198, 199, 219, 220, 227, 234, 235, 236, 237, 239, 241, 242, 244, 245, 248, 249, 253, 259, 260, 261, 262, 263, 264, 265, 266, 269, 276, 279, 280, 285, 287, 288, 289, 290, 291, 293, 294, 295, 296, 297, 300, 301, 304, 310, 311, 312, 313, 315, 316, 317, 318, 319, 320, 321, 325, 327, 328, 329, 330, 332, 336, 337, 344, 345, 348, 350, 351, 354, 357, 358, 362, 363, 373, 374, 375, 376, 377, 383, 385, 386, 388, 395, 396, 397, 398, 399, 400, 401, 406, 407, 409, 415, 416, 417, 418, 422, 424, 435, 440, 441, 446, 459, 461, 468, 476, 481, 484, 490, 494, 496, 506, 516, 522, 524, 541, 543, 546, 548, 565, 581, 586, 593, 594, 598, 619, 620, 633, 635, 638, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 658, 663, 666, 667, 669, 673, 674, 675, 676, 678, 679, 687, 688], "ret": [6, 12, 23, 239, 687, 688], "10000": [6, 156, 241, 276], "mongoc_bulk_operation_destroi": [6, 12, 14, 23, 147, 285, 286], "ninsert": [6, 22, 241, 276], "nmatch": 6, "nmodifi": 6, "nremov": 6, "nupsert": 6, "writeconcernerror": [6, 290, 291, 312, 313, 320, 328, 329], "remov": [6, 8, 21, 22, 70, 95, 136, 137, 138, 139, 140, 141, 148, 149, 150, 151, 198, 290, 291, 300, 304, 317, 376, 377, 397, 440, 459, 475, 476, 477, 478, 513, 660, 685, 687, 689], "togeth": [6, 411, 473, 485, 513, 514, 611], "serial": 6, "bulk2": 6, "opt": [6, 9, 10, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 131, 135, 137, 139, 141, 149, 151, 156, 162, 164, 166, 167, 169, 170, 171, 176, 177, 179, 180, 181, 182, 183, 189, 190, 192, 193, 194, 195, 196, 205, 210, 213, 227, 238, 241, 242, 248, 260, 261, 262, 270, 273, 275, 276, 277, 280, 283, 284, 286, 287, 288, 290, 291, 295, 296, 297, 298, 301, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 331, 332, 346, 347, 355, 358, 360, 363, 365, 368, 374, 375, 382, 383, 386, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 400, 401, 410, 411, 413, 414, 417, 418, 419, 420, 455, 456, 460, 464, 467, 468, 470, 480, 481, 482, 484, 490, 539, 540, 541, 542, 543, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 606, 607, 608, 609, 660, 688], "bson_new": [6, 126, 196, 241, 260, 261, 262, 276, 598, 687, 688], "mongoc_bulk_operation_remov": [6, 14, 128, 137, 147], "few": 6, "foo": [6, 11, 277, 299, 304, 511], "bar": [6, 277, 299, 304], "bcon_utf8": [6, 9, 12, 23, 241, 276, 277, 279, 284, 299, 304, 397, 401, 511, 687], "mongoc_bulk_operation_update_many_with_opt": [6, 14, 147, 148, 151], "inc": [6, 12, 23, 261, 386, 395, 396, 398, 401], "j": [6, 11, 660], "upsert": [6, 140, 141, 148, 149, 150, 151, 300, 320, 321, 328, 329, 397, 401, 611], "bcon_bool": [6, 277, 304, 399, 400, 401, 687, 688], "replac": [6, 119, 140, 141, 146, 271, 274, 283, 320, 650, 689], "mongoc_bulk_operation_replace_one_with_opt": [6, 14, 140, 147], "base": [6, 13, 19, 211, 274, 300, 471, 478, 495, 512, 576, 585, 626, 628, 637, 640, 660, 662, 677, 687], "sixth": 6, "its": [6, 7, 8, 12, 13, 15, 19, 20, 21, 23, 70, 95, 101, 110, 154, 156, 162, 205, 210, 212, 229, 239, 241, 242, 243, 250, 261, 273, 276, 277, 280, 281, 283, 284, 292, 295, 296, 298, 303, 304, 315, 316, 319, 332, 345, 355, 358, 359, 363, 365, 368, 374, 375, 383, 407, 440, 460, 528, 531, 538, 545, 619, 650, 660, 687], "arbitrari": [6, 123, 194, 284, 304, 386, 460, 687], "occur": [6, 10, 13, 19, 21, 22, 141, 149, 151, 153, 194, 241, 275, 277, 278, 299, 302, 303, 304, 315, 319, 331, 336, 337, 353, 355, 356, 365, 374, 382, 415, 435, 441, 446, 486, 660], "after": [6, 10, 13, 18, 20, 27, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 144, 146, 147, 154, 156, 158, 226, 234, 238, 241, 243, 260, 261, 264, 265, 270, 273, 275, 276, 285, 286, 300, 312, 319, 329, 331, 337, 341, 351, 352, 378, 379, 380, 382, 386, 396, 399, 400, 409, 413, 414, 417, 418, 437, 460, 461, 472, 482, 485, 496, 538, 545, 546, 547, 548, 554, 565, 570, 573, 607, 608, 609, 617, 619, 624, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 678, 679, 680, 681, 682, 683, 684, 687], "next": [6, 7, 8, 12, 17, 155, 345, 348, 436, 462, 660, 685], "due": [6, 20, 205, 209, 210, 241, 261, 273, 275, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 538, 545, 660], "constraint": [6, 652], "fourth": 6, "bulk3": 6, "indic": [6, 7, 71, 77, 81, 153, 156, 194, 253, 345, 417, 418, 442, 450, 518, 519, 578, 579, 590, 633, 635, 660, 667, 669, 671, 672, 678, 679, 681, 682, 683, 684, 687], "bson_append_bool": [6, 10], "mongoc_bulk_operation_remove_on": [6, 14, 129, 136, 139, 147], "mongoc_bulk_operation_replace_on": [6, 14, 147], "e11000": 6, "_id_": [6, 284, 687], "dup": 6, "domain": [6, 10, 13, 21, 296, 337, 453, 454, 455, 558, 630, 631, 660], "mongoc_error_command": [6, 13], "later": [6, 12, 23, 137, 139, 141, 149, 151, 156, 162, 241, 242, 276, 277, 280, 283, 284, 286, 290, 291, 295, 296, 298, 299, 312, 313, 315, 316, 320, 328, 329, 332, 352, 353, 355, 358, 363, 374, 375, 383, 386, 395, 411, 485, 508, 512, 548, 688], "schema": [6, 125, 277, 312, 313, 320, 328, 329, 355, 395, 688], "defin": [6, 10, 11, 12, 13, 21, 146, 179, 183, 253, 262, 349, 473, 536, 597, 611, 618, 660, 662, 688, 689], "bulk5": 6, "bulk5_fail": 6, "31": [6, 473, 611], "32": [6, 426, 465, 621, 653, 671, 689], "compli": 6, "rule": [6, 18, 125, 395], "previous": [6, 346, 388, 496, 588, 648, 678, 679, 680, 681, 682, 683, 684], "bulk5_success": 6, "either": [6, 7, 12, 23, 154, 156, 192, 236, 266, 277, 290, 291, 300, 313, 320, 328, 329, 337, 355, 373, 395, 660], "dbadmin": [6, 395], "restor": [6, 21, 395], "role": [6, 354, 395], "mongoc_bulk_operation_set_bypass_document_valid": [6, 14, 147], "mongoc_client_get_databas": [6, 9, 12, 14, 23, 260, 262, 274, 355, 381, 401, 416, 598, 687], "testasdf": 6, "mongoc_database_create_collect": [6, 14, 260, 262, 381, 401, 598], "collnam": [6, 511], "couldn": [6, 12], "mongoc_database_destroi": [6, 9, 12, 14, 23, 208, 211, 260, 262, 355, 359, 381, 401, 416, 598, 687], "121": 6, "write_concern": [6, 241, 260, 272, 276, 277, 285, 289, 305, 310, 311, 317, 321, 324, 327, 380, 598, 609, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 678, 679, 680, 681, 682, 683, 684], "custom": [6, 11, 18, 156, 158, 170, 171, 244, 271, 274, 472, 512, 688], "g": [6, 7, 12, 15, 19, 166, 346, 355, 512, 648, 660], "wtimeout": [6, 260, 598, 681], "regardless": [6, 241, 315, 374, 551], "bulk4": 6, "wc": [6, 156, 386, 398, 401, 659, 688], "mongoc_write_concern_new": [6, 14, 156, 241, 260, 276, 277, 386, 398, 401, 598, 685, 688], "mongoc_write_concern_set_w": [6, 14, 277, 386, 398, 401, 546, 685], "mongoc_write_concern_set_wtimeout_int64": [6, 14, 672, 681, 683, 685], "100": [6, 232, 278, 299, 386, 398, 401, 644, 660], "millisecond": [6, 155, 352, 398, 433, 534, 549, 552, 578, 579, 589, 590, 601, 606, 660, 671, 672, 681, 683, 684], "mongoc_write_concern_append": [6, 14, 156, 162, 241, 242, 276, 277, 280, 286, 288, 290, 291, 295, 296, 312, 313, 316, 319, 320, 328, 329, 332, 355, 358, 363, 375, 383, 386, 398, 401, 411, 685, 688], "11": [6, 687], "mongoc_write_concern_destroi": [6, 14, 156, 241, 260, 276, 386, 398, 401, 598, 664, 677, 685, 688], "64": [6, 19, 430, 450, 643, 644, 653, 672, 689], "wait": [6, 8, 261, 275, 304, 331, 352, 382, 486, 578, 589, 660, 671, 672, 681, 683, 684], "replic": [6, 512, 660], "out": [6, 8, 12, 13, 19, 135, 137, 139, 141, 149, 151, 194, 213, 244, 248, 261, 262, 277, 278, 290, 291, 299, 302, 303, 304, 312, 313, 328, 329, 340, 355, 356, 365, 453, 454, 455, 485, 524, 619, 660], "mongoc_error_write_concern": [6, 13], "preced": [6, 7], "mere": 6, "satisfi": [6, 304, 352, 506, 682], "yet": [6, 345], "bulk_col": 6, "selector": [6, 128, 129, 136, 137, 138, 139, 140, 141, 148, 149, 150, 151, 261, 284, 289, 290, 291, 317, 320, 327, 328, 329, 513], "uint32_t": [6, 10, 36, 47, 58, 131, 132, 145, 159, 161, 169, 170, 213, 218, 228, 229, 247, 255, 257, 278, 299, 311, 338, 339, 343, 346, 349, 350, 352, 356, 391, 398, 438, 439, 451, 530, 687, 688], "One": [6, 7, 19, 241, 276, 284, 442, 660], "normal": [6, 8, 19, 241, 260, 262, 276, 284, 304, 485, 598], "en_u": [6, 241, 276, 284, 304], "casefirst": [6, 241, 276, 284, 304], "lower": [6, 241, 276, 284, 304, 487], "x": [6, 7, 9, 11, 12, 17, 23, 156, 241, 261, 276, 329, 337, 662], "bcon_int64": [6, 156, 241, 276, 283, 298, 304, 337], "gt": [6, 10, 12, 22, 241, 276, 284, 329, 478], "mongoc_bulk_operation_update_one_with_opt": [6, 14, 147, 148, 149, 150], "w": [6, 156, 386, 398, 401, 660, 668, 674, 680, 688], "zero": [6, 132, 199, 278, 282, 284, 338, 339, 341, 349, 621, 622, 660, 680, 681, 683, 684], "legaci": [6, 17, 35, 46, 57, 304], "opcod": 6, "op_insert": 6, "op_upd": 6, "op_delet": 6, "bulk6": 6, "empti": [6, 12, 13, 21, 33, 119, 153, 156, 165, 186, 187, 194, 198, 199, 275, 288, 301, 302, 303, 304, 322, 331, 337, 345, 378, 382, 389, 392, 393, 479, 512, 528, 531, 616, 660, 687], "mongoc_uri_set_option_as_bool": [7, 14, 660], "mongoc_uri_tl": [7, 660], "further": [7, 262], "privat": [7, 585, 660, 687], "concaten": [7, 660], "mongoc_uri_tlscertificatekeyfilepassword": [7, 126, 196, 660], "tlscertificatekeypassword": [7, 660], "unlock": [7, 660], "mongoc_uri_tlscafil": [7, 126, 196, 660], "bundl": [7, 19, 660], "whom": [7, 660], "mongoc_uri_tlsallowinvalidcertif": [7, 660], "tlsallowinvalidcertif": [7, 660], "accept": [7, 156, 229, 338, 549, 621, 622, 650, 660], "untrust": [7, 660], "issuer": [7, 660], "etc": [7, 19, 205, 209, 210, 241, 275, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 326, 331, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 660], "mongoc_uri_tlsallowinvalidhostnam": [7, 660], "tlsallowinvalidhostnam": [7, 660], "man": [7, 13, 660], "middl": [7, 660], "mongoc_uri_tlsinsecur": [7, 660], "tlsinsecur": [7, 660], "insecur": [7, 660], "impli": [7, 12, 23, 660], "mongoc_uri_tlsdisablecertificaterevocationcheck": [7, 660], "tlsdisablecertificaterevocationcheck": [7, 660], "revoc": [7, 660], "crl": [7, 660], "ocsp": [7, 660], "mongoc_uri_tlsdisableocspendpointcheck": [7, 660], "tlsdisableocspendpointcheck": [7, 660], "respond": [7, 8, 13, 296, 660], "endpoint": [7, 124, 171, 195, 660], "stapl": [7, 660], "mongoc_client_pool_set_ssl_opt": [7, 14, 239, 270, 565, 660], "most": [7, 19, 235, 265, 275, 290, 291, 299, 326, 328, 329, 331, 382, 512, 523, 528, 531, 689], "tlsclientcertificatekeyfil": 7, "tlsclientcertificatekeypassword": 7, "allow_invalid_hostnam": [7, 565], "exclus": [7, 156, 181, 182, 275, 299, 331, 382, 546, 548], "crl_file": [7, 238, 270, 565], "those": [7, 10, 12, 19, 241, 276, 315, 332, 374, 383, 503, 509], "armor": 7, "overwrit": [7, 648], "entir": [7, 260, 262, 422, 598, 612], "control": [7, 19, 486, 660, 688], "respect": [7, 229, 660, 687], "expos": [7, 660], "attack": 7, "potenti": [7, 19, 131, 241, 315, 345, 374, 439, 660], "revok": 7, "find": [7, 12, 19, 22, 23, 32, 44, 54, 120, 121, 188, 199, 300, 301, 304, 326, 337, 339, 346, 347, 350, 365, 386, 387, 394, 395, 396, 397, 398, 399, 400, 401, 410, 452, 454, 455, 456, 485, 548, 660], "flag": [7, 11, 19, 159, 277, 278, 282, 284, 289, 299, 310, 311, 317, 327, 356, 384, 390, 401, 461, 483, 518, 519, 559, 573], "enable_ssl": 7, "auto": [7, 11, 115, 119, 207, 688], "libssl": [7, 19], "openssl_root": 7, "besid": [7, 277], "industri": 7, "best": [7, 420, 512], "regul": 7, "newer": [7, 15, 19, 304, 662], "least": [7, 124, 195, 229, 305, 512, 685], "recent": [7, 19, 229, 528, 531], "dopenssl_root_dir": 7, "absolut": [7, 119, 552, 560, 561], "distribut": [7, 12, 19, 23, 660], "overridden": [7, 162, 241, 242, 276, 277, 280, 304, 315, 316, 326, 332, 355, 358, 374, 375, 381, 383, 547, 598], "onlin": 7, "statu": [7, 66, 76, 80, 86, 94, 96, 97, 98, 220, 489, 596], "6960": 7, "fulli": [7, 486], "even": [7, 10, 131, 166, 173, 176, 220, 262, 277, 278, 279, 285, 299, 302, 303, 304, 345, 355, 356, 357, 365, 395, 401, 473, 565, 680], "partial": [7, 485], "extens": [7, 19, 460, 585], "7633": 7, "continu": [7, 10, 19, 260, 285, 286, 312, 319, 473, 598], "down": [7, 226, 485, 551, 660], "schannel": 7, "crypto": [7, 273], "cryptographi": 7, "cng": 7, "them": [7, 19, 219, 460, 461, 490, 565, 663, 687, 689], "look": [7, 11, 19, 460, 461, 660, 687, 688], "root": 7, "confirm": [7, 8, 19, 660], "mark": [7, 253, 496, 678, 679, 680, 681, 682, 683, 684, 686, 688], "io": [7, 19, 585], "cc": [7, 461], "keychain": 7, "thread": [8, 17, 18, 20, 21, 120, 121, 158, 163, 164, 192, 226, 239, 261, 273, 441, 451, 461, 472, 538, 545, 554, 660], "optim": [8, 19, 156], "embed": [8, 279], "languag": [8, 12, 17, 23, 145, 146, 213, 244, 277, 286, 290, 291, 320, 328, 329, 346, 347, 350, 355, 386, 585, 687], "php": 8, "multi": [8, 13, 20, 163, 192, 239, 245, 249, 250, 259, 260, 261, 273, 274, 538, 545, 598, 605, 660], "minim": 8, "background": [8, 468, 660], "block": [8, 155, 156, 232, 240, 261, 272, 275, 324, 331, 348, 380, 382, 436, 439, 485, 578, 579, 589, 590, 593, 594, 660, 662, 685], "scan": [8, 660], "hosta": 8, "hostb": 8, "my_r": [8, 645], "begin": [8, 11, 13, 18, 26, 49, 80, 92, 97, 158, 162, 205, 210, 241, 242, 276, 277, 280, 283, 284, 285, 286, 288, 290, 291, 295, 296, 298, 299, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 333, 355, 358, 363, 365, 368, 374, 375, 383, 386, 461, 472, 496, 565, 660, 678, 679, 680, 681, 682, 683, 684], "concurr": [8, 460], "asynchron": 8, "poll": 8, "put": 8, "fan": 8, "re": [8, 12, 23, 261, 275, 331, 333, 382, 416, 687], "roughli": [8, 660], "elaps": 8, "heartbeatfrequencym": [8, 660], "mongoc_client_pool_new": [8, 14, 20, 239, 687], "mongoc_client_pool_pop": [8, 14, 20, 226, 234, 235, 236, 238, 239, 240, 461, 660, 687], "launch": [8, 23], "independ": [8, 20, 547, 598], "hello": [8, 22, 35, 46, 57, 71, 76, 77, 80, 81, 86, 96, 97, 98, 265, 461, 478, 512, 528, 531, 532, 534, 660, 687], "view": [8, 164, 227, 528, 531], "addit": [8, 10, 17, 119, 135, 137, 139, 141, 149, 151, 156, 162, 165, 205, 210, 241, 242, 274, 275, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 299, 303, 312, 313, 315, 316, 319, 320, 328, 329, 331, 332, 337, 345, 346, 347, 353, 355, 358, 363, 365, 368, 374, 375, 382, 383, 386, 411, 413, 414, 417, 418, 652, 660, 688, 689], "termin": [8, 185, 207, 209, 210, 367, 368], "mongoc_client_pool_push": [8, 14, 20, 163, 226, 229, 232, 239, 687], "unblock": 8, "usabl": 8, "well": [8, 10, 13, 335, 346, 486, 660, 688], "everi": [8, 660], "waitqueuetimeoutm": [8, 232, 660], "1000": [8, 10, 156, 260, 598, 687], "appropri": [8, 19, 282, 284, 289, 317, 346, 347, 442, 508, 512, 687], "action": [8, 164, 227, 262, 326, 381], "size": [8, 13, 164, 214, 215, 227, 229, 241, 276, 299, 338, 349, 411, 413, 414, 417, 418, 426, 556, 557, 566, 687], "extend": [8, 154, 155, 688], "createindex": [9, 288, 468, 688], "mongoc_database_write_command_with_opt": [9, 14, 356, 381], "mongoc_collection_write_command_with_opt": [9, 14, 156, 278, 326], "manual": [9, 137, 139, 141, 149, 151, 156, 162, 164, 204, 205, 206, 208, 210, 227, 241, 242, 261, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 299, 303, 304, 315, 316, 320, 328, 329, 332, 338, 349, 355, 358, 360, 363, 365, 368, 374, 375, 383, 411, 468, 486, 497, 546, 660, 688], "entri": [9, 19, 137, 139, 141, 149, 151, 156, 162, 205, 210, 241, 242, 261, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 303, 315, 316, 320, 328, 329, 332, 355, 358, 360, 363, 365, 368, 374, 375, 383, 546], "detail": [9, 13, 18, 33, 148, 149, 150, 151, 158, 159, 265, 282, 284, 345, 385, 439, 451, 472, 496, 512, 660, 687, 688], "commitquorum": 9, "less": [9, 21, 503, 509, 660, 687], "advers": 9, "stdlib": [9, 10, 241, 262, 274, 276, 353, 416, 460, 688], "index_nam": [9, 294, 295, 688], "create_index": 9, "reply_str": 9, "ascend": [9, 314], "bson_init": [9, 10, 156, 274, 284, 353, 416, 460, 468], "mongoc_collection_keys_to_index_str": [9, 14, 326, 688], "bcon_docu": [9, 688], "bson_as_json": [9, 260, 261, 262, 337, 598, 687], "exist": [10, 13, 21, 22, 156, 165, 186, 187, 198, 212, 296, 302, 303, 318, 319, 373, 397, 401, 415, 460, 648, 688], "structur": [10, 11, 13, 130, 163, 175, 226, 239, 361, 366, 381, 387, 394, 421, 438, 449, 464, 465, 467, 468, 470, 471, 474, 475, 492, 558, 563, 565, 570, 618, 665, 687], "give": [10, 12, 13, 660, 687], "iter": [10, 12, 13, 153, 154, 155, 156, 336, 337, 345, 348, 353, 365, 436, 437, 452, 456, 687], "partit": 10, "robust": 10, "robustli": 10, "print_all_docu": [10, 299], "mongoc_collection_find_with_opt": [10, 12, 13, 14, 261, 274, 299, 326, 329, 337, 347, 352, 353, 398, 410, 437, 455, 456, 511, 548, 687], "consum": [10, 474, 486], "extra": [10, 19, 119, 284, 325, 354, 386, 398, 401, 660, 688], "becom": [10, 240, 619, 660, 661], "demonstr": [10, 12, 13, 241, 260, 276, 385, 687, 688], "cap": [10, 687], "tail": 10, "oplog": 10, "ifdef": [10, 238, 270, 474, 478], "_win32": [10, 474, 478], "sleep": [10, 239, 687], "_n": 10, "endif": [10, 238, 270, 474, 478, 662], "print_bson": 10, "b": [10, 11, 219], "query_collect": 10, "last_tim": 10, "bson_assert": [10, 12, 23, 329], "bson_append_document_begin": [10, 365, 460, 687], "bson_append_timestamp": 10, "bson_append_document_end": [10, 365, 460, 687], "awaitdata": [10, 304, 346, 347, 352], "tail_collect": 10, "bson_iter_t": [10, 12, 156, 365], "mongoc_cursor_mor": [10, 14, 344, 353], "bson_iter_init_find": [10, 12, 156, 365], "bson_iter_holds_timestamp": 10, "bson_iter_timestamp": 10, "mongoc_error_serv": [10, 13, 296], "exit": [10, 18, 20, 156, 460, 687], "usag": [10, 12, 23, 416, 460], "mongo_uri": 10, "made": [10, 214, 215, 460, 554], "wall": [10, 12, 23, 461, 512, 660], "8458503739429355503": 10, "oid": [10, 22, 395, 396, 397, 399, 400, 401, 687], "5372ab0a25164be923d10d50": 10, "op": 10, "timestamp": [10, 11, 21, 156, 246, 247, 255, 275, 331, 382], "1400023818": 10, "v": [10, 468], "line": [10, 19, 262, 386, 395, 396, 397, 398, 399, 400, 401, 660, 687], "sampl": [10, 12, 19, 23, 687], "mongoc_cursor_set_max_await_time_m": [10, 14, 205, 302, 303, 343, 353, 364, 365], "repositori": [11, 688], "gdbinit": 11, "helper": [11, 12, 13, 21, 23, 220, 241, 275, 315, 319, 325, 330, 331, 374, 382, 555, 562, 687, 688], "data": [11, 12, 13, 17, 23, 27, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 122, 124, 125, 152, 154, 155, 169, 170, 171, 181, 182, 193, 194, 195, 199, 239, 261, 262, 275, 331, 345, 354, 382, 409, 417, 418, 420, 440, 459, 461, 485, 487, 489, 575, 581, 619, 650, 660, 685, 687, 688], "directori": [11, 19, 119, 687, 689], "prompt": [11, 19], "haven": 11, "printbson": 11, "content": [11, 180, 281, 407, 409, 420, 427, 444, 612, 619], "prefix": [11, 212, 411, 460, 660], "0x555556cd7310": 11, "len": [11, 170, 688], "475": 11, "int32": [11, 162, 205, 210, 241, 242, 275, 276, 277, 280, 283, 284, 295, 296, 298, 303, 315, 316, 319, 331, 332, 355, 358, 363, 365, 368, 374, 375, 382, 383, 411, 413, 414, 417, 418, 652, 653], "numberint": 11, "42": [11, 12, 386, 398, 401], "int64": [11, 275, 304, 331, 382, 433, 621, 652, 653], "numberlong": 11, "3000000042": 11, "st\u0155\u00ec\u00f1g": 11, "objectid": [11, 429, 687, 689], "5a1442f3122d331c3c6757e1": 11, "utcdatetim": 11, "1511277299031": 11, "arrayofint": 11, "embeddeddocu": 11, "arrayofstr": 11, "doubl": [11, 12, 465, 486, 487], "718280": 11, "notherdoc": 11, "binari": [11, 124, 125, 165, 166, 173, 174, 176, 182, 186, 195, 198, 688], "02": 11, "3031343532333637": 11, "regex": 11, "z": [11, 12, 662], "im": 11, "javascript": 11, "jsw": 11, "scope": [11, 19, 27, 31, 33, 39, 40, 42, 43, 50, 53, 55, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105], "141593": 11, "718282": 11, "4294967295": 11, "script": 11, "standard": [11, 19, 284, 314, 574, 660], "y": [11, 241, 276, 662], "verbos": 11, "19": [11, 23], "inlin": [11, 12], "raw": [11, 156, 162, 241, 242, 275, 276, 280, 315, 316, 331, 332, 358, 374, 375, 382, 383], "x13": 11, "x00": 11, "x10x": 11, "x01": 11, "x10y": 11, "x02": 11, "libbson": [11, 13, 14, 17, 687, 688, 689], "symbol": [11, 298, 446, 461, 689], "pymongo": 11, "python": [11, 19], "m": [11, 261, 660], "pip": 11, "No": [11, 13, 119, 241, 304, 315, 322, 337, 374, 378, 514, 611, 619], "modul": [11, 19], "again": [11, 13, 260, 547, 598, 660], "lldbinit": 11, "lldb_bson": 11, "py": [11, 19], "correctli": [11, 653], "denable_debug_assert": 11, "ll": [12, 23], "write": [12, 13, 14, 16, 17, 20, 23, 131, 133, 134, 143, 144, 145, 147, 156, 159, 160, 161, 162, 166, 194, 201, 213, 222, 239, 241, 242, 244, 248, 260, 261, 272, 273, 277, 279, 280, 285, 286, 288, 289, 290, 291, 295, 296, 300, 301, 304, 305, 309, 310, 311, 312, 313, 315, 316, 319, 320, 321, 324, 327, 328, 329, 346, 347, 350, 355, 356, 357, 358, 360, 363, 374, 375, 380, 381, 386, 398, 401, 409, 411, 413, 414, 417, 418, 419, 420, 451, 460, 474, 512, 538, 545, 546, 547, 548, 561, 569, 571, 575, 577, 589, 590, 598, 609, 622, 637, 659, 663, 665, 666, 667, 668, 669, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 687, 688], "don": [12, 23, 238, 270, 461], "try": [12, 13, 23, 260, 435, 598, 653, 660], "meant": [12, 23, 262, 263, 557], "insert_data": [12, 23], "bulk": [12, 14, 16, 17, 23, 32, 44, 54, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 201, 276, 285, 286, 305, 311, 312, 332, 383], "enum": [12, 21, 23, 384, 473, 485, 498, 513, 514, 525, 610, 611], "ndoc": [12, 23], "bcon_doubl": [12, 23], "tag": [12, 19, 23, 499, 505, 511, 627, 660, 682], "dog": [12, 23], "cat": [12, 23], "mous": [12, 23], "lot": [12, 23, 485], "print_r": [12, 23], "array_it": 12, "val": 12, "mongoc_database_command_simpl": [12, 14, 374, 375, 381, 383, 685], "goto": [12, 23, 156, 260, 261, 262, 598, 687, 688], "bson_iter_holds_arrai": 12, "bson_iter_recurs": 12, "extract": [12, 19, 660], "bson_iter_next": 12, "bson_iter_holds_doubl": 12, "bson_iter_doubl": 12, "map": [12, 125, 126, 196, 578, 589, 590, 688], "framework": [12, 14, 16, 17], "occurr": 12, "just": [12, 460, 497, 511, 660], "emit": [12, 621, 653], "pair": [12, 512, 660, 687], "mapper": 12, "foreach": 12, "var": 12, "length": [12, 170, 219, 235, 265, 312, 411, 430, 449, 562, 592, 687], "mongoc_database_read_command_with_opt": [12, 14, 356, 381], "retryabl": [12, 159, 160, 161, 162, 205, 209, 210, 241, 275, 277, 278, 279, 280, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 356, 357, 358, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 581], "retri": [12, 205, 209, 210, 241, 260, 262, 275, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 598, 660], "undesir": 12, "map_reduce_bas": 12, "query_don": 12, "out_collection_nam": 12, "outcollect": 12, "out_collect": 12, "find_queri": 12, "construct": [12, 135, 141, 149, 151, 162, 205, 210, 213, 238, 241, 242, 270, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 401, 411, 621, 622, 687, 688], "argument": [12, 13, 119, 135, 137, 139, 141, 149, 151, 160, 161, 162, 199, 220, 234, 241, 242, 245, 248, 249, 260, 262, 264, 266, 276, 279, 280, 288, 289, 290, 291, 295, 296, 300, 301, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 332, 346, 350, 351, 352, 354, 357, 358, 363, 373, 374, 375, 376, 377, 383, 386, 395, 396, 398, 399, 400, 401, 422, 440, 442, 446, 459, 490, 547, 607, 608, 609, 663, 687], "bcon_cod": 12, "doesn": [12, 265, 386, 397, 398, 401], "mongoc_database_get_collect": [12, 14, 23, 260, 262, 378, 379, 380, 381, 598], "contact": [12, 345], "immedi": [12, 119, 240, 337], "advanc": [12, 14, 16, 17, 23, 246, 247, 687], "map_reduce_advanc": 12, "read_pref": [12, 159, 160, 161, 162, 220, 241, 242, 268, 276, 277, 278, 279, 280, 282, 283, 284, 298, 299, 304, 315, 316, 323, 355, 356, 357, 358, 374, 375, 379, 411, 499, 500, 501, 502, 503, 504, 505, 506, 508, 509, 510, 511, 593, 608], "mongoc_database_command": [12, 14, 357, 381, 685], "aggreg": [12, 14, 16, 17, 146, 156, 275, 277, 286, 290, 291, 320, 328, 329, 331, 346, 347, 355, 382, 386, 548], "copyright": [12, 23], "2016": [12, 19, 23], "licens": [12, 23], "under": [12, 23], "apach": [12, 23], "complianc": [12, 23], "http": [12, 19, 23, 239, 687, 688], "www": [12, 23], "org": [12, 19, 23, 688], "law": [12, 23], "agre": [12, 23], "softwar": [12, 23], "AS": [12, 23], "basi": [12, 23, 239], "warranti": [12, 23], "OR": [12, 23], "condit": [12, 23, 662], "OF": [12, 23], "kind": [12, 23, 460], "express": [12, 19, 23, 146, 247, 255, 277, 286, 290, 291, 320, 328, 329, 355, 386, 688], "govern": [12, 23, 660], "permiss": [12, 23], "exit_cod": [12, 156, 260, 261, 262, 598], "tlocal": [12, 23], "strncmp": [12, 23], "bson_strdup": [12, 23], "bson_strdup_printf": [12, 23, 621, 622], "otherwis": [12, 20, 21, 137, 139, 141, 149, 151, 155, 159, 160, 162, 165, 166, 173, 174, 176, 186, 187, 188, 189, 198, 199, 201, 227, 240, 241, 242, 244, 252, 259, 262, 265, 276, 277, 278, 279, 280, 282, 283, 284, 290, 291, 295, 296, 298, 315, 316, 320, 321, 323, 328, 329, 332, 336, 337, 348, 355, 356, 357, 358, 363, 374, 375, 379, 383, 395, 396, 397, 398, 399, 400, 406, 407, 409, 411, 415, 417, 418, 424, 435, 441, 442, 461, 476, 481, 489, 496, 512, 544, 554, 556, 558, 566, 568, 572, 573, 575, 577, 580, 593, 615, 624, 625, 626, 627, 628, 632, 636, 637, 639, 641, 646, 647, 651, 652, 653, 654, 660, 670], "cd": [12, 19, 23, 688], "basic_aggreg": 12, "agg": 12, "000000": [12, 687], "timemilli": 12, "155": 12, "input": [12, 13, 689], "84": [12, 397, 401], "126": 12, "63": 12, "21": 12, "14": [12, 19, 397, 401], "fill": [13, 213, 244, 248, 277, 278, 290, 291, 299, 302, 303, 304, 312, 313, 328, 329, 355, 356, 365, 420, 453, 454, 455], "subsystem": [13, 474], "human": 13, "readabl": [13, 593], "mongoc_error_cli": 13, "mongoc_error_client_too_big": 13, "larger": 13, "mongoc_error_client_authent": 13, "wrong": [13, 461], "credenti": [13, 123, 194, 649, 660], "mongoc_error_client_no_acceptable_p": 13, "mongoc_error_client_in_exhaust": 13, "began": 13, "exhaust": [13, 304, 348, 660], "mongoc_error_client_session_failur": 13, "mongoc_error_client_invalid_encryption_arg": 13, "side": [13, 14, 16, 17, 34, 45, 56, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 135, 141, 149, 151, 153, 164, 192, 193, 195, 196, 199, 204, 227, 254, 277, 278, 290, 291, 296, 299, 302, 303, 304, 312, 313, 320, 328, 329, 335, 337, 345, 353, 354, 355, 356, 360, 363, 365, 398, 478, 611], "level": [13, 14, 16, 17, 21, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 164, 192, 193, 195, 196, 204, 213, 227, 244, 296, 346, 347, 360, 363, 486, 496, 548, 562, 580, 660], "mongoc_error_client_invalid_encryption_st": 13, "mongoc_error_client_invalid_load_balanc": 13, "balanc": [13, 37, 48, 59, 213, 660], "advert": 13, "mongoc_error_stream": 13, "mongoc_error_stream_name_resolut": 13, "mongoc_error_stream_socket": 13, "commun": [13, 340, 688], "mongoc_error_stream_connect": 13, "mongoc_error_protocol": 13, "mongoc_error_protocol_invalid_repli": 13, "corrupt": 13, "mongoc_error_protocol_bad_wire_vers": 13, "too": [13, 235, 304, 386, 398, 401], "old": [13, 132, 145, 299, 304, 339, 350, 395, 401, 688], "mongoc_error_cursor": 13, "mongoc_error_cursor_invalid_cursor": 13, "bad": 13, "mongoc_error_change_stream_no_resume_token": 13, "resum": [13, 154, 275, 331, 382, 485], "mongoc_change_stream_next": [13, 14, 154, 156, 275, 331, 382], "mongoc_error_queri": 13, "mongoc_error_query_failur": [13, 296], "mongoc_error_sasl": 13, "sasl": [13, 17, 19, 660], "sasl_error": 13, "mongoc_error_bson": 13, "mongoc_error_bson_invalid": 13, "overs": 13, "mongoc_collection_create_index": [13, 14, 326, 468], "mongoc_error_namespac": 13, "mongoc_error_namespace_invalid": 13, "mongoc_error_command_invalid_arg": 13, "mongoc_error_duplicate_kei": 13, "violat": 13, "mongoc_error_max_time_ms_expir": 13, "maxtimem": [13, 261, 304, 352, 391], "mongoc_error_server_selection_invalid_id": 13, "serverid": [13, 162, 205, 210, 241, 242, 276, 277, 280, 283, 284, 295, 296, 298, 303, 304, 315, 316, 319, 332, 347, 355, 358, 363, 365, 368, 374, 375, 383], "conflict": 13, "pin": [13, 257], "denot": 13, "sessionid": [13, 162, 205, 210, 241, 242, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 347, 355, 358, 363, 365, 368, 374, 375, 383, 386, 410], "mongoc_error_collect": 13, "mongoc_error_collection_insert_fail": 13, "mongoc_error_collection_update_fail": 13, "mongoc_error_collection_delete_fail": 13, "mongoc_collection_insert_bulk": [13, 14, 326], "mongoc_collection_update_on": [13, 14, 261, 320, 326, 327, 328, 687], "mongoc_collection_update_mani": [13, 14, 320, 326, 327, 329], "mongoc_collection_replace_on": [13, 14, 321, 326, 327, 329], "mongoc_collection_delete_on": [13, 14, 289, 290, 317, 326, 384, 687], "mongoc_collection_delete_mani": [13, 14, 289, 291, 317, 326, 384], "mongoc_error_gridf": 13, "mongoc_error_gridfs_chunk_miss": 13, "miss": [13, 156, 241, 315, 374], "chunk": [13, 212, 411, 413, 414, 417, 418, 426, 440, 457, 459], "mongoc_error_gridfs_corrupt": 13, "inconsist": [13, 18, 22, 563], "mongoc_error_gridfs_invalid_filenam": 13, "filenam": [13, 413, 414, 417, 418, 428, 438, 445, 449, 454, 459, 460], "mongoc_gridfs_remove_by_filenam": [13, 14, 460], "mongoc_error_gridfs_protocol_error": 13, "mongoc_gridfs_file_set_id": [13, 14, 449, 460], "mongoc_gridfs_file_sav": [13, 14, 443, 444, 445, 447, 448, 449, 460], "mongoc_error_gridfs_bucket_file_not_found": 13, "mongoc_error_gridfs_bucket_stream": 13, "mongoc_gridfs_bucket_upload_from_stream": [13, 14, 416, 418], "mongoc_error_scram": 13, "mongoc_error_scram_protocol_error": 13, "scram": [13, 17, 646], "sha": [13, 17, 646], "mongoc_error_server_select": [13, 660], "mongoc_error_server_selection_failur": 13, "prefer": [13, 15, 159, 160, 162, 213, 217, 241, 242, 244, 260, 268, 275, 277, 279, 280, 282, 284, 299, 304, 308, 315, 316, 323, 331, 350, 355, 356, 357, 358, 371, 374, 375, 379, 381, 382, 411, 460, 495, 498, 499, 500, 501, 502, 504, 505, 508, 509, 510, 511, 512, 521, 547, 593, 598, 608, 627, 628, 657, 677, 689], "suppli": [13, 118, 125, 180, 249, 271, 688], "There": [13, 15, 19, 206, 208, 460, 547, 585, 610, 687, 688], "concern": [13, 131, 133, 159, 160, 161, 162, 166, 216, 222, 241, 242, 260, 267, 272, 275, 276, 277, 279, 280, 283, 284, 285, 286, 288, 289, 290, 291, 295, 296, 298, 300, 301, 304, 307, 309, 310, 311, 312, 313, 315, 316, 319, 320, 321, 322, 324, 327, 328, 329, 331, 332, 355, 356, 357, 358, 360, 363, 374, 375, 378, 380, 381, 382, 383, 386, 398, 401, 411, 490, 492, 493, 494, 495, 496, 512, 547, 548, 598, 607, 609, 622, 626, 628, 637, 656, 659, 663, 665, 666, 668, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684], "mongoc_error_transact": 13, "mongoc_error_transaction_invalid": 13, "transact": [13, 20, 162, 205, 210, 241, 242, 245, 249, 250, 258, 259, 260, 261, 262, 263, 273, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 538, 542, 544, 545, 547, 548, 598, 599, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610], "progress": [13, 131, 245, 249, 250, 259, 260, 581, 610], "commit": [13, 249, 259, 260, 262, 263, 275, 331, 382, 598, 601, 606, 610, 660], "abort": [13, 245, 250, 259, 260, 262, 386, 398, 401, 406, 546, 548, 610], "mongoc_error_client_side_encrypt": 13, "libmongocrypt": [13, 119], "librari": [13, 14, 17, 18, 117, 119, 185, 207, 662, 687, 688, 689], "decis": 13, "categori": 13, "correspond": [13, 182, 199, 205, 212, 302, 303, 364, 365, 473, 485, 513, 514, 611, 632], "perfectli": 13, "reliabl": [13, 260], "errorlabel": [13, 260, 598], "mongoc_error_has_label": [13, 14, 260, 598], "mongoc_client_session_start_transact": [13, 14, 162, 205, 210, 241, 242, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 261, 273, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 385, 386, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "leav": [13, 145, 350, 351], "state": [13, 18, 19, 158, 258, 472, 593, 594, 610], "stepdown": 13, "sequenc": [13, 20, 261, 262, 263, 273, 478, 538, 545, 661, 687], "mongoc_client_session_commit_transact": [13, 14, 245, 246, 247, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "whether": [13, 71, 77, 81, 244, 253, 259, 296, 385, 481, 483, 512, 516, 518, 519, 522, 660, 676], "choos": [13, 19, 145, 211, 244, 299, 350, 396, 497, 512, 660, 689], "design": [13, 122, 185, 193, 207], "flaw": 13, "origin": [13, 119, 307, 309], "cannot": [13, 21, 235, 243, 262, 311, 337, 352, 482, 548, 646, 647, 648, 649, 650, 655, 658, 688], "therefor": [13, 18, 333, 461, 474, 565, 577, 660], "tell": [13, 449, 685, 687], "24": [13, 662], "locktimeout": 13, "fix": 13, "preserv": [13, 154, 281, 359], "backward": [13, 18, 132, 145, 339, 350, 351], "maintain": [13, 274], "mongoc_client_command_with_opt": [13, 14, 159, 241, 274, 688], "mongoc_database_command_with_opt": [13, 14, 356, 374, 381], "mongoc_collection_count_with_opt": [13, 14, 283, 326], "mongoc_client_get_database_names_with_opt": [13, 14, 209, 274], "mongoc_error_api_version_legaci": [13, 236, 266], "mongoc_error_api_version_2": [13, 236, 266, 548], "mongoc_client_pool_set_error_api": [13, 14, 239, 266, 687], "basic": [14, 17, 272, 284, 324, 380, 437, 460, 478, 660], "troubleshoot": [14, 17, 687], "distinct": [14, 16, 17, 35, 46, 57, 162, 213, 241, 242, 276, 277, 280, 304, 315, 316, 332, 355, 358, 374, 375, 383, 548], "mapreduc": [14, 16, 17, 241, 242, 315, 316, 374, 375], "microsoft": [14, 16, 17, 19, 549, 550, 552], "visual": [14, 16, 17], "studio": [14, 16, 17], "aid": [14, 16, 17], "debug": [14, 16, 17, 19, 21, 689], "refer": [14, 17, 119, 123, 194, 256, 282, 284, 304, 528, 529, 531, 535, 596, 660, 687, 688], "mongoc_auto_encryption_opts_new": [14, 114, 126, 127, 688], "mongoc_auto_encryption_opts_destroi": [14, 115, 127, 688], "mongoc_auto_encryption_opts_set_keyvault_cli": [14, 20, 115, 121, 127, 688], "mongoc_auto_encryption_opts_set_keyvault_client_pool": [14, 20, 120, 127], "mongoc_auto_encryption_opts_set_keyvault_namespac": [14, 115, 127, 688], "mongoc_auto_encryption_opts_set_kms_provid": [14, 115, 127, 688], "mongoc_auto_encryption_opts_set_kms_credential_provider_callback": [14, 127, 194], "mongoc_auto_encryption_opts_set_schema_map": [14, 115, 127, 688], "mongoc_auto_encryption_opts_set_bypass_auto_encrypt": [14, 115, 127, 164, 176, 227, 688], "mongoc_auto_encryption_opts_set_extra": [14, 115, 127, 688], "mongoc_auto_encryption_opts_set_tls_opt": [14, 127], "mongoc_auto_encryption_opts_set_encrypted_fields_map": [14, 127], "mongoc_auto_encryption_opts_set_bypass_query_analysi": [14, 127, 176], "mongoc_bulk_operation_delet": [14, 147], "mongoc_bulk_operation_delete_on": [14, 147], "mongoc_bulk_operation_get_hint": [14, 131, 147], "mongoc_bulk_operation_get_write_concern": [14, 147], "mongoc_bulk_operation_insert_with_opt": [14, 134, 147], "mongoc_bulk_operation_remove_many_with_opt": [14, 128, 129, 136, 138, 139, 141, 147], "mongoc_bulk_operation_remove_one_with_opt": [14, 128, 129, 136, 137, 138, 147], "mongoc_bulk_operation_set_client_sess": [14, 147], "mongoc_bulk_operation_set_com": [14, 147], "mongoc_bulk_operation_set_hint": [14, 147], "mongoc_bulk_operation_set_let": [14, 147], "mongoc_bulk_operation_upd": [14, 147, 150, 285, 286], "mongoc_bulk_operation_update_on": [14, 147], "mongoc_client_watch": [14, 156, 274, 331, 382], "mongoc_database_watch": [14, 156, 275, 331, 381], "mongoc_collection_watch": [14, 156, 275, 382], "mongoc_change_stream_get_resume_token": [14, 156, 275, 331, 382], "mongoc_change_stream_error_docu": [14, 155, 156, 275, 331, 382], "mongoc_change_stream_destroi": [14, 156, 275, 331, 382], "mongoc_client_encryption_new": [14, 192, 193, 195, 197, 204, 688], "mongoc_client_encryption_destroi": [14, 189, 204, 688], "mongoc_client_encryption_create_datakei": [14, 172, 174, 204, 688], "mongoc_client_encryption_rewrap_many_datakei": [14, 201, 203, 204], "mongoc_client_encryption_delete_kei": [14, 204], "mongoc_client_encryption_get_crypt_shared_vers": [14, 204, 207], "mongoc_client_encryption_get_kei": [14, 204], "mongoc_client_encryption_add_key_alt_nam": [14, 204], "mongoc_client_encryption_remove_key_alt_nam": [14, 204], "mongoc_client_encryption_get_key_by_alt_nam": [14, 204], "mongoc_client_encryption_encrypt": [14, 166, 173, 184, 204, 688], "mongoc_client_decryption_decrypt": [14, 176, 204], "mongoc_client_encryption_datakey_opts_new": [14, 167, 172, 688], "mongoc_client_encryption_datakey_opts_destroi": [14, 168, 172, 688], "mongoc_client_encryption_datakey_opts_set_masterkei": [14, 172], "mongoc_client_encryption_datakey_opts_set_keyaltnam": [14, 172, 181, 688], "mongoc_client_encryption_datakey_opts_set_keymateri": [14, 172], "mongoc_client_encryption_rewrap_many_datakey_result_new": [14, 200, 203], "mongoc_client_encryption_rewrap_many_datakey_result_destroi": [14, 202, 203], "mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result": [14, 203], "mongoc_client_encryption_encrypt_opts_new": [14, 177, 184, 688], "mongoc_client_encryption_encrypt_opts_destroi": [14, 178, 184, 688], "mongoc_client_encryption_encrypt_opts_set_keyid": [14, 181, 184, 688], "mongoc_client_encryption_encrypt_opts_set_keyaltnam": [14, 169, 182, 184, 688], "mongoc_client_encryption_encrypt_opts_set_algorithm": [14, 180, 183, 184, 688], "mongoc_client_encryption_encrypt_opts_set_contention_factor": [14, 184], "mongoc_client_encryption_encrypt_opts_set_query_typ": [14, 184], "mongoc_client_encryption_opts_new": [14, 190, 196, 197, 688], "mongoc_client_encryption_opts_destroi": [14, 191, 197, 688], "mongoc_client_encryption_opts_set_keyvault_cli": [14, 20, 197, 204, 688], "mongoc_client_encryption_opts_set_keyvault_namespac": [14, 166, 197, 688], "mongoc_client_encryption_opts_set_kms_credential_provider_callback": [14, 123, 197], "mongoc_client_encryption_opts_set_kms_provid": [14, 197, 688], "mongoc_client_encryption_opts_set_tls_opt": [14, 197], "mongoc_client_pool_destroi": [14, 20, 230, 231, 239, 687], "mongoc_client_pool_enable_auto_encrypt": [14, 20, 121, 164, 166, 204, 239], "mongoc_client_pool_max_s": [14, 239], "mongoc_client_pool_min_s": [14, 239], "mongoc_client_pool_new_with_error": [14, 230, 239], "mongoc_client_pool_set_appnam": [14, 239], "mongoc_client_pool_set_server_api": [14, 239], "mongoc_client_pool_try_pop": [14, 238, 239], "mongoc_client_session_in_transact": [14, 261, 544], "mongoc_client_session_get_transaction_st": [14, 261], "mongoc_client_session_abort_transact": [14, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_advance_cluster_tim": [14, 245, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_advance_operation_tim": [14, 245, 246, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_with_transact": [14, 261, 263], "mongoc_client_session_append": [14, 162, 205, 210, 241, 242, 260, 261, 262, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 546, 548, 598], "mongoc_client_session_get_cli": [14, 245, 246, 247, 249, 250, 252, 253, 254, 255, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_get_cluster_tim": [14, 245, 246, 247, 249, 250, 251, 253, 254, 255, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_get_dirti": [14, 261], "mongoc_client_session_get_operation_tim": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_get_opt": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_get_lsid": [14, 245, 246, 247, 249, 250, 251, 252, 253, 255, 256, 257, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_get_server_id": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 260, 261, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_session_destroi": [14, 20, 245, 246, 247, 249, 251, 252, 253, 254, 255, 256, 257, 260, 261, 262, 273, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_command": [14, 160, 274, 685], "mongoc_client_command_simple_with_server_id": [14, 274], "mongoc_client_enable_auto_encrypt": [14, 20, 115, 116, 117, 118, 119, 120, 122, 124, 125, 126, 166, 173, 176, 204, 227, 274, 688], "mongoc_client_find_databases_with_opt": [14, 274, 349, 351, 352], "mongoc_client_get_crypt_shared_vers": [14, 185, 274], "mongoc_client_get_database_nam": [14, 274], "mongoc_client_get_default_databas": [14, 274, 649], "mongoc_client_get_gridf": [14, 274, 460], "mongoc_client_get_handshake_descript": [14, 274], "mongoc_client_get_max_bson_s": [14, 274], "mongoc_client_get_max_message_s": [14, 274], "mongoc_client_get_read_concern": [14, 274, 494], "mongoc_client_get_read_pref": [14, 274], "mongoc_client_get_server_descript": [14, 213, 274, 528, 531, 535, 537], "mongoc_client_get_server_statu": [14, 274], "mongoc_client_get_uri": [14, 274], "mongoc_client_get_write_concern": [14, 274, 674], "mongoc_client_new_from_uri_with_error": [14, 224, 274], "mongoc_client_read_command_with_opt": [14, 159, 162, 220, 242, 274, 276, 277, 280, 283, 284, 298, 315, 316, 325, 330, 332, 355, 358, 374, 375, 383, 411, 490], "mongoc_client_read_write_command_with_opt": [14, 159, 274], "mongoc_client_reset": [14, 274], "mongoc_client_select_serv": [14, 162, 205, 210, 213, 241, 242, 274, 276, 277, 280, 283, 284, 295, 296, 298, 303, 304, 315, 316, 319, 332, 355, 358, 363, 365, 368, 374, 375, 383], "mongoc_client_set_appnam": [14, 235, 274, 687], "mongoc_client_set_read_concern": [14, 274, 494], "mongoc_client_set_read_pref": [14, 274], "mongoc_client_set_server_api": [14, 274], "mongoc_client_set_stream_initi": [14, 274], "mongoc_client_set_write_concern": [14, 274, 674], "mongoc_client_start_sess": [14, 20, 143, 162, 205, 210, 241, 242, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 262, 274, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_client_write_command_with_opt": [14, 159, 162, 241, 242, 248, 274, 277, 280, 286, 288, 290, 291, 295, 296, 312, 313, 316, 319, 320, 328, 329, 332, 355, 358, 363, 375, 383, 386, 411, 663], "mongoc_handshake_data_append": [14, 274], "mongoc_collection_command": [14, 279, 326, 685], "mongoc_collection_command_simpl": [14, 23, 299, 304, 315, 316, 326, 332, 685, 687], "mongoc_collection_command_with_opt": [14, 278, 315, 326], "mongoc_collection_copi": [14, 326], "mongoc_collection_count_docu": [14, 282, 284, 298, 326], "mongoc_collection_estimated_document_count": [14, 282, 283, 284, 326], "mongoc_collection_count": [14, 283, 284, 326, 687], "mongoc_collection_create_bulk_oper": [14, 326], "mongoc_collection_create_index_with_opt": [14, 326], "mongoc_collection_delet": [14, 326], "mongoc_collection_drop_index": [14, 326, 685], "mongoc_collection_drop_index_with_opt": [14, 326], "mongoc_collection_drop_with_opt": [14, 293, 294, 326], "mongoc_collection_ensure_index": [14, 326], "mongoc_collection_find": [14, 326, 342, 351, 485], "mongoc_collection_find_and_modifi": [14, 326], "mongoc_collection_find_and_modify_with_opt": [14, 300, 326, 386, 395, 396, 397, 398, 399, 400, 401], "mongoc_collection_find_index": [14, 326], "mongoc_collection_find_indexes_with_opt": [14, 302, 326, 349, 351, 352], "mongoc_collection_get_last_error": [14, 326], "mongoc_collection_get_nam": [14, 279, 326], "mongoc_collection_get_read_concern": [14, 326], "mongoc_collection_get_read_pref": [14, 326], "mongoc_collection_get_write_concern": [14, 326], "mongoc_collection_insert": [14, 326], "mongoc_collection_read_command_with_opt": [14, 278, 326], "mongoc_collection_read_write_command_with_opt": [14, 278, 326], "mongoc_collection_remov": [14, 326], "mongoc_collection_renam": [14, 326], "mongoc_collection_rename_with_opt": [14, 318, 326], "mongoc_collection_sav": [14, 326], "mongoc_collection_set_read_concern": [14, 281, 326], "mongoc_collection_set_read_pref": [14, 281, 326], "mongoc_collection_set_write_concern": [14, 281, 326], "mongoc_collection_stat": [14, 326], "mongoc_collection_upd": [14, 326, 400], "mongoc_collection_valid": [14, 326], "mongoc_cursor_clon": [14, 353], "mongoc_cursor_curr": [14, 353], "mongoc_cursor_error_docu": [14, 153, 159, 277, 278, 299, 302, 303, 304, 336, 353, 355, 356, 365], "mongoc_cursor_get_batch_s": [14, 353], "mongoc_cursor_get_hint": [14, 353], "mongoc_cursor_get_host": [14, 353, 462], "mongoc_cursor_get_id": [14, 353], "mongoc_cursor_get_limit": [14, 353], "mongoc_cursor_get_max_await_time_m": [14, 353], "mongoc_cursor_is_al": [14, 353], "mongoc_cursor_new_from_command_repli": [14, 353], "mongoc_cursor_new_from_command_reply_with_opt": [14, 346, 353], "mongoc_cursor_set_batch_s": [14, 205, 302, 303, 352, 353, 364, 365], "mongoc_cursor_set_hint": [14, 339, 353], "mongoc_cursor_set_limit": [14, 205, 302, 303, 342, 353, 364, 365], "mongoc_database_add_us": [14, 381], "mongoc_database_aggreg": [14, 381], "mongoc_database_copi": [14, 381], "mongoc_database_drop": [14, 381], "mongoc_database_drop_with_opt": [14, 362, 381], "mongoc_database_find_collect": [14, 381], "mongoc_database_find_collections_with_opt": [14, 349, 351, 352, 364, 381], "mongoc_database_get_collection_nam": [14, 381], "mongoc_database_get_collection_names_with_opt": [14, 365, 367, 381], "mongoc_database_get_nam": [14, 211, 381], "mongoc_database_get_read_concern": [14, 381], "mongoc_database_get_read_pref": [14, 381], "mongoc_database_get_write_concern": [14, 381], "mongoc_database_has_collect": [14, 381], "mongoc_database_read_write_command_with_opt": [14, 356, 381], "mongoc_database_remove_all_us": [14, 381], "mongoc_database_remove_us": [14, 381], "mongoc_database_set_read_concern": [14, 359, 381], "mongoc_database_set_read_pref": [14, 359, 381], "mongoc_database_set_write_concern": [14, 359, 381], "mongoc_find_and_modify_opts_append": [14, 301, 398, 401], "mongoc_find_and_modify_opts_destroi": [14, 386, 394, 395, 396, 397, 398, 399, 400, 401], "mongoc_find_and_modify_opts_get_bypass_document_valid": [14, 401], "mongoc_find_and_modify_opts_get_field": [14, 401], "mongoc_find_and_modify_opts_get_flag": [14, 401], "mongoc_find_and_modify_opts_get_max_time_m": [14, 401], "mongoc_find_and_modify_opts_get_sort": [14, 401], "mongoc_find_and_modify_opts_get_upd": [14, 401], "mongoc_find_and_modify_opts_new": [14, 386, 395, 396, 397, 398, 399, 400, 401], "mongoc_find_and_modify_opts_set_bypass_document_valid": [14, 388, 401], "mongoc_find_and_modify_opts_set_field": [14, 389, 401], "mongoc_find_and_modify_opts_set_flag": [14, 390, 396, 400, 401], "mongoc_find_and_modify_opts_set_max_time_m": [14, 386, 391, 401], "mongoc_find_and_modify_opts_set_sort": [14, 392, 401], "mongoc_find_and_modify_opts_set_upd": [14, 386, 393, 395, 396, 397, 398, 399, 401], "mongoc_gridfs_file_list_destroi": [14, 437, 452, 456, 460], "mongoc_gridfs_file_list_error": [14, 437], "mongoc_gridfs_file_list_next": [14, 437, 460], "mongoc_gridfs_file_destroi": [14, 419, 420, 436, 437, 449, 453, 454, 455, 460], "mongoc_gridfs_file_error": [14, 439, 441, 449, 451, 460], "mongoc_gridfs_file_get_alias": [14, 449], "mongoc_gridfs_file_get_chunk_s": [14, 449], "mongoc_gridfs_file_get_content_typ": [14, 449], "mongoc_gridfs_file_get_filenam": [14, 449, 460], "mongoc_gridfs_file_get_id": [14, 449], "mongoc_gridfs_file_get_length": [14, 449], "mongoc_gridfs_file_get_md5": [14, 449], "mongoc_gridfs_file_get_metadata": [14, 449], "mongoc_gridfs_file_get_upload_d": [14, 449], "mongoc_gridfs_file_readv": [14, 449], "mongoc_gridfs_file_remov": [14, 449], "mongoc_gridfs_file_seek": [14, 449], "mongoc_gridfs_file_set_alias": [14, 449], "mongoc_gridfs_file_set_content_typ": [14, 449], "mongoc_gridfs_file_set_filenam": [14, 449], "mongoc_gridfs_file_set_md5": [14, 449], "mongoc_gridfs_file_set_metadata": [14, 449], "mongoc_gridfs_file_tel": [14, 449], "mongoc_gridfs_file_writev": [14, 419, 449], "mongoc_stream_gridfs_new": [14, 449, 460], "mongoc_gridfs_bucket_abort_upload": [14, 416], "mongoc_gridfs_bucket_delete_by_id": [14, 416], "mongoc_gridfs_bucket_destroi": [14, 411, 416], "mongoc_gridfs_bucket_download_to_stream": [14, 416], "mongoc_gridfs_bucket_find": [14, 416], "mongoc_gridfs_bucket_new": [14, 416], "mongoc_gridfs_bucket_open_download_stream": [14, 415, 416], "mongoc_gridfs_bucket_open_upload_stream": [14, 406, 414, 415, 416], "mongoc_gridfs_bucket_open_upload_stream_with_id": [14, 406, 413, 415, 416], "mongoc_gridfs_bucket_stream_error": [14, 412, 413, 414, 416], "mongoc_gridfs_bucket_upload_from_stream_with_id": [14, 416, 417], "mongoc_gridfs_create_fil": [14, 460, 577], "mongoc_gridfs_create_file_from_stream": [14, 460, 577], "mongoc_gridfs_destroi": [14, 212, 460], "mongoc_gridfs_drop": [14, 460], "mongoc_gridfs_find": [14, 437, 460], "mongoc_gridfs_find_on": [14, 460], "mongoc_gridfs_find_one_by_filenam": [14, 460], "mongoc_gridfs_find_one_with_opt": [14, 453, 460], "mongoc_gridfs_find_with_opt": [14, 452, 460], "mongoc_gridfs_get_chunk": [14, 460], "mongoc_gridfs_get_fil": [14, 460], "mongoc_index_opt_geo_get_default": [14, 465], "mongoc_index_opt_geo_init": [14, 465, 468], "mongoc_index_opt_get_default": [14, 468], "mongoc_index_opt_init": [14, 468], "mongoc_index_opt_wt_get_default": [14, 471], "mongoc_index_opt_wt_init": [14, 471], "mongoc_matcher_destroi": [14, 477, 478], "mongoc_matcher_match": [14, 478], "mongoc_matcher_new": [14, 476, 478], "mongoc_optional_copi": [14, 483], "mongoc_optional_init": [14, 483], "mongoc_optional_is_set": [14, 482, 483], "mongoc_optional_set_valu": [14, 483], "mongoc_optional_valu": [14, 483], "mongoc_rand_add": [14, 486], "mongoc_rand_se": [14, 486], "mongoc_rand_statu": [14, 486], "mongoc_read_concern_append": [14, 162, 241, 242, 276, 277, 280, 283, 284, 298, 304, 315, 316, 355, 358, 368, 374, 375, 411, 497], "mongoc_read_concern_copi": [14, 497], "mongoc_read_concern_destroi": [14, 241, 260, 276, 368, 491, 495, 497, 598], "mongoc_read_concern_get_level": [14, 497], "mongoc_read_concern_is_default": [14, 497], "mongoc_read_concern_new": [14, 241, 260, 276, 304, 368, 497, 598], "mongoc_read_concern_set_level": [14, 241, 260, 276, 304, 368, 497, 598], "mongoc_read_prefs_add_tag": [14, 512], "mongoc_read_prefs_copi": [14, 512], "mongoc_read_prefs_get_hedg": [14, 512], "mongoc_read_prefs_get_max_staleness_second": [14, 512], "mongoc_read_prefs_get_mod": [14, 512], "mongoc_read_prefs_get_tag": [14, 512], "mongoc_read_prefs_is_valid": [14, 512], "mongoc_read_prefs_set_hedg": [14, 512], "mongoc_read_prefs_set_max_staleness_second": [14, 512], "mongoc_read_prefs_set_mod": [14, 512], "mongoc_read_prefs_set_tag": [14, 512], "mongoc_server_api_copi": [14, 523], "mongoc_server_api_deprecation_error": [14, 523], "mongoc_server_api_destroi": [14, 515, 521, 523], "mongoc_server_api_get_deprecation_error": [14, 523], "mongoc_server_api_get_strict": [14, 523], "mongoc_server_api_get_vers": [14, 523], "mongoc_server_api_new": [14, 523], "mongoc_server_api_strict": [14, 298, 523], "mongoc_server_api_version_from_str": [14, 525], "mongoc_server_api_version_to_str": [14, 525], "mongoc_server_description_destroi": [14, 213, 218, 244, 533, 535], "mongoc_server_description_hello_respons": [14, 531, 535], "mongoc_server_description_id": [14, 162, 205, 210, 241, 242, 276, 277, 280, 283, 284, 295, 296, 298, 303, 304, 315, 316, 319, 332, 355, 358, 363, 365, 368, 374, 375, 383, 535], "mongoc_server_description_ismast": [14, 535], "mongoc_server_description_last_update_tim": [14, 535], "mongoc_server_description_new_copi": [14, 535], "mongoc_server_description_round_trip_tim": [14, 535], "mongoc_session_opts_new": [14, 20, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 273, 538, 539, 540, 541, 542, 543, 544, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_session_opts_get_causal_consist": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 538, 539, 540, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_session_opts_set_causal_consist": [14, 20, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 273, 538, 539, 540, 541, 542, 543, 544, 545, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_session_opts_get_default_transaction_opt": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 538, 539, 540, 541, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_session_opts_set_default_transaction_opt": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 538, 539, 540, 541, 542, 543, 544, 545, 546, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_session_opts_get_snapshot": [14, 538], "mongoc_session_opts_set_snapshot": [14, 538, 543, 546], "mongoc_session_opts_get_transaction_opt": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 538, 539, 540, 541, 542, 543, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_session_opts_clon": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 538, 540, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_session_opts_destroi": [14, 20, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 261, 273, 538, 539, 541, 542, 543, 544, 545, 546, 547, 548, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_socket_accept": [14, 563], "mongoc_socket_bind": [14, 563], "mongoc_socket_clos": [14, 563], "mongoc_socket_connect": [14, 563], "mongoc_socket_destroi": [14, 549, 558, 563], "mongoc_socket_errno": [14, 551, 563], "mongoc_socket_getnameinfo": [14, 563], "mongoc_socket_getsocknam": [14, 563], "mongoc_socket_listen": [14, 563], "mongoc_socket_new": [14, 563], "mongoc_socket_recv": [14, 563], "mongoc_socket_send": [14, 563], "mongoc_socket_sendv": [14, 563], "mongoc_socket_setsockopt": [14, 563], "mongoc_ssl_opt_get_default": [14, 565], "mongoc_stream_file_get_fd": [14, 574], "mongoc_stream_file_new": [14, 409, 417, 418, 574], "mongoc_stream_file_new_for_path": [14, 409, 416, 417, 418, 460, 574], "mongoc_stream_socket_get_socket": [14, 584], "mongoc_stream_socket_new": [14, 584], "mongoc_stream_buffered_new": [14, 567, 569, 585, 588], "mongoc_stream_clos": [14, 409, 413, 414, 416, 417, 418, 585], "mongoc_stream_cork": [14, 585, 588], "mongoc_stream_destroi": [14, 416, 460, 566, 567, 568, 572, 573, 583, 585], "mongoc_stream_flush": [14, 585], "mongoc_stream_get_base_stream": [14, 585], "mongoc_stream_read": [14, 417, 418, 579, 585, 589], "mongoc_stream_readv": [14, 460, 577, 578, 585, 589], "mongoc_stream_setsockopt": [14, 585], "mongoc_stream_should_retri": [14, 585], "mongoc_stream_timed_out": [14, 585], "mongoc_stream_uncork": [14, 569, 585], "mongoc_stream_writ": [14, 578, 579, 585], "mongoc_stream_writev": [14, 577, 578, 579, 585, 589], "mongoc_topology_description_destroi": [14, 595, 596], "mongoc_topology_description_new_copi": [14, 596], "mongoc_transaction_opts_new": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 606, 607, 608, 609], "mongoc_transaction_opts_get_read_concern": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 603, 604, 605, 606, 607, 608, 609], "mongoc_transaction_opts_set_read_concern": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 608, 609], "mongoc_transaction_opts_get_write_concern": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 605, 606, 607, 608, 609], "mongoc_transaction_opts_set_write_concern": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608], "mongoc_transaction_opts_get_read_pref": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 604, 605, 606, 607, 608, 609], "mongoc_transaction_opts_set_read_pref": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 609], "mongoc_transaction_opts_get_max_commit_time_m": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_transaction_opts_set_max_commit_time_m": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 600, 601, 602, 603, 604, 605, 607, 608, 609], "mongoc_transaction_opts_clon": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_transaction_opts_destroi": [14, 245, 246, 247, 249, 250, 251, 252, 253, 254, 255, 256, 257, 260, 273, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 598, 599, 601, 602, 603, 604, 605, 606, 607, 608, 609], "mongoc_uri_copi": [14, 660], "mongoc_uri_get_compressor": [14, 660], "mongoc_uri_get_databas": [14, 660], "mongoc_uri_get_host": [14, 462, 660], "mongoc_uri_get_option_as_bool": [14, 660], "mongoc_uri_get_option_as_int32": [14, 622, 660], "mongoc_uri_get_option_as_int64": [14, 621, 660], "mongoc_uri_get_option_as_utf8": [14, 660], "mongoc_uri_get_opt": [14, 660], "mongoc_uri_get_password": [14, 660], "mongoc_uri_get_read_concern": [14, 660], "mongoc_uri_get_read_pref": [14, 660], "mongoc_uri_get_read_prefs_t": [14, 627, 660], "mongoc_uri_get_replica_set": [14, 660], "mongoc_uri_get_servic": [14, 660], "mongoc_uri_get_ssl": [14, 660], "mongoc_uri_get_str": [14, 660], "mongoc_uri_get_srv_hostnam": [14, 630, 660], "mongoc_uri_get_srv_service_nam": [14, 660], "mongoc_uri_get_tl": [14, 633, 660], "mongoc_uri_get_usernam": [14, 660], "mongoc_uri_get_write_concern": [14, 660], "mongoc_uri_has_opt": [14, 660], "mongoc_uri_new_for_host_port": [14, 660], "mongoc_uri_option_is_bool": [14, 660], "mongoc_uri_option_is_int32": [14, 644, 660], "mongoc_uri_option_is_int64": [14, 643, 653, 660], "mongoc_uri_option_is_utf8": [14, 660], "mongoc_uri_set_compressor": [14, 660], "mongoc_uri_set_databas": [14, 660], "mongoc_uri_set_option_as_int32": [14, 653, 660], "mongoc_uri_set_option_as_int64": [14, 652, 660], "mongoc_uri_set_password": [14, 660], "mongoc_uri_set_read_concern": [14, 660], "mongoc_uri_set_read_prefs_t": [14, 660], "mongoc_uri_set_usernam": [14, 660], "mongoc_uri_set_write_concern": [14, 660], "mongoc_uri_unescap": [14, 660], "mongoc_check_vers": [14, 662], "mongoc_get_major_vers": [14, 662], "mongoc_get_micro_vers": [14, 662], "mongoc_get_minor_vers": [14, 662], "mongoc_get_vers": [14, 662], "mongoc_write_concern_copi": [14, 685], "mongoc_write_concern_get_fsync": [14, 685], "mongoc_write_concern_get_journ": [14, 685], "mongoc_write_concern_get_w": [14, 685], "mongoc_write_concern_get_wmajor": [14, 685], "mongoc_write_concern_get_wtag": [14, 685], "mongoc_write_concern_get_wtimeout": [14, 683, 685], "mongoc_write_concern_get_wtimeout_int64": [14, 671, 684, 685], "mongoc_write_concern_is_acknowledg": [14, 685], "mongoc_write_concern_is_default": [14, 685], "mongoc_write_concern_is_valid": [14, 685], "mongoc_write_concern_journal_is_set": [14, 685], "mongoc_write_concern_set_fsync": [14, 685], "mongoc_write_concern_set_journ": [14, 678, 685], "mongoc_write_concern_set_wmajor": [14, 156, 241, 260, 276, 598, 685, 688], "mongoc_write_concern_set_wtag": [14, 685], "mongoc_write_concern_set_wtimeout": [14, 671, 685], "apm": [14, 17], "mongoc_apm_command_failed_get_dur": [14, 38], "mongoc_apm_command_failed_get_host": [14, 38], "mongoc_apm_command_failed_get_operation_id": [14, 38], "mongoc_apm_command_failed_get_repli": [14, 38], "mongoc_apm_command_failed_get_request_id": [14, 38], "mongoc_apm_command_failed_get_server_id": [14, 35, 38], "mongoc_apm_command_failed_get_service_id": [14, 38], "mongoc_apm_command_failed_get_server_connection_id": [14, 38], "mongoc_apm_command_started_get_database_nam": [14, 49], "mongoc_apm_command_started_get_operation_id": [14, 49], "mongoc_apm_command_started_get_request_id": [14, 49], "mongoc_apm_command_started_get_server_id": [14, 46, 49], "mongoc_apm_command_started_get_service_id": [14, 49], "mongoc_apm_command_started_get_server_connection_id": [14, 49], "mongoc_apm_command_succeeded_get_dur": [14, 60], "mongoc_apm_command_succeeded_get_host": [14, 60], "mongoc_apm_command_succeeded_get_operation_id": [14, 60], "mongoc_apm_command_succeeded_get_request_id": [14, 60], "mongoc_apm_command_succeeded_get_server_id": [14, 57, 60], "mongoc_apm_command_succeeded_get_service_id": [14, 60], "mongoc_apm_command_succeeded_get_server_connection_id": [14, 60], "mongoc_apm_server_changed_get_topology_id": [14, 66], "mongoc_apm_server_closed_get_topology_id": [14, 70], "mongoc_apm_server_heartbeat_failed_get_await": [14, 76], "mongoc_apm_server_heartbeat_failed_get_dur": [14, 76], "mongoc_apm_server_heartbeat_started_get_await": [14, 80], "mongoc_apm_server_heartbeat_succeeded_get_await": [14, 86], "mongoc_apm_server_heartbeat_succeeded_get_dur": [14, 86], "mongoc_apm_server_opening_get_topology_id": [14, 90], "mongoc_apm_topology_changed_get_topology_id": [14, 107], "mongoc_apm_topology_closed_get_topology_id": [14, 110], "mongoc_apm_topology_opening_get_topology_id": [14, 113], "older": [15, 296, 304], "consist": [15, 20, 146, 246, 247, 261, 262, 273, 277, 286, 290, 291, 320, 328, 329, 355, 386, 506, 538, 541, 545, 546, 548, 648, 680], "upload": [15, 406, 416, 417, 418, 433], "download": [15, 19, 409, 412, 416, 689], "straightforward": 15, "upgrad": [15, 298], "seek": [15, 449], "But": [15, 20, 660], "encourag": 15, "cross": 17, "packag": [17, 687, 688], "integr": [17, 21, 460], "crud": [17, 276, 326, 332, 383], "256": 17, "cr": 17, "gssapi": [17, 619, 641, 646, 650], "kerbero": [17, 19, 660, 689], "plain": [17, 444], "509": 17, "aw": [17, 124, 126, 166, 171, 195, 196], "iam": 17, "checklist": 17, "counter": [17, 18, 158, 243, 472], "submit": [17, 147, 300], "bug": [17, 22, 687], "exactli": [18, 158, 472, 660], "global": [18, 158, 268, 285, 323, 379, 472, 512], "primit": [18, 158, 472, 486], "mongoc_log_set_handl": [18, 21, 158, 472], "would": [18, 19, 158, 198, 299, 442, 472, 496, 660, 661, 668, 678, 679, 680, 681, 682, 683, 684], "handler": [18, 158, 472], "reiniti": [18, 158, 472], "problemat": 18, "situat": [18, 512, 660], "shutdown": [18, 551], "across": 18, "meanwhil": 18, "portabl": [18, 474, 549, 550, 552, 563], "yourself": 18, "denable_automatic_init_and_cleanup": [18, 19, 688], "varieti": 19, "archlinux": 19, "debian": 19, "2008": 19, "rhel": 19, "7": [19, 462, 485, 660, 687], "8": [19, 275, 298, 331, 382, 411, 445, 454, 459, 461, 471, 646, 647, 648, 649, 655, 658, 661, 662], "ubuntu": 19, "16": [19, 397, 401, 662, 687], "04": [19, 125], "18": 19, "clang": [19, 461], "2015": 19, "2017": 19, "x86": 19, "x86_64": 19, "arm": 19, "aarch64": 19, "power8": 19, "ppc64le": 19, "zseri": 19, "s390x": 19, "being": [19, 199, 441, 451, 461, 660], "suffici": [19, 486], "apt": 19, "fedora": 19, "dnf": 19, "red": [19, 687], "hat": 19, "cento": 19, "epel": 19, "fedoraproject": 19, "yum": 19, "homebrew": 19, "brew": 19, "app": 19, "openssl": 19, "redhat": 19, "sudo": 19, "devel": 19, "dev": 19, "libsasl2": 19, "freebsd": 19, "su": 19, "adjust": [19, 442], "xcode": 19, "util": [19, 204], "accord": [19, 162, 244, 280, 358], "vista": 19, "beyond": [19, 348, 660], "github": 19, "i686": 19, "minggw": 19, "msys64": 19, "ming64": 19, "ex": [19, 687], "msys2_shel": 19, "pacman": 19, "noconfirm": 19, "syu": 19, "tar": 19, "mingw64": 19, "artifact": 19, "throughout": 19, "assum": [19, 275, 331, 382, 687], "subsequ": [19, 229, 246, 247, 275, 331, 382, 548], "section": [19, 618, 687], "snippet": [19, 687], "wget": 19, "gz": 19, "xzf": 19, "mkdir": [19, 23, 688], "dcmake_build_typ": 19, "l": 19, "consider": 19, "amount": [19, 156, 275, 304, 331, 352, 382, 442], "written": [19, 299, 413, 414, 451, 589, 590, 669], "home": 19, "conclud": 19, "anyth": [19, 397, 497], "denable_mongoc": [19, 688], "though": [19, 288, 395, 401, 578, 589, 590], "fewer": 19, "item": [19, 579, 590], "branch": 19, "particular": [19, 277, 381, 460, 486, 687], "checkout": 19, "calc_release_vers": 19, "version_curr": 19, "especi": [19, 21], "cygwin": 19, "certainti": 19, "reli": [19, 118, 125, 299, 660, 686, 688], "toolchain": 19, "happen": [19, 262, 275, 331, 382, 473, 477], "bit": [19, 426, 430, 450, 486, 621, 643, 644, 653, 671, 672, 689], "freeli": 19, "win64": 19, "dcmake_install_prefix": 19, "dcmake_prefix_path": 19, "lh": 19, "target": [19, 162, 205, 210, 241, 242, 276, 277, 280, 283, 284, 295, 296, 298, 300, 301, 303, 304, 315, 316, 319, 332, 355, 358, 363, 365, 368, 374, 375, 383, 512, 573, 687, 688], "fine": 19, "grain": 19, "ninja": 19, "makefil": 19, "mode": [19, 159, 160, 278, 279, 298, 356, 357, 498, 504, 507, 510, 573, 627, 660], "relwithdebinfo": 19, "info": [19, 21, 30, 74], "cmake_install_prefix": [19, 689], "2019": 19, "examin": 19, "glob": 19, "vcxproj": 19, "sphinx": 19, "denable_man_pag": 19, "denable_html_doc": 19, "invok": 19, "usr": [19, 687], "sh": 19, "bat": 19, "exact": 19, "approach": 19, "readm": 19, "assist": 19, "emb": 19, "wish": [19, 348, 688], "collis": 19, "bson_output_basenam": 19, "mongoc_output_basenam": 19, "dbson_output_basenam": 19, "custom_bson": 19, "dmongoc_output_basenam": 19, "custom_mongoc": 19, "libcustom_bson": 19, "libcustom_mongoc": 19, "could": [19, 21, 125, 219, 260, 261, 262, 377, 453, 460, 477, 598, 688], "place": [19, 299, 646, 647, 651, 652, 653, 654, 660, 687], "lcustom_mongoc": 19, "lcustom_bson": 19, "linker": [19, 689], "possibli": [19, 271], "creation": [20, 192, 288, 460, 463, 466, 469, 486], "destruct": 20, "acquir": [20, 261, 273, 538, 545], "finish": [20, 345, 687], "destroi": [20, 101, 110, 114, 115, 130, 131, 147, 152, 229, 234, 243, 261, 262, 264, 273, 288, 292, 330, 346, 347, 408, 421, 423, 535, 538, 545, 596, 619, 687], "lifetim": [20, 154, 155, 185, 207, 234, 252, 254, 256, 264, 271, 348, 542, 577, 602, 603, 604], "revers": [20, 687], "sole": [20, 31, 43, 53, 62, 68, 75, 79, 84, 88], "outliv": [20, 120, 121, 192, 204, 416], "came": [20, 71, 77, 81, 261, 273, 538, 545], "causal": [20, 246, 247, 261, 262, 273, 538, 541, 545, 546, 548, 680], "unacknowledg": [20, 143, 201, 248, 261, 273, 301, 538, 545, 546, 673, 680, 685], "prohibit": [20, 144, 146, 162, 171, 241, 242, 261, 273, 276, 277, 280, 304, 315, 316, 332, 355, 358, 374, 375, 383, 538, 545], "refresh": [20, 261, 273, 538, 545], "vault": [20, 120, 121, 122, 166, 171, 174, 186, 187, 188, 193, 199, 204, 688], "abstract": [21, 147, 353, 381, 401, 437, 449, 460, 474, 478, 497, 512, 563, 585, 660, 685], "mongoc_log_level_error": 21, "mongoc_log_level_crit": 21, "mongoc_log_level_warn": 21, "mongoc_log_level_messag": 21, "mongoc_log_level_info": 21, "mongoc_log_level_debug": 21, "mongoc_log_level_trac": 21, "mongoc_log_level_t": 21, "mongoc_error": [21, 219, 260, 262, 460, 598], "mongoc_crit": 21, "mongoc_warn": [21, 639, 648], "mongoc_messag": 21, "mongoc_info": 21, "mongoc_debug": 21, "mongoc_log_func_t": 21, "log_level": 21, "log_domain": 21, "user_data": [21, 271, 274], "log_func": 21, "mongoc_log": 21, "bson_gnuc_printf": 21, "mongoc_log_level_str": 21, "mongoc_log_default_handl": 21, "mongoc_log_trace_en": 21, "mongoc_log_trace_dis": 21, "littl": 21, "pain": 21, "undef": 21, "mongoc_log_domain": 21, "my": [21, 416], "strerror": 21, "errno": [21, 442, 550, 551, 552, 554, 556, 557, 558, 559, 560, 561, 562, 568, 569, 572, 573, 575, 578, 579, 580, 588, 589, 590], "warn": [21, 223, 260, 598, 621, 648, 653, 678, 679, 680, 681, 682, 683, 684], "critic": 21, "overrid": [21, 162, 205, 210, 238, 241, 242, 260, 270, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 383, 386, 413, 414, 417, 418, 547, 598, 660], "mutex": [21, 239, 687], "safeti": [21, 687], "regist": [21, 234, 264, 424, 435, 502, 505, 687], "suppress": 21, "my_logg": 21, "smaller": 21, "go": 21, "intern": [21, 188, 243, 262, 265, 319, 485, 565, 619, 623, 687], "affect": [21, 267, 272], "significantli": 21, "overhead": 21, "subset": [22, 396, 558, 688], "numer": 22, "subdocu": [22, 290, 291, 313, 320, 328, 329, 687], "lt": [22, 478], "lte": [22, 401, 478], "nin": [22, 478], "ne": 22, "implement": [22, 156, 274, 276, 298, 332, 383, 416, 453, 460, 569, 575, 576, 588, 660], "mongodump": 22, "echo": 22, "world": [22, 478, 687], "writeresult": [22, 241, 276], "bye": 22, "filter": [22, 23, 149, 151, 199, 283, 299, 304, 328, 329, 364, 365, 410, 416, 455, 456, 460, 478, 511, 548, 593], "bsondump": 22, "537afac9a70e5b4d556153bc": 22, "db2": [23, 660], "dbpath": 23, "common_oper": 23, "executionstat": 23, "allplansexecut": 23, "executionstag": 23, "direct": [23, 275, 331, 382, 512, 688], "docsexamin": 23, "76": 23, "executiontimemillisestim": 23, "eq": [23, 478], "iseof": 23, "nreturn": 23, "needtim": 23, "58": 23, "needyield": 23, "restorest": 23, "savest": 23, "stage": [23, 156, 277, 355], "collscan": 23, "78": 23, "executionsuccess": 23, "executiontimemilli": 23, "totaldocsexamin": 23, "totalkeysexamin": 23, "queryplann": 23, "indexfilterset": 23, "namespac": [23, 118, 125, 212, 411, 688], "parsedqueri": 23, "plannervers": 23, "rejectedplan": 23, "winningplan": 23, "serverinfo": 23, "gitvers": 23, "05552b562c7a0b3143a729aaa0838e558dc49b25": 23, "macbook": 23, "pro": 23, "57": [23, 397, 401], "noth": [24, 130, 163, 167, 175, 177, 190, 200, 250, 292, 335, 361, 387, 408, 421, 423, 434, 492, 501, 517, 527, 540, 553, 570, 591, 600, 613, 665], "introduct": [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 234, 264, 535, 593, 594, 596, 687], "bson_gnuc_warn_unused_result": [25, 115, 159, 168, 178, 185, 189, 191, 201, 202, 205, 206, 207, 208, 209, 210, 211, 212, 213, 218, 219, 223, 224, 225, 230, 231, 232, 240, 244, 275, 277, 278, 281, 285, 286, 299, 302, 303, 304, 314, 331, 333, 355, 356, 359, 360, 364, 365, 366, 367, 368, 382, 394, 410, 411, 412, 413, 414, 419, 420, 436, 452, 453, 454, 455, 456, 477, 491, 495, 500, 507, 515, 521, 533, 539, 544, 549, 555, 558, 566, 572, 573, 577, 583, 592, 595, 599, 612, 639, 641, 661, 664, 677], "freed": [27, 31, 33, 37, 39, 40, 42, 43, 48, 50, 53, 55, 59, 62, 63, 64, 68, 75, 79, 84, 85, 88, 104, 105, 133, 154, 159, 162, 165, 166, 168, 174, 178, 185, 186, 187, 189, 191, 198, 201, 202, 206, 207, 208, 209, 210, 211, 213, 216, 217, 218, 219, 221, 222, 223, 224, 225, 230, 231, 241, 242, 244, 249, 251, 260, 273, 275, 276, 277, 278, 280, 281, 285, 286, 290, 291, 299, 300, 301, 302, 303, 304, 306, 307, 308, 309, 312, 313, 314, 315, 316, 320, 325, 328, 329, 331, 332, 333, 334, 337, 355, 356, 358, 359, 364, 365, 366, 367, 368, 369, 370, 371, 372, 374, 375, 382, 383, 394, 410, 411, 419, 420, 425, 427, 428, 429, 431, 432, 436, 452, 456, 457, 458, 461, 477, 491, 495, 500, 502, 505, 507, 515, 526, 533, 539, 544, 545, 547, 555, 558, 564, 566, 572, 573, 583, 592, 595, 599, 605, 607, 608, 609, 612, 614, 615, 616, 617, 618, 623, 624, 625, 626, 627, 628, 629, 634, 636, 637, 640, 661, 664, 670, 677, 687], "int64_t": [29, 32, 34, 44, 45, 52, 54, 56, 73, 83, 180, 260, 282, 283, 284, 298, 341, 342, 351, 430, 433, 442, 503, 509, 532, 534, 549, 552, 559, 560, 561, 598, 601, 606, 622, 653, 672, 681, 684, 687], "durat": [29, 52, 73, 83, 534], "microsecond": [29, 52, 73, 83, 532, 559, 560, 561], "correl": [32, 34, 44, 45, 54, 56], "larg": [32, 44, 54, 285, 286], "why": 33, "int32_t": [35, 46, 57, 214, 215, 236, 260, 266, 426, 468, 578, 579, 589, 590, 598, 621, 652, 653, 668, 671, 680, 681, 683], "connectionid": [35, 46, 57], "posit": [35, 46, 57, 232, 395, 397, 399, 400, 401, 442, 450, 509, 512, 680, 681, 683, 684], "integ": [35, 46, 57, 304, 426, 430, 450, 509, 512, 621, 622, 643, 644, 652, 653, 668, 671, 672], "bson_oid_t": [37, 48, 59, 65, 69, 89, 106, 109, 112, 310, 312, 313, 687], "identifi": [37, 48, 59, 119, 145, 166, 169, 171, 179, 181, 182, 350, 524, 530], "topology_id": [65, 69, 89, 106, 109, 112], "observ": [66, 94, 100, 107], "stop": [70, 95, 101, 110, 131, 285], "await": [71, 77, 81, 272, 324, 380, 685], "mongoc_apm_command_failed_cb_t": 91, "whenev": [91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 660], "mongoc_apm_command_started_cb_t": 92, "mongoc_apm_command_succeeded_cb_t": 93, "mongoc_apm_server_changed_cb_t": 94, "mongoc_apm_server_closed_cb_t": 95, "mongoc_apm_server_heartbeat_failed_cb_t": 96, "mongoc_apm_server_heartbeat_started_cb_t": 97, "mongoc_apm_server_heartbeat_succeeded_cb_t": 98, "mongoc_apm_server_opening_cb_t": 99, "mongoc_apm_topology_changed_cb_t": 100, "mongoc_apm_topology_closed_cb_t": 101, "mongoc_apm_topology_opening_cb_t": 102, "caller": [115, 131, 166, 173, 176, 571, 688], "bypass_auto_encrypt": [116, 688], "boolean": [116, 117, 142, 153, 253, 304, 330, 483, 633, 635, 642, 678, 679, 687], "decrypt": [116, 120, 121, 124, 127, 170, 173, 192, 195], "bypass_query_analysi": 117, "22": [117, 118, 180, 183], "analysi": [117, 176, 688], "outgo": 117, "crypt_shar": [117, 119, 185, 207], "mongocryptd": [117, 119], "explicit": [117, 143, 166, 173, 176, 180, 183, 185, 413, 417], "encrypted_fields_map": 118, "encryptedfield": [118, 296, 360, 363, 688], "protect": [118, 125, 688], "malici": [118, 125, 688], "advertis": [118, 125, 688], "mongocryptduri": [119, 688], "27020": [119, 688], "mongocryptdbypassspawn": [119, 688], "prevent": [119, 243, 485, 569, 688], "spawn": [119, 688], "mongocryptdspawnpath": [119, 688], "trail": 119, "slash": 119, "search": [119, 660], "mongocryptdspawnarg": [119, 688], "idleshutdowntimeoutsec": 119, "60": [119, 660], "cryptsharedlibpath": 119, "filepath": 119, "unset": [119, 145, 275, 331, 350, 382, 482, 483, 621, 622, 650], "dynam": [119, 689], "itself": [119, 688], "rel": [119, 442], "compon": [119, 247, 255, 688], "rpath": 119, "runpath": 119, "style": [119, 437, 572, 574, 641], "substitut": 119, "cryptsharedlibrequir": 119, "proce": [119, 689], "fall": [119, 660], "back": [119, 163, 213, 226, 233, 420, 660, 687], "lookup": [120, 121, 192, 275, 331, 382], "appli": [120, 121, 125, 149, 151, 159, 160, 164, 180, 183, 205, 209, 210, 227, 241, 242, 275, 276, 277, 279, 282, 283, 284, 298, 299, 302, 303, 304, 315, 316, 328, 329, 331, 332, 352, 355, 356, 357, 364, 365, 367, 368, 374, 375, 382, 383, 409, 410, 452, 453, 454, 455, 456, 485, 512, 660, 685, 688], "coll": [122, 125, 156, 193, 329, 331, 688], "special": [122, 193, 276, 332, 383, 660], "repres": [122, 258, 275, 277, 331, 355, 382, 411, 413, 414, 417, 418, 511, 512, 524, 596, 687], "mongoc_kms_credentials_provider_callback_fn": [123, 194], "fn": [123, 194], "userdata": [123, 194], "km": [123, 124, 126, 166, 171, 194, 195, 196, 199], "along": [123, 194, 238, 262, 265, 270, 282, 284, 289, 317, 461], "kms_provid": [124, 166, 195, 688], "azur": [124, 126, 171, 195, 196], "gcp": [124, 126, 171, 195, 196], "kmip": [124, 126, 171, 195, 196], "At": [124, 195, 687], "accesskeyid": [124, 195], "secretaccesskei": [124, 195], "96": [124, 195, 688], "subtyp": [124, 125, 165, 166, 173, 174, 176, 182, 186, 195, 198, 688], "master": [124, 171, 195, 199, 688], "base64": [124, 125, 195], "tenantid": [124, 195], "clientid": [124, 195], "clientsecret": [124, 195], "identityplatformendpoint": [124, 195], "microsoftonlin": [124, 195], "email": [124, 195], "privatekei": [124, 195], "oauth2": [124, 195], "googleapi": [124, 171, 195], "schema_map": [125, 688], "trick": [125, 688], "unencrypt": [125, 688], "enforc": 125, "encrypted_str": 125, "keyid": [125, 165, 166, 171, 174, 182, 186, 198, 688], "aaaaaaaaaaaaaaaaaaaaaa": 125, "bsontyp": [125, 688], "aead_aes_256_cbc_hmac_sha_512": [125, 179], "determinist": [125, 179, 688], "tls_opt": [126, 196], "tlscertificatekeyfilepassword": [126, 196], "ae_opt": 126, "bcon_append": [126, 196], "ca1": [126, 196], "ca2": [126, 196], "_mongoc_auto_encryption_opts_t": 127, "queue": [128, 129, 134, 135, 136, 137, 138, 139, 140, 141, 148, 149, 150, 151], "propag": [128, 129, 131, 134, 135, 136, 137, 138, 139, 140, 141, 148, 149, 151, 160, 162, 209, 210, 212, 220, 241, 242, 276, 279, 280, 282, 283, 284, 285, 286, 288, 289, 290, 291, 295, 296, 297, 298, 300, 301, 302, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 332, 336, 337, 357, 358, 360, 363, 364, 367, 368, 373, 374, 375, 376, 377, 383, 422, 424, 435, 440, 453, 454, 455, 459, 477, 681, 685], "queu": 131, "upon": [131, 205, 206, 208, 209, 210, 212, 241, 262, 268, 275, 277, 279, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 357, 360, 364, 365, 367, 368, 374, 382, 409, 410, 424, 452, 453, 454, 455, 456, 477, 549, 572, 573, 578, 584, 589, 590], "afterward": [131, 147, 346, 347], "uniniti": [131, 165, 166, 174, 186, 187, 198, 249, 262, 283, 290, 291, 298, 300, 312, 313, 320, 325, 328, 329, 389, 392, 393, 619], "opaqu": [132, 145, 147, 161, 218, 274, 339, 346, 350, 530, 596], "term": [132, 145, 339, 350], "hint": [132, 137, 139, 141, 145, 149, 151, 284, 290, 291, 304, 320, 328, 329, 339, 350, 386, 512], "sake": [132, 145, 260, 339, 350, 497, 598], "mainli": 132, "supersed": [134, 136, 138, 140, 148, 150, 159, 278, 310, 317, 327, 344, 356, 416], "bitwis": [135, 141, 149, 151, 290, 291, 311, 312, 313, 320, 327, 328, 329, 473, 485, 513, 514, 611], "desir": [135, 141, 149, 151, 290, 291, 312, 313, 320, 326, 328, 329, 552, 566], "bson_validate_flags_t": [135, 141, 149, 151, 290, 291, 312, 313, 320, 328, 329], "skip": [135, 141, 149, 151, 156, 159, 277, 278, 282, 283, 284, 290, 291, 298, 299, 304, 312, 313, 320, 328, 329, 347, 355, 356], "collat": [137, 139, 141, 149, 151, 162, 241, 242, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 304, 315, 316, 320, 328, 329, 332, 355, 358, 363, 374, 375, 383, 468], "textual": [137, 139, 141, 149, 151, 162, 241, 242, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 315, 316, 320, 328, 329, 332, 355, 358, 363, 374, 375, 383], "comparison": [137, 139, 141, 149, 151, 162, 241, 242, 276, 277, 280, 283, 284, 290, 291, 295, 296, 298, 315, 316, 320, 328, 329, 332, 355, 358, 363, 374, 375, 383], "predic": [137, 139, 141, 149, 151, 290, 291, 320, 328, 329, 386], "bypass": [142, 164, 176, 227, 395, 401], "Will": [142, 397, 648], "client_sess": [143, 248, 261, 546, 548], "bson_value_t": [144, 156, 165, 166, 173, 174, 176, 182, 186, 187, 198, 275, 277, 283, 286, 290, 291, 298, 312, 313, 320, 328, 329, 331, 355, 382, 386, 407, 409, 412, 413, 414, 416, 417, 418, 429, 446, 460, 688], "comment": [144, 275, 277, 283, 286, 290, 291, 298, 304, 312, 313, 320, 328, 329, 331, 355, 382, 386], "assign": 144, "attach": [144, 275, 277, 283, 286, 290, 291, 298, 312, 313, 320, 328, 329, 331, 355, 382, 386], "appear": [144, 275, 277, 283, 286, 290, 291, 298, 312, 313, 320, 328, 329, 331, 355, 382, 386], "profil": [144, 275, 277, 283, 286, 290, 291, 298, 312, 313, 320, 328, 329, 331, 355, 382, 386, 660, 687], "currentop": [144, 275, 277, 283, 286, 290, 291, 298, 312, 313, 320, 328, 329, 331, 355, 382, 386], "server_id": [145, 161, 213, 218, 346, 350], "suitabl": [145, 213, 244, 337, 350, 511, 660], "definit": [146, 277, 286, 290, 291, 320, 328, 329, 355, 386], "mql": [146, 277, 286, 290, 291, 320, 328, 329, 355, 386], "_mongoc_bulk_operation_t": 147, "entireti": [148, 149, 150, 151], "whose": [148, 149, 150, 151, 503, 509, 660], "arrayfilt": [149, 151, 328, 329], "element": [149, 151, 310, 313, 328, 329, 439, 451, 537, 561], "err": [153, 260, 262, 598], "resumeaft": [154, 156, 275, 331, 382], "startaft": [154, 156, 275, 331, 382], "point": [154, 156, 185, 194, 207, 238, 270, 275, 331, 353, 382, 532, 548, 619], "neither": 154, "nor": 154, "underli": [155, 241, 274, 277, 282, 284, 299, 315, 348, 355, 374, 426, 427, 431, 436, 442, 451, 453, 461, 559, 566, 567, 568, 569, 571, 573, 575, 576, 582, 588], "maximum": [155, 164, 214, 215, 227, 228, 229, 275, 283, 298, 304, 331, 338, 349, 351, 352, 356, 382, 398, 512, 660], "maxawaittimem": [155, 156, 275, 304, 331, 347, 382], "_mongoc_change_stream_t": 156, "changestream": 156, "to_insert": [156, 329, 688], "err_doc": 156, "rs0": 156, "as_json": 156, "got": [156, 386, 395, 396, 397, 398, 399, 400, 401], "bson_empti": 156, "startatoperationtim": [156, 275, 331, 382], "recreat": 156, "left": [156, 660], "operationtim": [156, 246, 247, 255], "mutual": [156, 181, 182, 275, 331, 382, 546, 548], "persist": [156, 443, 444, 445, 447, 448], "wide": 156, "restart": 156, "unistd": 156, "resume_token_path": 156, "_save_resume_token": 156, "file_stream": [156, 416], "resume_token_doc": 156, "as_json_len": 156, "ssize_t": [156, 439, 451, 460, 559, 560, 561, 578, 579, 589, 590], "n_written": 156, "resume_token": 156, "bson_iter_valu": 156, "append": [156, 248, 262, 275, 331, 382, 396, 461, 490, 646, 647, 651, 652, 653, 654, 663], "fopen": [156, 688], "bson_append_valu": [156, 688], "fwrite": [156, 460, 688], "sizeof": [156, 460, 687, 688], "fclose": [156, 688], "_load_resume_token": 156, "bson_json_reader_t": [156, 687, 688], "reader": [156, 460, 478, 688], "r_ok": 156, "bson_json_reader_new_from_fil": [156, 688], "bson_json_reader_read": [156, 688], "bson_json_reader_destroi": [156, 688], "bson_concat": 156, "max_tim": 156, "30": [156, 468, 660], "bson_append_int64": 156, "synchron": 156, "cached_operation_tim": 156, "five": 156, "insert_cmd": 156, "bson_value_copi": 156, "value_typ": [156, 460, 688], "bson_value_destroi": [156, 166, 173, 176, 187, 198, 688], "required_major": 157, "required_minor": 157, "required_micro": 157, "minimum": [157, 229, 439, 578, 579, 687], "major": [157, 166, 241, 267, 272, 275, 276, 324, 331, 380, 382, 497, 660, 662, 669, 681, 685, 687], "minor": [157, 662], "micro": [157, 662], "db_name": [159, 160, 161, 162, 211, 241, 242, 276, 383, 687], "batch_siz": [159, 278, 299, 349, 356], "unus": [159, 213, 242, 316, 375, 439, 451], "mongoc_read_primari": [159, 160, 278, 279, 323, 356, 357, 379, 498, 512], "simplifi": [160, 262, 279, 357], "interfac": [160, 357, 401, 437, 474, 478, 512, 549, 550, 552, 585], "interpret": [162, 280, 358, 442, 660], "highest": [162, 241, 242, 276, 277, 280, 304, 315, 316, 332, 355, 358, 374, 375, 383], "readconcern": [162, 241, 242, 276, 277, 280, 283, 284, 298, 304, 315, 316, 322, 355, 358, 374, 375, 378, 411, 493, 494, 496, 497, 660], "writeconcern": [162, 241, 242, 276, 277, 280, 286, 288, 290, 291, 295, 296, 312, 313, 316, 319, 320, 328, 329, 332, 355, 358, 363, 375, 383, 386, 411], "inherit": [162, 205, 210, 241, 242, 260, 267, 272, 276, 277, 280, 283, 284, 286, 288, 290, 291, 295, 296, 298, 303, 304, 312, 313, 315, 316, 319, 320, 326, 328, 329, 332, 355, 358, 363, 365, 368, 374, 375, 378, 379, 380, 381, 383, 386, 411, 547, 598], "consult": [162, 241, 242, 276, 280, 315, 316, 332, 358, 374, 375, 383, 687], "onto": [163, 226, 239, 687], "listcollect": [164, 227, 346, 347, 365, 368], "privileg": [164, 227], "neg": [164, 180, 227, 304, 351, 442, 578, 579, 589, 590], "impact": [164, 227], "client_encrypt": [165, 166, 173, 174, 175, 176, 186, 187, 188, 198, 199, 688], "keyaltnam": [165, 169, 181, 187, 198, 688], "key_doc": [165, 186, 187, 198], "uuid": [165, 166, 174, 182, 186, 198], "0x04": [165, 166, 174, 182, 186, 198], "newli": [166, 206, 208, 211, 219, 223, 224, 225, 230, 231, 262, 273, 275, 277, 278, 281, 285, 286, 299, 302, 303, 304, 331, 333, 355, 356, 359, 360, 364, 365, 366, 382, 394, 410, 411, 419, 420, 436, 452, 453, 454, 455, 456, 477, 491, 495, 500, 507, 515, 533, 549, 555, 566, 572, 573, 577, 583, 592, 595, 612, 639, 640, 641, 661, 664, 677, 688], "datakei": 166, "keyaltnames_count": 169, "uint8_t": [170, 465, 687, 688], "materi": 170, "constitut": 170, "cryptograph": [170, 486], "random": [170, 179, 486, 487, 488, 489, 688], "devic": 170, "masterkei": 171, "region": 171, "cmk": 171, "amazonaw": 171, "keyvaultendpoint": 171, "keynam": 171, "keyvers": 171, "projectid": 171, "keyr": 171, "cloudkm": 171, "_mongoc_client_encryption_datakey_opts_t": 172, "mongoc_client_encryption_decrypt": [173, 688], "ciphertext": [173, 176], "payload": 176, "mongoc_aead_aes_256_cbc_hmac_sha_512_random": 179, "mongoc_aead_aes_256_cbc_hmac_sha_512_determinist": [179, 688], "mongoc_encrypt_algorithm_index": 179, "mongoc_encrypt_algorithm_unindex": 179, "unindex": 179, "contention_factor": 180, "factor": 180, "mongoc_encrypt_query_type_equ": 183, "mongoc_export": 183, "query_typ": 183, "_mongoc_client_encryption_encrypt_opts_t": 184, "enc": 185, "live": [185, 207], "keyvault_cli": [192, 688], "param": [194, 262], "popul": [194, 225, 231, 290, 291, 312, 313, 320, 328, 329, 524, 641], "ce_opt": 196, "_mongoc_client_encryption_opts_t": 197, "master_kei": 199, "rewrap": 199, "equival": [199, 344, 524, 551, 573, 660], "_mongoc_client_encryption_rewrap_many_datakey_result_t": 203, "_mongoc_client_encryption_t": 204, "NOT": [204, 226, 274, 353, 416, 441, 442, 449, 451, 460], "transient": [205, 209, 210, 241, 260, 275, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 598], "retryread": [205, 209, 210, 241, 275, 277, 282, 283, 284, 298, 299, 302, 303, 304, 315, 331, 355, 364, 365, 367, 368, 374, 382, 409, 410, 452, 453, 454, 455, 456, 660], "listdatabas": [205, 210], "represent": [205, 302, 303, 364, 365, 405, 525, 526, 660], "bson_gnuc_deprecated_for": [209, 282, 284, 285, 289, 299, 302, 311, 321, 344, 346, 364, 367, 452, 453, 630, 633], "vector": [209, 210, 561, 579, 590], "bson_strfreev": [209, 210, 367, 368], "strv": [210, 368], "unsign": [210, 239, 368, 450, 557, 687], "strcmp": [211, 460], "shall": [212, 228, 271, 282, 284, 285, 286, 289, 292, 299, 310, 313, 317, 320, 321, 327, 333, 345, 348, 354, 419, 420, 421, 436, 453, 499, 500, 566, 568, 569, 570, 571, 573, 575, 576, 577, 578, 588, 589, 590], "thu": 212, "handshak": [213, 265, 461], "notabl": 213, "loadbalanc": [213, 536, 597, 660], "16mb": 214, "40mb": 215, "show_serv": 219, "ping": [219, 239, 687], "sd": [219, 537], "bson_gnuc_deprec": [220, 229, 297, 325, 477], "serverstatu": 220, "prior": [226, 275, 277, 304, 331, 355, 382, 688], "shut": [226, 551], "join": 226, "max_pool_s": 228, "min_pool_s": 229, "kept": 229, "excess": 229, "expect": [229, 688], "hurt": [229, 660], "exceed": 229, "maxpools": [232, 660], "mongoc_handshake_appname_max": [235, 265], "caus": [237, 243, 269, 337, 660], "mongoc_enable_ssl": [238, 270], "denable_ssl": [238, 270], "_mongoc_client_pool_t": 239, "destructor": 239, "pthread": [239, 687], "pthread_mutex_t": [239, 687], "in_shutdown": [239, 687], "worker": [239, 687], "probabl": [239, 687], "portion": [239, 617, 625, 636, 687], "pthread_mutex_lock": [239, 687], "pthread_mutex_unlock": [239, 687], "pthread_t": [239, 687], "pthread_mutex_init": [239, 687], "pthread_creat": [239, 687], "pthread_join": [239, 687], "tabl": [241, 242, 276, 277, 304, 315, 316, 332, 355, 374, 375, 383], "degrad": [241, 315, 374], "prepar": [241, 276], "clonecollectionascap": [241, 276], "enablemajorityreadconcern": [241, 276], "replset": [241, 276], "my_collect": [241, 276], "read_concern": [241, 260, 267, 276, 322, 378, 490, 491, 492, 493, 494, 496, 598, 607], "tocollect": [241, 276], "my_capped_collect": [241, 276], "1024": [241, 276], "wtimeoutm": [241, 276, 622, 644, 660], "mongoc_read_concern_level_major": [241, 276, 368, 497], "mistak": [242, 316, 375], "obei": [242, 316, 375], "child": [243, 460, 687], "fork": 243, "interf": 243, "parent": [243, 326, 381], "endsess": 243, "increment": [243, 247, 255], "for_writ": 244, "cluster_tim": 246, "clustertim": [246, 247, 252], "dirti": 253, "label": [260, 385], "session_opt": [260, 546, 548, 598], "default_txn_opt": [260, 598], "txn_opt": [260, 547, 598], "insert_opt": [260, 262, 546, 598], "reply_json": [260, 598], "nonexist": [260, 262, 598], "namespaceexist": [260, 262, 598], "error_cod": [260, 262, 598], "snapshot": [260, 304, 497, 543, 546, 548, 598], "retry_transact": [260, 598], "whole": [260, 460, 598], "transienttransactionerror": [260, 385, 598], "bson_get_monotonic_tim": [260, 598], "unknowntransactioncommitresult": [260, 385, 598], "unrecover": [260, 598], "update_opt": 261, "find_opt": [261, 548], "2000": 261, "guarante": [261, 282, 283, 284, 298, 486, 660, 687, 688, 689], "reflect": 261, "catch": [261, 685], "ctx": [262, 263], "reach": [262, 552, 561, 660], "insid": [262, 299], "stack": [262, 279, 619], "with_transact": 262, "ctx_t": 262, "create_and_insert_doc": 262, "local_repli": 262, "retval": [262, 687], "bson_copi": 262, "txn": 262, "mongoc_read_concern_level_loc": [267, 497], "great": [267, 272, 324, 380, 497, 512, 685], "websit": [268, 282, 284, 323, 379, 497, 498, 510, 660, 685], "mongoc_stream_initiator_t": [271, 274], "transport": [271, 274, 575], "fulfil": [271, 274], "contract": 271, "whatev": 271, "mongoc_write_concern_w_default": [272, 285, 305, 324, 380, 685], "misconfigur": 273, "_mongoc_client_t": 274, "shard": [274, 485, 508, 512, 514, 597, 660, 687], "rout": [274, 460], "individu": [274, 468, 497, 651, 652, 653, 654], "scenario": 274, "batchsiz": [275, 277, 304, 331, 346, 347, 355, 382], "unlik": [275, 331, 382], "fulldocu": [275, 331, 382], "utf": [275, 331, 382, 411, 445, 454, 459, 646, 647, 648, 649, 655, 658, 661], "updatelookup": [275, 331, 382], "whenavail": [275, 331, 382], "fulldocumentbeforechang": [275, 331, 382], "createrol": [276, 332, 383], "Not": [277, 278, 569, 575, 588, 660], "mongoc_query_exhaust": [277, 485], "bypassdocumentvalid": [277, 312, 313, 320, 328, 329, 355], "merg": [277, 355], "pipeline_queri": 277, "collection2": 277, "collection1": 277, "unwrap": 279, "print_collection_stat": 279, "collstat": [279, 325, 687], "deep": [281, 359, 479, 491, 500, 515, 533, 595, 664], "unalt": [281, 359], "accur": [282, 283, 284, 298, 311], "migrat": [282, 284, 346], "print_query_count": [282, 284], "prid64": [282, 283, 284, 298, 622, 687], "contrast": [283, 298], "print_count": [283, 298], "expr": 283, "geowithin": 283, "center": 283, "nearspher": 283, "centerspher": 283, "bson_append_utf8": [284, 386, 395, 396, 397, 398, 399, 400, 401, 468, 650, 687], "reason": [285, 286, 351, 660], "index_opt": 288, "command_opt": 288, "obsolet": 288, "mongoc_delete_single_remov": [289, 384], "deletedcount": [290, 291], "thin": [293, 294, 300, 318, 362], "wrapper": [293, 294, 300, 318, 362, 549, 550, 551, 552, 555, 580, 585], "26": 296, "unrecogn": 296, "oversight": 298, "stabl": 298, "strict": [298, 519, 522, 523, 688], "conveni": [299, 386, 398, 401, 460, 660, 687], "orderbi": 299, "histor": [299, 660], "op_queri": [299, 304], "convert": [299, 304, 524], "typic": [299, 558, 685], "invis": 299, "tradit": 299, "showdiskloc": 299, "showrecordid": [299, 304], "With": [299, 304, 685, 688], "plan": [299, 304], "_remov": 300, "_new": 300, "around": [300, 549, 550, 551, 552, 555, 580], "findandmodifi": [300, 394, 398, 399, 401], "modif": [300, 441], "cmpxchg": 300, "find_and_modifi": [300, 397, 401], "listindex": 303, "ten": 304, "print_ten_docu": 304, "field_name_on": 304, "field_name_two": 304, "tailabl": [304, 345, 346, 347, 352], "nocursortimeout": 304, "oplogreplai": 304, "allowpartialresult": 304, "returnkei": 304, "singlebatch": 304, "allowdiskus": 304, "Then": [304, 687, 688], "unmodifi": 304, "maxscan": 304, "transpar": [304, 687], "n_document": [311, 312], "insertedcount": [312, 313], "canon": [314, 660, 688], "stringif": 314, "straight": 314, "mongoc_remove_single_remov": [317, 513], "new_db": [318, 319], "new_nam": [318, 319], "drop_target_before_renam": [318, 319], "renam": [318, 319], "matchedcount": [320, 328, 329], "modifiedcount": [320, 328, 329], "upsertedcount": 320, "upsertedid": [320, 328, 329], "save": [321, 441, 460, 473, 688], "_mongoc_collection_t": 326, "set_": 326, "mongoc_update_multi_upd": [327, 611], "next_doc": 329, "to_str": 329, "example_col": 329, "scandata": 330, "clone": [333, 353, 688], "reset": 333, "hand": 337, "run_queri": 337, "loop": [337, 660], "nrepli": 337, "good_queri": 337, "bad_queri": 337, "serverselectiontryonc": [337, 660], "fake": 337, "badoper": 337, "codenam": 337, "badvalu": 337, "regular": [345, 437], "unreli": 345, "begun": 345, "told": 345, "1234": [346, 347], "firstbatch": [346, 347], "low": [346, 347, 486], "synthes": [346, 439], "rang": [346, 347, 621, 653], "ephemer": 348, "good": 348, "retain": 348, "sign": [351, 426, 430, 433, 671, 672], "although": [351, 352, 398, 688], "unchang": 351, "max_await_time_m": 352, "uint64_t": [352, 398, 450], "_mongoc_cursor_t": 353, "repeat": [353, 660], "lazi": 353, "traffic": 353, "custom_data": 354, "cleartext": 354, "listlocalsess": 355, "current_op_queri": 355, "matcher": [364, 475, 476, 478], "name_filt": 365, "abbbbc": 365, "bson_append_regex": 365, "ab": 365, "bson_iter_utf8": 365, "rc": [368, 656, 657, 659], "_mongoc_database_t": 381, "mongoc_delete_non": 384, "fam_opt": [386, 398, 401], "zlatan": [386, 395, 396, 397, 398, 399, 400, 401], "ibrahimov": [386, 395, 396, 397, 398, 399, 400, 401], "striker": [386, 395, 397, 398, 399, 400, 401], "firstnam": [386, 395, 396, 397, 398, 399, 400, 401], "lastnam": [386, 395, 396, 397, 398, 399, 400, 401], "profess": [386, 395, 397, 398, 399, 400, 401], "footbal": [386, 395, 397, 398, 399, 400, 401], "player": [386, 395, 397, 398, 399, 400, 401], "bump": [386, 395, 396, 398, 399, 401], "hi": [386, 395, 396, 397, 398, 399, 401], "ag": [386, 395, 397, 398, 399, 400, 401], "futureopt": [386, 398, 401], "__line__": [386, 395, 396, 397, 398, 399, 400, 401], "find_and_modify_opt": 387, "builder": [387, 394, 395, 396, 397, 398, 399, 400, 401], "mongoc_find_and_modify_flags_t": [390, 397], "talk": 395, "fam_bypass": [395, 401], "he": [395, 401], "plai": [395, 401], "pretti": [395, 401], "lasterrorobject": [395, 396, 397, 399, 400, 401], "updatedexist": [395, 396, 397, 399, 400, 401], "56562a99d13e6d86239c7b00": [395, 396, 397, 399, 400, 401], "34": [395, 397, 401], "goal": [395, 396, 397, 399, 400, 401], "342": [395, 397, 400, 401], "fieldnam": 396, "exclud": [396, 410], "fam_field": [396, 401], "talli": [396, 399, 401], "mongoc_find_and_modify_return_new": [396, 397, 400, 401], "343": [396, 399, 401], "mongoc_find_and_modify_non": 397, "mongoc_find_and_modify_remov": 397, "mongoc_find_and_modify_upsert": [397, 401], "fam_flag": [397, 401], "35": [397, 399, 400, 401], "28": [397, 401], "62": [397, 401], "didn": [397, 401], "max_time_m": 398, "permit": 398, "fam_sort": [399, 401], "oldest": [399, 401], "fam_upd": [400, 401], "him": [400, 401], "book": [400, 401], "_previous_": [400, 401], "abl": [401, 688], "accommod": 401, "fam": 401, "databasenam": 401, "validationact": 401, "validationlevel": 401, "moder": 401, "collectionnam": 401, "mongoc_major_vers": [402, 662], "mongoc_micro_vers": [403, 662], "mongoc_minor_vers": [404, 662], "pre": [405, 431], "bucket": [407, 408, 409, 410, 411, 412, 413, 414, 416, 417, 418], "file_id": [407, 409, 412, 413, 414, 416, 417, 418, 460], "destin": [409, 560, 561], "bucketnam": 411, "exce": [411, 653], "chunksizebyt": [411, 413, 414, 417, 418], "255kb": 411, "_mongoc_gridfs_bucket_t": 416, "compliant": [416, 460], "source_file_path": 416, "file_copy_path": 416, "o_rdonli": [416, 460], "o_creat": 416, "o_rdwr": 416, "perror": 416, "suit": 420, "alias": [425, 438, 443, 449], "md5": [431, 438, 447, 449], "date": 433, "epoch": 433, "_mongoc_gridfs_file_list_t": 437, "marshal": 437, "top": [437, 512, 585, 660], "do_someth": [437, 662], "content_typ": [438, 444, 449], "chunk_siz": [438, 449], "iov": [439, 451, 460, 561, 579, 590], "iovcnt": [439, 451, 561, 579, 590], "min_byt": [439, 578, 579], "timeout_msec": [439, 451, 578, 579, 589, 590], "scatter": [439, 474], "delta": 442, "whenc": 442, "move": 442, "seek_set": 442, "seek_cur": 442, "seek_end": 442, "fseek": 442, "einval": 442, "checksum": 447, "_mongoc_gridfs_file_t": 449, "readv": 449, "writev": [449, 590], "upload_d": 449, "gather": [451, 474, 561, 579], "_mongoc_gridfs_t": 460, "gridfs_fil": 460, "gridfs_file_list": 460, "essenti": 460, "caveat": [460, 512], "quit": 460, "expens": [460, 473], "said": 460, "caution": [460, 461], "mongoc_gridf": 460, "tightli": 460, "worth": 460, "fit": [460, 653], "model": [460, 578, 589, 590], "fcntl": 460, "buf": [460, 486, 487, 488, 559, 560, 578, 589, 687], "4096": 460, "iov_bas": [460, 474], "iov_len": [460, 474], "grab": 460, "input_fil": 460, "bson_type_int32": 460, "v_int32": 460, "driver_nam": 461, "driver_vers": 461, "truncat": 461, "conjunct": [461, 571], "bson_mem_set_vt": 461, "bson_mem_restore_vt": 461, "pedant": 461, "phongo": 461, "bson_host_name_max": 462, "uint16_t": [462, 640], "famili": [462, 486, 558], "pad": [462, 465, 468, 471, 565], "bson_gnuc_pur": [463, 466, 469, 564], "geo": [463, 465, 468], "twod_sphere_vers": 465, "twod_bits_precis": [465, 468], "twod_location_min": [465, 468], "twod_location_max": [465, 468], "haystack_bucket_s": 465, "tune": [465, 468, 471], "is_initi": 468, "drop_dup": 468, "spars": 468, "expire_after_second": 468, "weight": 468, "default_languag": 468, "language_overrid": 468, "geo_opt": 468, "mongoc_index_opt_storage_t": [468, 471], "storage_opt": 468, "partial_filter_express": 468, "dropdup": 468, "silent": 468, "2d": 468, "123": 468, "geo_test": 468, "wiredtig": [469, 471], "config_str": 471, "mongoc_insert_non": 473, "mongoc_insert_continue_on_error": 473, "mongoc_insert_no_valid": 473, "1u": [473, 611], "u_long": 474, "iovec": 474, "bewar": 474, "_mongoc_matcher_t": 478, "neq": 478, "spectrum": 478, "stdin": 478, "bson_reader_t": 478, "fd": [478, 572], "fileno": 478, "stdin_fileno": 478, "bson_reader_new_from_fd": 478, "bson_reader_read": 478, "bson_reader_destroi": 478, "overwritten": 479, "mongoc_query_tailable_cursor": 485, "mongoc_query_secondary_ok": 485, "mongoc_query_oplog_replai": 485, "mongoc_query_no_cursor_timeout": 485, "mongoc_query_await_data": [485, 514], "mongoc_query_parti": 485, "inact": 485, "period": [485, 528, 531], "blast": 485, "faster": 485, "pull": [485, 486], "throw": [485, 660], "num": [486, 487, 488], "strong": 486, "pseudo": 486, "usual": [486, 689], "enough": [486, 489], "prng": [486, 489], "hardwar": 486, "insofar": 486, "degre": [486, 687], "startup": 486, "entropi": [487, 488], "mix": 487, "bound": 487, "estim": [487, 503, 509, 512], "alter": [496, 524, 678, 679, 680, 681, 682, 683, 684], "frozen": [496, 678, 679, 680, 681, 682, 683, 684], "isol": [497, 660], "right": [497, 685, 689], "macro": [497, 648, 662, 687], "mongoc_read_concern_level_lineariz": 497, "lineariz": 497, "mongoc_read_concern_level_avail": 497, "mongoc_read_concern_level_snapshot": 497, "mongoc_read_primary_pref": [498, 512], "mongoc_read_secondary_pref": [498, 512], "mongoc_read_nearest": [498, 512], "dispatch": [498, 508], "hedg": [502, 508], "stale": [503, 509, 514], "maxstalenesssecond": [503, 509, 660], "mongoc_no_max_stal": [503, 509, 512], "sens": [506, 512], "read_mod": 507, "fastest": [508, 660], "unfinish": 508, "max_staleness_second": 509, "run_query_with_read_prefs_tag": 511, "tagset": 511, "rack": [511, 512], "rack1": 511, "datacent": 511, "rack2": 511, "rp_tag": 511, "dbname": 511, "stick": 512, "won": 512, "among": [512, 660, 687], "nearest": [512, 660], "irrespect": 512, "evalu": 512, "primarypref": [512, 660], "secondarypref": [512, 660], "combin": [512, 675], "colon": 512, "readpreferencetag": [512, 660], "resort": 512, "matter": 512, "choic": [512, 689], "lastwrited": 512, "lag": [512, 660], "clock": [512, 552, 559, 560, 561, 660], "suffer": [512, 660], "elig": [512, 660], "mongoc_smallest_max_staleness_second": 512, "90": [512, 660], "outstand": 512, "mongoc_remove_non": 513, "mongoc_reply_non": 514, "mongoc_reply_cursor_not_found": 514, "mongoc_reply_query_failur": 514, "mongoc_reply_shard_config_stal": 514, "mongoc_reply_await_cap": 514, "deprecation_error": [516, 518], "declar": 520, "mongoc_server_api_v1": 525, "deploy": [528, 531], "measur": 534, "_mongoc_server_description_t": 535, "sdam": [535, 596], "possibleprimari": 536, "rsarbit": 536, "rsother": 536, "rsghost": 536, "_mongoc_session_opt_t": 538, "causal_consist": 546, "particip": [546, 680], "setter": [547, 598], "opportun": 547, "offici": [548, 687], "query_opt": 548, "expire_at": [549, 552, 559, 560, 561], "bsd": [549, 550, 551, 552, 557, 563], "sockaddr": [550, 552, 556], "addr": [550, 552, 556], "mongoc_socklen_t": [550, 552, 556, 562, 580], "addrlen": [550, 552, 556], "bind": 550, "better": [550, 552, 569, 588], "monoton": [552, 559, 560, 561], "mind": 552, "captur": 554, "getpeernam": 555, "getnameinfo": 555, "backlog": 557, "af_inet": 558, "sock_stream": 558, "underneath": 558, "buflen": [559, 560], "recv": 559, "sendmsg": 561, "iov_max": 561, "fallback": [561, 620, 621, 622, 623], "optnam": [562, 580], "optval": [562, 580], "optlen": [562, 580], "sockopt": 562, "setsockopt": [562, 580], "_mongoc_socket_t": 563, "friendlier": 563, "solari": 563, "shallow": 565, "sure": 565, "base_stream": 566, "buffer_s": 566, "grow": 566, "past": 566, "_mongoc_stream_buffered_t": 567, "subclass": [567, 574, 584, 587], "descriptor": [568, 571, 572, 574], "_mongoc_stream_file_t": 574, "flush": 575, "physic": 575, "mimic": 575, "semant": [575, 578, 589, 590], "fflush": 575, "forc": 575, "space": 575, "Such": 576, "ownership": [577, 583], "sockettimeoutm": [577, 660], "connecttimeoutm": [577, 621, 660], "loos": [578, 589, 590], "eagain": 581, "exchang": 581, "_mongoc_stream_socket_t": 584, "_mongoc_stream_t": 585, "idea": 585, "perhap": 585, "shim": 585, "turn": 585, "_mongoc_stream_tls_t": 587, "cork": 588, "td": [592, 593, 594, 597], "knowledg": [593, 594, 596], "writabl": 594, "_mongoc_topology_description_t": 596, "Its": 596, "_mongoc_transaction_opt_t": 598, "max_commit_time_m": 606, "committransact": 606, "mongoc_transaction_non": 610, "mongoc_transaction_start": 610, "mongoc_transaction_in_progress": 610, "mongoc_transaction_commit": 610, "mongoc_transaction_abort": 610, "mongoc_update_non": 611, "mongoc_update_upsert": 611, "mongoc_update_no_valid": 611, "bson_has_field": 616, "scheme": [618, 630, 631], "srv": [618, 630, 631, 632], "bson_init_stat": 619, "prop": [619, 650], "40domain": [619, 650], "insensit": [620, 621, 622, 623, 638, 642, 643, 644, 645, 651, 652, 653, 654, 660], "myvalu": [621, 622], "srvservicenam": 632, "seen": 641, "myuser": 641, "mypass": 641, "kerberosus": 641, "zlibcompressionlevel": [643, 660], "my_servic": 650, "minheartbeatfrequencym": 652, "utf8": [654, 661], "_mongoc_uri_t": 660, "host1": 660, "port1": 660, "host2": 660, "port2": 660, "hostn": 660, "portn": 660, "enclos": 660, "value1": 660, "value2": 660, "unexpect": [660, 688], "easier": 660, "mongoc_uri_appnam": 660, "applicationnam": 660, "db1": 660, "2500": 660, "resembl": 660, "_mongodb": 660, "_tcp": 660, "txt": [660, 687], "libresolv": 660, "lack": 660, "res_nsearch": 660, "res_search": 660, "mongoc_uri_retryread": 660, "mongoc_uri_retrywrit": 660, "retrywrit": 660, "slow": 660, "mongoc_uri_compressor": 660, "compress": 660, "mongoc_uri_connecttimeoutm": 660, "000": 660, "mongoc_uri_sockettimeoutm": 660, "300": 660, "mongoc_uri_replicaset": 660, "mongoc_uri_zlibcompressionlevel": 660, "mongoc_uri_loadbalanc": 660, "mongoc_uri_srvmaxhost": 660, "srvmaxhost": 660, "unlimit": 660, "timeoutm": 660, "mongoc_uri_authmechan": 660, "mongoc_uri_authmechanismproperti": 660, "option_kei": 660, "option_valu": 660, "undefin": 660, "mongoc_uri_authsourc": 660, "unnecessari": 660, "mongoc_uri_canonicalizehostnam": 660, "canonicalizehostnam": 660, "alia": 660, "mongoc_uri_gssapiservicenam": 660, "gssapiservicenam": 660, "verif": 660, "mongoc_uri_ssl": 660, "mongoc_uri_sslclientcertificatekeyfil": 660, "sslclientcertificatekeyfil": 660, "mongoc_uri_sslclientcertificatekeypassword": 660, "sslclientcertificatekeypassword": 660, "mongoc_uri_sslcertificateauthorityfil": 660, "sslcertificateauthorityfil": 660, "mongoc_uri_sslallowinvalidcertif": 660, "sslallowinvalidcertif": 660, "mongoc_uri_sslallowinvalidhostnam": 660, "sslallowinvalidhostnam": 660, "scanner": 660, "wake": 660, "rescan": 660, "half": 660, "serverselectiontimeoutm": 660, "technic": [660, 686], "longest": 660, "slowest": 660, "mongoc_uri_heartbeatfrequencym": 660, "000m": 660, "mongoc_uri_serverselectiontimeoutm": 660, "0000m": 660, "mongoc_uri_serverselectiontryonc": 660, "repeatedli": 660, "paus": 660, "signal": 660, "mongoc_uri_socketcheckintervalm": 660, "socketcheckintervalm": 660, "quick": 660, "mongoc_uri_directconnect": 660, "directconnect": 660, "presenc": 660, "mongoc_uri_maxpools": 660, "mongoc_uri_minpools": 660, "minpools": 660, "mongoc_uri_maxidletimem": 660, "maxidletimem": 660, "mongoc_uri_waitqueuemultipl": 660, "waitqueuemultipl": 660, "mongoc_uri_waitqueuetimeoutm": 660, "mongoc_uri_w": 660, "getlasterror": 660, "indefinit": 660, "mongoc_uri_wtimeoutm": 660, "mongoc_uri_journ": 660, "journal": [660, 666, 667, 676, 679], "disk": 660, "mongoc_uri_readconcernlevel": 660, "readconcernlevel": 660, "unspecifi": 660, "readprefer": 660, "chosen": 660, "randomli": 660, "localthresholdm": 660, "slower": 660, "mongoc_uri_readprefer": 660, "secondaryok": 660, "mongoc_uri_readpreferencetag": 660, "mongoc_uri_localthresholdm": 660, "far": 660, "15m": 660, "mongoc_uri_maxstalenesssecond": 660, "smallest": 660, "threshold": 660, "localthreshold": 660, "mongoc_uri_saf": 660, "escaped_str": 661, "unescap": 661, "40": 661, "escap": 661, "preprocessor": [662, 689], "mongoc_version_": 662, "mongoc_version_hex": 662, "fsync": [666, 678], "wmajor": [668, 669], "mongoc_write_concern_w_major": [668, 685], "wtag": 670, "word": 673, "fsync_": 678, "wtimeout_msec": [681, 683, 684], "preset": 682, "principl": 685, "mongoc_write_concern_w_unacknowledg": 685, "receipt": 685, "mongoc_write_concern_w_errors_ignor": 685, "synonym": 685, "preview": 686, "stabil": 686, "offer": 687, "brief": 687, "find_packag": 687, "cmakelist": 687, "hello_mongoc": 687, "four": 687, "add_execut": 687, "target_link_librari": 687, "mongoc_shar": 687, "mongoc_stat": [687, 689], "Or": 687, "aren": 687, "lmongoc": 687, "lbson": 687, "cl": 687, "ic": 687, "coll_nam": 687, "born": 687, "isod": 687, "1906": 687, "09": 687, "di": 687, "1992": 687, "01": 687, "grace": 687, "hopper": 687, "math": 687, "matic": 687, "flow": 687, "cobol": 687, "ba": 687, "school": 687, "vassar": 687, "phd": 687, "yale": 687, "tm": 687, "lang_nam": 687, "keylen": 687, "child2": 687, "calcul": 687, "tm_year": 687, "year": 687, "1900": 687, "tm_mon": 687, "month": 687, "tm_mdai": 687, "bson_append_date_tim": 687, "mktime": 687, "92": 687, "bson_append_array_begin": 687, "bson_uint32_to_str": 687, "bson_append_array_end": 687, "notat": 687, "manner": 687, "closer": 687, "bcon_date_tim": 687, "notic": 687, "bson_new_from_json": 687, "interact": 687, "mycol": 687, "bson_oid_init": 687, "bson_append_oid": 687, "switch": [687, 689], "55ef43766cb5f36a3bae6ee4": 687, "color": 687, "bcon_oid": 687, "old_valu": 687, "new_valu": 687, "55ef549236fe322f9490e17b": 687, "illustr": 687, "prove": 687, "_simpl": 687, "variant": 687, "avgobjs": 687, "numext": 687, "storages": 687, "8192": 687, "lastextents": 687, "paddingfactor": 687, "userflag": 687, "nindex": 687, "indexdetail": 687, "totalindexs": 687, "8176": 687, "indexs": 687, "unawar": 687, "vast": 687, "programm": 687, "topic": 687, "brows": 687, "rest": 687, "administr": 688, "workload": 688, "unauthor": 688, "parti": 688, "sensit": 688, "denable_shared_bson": 688, "denable_client_side_encrypt": 688, "reject": 688, "incorrect": 688, "unsupport": 688, "logpath": 688, "logappend": 688, "atla": 688, "create_schema_fil": 688, "keyvault_db": 688, "keyvault_col": 688, "client_encryption_opt": 688, "datakey_opt": 688, "datakey_id": 688, "mongoc_encryption_example_1": 688, "schema_str": 688, "schema_string_len": 688, "outfil": 688, "dochub": 688, "bcon_bin": 688, "v_binari": 688, "data_len": 688, "jsonschema": 688, "__libmongoctestkeyvault": 688, "encrypted_db": 688, "encrypted_col": 688, "exit_statu": 688, "local_masterkei": 688, "local_masterkey_len": 688, "index_kei": 688, "create_index_cmd": 688, "mongocli": 688, "keyvault_namespac": 688, "auto_encryption_opt": 688, "unencrypted_cli": 688, "unencrypted_col": 688, "hex_to_bin": 688, "getenv": 688, "keyvault": 688, "partialfilterexpress": 688, "123456789": 688, "print_one_docu": 688, "keyword": 688, "create_schema": 688, "mongoc_encryption_example_2": 688, "create_cmd": 688, "create_cmd_opt": 688, "memset": 688, "class": 688, "mongoc_encryption_example_3": 688, "encrypted_field": 688, "to_encrypt": 688, "encrypt_opt": 688, "bson_type_utf8": 688, "v_utf8": 688, "strlen": 688, "mongoc_encryption_example_4": 688, "fact": 688, "u": 688, "win32": 689, "consol": 689, "rememb": 689, "solut": 689, "explor": 689, "expand": 689, "chose": 689, "ran": 689, "dialog": 689, "dll": 689, "bin": 689, "stdafx": 689, "ws2_32": 689, "secur32": 689, "crypt32": 689, "bcrypt": 689, "purpos": 689, "archiv": 689, "routin": 689, "gethostnam": 689, "bson_stat": 689, "peopl": 689, "learn": 689}, "objects": {"": [[194, 0, 1, "c.mongoc_kms_credentials_provider_callback_fn", "mongoc_kms_credentials_provider_callback_fn"]]}, "objtypes": {"0": "c:type"}, "objnames": {"0": ["c", "type", "C type"]}, "titleterms": {"advanc": 0, "connect": [0, 8, 660, 687], "replica": [0, 660], "set": [0, 1, 6, 13, 395, 396, 397, 398, 399, 400, 512, 660], "shard": 0, "cluster": 0, "an": 0, "ipv6": [0, 660], "address": 0, "ipv4": [0, 660], "unix": [0, 19], "domain": 0, "socket": 0, "server": [0, 7, 10, 660, 688], "over": [0, 1], "tl": [0, 7, 660], "compress": 0, "data": [0, 1], "from": [0, 19, 283, 687], "mongodb": [0, 4, 19, 687], "addit": [0, 19], "option": [0, 7, 19, 304, 386, 660], "aggreg": 1, "framework": 1, "exampl": [1, 3, 9, 12, 23, 156, 162, 210, 211, 239, 241, 242, 248, 260, 261, 262, 274, 276, 277, 279, 280, 282, 283, 284, 298, 299, 300, 301, 304, 315, 316, 329, 332, 337, 353, 355, 358, 365, 368, 374, 375, 381, 383, 401, 416, 437, 460, 468, 478, 490, 511, 540, 546, 548, 598, 616, 619, 641, 648, 650, 660, 663], "requir": 1, "us": [1, 687, 688, 689], "zip": 1, "code": 1, "state": 1, "popul": 1, "10": 1, "million": 1, "averag": 1, "citi": 1, "api": [2, 13, 525], "refer": 2, "applic": 3, "perform": [3, 5], "monitor": [3, 660], "apm": 3, "command": [3, 12, 23, 299, 304, 687], "sdam": 3, "function": [3, 13, 26, 38, 49, 60, 66, 70, 76, 80, 86, 90, 107, 110, 113, 127, 147, 156, 172, 184, 197, 203, 204, 239, 261, 274, 283, 326, 353, 381, 401, 416, 437, 438, 449, 460, 465, 468, 471, 478, 483, 486, 497, 512, 523, 525, 535, 538, 563, 565, 574, 584, 585, 596, 598, 660, 685], "authent": [4, 7, 660], "basic": [4, 5, 12, 22, 276, 332, 383, 687], "scram": 4, "sha": 4, "256": 4, "1": 4, "legaci": [4, 660], "cr": 4, "gssapi": 4, "kerbero": 4, "sasl": 4, "plain": 4, "x": 4, "509": 4, "certif": [4, 7], "via": 4, "aw": 4, "iam": 4, "credenti": 4, "uri": [4, 7], "environ": [4, 19], "ec": 4, "ec2": 4, "troubleshoot": 5, "checklist": 5, "counter": 5, "submit": 5, "bug": 5, "report": [5, 13], "bulk": 6, "write": [6, 276, 326, 332, 383, 660, 685], "oper": [6, 276, 332, 383, 687], "insert": [6, 687], "mix": 6, "order": 6, "unord": 6, "bypass": 6, "document": [6, 19, 22, 687], "valid": 6, "concern": [6, 326, 497, 660, 685], "collat": 6, "unacknowledg": 6, "further": 6, "read": [6, 326, 497, 512, 660], "configur": [7, 19], "mongoc_ssl_opt_t": [7, 565], "client": [7, 20, 22, 213, 688], "verif": 7, "support": [7, 19, 525], "librari": [7, 19], "openssl": 7, "libressl": 7, "libtl": 7, "nativ": 7, "window": [7, 19], "secur": 7, "channel": 7, "maco": [7, 19], "darwin": 7, "transport": 7, "pool": [8, 20, 660], "singl": [8, 213], "mode": [8, 512], "creat": [9, 687], "index": [9, 14], "cursor": 10, "handl": 10, "failur": [10, 19], "destroi": 10, "side": [10, 20, 22, 688], "tailabl": 10, "aid": 11, "debug": 11, "gdb": 11, "lldb": 11, "assert": 11, "distinct": 12, "mapreduc": 12, "setup": [12, 23], "more": 12, "complic": 12, "run": [12, 23, 662], "error": [13, 128, 129, 131, 134, 135, 136, 137, 138, 139, 140, 141, 148, 149, 151, 160, 162, 205, 209, 210, 212, 220, 241, 242, 273, 276, 279, 280, 282, 283, 284, 285, 286, 288, 289, 290, 291, 295, 296, 297, 298, 300, 301, 302, 303, 310, 311, 312, 313, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 332, 336, 337, 354, 357, 358, 360, 363, 364, 365, 367, 368, 373, 374, 375, 376, 377, 383, 422, 424, 435, 440, 442, 453, 454, 455, 459, 477], "descript": [13, 132, 133, 142, 144, 145, 146, 158, 159, 170, 171, 209, 213, 243, 248, 253, 277, 279, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 345, 346, 347, 348, 349, 350, 351, 352, 355, 356, 359, 360, 362, 363, 364, 367, 386, 387, 389, 392, 393, 395, 396, 397, 398, 399, 400, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 464, 465, 467, 468, 470, 471, 472, 473, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 496, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 513, 514, 527, 528, 529, 530, 531, 532, 533, 534, 536, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 565, 567, 591, 595, 597, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 678, 679, 680, 681, 682, 683, 684], "label": 13, "transienttransactionerror": 13, "unknowntransactioncommitresult": 13, "version": [13, 525, 662], "gridf": [15, 20], "guid": 16, "libmongoc": [17, 19, 687, 689], "introduct": 17, "initi": 18, "cleanup": 18, "synopsi": [18, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685], "deprec": [18, 22, 128, 129, 209, 214, 215, 220, 282, 283, 284, 285, 287, 288, 289, 297, 299, 302, 304, 311, 321, 325, 330, 344, 346, 364, 367, 384, 452, 453, 468, 475, 476, 477, 478, 531, 627, 630, 633, 660, 666, 678, 685], "featur": 18, "automat": [18, 688], "instal": [19, 687, 688], "c": [19, 687], "driver": 19, "bson": [19, 687], "libbson": 19, "platform": 19, "packag": 19, "manag": 19, "build": 19, "prerequisit": 19, "visual": [19, 687, 689], "studio": [19, 687, 689], "mingw": 19, "w64": 19, "msys2": 19, "prepar": 19, "releas": 19, "tarbal": 19, "git": 19, "repositori": 19, "clone": 19, "execut": [19, 687], "gener": 19, "uninstal": 19, "compon": 19, "deal": 19, "integr": 19, "object": 20, "lifecycl": [20, 154, 155, 204, 348, 416, 460, 535], "databas": 20, "collect": 20, "relat": [20, 449], "bucket": 20, "session": 20, "encrypt": [20, 686, 688], "log": 21, "macro": 21, "custom": 21, "handler": 21, "disabl": 21, "trace": 21, "match": 22, "common": 23, "task": 23, "explain": [23, 299, 304], "mongoc_apm_callbacks_destroi": 24, "mongoc_apm_callbacks_new": 25, "return": [25, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 68, 69, 71, 72, 73, 75, 77, 78, 79, 81, 82, 83, 84, 85, 87, 88, 89, 103, 104, 105, 106, 108, 109, 111, 112, 115, 131, 133, 135, 137, 139, 141, 149, 151, 153, 154, 155, 157, 159, 160, 161, 162, 164, 165, 166, 168, 173, 174, 176, 178, 185, 186, 187, 188, 189, 191, 198, 199, 201, 202, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 227, 230, 231, 232, 234, 235, 236, 237, 240, 241, 242, 244, 245, 248, 249, 251, 252, 253, 254, 256, 257, 258, 259, 260, 262, 263, 264, 265, 266, 269, 273, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 295, 296, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 319, 320, 321, 325, 327, 328, 329, 330, 331, 332, 333, 334, 336, 337, 344, 345, 346, 347, 348, 350, 351, 354, 355, 356, 357, 358, 359, 360, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 382, 383, 385, 386, 388, 390, 391, 394, 395, 396, 397, 398, 399, 400, 402, 403, 404, 405, 406, 407, 409, 410, 411, 412, 413, 414, 415, 417, 418, 419, 420, 422, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 435, 436, 439, 440, 441, 442, 446, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 461, 463, 466, 469, 476, 477, 481, 484, 489, 490, 491, 493, 495, 496, 500, 502, 504, 505, 506, 507, 515, 518, 519, 520, 521, 524, 526, 528, 529, 531, 532, 533, 539, 542, 544, 545, 549, 550, 551, 552, 554, 555, 556, 557, 558, 559, 560, 561, 562, 564, 566, 568, 569, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583, 586, 588, 589, 590, 592, 593, 594, 595, 599, 602, 603, 604, 605, 612, 614, 615, 616, 617, 618, 619, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 639, 640, 641, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 658, 661, 663, 664, 666, 667, 668, 669, 670, 671, 672, 677], "mongoc_apm_callbacks_t": 26, "mongoc_apm_command_failed_get_command_nam": 27, "paramet": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 68, 69, 71, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 84, 85, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 111, 112, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 155, 157, 159, 160, 161, 162, 163, 164, 165, 166, 167, 169, 170, 171, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 196, 198, 199, 200, 201, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 382, 383, 385, 386, 387, 388, 389, 390, 391, 392, 393, 395, 396, 397, 398, 399, 400, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 461, 464, 467, 470, 475, 476, 477, 479, 480, 481, 482, 484, 487, 488, 490, 491, 492, 493, 494, 496, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 515, 516, 518, 519, 520, 522, 524, 526, 527, 528, 529, 530, 531, 532, 533, 534, 536, 537, 539, 540, 541, 542, 543, 544, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 566, 568, 569, 570, 571, 572, 573, 575, 576, 577, 578, 579, 580, 581, 582, 583, 586, 588, 589, 590, 591, 592, 593, 594, 595, 597, 599, 600, 601, 602, 603, 604, 606, 607, 608, 609, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 661, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 678, 679, 680, 681, 682, 683, 684], "mongoc_apm_command_failed_get_context": 28, "mongoc_apm_command_failed_get_dur": 29, "mongoc_apm_command_failed_get_error": 30, "mongoc_apm_command_failed_get_host": 31, "mongoc_apm_command_failed_get_operation_id": 32, "mongoc_apm_command_failed_get_repli": 33, "mongoc_apm_command_failed_get_request_id": 34, "mongoc_apm_command_failed_get_server_connection_id": 35, "mongoc_apm_command_failed_get_server_id": 36, "mongoc_apm_command_failed_get_service_id": 37, "mongoc_apm_command_failed_t": 38, "mongoc_apm_command_started_get_command": 39, "mongoc_apm_command_started_get_command_nam": 40, "mongoc_apm_command_started_get_context": 41, "mongoc_apm_command_started_get_database_nam": 42, "mongoc_apm_command_started_get_host": 43, "mongoc_apm_command_started_get_operation_id": 44, "mongoc_apm_command_started_get_request_id": 45, "mongoc_apm_command_started_get_server_connection_id": 46, "mongoc_apm_command_started_get_server_id": 47, "mongoc_apm_command_started_get_service_id": 48, "mongoc_apm_command_started_t": 49, "mongoc_apm_command_succeeded_get_command_nam": 50, "mongoc_apm_command_succeeded_get_context": 51, "mongoc_apm_command_succeeded_get_dur": 52, "mongoc_apm_command_succeeded_get_host": 53, "mongoc_apm_command_succeeded_get_operation_id": 54, "mongoc_apm_command_succeeded_get_repli": 55, "mongoc_apm_command_succeeded_get_request_id": 56, "mongoc_apm_command_succeeded_get_server_connection_id": 57, "mongoc_apm_command_succeeded_get_server_id": 58, "mongoc_apm_command_succeeded_get_service_id": 59, "mongoc_apm_command_succeeded_t": 60, "mongoc_apm_server_changed_get_context": 61, "mongoc_apm_server_changed_get_host": 62, "mongoc_apm_server_changed_get_new_descript": 63, "mongoc_apm_server_changed_get_previous_descript": 64, "mongoc_apm_server_changed_get_topology_id": 65, "mongoc_apm_server_changed_t": 66, "mongoc_apm_server_closed_get_context": 67, "mongoc_apm_server_closed_get_host": 68, "mongoc_apm_server_closed_get_topology_id": 69, "mongoc_apm_server_closed_t": 70, "mongoc_apm_server_heartbeat_failed_get_await": 71, "mongoc_apm_server_heartbeat_failed_get_context": 72, "mongoc_apm_server_heartbeat_failed_get_dur": 73, "mongoc_apm_server_heartbeat_failed_get_error": 74, "mongoc_apm_server_heartbeat_failed_get_host": 75, "mongoc_apm_server_heartbeat_failed_t": 76, "mongoc_apm_server_heartbeat_started_get_await": 77, "mongoc_apm_server_heartbeat_started_get_context": 78, "mongoc_apm_server_heartbeat_started_get_host": 79, "mongoc_apm_server_heartbeat_started_t": 80, "mongoc_apm_server_heartbeat_succeeded_get_await": 81, "mongoc_apm_server_heartbeat_succeeded_get_context": 82, "mongoc_apm_server_heartbeat_succeeded_get_dur": 83, "mongoc_apm_server_heartbeat_succeeded_get_host": 84, "mongoc_apm_server_heartbeat_succeeded_get_repli": 85, "mongoc_apm_server_heartbeat_succeeded_t": 86, "mongoc_apm_server_opening_get_context": 87, "mongoc_apm_server_opening_get_host": 88, "mongoc_apm_server_opening_get_topology_id": 89, "mongoc_apm_server_opening_t": 90, "mongoc_apm_set_command_failed_cb": 91, "mongoc_apm_set_command_started_cb": 92, "mongoc_apm_set_command_succeeded_cb": 93, "mongoc_apm_set_server_changed_cb": 94, "mongoc_apm_set_server_closed_cb": 95, "mongoc_apm_set_server_heartbeat_failed_cb": 96, "mongoc_apm_set_server_heartbeat_started_cb": 97, "mongoc_apm_set_server_heartbeat_succeeded_cb": 98, "mongoc_apm_set_server_opening_cb": 99, "mongoc_apm_set_topology_changed_cb": 100, "mongoc_apm_set_topology_closed_cb": 101, "mongoc_apm_set_topology_opening_cb": 102, "mongoc_apm_topology_changed_get_context": 103, "mongoc_apm_topology_changed_get_new_descript": 104, "mongoc_apm_topology_changed_get_previous_descript": 105, "mongoc_apm_topology_changed_get_topology_id": 106, "mongoc_apm_topology_changed_t": 107, "mongoc_apm_topology_closed_get_context": 108, "mongoc_apm_topology_closed_get_topology_id": 109, "mongoc_apm_topology_closed_t": 110, "mongoc_apm_topology_opening_get_context": 111, "mongoc_apm_topology_opening_get_topology_id": 112, "mongoc_apm_topology_opening_t": 113, "mongoc_auto_encryption_opts_destroi": 114, "mongoc_auto_encryption_opts_new": 115, "mongoc_auto_encryption_opts_set_bypass_auto_encrypt": 116, "mongoc_auto_encryption_opts_set_bypass_query_analysi": 117, "mongoc_auto_encryption_opts_set_encrypted_fields_map": 118, "mongoc_auto_encryption_opts_set_extra": 119, "mongoc_auto_encryption_opts_set_keyvault_cli": 120, "mongoc_auto_encryption_opts_set_keyvault_client_pool": 121, "mongoc_auto_encryption_opts_set_keyvault_namespac": 122, "mongoc_auto_encryption_opts_set_kms_credential_provider_callback": 123, "mongoc_auto_encryption_opts_set_kms_provid": 124, "mongoc_auto_encryption_opts_set_schema_map": 125, "mongoc_auto_encryption_opts_set_tls_opt": 126, "mongoc_auto_encryption_opts_t": 127, "mongoc_bulk_operation_delet": 128, "mongoc_bulk_operation_delete_on": 129, "mongoc_bulk_operation_destroi": 130, "mongoc_bulk_operation_execut": 131, "mongoc_bulk_operation_get_hint": 132, "mongoc_bulk_operation_get_write_concern": 133, "mongoc_bulk_operation_insert": 134, "mongoc_bulk_operation_insert_with_opt": 135, "mongoc_bulk_operation_remov": 136, "mongoc_bulk_operation_remove_many_with_opt": 137, "mongoc_bulk_operation_remove_on": 138, "mongoc_bulk_operation_remove_one_with_opt": 139, "mongoc_bulk_operation_replace_on": 140, "mongoc_bulk_operation_replace_one_with_opt": 141, "mongoc_bulk_operation_set_bypass_document_valid": 142, "mongoc_bulk_operation_set_client_sess": 143, "mongoc_bulk_operation_set_com": 144, "mongoc_bulk_operation_set_hint": 145, "mongoc_bulk_operation_set_let": 146, "mongoc_bulk_operation_t": 147, "mongoc_bulk_operation_upd": 148, "mongoc_bulk_operation_update_many_with_opt": 149, "mongoc_bulk_operation_update_on": 150, "mongoc_bulk_operation_update_one_with_opt": 151, "mongoc_change_stream_destroi": 152, "mongoc_change_stream_error_docu": 153, "mongoc_change_stream_get_resume_token": 154, "mongoc_change_stream_next": 155, "mongoc_change_stream_t": 156, "start": [156, 687], "resum": 156, "mongoc_check_vers": 157, "mongoc_cleanup": 158, "mongoc_client_command": 159, "mongoc_client_command_simpl": 160, "mongoc_client_command_simple_with_server_id": 161, "mongoc_client_command_with_opt": 162, "mongoc_client_destroi": 163, "mongoc_client_enable_auto_encrypt": 164, "mongoc_client_encryption_add_key_alt_nam": 165, "mongoc_client_encryption_create_datakei": 166, "mongoc_client_encryption_datakey_opts_destroi": 167, "mongoc_client_encryption_datakey_opts_new": 168, "mongoc_client_encryption_datakey_opts_set_keyaltnam": 169, "mongoc_client_encryption_datakey_opts_set_keymateri": 170, "mongoc_client_encryption_datakey_opts_set_masterkei": 171, "mongoc_client_encryption_datakey_opts_t": 172, "mongoc_client_decryption_decrypt": 173, "mongoc_client_encryption_delete_kei": 174, "mongoc_client_encryption_destroi": 175, "mongoc_client_encryption_encrypt": 176, "mongoc_client_encryption_encrypt_opts_destroi": 177, "mongoc_client_encryption_encrypt_opts_new": 178, "mongoc_client_encryption_encrypt_opts_set_algorithm": 179, "mongoc_client_encryption_encrypt_opts_set_contention_factor": 180, "mongoc_client_encryption_encrypt_opts_set_keyaltnam": 181, "mongoc_client_encryption_encrypt_opts_set_keyid": 182, "mongoc_client_encryption_encrypt_opts_set_query_typ": 183, "mongoc_client_encryption_encrypt_opts_t": 184, "mongoc_client_encryption_get_crypt_shared_vers": 185, "mongoc_client_encryption_get_kei": [186, 188], "mongoc_client_encryption_get_key_by_alt_nam": 187, "mongoc_client_encryption_new": 189, "mongoc_client_encryption_opts_destroi": 190, "mongoc_client_encryption_opts_new": 191, "mongoc_client_encryption_opts_set_keyvault_cli": 192, "mongoc_client_encryption_opts_set_keyvault_namespac": 193, "mongoc_client_encryption_opts_set_kms_credential_provider_callback": 194, "mongoc_client_encryption_opts_set_kms_provid": 195, "mongoc_client_encryption_opts_set_tls_opt": 196, "mongoc_client_encryption_opts_t": 197, "mongoc_client_encryption_remove_key_alt_nam": 198, "mongoc_client_encryption_rewrap_many_datakei": 199, "mongoc_client_encryption_rewrap_many_datakey_result_destroi": 200, "mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result": 201, "mongoc_client_encryption_rewrap_many_datakey_result_new": 202, "mongoc_client_encryption_rewrap_many_datakey_result_t": 203, "mongoc_client_encryption_t": 204, "thread": [204, 213, 228, 229, 232, 233, 234, 235, 236, 238, 240, 274, 353, 416, 449, 460, 687], "safeti": [204, 228, 229, 232, 233, 234, 235, 236, 238, 240, 274, 353, 416, 449, 460], "mongoc_client_find_databases_with_opt": 205, "mongoc_client_get_collect": 206, "mongoc_client_get_crypt_shared_vers": 207, "mongoc_client_get_databas": 208, "mongoc_client_get_database_nam": 209, "mongoc_client_get_database_names_with_opt": 210, "mongoc_client_get_default_databas": 211, "mongoc_client_get_gridf": 212, "mongoc_client_get_handshake_descript": 213, "behavior": [213, 298], "see": 213, "also": 213, "mongoc_client_get_max_bson_s": 214, "mongoc_client_get_max_message_s": 215, "mongoc_client_get_read_concern": 216, "mongoc_client_get_read_pref": 217, "mongoc_client_get_server_descript": [218, 219], "mongoc_client_get_server_statu": 220, "mongoc_client_get_uri": 221, "mongoc_client_get_write_concern": 222, "mongoc_client_new": 223, "mongoc_client_new_from_uri": 224, "mongoc_client_new_from_uri_with_error": 225, "mongoc_client_pool_destroi": 226, "mongoc_client_pool_enable_auto_encrypt": 227, "mongoc_client_pool_max_s": 228, "mongoc_client_pool_min_s": 229, "mongoc_client_pool_new": 230, "mongoc_client_pool_new_with_error": 231, "mongoc_client_pool_pop": 232, "mongoc_client_pool_push": 233, "mongoc_client_pool_set_apm_callback": 234, "mongoc_client_pool_set_appnam": 235, "mongoc_client_pool_set_error_api": 236, "mongoc_client_pool_set_server_api": 237, "mongoc_client_pool_set_ssl_opt": 238, "avail": [238, 270], "mongoc_client_pool_t": 239, "mongoc_client_pool_try_pop": 240, "mongoc_client_read_command_with_opt": 241, "mongoc_client_read_write_command_with_opt": 242, "mongoc_client_reset": 243, "mongoc_client_select_serv": 244, "mongoc_client_session_abort_transact": 245, "mongoc_client_session_advance_cluster_tim": 246, "mongoc_client_session_advance_operation_tim": 247, "mongoc_client_session_append": 248, "mongoc_client_session_commit_transact": 249, "mongoc_client_session_destroi": 250, "mongoc_client_session_get_cli": 251, "mongoc_client_session_get_cluster_tim": 252, "mongoc_client_session_get_dirti": 253, "mongoc_client_session_get_lsid": 254, "mongoc_client_session_get_operation_tim": 255, "mongoc_client_session_get_opt": 256, "mongoc_client_session_get_server_id": 257, "mongoc_client_session_get_transaction_st": 258, "mongoc_client_session_in_transact": 259, "mongoc_client_session_start_transact": 260, "mongoc_client_session_t": 261, "mongoc_client_session_with_transact": 262, "mongoc_client_session_with_transaction_cb_t": 263, "mongoc_client_set_apm_callback": 264, "mongoc_client_set_appnam": 265, "mongoc_client_set_error_api": 266, "mongoc_client_set_read_concern": 267, "mongoc_client_set_read_pref": 268, "mongoc_client_set_server_api": 269, "mongoc_client_set_ssl_opt": 270, "mongoc_client_set_stream_initi": 271, "mongoc_client_set_write_concern": 272, "mongoc_client_start_sess": 273, "mongoc_client_t": 274, "stream": [274, 585], "mongoc_client_watch": 275, "mongoc_client_write_command_with_opt": 276, "mongoc_collection_aggreg": 277, "other": 277, "mongoc_collection_command": 278, "mongoc_collection_command_simpl": 279, "mongoc_collection_command_with_opt": 280, "mongoc_collection_copi": 281, "mongoc_collection_count": 282, "mongoc_collection_count_docu": 283, "migrat": 283, "count": [283, 687], "mongoc_collection_count_with_opt": 284, "mongoc_collection_create_bulk_oper": 285, "mongoc_collection_create_bulk_operation_with_opt": 286, "mongoc_collection_create_index": 287, "mongoc_collection_create_index_with_opt": 288, "mongoc_collection_delet": 289, "mongoc_collection_delete_mani": 290, "mongoc_collection_delete_on": 291, "mongoc_collection_destroi": 292, "mongoc_collection_drop": 293, "mongoc_collection_drop_index": 294, "mongoc_collection_drop_index_with_opt": 295, "mongoc_collection_drop_with_opt": 296, "mongoc_collection_ensure_index": 297, "mongoc_collection_estimated_document_count": 298, "mongoc_collection_find": 299, "The": [299, 304], "find": [299, 687], "mongoc_collection_find_and_modifi": 300, "mongoc_collection_find_and_modify_with_opt": 301, "mongoc_collection_find_index": 302, "mongoc_collection_find_indexes_with_opt": 303, "mongoc_collection_find_with_opt": 304, "mongoc_collection_get_last_error": 305, "mongoc_collection_get_nam": 306, "mongoc_collection_get_read_concern": 307, "mongoc_collection_get_read_pref": 308, "mongoc_collection_get_write_concern": 309, "mongoc_collection_insert": 310, "mongoc_collection_insert_bulk": 311, "mongoc_collection_insert_mani": 312, "mongoc_collection_insert_on": 313, "mongoc_collection_keys_to_index_str": 314, "mongoc_collection_read_command_with_opt": 315, "mongoc_collection_read_write_command_with_opt": 316, "mongoc_collection_remov": 317, "mongoc_collection_renam": 318, "mongoc_collection_rename_with_opt": 319, "mongoc_collection_replace_on": 320, "mongoc_collection_sav": 321, "mongoc_collection_set_read_concern": 322, "mongoc_collection_set_read_pref": 323, "mongoc_collection_set_write_concern": 324, "mongoc_collection_stat": 325, "mongoc_collection_t": 326, "prefer": [326, 660], "mongoc_collection_upd": 327, "mongoc_collection_update_mani": 328, "mongoc_collection_update_on": 329, "mongoc_collection_valid": 330, "mongoc_collection_watch": 331, "mongoc_collection_write_command_with_opt": 332, "mongoc_cursor_clon": 333, "mongoc_cursor_curr": 334, "mongoc_cursor_destroi": 335, "mongoc_cursor_error": 336, "mongoc_cursor_error_docu": 337, "mongoc_cursor_get_batch_s": 338, "mongoc_cursor_get_hint": 339, "mongoc_cursor_get_host": 340, "mongoc_cursor_get_id": 341, "mongoc_cursor_get_limit": 342, "mongoc_cursor_get_max_await_time_m": 343, "mongoc_cursor_is_al": 344, "mongoc_cursor_mor": 345, "mongoc_cursor_new_from_command_repli": 346, "mongoc_cursor_new_from_command_reply_with_opt": 347, "mongoc_cursor_next": 348, "mongoc_cursor_set_batch_s": 349, "mongoc_cursor_set_hint": 350, "mongoc_cursor_set_limit": 351, "mongoc_cursor_set_max_await_time_m": 352, "mongoc_cursor_t": 353, "mongoc_database_add_us": 354, "mongoc_database_aggreg": 355, "mongoc_database_command": 356, "mongoc_database_command_simpl": 357, "mongoc_database_command_with_opt": 358, "mongoc_database_copi": 359, "mongoc_database_create_collect": 360, "mongoc_database_destroi": 361, "mongoc_database_drop": 362, "mongoc_database_drop_with_opt": 363, "mongoc_database_find_collect": 364, "mongoc_database_find_collections_with_opt": 365, "mongoc_database_get_collect": 366, "mongoc_database_get_collection_nam": 367, "mongoc_database_get_collection_names_with_opt": 368, "mongoc_database_get_nam": 369, "mongoc_database_get_read_concern": 370, "mongoc_database_get_read_pref": 371, "mongoc_database_get_write_concern": 372, "mongoc_database_has_collect": 373, "mongoc_database_read_command_with_opt": 374, "mongoc_database_read_write_command_with_opt": 375, "mongoc_database_remove_all_us": 376, "mongoc_database_remove_us": 377, "mongoc_database_set_read_concern": 378, "mongoc_database_set_read_pref": 379, "mongoc_database_set_write_concern": 380, "mongoc_database_t": 381, "mongoc_database_watch": 382, "mongoc_database_write_command_with_opt": 383, "mongoc_delete_flags_t": 384, "mongoc_error_has_label": 385, "mongoc_find_and_modify_opts_append": 386, "append": [386, 687], "findandmodifi": 386, "mongoc_find_and_modify_opts_destroi": 387, "mongoc_find_and_modify_opts_get_bypass_document_valid": 388, "mongoc_find_and_modify_opts_get_field": 389, "mongoc_find_and_modify_opts_get_flag": 390, "mongoc_find_and_modify_opts_get_max_time_m": 391, "mongoc_find_and_modify_opts_get_sort": 392, "mongoc_find_and_modify_opts_get_upd": 393, "mongoc_find_and_modify_opts_new": 394, "mongoc_find_and_modify_opts_set_bypass_document_valid": 395, "bypassdocumentvalid": 395, "mongoc_find_and_modify_opts_set_field": 396, "field": [396, 688], "mongoc_find_and_modify_opts_set_flag": 397, "flag": [397, 473, 485, 513, 514, 610, 611], "mongoc_find_and_modify_opts_set_max_time_m": 398, "maxtimem": 398, "mongoc_find_and_modify_opts_set_sort": 399, "sort": 399, "mongoc_find_and_modify_opts_set_upd": 400, "updat": [400, 687], "mongoc_find_and_modify_opts_t": 401, "mongoc_get_major_vers": 402, "mongoc_get_micro_vers": 403, "mongoc_get_minor_vers": 404, "mongoc_get_vers": 405, "mongoc_gridfs_bucket_abort_upload": 406, "mongoc_gridfs_bucket_delete_by_id": 407, "mongoc_gridfs_bucket_destroi": 408, "mongoc_gridfs_bucket_download_to_stream": 409, "mongoc_gridfs_bucket_find": 410, "mongoc_gridfs_bucket_new": 411, "mongoc_gridfs_bucket_open_download_stream": 412, "mongoc_gridfs_bucket_open_upload_stream": 413, "mongoc_gridfs_bucket_open_upload_stream_with_id": 414, "mongoc_gridfs_bucket_stream_error": 415, "mongoc_gridfs_bucket_t": 416, "mongoc_gridfs_bucket_upload_from_stream": 417, "mongoc_gridfs_bucket_upload_from_stream_with_id": 418, "mongoc_gridfs_create_fil": 419, "mongoc_gridfs_create_file_from_stream": 420, "mongoc_gridfs_destroi": 421, "mongoc_gridfs_drop": 422, "mongoc_gridfs_file_destroi": 423, "mongoc_gridfs_file_error": 424, "mongoc_gridfs_file_get_alias": 425, "mongoc_gridfs_file_get_chunk_s": 426, "mongoc_gridfs_file_get_content_typ": 427, "mongoc_gridfs_file_get_filenam": 428, "mongoc_gridfs_file_get_id": 429, "mongoc_gridfs_file_get_length": 430, "mongoc_gridfs_file_get_md5": 431, "mongoc_gridfs_file_get_metadata": 432, "mongoc_gridfs_file_get_upload_d": 433, "mongoc_gridfs_file_list_destroi": 434, "mongoc_gridfs_file_list_error": 435, "mongoc_gridfs_file_list_next": 436, "mongoc_gridfs_file_list_t": 437, "mongoc_gridfs_file_opt_t": 438, "mongoc_gridfs_file_readv": 439, "mongoc_gridfs_file_remov": 440, "mongoc_gridfs_file_sav": 441, "mongoc_gridfs_file_seek": 442, "mongoc_gridfs_file_set_alias": 443, "mongoc_gridfs_file_set_content_typ": 444, "mongoc_gridfs_file_set_filenam": 445, "mongoc_gridfs_file_set_id": 446, "mongoc_gridfs_file_set_md5": 447, "mongoc_gridfs_file_set_metadata": 448, "mongoc_gridfs_file_t": 449, "mongoc_gridfs_file_tel": 450, "mongoc_gridfs_file_writev": 451, "mongoc_gridfs_find": 452, "mongoc_gridfs_find_on": 453, "mongoc_gridfs_find_one_by_filenam": 454, "mongoc_gridfs_find_one_with_opt": 455, "mongoc_gridfs_find_with_opt": 456, "mongoc_gridfs_get_chunk": 457, "mongoc_gridfs_get_fil": 458, "mongoc_gridfs_remove_by_filenam": 459, "mongoc_gridfs_t": 460, "mongoc_handshake_data_append": 461, "mongoc_host_list_t": 462, "mongoc_index_opt_geo_get_default": 463, "mongoc_index_opt_geo_init": 464, "mongoc_index_opt_geo_t": 465, "mongoc_index_opt_get_default": 466, "mongoc_index_opt_init": 467, "mongoc_index_opt_t": 468, "mongoc_index_opt_wt_get_default": 469, "mongoc_index_opt_wt_init": 470, "mongoc_index_opt_wt_t": 471, "mongoc_init": 472, "mongoc_insert_flags_t": 473, "valu": [473, 485, 513, 514, 610, 611], "mongoc_iovec_t": 474, "mongoc_matcher_destroi": 475, "mongoc_matcher_match": 476, "mongoc_matcher_new": 477, "mongoc_matcher_t": 478, "mongoc_optional_copi": 479, "mongoc_optional_init": 480, "mongoc_optional_is_set": 481, "mongoc_optional_set_valu": 482, "mongoc_optional_t": 483, "mongoc_optional_valu": 484, "mongoc_query_flags_t": 485, "mongoc_rand": 486, "entropi": 486, "statu": 486, "mongoc_rand_add": 487, "mongoc_rand_se": 488, "mongoc_rand_statu": 489, "mongoc_read_concern_append": 490, "mongoc_read_concern_copi": 491, "mongoc_read_concern_destroi": 492, "mongoc_read_concern_get_level": 493, "mongoc_read_concern_is_default": 494, "mongoc_read_concern_new": 495, "mongoc_read_concern_set_level": 496, "mongoc_read_concern_t": 497, "level": [497, 685, 688], "mongoc_read_mode_t": 498, "mongoc_read_prefs_add_tag": 499, "mongoc_read_prefs_copi": 500, "mongoc_read_prefs_destroi": 501, "mongoc_read_prefs_get_hedg": 502, "mongoc_read_prefs_get_max_staleness_second": 503, "mongoc_read_prefs_get_mod": 504, "mongoc_read_prefs_get_tag": 505, "mongoc_read_prefs_is_valid": 506, "mongoc_read_prefs_new": 507, "mongoc_read_prefs_set_hedg": 508, "mongoc_read_prefs_set_max_staleness_second": 509, "mongoc_read_prefs_set_mod": 510, "mongoc_read_prefs_set_tag": 511, "mongoc_read_prefs_t": 512, "tag": 512, "max": 512, "stale": 512, "hedg": 512, "mongoc_remove_flags_t": 513, "mongoc_reply_flags_t": 514, "mongoc_server_api_copi": 515, "mongoc_server_api_deprecation_error": 516, "mongoc_server_api_destroi": 517, "mongoc_server_api_get_deprecation_error": 518, "mongoc_server_api_get_strict": 519, "mongoc_server_api_get_vers": 520, "mongoc_server_api_new": 521, "mongoc_server_api_strict": 522, "mongoc_server_api_t": 523, "mongoc_server_api_version_from_str": 524, "mongoc_server_api_version_t": 525, "mongoc_server_api_version_to_str": 526, "mongoc_server_description_destroi": 527, "mongoc_server_description_hello_respons": 528, "mongoc_server_description_host": 529, "mongoc_server_description_id": 530, "mongoc_server_description_ismast": 531, "mongoc_server_description_last_update_tim": 532, "mongoc_server_description_new_copi": 533, "mongoc_server_description_round_trip_tim": 534, "mongoc_server_description_t": 535, "mongoc_server_description_typ": 536, "mongoc_server_descriptions_destroy_al": 537, "mongoc_session_opt_t": 538, "mongoc_session_opts_clon": 539, "mongoc_session_opts_destroi": 540, "mongoc_session_opts_get_causal_consist": 541, "mongoc_session_opts_get_default_transaction_opt": 542, "mongoc_session_opts_get_snapshot": 543, "mongoc_session_opts_get_transaction_opt": 544, "mongoc_session_opts_new": 545, "mongoc_session_opts_set_causal_consist": 546, "mongoc_session_opts_set_default_transaction_opt": 547, "mongoc_session_opts_set_snapshot": 548, "mongoc_socket_accept": 549, "mongoc_socket_bind": 550, "mongoc_socket_clos": 551, "mongoc_socket_connect": 552, "mongoc_socket_destroi": 553, "mongoc_socket_errno": 554, "mongoc_socket_getnameinfo": 555, "mongoc_socket_getsocknam": 556, "mongoc_socket_listen": 557, "mongoc_socket_new": 558, "mongoc_socket_recv": 559, "mongoc_socket_send": 560, "mongoc_socket_sendv": 561, "mongoc_socket_setsockopt": 562, "mongoc_socket_t": 563, "mongoc_ssl_opt_get_default": 564, "mongoc_stream_buffered_new": 566, "mongoc_stream_buffered_t": 567, "mongoc_stream_clos": 568, "mongoc_stream_cork": 569, "mongoc_stream_destroi": 570, "mongoc_stream_file_get_fd": 571, "mongoc_stream_file_new": 572, "mongoc_stream_file_new_for_path": 573, "mongoc_stream_file_t": 574, "mongoc_stream_flush": 575, "mongoc_stream_get_base_stream": 576, "mongoc_stream_gridfs_new": 577, "mongoc_stream_read": 578, "mongoc_stream_readv": 579, "mongoc_stream_setsockopt": 580, "mongoc_stream_should_retri": 581, "mongoc_stream_socket_get_socket": 582, "mongoc_stream_socket_new": 583, "mongoc_stream_socket_t": 584, "mongoc_stream_t": 585, "type": 585, "mongoc_stream_timed_out": 586, "mongoc_stream_tls_t": 587, "mongoc_stream_uncork": 588, "mongoc_stream_writ": 589, "mongoc_stream_writev": 590, "mongoc_topology_description_destroi": 591, "mongoc_topology_description_get_serv": 592, "mongoc_topology_description_has_readable_serv": 593, "mongoc_topology_description_has_writable_serv": 594, "mongoc_topology_description_new_copi": 595, "mongoc_topology_description_t": 596, "mongoc_topology_description_typ": 597, "mongoc_transaction_opt_t": 598, "mongoc_transaction_opts_clon": 599, "mongoc_transaction_opts_destroi": 600, "mongoc_transaction_opts_get_max_commit_time_m": 601, "mongoc_transaction_opts_get_read_concern": 602, "mongoc_transaction_opts_get_read_pref": 603, "mongoc_transaction_opts_get_write_concern": 604, "mongoc_transaction_opts_new": 605, "mongoc_transaction_opts_set_max_commit_time_m": 606, "mongoc_transaction_opts_set_read_concern": 607, "mongoc_transaction_opts_set_read_pref": 608, "mongoc_transaction_opts_set_write_concern": 609, "mongoc_transaction_state_t": 610, "mongoc_update_flags_t": 611, "mongoc_uri_copi": 612, "mongoc_uri_destroi": 613, "mongoc_uri_get_auth_mechan": 614, "mongoc_uri_get_auth_sourc": 615, "mongoc_uri_get_compressor": 616, "mongoc_uri_get_databas": 617, "mongoc_uri_get_host": 618, "mongoc_uri_get_mechanism_properti": 619, "mongoc_uri_get_option_as_bool": 620, "mongoc_uri_get_option_as_int32": 621, "mongoc_uri_get_option_as_int64": 622, "mongoc_uri_get_option_as_utf8": 623, "mongoc_uri_get_opt": 624, "mongoc_uri_get_password": 625, "mongoc_uri_get_read_concern": 626, "mongoc_uri_get_read_pref": 627, "mongoc_uri_get_read_prefs_t": 628, "mongoc_uri_get_replica_set": 629, "mongoc_uri_get_servic": 630, "mongoc_uri_get_srv_hostnam": 631, "mongoc_uri_get_srv_service_nam": 632, "mongoc_uri_get_ssl": 633, "mongoc_uri_get_str": 634, "mongoc_uri_get_tl": 635, "mongoc_uri_get_usernam": 636, "mongoc_uri_get_write_concern": 637, "mongoc_uri_has_opt": 638, "mongoc_uri_new": 639, "mongoc_uri_new_for_host_port": 640, "mongoc_uri_new_with_error": 641, "mongoc_uri_option_is_bool": 642, "mongoc_uri_option_is_int32": 643, "mongoc_uri_option_is_int64": 644, "mongoc_uri_option_is_utf8": 645, "mongoc_uri_set_auth_mechan": 646, "mongoc_uri_set_auth_sourc": 647, "mongoc_uri_set_compressor": 648, "mongoc_uri_set_databas": 649, "mongoc_uri_set_mechanism_properti": 650, "mongoc_uri_set_option_as_bool": 651, "mongoc_uri_set_option_as_int32": 652, "mongoc_uri_set_option_as_int64": 653, "mongoc_uri_set_option_as_utf8": 654, "mongoc_uri_set_password": 655, "mongoc_uri_set_read_concern": 656, "mongoc_uri_set_read_prefs_t": 657, "mongoc_uri_set_usernam": 658, "mongoc_uri_set_write_concern": 659, "mongoc_uri_t": 660, "format": 660, "srv": 660, "mechan": 660, "properti": 660, "ssl": 660, "discoveri": 660, "select": 660, "mongoc_uri_unescap": 661, "check": 662, "time": 662, "mongoc_write_concern_append": 663, "mongoc_write_concern_copi": 664, "mongoc_write_concern_destroi": 665, "mongoc_write_concern_get_fsync": 666, "mongoc_write_concern_get_journ": 667, "mongoc_write_concern_get_w": 668, "mongoc_write_concern_get_wmajor": 669, "mongoc_write_concern_get_wtag": 670, "mongoc_write_concern_get_wtimeout": 671, "mongoc_write_concern_get_wtimeout_int64": 672, "mongoc_write_concern_is_acknowledg": 673, "mongoc_write_concern_is_default": 674, "mongoc_write_concern_is_valid": 675, "mongoc_write_concern_journal_is_set": 676, "mongoc_write_concern_new": 677, "mongoc_write_concern_set_fsync": 678, "mongoc_write_concern_set_journ": 679, "mongoc_write_concern_set_w": 680, "mongoc_write_concern_set_wmajor": 681, "mongoc_write_concern_set_wtag": 682, "mongoc_write_concern_set_wtimeout": 683, "mongoc_write_concern_set_wtimeout_int64": 684, "mongoc_write_concern_t": 685, "experiment": 686, "queryabl": 686, "tutori": 687, "content": 687, "includ": 687, "link": [687, 689], "your": 687, "program": 687, "mongoc": 687, "h": 687, "cmake": 687, "pkg": 687, "config": 687, "specifi": 687, "header": 687, "path": 687, "manual": 687, "microsoft": [687, 689], "project": [687, 689], "make": 687, "bcon": 687, "json": 687, "crud": 687, "delet": 687, "next": [687, 689], "step": [687, 689], "libmongocrypt": 688, "mongocryptd": 688, "provid": 688, "local": 688, "rule": 688, "enforc": 688, "explicit": 688, "decrypt": 688, "static": 689}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 56}}) \ No newline at end of file diff --git a/libmongoc/1.23.2/tutorial.html b/libmongoc/1.23.2/tutorial.html new file mode 100644 index 0000000000000000000000000000000000000000..d012e89f4c06058fae658eaf54eb5b6705a6f177 --- /dev/null +++ b/libmongoc/1.23.2/tutorial.html @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + Tutorial — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Tutorial

    +

    This guide offers a brief introduction to the MongoDB C Driver.

    +

    For more information on the C API, please refer to the API Reference.

    + +
    +

    Installing

    +

    For detailed instructions on installing the MongoDB C Driver on a particular platform, please see the installation guide.

    +
    +
    +

    Starting MongoDB

    +

    To run the examples in this tutorial, MongoDB must be installed and running on localhost on the default port, 27017. To check if it is up and running, connect to it with the MongoDB shell.

    +
    $ mongo --host localhost --port 27017
    +MongoDB shell version: 3.0.6
    +connecting to: localhost:27017/test
    +>
    +
    +
    +
    + +
    +

    Use libmongoc in a Microsoft Visual Studio Project

    +

    See the libmongoc and Visual Studio guide.

    +
    +
    +

    Making a Connection

    +

    Access MongoDB with a mongoc_client_t. It transparently connects to standalone servers, replica sets and sharded clusters on demand. To perform operations on a database or collection, create a mongoc_database_t or mongoc_collection_t struct from the mongoc_client_t.

    +

    At the start of an application, call mongoc_init() before any other libmongoc functions. At the end, call the appropriate destroy function for each collection, database, or client handle, in reverse order from how they were constructed. Call mongoc_cleanup() before exiting.

    +

    The example below establishes a connection to a standalone server on localhost, registers the client application as “connect-example,” and performs a simple command.

    +

    More information about database operations can be found in the CRUD Operations and Executing Commands sections. Examples of connecting to replica sets and sharded clusters can be found on the Advanced Connections page.

    +
    +
    hello_mongoc.c
    +
    #include <mongoc/mongoc.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   const char *uri_string = "mongodb://localhost:27017";
    +   mongoc_uri_t *uri;
    +   mongoc_client_t *client;
    +   mongoc_database_t *database;
    +   mongoc_collection_t *collection;
    +   bson_t *command, reply, *insert;
    +   bson_error_t error;
    +   char *str;
    +   bool retval;
    +
    +   /*
    +    * Required to initialize libmongoc's internals
    +    */
    +   mongoc_init ();
    +
    +   /*
    +    * Optionally get MongoDB URI from command line
    +    */
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   /*
    +    * Safely create a MongoDB URI object from the given string
    +    */
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   /*
    +    * Create a new client instance
    +    */
    +   client = mongoc_client_new_from_uri (uri);
    +   if (!client) {
    +      return EXIT_FAILURE;
    +   }
    +
    +   /*
    +    * Register the application name so we can track it in the profile logs
    +    * on the server. This can also be done from the URI (see other examples).
    +    */
    +   mongoc_client_set_appname (client, "connect-example");
    +
    +   /*
    +    * Get a handle on the database "db_name" and collection "coll_name"
    +    */
    +   database = mongoc_client_get_database (client, "db_name");
    +   collection = mongoc_client_get_collection (client, "db_name", "coll_name");
    +
    +   /*
    +    * Do work. This example pings the database, prints the result as JSON and
    +    * performs an insert
    +    */
    +   command = BCON_NEW ("ping", BCON_INT32 (1));
    +
    +   retval = mongoc_client_command_simple (
    +      client, "admin", command, NULL, &reply, &error);
    +
    +   if (!retval) {
    +      fprintf (stderr, "%s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   str = bson_as_json (&reply, NULL);
    +   printf ("%s\n", str);
    +
    +   insert = BCON_NEW ("hello", BCON_UTF8 ("world"));
    +
    +   if (!mongoc_collection_insert_one (collection, insert, NULL, NULL, &error)) {
    +      fprintf (stderr, "%s\n", error.message);
    +   }
    +
    +   bson_destroy (insert);
    +   bson_destroy (&reply);
    +   bson_destroy (command);
    +   bson_free (str);
    +
    +   /*
    +    * Release our handles and clean up libmongoc
    +    */
    +   mongoc_collection_destroy (collection);
    +   mongoc_database_destroy (database);
    +   mongoc_uri_destroy (uri);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    +

    Creating BSON Documents

    +

    Documents are stored in MongoDB’s data format, BSON. The C driver uses libbson to create BSON documents. There are several ways to construct them: appending key-value pairs, using BCON, or parsing JSON.

    +
    +

    Appending BSON

    +

    A BSON document, represented as a bson_t in code, can be constructed one field at a time using libbson’s append functions.

    +

    For example, to create a document like this:

    +
    {
    +   born : ISODate("1906-12-09"),
    +   died : ISODate("1992-01-01"),
    +   name : {
    +      first : "Grace",
    +      last : "Hopper"
    +   },
    +   languages : [ "MATH-MATIC", "FLOW-MATIC", "COBOL" ],
    +   degrees: [ { degree: "BA", school: "Vassar" }, { degree: "PhD", school: "Yale" } ]
    +}
    +
    +
    +

    Use the following code:

    +
    #include <bson/bson.h>
    +
    +int
    +main (int   argc,
    +      char *argv[])
    +{
    +   struct tm   born = { 0 };
    +   struct tm   died = { 0 };
    +   const char *lang_names[] = {"MATH-MATIC", "FLOW-MATIC", "COBOL"};
    +   const char *schools[] = {"Vassar", "Yale"};
    +   const char *degrees[] = {"BA", "PhD"};
    +   uint32_t    i;
    +   char        buf[16];
    +   const       char *key;
    +   size_t      keylen;
    +   bson_t     *document;
    +   bson_t      child;
    +   bson_t      child2;
    +   char       *str;
    +
    +   document = bson_new ();
    +
    +   /*
    +    * Append { "born" : ISODate("1906-12-09") } to the document.
    +    * Passing -1 for the length argument tells libbson to calculate the string length.
    +    */
    +   born.tm_year = 6;  /* years are 1900-based */
    +   born.tm_mon = 11;  /* months are 0-based */
    +   born.tm_mday = 9;
    +   bson_append_date_time (document, "born", -1, mktime (&born) * 1000);
    +
    +   /*
    +    * Append { "died" : ISODate("1992-01-01") } to the document.
    +    */
    +   died.tm_year = 92;
    +   died.tm_mon = 0;
    +   died.tm_mday = 1;
    +
    +   /*
    +    * For convenience, this macro passes length -1 by default.
    +    */
    +   BSON_APPEND_DATE_TIME (document, "died", mktime (&died) * 1000);
    +
    +   /*
    +    * Append a subdocument.
    +    */
    +   BSON_APPEND_DOCUMENT_BEGIN (document, "name", &child);
    +   BSON_APPEND_UTF8 (&child, "first", "Grace");
    +   BSON_APPEND_UTF8 (&child, "last", "Hopper");
    +   bson_append_document_end (document, &child);
    +
    +   /*
    +    * Append array of strings. Generate keys "0", "1", "2".
    +    */
    +   BSON_APPEND_ARRAY_BEGIN (document, "languages", &child);
    +   for (i = 0; i < sizeof lang_names / sizeof (char *); ++i) {
    +      keylen = bson_uint32_to_string (i, &key, buf, sizeof buf);
    +      bson_append_utf8 (&child, key, (int) keylen, lang_names[i], -1);
    +   }
    +   bson_append_array_end (document, &child);
    +
    +   /*
    +    * Array of subdocuments:
    +    *    degrees: [ { degree: "BA", school: "Vassar" }, ... ]
    +    */
    +   BSON_APPEND_ARRAY_BEGIN (document, "degrees", &child);
    +   for (i = 0; i < sizeof degrees / sizeof (char *); ++i) {
    +      keylen = bson_uint32_to_string (i, &key, buf, sizeof buf);
    +      bson_append_document_begin (&child, key, (int) keylen, &child2);
    +      BSON_APPEND_UTF8 (&child2, "degree", degrees[i]);
    +      BSON_APPEND_UTF8 (&child2, "school", schools[i]);
    +      bson_append_document_end (&child, &child2);
    +   }
    +   bson_append_array_end (document, &child);
    +
    +   /*
    +    * Print the document as a JSON string.
    +    */
    +   str = bson_as_canonical_extended_json (document, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   /*
    +    * Clean up allocated bson documents.
    +    */
    +   bson_destroy (document);
    +   return 0;
    +}
    +
    +
    +

    See the libbson documentation for all of the types that can be appended to a bson_t.

    +
    +
    +

    Using BCON

    +

    BSON C Object Notation, BCON for short, is an alternative way of constructing BSON documents in a manner closer to the intended format. It has less type-safety than BSON’s append functions but results in less code.

    +
    #include <bson/bson.h>
    +
    +int
    +main (int   argc,
    +      char *argv[])
    +{
    +   struct tm born = { 0 };
    +   struct tm died = { 0 };
    +   bson_t   *document;
    +   char     *str;
    +
    +   born.tm_year = 6;
    +   born.tm_mon = 11;
    +   born.tm_mday = 9;
    +
    +   died.tm_year = 92;
    +   died.tm_mon = 0;
    +   died.tm_mday = 1;
    +
    +   document = BCON_NEW (
    +      "born", BCON_DATE_TIME (mktime (&born) * 1000),
    +      "died", BCON_DATE_TIME (mktime (&died) * 1000),
    +      "name", "{",
    +      "first", BCON_UTF8 ("Grace"),
    +      "last", BCON_UTF8 ("Hopper"),
    +      "}",
    +      "languages", "[",
    +      BCON_UTF8 ("MATH-MATIC"),
    +      BCON_UTF8 ("FLOW-MATIC"),
    +      BCON_UTF8 ("COBOL"),
    +      "]",
    +      "degrees", "[",
    +      "{", "degree", BCON_UTF8 ("BA"), "school", BCON_UTF8 ("Vassar"), "}",
    +      "{", "degree", BCON_UTF8 ("PhD"), "school", BCON_UTF8 ("Yale"), "}",
    +      "]");
    +
    +   /*
    +    * Print the document as a JSON string.
    +    */
    +   str = bson_as_canonical_extended_json (document, NULL);
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   /*
    +    * Clean up allocated bson documents.
    +    */
    +   bson_destroy (document);
    +   return 0;
    +}
    +
    +
    +

    Notice that BCON can create arrays, subdocuments and arbitrary fields.

    +
    +
    +

    Creating BSON from JSON

    +

    For single documents, BSON can be created from JSON strings via bson_new_from_json.

    +
    #include <bson/bson.h>
    +
    +int
    +main (int   argc,
    +      char *argv[])
    +{
    +   bson_error_t error;
    +   bson_t      *bson;
    +   char        *string;
    +
    +   const char *json = "{\"name\": {\"first\":\"Grace\", \"last\":\"Hopper\"}}";
    +   bson = bson_new_from_json ((const uint8_t *)json, -1, &error);
    +
    +   if (!bson) {
    +      fprintf (stderr, "%s\n", error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   string = bson_as_canonical_extended_json (bson, NULL);
    +   printf ("%s\n", string);
    +   bson_free (string);
    +
    +   return 0;
    +}
    +
    +
    +

    To initialize BSON from a sequence of JSON documents, use bson_json_reader_t.

    +
    +
    +
    +

    Basic CRUD Operations

    +

    This section demonstrates the basics of using the C Driver to interact with MongoDB.

    +
    +

    Inserting a Document

    +

    To insert documents into a collection, first obtain a handle to a mongoc_collection_t via a mongoc_client_t. Then, use mongoc_collection_insert_one() to add BSON documents to the collection. This example inserts into the database “mydb” and collection “mycoll”.

    +

    When finished, ensure that allocated structures are freed by using their respective destroy functions.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int   argc,
    +      char *argv[])
    +{
    +    mongoc_client_t *client;
    +    mongoc_collection_t *collection;
    +    bson_error_t error;
    +    bson_oid_t oid;
    +    bson_t *doc;
    +
    +    mongoc_init ();
    +
    +    client = mongoc_client_new ("mongodb://localhost:27017/?appname=insert-example");
    +    collection = mongoc_client_get_collection (client, "mydb", "mycoll");
    +
    +    doc = bson_new ();
    +    bson_oid_init (&oid, NULL);
    +    BSON_APPEND_OID (doc, "_id", &oid);
    +    BSON_APPEND_UTF8 (doc, "hello", "world");
    +
    +    if (!mongoc_collection_insert_one (
    +           collection, doc, NULL, NULL, &error)) {
    +        fprintf (stderr, "%s\n", error.message);
    +    }
    +
    +    bson_destroy (doc);
    +    mongoc_collection_destroy (collection);
    +    mongoc_client_destroy (client);
    +    mongoc_cleanup ();
    +
    +    return 0;
    +}
    +
    +
    +

    Compile the code and run it:

    +
    $ gcc -o insert insert.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./insert
    +
    +
    +

    On Windows:

    +
    C:\> cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 insert.c
    +C:\> insert
    +
    +
    +

    To verify that the insert succeeded, connect with the MongoDB shell.

    +
    $ mongo
    +MongoDB shell version: 3.0.6
    +connecting to: test
    +> use mydb
    +switched to db mydb
    +> db.mycoll.find()
    +{ "_id" : ObjectId("55ef43766cb5f36a3bae6ee4"), "hello" : "world" }
    +>
    +
    +
    +
    +
    +

    Finding a Document

    +

    To query a MongoDB collection with the C driver, use the function mongoc_collection_find_with_opts(). This returns a cursor to the matching documents. The following examples iterate through the result cursors and print the matches to stdout as JSON strings.

    +

    Use a document as a query specifier; for example,

    +
    { "color" : "red" }
    +
    +
    +

    will match any document with a field named “color” with value “red”. An empty document {} can be used to match all documents.

    +

    This first example uses an empty query specifier to find all documents in the database “mydb” and collection “mycoll”.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   mongoc_cursor_t *cursor;
    +   const bson_t *doc;
    +   bson_t *query;
    +   char *str;
    +
    +   mongoc_init ();
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost:27017/?appname=find-example");
    +   collection = mongoc_client_get_collection (client, "mydb", "mycoll");
    +   query = bson_new ();
    +   cursor = mongoc_collection_find_with_opts (collection, query, NULL, NULL);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   bson_destroy (query);
    +   mongoc_cursor_destroy (cursor);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +

    Compile the code and run it:

    +
    $ gcc -o find find.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./find
    +{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }
    +
    +
    +

    On Windows:

    +
    C:\> cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 find.c
    +C:\> find
    +{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }
    +
    +
    +

    To look for a specific document, add a specifier to query. This example adds a call to BSON_APPEND_UTF8() to look for all documents matching {"hello" : "world"}.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   mongoc_cursor_t *cursor;
    +   const bson_t *doc;
    +   bson_t *query;
    +   char *str;
    +
    +   mongoc_init ();
    +
    +   client = mongoc_client_new (
    +      "mongodb://localhost:27017/?appname=find-specific-example");
    +   collection = mongoc_client_get_collection (client, "mydb", "mycoll");
    +   query = bson_new ();
    +   BSON_APPEND_UTF8 (query, "hello", "world");
    +
    +   cursor = mongoc_collection_find_with_opts (collection, query, NULL, NULL);
    +
    +   while (mongoc_cursor_next (cursor, &doc)) {
    +      str = bson_as_canonical_extended_json (doc, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   }
    +
    +   bson_destroy (query);
    +   mongoc_cursor_destroy (cursor);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +
    $ gcc -o find-specific find-specific.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./find-specific
    +{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }
    +
    +
    +
    C:\> cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 find-specific.c
    +C:\> find-specific
    +{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }
    +
    +
    +
    +
    +

    Updating a Document

    +

    This code snippet gives an example of using mongoc_collection_update_one() to update the fields of a document.

    +

    Using the “mydb” database, the following example inserts an example document into the “mycoll” collection. Then, using its _id field, the document is updated with different values and a new field.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_collection_t *collection;
    +   mongoc_client_t *client;
    +   bson_error_t error;
    +   bson_oid_t oid;
    +   bson_t *doc = NULL;
    +   bson_t *update = NULL;
    +   bson_t *query = NULL;
    +
    +   mongoc_init ();
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost:27017/?appname=update-example");
    +   collection = mongoc_client_get_collection (client, "mydb", "mycoll");
    +
    +   bson_oid_init (&oid, NULL);
    +   doc = BCON_NEW ("_id", BCON_OID (&oid), "key", BCON_UTF8 ("old_value"));
    +
    +   if (!mongoc_collection_insert_one (collection, doc, NULL, &error)) {
    +      fprintf (stderr, "%s\n", error.message);
    +      goto fail;
    +   }
    +
    +   query = BCON_NEW ("_id", BCON_OID (&oid));
    +   update = BCON_NEW ("$set",
    +                      "{",
    +                      "key",
    +                      BCON_UTF8 ("new_value"),
    +                      "updated",
    +                      BCON_BOOL (true),
    +                      "}");
    +
    +   if (!mongoc_collection_update_one (
    +          collection, query, update, NULL, NULL, &error)) {
    +      fprintf (stderr, "%s\n", error.message);
    +      goto fail;
    +   }
    +
    +fail:
    +   if (doc)
    +      bson_destroy (doc);
    +   if (query)
    +      bson_destroy (query);
    +   if (update)
    +      bson_destroy (update);
    +
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +

    Compile the code and run it:

    +
    $ gcc -o update update.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./update
    +
    +
    +

    On Windows:

    +
    C:\> cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 update.c
    +C:\> update
    +{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }
    +
    +
    +

    To verify that the update succeeded, connect with the MongoDB shell.

    +
    $ mongo
    +MongoDB shell version: 3.0.6
    +connecting to: test
    +> use mydb
    +switched to db mydb
    +> db.mycoll.find({"updated" : true})
    +{ "_id" : ObjectId("55ef549236fe322f9490e17b"), "updated" : true, "key" : "new_value" }
    +>
    +
    +
    +
    +
    +

    Deleting a Document

    +

    This example illustrates the use of mongoc_collection_delete_one() to delete a document.

    +

    The following code inserts a sample document into the database “mydb” and collection “mycoll”. Then, it deletes all documents matching {"hello" : "world"}.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   bson_error_t error;
    +   bson_oid_t oid;
    +   bson_t *doc;
    +
    +   mongoc_init ();
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost:27017/?appname=delete-example");
    +   collection = mongoc_client_get_collection (client, "test", "test");
    +
    +   doc = bson_new ();
    +   bson_oid_init (&oid, NULL);
    +   BSON_APPEND_OID (doc, "_id", &oid);
    +   BSON_APPEND_UTF8 (doc, "hello", "world");
    +
    +   if (!mongoc_collection_insert_one (collection, doc, NULL, &error)) {
    +      fprintf (stderr, "Insert failed: %s\n", error.message);
    +   }
    +
    +   bson_destroy (doc);
    +
    +   doc = bson_new ();
    +   BSON_APPEND_OID (doc, "_id", &oid);
    +
    +   if (!mongoc_collection_delete_one (
    +          collection, doc, NULL, NULL, &error)) {
    +      fprintf (stderr, "Delete failed: %s\n", error.message);
    +   }
    +
    +   bson_destroy (doc);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +

    Compile the code and run it:

    +
    $ gcc -o delete delete.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./delete
    +
    +
    +

    On Windows:

    +
    C:\> cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 delete.c
    +C:\> delete
    +
    +
    +

    Use the MongoDB shell to prove that the documents have been removed successfully.

    +
    $ mongo
    +MongoDB shell version: 3.0.6
    +connecting to: test
    +> use mydb
    +switched to db mydb
    +> db.mycoll.count({"hello" : "world"})
    +0
    +>
    +
    +
    +
    +
    +

    Counting Documents

    +

    Counting the number of documents in a MongoDB collection is similar to performing a find operation. This example counts the number of documents matching {"hello" : "world"} in the database “mydb” and collection “mycoll”.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   bson_error_t error;
    +   bson_t *doc;
    +   int64_t count;
    +
    +   mongoc_init ();
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost:27017/?appname=count-example");
    +   collection = mongoc_client_get_collection (client, "mydb", "mycoll");
    +   doc = bson_new_from_json (
    +      (const uint8_t *) "{\"hello\" : \"world\"}", -1, &error);
    +
    +   count = mongoc_collection_count (
    +      collection, MONGOC_QUERY_NONE, doc, 0, 0, NULL, &error);
    +
    +   if (count < 0) {
    +      fprintf (stderr, "%s\n", error.message);
    +   } else {
    +      printf ("%" PRId64 "\n", count);
    +   }
    +
    +   bson_destroy (doc);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +

    Compile the code and run it:

    +
    $ gcc -o count count.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./count
    +1
    +
    +
    +

    On Windows:

    +
    C:\> cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 count.c
    +C:\> count
    +1
    +
    +
    +
    +
    +
    +

    Executing Commands

    +

    The driver provides helper functions for executing MongoDB commands on client, database and collection structures. These functions return cursors; the _simple variants return booleans indicating success or failure.

    +

    This example executes the collStats command against the collection “mycoll” in database “mydb”.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   mongoc_collection_t *collection;
    +   bson_error_t error;
    +   bson_t *command;
    +   bson_t reply;
    +   char *str;
    +
    +   mongoc_init ();
    +
    +   client = mongoc_client_new (
    +      "mongodb://localhost:27017/?appname=executing-example");
    +   collection = mongoc_client_get_collection (client, "mydb", "mycoll");
    +
    +   command = BCON_NEW ("collStats", BCON_UTF8 ("mycoll"));
    +   if (mongoc_collection_command_simple (
    +          collection, command, NULL, &reply, &error)) {
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("%s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (stderr, "Failed to run command: %s\n", error.message);
    +   }
    +
    +   bson_destroy (command);
    +   bson_destroy (&reply);
    +   mongoc_collection_destroy (collection);
    +   mongoc_client_destroy (client);
    +   mongoc_cleanup ();
    +
    +   return 0;
    +}
    +
    +
    +

    Compile the code and run it:

    +
    $ gcc -o executing executing.c $(pkg-config --cflags --libs libmongoc-1.0)
    +$ ./executing
    +{ "ns" : "mydb.mycoll", "count" : 1, "size" : 48, "avgObjSize" : 48, "numExtents" : 1, "storageSize" : 8192,
    +"lastExtentSize" : 8192.000000, "paddingFactor" : 1.000000, "userFlags" : 1, "capped" : false, "nindexes" : 1,
    +"indexDetails" : {  }, "totalIndexSize" : 8176, "indexSizes" : { "_id_" : 8176 }, "ok" : 1.000000 }
    +
    +
    +

    On Windows:

    +
    C:\> cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 executing.c
    +C:\> executing
    +{ "ns" : "mydb.mycoll", "count" : 1, "size" : 48, "avgObjSize" : 48, "numExtents" : 1, "storageSize" : 8192,
    +"lastExtentSize" : 8192.000000, "paddingFactor" : 1.000000, "userFlags" : 1, "capped" : false, "nindexes" : 1,
    +"indexDetails" : {  }, "totalIndexSize" : 8176, "indexSizes" : { "_id_" : 8176 }, "ok" : 1.000000 }
    +
    +
    +
    +
    +

    Threading

    +

    The MongoDB C Driver is thread-unaware in the vast majority of its operations. This means it is up to the programmer to guarantee thread-safety.

    +

    However, mongoc_client_pool_t is thread-safe and is used to fetch a mongoc_client_t in a thread-safe manner. After retrieving a client from the pool, the client structure should be considered owned by the calling thread. When the thread is finished, the client should be placed back into the pool.

    +
    +
    example-pool.c
    +
    /* gcc example-pool.c -o example-pool $(pkg-config --cflags --libs
    + * libmongoc-1.0) */
    +
    +/* ./example-pool [CONNECTION_STRING] */
    +
    +#include <mongoc/mongoc.h>
    +#include <pthread.h>
    +#include <stdio.h>
    +
    +static pthread_mutex_t mutex;
    +static bool in_shutdown = false;
    +
    +static void *
    +worker (void *data)
    +{
    +   mongoc_client_pool_t *pool = data;
    +   mongoc_client_t *client;
    +   bson_t ping = BSON_INITIALIZER;
    +   bson_error_t error;
    +   bool r;
    +
    +   BSON_APPEND_INT32 (&ping, "ping", 1);
    +
    +   while (true) {
    +      client = mongoc_client_pool_pop (pool);
    +      /* Do something with client. If you are writing an HTTP server, you
    +       * probably only want to hold onto the client for the portion of the
    +       * request performing database queries.
    +       */
    +      r = mongoc_client_command_simple (
    +         client, "admin", &ping, NULL, NULL, &error);
    +
    +      if (!r) {
    +         fprintf (stderr, "%s\n", error.message);
    +      }
    +
    +      mongoc_client_pool_push (pool, client);
    +
    +      pthread_mutex_lock (&mutex);
    +      if (in_shutdown || !r) {
    +         pthread_mutex_unlock (&mutex);
    +         break;
    +      }
    +
    +      pthread_mutex_unlock (&mutex);
    +   }
    +
    +   bson_destroy (&ping);
    +   return NULL;
    +}
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   const char *uri_string = "mongodb://127.0.0.1/?appname=pool-example";
    +   mongoc_uri_t *uri;
    +   bson_error_t error;
    +   mongoc_client_pool_t *pool;
    +   pthread_t threads[10];
    +   unsigned i;
    +   void *ret;
    +
    +   pthread_mutex_init (&mutex, NULL);
    +   mongoc_init ();
    +
    +   if (argc > 1) {
    +      uri_string = argv[1];
    +   }
    +
    +   uri = mongoc_uri_new_with_error (uri_string, &error);
    +   if (!uri) {
    +      fprintf (stderr,
    +               "failed to parse URI: %s\n"
    +               "error message:       %s\n",
    +               uri_string,
    +               error.message);
    +      return EXIT_FAILURE;
    +   }
    +
    +   pool = mongoc_client_pool_new (uri);
    +   mongoc_client_pool_set_error_api (pool, 2);
    +
    +   for (i = 0; i < 10; i++) {
    +      pthread_create (&threads[i], NULL, worker, pool);
    +   }
    +
    +   sleep (10);
    +   pthread_mutex_lock (&mutex);
    +   in_shutdown = true;
    +   pthread_mutex_unlock (&mutex);
    +
    +   for (i = 0; i < 10; i++) {
    +      pthread_join (threads[i], &ret);
    +   }
    +
    +   mongoc_client_pool_destroy (pool);
    +   mongoc_uri_destroy (uri);
    +
    +   mongoc_cleanup ();
    +
    +   return EXIT_SUCCESS;
    +}
    +
    +
    +
    +
    +
    +

    Next Steps

    +

    To find information on advanced topics, browse the rest of the C driver guide or the official MongoDB documentation.

    +

    For help with common issues, consult the Troubleshooting page. To report a bug or request a new feature, follow these instructions.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/using_client_side_encryption.html b/libmongoc/1.23.2/using_client_side_encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..da4aa55f401023f5d946b58f8e61b3bdeca32ae8 --- /dev/null +++ b/libmongoc/1.23.2/using_client_side_encryption.html @@ -0,0 +1,1277 @@ + + + + + + + + + + + + + + Using Client-Side Field Level Encryption — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Using Client-Side Field Level Encryption

    +

    New in MongoDB 4.2, Client-Side Field Level Encryption (also referred to as Client-Side Encryption) allows administrators and developers to encrypt specific data fields in addition to other MongoDB encryption features.

    +

    With Client-Side Encryption, developers can encrypt fields client side without any server-side configuration or directives. Client-Side Encryption supports workloads where applications must guarantee that unauthorized parties, including server administrators, cannot read the encrypted data.

    +

    Automatic encryption, where sensitive fields in commands are encrypted automatically, requires an Enterprise-only process to do query analysis.

    +
    +

    Installation

    +
    +

    libmongocrypt

    +

    There is a separate library, libmongocrypt, that must be installed prior to configuring libmongoc to enable Client-Side Encryption.

    +

    libmongocrypt depends on libbson. To build libmongoc with Client-Side Encryption support you must:

    +
      +
    1. Install libbson

    2. +
    3. Build and install libmongocrypt

    4. +
    5. Build libmongoc

    6. +
    +

    To install libbson, follow the instructions to install with a package manager: Install libbson with a Package Manager or build from source with cmake (disable building libmongoc with -DENABLE_MONGOC=OFF):

    +
    $ cd mongo-c-driver
    +$ mkdir cmake-build && cd cmake-build
    +$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_MONGOC=OFF ..
    +$ cmake --build . --target install
    +
    +
    +

    To build and install libmongocrypt, clone the repository and configure as follows:

    +
    $ cd libmongocrypt
    +$ mkdir cmake-build && cd cmake-build
    +$ cmake -DENABLE_SHARED_BSON=ON ..
    +$ cmake --build . --target install
    +
    +
    +

    Then, you should be able to build libmongoc with Client-Side Encryption.

    +
    $ cd mongo-c-driver
    +$ mkdir cmake-build && cd cmake-build
    +$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_MONGOC=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=ON ..
    +$ cmake --build . --target install
    +
    +
    +
    +
    +

    mongocryptd

    +

    The mongocryptd binary is required for automatic Client-Side Encryption and is included as a component in the MongoDB Enterprise Server package. For detailed installation instructions see the MongoDB documentation on mongocryptd.

    +

    mongocryptd performs the following:

    +
      +
    • Parses the automatic encryption rules specified to the database connection. If the JSON schema contains invalid automatic encryption syntax or any document validation syntax, mongocryptd returns an error.

    • +
    • Uses the specified automatic encryption rules to mark fields in read and write operations for encryption.

    • +
    • Rejects read/write operations that may return unexpected or incorrect results when applied to an encrypted field. For supported and unsupported operations, see Read/Write Support with Automatic Field Level Encryption.

    • +
    +

    A mongoc_client_t configured with auto encryption will automatically spawn the mongocryptd process from the application’s PATH. Applications can control the spawning behavior as part of the automatic encryption options. For example, to set a custom path to the mongocryptd process, set the mongocryptdSpawnPath with mongoc_auto_encryption_opts_set_extra().

    +
    bson_t *extra = BCON_NEW ("mongocryptdSpawnPath", "/path/to/mongocryptd");
    +mongoc_auto_encryption_opts_set_extra (opts, extra);
    +
    +
    +

    To control the logging output of mongocryptd pass mongocryptdSpawnArgs to mongoc_auto_encryption_opts_set_extra():

    +
    bson_t *extra = BCON_NEW ("mongocryptdSpawnArgs",
    +   "[", "--logpath=/path/to/mongocryptd.log", "--logappend", "]");
    +mongoc_auto_encryption_opts_set_extra (opts, extra);
    +
    +
    +

    If your application wishes to manage the mongocryptd process manually, it is possible to disable spawning mongocryptd:

    +
    bson_t *extra = BCON_NEW ("mongocryptdBypassSpawn",
    +   BCON_BOOL(true), "mongocryptdURI", "mongodb://localhost:27020");
    +mongoc_auto_encryption_opts_set_extra (opts, extra);
    +
    +
    +

    mongocryptd is only responsible for supporting automatic Client-Side Encryption in the driver and does not itself perform any encryption or decryption.

    +
    +
    +
    +

    Automatic Client-Side Field Level Encryption

    +

    Automatic Client-Side Encryption is enabled by calling mongoc_client_enable_auto_encryption() on a mongoc_client_t. The following examples show how to set up automatic client-side field level encryption using mongoc_client_encryption_t to create a new encryption data key.

    +
    +

    Note

    +

    Automatic client-side field level encryption requires MongoDB 4.2 enterprise or a MongoDB 4.2 Atlas cluster. The community version of the server supports automatic decryption as well as Explicit Encryption.

    +
    +
    +

    Providing Local Automatic Encryption Rules

    +

    The following example shows how to specify automatic encryption rules using a schema map set with mongoc_auto_encryption_opts_set_schema_map(). The automatic encryption rules are expressed using a strict subset of the JSON Schema syntax.

    +

    Supplying a schema map provides more security than relying on JSON Schemas obtained from the server. It protects against a malicious server advertising a false JSON Schema, which could trick the client into sending unencrypted data that should be encrypted.

    +

    JSON Schemas supplied in the schema map only apply to configuring automatic client-side field level encryption. Other validation rules in the JSON schema will not be enforced by the driver and will result in an error:

    +
    +
    client-side-encryption-schema-map.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +#include "client-side-encryption-helpers.h"
    +
    +/* Helper method to create a new data key in the key vault, a schema to use that
    + * key, and writes the schema to a file for later use. */
    +static bool
    +create_schema_file (bson_t *kms_providers,
    +                    const char *keyvault_db,
    +                    const char *keyvault_coll,
    +                    mongoc_client_t *keyvault_client,
    +                    bson_error_t *error)
    +{
    +   mongoc_client_encryption_t *client_encryption = NULL;
    +   mongoc_client_encryption_opts_t *client_encryption_opts = NULL;
    +   mongoc_client_encryption_datakey_opts_t *datakey_opts = NULL;
    +   bson_value_t datakey_id = {0};
    +   char *keyaltnames[] = {"mongoc_encryption_example_1"};
    +   bson_t *schema = NULL;
    +   char *schema_string = NULL;
    +   size_t schema_string_len;
    +   FILE *outfile = NULL;
    +   bool ret = false;
    +
    +   client_encryption_opts = mongoc_client_encryption_opts_new ();
    +   mongoc_client_encryption_opts_set_kms_providers (client_encryption_opts,
    +                                                    kms_providers);
    +   mongoc_client_encryption_opts_set_keyvault_namespace (
    +      client_encryption_opts, keyvault_db, keyvault_coll);
    +   mongoc_client_encryption_opts_set_keyvault_client (client_encryption_opts,
    +                                                      keyvault_client);
    +
    +   client_encryption =
    +      mongoc_client_encryption_new (client_encryption_opts, error);
    +   if (!client_encryption) {
    +      goto fail;
    +   }
    +
    +   /* Create a new data key and json schema for the encryptedField.
    +    * https://dochub.mongodb.org/core/client-side-field-level-encryption-automatic-encryption-rules
    +    */
    +   datakey_opts = mongoc_client_encryption_datakey_opts_new ();
    +   mongoc_client_encryption_datakey_opts_set_keyaltnames (
    +      datakey_opts, keyaltnames, 1);
    +   if (!mongoc_client_encryption_create_datakey (
    +          client_encryption, "local", datakey_opts, &datakey_id, error)) {
    +      goto fail;
    +   }
    +
    +   /* Create a schema describing that "encryptedField" is a string encrypted
    +    * with the newly created data key using deterministic encryption. */
    +   schema = BCON_NEW ("properties",
    +                      "{",
    +                      "encryptedField",
    +                      "{",
    +                      "encrypt",
    +                      "{",
    +                      "keyId",
    +                      "[",
    +                      BCON_BIN (datakey_id.value.v_binary.subtype,
    +                                datakey_id.value.v_binary.data,
    +                                datakey_id.value.v_binary.data_len),
    +                      "]",
    +                      "bsonType",
    +                      "string",
    +                      "algorithm",
    +                      MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC,
    +                      "}",
    +                      "}",
    +                      "}",
    +                      "bsonType",
    +                      "object");
    +
    +   /* Use canonical JSON so that other drivers and tools will be
    +    * able to parse the MongoDB extended JSON file. */
    +   schema_string = bson_as_canonical_extended_json (schema, &schema_string_len);
    +   outfile = fopen ("jsonSchema.json", "w");
    +   if (0 == fwrite (schema_string, sizeof (char), schema_string_len, outfile)) {
    +      fprintf (stderr, "failed to write to file\n");
    +      goto fail;
    +   }
    +
    +   ret = true;
    +fail:
    +   mongoc_client_encryption_destroy (client_encryption);
    +   mongoc_client_encryption_datakey_opts_destroy (datakey_opts);
    +   mongoc_client_encryption_opts_destroy (client_encryption_opts);
    +   bson_free (schema_string);
    +   bson_destroy (schema);
    +   bson_value_destroy (&datakey_id);
    +   if (outfile) {
    +      fclose (outfile);
    +   }
    +   return ret;
    +}
    +
    +/* This example demonstrates how to use automatic encryption with a client-side
    + * schema map using the enterprise version of MongoDB */
    +int
    +main (void)
    +{
    +/* The collection used to store the encryption data keys. */
    +#define KEYVAULT_DB "encryption"
    +#define KEYVAULT_COLL "__libmongocTestKeyVault"
    +/* The collection used to store the encrypted documents in this example. */
    +#define ENCRYPTED_DB "test"
    +#define ENCRYPTED_COLL "coll"
    +
    +   int exit_status = EXIT_FAILURE;
    +   bool ret;
    +   uint8_t *local_masterkey = NULL;
    +   uint32_t local_masterkey_len;
    +   bson_t *kms_providers = NULL;
    +   bson_error_t error = {0};
    +   bson_t *index_keys = NULL;
    +   char *index_name = NULL;
    +   bson_t *create_index_cmd = NULL;
    +   bson_json_reader_t *reader = NULL;
    +   bson_t schema = BSON_INITIALIZER;
    +   bson_t *schema_map = NULL;
    +
    +   /* The MongoClient used to access the key vault (keyvault_namespace). */
    +   mongoc_client_t *keyvault_client = NULL;
    +   mongoc_collection_t *keyvault_coll = NULL;
    +   mongoc_auto_encryption_opts_t *auto_encryption_opts = NULL;
    +   mongoc_client_t *client = NULL;
    +   mongoc_collection_t *coll = NULL;
    +   bson_t *to_insert = NULL;
    +   mongoc_client_t *unencrypted_client = NULL;
    +   mongoc_collection_t *unencrypted_coll = NULL;
    +
    +   mongoc_init ();
    +
    +   /* Configure the master key. This must be the same master key that was used
    +    * to create the encryption key. */
    +   local_masterkey =
    +      hex_to_bin (getenv ("LOCAL_MASTERKEY"), &local_masterkey_len);
    +   if (!local_masterkey || local_masterkey_len != 96) {
    +      fprintf (stderr,
    +               "Specify LOCAL_MASTERKEY environment variable as a "
    +               "secure random 96 byte hex value.\n");
    +      goto fail;
    +   }
    +
    +   kms_providers = BCON_NEW ("local",
    +                             "{",
    +                             "key",
    +                             BCON_BIN (0, local_masterkey, local_masterkey_len),
    +                             "}");
    +
    +   /* Set up the key vault for this example. */
    +   keyvault_client = mongoc_client_new (
    +      "mongodb://localhost/?appname=client-side-encryption-keyvault");
    +   keyvault_coll = mongoc_client_get_collection (
    +      keyvault_client, KEYVAULT_DB, KEYVAULT_COLL);
    +   mongoc_collection_drop (keyvault_coll, NULL);
    +
    +   /* Create a unique index to ensure that two data keys cannot share the same
    +    * keyAltName. This is recommended practice for the key vault. */
    +   index_keys = BCON_NEW ("keyAltNames", BCON_INT32 (1));
    +   index_name = mongoc_collection_keys_to_index_string (index_keys);
    +   create_index_cmd = BCON_NEW ("createIndexes",
    +                                KEYVAULT_COLL,
    +                                "indexes",
    +                                "[",
    +                                "{",
    +                                "key",
    +                                BCON_DOCUMENT (index_keys),
    +                                "name",
    +                                index_name,
    +                                "unique",
    +                                BCON_BOOL (true),
    +                                "partialFilterExpression",
    +                                "{",
    +                                "keyAltNames",
    +                                "{",
    +                                "$exists",
    +                                BCON_BOOL (true),
    +                                "}",
    +                                "}",
    +                                "}",
    +                                "]");
    +   ret = mongoc_client_command_simple (keyvault_client,
    +                                       KEYVAULT_DB,
    +                                       create_index_cmd,
    +                                       NULL /* read prefs */,
    +                                       NULL /* reply */,
    +                                       &error);
    +
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   /* Create a new data key and a schema using it for encryption. Save the
    +    * schema to the file jsonSchema.json */
    +   ret = create_schema_file (
    +      kms_providers, KEYVAULT_DB, KEYVAULT_COLL, keyvault_client, &error);
    +
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   /* Load the JSON Schema and construct the local schema_map option. */
    +   reader = bson_json_reader_new_from_file ("jsonSchema.json", &error);
    +   if (!reader) {
    +      goto fail;
    +   }
    +
    +   bson_json_reader_read (reader, &schema, &error);
    +
    +   /* Construct the schema map, mapping the namespace of the collection to the
    +    * schema describing encryption. */
    +   schema_map =
    +      BCON_NEW (ENCRYPTED_DB "." ENCRYPTED_COLL, BCON_DOCUMENT (&schema));
    +
    +   auto_encryption_opts = mongoc_auto_encryption_opts_new ();
    +   mongoc_auto_encryption_opts_set_keyvault_client (auto_encryption_opts,
    +                                                    keyvault_client);
    +   mongoc_auto_encryption_opts_set_keyvault_namespace (
    +      auto_encryption_opts, KEYVAULT_DB, KEYVAULT_COLL);
    +   mongoc_auto_encryption_opts_set_kms_providers (auto_encryption_opts,
    +                                                  kms_providers);
    +   mongoc_auto_encryption_opts_set_schema_map (auto_encryption_opts,
    +                                               schema_map);
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost/?appname=client-side-encryption");
    +
    +   /* Enable automatic encryption. It will determine that encryption is
    +    * necessary from the schema map instead of relying on the server to provide
    +    * a schema. */
    +   ret = mongoc_client_enable_auto_encryption (
    +      client, auto_encryption_opts, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   coll = mongoc_client_get_collection (client, ENCRYPTED_DB, ENCRYPTED_COLL);
    +
    +   /* Clear old data */
    +   mongoc_collection_drop (coll, NULL);
    +
    +   to_insert = BCON_NEW ("encryptedField", "123456789");
    +   ret = mongoc_collection_insert_one (
    +      coll, to_insert, NULL /* opts */, NULL /* reply */, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +   printf ("decrypted document: ");
    +   if (!print_one_document (coll, &error)) {
    +      goto fail;
    +   }
    +   printf ("\n");
    +
    +   unencrypted_client = mongoc_client_new (
    +      "mongodb://localhost/?appname=client-side-encryption-unencrypted");
    +   unencrypted_coll = mongoc_client_get_collection (
    +      unencrypted_client, ENCRYPTED_DB, ENCRYPTED_COLL);
    +   printf ("encrypted document: ");
    +   if (!print_one_document (unencrypted_coll, &error)) {
    +      goto fail;
    +   }
    +   printf ("\n");
    +
    +   exit_status = EXIT_SUCCESS;
    +fail:
    +   if (error.code) {
    +      fprintf (stderr, "error: %s\n", error.message);
    +   }
    +
    +   bson_free (local_masterkey);
    +   bson_destroy (kms_providers);
    +   mongoc_collection_destroy (keyvault_coll);
    +   bson_destroy (index_keys);
    +   bson_free (index_name);
    +   bson_destroy (create_index_cmd);
    +   bson_json_reader_destroy (reader);
    +   mongoc_auto_encryption_opts_destroy (auto_encryption_opts);
    +   mongoc_collection_destroy (coll);
    +   mongoc_client_destroy (client);
    +   bson_destroy (to_insert);
    +   mongoc_collection_destroy (unencrypted_coll);
    +   mongoc_client_destroy (unencrypted_client);
    +   mongoc_client_destroy (keyvault_client);
    +   bson_destroy (&schema);
    +   bson_destroy (schema_map);
    +   mongoc_cleanup ();
    +   return exit_status;
    +}
    +
    +
    +
    +
    +
    +

    Server-Side Field Level Encryption Enforcement

    +

    The MongoDB 4.2 server supports using schema validation to enforce encryption of specific fields in a collection. This schema validation will prevent an application from inserting unencrypted values for any fields marked with the “encrypt” JSON schema keyword.

    +

    The following example shows how to set up automatic client-side field level encryption using mongoc_client_encryption_t to create a new encryption data key and create a collection with the Automatic Encryption JSON Schema Syntax:

    +
    +
    client-side-encryption-server-schema.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +#include "client-side-encryption-helpers.h"
    +
    +/* Helper method to create and return a JSON schema to use for encryption.
    +The caller will use the returned schema for server-side encryption validation.
    +*/
    +static bson_t *
    +create_schema (bson_t *kms_providers,
    +               const char *keyvault_db,
    +               const char *keyvault_coll,
    +               mongoc_client_t *keyvault_client,
    +               bson_error_t *error)
    +{
    +   mongoc_client_encryption_t *client_encryption = NULL;
    +   mongoc_client_encryption_opts_t *client_encryption_opts = NULL;
    +   mongoc_client_encryption_datakey_opts_t *datakey_opts = NULL;
    +   bson_value_t datakey_id = {0};
    +   char *keyaltnames[] = {"mongoc_encryption_example_2"};
    +   bson_t *schema = NULL;
    +
    +   client_encryption_opts = mongoc_client_encryption_opts_new ();
    +   mongoc_client_encryption_opts_set_kms_providers (client_encryption_opts,
    +                                                    kms_providers);
    +   mongoc_client_encryption_opts_set_keyvault_namespace (
    +      client_encryption_opts, keyvault_db, keyvault_coll);
    +   mongoc_client_encryption_opts_set_keyvault_client (client_encryption_opts,
    +                                                      keyvault_client);
    +
    +   client_encryption =
    +      mongoc_client_encryption_new (client_encryption_opts, error);
    +   if (!client_encryption) {
    +      goto fail;
    +   }
    +
    +   /* Create a new data key and json schema for the encryptedField.
    +    * https://dochub.mongodb.org/core/client-side-field-level-encryption-automatic-encryption-rules
    +    */
    +   datakey_opts = mongoc_client_encryption_datakey_opts_new ();
    +   mongoc_client_encryption_datakey_opts_set_keyaltnames (
    +      datakey_opts, keyaltnames, 1);
    +   if (!mongoc_client_encryption_create_datakey (
    +          client_encryption, "local", datakey_opts, &datakey_id, error)) {
    +      goto fail;
    +   }
    +
    +   /* Create a schema describing that "encryptedField" is a string encrypted
    +    * with the newly created data key using deterministic encryption. */
    +   schema = BCON_NEW ("properties",
    +                      "{",
    +                      "encryptedField",
    +                      "{",
    +                      "encrypt",
    +                      "{",
    +                      "keyId",
    +                      "[",
    +                      BCON_BIN (datakey_id.value.v_binary.subtype,
    +                                datakey_id.value.v_binary.data,
    +                                datakey_id.value.v_binary.data_len),
    +                      "]",
    +                      "bsonType",
    +                      "string",
    +                      "algorithm",
    +                      MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC,
    +                      "}",
    +                      "}",
    +                      "}",
    +                      "bsonType",
    +                      "object");
    +
    +fail:
    +   mongoc_client_encryption_destroy (client_encryption);
    +   mongoc_client_encryption_datakey_opts_destroy (datakey_opts);
    +   mongoc_client_encryption_opts_destroy (client_encryption_opts);
    +   bson_value_destroy (&datakey_id);
    +   return schema;
    +}
    +
    +/* This example demonstrates how to use automatic encryption with a server-side
    + * schema using the enterprise version of MongoDB */
    +int
    +main (void)
    +{
    +/* The collection used to store the encryption data keys. */
    +#define KEYVAULT_DB "encryption"
    +#define KEYVAULT_COLL "__libmongocTestKeyVault"
    +/* The collection used to store the encrypted documents in this example. */
    +#define ENCRYPTED_DB "test"
    +#define ENCRYPTED_COLL "coll"
    +
    +   int exit_status = EXIT_FAILURE;
    +   bool ret;
    +   uint8_t *local_masterkey = NULL;
    +   uint32_t local_masterkey_len;
    +   bson_t *kms_providers = NULL;
    +   bson_error_t error = {0};
    +   bson_t *index_keys = NULL;
    +   char *index_name = NULL;
    +   bson_t *create_index_cmd = NULL;
    +   bson_json_reader_t *reader = NULL;
    +   bson_t *schema = NULL;
    +
    +   /* The MongoClient used to access the key vault (keyvault_namespace). */
    +   mongoc_client_t *keyvault_client = NULL;
    +   mongoc_collection_t *keyvault_coll = NULL;
    +   mongoc_auto_encryption_opts_t *auto_encryption_opts = NULL;
    +   mongoc_client_t *client = NULL;
    +   mongoc_collection_t *coll = NULL;
    +   bson_t *to_insert = NULL;
    +   mongoc_client_t *unencrypted_client = NULL;
    +   mongoc_collection_t *unencrypted_coll = NULL;
    +   bson_t *create_cmd = NULL;
    +   bson_t *create_cmd_opts = NULL;
    +   mongoc_write_concern_t *wc = NULL;
    +
    +   mongoc_init ();
    +
    +   /* Configure the master key. This must be the same master key that was used
    +    * to create
    +    * the encryption key. */
    +   local_masterkey =
    +      hex_to_bin (getenv ("LOCAL_MASTERKEY"), &local_masterkey_len);
    +   if (!local_masterkey || local_masterkey_len != 96) {
    +      fprintf (stderr,
    +               "Specify LOCAL_MASTERKEY environment variable as a "
    +               "secure random 96 byte hex value.\n");
    +      goto fail;
    +   }
    +
    +   kms_providers = BCON_NEW ("local",
    +                             "{",
    +                             "key",
    +                             BCON_BIN (0, local_masterkey, local_masterkey_len),
    +                             "}");
    +
    +   /* Set up the key vault for this example. */
    +   keyvault_client = mongoc_client_new (
    +      "mongodb://localhost/?appname=client-side-encryption-keyvault");
    +   keyvault_coll = mongoc_client_get_collection (
    +      keyvault_client, KEYVAULT_DB, KEYVAULT_COLL);
    +   mongoc_collection_drop (keyvault_coll, NULL);
    +
    +   /* Create a unique index to ensure that two data keys cannot share the same
    +    * keyAltName. This is recommended practice for the key vault. */
    +   index_keys = BCON_NEW ("keyAltNames", BCON_INT32 (1));
    +   index_name = mongoc_collection_keys_to_index_string (index_keys);
    +   create_index_cmd = BCON_NEW ("createIndexes",
    +                                KEYVAULT_COLL,
    +                                "indexes",
    +                                "[",
    +                                "{",
    +                                "key",
    +                                BCON_DOCUMENT (index_keys),
    +                                "name",
    +                                index_name,
    +                                "unique",
    +                                BCON_BOOL (true),
    +                                "partialFilterExpression",
    +                                "{",
    +                                "keyAltNames",
    +                                "{",
    +                                "$exists",
    +                                BCON_BOOL (true),
    +                                "}",
    +                                "}",
    +                                "}",
    +                                "]");
    +   ret = mongoc_client_command_simple (keyvault_client,
    +                                       KEYVAULT_DB,
    +                                       create_index_cmd,
    +                                       NULL /* read prefs */,
    +                                       NULL /* reply */,
    +                                       &error);
    +
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   auto_encryption_opts = mongoc_auto_encryption_opts_new ();
    +   mongoc_auto_encryption_opts_set_keyvault_client (auto_encryption_opts,
    +                                                    keyvault_client);
    +   mongoc_auto_encryption_opts_set_keyvault_namespace (
    +      auto_encryption_opts, KEYVAULT_DB, KEYVAULT_COLL);
    +   mongoc_auto_encryption_opts_set_kms_providers (auto_encryption_opts,
    +                                                  kms_providers);
    +   schema = create_schema (
    +      kms_providers, KEYVAULT_DB, KEYVAULT_COLL, keyvault_client, &error);
    +
    +   if (!schema) {
    +      goto fail;
    +   }
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost/?appname=client-side-encryption");
    +   ret = mongoc_client_enable_auto_encryption (
    +      client, auto_encryption_opts, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   coll = mongoc_client_get_collection (client, ENCRYPTED_DB, ENCRYPTED_COLL);
    +
    +   /* Clear old data */
    +   mongoc_collection_drop (coll, NULL);
    +
    +   /* Create the collection with the encryption JSON Schema. */
    +   create_cmd = BCON_NEW ("create",
    +                          ENCRYPTED_COLL,
    +                          "validator",
    +                          "{",
    +                          "$jsonSchema",
    +                          BCON_DOCUMENT (schema),
    +                          "}");
    +   wc = mongoc_write_concern_new ();
    +   mongoc_write_concern_set_wmajority (wc, 0);
    +   create_cmd_opts = bson_new ();
    +   mongoc_write_concern_append (wc, create_cmd_opts);
    +   ret = mongoc_client_command_with_opts (client,
    +                                          ENCRYPTED_DB,
    +                                          create_cmd,
    +                                          NULL /* read prefs */,
    +                                          create_cmd_opts,
    +                                          NULL /* reply */,
    +                                          &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   to_insert = BCON_NEW ("encryptedField", "123456789");
    +   ret = mongoc_collection_insert_one (
    +      coll, to_insert, NULL /* opts */, NULL /* reply */, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +   printf ("decrypted document: ");
    +   if (!print_one_document (coll, &error)) {
    +      goto fail;
    +   }
    +   printf ("\n");
    +
    +   unencrypted_client = mongoc_client_new (
    +      "mongodb://localhost/?appname=client-side-encryption-unencrypted");
    +   unencrypted_coll = mongoc_client_get_collection (
    +      unencrypted_client, ENCRYPTED_DB, ENCRYPTED_COLL);
    +   printf ("encrypted document: ");
    +   if (!print_one_document (unencrypted_coll, &error)) {
    +      goto fail;
    +   }
    +   printf ("\n");
    +
    +   /* Expect a server-side error if inserting with the unencrypted collection.
    +    */
    +   ret = mongoc_collection_insert_one (
    +      unencrypted_coll, to_insert, NULL /* opts */, NULL /* reply */, &error);
    +   if (!ret) {
    +      printf ("insert with unencrypted collection failed: %s\n", error.message);
    +      memset (&error, 0, sizeof (error));
    +   }
    +
    +   exit_status = EXIT_SUCCESS;
    +fail:
    +   if (error.code) {
    +      fprintf (stderr, "error: %s\n", error.message);
    +   }
    +
    +   bson_free (local_masterkey);
    +   bson_destroy (kms_providers);
    +   mongoc_collection_destroy (keyvault_coll);
    +   bson_destroy (index_keys);
    +   bson_free (index_name);
    +   bson_destroy (create_index_cmd);
    +   bson_json_reader_destroy (reader);
    +   mongoc_auto_encryption_opts_destroy (auto_encryption_opts);
    +   mongoc_collection_destroy (coll);
    +   mongoc_client_destroy (client);
    +   bson_destroy (to_insert);
    +   mongoc_collection_destroy (unencrypted_coll);
    +   mongoc_client_destroy (unencrypted_client);
    +   mongoc_client_destroy (keyvault_client);
    +   bson_destroy (schema);
    +   bson_destroy (create_cmd);
    +   bson_destroy (create_cmd_opts);
    +   mongoc_write_concern_destroy (wc);
    +
    +   mongoc_cleanup ();
    +   return exit_status;
    +}
    +
    +
    +
    +
    +
    +

    Explicit Encryption

    +

    Explicit encryption is a MongoDB community feature and does not use the mongocryptd process. Explicit encryption is provided by the mongoc_client_encryption_t class, for example:

    +
    +
    client-side-encryption-explicit.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +#include "client-side-encryption-helpers.h"
    +
    +/* This example demonstrates how to use explicit encryption and decryption using
    + * the community version of MongoDB */
    +int
    +main (void)
    +{
    +/* The collection used to store the encryption data keys. */
    +#define KEYVAULT_DB "encryption"
    +#define KEYVAULT_COLL "__libmongocTestKeyVault"
    +/* The collection used to store the encrypted documents in this example. */
    +#define ENCRYPTED_DB "test"
    +#define ENCRYPTED_COLL "coll"
    +
    +   int exit_status = EXIT_FAILURE;
    +   bool ret;
    +   uint8_t *local_masterkey = NULL;
    +   uint32_t local_masterkey_len;
    +   bson_t *kms_providers = NULL;
    +   bson_error_t error = {0};
    +   bson_t *index_keys = NULL;
    +   char *index_name = NULL;
    +   bson_t *create_index_cmd = NULL;
    +   bson_t *schema = NULL;
    +   mongoc_client_t *client = NULL;
    +   mongoc_collection_t *coll = NULL;
    +   mongoc_collection_t *keyvault_coll = NULL;
    +   bson_t *to_insert = NULL;
    +   bson_t *create_cmd = NULL;
    +   bson_t *create_cmd_opts = NULL;
    +   mongoc_write_concern_t *wc = NULL;
    +   mongoc_client_encryption_t *client_encryption = NULL;
    +   mongoc_client_encryption_opts_t *client_encryption_opts = NULL;
    +   mongoc_client_encryption_datakey_opts_t *datakey_opts = NULL;
    +   char *keyaltnames[] = {"mongoc_encryption_example_3"};
    +   bson_value_t datakey_id = {0};
    +   bson_value_t encrypted_field = {0};
    +   bson_value_t to_encrypt = {0};
    +   mongoc_client_encryption_encrypt_opts_t *encrypt_opts = NULL;
    +   bson_value_t decrypted = {0};
    +
    +   mongoc_init ();
    +
    +   /* Configure the master key. This must be the same master key that was used
    +    * to create the encryption key. */
    +   local_masterkey =
    +      hex_to_bin (getenv ("LOCAL_MASTERKEY"), &local_masterkey_len);
    +   if (!local_masterkey || local_masterkey_len != 96) {
    +      fprintf (stderr,
    +               "Specify LOCAL_MASTERKEY environment variable as a "
    +               "secure random 96 byte hex value.\n");
    +      goto fail;
    +   }
    +
    +   kms_providers = BCON_NEW ("local",
    +                             "{",
    +                             "key",
    +                             BCON_BIN (0, local_masterkey, local_masterkey_len),
    +                             "}");
    +
    +   /* The mongoc_client_t used to read/write application data. */
    +   client =
    +      mongoc_client_new ("mongodb://localhost/?appname=client-side-encryption");
    +   coll = mongoc_client_get_collection (client, ENCRYPTED_DB, ENCRYPTED_COLL);
    +
    +   /* Clear old data */
    +   mongoc_collection_drop (coll, NULL);
    +
    +   /* Set up the key vault for this example. */
    +   keyvault_coll =
    +      mongoc_client_get_collection (client, KEYVAULT_DB, KEYVAULT_COLL);
    +   mongoc_collection_drop (keyvault_coll, NULL);
    +
    +   /* Create a unique index to ensure that two data keys cannot share the same
    +    * keyAltName. This is recommended practice for the key vault. */
    +   index_keys = BCON_NEW ("keyAltNames", BCON_INT32 (1));
    +   index_name = mongoc_collection_keys_to_index_string (index_keys);
    +   create_index_cmd = BCON_NEW ("createIndexes",
    +                                KEYVAULT_COLL,
    +                                "indexes",
    +                                "[",
    +                                "{",
    +                                "key",
    +                                BCON_DOCUMENT (index_keys),
    +                                "name",
    +                                index_name,
    +                                "unique",
    +                                BCON_BOOL (true),
    +                                "partialFilterExpression",
    +                                "{",
    +                                "keyAltNames",
    +                                "{",
    +                                "$exists",
    +                                BCON_BOOL (true),
    +                                "}",
    +                                "}",
    +                                "}",
    +                                "]");
    +   ret = mongoc_client_command_simple (client,
    +                                       KEYVAULT_DB,
    +                                       create_index_cmd,
    +                                       NULL /* read prefs */,
    +                                       NULL /* reply */,
    +                                       &error);
    +
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   client_encryption_opts = mongoc_client_encryption_opts_new ();
    +   mongoc_client_encryption_opts_set_kms_providers (client_encryption_opts,
    +                                                    kms_providers);
    +   mongoc_client_encryption_opts_set_keyvault_namespace (
    +      client_encryption_opts, KEYVAULT_DB, KEYVAULT_COLL);
    +
    +   /* Set a mongoc_client_t to use for reading/writing to the key vault. This
    +    * can be the same mongoc_client_t used by the main application. */
    +   mongoc_client_encryption_opts_set_keyvault_client (client_encryption_opts,
    +                                                      client);
    +   client_encryption =
    +      mongoc_client_encryption_new (client_encryption_opts, &error);
    +   if (!client_encryption) {
    +      goto fail;
    +   }
    +
    +   /* Create a new data key for the encryptedField.
    +    * https://dochub.mongodb.org/core/client-side-field-level-encryption-automatic-encryption-rules
    +    */
    +   datakey_opts = mongoc_client_encryption_datakey_opts_new ();
    +   mongoc_client_encryption_datakey_opts_set_keyaltnames (
    +      datakey_opts, keyaltnames, 1);
    +   if (!mongoc_client_encryption_create_datakey (
    +          client_encryption, "local", datakey_opts, &datakey_id, &error)) {
    +      goto fail;
    +   }
    +
    +   /* Explicitly encrypt a field */
    +   encrypt_opts = mongoc_client_encryption_encrypt_opts_new ();
    +   mongoc_client_encryption_encrypt_opts_set_algorithm (
    +      encrypt_opts, MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC);
    +   mongoc_client_encryption_encrypt_opts_set_keyid (encrypt_opts, &datakey_id);
    +   to_encrypt.value_type = BSON_TYPE_UTF8;
    +   to_encrypt.value.v_utf8.str = "123456789";
    +   to_encrypt.value.v_utf8.len = strlen (to_encrypt.value.v_utf8.str);
    +
    +   ret = mongoc_client_encryption_encrypt (
    +      client_encryption, &to_encrypt, encrypt_opts, &encrypted_field, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   to_insert = bson_new ();
    +   BSON_APPEND_VALUE (to_insert, "encryptedField", &encrypted_field);
    +   ret = mongoc_collection_insert_one (
    +      coll, to_insert, NULL /* opts */, NULL /* reply */, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   printf ("encrypted document: ");
    +   if (!print_one_document (coll, &error)) {
    +      goto fail;
    +   }
    +   printf ("\n");
    +
    +   /* Explicitly decrypt a field */
    +   ret = mongoc_client_encryption_decrypt (
    +      client_encryption, &encrypted_field, &decrypted, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +   printf ("decrypted value: %s\n", decrypted.value.v_utf8.str);
    +
    +   exit_status = EXIT_SUCCESS;
    +fail:
    +   if (error.code) {
    +      fprintf (stderr, "error: %s\n", error.message);
    +   }
    +
    +   bson_free (local_masterkey);
    +   bson_destroy (kms_providers);
    +   mongoc_collection_destroy (keyvault_coll);
    +   bson_destroy (index_keys);
    +   bson_free (index_name);
    +   bson_destroy (create_index_cmd);
    +   mongoc_collection_destroy (coll);
    +   mongoc_client_destroy (client);
    +   bson_destroy (to_insert);
    +   bson_destroy (schema);
    +   bson_destroy (create_cmd);
    +   bson_destroy (create_cmd_opts);
    +   mongoc_write_concern_destroy (wc);
    +   mongoc_client_encryption_destroy (client_encryption);
    +   mongoc_client_encryption_datakey_opts_destroy (datakey_opts);
    +   mongoc_client_encryption_opts_destroy (client_encryption_opts);
    +   bson_value_destroy (&encrypted_field);
    +   mongoc_client_encryption_encrypt_opts_destroy (encrypt_opts);
    +   bson_value_destroy (&decrypted);
    +   bson_value_destroy (&datakey_id);
    +
    +   mongoc_cleanup ();
    +   return exit_status;
    +}
    +
    +
    +
    +
    +
    +

    Explicit Encryption with Automatic Decryption

    +

    Although automatic encryption requires MongoDB 4.2 enterprise or a MongoDB 4.2 Atlas cluster, automatic decryption is supported for all users. To configure automatic decryption without automatic encryption set bypass_auto_encryption=True in mongoc_auto_encryption_opts_t:

    +
    +
    client-side-encryption-auto-decryption.c
    +
    #include <mongoc/mongoc.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +#include "client-side-encryption-helpers.h"
    +
    +/* This example demonstrates how to set up automatic decryption without
    + * automatic encryption using the community version of MongoDB */
    +int
    +main (void)
    +{
    +/* The collection used to store the encryption data keys. */
    +#define KEYVAULT_DB "encryption"
    +#define KEYVAULT_COLL "__libmongocTestKeyVault"
    +/* The collection used to store the encrypted documents in this example. */
    +#define ENCRYPTED_DB "test"
    +#define ENCRYPTED_COLL "coll"
    +
    +   int exit_status = EXIT_FAILURE;
    +   bool ret;
    +   uint8_t *local_masterkey = NULL;
    +   uint32_t local_masterkey_len;
    +   bson_t *kms_providers = NULL;
    +   bson_error_t error = {0};
    +   bson_t *index_keys = NULL;
    +   char *index_name = NULL;
    +   bson_t *create_index_cmd = NULL;
    +   bson_t *schema = NULL;
    +   mongoc_client_t *client = NULL;
    +   mongoc_collection_t *coll = NULL;
    +   mongoc_collection_t *keyvault_coll = NULL;
    +   bson_t *to_insert = NULL;
    +   bson_t *create_cmd = NULL;
    +   bson_t *create_cmd_opts = NULL;
    +   mongoc_write_concern_t *wc = NULL;
    +   mongoc_client_encryption_t *client_encryption = NULL;
    +   mongoc_client_encryption_opts_t *client_encryption_opts = NULL;
    +   mongoc_client_encryption_datakey_opts_t *datakey_opts = NULL;
    +   char *keyaltnames[] = {"mongoc_encryption_example_4"};
    +   bson_value_t datakey_id = {0};
    +   bson_value_t encrypted_field = {0};
    +   bson_value_t to_encrypt = {0};
    +   mongoc_client_encryption_encrypt_opts_t *encrypt_opts = NULL;
    +   bson_value_t decrypted = {0};
    +   mongoc_auto_encryption_opts_t *auto_encryption_opts = NULL;
    +   mongoc_client_t *unencrypted_client = NULL;
    +   mongoc_collection_t *unencrypted_coll = NULL;
    +
    +   mongoc_init ();
    +
    +   /* Configure the master key. This must be the same master key that was used
    +    * to create the encryption key. */
    +   local_masterkey =
    +      hex_to_bin (getenv ("LOCAL_MASTERKEY"), &local_masterkey_len);
    +   if (!local_masterkey || local_masterkey_len != 96) {
    +      fprintf (stderr,
    +               "Specify LOCAL_MASTERKEY environment variable as a "
    +               "secure random 96 byte hex value.\n");
    +      goto fail;
    +   }
    +
    +   kms_providers = BCON_NEW ("local",
    +                             "{",
    +                             "key",
    +                             BCON_BIN (0, local_masterkey, local_masterkey_len),
    +                             "}");
    +
    +   client =
    +      mongoc_client_new ("mongodb://localhost/?appname=client-side-encryption");
    +   auto_encryption_opts = mongoc_auto_encryption_opts_new ();
    +   mongoc_auto_encryption_opts_set_keyvault_namespace (
    +      auto_encryption_opts, KEYVAULT_DB, KEYVAULT_COLL);
    +   mongoc_auto_encryption_opts_set_kms_providers (auto_encryption_opts,
    +                                                  kms_providers);
    +
    +   /* Setting bypass_auto_encryption to true disables automatic encryption but
    +    * keeps the automatic decryption behavior. bypass_auto_encryption will also
    +    * disable spawning mongocryptd */
    +   mongoc_auto_encryption_opts_set_bypass_auto_encryption (auto_encryption_opts,
    +                                                           true);
    +
    +   /* Once bypass_auto_encryption is set, community users can enable auto
    +    * encryption on the client. This will, in fact, only perform automatic
    +    * decryption. */
    +   ret = mongoc_client_enable_auto_encryption (
    +      client, auto_encryption_opts, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   /* Now that automatic decryption is on, we can test it by inserting a
    +    * document with an explicitly encrypted value into the collection. When we
    +    * look up the document later, it should be automatically decrypted for us.
    +    */
    +   coll = mongoc_client_get_collection (client, ENCRYPTED_DB, ENCRYPTED_COLL);
    +
    +   /* Clear old data */
    +   mongoc_collection_drop (coll, NULL);
    +
    +   /* Set up the key vault for this example. */
    +   keyvault_coll =
    +      mongoc_client_get_collection (client, KEYVAULT_DB, KEYVAULT_COLL);
    +   mongoc_collection_drop (keyvault_coll, NULL);
    +
    +   /* Create a unique index to ensure that two data keys cannot share the same
    +    * keyAltName. This is recommended practice for the key vault. */
    +   index_keys = BCON_NEW ("keyAltNames", BCON_INT32 (1));
    +   index_name = mongoc_collection_keys_to_index_string (index_keys);
    +   create_index_cmd = BCON_NEW ("createIndexes",
    +                                KEYVAULT_COLL,
    +                                "indexes",
    +                                "[",
    +                                "{",
    +                                "key",
    +                                BCON_DOCUMENT (index_keys),
    +                                "name",
    +                                index_name,
    +                                "unique",
    +                                BCON_BOOL (true),
    +                                "partialFilterExpression",
    +                                "{",
    +                                "keyAltNames",
    +                                "{",
    +                                "$exists",
    +                                BCON_BOOL (true),
    +                                "}",
    +                                "}",
    +                                "}",
    +                                "]");
    +   ret = mongoc_client_command_simple (client,
    +                                       KEYVAULT_DB,
    +                                       create_index_cmd,
    +                                       NULL /* read prefs */,
    +                                       NULL /* reply */,
    +                                       &error);
    +
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   client_encryption_opts = mongoc_client_encryption_opts_new ();
    +   mongoc_client_encryption_opts_set_kms_providers (client_encryption_opts,
    +                                                    kms_providers);
    +   mongoc_client_encryption_opts_set_keyvault_namespace (
    +      client_encryption_opts, KEYVAULT_DB, KEYVAULT_COLL);
    +
    +   /* The key vault client is used for reading to/from the key vault. This can
    +    * be the same mongoc_client_t used by the application. */
    +   mongoc_client_encryption_opts_set_keyvault_client (client_encryption_opts,
    +                                                      client);
    +   client_encryption =
    +      mongoc_client_encryption_new (client_encryption_opts, &error);
    +   if (!client_encryption) {
    +      goto fail;
    +   }
    +
    +   /* Create a new data key for the encryptedField.
    +    * https://dochub.mongodb.org/core/client-side-field-level-encryption-automatic-encryption-rules
    +    */
    +   datakey_opts = mongoc_client_encryption_datakey_opts_new ();
    +   mongoc_client_encryption_datakey_opts_set_keyaltnames (
    +      datakey_opts, keyaltnames, 1);
    +   ret = mongoc_client_encryption_create_datakey (
    +      client_encryption, "local", datakey_opts, &datakey_id, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   /* Explicitly encrypt a field. */
    +   encrypt_opts = mongoc_client_encryption_encrypt_opts_new ();
    +   mongoc_client_encryption_encrypt_opts_set_algorithm (
    +      encrypt_opts, MONGOC_AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC);
    +   mongoc_client_encryption_encrypt_opts_set_keyaltname (
    +      encrypt_opts, "mongoc_encryption_example_4");
    +   to_encrypt.value_type = BSON_TYPE_UTF8;
    +   to_encrypt.value.v_utf8.str = "123456789";
    +   to_encrypt.value.v_utf8.len = strlen (to_encrypt.value.v_utf8.str);
    +
    +   ret = mongoc_client_encryption_encrypt (
    +      client_encryption, &to_encrypt, encrypt_opts, &encrypted_field, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   to_insert = bson_new ();
    +   BSON_APPEND_VALUE (to_insert, "encryptedField", &encrypted_field);
    +   ret = mongoc_collection_insert_one (
    +      coll, to_insert, NULL /* opts */, NULL /* reply */, &error);
    +   if (!ret) {
    +      goto fail;
    +   }
    +
    +   /* When we retrieve the document, any encrypted fields will get automatically
    +    * decrypted by the driver. */
    +   printf ("decrypted document: ");
    +   if (!print_one_document (coll, &error)) {
    +      goto fail;
    +   }
    +   printf ("\n");
    +
    +   unencrypted_client =
    +      mongoc_client_new ("mongodb://localhost/?appname=client-side-encryption");
    +   unencrypted_coll = mongoc_client_get_collection (
    +      unencrypted_client, ENCRYPTED_DB, ENCRYPTED_COLL);
    +
    +   printf ("encrypted document: ");
    +   if (!print_one_document (unencrypted_coll, &error)) {
    +      goto fail;
    +   }
    +   printf ("\n");
    +
    +   exit_status = EXIT_SUCCESS;
    +fail:
    +   if (error.code) {
    +      fprintf (stderr, "error: %s\n", error.message);
    +   }
    +
    +   bson_free (local_masterkey);
    +   bson_destroy (kms_providers);
    +   mongoc_collection_destroy (keyvault_coll);
    +   bson_destroy (index_keys);
    +   bson_free (index_name);
    +   bson_destroy (create_index_cmd);
    +   mongoc_collection_destroy (coll);
    +   mongoc_client_destroy (client);
    +   bson_destroy (to_insert);
    +   bson_destroy (schema);
    +   bson_destroy (create_cmd);
    +   bson_destroy (create_cmd_opts);
    +   mongoc_write_concern_destroy (wc);
    +   mongoc_client_encryption_destroy (client_encryption);
    +   mongoc_client_encryption_datakey_opts_destroy (datakey_opts);
    +   mongoc_client_encryption_opts_destroy (client_encryption_opts);
    +   bson_value_destroy (&encrypted_field);
    +   mongoc_client_encryption_encrypt_opts_destroy (encrypt_opts);
    +   bson_value_destroy (&decrypted);
    +   bson_value_destroy (&datakey_id);
    +   mongoc_collection_destroy (unencrypted_coll);
    +   mongoc_client_destroy (unencrypted_client);
    +   mongoc_auto_encryption_opts_destroy (auto_encryption_opts);
    +
    +   mongoc_cleanup ();
    +   return exit_status;
    +}
    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.23.2/visual-studio-guide.html b/libmongoc/1.23.2/visual-studio-guide.html new file mode 100644 index 0000000000000000000000000000000000000000..9441baad30b60bb8c223a37245137dda584bd3d8 --- /dev/null +++ b/libmongoc/1.23.2/visual-studio-guide.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + Using libmongoc in a Microsoft Visual Studio project — libmongoc 1.23.2 + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Using libmongoc in a Microsoft Visual Studio project

    +

    Download and install libmongoc on your system, then open Visual Studio, select “File→New→Project…”, and create a new Win32 Console Application.

    +_images/msvc-create-project.png +

    Remember to switch the platform from 32-bit to 64-bit:

    +_images/msvc-switch-architecture.png +

    Right-click on your console application in the Solution Explorer and select “Properties”. Choose to edit properties for “All Configurations”, expand the “C/C++” options and choose “General”. Add to the “Additional Include Directories” these paths:

    +
    C:\mongo-c-driver\include\libbson-1.0
    +C:\mongo-c-driver\include\libmongoc-1.0
    +
    +
    +_images/msvc-add-include-directories.png +

    (If you chose a different CMAKE_INSTALL_PREFIX when you ran CMake, your include paths will be different.)

    +

    Also in the Properties dialog, expand the “Linker” options and choose “Input”, and add to the “Additional Dependencies” these libraries:

    +
    C:\mongo-c-driver\lib\bson-1.0.lib
    +C:\mongo-c-driver\lib\mongoc-1.0.lib
    +
    +
    +_images/msvc-add-dependencies.png +

    Adding these libraries as dependencies provides linker symbols to build your application, but to actually run it, libbson’s and libmongoc’s DLLs must be in your executable path. Select “Debugging” in the Properties dialog, and set the “Environment” option to:

    +
    PATH=c:/mongo-c-driver/bin
    +
    +
    +_images/msvc-set-path.png +

    Finally, include “mongoc/mongoc.h” in your project’s “stdafx.h”:

    +
    #include <mongoc/mongoc.h>
    +
    +
    +
    +

    Static linking

    +

    Following the instructions above, you have dynamically linked your application to the libbson and libmongoc DLLs. This is usually the right choice. If you want to link statically instead, update your “Additional Dependencies” list by removing bson-1.0.lib and mongoc-1.0.lib and replacing them with these libraries:

    +
    C:\mongo-c-driver\lib\bson-static-1.0.lib
    +C:\mongo-c-driver\lib\mongoc-static-1.0.lib
    +ws2_32.lib
    +Secur32.lib
    +Crypt32.lib
    +BCrypt.lib
    +
    +
    +_images/msvc-add-dependencies-static.png +

    (To explain the purpose of each library: bson-static-1.0.lib and mongoc-static-1.0.lib are static archives of the driver code. The socket library ws2_32 is required by libbson, which uses the socket routine gethostname to help guarantee ObjectId uniqueness. The BCrypt library is used by libmongoc for TLS connections to MongoDB, and Secur32 and Crypt32 are required for enterprise authentication methods like Kerberos.)

    +

    Finally, define two preprocessor symbols before including mongoc/mongoc.h in your stdafx.h:

    +
    #define BSON_STATIC
    +#define MONGOC_STATIC
    +#include <mongoc/mongoc.h>
    +
    +
    +

    Making these changes to your project is only required for static linking; for most people, the dynamic-linking instructions above are preferred.

    +
    +
    +

    Next Steps

    +

    Now you can build and debug applications in Visual Studio that use libbson and libmongoc. Proceed to Making a Connection in the tutorial to learn how connect to MongoDB and perform operations.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/_static/documentation_options.js b/libmongoc/_static/documentation_options.js index 05806a919526d0c8d0a56122826acec781359b6e..3e872538d6d05435b604ce2a199daad8bc4ed4bc 100644 --- a/libmongoc/_static/documentation_options.js +++ b/libmongoc/_static/documentation_options.js @@ -1,7 +1,7 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.23.1', - LANGUAGE: 'None', + VERSION: '1.23.2', + LANGUAGE: 'en', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: false, diff --git a/libmongoc/_static/searchtools.js b/libmongoc/_static/searchtools.js index 41b8336776442fbc64332ffbd3d2c1ddd8b3b9c2..024ac7c430a70907a6715006dc263b4f6d1976ba 100644 --- a/libmongoc/_static/searchtools.js +++ b/libmongoc/_static/searchtools.js @@ -227,105 +227,11 @@ var Scorer = { - - -var splitChars = (function() { - var result = {}; - var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, - 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, - 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, - 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, - 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, - 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, - 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, - 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, - 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, - 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; - var i, j, start, end; - for (i = 0; i < singles.length; i++) { - result[singles[i]] = true; - } - var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], - [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], - [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], - [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], - [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], - [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], - [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], - [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], - [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], - [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], - [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], - [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], - [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], - [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], - [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], - [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], - [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], - [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], - [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], - [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], - [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], - [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], - [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], - [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], - [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], - [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], - [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], - [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], - [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], - [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], - [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], - [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], - [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], - [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], - [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], - [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], - [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], - [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], - [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], - [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], - [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], - [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], - [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], - [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], - [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], - [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], - [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], - [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], - [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; - for (i = 0; i < ranges.length; i++) { - start = ranges[i][0]; - end = ranges[i][1]; - for (j = start; j <= end; j++) { - result[j] = true; - } - } - return result; -})(); - function splitQuery(query) { - var result = []; - var start = -1; - for (var i = 0; i < query.length; i++) { - if (splitChars[query.charCodeAt(i)]) { - if (start !== -1) { - result.push(query.slice(start, i)); - start = -1; - } - } else if (start === -1) { - start = i; - } - } - if (start !== -1) { - result.push(query.slice(start)); - } - return result; + return query.split(/\s+/); } - - /** * Search Module */ @@ -417,7 +323,7 @@ var Search = { */ query : function(query) { var i; - var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; + var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; // stem the searchterms and add them to the correct list var stemmer = new Stemmer(); diff --git a/libmongoc/current b/libmongoc/current index 1b50fc31bc75bad80d3fbe7e4868cf766d5d0563..db8b4ac7897f15beeb4141adef10e59ffb29bf7f 120000 --- a/libmongoc/current +++ b/libmongoc/current @@ -1 +1 @@ -1.23.1 \ No newline at end of file +1.23.2 \ No newline at end of file diff --git a/libmongoc/index.html b/libmongoc/index.html index 9d848f1308ff13598808a6203fc03dbe43e4c3d8..e881ca48989cc460fbbb5b5c0d83c6038e4c54aa 100644 --- a/libmongoc/index.html +++ b/libmongoc/index.html @@ -1,9 +1,9 @@ - + - + @@ -21,7 +21,7 @@ delighted.survey(); - libmongoc Releases — MongoDB C Driver 1.23.1 + libmongoc Releases — MongoDB C Driver 1.23.2 @@ -30,6 +30,7 @@ + @@ -50,7 +51,7 @@
  • previous |
  • - +
    @@ -59,11 +60,12 @@
    -

    libmongoc Releases

    -

    Latest Release (1.23.1)

    +

    libmongoc Releases

    +

    Latest Release (1.23.2)

    Current Development (master)

    diff --git a/objects.inv b/objects.inv index 1e5eb8432c88a7eb813fb781a2d3dea00e3b9b23..b2c9afd954fdbb4d07768385bc097f62cf5cad19 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/search.html b/search.html index 8c8e8620ef0de4604869cbe73822a90328f48e16..22dc4c8a4368dfef48fd42d15c70aee460880957 100644 --- a/search.html +++ b/search.html @@ -1,7 +1,7 @@ - + @@ -20,7 +20,7 @@ delighted.survey(); - Search — MongoDB C Driver 1.23.1 + Search — MongoDB C Driver 1.23.2 @@ -29,6 +29,7 @@ + @@ -49,7 +50,7 @@ @@ -87,7 +88,7 @@ diff --git a/searchindex.js b/searchindex.js index 258bec5eda855ad16c5e2b92e03e66c0ea206e6f..15821bf4db816dc6c94c0c234011580dc76fed1a 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","libbson-releases","libmongoc-releases"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","libbson-releases.rst","libmongoc-releases.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[1,2],"1":[0,1,2],"10":[1,2],"11":[1,2],"12":[1,2],"13":[1,2],"14":[1,2],"15":[1,2],"16":[1,2],"17":[1,2],"18":[1,2],"19":[1,2],"2":[1,2],"20":[1,2],"21":[1,2],"22":[1,2],"23":[0,1,2],"3":[1,2],"4":[1,2],"5":[1,2],"6":[1,2],"7":[1,2],"8":[1,2],"9":[1,2],A:0,It:0,The:0,alpha2:[1,2],alpha:[1,2],also:0,applic:0,beta0:[1,2],beta2:[1,2],beta:[1,2],bson:0,bug:0,client:0,commun:0,cross:0,current:[1,2],data:0,depend:0,develop:[1,2],featur:0,file:0,format:0,forum:0,from:0,gener:0,gz:0,higher:0,instal:0,issu:0,jira:0,known:0,languag:0,latest:[0,1,2],level:0,libbson:0,libmongoc:0,librari:0,master:[1,2],mongo:0,nativ:0,pars:0,platform:0,rc0:[1,2],refer:0,releas:0,request:0,tar:0,tracker:0,tutori:0,us:0,write:0},titles:["MongoDB C Driver","libbson Releases","libmongoc Releases"],titleterms:{For:0,To:0,ask:0,c:0,document:0,download:0,driver:0,help:0,how:0,libbson:1,libmongoc:2,mongodb:0,older:0,releas:[1,2],version:0}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "libbson-releases", "libmongoc-releases"], "filenames": ["index.rst", "libbson-releases.rst", "libmongoc-releases.rst"], "titles": ["MongoDB C Driver", "libbson Releases", "libmongoc Releases"], "terms": {"A": 0, "cross": 0, "platform": 0, "client": 0, "librari": 0, "The": 0, "also": 0, "known": 0, "libmongoc": 0, "i": 0, "us": 0, "from": 0, "applic": 0, "write": 0, "higher": 0, "level": 0, "languag": 0, "It": 0, "depend": 0, "libbson": 0, "gener": 0, "pars": 0, "bson": 0, "nativ": 0, "data": 0, "format": 0, "latest": [0, 1, 2], "releas": 0, "mongo": 0, "1": [0, 1, 2], "23": [0, 1, 2], "2": [0, 1, 2], "tar": 0, "gz": 0, "instal": 0, "tutori": 0, "refer": 0, "commun": 0, "forum": 0, "file": 0, "bug": 0, "featur": 0, "request": 0, "jira": 0, "issu": 0, "tracker": 0, "current": [1, 2], "develop": [1, 2], "master": [1, 2], "0": [1, 2], "22": [1, 2], "beta0": [1, 2], "21": [1, 2], "20": [1, 2], "19": [1, 2], "18": [1, 2], "alpha2": [1, 2], "alpha": [1, 2], "17": [1, 2], "7": [1, 2], "6": [1, 2], "5": [1, 2], "4": [1, 2], "3": [1, 2], "rc0": [1, 2], "beta2": [1, 2], "beta": [1, 2], "16": [1, 2], "15": [1, 2], "14": [1, 2], "13": [1, 2], "12": [1, 2], "11": [1, 2], "10": [1, 2], "9": [1, 2], "8": [1, 2]}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"mongodb": 0, "c": 0, "driver": 0, "download": 0, "document": 0, "how": 0, "To": 0, "ask": 0, "For": 0, "help": 0, "older": 0, "version": 0, "libbson": 1, "releas": [1, 2], "libmongoc": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file