diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 6577e70e27c00ad26010ff973dc6f2d5d7b362e0..db3c2d90eb65d7de854ebea94cb777e9c1f8e46e 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.24.1', - LANGUAGE: 'en', + VERSION: '1.24.2', + LANGUAGE: 'None', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: false, diff --git a/_static/searchtools.js b/_static/searchtools.js index 024ac7c430a70907a6715006dc263b4f6d1976ba..41b8336776442fbc64332ffbd3d2c1ddd8b3b9c2 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -227,11 +227,105 @@ 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) { - return query.split(/\s+/); + 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; } + + /** * Search Module */ @@ -323,7 +417,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 c8207ca43dffdcd432c05dbf265e739cc3838114..629887dfa64ec98748031f1813e3caca99737dc8 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,11 @@ - + - + - - + + - MongoDB C Driver — MongoDB C Driver 1.24.1 + MongoDB C Driver — MongoDB C Driver 1.24.2 - - - - - + @@ -50,7 +47,7 @@
  • next
  • - + @@ -58,37 +55,37 @@
    -
    -

    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.24.1.tar.gz

    -
    -
    -

    Documentation

    +
    +

    Download

    +

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

    +
    +
    -
    -

    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

    - - +
    +
    @@ -97,7 +94,7 @@ diff --git a/libbson-releases.html b/libbson-releases.html index 189ad0a16b8c16bee45ccb4680022557823dd8f0..93ebc4138d8af7ea372196717d688994a5a164b9 100644 --- a/libbson-releases.html +++ b/libbson-releases.html @@ -1,10 +1,11 @@ - + - + - - + + - libbson Releases — MongoDB C Driver 1.24.1 + libbson Releases — MongoDB C Driver 1.24.2 - - - - - + @@ -48,7 +45,7 @@
  • previous
  • - + @@ -56,109 +53,110 @@
    -
    -

    libbson Releases

    -

    Latest Release (1.24.1)

    +
    +

    libbson Releases

    +

    Latest Release (1.24.2)

    Current Development (master)

    -
    +
    @@ -167,7 +165,7 @@ diff --git a/libbson/1.24.1/api.html b/libbson/1.24.1/api.html index 26eb3c6aa14b6d4d8232cbe835f9f689c4b9c6a2..5daf84cb37a38759623030ba2f824eab331d2fe7 100644 --- a/libbson/1.24.1/api.html +++ b/libbson/1.24.1/api.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_aligned_alloc.html b/libbson/1.24.1/bson_aligned_alloc.html index 757ba3b1ceb84828faae850a40ac79967d691a89..0032457e5cc2f27d7171b27fb6aad55252cebb66 100644 --- a/libbson/1.24.1/bson_aligned_alloc.html +++ b/libbson/1.24.1/bson_aligned_alloc.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_aligned_alloc0.html b/libbson/1.24.1/bson_aligned_alloc0.html index a2ce448f8fe9b5eb39ac4535adafd36f44692bb9..a3a4672e6442e316ea716f1bb0560ffdde6b0ff9 100644 --- a/libbson/1.24.1/bson_aligned_alloc0.html +++ b/libbson/1.24.1/bson_aligned_alloc0.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_array.html b/libbson/1.24.1/bson_append_array.html index 779a52c42aa4cb84240ebe9c1de2ea1eca95a452..ce67711240fb587df14028619644d9bef91d85a5 100644 --- a/libbson/1.24.1/bson_append_array.html +++ b/libbson/1.24.1/bson_append_array.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_array_begin.html b/libbson/1.24.1/bson_append_array_begin.html index 4912f9bdcaa824424489b9b22f5a0791fdb2bfb7..815a236f52b13e7898331eb881f1d139482d0a8d 100644 --- a/libbson/1.24.1/bson_append_array_begin.html +++ b/libbson/1.24.1/bson_append_array_begin.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_array_end.html b/libbson/1.24.1/bson_append_array_end.html index fe60121746eb7fe39a62dd74b4eac3f4b25f1a27..f4ee4fe3e37c501a92b031ff23d4850d15935f8e 100644 --- a/libbson/1.24.1/bson_append_array_end.html +++ b/libbson/1.24.1/bson_append_array_end.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_binary.html b/libbson/1.24.1/bson_append_binary.html index 901a246d66d21e91edff1715b744b929dd4f5596..fd66e5529c52cbfe436ca9d4a75b1e0a54469b2f 100644 --- a/libbson/1.24.1/bson_append_binary.html +++ b/libbson/1.24.1/bson_append_binary.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_bool.html b/libbson/1.24.1/bson_append_bool.html index 47a2d59d9475abfc103764ed512604ed37513fe2..4bfefc9a6bf3b9f17df152ef1318159d68e973ca 100644 --- a/libbson/1.24.1/bson_append_bool.html +++ b/libbson/1.24.1/bson_append_bool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_code.html b/libbson/1.24.1/bson_append_code.html index 1eb2ab1bce0cb42dbaade49d5109f08fb65ca929..9df3e13e4101819d84e1f9abf188ff629a15fe19 100644 --- a/libbson/1.24.1/bson_append_code.html +++ b/libbson/1.24.1/bson_append_code.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_code_with_scope.html b/libbson/1.24.1/bson_append_code_with_scope.html index 2013d84297c68132ac01c5565829b4841189829b..75209baa0e7ef21f2a02d94fd1e6382f15349649 100644 --- a/libbson/1.24.1/bson_append_code_with_scope.html +++ b/libbson/1.24.1/bson_append_code_with_scope.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_date_time.html b/libbson/1.24.1/bson_append_date_time.html index bfe6543057e130af876da0fe4a86b0244c810790..49f8c4475afae4e794d4e140db0963162ae27ad6 100644 --- a/libbson/1.24.1/bson_append_date_time.html +++ b/libbson/1.24.1/bson_append_date_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_dbpointer.html b/libbson/1.24.1/bson_append_dbpointer.html index 316272cb09c01bcc8ce0497023e45e049232e9e7..5f873da9562e6472fb5ce3cf46f36b210a89e555 100644 --- a/libbson/1.24.1/bson_append_dbpointer.html +++ b/libbson/1.24.1/bson_append_dbpointer.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_decimal128.html b/libbson/1.24.1/bson_append_decimal128.html index 136fd34315837545a9d518e2f3a5856aee9dbed9..9e369f5b41db2e456cbee884175ab1e22fa4a25c 100644 --- a/libbson/1.24.1/bson_append_decimal128.html +++ b/libbson/1.24.1/bson_append_decimal128.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_document.html b/libbson/1.24.1/bson_append_document.html index f79b3da7519daa806f355fec985a6721b855a519..778a6239248910d12821a1e7f3237a8674664dcc 100644 --- a/libbson/1.24.1/bson_append_document.html +++ b/libbson/1.24.1/bson_append_document.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_document_begin.html b/libbson/1.24.1/bson_append_document_begin.html index 0b90aa6fb9c4e62b60e6e5833110ca01da0e81b6..1727ff3f38a7d22b61176c8e81eeda5ff8665114 100644 --- a/libbson/1.24.1/bson_append_document_begin.html +++ b/libbson/1.24.1/bson_append_document_begin.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_document_end.html b/libbson/1.24.1/bson_append_document_end.html index 3b9beeb3ff35a0efa1700f400d8fbaa399e6caea..bba61a4669961046dd9340f2e49457d83127226a 100644 --- a/libbson/1.24.1/bson_append_document_end.html +++ b/libbson/1.24.1/bson_append_document_end.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_double.html b/libbson/1.24.1/bson_append_double.html index bc1fbeea5ae984a21d528b01222140f216903b47..880e5253590dcadb09a01d289c35e12e7a10f74f 100644 --- a/libbson/1.24.1/bson_append_double.html +++ b/libbson/1.24.1/bson_append_double.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_int32.html b/libbson/1.24.1/bson_append_int32.html index 20e1a0ac2e37f5db7e921d38b8c037600ee8d919..bcddbde920f04b57b236c23e352ec3e62731ffff 100644 --- a/libbson/1.24.1/bson_append_int32.html +++ b/libbson/1.24.1/bson_append_int32.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_int64.html b/libbson/1.24.1/bson_append_int64.html index 46485201d72d07b6c9e65755f6c56daa62d3b0d9..2a34b6496a09813ee2d7b5dc3937e1f6e39e9f52 100644 --- a/libbson/1.24.1/bson_append_int64.html +++ b/libbson/1.24.1/bson_append_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_iter.html b/libbson/1.24.1/bson_append_iter.html index d00b400fb87dcc4b36a61cf2f13df434109d9646..e957bb22d9c55bb96756a2900ea7e8bc5b305bae 100644 --- a/libbson/1.24.1/bson_append_iter.html +++ b/libbson/1.24.1/bson_append_iter.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_maxkey.html b/libbson/1.24.1/bson_append_maxkey.html index 8313ca9bd66b64a2877ecad2945626aab240e22c..3c810eacb085b6a0aa0cc2f1fb0cb485d8b54b71 100644 --- a/libbson/1.24.1/bson_append_maxkey.html +++ b/libbson/1.24.1/bson_append_maxkey.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_minkey.html b/libbson/1.24.1/bson_append_minkey.html index 7afcd5fd20519cf404a291cfb36ff7c8ac5703bb..de19fe54fec748fab55053dc6c34b89c6fbafea3 100644 --- a/libbson/1.24.1/bson_append_minkey.html +++ b/libbson/1.24.1/bson_append_minkey.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_now_utc.html b/libbson/1.24.1/bson_append_now_utc.html index 038f2de407fe54d784d6376570962f9eaecc6a90..24acf24c9c2f74a14b17a6725de47d6315ed6e68 100644 --- a/libbson/1.24.1/bson_append_now_utc.html +++ b/libbson/1.24.1/bson_append_now_utc.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_null.html b/libbson/1.24.1/bson_append_null.html index 1e403da8f248d88a075f18b34d38432676dee324..8775ae153afb3e5a4f89834c9e4db5cece0e7093 100644 --- a/libbson/1.24.1/bson_append_null.html +++ b/libbson/1.24.1/bson_append_null.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_oid.html b/libbson/1.24.1/bson_append_oid.html index 2a09a1c0eceed13d305a2dd944fecc8910b58769..4f116a34724ec0342980f79d92f3194460150ed1 100644 --- a/libbson/1.24.1/bson_append_oid.html +++ b/libbson/1.24.1/bson_append_oid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_regex.html b/libbson/1.24.1/bson_append_regex.html index d847a00fa3a545e966c1a061d9cec30acb1a606e..6bfe2f809715fc0188d445dd3376a7888967d9ea 100644 --- a/libbson/1.24.1/bson_append_regex.html +++ b/libbson/1.24.1/bson_append_regex.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_regex_w_len.html b/libbson/1.24.1/bson_append_regex_w_len.html index 6b5eb02cc605fc3197c6dc1ce6469998d6cbd3be..305b4f3ac4ff9f54413b430198b49235ac0d55cc 100644 --- a/libbson/1.24.1/bson_append_regex_w_len.html +++ b/libbson/1.24.1/bson_append_regex_w_len.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_symbol.html b/libbson/1.24.1/bson_append_symbol.html index 810205e130dd966aadf2391182c8da317ef67aca..e283bd09a3c11181f875770733884cde411bc7c9 100644 --- a/libbson/1.24.1/bson_append_symbol.html +++ b/libbson/1.24.1/bson_append_symbol.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_time_t.html b/libbson/1.24.1/bson_append_time_t.html index 953b4888de4c48301968eb1a12b04b80cb65dfdf..61e17531b576b88db0ecac00144fbeeaa487b74e 100644 --- a/libbson/1.24.1/bson_append_time_t.html +++ b/libbson/1.24.1/bson_append_time_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_timestamp.html b/libbson/1.24.1/bson_append_timestamp.html index 9740640abe3f36ea32e26faf02d3eccdc0e43898..8f5511b18198fa14a24baea2e6494fef6838a5ba 100644 --- a/libbson/1.24.1/bson_append_timestamp.html +++ b/libbson/1.24.1/bson_append_timestamp.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_timeval.html b/libbson/1.24.1/bson_append_timeval.html index 98f1562d4c29c38d939de2550ac496cc46dbb3e6..a392ea41d4a728d237f3424a9c5bb8a762959858 100644 --- a/libbson/1.24.1/bson_append_timeval.html +++ b/libbson/1.24.1/bson_append_timeval.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_undefined.html b/libbson/1.24.1/bson_append_undefined.html index 3a308bf055c723cb1e1b2fe4184e5516ac45b0a5..79dfd01b1fa7b8b76bd3b135366073f0b0cd69e4 100644 --- a/libbson/1.24.1/bson_append_undefined.html +++ b/libbson/1.24.1/bson_append_undefined.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_utf8.html b/libbson/1.24.1/bson_append_utf8.html index 69ef209e7b58cf926f39cd0990ac4e21a54c8615..e82f2306dbe13cfa28fd7a40f52c65a717de1db7 100644 --- a/libbson/1.24.1/bson_append_utf8.html +++ b/libbson/1.24.1/bson_append_utf8.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_append_value.html b/libbson/1.24.1/bson_append_value.html index 23dd412728ad4d8dd2538d2ceea7b7f968f3ad8d..0e66b3da2c7979e7cc3a463c9d3c2578c6b1281f 100644 --- a/libbson/1.24.1/bson_append_value.html +++ b/libbson/1.24.1/bson_append_value.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_array_as_canonical_extended_json.html b/libbson/1.24.1/bson_array_as_canonical_extended_json.html index 8244f5b36f5c1314a695945417e44d4eaeaa7244..7b6963a9a9de538712cdece9448c559c5af8b39d 100644 --- a/libbson/1.24.1/bson_array_as_canonical_extended_json.html +++ b/libbson/1.24.1/bson_array_as_canonical_extended_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_array_as_json.html b/libbson/1.24.1/bson_array_as_json.html index 57affe922fa6a24614b61c6281d76e6a49cf4e66..e1c8c0ae378c4b8cd99c99dff01097567c27ef6b 100644 --- a/libbson/1.24.1/bson_array_as_json.html +++ b/libbson/1.24.1/bson_array_as_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_array_as_relaxed_extended_json.html b/libbson/1.24.1/bson_array_as_relaxed_extended_json.html index 2559686bfb282e0bfadfb726b75e853f89da7ea2..c13ebfd6d715ecce1f6407427288addfadd2313a 100644 --- a/libbson/1.24.1/bson_array_as_relaxed_extended_json.html +++ b/libbson/1.24.1/bson_array_as_relaxed_extended_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_as_canonical_extended_json.html b/libbson/1.24.1/bson_as_canonical_extended_json.html index d45bad9d30fff9e897b522e7080a46bf326bb63e..ed32746b645f8a8800d63d85425c7a4569d86b6f 100644 --- a/libbson/1.24.1/bson_as_canonical_extended_json.html +++ b/libbson/1.24.1/bson_as_canonical_extended_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_as_json.html b/libbson/1.24.1/bson_as_json.html index 393cd5ff82a113471fc73017d977aa4976b77c99..ec1375df24eb7f8683e4070b08a0795e018e2684 100644 --- a/libbson/1.24.1/bson_as_json.html +++ b/libbson/1.24.1/bson_as_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_as_json_with_opts.html b/libbson/1.24.1/bson_as_json_with_opts.html index daaa99e51453e3bf8093029c188b22e661df858a..12d1811746ca66f66077002436e855201d718534 100644 --- a/libbson/1.24.1/bson_as_json_with_opts.html +++ b/libbson/1.24.1/bson_as_json_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_as_relaxed_extended_json.html b/libbson/1.24.1/bson_as_relaxed_extended_json.html index d7cafb145a7cef99cd7440bac80e43fb89e76b20..34657df3f7733a64ff107c95a6ee664b1a0016b2 100644 --- a/libbson/1.24.1/bson_as_relaxed_extended_json.html +++ b/libbson/1.24.1/bson_as_relaxed_extended_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_ascii_strtoll.html b/libbson/1.24.1/bson_ascii_strtoll.html index caa5a8f28c30007870f55b9a0d71ed0113eaeae3..0597b90f28feb0ed11d7512478e5ed31928bd8c6 100644 --- a/libbson/1.24.1/bson_ascii_strtoll.html +++ b/libbson/1.24.1/bson_ascii_strtoll.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_check_version.html b/libbson/1.24.1/bson_check_version.html index 6e7dc7f261098c19894114dddf27ad815051dff7..aa76f8ede1f2222f2322c4108158e0f867fc2c8c 100644 --- a/libbson/1.24.1/bson_check_version.html +++ b/libbson/1.24.1/bson_check_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_compare.html b/libbson/1.24.1/bson_compare.html index 8f5566bfb2d98c460d9b91a801563cfc4fde73bb..0ebac49e309d2ee916ab5dd485eba0f57bf91da1 100644 --- a/libbson/1.24.1/bson_compare.html +++ b/libbson/1.24.1/bson_compare.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_concat.html b/libbson/1.24.1/bson_concat.html index afa22d077aab6167a1b5b575481a79ecd587975b..55d35681f19122099e66194a41321b1dca58f73b 100644 --- a/libbson/1.24.1/bson_concat.html +++ b/libbson/1.24.1/bson_concat.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_context_destroy.html b/libbson/1.24.1/bson_context_destroy.html index 66e1a552c17b72241488bc9f552f1a1df4b206c0..e4dabd8ef5c6f13198ad9bd07240e50e667ccdfa 100644 --- a/libbson/1.24.1/bson_context_destroy.html +++ b/libbson/1.24.1/bson_context_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_context_get_default.html b/libbson/1.24.1/bson_context_get_default.html index 262875a1beab25a0df209d9a12e2236bb322e6ab..21f3620b451b80e91a8b65a1d3c93be0752eeb91 100644 --- a/libbson/1.24.1/bson_context_get_default.html +++ b/libbson/1.24.1/bson_context_get_default.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_context_new.html b/libbson/1.24.1/bson_context_new.html index d22567f05c97a5587ae5e3a4bca34c582efe8b6f..8cc14e8fcb4ef47c2c2df269c86378f9c3581443 100644 --- a/libbson/1.24.1/bson_context_new.html +++ b/libbson/1.24.1/bson_context_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_context_t.html b/libbson/1.24.1/bson_context_t.html index 5985c1380f7295ce44f67774675bb64f0a296309..499cdb25beb24587b6c04e83b5f5983a33dde0bc 100644 --- a/libbson/1.24.1/bson_context_t.html +++ b/libbson/1.24.1/bson_context_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_copy.html b/libbson/1.24.1/bson_copy.html index 8d3b79cb04e0c98f86eefe7fd427422423de8220..1e721137fb7beda64d31ea80b7c1b436c82e05ca 100644 --- a/libbson/1.24.1/bson_copy.html +++ b/libbson/1.24.1/bson_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_copy_to.html b/libbson/1.24.1/bson_copy_to.html index 9789793279253684037d0724e8dfc6f2b815be8b..61f8f83e2dfd9e0cb3fa01ac32c4f2a799ece56e 100644 --- a/libbson/1.24.1/bson_copy_to.html +++ b/libbson/1.24.1/bson_copy_to.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_copy_to_excluding.html b/libbson/1.24.1/bson_copy_to_excluding.html index 9f8459dcb190d860d4c812eefa89158b353f3c37..bf43e8365ebaca5642df4cf62ab1ada85e54449e 100644 --- a/libbson/1.24.1/bson_copy_to_excluding.html +++ b/libbson/1.24.1/bson_copy_to_excluding.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_copy_to_excluding_noinit.html b/libbson/1.24.1/bson_copy_to_excluding_noinit.html index 8d01ce95c22b5434da42a23a39e9265a4e51a53d..7489ea75a007eb4f747344e9db85205238e5f142 100644 --- a/libbson/1.24.1/bson_copy_to_excluding_noinit.html +++ b/libbson/1.24.1/bson_copy_to_excluding_noinit.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_copy_to_excluding_noinit_va.html b/libbson/1.24.1/bson_copy_to_excluding_noinit_va.html index 5c4a50dd4539d1463d9a6be32e75a74ced1ffaa8..39f39807aabbd0ac73b637965fc9035d6d8b2de7 100644 --- a/libbson/1.24.1/bson_copy_to_excluding_noinit_va.html +++ b/libbson/1.24.1/bson_copy_to_excluding_noinit_va.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_count_keys.html b/libbson/1.24.1/bson_count_keys.html index b750a300b0d87106210d731c4ddee3e1e0f59d0b..ec77920aa0f620729c0dd2d1efd9619f1f7deb37 100644 --- a/libbson/1.24.1/bson_count_keys.html +++ b/libbson/1.24.1/bson_count_keys.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_decimal128_from_string.html b/libbson/1.24.1/bson_decimal128_from_string.html index 22110bce95baa951976708de8d41c5605474619b..f4d8396b98de604deb41445dac0affb8b00353a6 100644 --- a/libbson/1.24.1/bson_decimal128_from_string.html +++ b/libbson/1.24.1/bson_decimal128_from_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_decimal128_from_string_w_len.html b/libbson/1.24.1/bson_decimal128_from_string_w_len.html index 979b7fa5891050e28df6ede4981b6470f735b475..9ca3a36c49aad8e3831593979f84fed89206070c 100644 --- a/libbson/1.24.1/bson_decimal128_from_string_w_len.html +++ b/libbson/1.24.1/bson_decimal128_from_string_w_len.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_decimal128_t.html b/libbson/1.24.1/bson_decimal128_t.html index b105a881fb8635ad18b962b5f73cdc0e680ee85a..111c99b59a64f9f8e8dd0e3aa43a1cc5e8981ac1 100644 --- a/libbson/1.24.1/bson_decimal128_t.html +++ b/libbson/1.24.1/bson_decimal128_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_decimal128_to_string.html b/libbson/1.24.1/bson_decimal128_to_string.html index 8c2c5202b5535336926d8ae46c1954b10e782288..0ceec5c34b2921babdb055117b9e5f82175801f5 100644 --- a/libbson/1.24.1/bson_decimal128_to_string.html +++ b/libbson/1.24.1/bson_decimal128_to_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_destroy.html b/libbson/1.24.1/bson_destroy.html index 2ecae30b5dadd7415cb8a42b1683417dd0ae6d65..24186c3058d3a9886b0726af72008d384e516f74 100644 --- a/libbson/1.24.1/bson_destroy.html +++ b/libbson/1.24.1/bson_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_destroy_with_steal.html b/libbson/1.24.1/bson_destroy_with_steal.html index 66106562f098ed103359e08619dc35d801595e82..aa6395b387d1a197f67d21184e5e5b14d3db9632 100644 --- a/libbson/1.24.1/bson_destroy_with_steal.html +++ b/libbson/1.24.1/bson_destroy_with_steal.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_equal.html b/libbson/1.24.1/bson_equal.html index dc76bc58b8f26f435a7c56e3baef106e284af3ec..1d1e39a0032ed102fb1ffb5ce2f49f584a5dcedb 100644 --- a/libbson/1.24.1/bson_equal.html +++ b/libbson/1.24.1/bson_equal.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_error_t.html b/libbson/1.24.1/bson_error_t.html index cb805d2bb4fc9857e392741cc92e9ebea38c8629..34a3558e8d1594ed704e52eb3f5e99a7c3c768a2 100644 --- a/libbson/1.24.1/bson_error_t.html +++ b/libbson/1.24.1/bson_error_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_free.html b/libbson/1.24.1/bson_free.html index 587ea85e07ede7cb52304f8c88b7e5ecbdb17aa0..84365e80fef761871012e6caf5927932d5a6bc82 100644 --- a/libbson/1.24.1/bson_free.html +++ b/libbson/1.24.1/bson_free.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_get_data.html b/libbson/1.24.1/bson_get_data.html index 43811a095714c508ac66f554631bded4adb8cc26..e7139f1b0860a123bb8b7991fdb773218165452c 100644 --- a/libbson/1.24.1/bson_get_data.html +++ b/libbson/1.24.1/bson_get_data.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_get_major_version.html b/libbson/1.24.1/bson_get_major_version.html index 9b8264394174e77d6b5bc3455b33c3910a4a9731..4ddfdd9413dfce7f3574d8091e85edccc48962e6 100644 --- a/libbson/1.24.1/bson_get_major_version.html +++ b/libbson/1.24.1/bson_get_major_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_get_micro_version.html b/libbson/1.24.1/bson_get_micro_version.html index 856aa7f7c5c54f25bd79aa34dad7aa8cff6b67b3..b6b22b1589c41051809dc27b34a3bc9ecc94d0ef 100644 --- a/libbson/1.24.1/bson_get_micro_version.html +++ b/libbson/1.24.1/bson_get_micro_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_get_minor_version.html b/libbson/1.24.1/bson_get_minor_version.html index 526d37b6fa2bd9f86b2adf1e0c1d5cf41e7339d8..4a115eaf74b381f5183eb279f3584ec2cb652614 100644 --- a/libbson/1.24.1/bson_get_minor_version.html +++ b/libbson/1.24.1/bson_get_minor_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_get_monotonic_time.html b/libbson/1.24.1/bson_get_monotonic_time.html index ac2f4c9c5ad37120fe0035d33befbd79b2cd4f16..88f6a62b8e3a209270816e0081454a6fe9394148 100644 --- a/libbson/1.24.1/bson_get_monotonic_time.html +++ b/libbson/1.24.1/bson_get_monotonic_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_get_version.html b/libbson/1.24.1/bson_get_version.html index 1e70e1162b903f6e4ffbd2f1d5f50df72ed488b3..77e1b6b06a81cee02bcbaf3eab888041b200ba9f 100644 --- a/libbson/1.24.1/bson_get_version.html +++ b/libbson/1.24.1/bson_get_version.html @@ -39,6 +39,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_has_field.html b/libbson/1.24.1/bson_has_field.html index f90c3fe03578c8c55c6e94effc4e6029c1adeb35..b87cdb0346929eb18da85e3f6f55ad17ace53237 100644 --- a/libbson/1.24.1/bson_has_field.html +++ b/libbson/1.24.1/bson_has_field.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_init.html b/libbson/1.24.1/bson_init.html index 0c10b8f25e8032bae8137505db7e3f1114c2798d..cabbec1f6521fe2d45daea5954d7dba07e6b1dd6 100644 --- a/libbson/1.24.1/bson_init.html +++ b/libbson/1.24.1/bson_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_init_from_json.html b/libbson/1.24.1/bson_init_from_json.html index 2cfd052f6763aee657cfc5b579ff7bf063c555a4..9af420cac1a0eb8a582fe160025f5bc80a32342c 100644 --- a/libbson/1.24.1/bson_init_from_json.html +++ b/libbson/1.24.1/bson_init_from_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_init_static.html b/libbson/1.24.1/bson_init_static.html index b398100d75b0e4a074e9d12e454bb9959bbc071c..8734dd520b8bc1ee77376b067aaa77b80a692c13 100644 --- a/libbson/1.24.1/bson_init_static.html +++ b/libbson/1.24.1/bson_init_static.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_isspace.html b/libbson/1.24.1/bson_isspace.html index c0716676e9b0a6fe1f4c5373f191d16e4cd55e3f..12c2d9162a4d77b8278d0be988556878e348c317 100644 --- a/libbson/1.24.1/bson_isspace.html +++ b/libbson/1.24.1/bson_isspace.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_array.html b/libbson/1.24.1/bson_iter_array.html index 350a4d1fd1d893c709606ec7cc350d611baf8409..3fef45bb56c137aecd65aff9b377eb87477a7be8 100644 --- a/libbson/1.24.1/bson_iter_array.html +++ b/libbson/1.24.1/bson_iter_array.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_as_bool.html b/libbson/1.24.1/bson_iter_as_bool.html index e71165cb5e35702260de2611b24de2ee41d515ec..c7d837365ee1c4a0dc73fd447b40caad45799fa6 100644 --- a/libbson/1.24.1/bson_iter_as_bool.html +++ b/libbson/1.24.1/bson_iter_as_bool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_as_double.html b/libbson/1.24.1/bson_iter_as_double.html index de541bc2778fd11cf36de209620405e3f1193011..9aa0a68273d0cc0be1bcb6d9722d3306c916f885 100644 --- a/libbson/1.24.1/bson_iter_as_double.html +++ b/libbson/1.24.1/bson_iter_as_double.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_as_int64.html b/libbson/1.24.1/bson_iter_as_int64.html index 0c9bcf12fafedfdd581e9ff30c895633ca3c9d31..7a231ff8a1c8e0425bc862f8cbc88149f14c0cc6 100644 --- a/libbson/1.24.1/bson_iter_as_int64.html +++ b/libbson/1.24.1/bson_iter_as_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_binary.html b/libbson/1.24.1/bson_iter_binary.html index 3ca3b8ef01a8d21982c8e55cfea18a12e24f7777..b34b5fc878c6fcb5561d3930c4300e2a38fc9187 100644 --- a/libbson/1.24.1/bson_iter_binary.html +++ b/libbson/1.24.1/bson_iter_binary.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_bool.html b/libbson/1.24.1/bson_iter_bool.html index 5fdf6d9727e810a77b0e7b25927696fc045b6ed4..d65d5970e591ca94291300b1aad31dc780a37f35 100644 --- a/libbson/1.24.1/bson_iter_bool.html +++ b/libbson/1.24.1/bson_iter_bool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_code.html b/libbson/1.24.1/bson_iter_code.html index 62d5b697ec4282e5ea205edc96869e6483276ebd..0f04a130b71bca6d2aec20ee4712a21539cb50fb 100644 --- a/libbson/1.24.1/bson_iter_code.html +++ b/libbson/1.24.1/bson_iter_code.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_codewscope.html b/libbson/1.24.1/bson_iter_codewscope.html index 9df6fdf08bc5d8bc9dba1d2d12f9ef84586c437a..52a0e952c65c843a4397af4660b6279bc46c8512 100644 --- a/libbson/1.24.1/bson_iter_codewscope.html +++ b/libbson/1.24.1/bson_iter_codewscope.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_date_time.html b/libbson/1.24.1/bson_iter_date_time.html index e9b1c731d72b863411f9e7bf6a6fffd349cd1565..76fa48074640e706e599f20dd88f13fec0b6ffb0 100644 --- a/libbson/1.24.1/bson_iter_date_time.html +++ b/libbson/1.24.1/bson_iter_date_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_dbpointer.html b/libbson/1.24.1/bson_iter_dbpointer.html index 8428a0dccc31ee430b9a6539f2353bfc83f1dacc..8ff49c40444b63b3df00011f2316c6ed8cbd0649 100644 --- a/libbson/1.24.1/bson_iter_dbpointer.html +++ b/libbson/1.24.1/bson_iter_dbpointer.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_decimal128.html b/libbson/1.24.1/bson_iter_decimal128.html index 939ba2c5d656d68e09587e97c6bf810cc091cc96..7465c9810e6302d7b983ff0c05cf0c3809558cc9 100644 --- a/libbson/1.24.1/bson_iter_decimal128.html +++ b/libbson/1.24.1/bson_iter_decimal128.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_document.html b/libbson/1.24.1/bson_iter_document.html index bca988fe06785b584f2d19cf39c5c2252538ed26..432b4dd751e2c72b89ed4bd9c44fbafc8c6212f0 100644 --- a/libbson/1.24.1/bson_iter_document.html +++ b/libbson/1.24.1/bson_iter_document.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_double.html b/libbson/1.24.1/bson_iter_double.html index b5156550f4ec26e1614b37822375aa70eb582ffa..6f45015dee3b4c25903cea2436c55ff7867ac212 100644 --- a/libbson/1.24.1/bson_iter_double.html +++ b/libbson/1.24.1/bson_iter_double.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_dup_utf8.html b/libbson/1.24.1/bson_iter_dup_utf8.html index d4b0d370f4e92ff70aacaaf1219c5f4ca6e961c7..20033a5d0eb78325e920cd9ed3f0297ae7a31b9f 100644 --- a/libbson/1.24.1/bson_iter_dup_utf8.html +++ b/libbson/1.24.1/bson_iter_dup_utf8.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_find.html b/libbson/1.24.1/bson_iter_find.html index 1395f61348f4b6a0620d0a92d0c580f19c848466..a5738b60648277703dbc47114052bca15dc34164 100644 --- a/libbson/1.24.1/bson_iter_find.html +++ b/libbson/1.24.1/bson_iter_find.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_find_case.html b/libbson/1.24.1/bson_iter_find_case.html index 3455582ae43d8f52aafd94ebc203e849f068086a..0e5ee9c707cbd4f9c7e7d3601be64d684179f531 100644 --- a/libbson/1.24.1/bson_iter_find_case.html +++ b/libbson/1.24.1/bson_iter_find_case.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_find_descendant.html b/libbson/1.24.1/bson_iter_find_descendant.html index 5b4b434ffd082fa81331d2e3ecd67afa5916c7a9..ad929e276b7ad9a2ee3dca964f71ba44b14dc932 100644 --- a/libbson/1.24.1/bson_iter_find_descendant.html +++ b/libbson/1.24.1/bson_iter_find_descendant.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_find_w_len.html b/libbson/1.24.1/bson_iter_find_w_len.html index b86c0df621bf0557cb38cff54b235ba58893023e..692180ed075f8e844acc705a140a25072d8896be 100644 --- a/libbson/1.24.1/bson_iter_find_w_len.html +++ b/libbson/1.24.1/bson_iter_find_w_len.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_init.html b/libbson/1.24.1/bson_iter_init.html index 6499068beb4462d6f8456f76e7c429f1b238a7ee..0a7ad7533f1e48565803fd7c3ff8ebb779365558 100644 --- a/libbson/1.24.1/bson_iter_init.html +++ b/libbson/1.24.1/bson_iter_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_init_find.html b/libbson/1.24.1/bson_iter_init_find.html index fce4acf973c1f819a7f2c80a7772fcc9c308b5c5..6329d2ad444139cf2f48882bb731b926df3f2bd4 100644 --- a/libbson/1.24.1/bson_iter_init_find.html +++ b/libbson/1.24.1/bson_iter_init_find.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_init_find_case.html b/libbson/1.24.1/bson_iter_init_find_case.html index fe471554ff72b2507720fc49b26906a513a1f743..258987a22a2aef2571eda27340b2be563cd04118 100644 --- a/libbson/1.24.1/bson_iter_init_find_case.html +++ b/libbson/1.24.1/bson_iter_init_find_case.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_init_find_w_len.html b/libbson/1.24.1/bson_iter_init_find_w_len.html index 52298473a805c601bfeedaa1cb3bb5a2ec5b60bd..822d9d8face98bf5cbe964444c896bdeae710574 100644 --- a/libbson/1.24.1/bson_iter_init_find_w_len.html +++ b/libbson/1.24.1/bson_iter_init_find_w_len.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_init_from_data.html b/libbson/1.24.1/bson_iter_init_from_data.html index a24bedee93906fa12538887abf8413d6e3aa02b2..910b597b5b24ce4508e49d739910973f677e4ca1 100644 --- a/libbson/1.24.1/bson_iter_init_from_data.html +++ b/libbson/1.24.1/bson_iter_init_from_data.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_init_from_data_at_offset.html b/libbson/1.24.1/bson_iter_init_from_data_at_offset.html index 23deada5b5c54a42f0dea906845483d493632dde..5b0a9750230cceb76ecd994240287531008cd08a 100644 --- a/libbson/1.24.1/bson_iter_init_from_data_at_offset.html +++ b/libbson/1.24.1/bson_iter_init_from_data_at_offset.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_int32.html b/libbson/1.24.1/bson_iter_int32.html index 08dff341a36b5fd3e834fe22009dc8ea00ae4567..bd59c8ddcd0c49980bfe26a5181fdb8db7b1c496 100644 --- a/libbson/1.24.1/bson_iter_int32.html +++ b/libbson/1.24.1/bson_iter_int32.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_int64.html b/libbson/1.24.1/bson_iter_int64.html index d6f5f0b07e778e51d1270d3a31dfed7855c24765..749e594a27a8a736e4b4a4a09782186413ec1ec6 100644 --- a/libbson/1.24.1/bson_iter_int64.html +++ b/libbson/1.24.1/bson_iter_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_key.html b/libbson/1.24.1/bson_iter_key.html index 2537a5dd3974a58ab43cef07f019eaa91aa51369..f1e04a4838f0644083dbc183a445e8d7bd2f7e62 100644 --- a/libbson/1.24.1/bson_iter_key.html +++ b/libbson/1.24.1/bson_iter_key.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_key_len.html b/libbson/1.24.1/bson_iter_key_len.html index f51e7695e7719f55183fe7d6da95d776011f35ab..695a2c7753803fe97f445a39477489c650118dcb 100644 --- a/libbson/1.24.1/bson_iter_key_len.html +++ b/libbson/1.24.1/bson_iter_key_len.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_next.html b/libbson/1.24.1/bson_iter_next.html index 6cc324887691633b56aba69cc8138fe69c08e104..50b5d475fc14796a127743baad9f31f01384e67a 100644 --- a/libbson/1.24.1/bson_iter_next.html +++ b/libbson/1.24.1/bson_iter_next.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_offset.html b/libbson/1.24.1/bson_iter_offset.html index 064ac19422646a8b16eb7078caa62c6960043409..5f2a2cae1ca3cfe5efb0bb97ecd5ad08bf3fbe3f 100644 --- a/libbson/1.24.1/bson_iter_offset.html +++ b/libbson/1.24.1/bson_iter_offset.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_oid.html b/libbson/1.24.1/bson_iter_oid.html index 8a0409e39d96075042f1e5228c56a33137cd757e..c2c894d397f749e5781b8f32d9305136d4a161ab 100644 --- a/libbson/1.24.1/bson_iter_oid.html +++ b/libbson/1.24.1/bson_iter_oid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_bool.html b/libbson/1.24.1/bson_iter_overwrite_bool.html index f039dcb86660ddb6bd58485016b7f3456b66b37b..9dabdac1f4af69d123cdc062ca1e8daf040d3499 100644 --- a/libbson/1.24.1/bson_iter_overwrite_bool.html +++ b/libbson/1.24.1/bson_iter_overwrite_bool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_date_time.html b/libbson/1.24.1/bson_iter_overwrite_date_time.html index c7044fb52eb2b87cff91eb2e34a8468ff43e82f1..449b8f08c063a624b011d8f268b7a8acc0785136 100644 --- a/libbson/1.24.1/bson_iter_overwrite_date_time.html +++ b/libbson/1.24.1/bson_iter_overwrite_date_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_decimal128.html b/libbson/1.24.1/bson_iter_overwrite_decimal128.html index f18103afacfd116f53f1d13d7689933096201201..8afcf95a67805a88b49b5a5592a8476197b01d22 100644 --- a/libbson/1.24.1/bson_iter_overwrite_decimal128.html +++ b/libbson/1.24.1/bson_iter_overwrite_decimal128.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_double.html b/libbson/1.24.1/bson_iter_overwrite_double.html index 95e064cea3c4043e78abbf8ac1ebf00a74902111..84f0d7c244e83788c4473e4bb9d76970c9ff7177 100644 --- a/libbson/1.24.1/bson_iter_overwrite_double.html +++ b/libbson/1.24.1/bson_iter_overwrite_double.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_int32.html b/libbson/1.24.1/bson_iter_overwrite_int32.html index 565d99b3fb0222761b96e763afaf22e56035c905..3b9650aa5b35c25d8e538cab85a98858a72b4137 100644 --- a/libbson/1.24.1/bson_iter_overwrite_int32.html +++ b/libbson/1.24.1/bson_iter_overwrite_int32.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_int64.html b/libbson/1.24.1/bson_iter_overwrite_int64.html index 452eeee7ad5c699e8085a72fa6b8789d3f611fd4..095ae6bf1d00a6b4a7391332a92167e17abdcb3b 100644 --- a/libbson/1.24.1/bson_iter_overwrite_int64.html +++ b/libbson/1.24.1/bson_iter_overwrite_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_oid.html b/libbson/1.24.1/bson_iter_overwrite_oid.html index 10301dc76c28750c446b1d0ba39bca91b11fb623..6f8b57c60af1b2a4acc0d722ee5c0331629a1ffa 100644 --- a/libbson/1.24.1/bson_iter_overwrite_oid.html +++ b/libbson/1.24.1/bson_iter_overwrite_oid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_overwrite_timestamp.html b/libbson/1.24.1/bson_iter_overwrite_timestamp.html index 6464aa659b0614fabbce22ba8af8e9dc96b0f557..1f293d1db46244b806439d30441e5217b16b2db7 100644 --- a/libbson/1.24.1/bson_iter_overwrite_timestamp.html +++ b/libbson/1.24.1/bson_iter_overwrite_timestamp.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_recurse.html b/libbson/1.24.1/bson_iter_recurse.html index 12e1b6fa78f6e8fee657aa4ca73a7aab71768620..450ed9a56ff8500335ca7b8e82820e20027bbab6 100644 --- a/libbson/1.24.1/bson_iter_recurse.html +++ b/libbson/1.24.1/bson_iter_recurse.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_regex.html b/libbson/1.24.1/bson_iter_regex.html index 8f36aeb9b4d8fe3e54842abb0f8d23f3937c06ff..023f845dd2ad3911a2345b5549eaa7fffbdeac87 100644 --- a/libbson/1.24.1/bson_iter_regex.html +++ b/libbson/1.24.1/bson_iter_regex.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_symbol.html b/libbson/1.24.1/bson_iter_symbol.html index b315d99d9f1d0d4fcd10a91cd30b7f617de048c6..44c05196140af147a30dffe3a4409aac58974a26 100644 --- a/libbson/1.24.1/bson_iter_symbol.html +++ b/libbson/1.24.1/bson_iter_symbol.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_t.html b/libbson/1.24.1/bson_iter_t.html index f892367b70a73729e8d058b40fcaa560c140234d..09282fdecbd65b8e4b79ddf9ea5d920ebdf7a4db 100644 --- a/libbson/1.24.1/bson_iter_t.html +++ b/libbson/1.24.1/bson_iter_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_time_t.html b/libbson/1.24.1/bson_iter_time_t.html index a745391aea74ed24defb86f76e0a062df7ff06a5..f23db227182a9a93a4dcb52886c4a880bef7fe0f 100644 --- a/libbson/1.24.1/bson_iter_time_t.html +++ b/libbson/1.24.1/bson_iter_time_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_timestamp.html b/libbson/1.24.1/bson_iter_timestamp.html index 42d5576948ef3743fecb9f81816e003c378b5a80..cb8867d78c6bcaaec3e5d19e34027a6e94274708 100644 --- a/libbson/1.24.1/bson_iter_timestamp.html +++ b/libbson/1.24.1/bson_iter_timestamp.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_timeval.html b/libbson/1.24.1/bson_iter_timeval.html index 014a30868f4291bd1d76698b4ea1b7078189ee33..b3502613ff8da621aaff7228ea86ee00689bd38b 100644 --- a/libbson/1.24.1/bson_iter_timeval.html +++ b/libbson/1.24.1/bson_iter_timeval.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_type.html b/libbson/1.24.1/bson_iter_type.html index 36c98c52ac5d61d49c73bb9807630a845b56e9be..af02ca73104abdfa9af431b0e6bd190c98f9034c 100644 --- a/libbson/1.24.1/bson_iter_type.html +++ b/libbson/1.24.1/bson_iter_type.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_utf8.html b/libbson/1.24.1/bson_iter_utf8.html index 6ffaab0f41719e8ed030851489472671766e5af6..1934e86ce3726bbcf2904b61fa9b5a8e7b155189 100644 --- a/libbson/1.24.1/bson_iter_utf8.html +++ b/libbson/1.24.1/bson_iter_utf8.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_value.html b/libbson/1.24.1/bson_iter_value.html index c07965272b77042dd40837a86952a3abe68d6eac..0a97ca9d80999896ea4b963404aa7ffd054697ce 100644 --- a/libbson/1.24.1/bson_iter_value.html +++ b/libbson/1.24.1/bson_iter_value.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_iter_visit_all.html b/libbson/1.24.1/bson_iter_visit_all.html index a7568fcbe35b25da3597cfeae008dbc526922b99..da5dbce9de2d788e36f1da912e6b3c2fbfc4034c 100644 --- a/libbson/1.24.1/bson_iter_visit_all.html +++ b/libbson/1.24.1/bson_iter_visit_all.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_data_reader_ingest.html b/libbson/1.24.1/bson_json_data_reader_ingest.html index 1e12301cb74dc01c42c618967add1d9bcac75956..c8dc7e6e500418ed458ca93a2a62d1f38fd79676 100644 --- a/libbson/1.24.1/bson_json_data_reader_ingest.html +++ b/libbson/1.24.1/bson_json_data_reader_ingest.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_data_reader_new.html b/libbson/1.24.1/bson_json_data_reader_new.html index a41e985b3f4ba90ad07f29435018fed08e7a04ee..c90b530ccb5ea6375cf0488b598fa0df946c3203 100644 --- a/libbson/1.24.1/bson_json_data_reader_new.html +++ b/libbson/1.24.1/bson_json_data_reader_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_mode_t.html b/libbson/1.24.1/bson_json_mode_t.html index 3c621a2b155bb1af1660eb6cbaeb20a4a906322a..8f7b8d3245ab2aa7fce28306cb4b4e042d7cd0dd 100644 --- a/libbson/1.24.1/bson_json_mode_t.html +++ b/libbson/1.24.1/bson_json_mode_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_opts_destroy.html b/libbson/1.24.1/bson_json_opts_destroy.html index 98a7776df105100ab36c18b281ebf60f7e3e90ad..9371a62e0c1665151be01e57ebe9c573765ab4c7 100644 --- a/libbson/1.24.1/bson_json_opts_destroy.html +++ b/libbson/1.24.1/bson_json_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_opts_new.html b/libbson/1.24.1/bson_json_opts_new.html index 8cdb47cb74458405fe036513e0f0cd743ef47874..86800ebf9c3da71c881b69339eb3a926c7f845c3 100644 --- a/libbson/1.24.1/bson_json_opts_new.html +++ b/libbson/1.24.1/bson_json_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_opts_set_outermost_array.html b/libbson/1.24.1/bson_json_opts_set_outermost_array.html index 06626a11db2fd5ae2eae187fbf4c694665eec8db..0a7f48146651242e25e8a51bb1afbacdc8370ecc 100644 --- a/libbson/1.24.1/bson_json_opts_set_outermost_array.html +++ b/libbson/1.24.1/bson_json_opts_set_outermost_array.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_opts_t.html b/libbson/1.24.1/bson_json_opts_t.html index dd001f8315fcd66742275764d89804430d0cde22..c8bf5f6e06c0ce7b5f63c325d2af15f5fdc15958 100644 --- a/libbson/1.24.1/bson_json_opts_t.html +++ b/libbson/1.24.1/bson_json_opts_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_reader_destroy.html b/libbson/1.24.1/bson_json_reader_destroy.html index b66669cd206046ed6983c8c3541eaaa9da8fd848..1a54fcba7372049ea022fe0034828e745052239c 100644 --- a/libbson/1.24.1/bson_json_reader_destroy.html +++ b/libbson/1.24.1/bson_json_reader_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_reader_new.html b/libbson/1.24.1/bson_json_reader_new.html index fede4113f8f0cbb64a860ee8e700a2400a36c9ee..f3be37972c58ff35a895abae04bc93cd35d5460f 100644 --- a/libbson/1.24.1/bson_json_reader_new.html +++ b/libbson/1.24.1/bson_json_reader_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_reader_new_from_fd.html b/libbson/1.24.1/bson_json_reader_new_from_fd.html index 42f9e1bbaae28db637408cfabb7742c22d684f1c..008d7ea1a85cbf3893d0329dbc4260e4acfc8b50 100644 --- a/libbson/1.24.1/bson_json_reader_new_from_fd.html +++ b/libbson/1.24.1/bson_json_reader_new_from_fd.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_reader_new_from_file.html b/libbson/1.24.1/bson_json_reader_new_from_file.html index 6ea37eb66890defe92c2e16b28c77ed3e28f8b78..3d27b281968cb602943e9a9e585e9be717f797ad 100644 --- a/libbson/1.24.1/bson_json_reader_new_from_file.html +++ b/libbson/1.24.1/bson_json_reader_new_from_file.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_reader_read.html b/libbson/1.24.1/bson_json_reader_read.html index 0db22f030f11ceed1ee6f876f617c7f5b5b32884..7e803e974c5bfba824074aa0f437e048975a8559 100644 --- a/libbson/1.24.1/bson_json_reader_read.html +++ b/libbson/1.24.1/bson_json_reader_read.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_json_reader_t.html b/libbson/1.24.1/bson_json_reader_t.html index 7c60509f028d878415c61c442d9a085dbaad0b1e..65e64ba878a8dc583254c412a251d53682e9b432 100644 --- a/libbson/1.24.1/bson_json_reader_t.html +++ b/libbson/1.24.1/bson_json_reader_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_malloc.html b/libbson/1.24.1/bson_malloc.html index 3bacec57045b35fb22abe5061e11c12d511daab5..1ca2c93acb9f04590a7f189a71d7ec2c80e9832a 100644 --- a/libbson/1.24.1/bson_malloc.html +++ b/libbson/1.24.1/bson_malloc.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_malloc0.html b/libbson/1.24.1/bson_malloc0.html index 5376e7f939b770603a6640a4a29afac60c5338bf..16148eeb195ccad6521db01d623b9e589468fcf5 100644 --- a/libbson/1.24.1/bson_malloc0.html +++ b/libbson/1.24.1/bson_malloc0.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_mem_restore_vtable.html b/libbson/1.24.1/bson_mem_restore_vtable.html index dcb9668a8aff3178283985e2bc835fcf428f2fb1..cc54e433b9084339ebcf6fd4c88f6d85d9c4e91d 100644 --- a/libbson/1.24.1/bson_mem_restore_vtable.html +++ b/libbson/1.24.1/bson_mem_restore_vtable.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_mem_set_vtable.html b/libbson/1.24.1/bson_mem_set_vtable.html index 31f3361fef4707aab67d0a8570a333ade117769e..8eb31da8458cec58177c70016222ad2de208da35 100644 --- a/libbson/1.24.1/bson_mem_set_vtable.html +++ b/libbson/1.24.1/bson_mem_set_vtable.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_memory.html b/libbson/1.24.1/bson_memory.html index 5f336fd20f4da7c98dee7739e7796f4fe1f57a06..efb1367f78f75557f21c65426801811958803d8f 100644 --- a/libbson/1.24.1/bson_memory.html +++ b/libbson/1.24.1/bson_memory.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_new.html b/libbson/1.24.1/bson_new.html index e59d22c5ba13dbc9d2fbfd4a83720c5c99c2e7b0..2f4bd50cb98b0f8bc538dd4dec489802c6805365 100644 --- a/libbson/1.24.1/bson_new.html +++ b/libbson/1.24.1/bson_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_new_from_buffer.html b/libbson/1.24.1/bson_new_from_buffer.html index 8c0d090cb366480d717b82eebf6f231bdb3edb8f..b5ceb3c46ea7375251cf60e5676a9f8a66d4f7a4 100644 --- a/libbson/1.24.1/bson_new_from_buffer.html +++ b/libbson/1.24.1/bson_new_from_buffer.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_new_from_data.html b/libbson/1.24.1/bson_new_from_data.html index db61fc4092ecf988a5fb91d2e89c1d7ff91209f1..6afdcfb48a1ccbcea1bff03c8ee6b1696392270d 100644 --- a/libbson/1.24.1/bson_new_from_data.html +++ b/libbson/1.24.1/bson_new_from_data.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_new_from_json.html b/libbson/1.24.1/bson_new_from_json.html index 744a6852f535a019abd4f7250ebb4b62812c86d1..1b17bca4d204d23b5c59a08db89b6064077fad10 100644 --- a/libbson/1.24.1/bson_new_from_json.html +++ b/libbson/1.24.1/bson_new_from_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_compare.html b/libbson/1.24.1/bson_oid_compare.html index d98ff8d87a2bc53f7ad3eb8ac5d3cabc8820419e..f8c16f810c04c46a798fa96e4f1e2a0707dde4e8 100644 --- a/libbson/1.24.1/bson_oid_compare.html +++ b/libbson/1.24.1/bson_oid_compare.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_copy.html b/libbson/1.24.1/bson_oid_copy.html index 0096435368182a2b2fe638e03c9eeea377a242a9..3d979dec1c5a2ba0111f29820381a655d131d8c3 100644 --- a/libbson/1.24.1/bson_oid_copy.html +++ b/libbson/1.24.1/bson_oid_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_equal.html b/libbson/1.24.1/bson_oid_equal.html index 19429c7b3ceab97ba6940bcb83a925e410ba8b6e..cd3b83376d3fc9ff7517bcccb1e7f3072a0b7182 100644 --- a/libbson/1.24.1/bson_oid_equal.html +++ b/libbson/1.24.1/bson_oid_equal.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_get_time_t.html b/libbson/1.24.1/bson_oid_get_time_t.html index 198444c2978ea48894cba8eae8af362fe352a73c..351e64cb7428f804a4002bacb2eca2050a531a07 100644 --- a/libbson/1.24.1/bson_oid_get_time_t.html +++ b/libbson/1.24.1/bson_oid_get_time_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_hash.html b/libbson/1.24.1/bson_oid_hash.html index 08b684d37fee835c07b4cb7da126dc6a52462bdb..9bca74b9c3fd00c9ff76b3b3a0ae87e7bdb2536d 100644 --- a/libbson/1.24.1/bson_oid_hash.html +++ b/libbson/1.24.1/bson_oid_hash.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_init.html b/libbson/1.24.1/bson_oid_init.html index 32743ef8248ebfc823981efc1781963880b93950..fc1ca094fbc3bbedce829f1358e2f06e0f93f373 100644 --- a/libbson/1.24.1/bson_oid_init.html +++ b/libbson/1.24.1/bson_oid_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_init_from_data.html b/libbson/1.24.1/bson_oid_init_from_data.html index 9bdf6e2c8502b843ea9f2d03326a4d9cf2bb73d9..72f56f881fcbe7efab7f24550d56505fe70039aa 100644 --- a/libbson/1.24.1/bson_oid_init_from_data.html +++ b/libbson/1.24.1/bson_oid_init_from_data.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_init_from_string.html b/libbson/1.24.1/bson_oid_init_from_string.html index f17f0a7d407086eb1fcdf7b3c2aebbfc0c7562e8..ee47b012726a683a3d8ea2b4957c7659b46a4669 100644 --- a/libbson/1.24.1/bson_oid_init_from_string.html +++ b/libbson/1.24.1/bson_oid_init_from_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_init_sequence.html b/libbson/1.24.1/bson_oid_init_sequence.html index a7956084b26185e51d37fa6ad99cf801200c07a2..e874eeb9839e787b837cb3ac96e033c3046cc202 100644 --- a/libbson/1.24.1/bson_oid_init_sequence.html +++ b/libbson/1.24.1/bson_oid_init_sequence.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_is_valid.html b/libbson/1.24.1/bson_oid_is_valid.html index 001ecf1cc7b8dd8cd2b66ae9db651c95743bb410..f22079d9e42d352b6d4c7ed86f5e92396646c886 100644 --- a/libbson/1.24.1/bson_oid_is_valid.html +++ b/libbson/1.24.1/bson_oid_is_valid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_t.html b/libbson/1.24.1/bson_oid_t.html index 7b3d2efa3ae9d45ebe83ce168d8571d7beba6671..74936de0362119f1ad99d22152251afef381d867 100644 --- a/libbson/1.24.1/bson_oid_t.html +++ b/libbson/1.24.1/bson_oid_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_oid_to_string.html b/libbson/1.24.1/bson_oid_to_string.html index ea2193126a02c5e00a198f98ae49c8adfd39965e..0f2c7f7207df67e62c755bfd82fcf3998ddc8685 100644 --- a/libbson/1.24.1/bson_oid_to_string.html +++ b/libbson/1.24.1/bson_oid_to_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_destroy.html b/libbson/1.24.1/bson_reader_destroy.html index 44136445f8e5dd3e2f977333b1db1b8e41939e81..ed1e05ca96aabb514f09bede363332372d602929 100644 --- a/libbson/1.24.1/bson_reader_destroy.html +++ b/libbson/1.24.1/bson_reader_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_destroy_func_t.html b/libbson/1.24.1/bson_reader_destroy_func_t.html index 35f6b074545be29d3f1f50604f555154dc1a6b63..7b046effacb34345e9968db964289c05bcb3c18b 100644 --- a/libbson/1.24.1/bson_reader_destroy_func_t.html +++ b/libbson/1.24.1/bson_reader_destroy_func_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_new_from_data.html b/libbson/1.24.1/bson_reader_new_from_data.html index 445bb65aa7951a7d1e80818e00b8ff86e9274e50..3edc03adf2b1757bb44465cc8691d41367f0002e 100644 --- a/libbson/1.24.1/bson_reader_new_from_data.html +++ b/libbson/1.24.1/bson_reader_new_from_data.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_new_from_fd.html b/libbson/1.24.1/bson_reader_new_from_fd.html index 298afb4a63e57a496bf7b44b0c67646958486eb2..0670027f4cbf5bf2b57b22458ee70693e406f321 100644 --- a/libbson/1.24.1/bson_reader_new_from_fd.html +++ b/libbson/1.24.1/bson_reader_new_from_fd.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_new_from_file.html b/libbson/1.24.1/bson_reader_new_from_file.html index f8d31d419b2f0ad14fabe63835a7a2d6256bc10a..03af6f40d29463d2f37e9025741e8749112376b5 100644 --- a/libbson/1.24.1/bson_reader_new_from_file.html +++ b/libbson/1.24.1/bson_reader_new_from_file.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_new_from_handle.html b/libbson/1.24.1/bson_reader_new_from_handle.html index 5c9e828b35c0f8c7664cd8f714c5f27566e0eb82..f1a607138a2b1683dae02022b59ad6df3cd350e1 100644 --- a/libbson/1.24.1/bson_reader_new_from_handle.html +++ b/libbson/1.24.1/bson_reader_new_from_handle.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_read.html b/libbson/1.24.1/bson_reader_read.html index 0b706e1e1fe93b78ef81a96478e1a091db2dacca..01bd9f8ffe0feccec7482d2a0d270c445521a28c 100644 --- a/libbson/1.24.1/bson_reader_read.html +++ b/libbson/1.24.1/bson_reader_read.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_read_func_t.html b/libbson/1.24.1/bson_reader_read_func_t.html index 395ce20ccfacb04f9ca2dbc91724ee3af0c7571a..7453cf78e3c50f59840a0c18e73bb197e3843976 100644 --- a/libbson/1.24.1/bson_reader_read_func_t.html +++ b/libbson/1.24.1/bson_reader_read_func_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_reset.html b/libbson/1.24.1/bson_reader_reset.html index 2cd26e468b4eba43884b8b5ea1b858da4ef3724a..6d9914f6b2cba6bc8c3524b1fcb33a9c77a5e19e 100644 --- a/libbson/1.24.1/bson_reader_reset.html +++ b/libbson/1.24.1/bson_reader_reset.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_set_destroy_func.html b/libbson/1.24.1/bson_reader_set_destroy_func.html index 49686b6eb61bcd380844bef4a85f2a696c2ae1f7..c23b70c3ae276bb322f3b3ebfb4f7e027b8f1038 100644 --- a/libbson/1.24.1/bson_reader_set_destroy_func.html +++ b/libbson/1.24.1/bson_reader_set_destroy_func.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_set_read_func.html b/libbson/1.24.1/bson_reader_set_read_func.html index e13d164671e86f1d5eec1c5427c53fc138f55a9b..564bec8b3032bff08ff061fb86b89cb4d349d4ae 100644 --- a/libbson/1.24.1/bson_reader_set_read_func.html +++ b/libbson/1.24.1/bson_reader_set_read_func.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_t.html b/libbson/1.24.1/bson_reader_t.html index 6e82694a32df91b74d51e5fb4738c2b66ab3e498..ae9610dd463eafd4b57a822c786141f16afe2a63 100644 --- a/libbson/1.24.1/bson_reader_t.html +++ b/libbson/1.24.1/bson_reader_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reader_tell.html b/libbson/1.24.1/bson_reader_tell.html index 5dbfe0bb7ffe153c51748e67f4a1a90cb1bd71ae..d93672144dfec31c9d7b0830e9839c26f8010c53 100644 --- a/libbson/1.24.1/bson_reader_tell.html +++ b/libbson/1.24.1/bson_reader_tell.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_realloc.html b/libbson/1.24.1/bson_realloc.html index ed143f8406bcc910892f9ab7f752e82f0e0220b5..979f1b95ab6ebcfbd14536df47d38f462774ee43 100644 --- a/libbson/1.24.1/bson_realloc.html +++ b/libbson/1.24.1/bson_realloc.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_realloc_ctx.html b/libbson/1.24.1/bson_realloc_ctx.html index f76c5d5e4e48ac1316e007a06cc0fb88483a36aa..72c86a823a7461af22e0c2042de0262ff9cf0009 100644 --- a/libbson/1.24.1/bson_realloc_ctx.html +++ b/libbson/1.24.1/bson_realloc_ctx.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_realloc_func.html b/libbson/1.24.1/bson_realloc_func.html index 5eb295a9fab1e13a531fad726bd68fcd8bf6e495..ff66cb66cc7a7b76b619b89892464e1e706ad059 100644 --- a/libbson/1.24.1/bson_realloc_func.html +++ b/libbson/1.24.1/bson_realloc_func.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reinit.html b/libbson/1.24.1/bson_reinit.html index 34b4cc6e06f4ce395815ede1a6fc46f02a2d05fd..abe04442e67c02b32df552dc84957939d48f95ef 100644 --- a/libbson/1.24.1/bson_reinit.html +++ b/libbson/1.24.1/bson_reinit.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_reserve_buffer.html b/libbson/1.24.1/bson_reserve_buffer.html index 702f4ae38c4794b215ca43db935b6cc7c402f5ab..d2a86aad5b7de7a82150ed7183a30abc8e488909 100644 --- a/libbson/1.24.1/bson_reserve_buffer.html +++ b/libbson/1.24.1/bson_reserve_buffer.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_set_error.html b/libbson/1.24.1/bson_set_error.html index 4633f67cc7deeef5f4764a4c4a1d5c3324dfa803..1234f0f976eeb359e4bcaa709cae5391567ebaf1 100644 --- a/libbson/1.24.1/bson_set_error.html +++ b/libbson/1.24.1/bson_set_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_sized_new.html b/libbson/1.24.1/bson_sized_new.html index 78639a8f31618fc80de723a94a0264d5a9ce6e2d..eb1620d77057715b339d6f66c7f755d2f101b159 100644 --- a/libbson/1.24.1/bson_sized_new.html +++ b/libbson/1.24.1/bson_sized_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_snprintf.html b/libbson/1.24.1/bson_snprintf.html index 361fca74fdc7d09957be680dd2baa8deb22e80bf..9161cb20a80386d4c6d0246d4e981bb91e7e079a 100644 --- a/libbson/1.24.1/bson_snprintf.html +++ b/libbson/1.24.1/bson_snprintf.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_steal.html b/libbson/1.24.1/bson_steal.html index 4039b27a52cd3db46dc42023ed0ff2f0df16f14b..b83a581ec120b5c61d4fdbe8b31a322695fb357d 100644 --- a/libbson/1.24.1/bson_steal.html +++ b/libbson/1.24.1/bson_steal.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strcasecmp.html b/libbson/1.24.1/bson_strcasecmp.html index 5d8ce55d4e8e948332ee387d136ac2cfc4fa0b1c..4d57c9ef72dc14d0575b65ed86ab1375cff68887 100644 --- a/libbson/1.24.1/bson_strcasecmp.html +++ b/libbson/1.24.1/bson_strcasecmp.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strdup.html b/libbson/1.24.1/bson_strdup.html index 5f2e4fe97959212205cffc916f98e3271b65cc01..f685d4a4058ebd86ab31e4dca12eb476aedf8105 100644 --- a/libbson/1.24.1/bson_strdup.html +++ b/libbson/1.24.1/bson_strdup.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strdup_printf.html b/libbson/1.24.1/bson_strdup_printf.html index eb6ea4f3f690c32fc4d8eb83f7f7f3e726c4e774..43b5e02509e297e9ed7656479c8bf428b36ba8f8 100644 --- a/libbson/1.24.1/bson_strdup_printf.html +++ b/libbson/1.24.1/bson_strdup_printf.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strdupv_printf.html b/libbson/1.24.1/bson_strdupv_printf.html index 68f8dde46c1754561a0f0c4a94ea61c5e12314b3..7515b8b64520052f1172da00f56ed27253ae8ffe 100644 --- a/libbson/1.24.1/bson_strdupv_printf.html +++ b/libbson/1.24.1/bson_strdupv_printf.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strerror_r.html b/libbson/1.24.1/bson_strerror_r.html index e278e7d6793a7c7d162ada7bce8329e59b9ff9c4..ece387061487883ef5c74048b7aed4f8104b483a 100644 --- a/libbson/1.24.1/bson_strerror_r.html +++ b/libbson/1.24.1/bson_strerror_r.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strfreev.html b/libbson/1.24.1/bson_strfreev.html index c589f40fc288aec9ea2edc224d70548c405d1a0f..43662b4086073e290a20d53aa7a8c6495a4c1339 100644 --- a/libbson/1.24.1/bson_strfreev.html +++ b/libbson/1.24.1/bson_strfreev.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_append.html b/libbson/1.24.1/bson_string_append.html index 27ef5f904b5c4a333d9d215b4b42d19ea668824a..7e52aeb24749130af8415d11867aa67e9d53d0fd 100644 --- a/libbson/1.24.1/bson_string_append.html +++ b/libbson/1.24.1/bson_string_append.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_append_c.html b/libbson/1.24.1/bson_string_append_c.html index af965b7441864206bc07bbd018bf2d264e7c2357..c57a1931db762a7daf0c278ed01f14ca1fc0aff2 100644 --- a/libbson/1.24.1/bson_string_append_c.html +++ b/libbson/1.24.1/bson_string_append_c.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_append_printf.html b/libbson/1.24.1/bson_string_append_printf.html index 0b84d478cdc9f63acd1260283f0545c0edc943c1..97df3d466066747c6b2c8272d6d701d457bd4d57 100644 --- a/libbson/1.24.1/bson_string_append_printf.html +++ b/libbson/1.24.1/bson_string_append_printf.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_append_unichar.html b/libbson/1.24.1/bson_string_append_unichar.html index e330a604f3c4ee52856cbfa724de35116f2055fe..048266953b7295176a17799ce0a673d69eb87448 100644 --- a/libbson/1.24.1/bson_string_append_unichar.html +++ b/libbson/1.24.1/bson_string_append_unichar.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_free.html b/libbson/1.24.1/bson_string_free.html index 01a5c427afe4966bdc4ca54575c10c27ed5ef61c..38a457758e38abfa76e84b5627d3e7623fe1cf14 100644 --- a/libbson/1.24.1/bson_string_free.html +++ b/libbson/1.24.1/bson_string_free.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_new.html b/libbson/1.24.1/bson_string_new.html index c3e1acab22637ca4cdee4b796c1e2504d7a983cf..a29e207cd8771b39a724c2d28252e9ee724e0302 100644 --- a/libbson/1.24.1/bson_string_new.html +++ b/libbson/1.24.1/bson_string_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_t.html b/libbson/1.24.1/bson_string_t.html index 578e5fc15a6fdb0e29868ceec060bbe9489c40a4..32d05d2072bfc760b5f66c7f011c3affe39c0dab 100644 --- a/libbson/1.24.1/bson_string_t.html +++ b/libbson/1.24.1/bson_string_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_string_truncate.html b/libbson/1.24.1/bson_string_truncate.html index 903d180bb6585be00b045053b2f63c071da2ec09..e48dbb869653b368526108ed2375e813ddd09779 100644 --- a/libbson/1.24.1/bson_string_truncate.html +++ b/libbson/1.24.1/bson_string_truncate.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strncpy.html b/libbson/1.24.1/bson_strncpy.html index 047e04563627aa7a505c10169672e874bfb721ce..1cb8644ba27dd948525a17a1d7913e7ce2db38d8 100644 --- a/libbson/1.24.1/bson_strncpy.html +++ b/libbson/1.24.1/bson_strncpy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strndup.html b/libbson/1.24.1/bson_strndup.html index 4b51bfb20283a3e93e9dd31b983411fc5abc36b1..08611bd5696b17c4dbe0885f78c18b21904a4c4c 100644 --- a/libbson/1.24.1/bson_strndup.html +++ b/libbson/1.24.1/bson_strndup.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_strnlen.html b/libbson/1.24.1/bson_strnlen.html index db08fbe527c668ccc9ba367b4d8df56085336105..bcbf7e64f94f9b59481bd689417c8157215c5de6 100644 --- a/libbson/1.24.1/bson_strnlen.html +++ b/libbson/1.24.1/bson_strnlen.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_subtype_t.html b/libbson/1.24.1/bson_subtype_t.html index da77a56a5145116d84112cb1d15b56a7f364842f..608d4e00409559d015edd6ee74d3fb505ce21596 100644 --- a/libbson/1.24.1/bson_subtype_t.html +++ b/libbson/1.24.1/bson_subtype_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_t.html b/libbson/1.24.1/bson_t.html index 13191b184fea93f16ddc0f3c892ee68672d4a008..33ade5143e59eab66a3bef6a2026739ec560a7e0 100644 --- a/libbson/1.24.1/bson_t.html +++ b/libbson/1.24.1/bson_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_type_t.html b/libbson/1.24.1/bson_type_t.html index 1cfdbe953c2b972bf44c34d67100d0151e4360ac..8184bfe2b9287bbc22052eb0dc115ebd8ba9da48 100644 --- a/libbson/1.24.1/bson_type_t.html +++ b/libbson/1.24.1/bson_type_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_uint32_to_string.html b/libbson/1.24.1/bson_uint32_to_string.html index e05f46b1c2c2656387e7e04b8d6cfb2e4700ba8e..99bb2c5981774653dcd0f6f2a756c3f30d698c15 100644 --- a/libbson/1.24.1/bson_uint32_to_string.html +++ b/libbson/1.24.1/bson_uint32_to_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_unichar_t.html b/libbson/1.24.1/bson_unichar_t.html index 19562c597656c183f65646474488bbde2d8366cb..5b17cec7fbd59c3a26b30b3898943fe243f83131 100644 --- a/libbson/1.24.1/bson_unichar_t.html +++ b/libbson/1.24.1/bson_unichar_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_utf8_escape_for_json.html b/libbson/1.24.1/bson_utf8_escape_for_json.html index 279ed6fbeb249a178fdf425c7f6e6fec16ab2c37..b66bc3ed767b13d84986384aaf4518f255389309 100644 --- a/libbson/1.24.1/bson_utf8_escape_for_json.html +++ b/libbson/1.24.1/bson_utf8_escape_for_json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_utf8_from_unichar.html b/libbson/1.24.1/bson_utf8_from_unichar.html index 2bd9f72c5f64e151feaba8c37fdbd073b02ea062..d78ddda8b8df1a23f132d06e35f18252bb5b913b 100644 --- a/libbson/1.24.1/bson_utf8_from_unichar.html +++ b/libbson/1.24.1/bson_utf8_from_unichar.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_utf8_get_char.html b/libbson/1.24.1/bson_utf8_get_char.html index f21af3371452abb7704623889e93defb7a1c4448..6f4f820bbb011b1d69096ac883b9a6487bb7eae9 100644 --- a/libbson/1.24.1/bson_utf8_get_char.html +++ b/libbson/1.24.1/bson_utf8_get_char.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_utf8_next_char.html b/libbson/1.24.1/bson_utf8_next_char.html index b203d6b53bbe5489b85b936e5cabc863b0ca6680..507321118d26dcf041dbcebb836e26138c85a800 100644 --- a/libbson/1.24.1/bson_utf8_next_char.html +++ b/libbson/1.24.1/bson_utf8_next_char.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_utf8_validate.html b/libbson/1.24.1/bson_utf8_validate.html index a58067a2b37889a42c732e09b226213d614d8355..6528bf39151fce90a7b15cac29ab4ad3589292c2 100644 --- a/libbson/1.24.1/bson_utf8_validate.html +++ b/libbson/1.24.1/bson_utf8_validate.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_validate.html b/libbson/1.24.1/bson_validate.html index d959656190529f42e7135152274a669339adc089..61061fee25d6d084c1fc9fe5dba39815d24b5d71 100644 --- a/libbson/1.24.1/bson_validate.html +++ b/libbson/1.24.1/bson_validate.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_validate_with_error.html b/libbson/1.24.1/bson_validate_with_error.html index ce731e28e52def5cf34928d7b97a5365338b69c3..e59389d2c58c7ed3c4358168d54907ca10342d1b 100644 --- a/libbson/1.24.1/bson_validate_with_error.html +++ b/libbson/1.24.1/bson_validate_with_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_value_copy.html b/libbson/1.24.1/bson_value_copy.html index ce3b91b6760b1c0da418fbb5cf13528a2b8631d6..13c2642a56afec3936bfcb72bff5f880c26874f4 100644 --- a/libbson/1.24.1/bson_value_copy.html +++ b/libbson/1.24.1/bson_value_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_value_destroy.html b/libbson/1.24.1/bson_value_destroy.html index eb00c588c2046d2a87596dc4c82fada68ff36468..a48f1ac4d5e5c174518cd101af7c750b5cd962ec 100644 --- a/libbson/1.24.1/bson_value_destroy.html +++ b/libbson/1.24.1/bson_value_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_value_t.html b/libbson/1.24.1/bson_value_t.html index 20477563efa449178345c8075ebe04fc45631e13..29ebba573f5772d2226fdd671044070388b10362 100644 --- a/libbson/1.24.1/bson_value_t.html +++ b/libbson/1.24.1/bson_value_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_visitor_t.html b/libbson/1.24.1/bson_visitor_t.html index 148387e45a124a3ab840f0a69aaeee1ba4898e6b..33809eae63012fd43e0757b99ce3e703b6e38bcf 100644 --- a/libbson/1.24.1/bson_visitor_t.html +++ b/libbson/1.24.1/bson_visitor_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_vsnprintf.html b/libbson/1.24.1/bson_vsnprintf.html index eb2753d731a6ffb753eeaa88d970b1f5b1d785e2..7568ea43859b691e3137ccd545b3496957b6eb97 100644 --- a/libbson/1.24.1/bson_vsnprintf.html +++ b/libbson/1.24.1/bson_vsnprintf.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_writer_begin.html b/libbson/1.24.1/bson_writer_begin.html index d69a0bfe5cda6183e2e40b7a0773f6ffebb40a2f..5364c7643a8a96724c27dcd2fb55de55c6319223 100644 --- a/libbson/1.24.1/bson_writer_begin.html +++ b/libbson/1.24.1/bson_writer_begin.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_writer_destroy.html b/libbson/1.24.1/bson_writer_destroy.html index 911101a61af101b3993180717b4f91d96352eb5b..560be75781abbf7457b15a2b1d680165b18da9db 100644 --- a/libbson/1.24.1/bson_writer_destroy.html +++ b/libbson/1.24.1/bson_writer_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_writer_end.html b/libbson/1.24.1/bson_writer_end.html index fae85a496a1c3aa0887ed2fae0873b2cb1f4bf2f..4636e54a685afc338c0da397a7bdfe3ee5d4157f 100644 --- a/libbson/1.24.1/bson_writer_end.html +++ b/libbson/1.24.1/bson_writer_end.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_writer_get_length.html b/libbson/1.24.1/bson_writer_get_length.html index 190310720c2928acb2bd5d3b8125f7472d2b0bdb..2371696fea703e9d7ef9eec762b5fbb5a660707c 100644 --- a/libbson/1.24.1/bson_writer_get_length.html +++ b/libbson/1.24.1/bson_writer_get_length.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_writer_new.html b/libbson/1.24.1/bson_writer_new.html index 46d2ac7febf1639e617ab9d18d586e7cd38b36ce..c302b21337c3fedcf85ab7faef837bdea6c56baa 100644 --- a/libbson/1.24.1/bson_writer_new.html +++ b/libbson/1.24.1/bson_writer_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_writer_rollback.html b/libbson/1.24.1/bson_writer_rollback.html index c8264614a8e874ca9a069e6bbcc950abd5cef9c7..162ac22c1aa62b70d96f7123943b47a45c944287 100644 --- a/libbson/1.24.1/bson_writer_rollback.html +++ b/libbson/1.24.1/bson_writer_rollback.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_writer_t.html b/libbson/1.24.1/bson_writer_t.html index 86f8f2cb4cd62037cdb1c03dc357f9787a52979a..be5fdd2b9291f10756334ba04bc657186eb6a4fc 100644 --- a/libbson/1.24.1/bson_writer_t.html +++ b/libbson/1.24.1/bson_writer_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/bson_zero_free.html b/libbson/1.24.1/bson_zero_free.html index 76d441ff09797a7db8e09260db06b6341f4dfb2e..5622f65087f328cfb83af6038ad73aeedb8d44f3 100644 --- a/libbson/1.24.1/bson_zero_free.html +++ b/libbson/1.24.1/bson_zero_free.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/character_and_string_routines.html b/libbson/1.24.1/character_and_string_routines.html index 01957c06830e98197f435c551be24acfda00b331..317c585cd504aaf8df0c20cbe8e4f036ab8bd0d3 100644 --- a/libbson/1.24.1/character_and_string_routines.html +++ b/libbson/1.24.1/character_and_string_routines.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/creating.html b/libbson/1.24.1/creating.html index 3667462e50d002fb1afb4db9eaa8b56b01590e59..19cb7533a5b215e0a907a412cc1d3dfbb5193b5a 100644 --- a/libbson/1.24.1/creating.html +++ b/libbson/1.24.1/creating.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/cross-platform-notes.html b/libbson/1.24.1/cross-platform-notes.html index 696c0342628834954b1d5729627c40404d6db81b..9cf23c1e643774c8f5e64934da4d68ae24c22095 100644 --- a/libbson/1.24.1/cross-platform-notes.html +++ b/libbson/1.24.1/cross-platform-notes.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/endianness.html b/libbson/1.24.1/endianness.html index acdc7070d9d5e53289124057e9b4fe6ab0ea8556..9d14832f5e9014966fe630098569c2bf868b653b 100644 --- a/libbson/1.24.1/endianness.html +++ b/libbson/1.24.1/endianness.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/errors.html b/libbson/1.24.1/errors.html index 38b4d822c711613e00dfb5520261fc86bffcf545..8eca5e84c90dc08c4888daab39da7aa4b3671cac 100644 --- a/libbson/1.24.1/errors.html +++ b/libbson/1.24.1/errors.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/full_index.html b/libbson/1.24.1/full_index.html index f8b8b12d29880521c90ab669c703fab4248aa365..8d4d74801f94472cad713946a2d306fbc059558d 100644 --- a/libbson/1.24.1/full_index.html +++ b/libbson/1.24.1/full_index.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.24.1/guides.html b/libbson/1.24.1/guides.html index ba11128290fad5080754aff624f7d613bd914454..3d091fc3ca991c36a3ee8064e9e619ff640f70a4 100644 --- a/libbson/1.24.1/guides.html +++ b/libbson/1.24.1/guides.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/include-and-link.html b/libbson/1.24.1/include-and-link.html index ce05b58ad55365caebaace062f7090824f2c4f68..63ded421962eec3eab67d4cfc05cc1dca9129214 100644 --- a/libbson/1.24.1/include-and-link.html +++ b/libbson/1.24.1/include-and-link.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/index.html b/libbson/1.24.1/index.html index 6a5963105ecd30f09ee75557c37baf649571d1ee..9ff1161efe80426544656fe4c6a6e523b842b1dc 100644 --- a/libbson/1.24.1/index.html +++ b/libbson/1.24.1/index.html @@ -39,6 +39,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/json.html b/libbson/1.24.1/json.html index 837f0de9dbd9377fc4266e489a49a15d286408f8..b05742ebae2b4ff8e37a1d1a383b60924e809d3b 100644 --- a/libbson/1.24.1/json.html +++ b/libbson/1.24.1/json.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/oid.html b/libbson/1.24.1/oid.html index 4caf6c4690b28a3f73ea22a91c9f3367e5b5bcfb..6a3992f2112e1b269a4dd9d6989b8df7a3734f8d 100644 --- a/libbson/1.24.1/oid.html +++ b/libbson/1.24.1/oid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/parsing.html b/libbson/1.24.1/parsing.html index 4ae503066463cbd5eed46f0af933815f4693c688..8d327c593147ccbc373d4d3b94238f8b4d113913 100644 --- a/libbson/1.24.1/parsing.html +++ b/libbson/1.24.1/parsing.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/search.html b/libbson/1.24.1/search.html index a86d82d6b949ec8c5c8296468aacd31dc3b435b2..5f6cefd9e175233e097749fb18dd60ad4033b810 100644 --- a/libbson/1.24.1/search.html +++ b/libbson/1.24.1/search.html @@ -45,6 +45,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/streaming-bson.html b/libbson/1.24.1/streaming-bson.html index 661d4fa7e20031fa164a8317c974a8b90ea93752..8ab19b5aa4329443e012145bcd1867027f9e0e72 100644 --- a/libbson/1.24.1/streaming-bson.html +++ b/libbson/1.24.1/streaming-bson.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/threading.html b/libbson/1.24.1/threading.html index fc0fb1d50b6255b96ebdf2f55a13ca67667a8bbd..1bc4fbf70359cf55f6a1437d31295d197ae0910b 100644 --- a/libbson/1.24.1/threading.html +++ b/libbson/1.24.1/threading.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/tutorial.html b/libbson/1.24.1/tutorial.html index 0a31ea803fe894c54ecb471f29fb0d4782e10c46..f3d0782f2155ab618c3c31b450425168e35a975a 100644 --- a/libbson/1.24.1/tutorial.html +++ b/libbson/1.24.1/tutorial.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/utf8.html b/libbson/1.24.1/utf8.html index cc1b3223439d9df0d73558de6f9a4b2d2d47f529..301be4afbfd93355bf497df839efc78816bf822b 100644 --- a/libbson/1.24.1/utf8.html +++ b/libbson/1.24.1/utf8.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.1/version.html b/libbson/1.24.1/version.html index 7226d9510b7cecb300a4f6dcdec89541a5ff5506..afeeaab70e0c3100bc609d6cfd8df752b7644ae0 100644 --- a/libbson/1.24.1/version.html +++ b/libbson/1.24.1/version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libbson/1.24.2/.nojekyll b/libbson/1.24.2/.nojekyll new file mode 100644 index 0000000000000000000000000000000000000000..19102815663d23f8b75a47e7a01965dcdc96468c --- /dev/null +++ b/libbson/1.24.2/.nojekyll @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/libbson/1.24.2/CMakeLists.txt b/libbson/1.24.2/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..447d8c0657362ef7a10a17e4e5cfc7f650c6c3a4 --- /dev/null +++ b/libbson/1.24.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.24.2/_static/ajax-loader.gif b/libbson/1.24.2/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 Binary files /dev/null and b/libbson/1.24.2/_static/ajax-loader.gif differ diff --git a/libbson/1.24.2/_static/basic.css b/libbson/1.24.2/_static/basic.css new file mode 100644 index 0000000000000000000000000000000000000000..19ced1057aebf39d3dac6f6a5d864491231a3e33 --- /dev/null +++ b/libbson/1.24.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.24.2/_static/comment-bright.png b/libbson/1.24.2/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e Binary files /dev/null and b/libbson/1.24.2/_static/comment-bright.png differ diff --git a/libbson/1.24.2/_static/comment-close.png b/libbson/1.24.2/_static/comment-close.png new file mode 100644 index 0000000000000000000000000000000000000000..4d91bcf57de866a901a89a2a68c0f36af1114841 Binary files /dev/null and b/libbson/1.24.2/_static/comment-close.png differ diff --git a/libbson/1.24.2/_static/comment.png b/libbson/1.24.2/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbc0cbd512bdeefcb1984c99d8e577efb77f006 Binary files /dev/null and b/libbson/1.24.2/_static/comment.png differ diff --git a/libbson/1.24.2/_static/doctools.js b/libbson/1.24.2/_static/doctools.js new file mode 100644 index 0000000000000000000000000000000000000000..d8928926bf24bb081d91a12f7b92e1b2d8b142b6 --- /dev/null +++ b/libbson/1.24.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.24.2/_static/documentation_options.js b/libbson/1.24.2/_static/documentation_options.js new file mode 100644 index 0000000000000000000000000000000000000000..bc12cb35cdbb5228850f6e53832f07a9febac8ed --- /dev/null +++ b/libbson/1.24.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.24.2/_static/down-pressed.png b/libbson/1.24.2/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 Binary files /dev/null and b/libbson/1.24.2/_static/down-pressed.png differ diff --git a/libbson/1.24.2/_static/down.png b/libbson/1.24.2/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 Binary files /dev/null and b/libbson/1.24.2/_static/down.png differ diff --git a/libbson/1.24.2/_static/file.png b/libbson/1.24.2/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 Binary files /dev/null and b/libbson/1.24.2/_static/file.png differ diff --git a/libbson/1.24.2/_static/jquery-3.2.1.js b/libbson/1.24.2/_static/jquery-3.2.1.js new file mode 100644 index 0000000000000000000000000000000000000000..d2d8ca4790e52b0537f3cbb7dcd766099b789583 --- /dev/null +++ b/libbson/1.24.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.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    API Reference

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_aligned_alloc.html b/libbson/1.24.2/bson_aligned_alloc.html new file mode 100644 index 0000000000000000000000000000000000000000..e5fd5b9ed67a4c647e9f127fbd77e56de1e91dbe --- /dev/null +++ b/libbson/1.24.2/bson_aligned_alloc.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_aligned_alloc() — libbson 1.24.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.24.2/bson_aligned_alloc0.html b/libbson/1.24.2/bson_aligned_alloc0.html new file mode 100644 index 0000000000000000000000000000000000000000..7c202780022154154183996cdaa93763fa6ac278 --- /dev/null +++ b/libbson/1.24.2/bson_aligned_alloc0.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_aligned_alloc0() — libbson 1.24.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.24.2/bson_append_array.html b/libbson/1.24.2/bson_append_array.html new file mode 100644 index 0000000000000000000000000000000000000000..ce9fc96143f05b8ebfcd358db9db37e55c059dcf --- /dev/null +++ b/libbson/1.24.2/bson_append_array.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_array() — libbson 1.24.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.24.2/bson_append_array_begin.html b/libbson/1.24.2/bson_append_array_begin.html new file mode 100644 index 0000000000000000000000000000000000000000..46ad9d1517f4e1a087a5449fd8b6dc13d8858470 --- /dev/null +++ b/libbson/1.24.2/bson_append_array_begin.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_append_array_begin() — libbson 1.24.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.24.2/bson_append_array_end.html b/libbson/1.24.2/bson_append_array_end.html new file mode 100644 index 0000000000000000000000000000000000000000..debb29951c899d99b8c360996df02d008eda1af4 --- /dev/null +++ b/libbson/1.24.2/bson_append_array_end.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_append_array_end() — libbson 1.24.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.24.2/bson_append_binary.html b/libbson/1.24.2/bson_append_binary.html new file mode 100644 index 0000000000000000000000000000000000000000..58e1c0a7dd79b7b7fba1c7ba6b21da5464da97a0 --- /dev/null +++ b/libbson/1.24.2/bson_append_binary.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_append_binary() — libbson 1.24.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.24.2/bson_append_bool.html b/libbson/1.24.2/bson_append_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..aeb1f3f49795abc3f392b594bebf1a7e17471984 --- /dev/null +++ b/libbson/1.24.2/bson_append_bool.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_append_bool() — libbson 1.24.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.24.2/bson_append_code.html b/libbson/1.24.2/bson_append_code.html new file mode 100644 index 0000000000000000000000000000000000000000..71467e2f56fe133a1e05152771964b5b0ab08b68 --- /dev/null +++ b/libbson/1.24.2/bson_append_code.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_code() — libbson 1.24.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.24.2/bson_append_code_with_scope.html b/libbson/1.24.2/bson_append_code_with_scope.html new file mode 100644 index 0000000000000000000000000000000000000000..eaf4f1fe5dd765542405fe413c87e9d572be63d5 --- /dev/null +++ b/libbson/1.24.2/bson_append_code_with_scope.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_code_with_scope() — libbson 1.24.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.24.2/bson_append_date_time.html b/libbson/1.24.2/bson_append_date_time.html new file mode 100644 index 0000000000000000000000000000000000000000..94e971a8bb993534e1afbf578895f2776f17726b --- /dev/null +++ b/libbson/1.24.2/bson_append_date_time.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_date_time() — libbson 1.24.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.24.2/bson_append_dbpointer.html b/libbson/1.24.2/bson_append_dbpointer.html new file mode 100644 index 0000000000000000000000000000000000000000..779ceb826f3e3e9c2a2f00f95cb2bcd5e0058ae5 --- /dev/null +++ b/libbson/1.24.2/bson_append_dbpointer.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + bson_append_dbpointer() — libbson 1.24.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.24.2/bson_append_decimal128.html b/libbson/1.24.2/bson_append_decimal128.html new file mode 100644 index 0000000000000000000000000000000000000000..fcd9e9b6b31724c5fa1ff87d324d906a23bae75d --- /dev/null +++ b/libbson/1.24.2/bson_append_decimal128.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_decimal128() — libbson 1.24.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.24.2/bson_append_document.html b/libbson/1.24.2/bson_append_document.html new file mode 100644 index 0000000000000000000000000000000000000000..b59c4d0bda56544e3e1a4e4919e77487796cd1a4 --- /dev/null +++ b/libbson/1.24.2/bson_append_document.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_document() — libbson 1.24.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.24.2/bson_append_document_begin.html b/libbson/1.24.2/bson_append_document_begin.html new file mode 100644 index 0000000000000000000000000000000000000000..8c28369939f94278796af2fc1cf94adb8aeefbd2 --- /dev/null +++ b/libbson/1.24.2/bson_append_document_begin.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_append_document_begin() — libbson 1.24.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.24.2/bson_append_document_end.html b/libbson/1.24.2/bson_append_document_end.html new file mode 100644 index 0000000000000000000000000000000000000000..e868255cff2ae9037a3e28cf8c73da59fcfc9ed8 --- /dev/null +++ b/libbson/1.24.2/bson_append_document_end.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_append_document_end() — libbson 1.24.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.24.2/bson_append_double.html b/libbson/1.24.2/bson_append_double.html new file mode 100644 index 0000000000000000000000000000000000000000..7f4e034221ca47707fe2ae4a64469ad1d5b8e186 --- /dev/null +++ b/libbson/1.24.2/bson_append_double.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_double() — libbson 1.24.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.24.2/bson_append_int32.html b/libbson/1.24.2/bson_append_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..60583f604956274210728c2fa664b05aef679522 --- /dev/null +++ b/libbson/1.24.2/bson_append_int32.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_int32() — libbson 1.24.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.24.2/bson_append_int64.html b/libbson/1.24.2/bson_append_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..29e0b9fe95618df5b2441c4e68a8a383a0d13864 --- /dev/null +++ b/libbson/1.24.2/bson_append_int64.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_int64() — libbson 1.24.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.24.2/bson_append_iter.html b/libbson/1.24.2/bson_append_iter.html new file mode 100644 index 0000000000000000000000000000000000000000..2597fa4ddee62c2e9043f346f2bfc0a8c058fd4d --- /dev/null +++ b/libbson/1.24.2/bson_append_iter.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_append_iter() — libbson 1.24.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.24.2/bson_append_maxkey.html b/libbson/1.24.2/bson_append_maxkey.html new file mode 100644 index 0000000000000000000000000000000000000000..f3dcb3ca9ba489611e80a872af0ffea1f0d39a23 --- /dev/null +++ b/libbson/1.24.2/bson_append_maxkey.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_append_maxkey() — libbson 1.24.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.24.2/bson_append_minkey.html b/libbson/1.24.2/bson_append_minkey.html new file mode 100644 index 0000000000000000000000000000000000000000..7fc04e30306922b88ece3ea345f180d36df9020e --- /dev/null +++ b/libbson/1.24.2/bson_append_minkey.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_append_minkey() — libbson 1.24.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.24.2/bson_append_now_utc.html b/libbson/1.24.2/bson_append_now_utc.html new file mode 100644 index 0000000000000000000000000000000000000000..39652b26fec87cc44aa280d136e73aedbc51b7f5 --- /dev/null +++ b/libbson/1.24.2/bson_append_now_utc.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_append_now_utc() — libbson 1.24.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.24.2/bson_append_null.html b/libbson/1.24.2/bson_append_null.html new file mode 100644 index 0000000000000000000000000000000000000000..c2b5d43caca09d04aec39b63837359ef88f7d0fe --- /dev/null +++ b/libbson/1.24.2/bson_append_null.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_append_null() — libbson 1.24.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.24.2/bson_append_oid.html b/libbson/1.24.2/bson_append_oid.html new file mode 100644 index 0000000000000000000000000000000000000000..d14f323da808d0a8a148af6dc00da2111e7a3a74 --- /dev/null +++ b/libbson/1.24.2/bson_append_oid.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_oid() — libbson 1.24.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.24.2/bson_append_regex.html b/libbson/1.24.2/bson_append_regex.html new file mode 100644 index 0000000000000000000000000000000000000000..ef57b7b8e10bbfe0b4e97e6d38d2ed2d7c4ca452 --- /dev/null +++ b/libbson/1.24.2/bson_append_regex.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + bson_append_regex() — libbson 1.24.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.24.2/bson_append_regex_w_len.html b/libbson/1.24.2/bson_append_regex_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..6abd6288eea50819a856ccb543c8f29971379649 --- /dev/null +++ b/libbson/1.24.2/bson_append_regex_w_len.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + bson_append_regex_w_len() — libbson 1.24.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.24.2/bson_append_symbol.html b/libbson/1.24.2/bson_append_symbol.html new file mode 100644 index 0000000000000000000000000000000000000000..a6c9b608ce55f787feb959ae0b573122135c8bae --- /dev/null +++ b/libbson/1.24.2/bson_append_symbol.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_append_symbol() — libbson 1.24.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.24.2/bson_append_time_t.html b/libbson/1.24.2/bson_append_time_t.html new file mode 100644 index 0000000000000000000000000000000000000000..2fdf746186fd0c7748ed6ce9d0e1f422c3b95540 --- /dev/null +++ b/libbson/1.24.2/bson_append_time_t.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_time_t() — libbson 1.24.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.24.2/bson_append_timestamp.html b/libbson/1.24.2/bson_append_timestamp.html new file mode 100644 index 0000000000000000000000000000000000000000..1664eec8ca0f49e1272bc5bb6c1c972c9d9c0112 --- /dev/null +++ b/libbson/1.24.2/bson_append_timestamp.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_append_timestamp() — libbson 1.24.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.24.2/bson_append_timeval.html b/libbson/1.24.2/bson_append_timeval.html new file mode 100644 index 0000000000000000000000000000000000000000..74c75a179e0eac20fcfe63a0b60c18aa17d15086 --- /dev/null +++ b/libbson/1.24.2/bson_append_timeval.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_timeval() — libbson 1.24.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.24.2/bson_append_undefined.html b/libbson/1.24.2/bson_append_undefined.html new file mode 100644 index 0000000000000000000000000000000000000000..6cf32181c6b5dcec299b7a85c8261ea0278cf4b7 --- /dev/null +++ b/libbson/1.24.2/bson_append_undefined.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_append_undefined() — libbson 1.24.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.24.2/bson_append_utf8.html b/libbson/1.24.2/bson_append_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..44908cde1969bfc0789e796f3cd20959149ede02 --- /dev/null +++ b/libbson/1.24.2/bson_append_utf8.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_append_utf8() — libbson 1.24.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.24.2/bson_append_value.html b/libbson/1.24.2/bson_append_value.html new file mode 100644 index 0000000000000000000000000000000000000000..d472566fd0b7e00f5df13863cd88bcbf0abc95ca --- /dev/null +++ b/libbson/1.24.2/bson_append_value.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_append_value() — libbson 1.24.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.24.2/bson_array_as_canonical_extended_json.html b/libbson/1.24.2/bson_array_as_canonical_extended_json.html new file mode 100644 index 0000000000000000000000000000000000000000..6ae73fdefa2678804178c0bea32343bc3d3d8207 --- /dev/null +++ b/libbson/1.24.2/bson_array_as_canonical_extended_json.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + bson_array_as_canonical_extended_json() — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_array_as_canonical_extended_json()

    +
    +

    Synopsis

    +
    char *
    +bson_array_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_array_as_canonical_extended_json() encodes bson as a UTF-8 string in the canonical MongoDB Extended 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_INT32 (&bson, "0", 1);
    +   BSON_APPEND_UTF8 (&bson, "1", "bar");
    +
    +   str = bson_array_as_canonical_extended_json (&bson, NULL);
    +   /* Prints
    +    * [ { "$numberInt" : 1 }, "bar" ]
    +    */
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   bson_destroy (&bson);
    +}
    +
    +
    +
    +

    See also

    +
    +
    :symbol: bson_array_as_canonical_extended_json()
    +
    + +
    +
    :symbol: bson_array_as_relaxed_extended_json()
    +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_array_as_json.html b/libbson/1.24.2/bson_array_as_json.html new file mode 100644 index 0000000000000000000000000000000000000000..e8e88f3ca355da27932c834d6c63bc33dc9fedfe --- /dev/null +++ b/libbson/1.24.2/bson_array_as_json.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + bson_array_as_json() — libbson 1.24.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. This function is +superseded by bson_array_as_canonical_extended_json() and +bson_array_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 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);
    +}
    +
    +
    +
    +

    See also

    +
    +
    :symbol: bson_array_as_canonical_extended_json()
    +
    + +
    +
    :symbol: bson_array_as_relaxed_extended_json()
    +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_array_as_relaxed_extended_json.html b/libbson/1.24.2/bson_array_as_relaxed_extended_json.html new file mode 100644 index 0000000000000000000000000000000000000000..a3e0059397b7ad4b50a27b18e6600a85c6b4616d --- /dev/null +++ b/libbson/1.24.2/bson_array_as_relaxed_extended_json.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + bson_array_as_relaxed_extended_json() — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_array_as_relaxed_extended_json()

    +
    +

    Synopsis

    +
    char *
    +bson_array_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, 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_DOUBLE (&bson, "0", 3.14);
    +   BSON_APPEND_UTF8 (&bson, "1", "bar");
    +
    +   str = bson_array_as_relaxed_extended_json (&bson, NULL);
    +   /* Prints
    +    * [ 3.14, "bar" ]
    +    */
    +   printf ("%s\n", str);
    +   bson_free (str);
    +
    +   bson_destroy (&bson);
    +}
    +
    +
    +
    +

    See also

    +
    +
    :symbol: bson_array_as_canonical_extended_json()
    +
    + +
    +
    :symbol: bson_array_as_relaxed_extended_json()
    +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_as_canonical_extended_json.html b/libbson/1.24.2/bson_as_canonical_extended_json.html new file mode 100644 index 0000000000000000000000000000000000000000..20d9513cee1df5392d701b23141c21233eec4e71 --- /dev/null +++ b/libbson/1.24.2/bson_as_canonical_extended_json.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + bson_as_canonical_extended_json() — libbson 1.24.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);
    +
    +
    +
    +

    See also

    +
    +
    :symbol: bson_array_as_canonical_extended_json()
    +
    + +
    +
    :symbol: bson_array_as_relaxed_extended_json()
    +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_as_json.html b/libbson/1.24.2/bson_as_json.html new file mode 100644 index 0000000000000000000000000000000000000000..6e647593f7e10b6506fe078e960b41db00c05c52 --- /dev/null +++ b/libbson/1.24.2/bson_as_json.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + bson_as_json() — libbson 1.24.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);
    +}
    +
    +
    +
    +

    See also

    +
    +
    :symbol: bson_array_as_canonical_extended_json()
    +
    + +
    +
    :symbol: bson_array_as_relaxed_extended_json()
    +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_as_json_with_opts.html b/libbson/1.24.2/bson_as_json_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..76cab5fa8053deae5484f2b90e4ac6d57b6fd2c2 --- /dev/null +++ b/libbson/1.24.2/bson_as_json_with_opts.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + bson_as_json_with_opts() — libbson 1.24.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);
    +
    +
    +
    +

    See also

    +
    +
    :symbol: bson_array_as_canonical_extended_json()
    +
    + +
    +
    :symbol: bson_array_as_relaxed_extended_json()
    +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_as_relaxed_extended_json.html b/libbson/1.24.2/bson_as_relaxed_extended_json.html new file mode 100644 index 0000000000000000000000000000000000000000..1eb99573a4327ca1eb41ec4171b2d801add0e3a6 --- /dev/null +++ b/libbson/1.24.2/bson_as_relaxed_extended_json.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + bson_as_relaxed_extended_json() — libbson 1.24.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);
    +
    +
    +
    +

    See also

    +
    +
    :symbol: bson_array_as_canonical_extended_json()
    +
    + +
    +
    :symbol: bson_array_as_relaxed_extended_json()
    +
    + + + + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_ascii_strtoll.html b/libbson/1.24.2/bson_ascii_strtoll.html new file mode 100644 index 0000000000000000000000000000000000000000..a823f04f1c51b73c2b9cc7ccf217b3401f67408a --- /dev/null +++ b/libbson/1.24.2/bson_ascii_strtoll.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_ascii_strtoll() — libbson 1.24.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.24.2/bson_check_version.html b/libbson/1.24.2/bson_check_version.html new file mode 100644 index 0000000000000000000000000000000000000000..def8d3327f8767c74467543717c9db80994fe5fd --- /dev/null +++ b/libbson/1.24.2/bson_check_version.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_check_version() — libbson 1.24.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.24.2/bson_compare.html b/libbson/1.24.2/bson_compare.html new file mode 100644 index 0000000000000000000000000000000000000000..05bfc8ab8fee5fc41b51236d848eb23dbb96c67a --- /dev/null +++ b/libbson/1.24.2/bson_compare.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_compare() — libbson 1.24.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.24.2/bson_concat.html b/libbson/1.24.2/bson_concat.html new file mode 100644 index 0000000000000000000000000000000000000000..3acfc9b26be009468972fa07ef9c13e151cfb427 --- /dev/null +++ b/libbson/1.24.2/bson_concat.html @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + bson_concat() — libbson 1.24.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.24.2/bson_context_destroy.html b/libbson/1.24.2/bson_context_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..4040d82c279019a39cd41141744158b758cc21ca --- /dev/null +++ b/libbson/1.24.2/bson_context_destroy.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_context_destroy() — libbson 1.24.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.24.2/bson_context_get_default.html b/libbson/1.24.2/bson_context_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..74c26078cf5791df396c878a89d6bd5d4854f501 --- /dev/null +++ b/libbson/1.24.2/bson_context_get_default.html @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + bson_context_get_default() — libbson 1.24.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.24.2/bson_context_new.html b/libbson/1.24.2/bson_context_new.html new file mode 100644 index 0000000000000000000000000000000000000000..a7c797101c6eaf6c2c145d238c6f7b0bc4ac451c --- /dev/null +++ b/libbson/1.24.2/bson_context_new.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_context_new() — libbson 1.24.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.24.2/bson_context_t.html b/libbson/1.24.2/bson_context_t.html new file mode 100644 index 0000000000000000000000000000000000000000..4d2e2bda80554ef12693cf664fdfc314a83f720a --- /dev/null +++ b/libbson/1.24.2/bson_context_t.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + bson_context_t — libbson 1.24.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.

    +
    + +
    +

    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.24.2/bson_copy.html b/libbson/1.24.2/bson_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..0dc899a257d913cd4a59eed0273063c0ccf3ce66 --- /dev/null +++ b/libbson/1.24.2/bson_copy.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_copy() — libbson 1.24.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.24.2/bson_copy_to.html b/libbson/1.24.2/bson_copy_to.html new file mode 100644 index 0000000000000000000000000000000000000000..bf77561e3febcd1367dac930e76b843d1e70611d --- /dev/null +++ b/libbson/1.24.2/bson_copy_to.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + bson_copy_to() — libbson 1.24.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.24.2/bson_copy_to_excluding.html b/libbson/1.24.2/bson_copy_to_excluding.html new file mode 100644 index 0000000000000000000000000000000000000000..c6fb64b825ca4274f95b3aa80d84fa7d89572558 --- /dev/null +++ b/libbson/1.24.2/bson_copy_to_excluding.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_copy_to_excluding() — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_copy_to_excluding()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.1.0: This function is deprecated and should not be used in new code.

    +

    Please use bson_copy_to_excluding_noinit() in new code.

    +
    +
    +
    +

    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.

    +
    +

    Warning

    +

    bson_init() is called on dst.

    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_copy_to_excluding_noinit.html b/libbson/1.24.2/bson_copy_to_excluding_noinit.html new file mode 100644 index 0000000000000000000000000000000000000000..592b48b23d456173ee24c3629ff61ff165497c80 --- /dev/null +++ b/libbson/1.24.2/bson_copy_to_excluding_noinit.html @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + bson_copy_to_excluding_noinit() — libbson 1.24.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.24.2/bson_copy_to_excluding_noinit_va.html b/libbson/1.24.2/bson_copy_to_excluding_noinit_va.html new file mode 100644 index 0000000000000000000000000000000000000000..00e1c9d50c2700a732c4618853be8fe22b6f0bc9 --- /dev/null +++ b/libbson/1.24.2/bson_copy_to_excluding_noinit_va.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_copy_to_excluding_noinit_va() — libbson 1.24.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.24.2/bson_count_keys.html b/libbson/1.24.2/bson_count_keys.html new file mode 100644 index 0000000000000000000000000000000000000000..5eeb3533cccee521a801d8a1661904b32f8543d8 --- /dev/null +++ b/libbson/1.24.2/bson_count_keys.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_count_keys() — libbson 1.24.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.24.2/bson_decimal128_from_string.html b/libbson/1.24.2/bson_decimal128_from_string.html new file mode 100644 index 0000000000000000000000000000000000000000..1de2345bf3b62c9a77b1fd5fe57476eae84bad4e --- /dev/null +++ b/libbson/1.24.2/bson_decimal128_from_string.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + bson_decimal128_from_string() — libbson 1.24.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.24.2/bson_decimal128_from_string_w_len.html b/libbson/1.24.2/bson_decimal128_from_string_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..82e69cb3c8f521acc98c294cec6c08fb38fb3f5a --- /dev/null +++ b/libbson/1.24.2/bson_decimal128_from_string_w_len.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_decimal128_from_string_w_len() — libbson 1.24.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.24.2/bson_decimal128_t.html b/libbson/1.24.2/bson_decimal128_t.html new file mode 100644 index 0000000000000000000000000000000000000000..99a5c20459942384cf922ebf3c38684c3a72b26f --- /dev/null +++ b/libbson/1.24.2/bson_decimal128_t.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + bson_decimal128_t — libbson 1.24.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. The type bson_decimal128_t is an aggregate that contains two +uint64_ts, named high and low. The declaration and layout order +between them depends on the endian order of the target platform: low will +always correspond to the low-order bits of the Decimal128 object, while high +corresponds to the high-order bits. The bson_decimal128_t always has a size +of sixteen (16), and can be bit-cast to/from a _Decimal128.

    +
    + +
    +

    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.24.2/bson_decimal128_to_string.html b/libbson/1.24.2/bson_decimal128_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..f2536dbc6231f2a568644ccb64e43c0c273739b2 --- /dev/null +++ b/libbson/1.24.2/bson_decimal128_to_string.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_decimal128_to_string() — libbson 1.24.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.24.2/bson_destroy.html b/libbson/1.24.2/bson_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..9b37c5c252d2ef2487636d15ae36c14872d816e8 --- /dev/null +++ b/libbson/1.24.2/bson_destroy.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_destroy() — libbson 1.24.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.24.2/bson_destroy_with_steal.html b/libbson/1.24.2/bson_destroy_with_steal.html new file mode 100644 index 0000000000000000000000000000000000000000..f4c10b8d74cebfa4851e61c462048deda0019654 --- /dev/null +++ b/libbson/1.24.2/bson_destroy_with_steal.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_destroy_with_steal() — libbson 1.24.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.24.2/bson_equal.html b/libbson/1.24.2/bson_equal.html new file mode 100644 index 0000000000000000000000000000000000000000..2cc38fab1f36686bf6d576304683f8a4e9ff707d --- /dev/null +++ b/libbson/1.24.2/bson_equal.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_equal() — libbson 1.24.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.24.2/bson_error_t.html b/libbson/1.24.2/bson_error_t.html new file mode 100644 index 0000000000000000000000000000000000000000..537bf06abcb3b84399de63dcc8907e92389a42b4 --- /dev/null +++ b/libbson/1.24.2/bson_error_t.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + bson_error_t — libbson 1.24.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.24.2/bson_free.html b/libbson/1.24.2/bson_free.html new file mode 100644 index 0000000000000000000000000000000000000000..2f321d048a839621a69de636652a3c3f3bb3c0db --- /dev/null +++ b/libbson/1.24.2/bson_free.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_free() — libbson 1.24.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.24.2/bson_get_data.html b/libbson/1.24.2/bson_get_data.html new file mode 100644 index 0000000000000000000000000000000000000000..012dec89717c4ee2a56df0c535a02f741a737513 --- /dev/null +++ b/libbson/1.24.2/bson_get_data.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_get_data() — libbson 1.24.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.24.2/bson_get_major_version.html b/libbson/1.24.2/bson_get_major_version.html new file mode 100644 index 0000000000000000000000000000000000000000..f7d2d9195d38ff54785a121c5248603bb221967e --- /dev/null +++ b/libbson/1.24.2/bson_get_major_version.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + bson_get_major_version() — libbson 1.24.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.24.2/bson_get_micro_version.html b/libbson/1.24.2/bson_get_micro_version.html new file mode 100644 index 0000000000000000000000000000000000000000..70488a6061dbcae222ecb317114a09da465da3c3 --- /dev/null +++ b/libbson/1.24.2/bson_get_micro_version.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + bson_get_micro_version() — libbson 1.24.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.24.2/bson_get_minor_version.html b/libbson/1.24.2/bson_get_minor_version.html new file mode 100644 index 0000000000000000000000000000000000000000..bad0b678ab9f1df15151ff76309d7bb73dfb7f1b --- /dev/null +++ b/libbson/1.24.2/bson_get_minor_version.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + bson_get_minor_version() — libbson 1.24.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.24.2/bson_get_monotonic_time.html b/libbson/1.24.2/bson_get_monotonic_time.html new file mode 100644 index 0000000000000000000000000000000000000000..7f3a2c1758e28d28cc2f8232e4b9b02743a3c8a7 --- /dev/null +++ b/libbson/1.24.2/bson_get_monotonic_time.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + System Clock — libbson 1.24.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.24.2/bson_get_version.html b/libbson/1.24.2/bson_get_version.html new file mode 100644 index 0000000000000000000000000000000000000000..7aea4c854eb85336bbc73aff79354ef8ec777493 --- /dev/null +++ b/libbson/1.24.2/bson_get_version.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + bson_get_version() — libbson 1.24.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.24.2/bson_has_field.html b/libbson/1.24.2/bson_has_field.html new file mode 100644 index 0000000000000000000000000000000000000000..4238da6ac99e5e130f8b6b7e5246dcde8e391605 --- /dev/null +++ b/libbson/1.24.2/bson_has_field.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_has_field() — libbson 1.24.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.24.2/bson_init.html b/libbson/1.24.2/bson_init.html new file mode 100644 index 0000000000000000000000000000000000000000..74ac01f98adc9d958f28329b7ef7ea986606d5dd --- /dev/null +++ b/libbson/1.24.2/bson_init.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + bson_init() — libbson 1.24.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.24.2/bson_init_from_json.html b/libbson/1.24.2/bson_init_from_json.html new file mode 100644 index 0000000000000000000000000000000000000000..7988a2ce4ce4772cc5b41c84d14a3705c74a5bda --- /dev/null +++ b/libbson/1.24.2/bson_init_from_json.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + bson_init_from_json() — libbson 1.24.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.24.2/bson_init_static.html b/libbson/1.24.2/bson_init_static.html new file mode 100644 index 0000000000000000000000000000000000000000..f4740bec0e295127ebe7eb1e1bcc8f8a163e6dcd --- /dev/null +++ b/libbson/1.24.2/bson_init_static.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + bson_init_static() — libbson 1.24.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.24.2/bson_isspace.html b/libbson/1.24.2/bson_isspace.html new file mode 100644 index 0000000000000000000000000000000000000000..89be53a87a31e178f05db5ba554b5d0275ee6da5 --- /dev/null +++ b/libbson/1.24.2/bson_isspace.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_isspace() — libbson 1.24.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.24.2/bson_iter_array.html b/libbson/1.24.2/bson_iter_array.html new file mode 100644 index 0000000000000000000000000000000000000000..c0f91b00410a6e77195660ed9edd88a15e0ad0d1 --- /dev/null +++ b/libbson/1.24.2/bson_iter_array.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_array() — libbson 1.24.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.24.2/bson_iter_as_bool.html b/libbson/1.24.2/bson_iter_as_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..99518f29ff4473550050617a5c4c60b2678406c6 --- /dev/null +++ b/libbson/1.24.2/bson_iter_as_bool.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + bson_iter_as_bool() — libbson 1.24.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.24.2/bson_iter_as_double.html b/libbson/1.24.2/bson_iter_as_double.html new file mode 100644 index 0000000000000000000000000000000000000000..aaea0af123c260ed29b3474010398a355194e9c4 --- /dev/null +++ b/libbson/1.24.2/bson_iter_as_double.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + bson_iter_as_double() — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_iter_as_double()

    +
    +

    Synopsis

    +
    double
    +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.24.2/bson_iter_as_int64.html b/libbson/1.24.2/bson_iter_as_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..178ec78334812bdbb780bd685455765f21b1ee2c --- /dev/null +++ b/libbson/1.24.2/bson_iter_as_int64.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_as_int64() — libbson 1.24.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.24.2/bson_iter_binary.html b/libbson/1.24.2/bson_iter_binary.html new file mode 100644 index 0000000000000000000000000000000000000000..864d68950c9cd8ef85ea559226928e011c5b0966 --- /dev/null +++ b/libbson/1.24.2/bson_iter_binary.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_binary() — libbson 1.24.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.24.2/bson_iter_bool.html b/libbson/1.24.2/bson_iter_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..72159b972fc617fc846a5858552db9ba725db0f2 --- /dev/null +++ b/libbson/1.24.2/bson_iter_bool.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_bool() — libbson 1.24.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.24.2/bson_iter_code.html b/libbson/1.24.2/bson_iter_code.html new file mode 100644 index 0000000000000000000000000000000000000000..e942ce647d461fede2f626ca1314b8a786a2b9c4 --- /dev/null +++ b/libbson/1.24.2/bson_iter_code.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_code() — libbson 1.24.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.24.2/bson_iter_codewscope.html b/libbson/1.24.2/bson_iter_codewscope.html new file mode 100644 index 0000000000000000000000000000000000000000..8ef7f456dff88d732d39c680c2208d275cb69b54 --- /dev/null +++ b/libbson/1.24.2/bson_iter_codewscope.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_iter_codewscope() — libbson 1.24.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.24.2/bson_iter_date_time.html b/libbson/1.24.2/bson_iter_date_time.html new file mode 100644 index 0000000000000000000000000000000000000000..40d440832811a3aa07139d967180c164d76bfb9b --- /dev/null +++ b/libbson/1.24.2/bson_iter_date_time.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_date_time() — libbson 1.24.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.24.2/bson_iter_dbpointer.html b/libbson/1.24.2/bson_iter_dbpointer.html new file mode 100644 index 0000000000000000000000000000000000000000..5473c392d1d89e0ef0458560f195dfebac3fbd11 --- /dev/null +++ b/libbson/1.24.2/bson_iter_dbpointer.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_dbpointer() — libbson 1.24.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.24.2/bson_iter_decimal128.html b/libbson/1.24.2/bson_iter_decimal128.html new file mode 100644 index 0000000000000000000000000000000000000000..eedaedc0b50341370be541e20ee26b3a05f63f1b --- /dev/null +++ b/libbson/1.24.2/bson_iter_decimal128.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_decimal128() — libbson 1.24.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.24.2/bson_iter_document.html b/libbson/1.24.2/bson_iter_document.html new file mode 100644 index 0000000000000000000000000000000000000000..5d6c2c734fec6242af0566a84747af69888176e0 --- /dev/null +++ b/libbson/1.24.2/bson_iter_document.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_document() — libbson 1.24.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.24.2/bson_iter_double.html b/libbson/1.24.2/bson_iter_double.html new file mode 100644 index 0000000000000000000000000000000000000000..853695b327fa545dc427dc31e0285c3c6fa10f1b --- /dev/null +++ b/libbson/1.24.2/bson_iter_double.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_double() — libbson 1.24.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.24.2/bson_iter_dup_utf8.html b/libbson/1.24.2/bson_iter_dup_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..44af251bfc5e7888b0e63430d8d4439bd14c02d7 --- /dev/null +++ b/libbson/1.24.2/bson_iter_dup_utf8.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_iter_dup_utf8() — libbson 1.24.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.24.2/bson_iter_find.html b/libbson/1.24.2/bson_iter_find.html new file mode 100644 index 0000000000000000000000000000000000000000..4c8460e6bb7bd594deb71c157474f58cc3fdfc06 --- /dev/null +++ b/libbson/1.24.2/bson_iter_find.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_find() — libbson 1.24.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 first 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.24.2/bson_iter_find_case.html b/libbson/1.24.2/bson_iter_find_case.html new file mode 100644 index 0000000000000000000000000000000000000000..015f5c5e32ea112dff5dc38035a20c71de0f38ea --- /dev/null +++ b/libbson/1.24.2/bson_iter_find_case.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_find_case() — libbson 1.24.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 to the first 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.24.2/bson_iter_find_descendant.html b/libbson/1.24.2/bson_iter_find_descendant.html new file mode 100644 index 0000000000000000000000000000000000000000..5ffd15902805756e84b7aa0c97b8ac0502d1316d --- /dev/null +++ b/libbson/1.24.2/bson_iter_find_descendant.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_iter_find_descendant() — libbson 1.24.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.24.2/bson_iter_find_w_len.html b/libbson/1.24.2/bson_iter_find_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..455cdf8dde58aacd8fd464283a794bb2bf99b79d --- /dev/null +++ b/libbson/1.24.2/bson_iter_find_w_len.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_find_w_len() — libbson 1.24.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 first 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.24.2/bson_iter_init.html b/libbson/1.24.2/bson_iter_init.html new file mode 100644 index 0000000000000000000000000000000000000000..ccfe3c0d8e523ee9b91df2fca7bd995f0108e423 --- /dev/null +++ b/libbson/1.24.2/bson_iter_init.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + bson_iter_init() — libbson 1.24.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.24.2/bson_iter_init_find.html b/libbson/1.24.2/bson_iter_init_find.html new file mode 100644 index 0000000000000000000000000000000000000000..d25edddad8a82b899a9d4d77de498ffde99677e1 --- /dev/null +++ b/libbson/1.24.2/bson_iter_init_find.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + bson_iter_init_find() — libbson 1.24.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.24.2/bson_iter_init_find_case.html b/libbson/1.24.2/bson_iter_init_find_case.html new file mode 100644 index 0000000000000000000000000000000000000000..95fcd1cf38ac8ed64f2e0bd64c8063ec75b6d4ff --- /dev/null +++ b/libbson/1.24.2/bson_iter_init_find_case.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + bson_iter_init_find_case() — libbson 1.24.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.24.2/bson_iter_init_find_w_len.html b/libbson/1.24.2/bson_iter_init_find_w_len.html new file mode 100644 index 0000000000000000000000000000000000000000..d0282272a5760c09a7b06124c948dd7661507131 --- /dev/null +++ b/libbson/1.24.2/bson_iter_init_find_w_len.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + bson_iter_init_find_w_len() — libbson 1.24.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.24.2/bson_iter_init_from_data.html b/libbson/1.24.2/bson_iter_init_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..66b10a7032519fa2478956d44a3f09b60a051e3e --- /dev/null +++ b/libbson/1.24.2/bson_iter_init_from_data.html @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + bson_iter_init_from_data() — libbson 1.24.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.24.2/bson_iter_init_from_data_at_offset.html b/libbson/1.24.2/bson_iter_init_from_data_at_offset.html new file mode 100644 index 0000000000000000000000000000000000000000..ae5d3c42dbfbfc53a702098b9abf9fce27de5d26 --- /dev/null +++ b/libbson/1.24.2/bson_iter_init_from_data_at_offset.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_iter_init_from_data_at_offset() — libbson 1.24.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.24.2/bson_iter_int32.html b/libbson/1.24.2/bson_iter_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..9e1ca752ae0d6e0c03bd9eccc8bf9dc103beb662 --- /dev/null +++ b/libbson/1.24.2/bson_iter_int32.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_int32() — libbson 1.24.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.24.2/bson_iter_int64.html b/libbson/1.24.2/bson_iter_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..621be70070569e6625761c95a2eaacf8c60e82df --- /dev/null +++ b/libbson/1.24.2/bson_iter_int64.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_int64() — libbson 1.24.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.24.2/bson_iter_key.html b/libbson/1.24.2/bson_iter_key.html new file mode 100644 index 0000000000000000000000000000000000000000..3f657c9c32590f3330de1ac2281718bc2744c1bd --- /dev/null +++ b/libbson/1.24.2/bson_iter_key.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_key() — libbson 1.24.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.24.2/bson_iter_key_len.html b/libbson/1.24.2/bson_iter_key_len.html new file mode 100644 index 0000000000000000000000000000000000000000..a7a6c4444274aec5e388d15729ef09ef6e00667b --- /dev/null +++ b/libbson/1.24.2/bson_iter_key_len.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_key_len() — libbson 1.24.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.24.2/bson_iter_next.html b/libbson/1.24.2/bson_iter_next.html new file mode 100644 index 0000000000000000000000000000000000000000..ac4e9df7eda2b3215d42df6201af9e5e4dbb27d7 --- /dev/null +++ b/libbson/1.24.2/bson_iter_next.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_iter_next() — libbson 1.24.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.24.2/bson_iter_offset.html b/libbson/1.24.2/bson_iter_offset.html new file mode 100644 index 0000000000000000000000000000000000000000..3d55b51def3b11cdda62ff81a3229b7950b971f5 --- /dev/null +++ b/libbson/1.24.2/bson_iter_offset.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_offset() — libbson 1.24.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.24.2/bson_iter_oid.html b/libbson/1.24.2/bson_iter_oid.html new file mode 100644 index 0000000000000000000000000000000000000000..9a5538147ca949b0a7889d44b99ad8e2d31be11a --- /dev/null +++ b/libbson/1.24.2/bson_iter_oid.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_oid() — libbson 1.24.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.24.2/bson_iter_overwrite_bool.html b/libbson/1.24.2/bson_iter_overwrite_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..53ff616545603fdb68bb51052c20371deb3dcfca --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_bool.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_iter_overwrite_bool() — libbson 1.24.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.24.2/bson_iter_overwrite_date_time.html b/libbson/1.24.2/bson_iter_overwrite_date_time.html new file mode 100644 index 0000000000000000000000000000000000000000..d4d1128570a37b2401b51fa46e2906762587a6c5 --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_date_time.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_iter_overwrite_date_time() — libbson 1.24.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.24.2/bson_iter_overwrite_decimal128.html b/libbson/1.24.2/bson_iter_overwrite_decimal128.html new file mode 100644 index 0000000000000000000000000000000000000000..e7fbc8b336ef73bed60bb626dab8e57cb2dfa1c1 --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_decimal128.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_iter_overwrite_decimal128() — libbson 1.24.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.24.2/bson_iter_overwrite_double.html b/libbson/1.24.2/bson_iter_overwrite_double.html new file mode 100644 index 0000000000000000000000000000000000000000..9227cf467c2c133a08f6eedf745a566fec2468d2 --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_double.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_iter_overwrite_double() — libbson 1.24.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.24.2/bson_iter_overwrite_int32.html b/libbson/1.24.2/bson_iter_overwrite_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..00871df6b4c4d04d1b5ec57bd5f6fdbd4da12a53 --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_int32.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_iter_overwrite_int32() — libbson 1.24.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.24.2/bson_iter_overwrite_int64.html b/libbson/1.24.2/bson_iter_overwrite_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..1822b7994dbab68ee99d1052452083135a8a2375 --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_int64.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_iter_overwrite_int64() — libbson 1.24.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.24.2/bson_iter_overwrite_oid.html b/libbson/1.24.2/bson_iter_overwrite_oid.html new file mode 100644 index 0000000000000000000000000000000000000000..eb414c43396f6a51d4c4cb4686ad66bac2b8117c --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_oid.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + bson_iter_overwrite_oid() — libbson 1.24.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.24.2/bson_iter_overwrite_timestamp.html b/libbson/1.24.2/bson_iter_overwrite_timestamp.html new file mode 100644 index 0000000000000000000000000000000000000000..4d2528cb28442a7d823453bf293e0aa819ee7d22 --- /dev/null +++ b/libbson/1.24.2/bson_iter_overwrite_timestamp.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_overwrite_timestamp() — libbson 1.24.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.24.2/bson_iter_recurse.html b/libbson/1.24.2/bson_iter_recurse.html new file mode 100644 index 0000000000000000000000000000000000000000..e5962d3587e4ce2d405889fa4f0ec660492a3cf6 --- /dev/null +++ b/libbson/1.24.2/bson_iter_recurse.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_recurse() — libbson 1.24.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.24.2/bson_iter_regex.html b/libbson/1.24.2/bson_iter_regex.html new file mode 100644 index 0000000000000000000000000000000000000000..37afdf7262dd98fd21d4da37de93ae9d370d6957 --- /dev/null +++ b/libbson/1.24.2/bson_iter_regex.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_iter_regex() — libbson 1.24.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.24.2/bson_iter_symbol.html b/libbson/1.24.2/bson_iter_symbol.html new file mode 100644 index 0000000000000000000000000000000000000000..836df5b6c3d6cbe750e7801bb5cf98f1586ccc85 --- /dev/null +++ b/libbson/1.24.2/bson_iter_symbol.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_iter_symbol() — libbson 1.24.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.24.2/bson_iter_t.html b/libbson/1.24.2/bson_iter_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f154e122597da5598557d1b5948ad6300eb4ac2d --- /dev/null +++ b/libbson/1.24.2/bson_iter_t.html @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + bson_iter_t — libbson 1.24.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.

    +
    + +
    +

    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.24.2/bson_iter_time_t.html b/libbson/1.24.2/bson_iter_time_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1654dc619db489e659f62dc8485ffd916edfa391 --- /dev/null +++ b/libbson/1.24.2/bson_iter_time_t.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_iter_time_t() — libbson 1.24.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.24.2/bson_iter_timestamp.html b/libbson/1.24.2/bson_iter_timestamp.html new file mode 100644 index 0000000000000000000000000000000000000000..9fcad5f1c5a97205766f544f5aa494ca53e35d23 --- /dev/null +++ b/libbson/1.24.2/bson_iter_timestamp.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_timestamp() — libbson 1.24.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.24.2/bson_iter_timeval.html b/libbson/1.24.2/bson_iter_timeval.html new file mode 100644 index 0000000000000000000000000000000000000000..3818523423cd6246f28667ba64588c7361de1e7c --- /dev/null +++ b/libbson/1.24.2/bson_iter_timeval.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_iter_timeval() — libbson 1.24.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.24.2/bson_iter_type.html b/libbson/1.24.2/bson_iter_type.html new file mode 100644 index 0000000000000000000000000000000000000000..44365c500fb01dc360f609b867bc3eee9b7bf15b --- /dev/null +++ b/libbson/1.24.2/bson_iter_type.html @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + bson_iter_type() — libbson 1.24.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.24.2/bson_iter_utf8.html b/libbson/1.24.2/bson_iter_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..3bb0660bbb442b4a616957d080964620e75d9e0a --- /dev/null +++ b/libbson/1.24.2/bson_iter_utf8.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_iter_utf8() — libbson 1.24.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.24.2/bson_iter_value.html b/libbson/1.24.2/bson_iter_value.html new file mode 100644 index 0000000000000000000000000000000000000000..8043e62b3ef5342f818cb49c223840fa5fc1f265 --- /dev/null +++ b/libbson/1.24.2/bson_iter_value.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_iter_value() — libbson 1.24.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.24.2/bson_iter_visit_all.html b/libbson/1.24.2/bson_iter_visit_all.html new file mode 100644 index 0000000000000000000000000000000000000000..2b75b755d60c2c4e93b281d1e0755dc500b8fd32 --- /dev/null +++ b/libbson/1.24.2/bson_iter_visit_all.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_iter_visit_all() — libbson 1.24.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.24.2/bson_json_data_reader_ingest.html b/libbson/1.24.2/bson_json_data_reader_ingest.html new file mode 100644 index 0000000000000000000000000000000000000000..4562bcb508020762f1d2c9dc8c469785259f48e1 --- /dev/null +++ b/libbson/1.24.2/bson_json_data_reader_ingest.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_json_data_reader_ingest() — libbson 1.24.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.24.2/bson_json_data_reader_new.html b/libbson/1.24.2/bson_json_data_reader_new.html new file mode 100644 index 0000000000000000000000000000000000000000..cc379749fa8c2703422bdd4a6d312d31b5bcc19b --- /dev/null +++ b/libbson/1.24.2/bson_json_data_reader_new.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_json_data_reader_new() — libbson 1.24.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.24.2/bson_json_mode_t.html b/libbson/1.24.2/bson_json_mode_t.html new file mode 100644 index 0000000000000000000000000000000000000000..69561ebaa9a59c44d9f4ea2b07d3c55e01a2972a --- /dev/null +++ b/libbson/1.24.2/bson_json_mode_t.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_json_mode_t — libbson 1.24.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.24.2/bson_json_opts_destroy.html b/libbson/1.24.2/bson_json_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..80ae8acb0b99e54b5d183fa86498038ff45e3ebe --- /dev/null +++ b/libbson/1.24.2/bson_json_opts_destroy.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_json_opts_destroy() — libbson 1.24.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.24.2/bson_json_opts_new.html b/libbson/1.24.2/bson_json_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..597dbddf47109957b0e6898270d984c52876edcb --- /dev/null +++ b/libbson/1.24.2/bson_json_opts_new.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_json_opts_new() — libbson 1.24.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.24.2/bson_json_opts_set_outermost_array.html b/libbson/1.24.2/bson_json_opts_set_outermost_array.html new file mode 100644 index 0000000000000000000000000000000000000000..5f72e02dea323ead3396e2c6fad49cf91450a6e4 --- /dev/null +++ b/libbson/1.24.2/bson_json_opts_set_outermost_array.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + bson_json_opts_set_outermost_array() — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_json_opts_set_outermost_array()

    +
    +

    Synopsis

    +
    void
    +bson_json_opts_set_outermost_array (bson_json_opts_t *opts, bool is_outermost_array);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • opts: A bson_json_opts_t.
    • +
    • is_outermost_array: A value determining what we want to set the is_outermost_array variable to.
    • +
    +
    +
    +

    Description

    +

    The bson_json_opts_set_outermost_array() function shall set the is_outermost_array variable on the bson_json_opts_t parameter using the boolean provided.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_json_opts_t.html b/libbson/1.24.2/bson_json_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..ceeb4cf71b41e4ec544285b7be735939d0b4d67b --- /dev/null +++ b/libbson/1.24.2/bson_json_opts_t.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + bson_json_opts_t — libbson 1.24.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

    + +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_json_reader_destroy.html b/libbson/1.24.2/bson_json_reader_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..43bded1d8623c76b0e60d976eb421c396292e5b5 --- /dev/null +++ b/libbson/1.24.2/bson_json_reader_destroy.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_json_reader_destroy() — libbson 1.24.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.24.2/bson_json_reader_new.html b/libbson/1.24.2/bson_json_reader_new.html new file mode 100644 index 0000000000000000000000000000000000000000..25d73c31d8ba318f361b86c0a2d790382f30b026 --- /dev/null +++ b/libbson/1.24.2/bson_json_reader_new.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_json_reader_new() — libbson 1.24.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.24.2/bson_json_reader_new_from_fd.html b/libbson/1.24.2/bson_json_reader_new_from_fd.html new file mode 100644 index 0000000000000000000000000000000000000000..e4959a5f339afdbd5a8fa79eee435478628456d8 --- /dev/null +++ b/libbson/1.24.2/bson_json_reader_new_from_fd.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_json_reader_new_from_fd() — libbson 1.24.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.24.2/bson_json_reader_new_from_file.html b/libbson/1.24.2/bson_json_reader_new_from_file.html new file mode 100644 index 0000000000000000000000000000000000000000..f86f015ac5a996c7cbcdb6195fc46e2141745bb4 --- /dev/null +++ b/libbson/1.24.2/bson_json_reader_new_from_file.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_json_reader_new_from_file() — libbson 1.24.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.24.2/bson_json_reader_read.html b/libbson/1.24.2/bson_json_reader_read.html new file mode 100644 index 0000000000000000000000000000000000000000..564f3c226e0e295f6c56a0430229e05ab300f28f --- /dev/null +++ b/libbson/1.24.2/bson_json_reader_read.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + bson_json_reader_read() — libbson 1.24.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.24.2/bson_json_reader_t.html b/libbson/1.24.2/bson_json_reader_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0c98d58803b8ea139c0dfd16395c52e33c40cd8a --- /dev/null +++ b/libbson/1.24.2/bson_json_reader_t.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + bson_json_reader_t — libbson 1.24.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.

    +
    +
    + +
    +

    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.24.2/bson_malloc.html b/libbson/1.24.2/bson_malloc.html new file mode 100644 index 0000000000000000000000000000000000000000..a3ecf0bb8a3e3013a0066ec7bfdfe4e4ce0ab460 --- /dev/null +++ b/libbson/1.24.2/bson_malloc.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_malloc() — libbson 1.24.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.24.2/bson_malloc0.html b/libbson/1.24.2/bson_malloc0.html new file mode 100644 index 0000000000000000000000000000000000000000..000f2b8e5be937425618770507f789c2816d1723 --- /dev/null +++ b/libbson/1.24.2/bson_malloc0.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_malloc0() — libbson 1.24.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.24.2/bson_mem_restore_vtable.html b/libbson/1.24.2/bson_mem_restore_vtable.html new file mode 100644 index 0000000000000000000000000000000000000000..c089579800cb1baa9ba681023717cd82f5963205 --- /dev/null +++ b/libbson/1.24.2/bson_mem_restore_vtable.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + bson_mem_restore_vtable() — libbson 1.24.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.24.2/bson_mem_set_vtable.html b/libbson/1.24.2/bson_mem_set_vtable.html new file mode 100644 index 0000000000000000000000000000000000000000..4db9dfe0712ccb5a60b128c9490b552120da482d --- /dev/null +++ b/libbson/1.24.2/bson_mem_set_vtable.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + bson_mem_set_vtable() — libbson 1.24.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.24.2/bson_memory.html b/libbson/1.24.2/bson_memory.html new file mode 100644 index 0000000000000000000000000000000000000000..fddb48573657054b8b4ff29831286c218c533270 --- /dev/null +++ b/libbson/1.24.2/bson_memory.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + Memory Management — libbson 1.24.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().

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_new.html b/libbson/1.24.2/bson_new.html new file mode 100644 index 0000000000000000000000000000000000000000..be6ca54ee6364100668f010cbb7ac03c498d6a32 --- /dev/null +++ b/libbson/1.24.2/bson_new.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + bson_new() — libbson 1.24.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.24.2/bson_new_from_buffer.html b/libbson/1.24.2/bson_new_from_buffer.html new file mode 100644 index 0000000000000000000000000000000000000000..79cff3d47b0d8ff6f8bb771e9b8b8d51112a694d --- /dev/null +++ b/libbson/1.24.2/bson_new_from_buffer.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + bson_new_from_buffer() — libbson 1.24.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.24.2/bson_new_from_data.html b/libbson/1.24.2/bson_new_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..1da3afc67fbe45340a00e129fa41cdf17e172ca2 --- /dev/null +++ b/libbson/1.24.2/bson_new_from_data.html @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + bson_new_from_data() — libbson 1.24.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.24.2/bson_new_from_json.html b/libbson/1.24.2/bson_new_from_json.html new file mode 100644 index 0000000000000000000000000000000000000000..f06bec1c027ae5d26cf56c841ec0482513e7e5de --- /dev/null +++ b/libbson/1.24.2/bson_new_from_json.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + bson_new_from_json() — libbson 1.24.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.24.2/bson_oid_compare.html b/libbson/1.24.2/bson_oid_compare.html new file mode 100644 index 0000000000000000000000000000000000000000..65b6bcd454a3b91e80c2e2e37091debc3a391a5d --- /dev/null +++ b/libbson/1.24.2/bson_oid_compare.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_oid_compare() — libbson 1.24.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.24.2/bson_oid_copy.html b/libbson/1.24.2/bson_oid_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..fc555d757560952bfee6349c3aa2306de62e357c --- /dev/null +++ b/libbson/1.24.2/bson_oid_copy.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_oid_copy() — libbson 1.24.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.24.2/bson_oid_equal.html b/libbson/1.24.2/bson_oid_equal.html new file mode 100644 index 0000000000000000000000000000000000000000..1cd1b3372e265664f6360ef34a897eb8ed135328 --- /dev/null +++ b/libbson/1.24.2/bson_oid_equal.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_oid_equal() — libbson 1.24.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.24.2/bson_oid_get_time_t.html b/libbson/1.24.2/bson_oid_get_time_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a89e7b04e6eec24c534d1468341376e05cc22c75 --- /dev/null +++ b/libbson/1.24.2/bson_oid_get_time_t.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_get_time_t() — libbson 1.24.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.24.2/bson_oid_hash.html b/libbson/1.24.2/bson_oid_hash.html new file mode 100644 index 0000000000000000000000000000000000000000..8e0e52d5399d43304ac66c4d9abe4819165a130b --- /dev/null +++ b/libbson/1.24.2/bson_oid_hash.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_oid_hash() — libbson 1.24.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.24.2/bson_oid_init.html b/libbson/1.24.2/bson_oid_init.html new file mode 100644 index 0000000000000000000000000000000000000000..d7476280bef15a2c94409bd6fc3d8db3878b2f58 --- /dev/null +++ b/libbson/1.24.2/bson_oid_init.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_oid_init() — libbson 1.24.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.24.2/bson_oid_init_from_data.html b/libbson/1.24.2/bson_oid_init_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..c03b16b020db0603c81bdc6626e5398eb733159d --- /dev/null +++ b/libbson/1.24.2/bson_oid_init_from_data.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_oid_init_from_data() — libbson 1.24.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.24.2/bson_oid_init_from_string.html b/libbson/1.24.2/bson_oid_init_from_string.html new file mode 100644 index 0000000000000000000000000000000000000000..33b06e520d3cb8cae3dd27987c7ef5137c727700 --- /dev/null +++ b/libbson/1.24.2/bson_oid_init_from_string.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_oid_init_from_string() — libbson 1.24.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.24.2/bson_oid_init_sequence.html b/libbson/1.24.2/bson_oid_init_sequence.html new file mode 100644 index 0000000000000000000000000000000000000000..5aadd159caa22b50b7981d4d1175b67c185665ff --- /dev/null +++ b/libbson/1.24.2/bson_oid_init_sequence.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_oid_init_sequence() — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    bson_oid_init_sequence()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.14.0: This function is deprecated and should not be used in new code.

    +

    Please use bson_oid_init() in new code.

    +
    +
    +
    +

    Synopsis

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

    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.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/bson_oid_is_valid.html b/libbson/1.24.2/bson_oid_is_valid.html new file mode 100644 index 0000000000000000000000000000000000000000..0687d72a5edf3bb482fa00c33d637fa77780bf5c --- /dev/null +++ b/libbson/1.24.2/bson_oid_is_valid.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_oid_is_valid() — libbson 1.24.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.24.2/bson_oid_t.html b/libbson/1.24.2/bson_oid_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c4b6189aedc8e1d65fbda8a5cd1aad0f7251976c --- /dev/null +++ b/libbson/1.24.2/bson_oid_t.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + bson_oid_t — libbson 1.24.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().

    +
    + +
    +

    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.24.2/bson_oid_to_string.html b/libbson/1.24.2/bson_oid_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..0aa351e8da810ba2d1c2dcb6707b0dcac4281d88 --- /dev/null +++ b/libbson/1.24.2/bson_oid_to_string.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_oid_to_string() — libbson 1.24.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.24.2/bson_reader_destroy.html b/libbson/1.24.2/bson_reader_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..7021f1b48bb07372a01e449402e917fe27e441dc --- /dev/null +++ b/libbson/1.24.2/bson_reader_destroy.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_reader_destroy() — libbson 1.24.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.24.2/bson_reader_destroy_func_t.html b/libbson/1.24.2/bson_reader_destroy_func_t.html new file mode 100644 index 0000000000000000000000000000000000000000..cfabcbfae0712777f292384818cfae974374324c --- /dev/null +++ b/libbson/1.24.2/bson_reader_destroy_func_t.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_reader_destroy_func_t — libbson 1.24.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.24.2/bson_reader_new_from_data.html b/libbson/1.24.2/bson_reader_new_from_data.html new file mode 100644 index 0000000000000000000000000000000000000000..bb0ec483afe2309c10a911933480828f6a46fc42 --- /dev/null +++ b/libbson/1.24.2/bson_reader_new_from_data.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_reader_new_from_data() — libbson 1.24.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.24.2/bson_reader_new_from_fd.html b/libbson/1.24.2/bson_reader_new_from_fd.html new file mode 100644 index 0000000000000000000000000000000000000000..7d666c34b8371b8b06c3a51d807ac2647e8a527b --- /dev/null +++ b/libbson/1.24.2/bson_reader_new_from_fd.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_reader_new_from_fd() — libbson 1.24.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.24.2/bson_reader_new_from_file.html b/libbson/1.24.2/bson_reader_new_from_file.html new file mode 100644 index 0000000000000000000000000000000000000000..6cfabcdc7c7cf8d7e2f2e6bbbd50bf16cd9727c2 --- /dev/null +++ b/libbson/1.24.2/bson_reader_new_from_file.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + bson_reader_new_from_file() — libbson 1.24.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.24.2/bson_reader_new_from_handle.html b/libbson/1.24.2/bson_reader_new_from_handle.html new file mode 100644 index 0000000000000000000000000000000000000000..2e703ff133478b43eccdee201306500ec8ef4a5d --- /dev/null +++ b/libbson/1.24.2/bson_reader_new_from_handle.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_reader_new_from_handle() — libbson 1.24.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.24.2/bson_reader_read.html b/libbson/1.24.2/bson_reader_read.html new file mode 100644 index 0000000000000000000000000000000000000000..67d7e69f02ea59bfb6423ea98d16441e2bb7493f --- /dev/null +++ b/libbson/1.24.2/bson_reader_read.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + bson_reader_read() — libbson 1.24.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.24.2/bson_reader_read_func_t.html b/libbson/1.24.2/bson_reader_read_func_t.html new file mode 100644 index 0000000000000000000000000000000000000000..54ca67256ef6baef795ac8e972e33420ecab4cd6 --- /dev/null +++ b/libbson/1.24.2/bson_reader_read_func_t.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_reader_read_func_t — libbson 1.24.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.24.2/bson_reader_reset.html b/libbson/1.24.2/bson_reader_reset.html new file mode 100644 index 0000000000000000000000000000000000000000..cd0aed9f935e336336f7d398d08c0f6cb8bd1c02 --- /dev/null +++ b/libbson/1.24.2/bson_reader_reset.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_reader_reset() — libbson 1.24.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.24.2/bson_reader_set_destroy_func.html b/libbson/1.24.2/bson_reader_set_destroy_func.html new file mode 100644 index 0000000000000000000000000000000000000000..c84eb8dc16fecade8ea7461f72c2c784548c7242 --- /dev/null +++ b/libbson/1.24.2/bson_reader_set_destroy_func.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + bson_reader_set_destroy_func() — libbson 1.24.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.24.2/bson_reader_set_read_func.html b/libbson/1.24.2/bson_reader_set_read_func.html new file mode 100644 index 0000000000000000000000000000000000000000..f49864f3455fc9415997ba25c4d792732ae3982f --- /dev/null +++ b/libbson/1.24.2/bson_reader_set_read_func.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_reader_set_read_func() — libbson 1.24.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.24.2/bson_reader_t.html b/libbson/1.24.2/bson_reader_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a8851fe997a1310295fe8d61f25fd9432773f0d7 --- /dev/null +++ b/libbson/1.24.2/bson_reader_t.html @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + bson_reader_t — libbson 1.24.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.

    +
    + +
    +

    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.24.2/bson_reader_tell.html b/libbson/1.24.2/bson_reader_tell.html new file mode 100644 index 0000000000000000000000000000000000000000..f06adfaea94ef0c1f22175b933c65d32f2cb1b25 --- /dev/null +++ b/libbson/1.24.2/bson_reader_tell.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_reader_tell() — libbson 1.24.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.24.2/bson_realloc.html b/libbson/1.24.2/bson_realloc.html new file mode 100644 index 0000000000000000000000000000000000000000..752d5ed825d2894d1507c07eb9b67fdb7b5d0909 --- /dev/null +++ b/libbson/1.24.2/bson_realloc.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + bson_realloc() — libbson 1.24.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.24.2/bson_realloc_ctx.html b/libbson/1.24.2/bson_realloc_ctx.html new file mode 100644 index 0000000000000000000000000000000000000000..253f5470d4d383321b9bb67e1284ba208890eaf6 --- /dev/null +++ b/libbson/1.24.2/bson_realloc_ctx.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + bson_realloc_ctx() — libbson 1.24.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.24.2/bson_realloc_func.html b/libbson/1.24.2/bson_realloc_func.html new file mode 100644 index 0000000000000000000000000000000000000000..9df11af4f80b04af26ce0f583f8663453d450b10 --- /dev/null +++ b/libbson/1.24.2/bson_realloc_func.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_realloc_func — libbson 1.24.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.24.2/bson_reinit.html b/libbson/1.24.2/bson_reinit.html new file mode 100644 index 0000000000000000000000000000000000000000..c426f1a7c047ba21efc9114d5b1f43232e3b4f8e --- /dev/null +++ b/libbson/1.24.2/bson_reinit.html @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + bson_reinit() — libbson 1.24.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.24.2/bson_reserve_buffer.html b/libbson/1.24.2/bson_reserve_buffer.html new file mode 100644 index 0000000000000000000000000000000000000000..4dae5dcf3a1eb9357990a026921262d7a10f3b93 --- /dev/null +++ b/libbson/1.24.2/bson_reserve_buffer.html @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + bson_reserve_buffer() — libbson 1.24.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.24.2/bson_set_error.html b/libbson/1.24.2/bson_set_error.html new file mode 100644 index 0000000000000000000000000000000000000000..c10d5bc8e22a569d451ee474f3fed601b9586c9d --- /dev/null +++ b/libbson/1.24.2/bson_set_error.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_set_error() — libbson 1.24.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.24.2/bson_sized_new.html b/libbson/1.24.2/bson_sized_new.html new file mode 100644 index 0000000000000000000000000000000000000000..c3bfca272d474c2933872a55477061380dda864f --- /dev/null +++ b/libbson/1.24.2/bson_sized_new.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + bson_sized_new() — libbson 1.24.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.24.2/bson_snprintf.html b/libbson/1.24.2/bson_snprintf.html new file mode 100644 index 0000000000000000000000000000000000000000..3b3e0b14bd662b48f9fe114bee04e343ae126211 --- /dev/null +++ b/libbson/1.24.2/bson_snprintf.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_snprintf() — libbson 1.24.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.24.2/bson_steal.html b/libbson/1.24.2/bson_steal.html new file mode 100644 index 0000000000000000000000000000000000000000..845546ad447b18c0bfb0485022dbbb595a812cbd --- /dev/null +++ b/libbson/1.24.2/bson_steal.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + bson_steal() — libbson 1.24.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.24.2/bson_strcasecmp.html b/libbson/1.24.2/bson_strcasecmp.html new file mode 100644 index 0000000000000000000000000000000000000000..d3f431542ce8a647826c8190de0d33dedc071cec --- /dev/null +++ b/libbson/1.24.2/bson_strcasecmp.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + bson_strcasecmp() — libbson 1.24.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.24.2/bson_strdup.html b/libbson/1.24.2/bson_strdup.html new file mode 100644 index 0000000000000000000000000000000000000000..6653f653efc9b728b6c423837a894b823c3bde6e --- /dev/null +++ b/libbson/1.24.2/bson_strdup.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_strdup() — libbson 1.24.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.24.2/bson_strdup_printf.html b/libbson/1.24.2/bson_strdup_printf.html new file mode 100644 index 0000000000000000000000000000000000000000..af642d2ba2147d88d6a492585761e04877dff843 --- /dev/null +++ b/libbson/1.24.2/bson_strdup_printf.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_strdup_printf() — libbson 1.24.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.24.2/bson_strdupv_printf.html b/libbson/1.24.2/bson_strdupv_printf.html new file mode 100644 index 0000000000000000000000000000000000000000..4779e1a1141a7e47d9f3fef3d3fbc98d84a72f6c --- /dev/null +++ b/libbson/1.24.2/bson_strdupv_printf.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_strdupv_printf() — libbson 1.24.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.24.2/bson_strerror_r.html b/libbson/1.24.2/bson_strerror_r.html new file mode 100644 index 0000000000000000000000000000000000000000..7f0ef2e44e661c4db330641f26b375e904463991 --- /dev/null +++ b/libbson/1.24.2/bson_strerror_r.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_strerror_r() — libbson 1.24.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.24.2/bson_strfreev.html b/libbson/1.24.2/bson_strfreev.html new file mode 100644 index 0000000000000000000000000000000000000000..2450c4b095831d1473937613f4925a3c24fb9fc0 --- /dev/null +++ b/libbson/1.24.2/bson_strfreev.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_strfreev() — libbson 1.24.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.24.2/bson_string_append.html b/libbson/1.24.2/bson_string_append.html new file mode 100644 index 0000000000000000000000000000000000000000..99d9030430ba1f0e3086a85c3a95077b0eae09e5 --- /dev/null +++ b/libbson/1.24.2/bson_string_append.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_string_append() — libbson 1.24.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.24.2/bson_string_append_c.html b/libbson/1.24.2/bson_string_append_c.html new file mode 100644 index 0000000000000000000000000000000000000000..de4df73c5d9a270ea02351df13f9eaada92bc519 --- /dev/null +++ b/libbson/1.24.2/bson_string_append_c.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_string_append_c() — libbson 1.24.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.24.2/bson_string_append_printf.html b/libbson/1.24.2/bson_string_append_printf.html new file mode 100644 index 0000000000000000000000000000000000000000..ce37f447a5f14b3f5d763c9f9d752957fe95c84a --- /dev/null +++ b/libbson/1.24.2/bson_string_append_printf.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + bson_string_append_printf() — libbson 1.24.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.24.2/bson_string_append_unichar.html b/libbson/1.24.2/bson_string_append_unichar.html new file mode 100644 index 0000000000000000000000000000000000000000..78e4775adc830399dff7b4cc9e8ed398aadcca29 --- /dev/null +++ b/libbson/1.24.2/bson_string_append_unichar.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_string_append_unichar() — libbson 1.24.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.24.2/bson_string_free.html b/libbson/1.24.2/bson_string_free.html new file mode 100644 index 0000000000000000000000000000000000000000..5a6b75bfaa93d1c96fa4c420712c9ea1da57273f --- /dev/null +++ b/libbson/1.24.2/bson_string_free.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_string_free() — libbson 1.24.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.24.2/bson_string_new.html b/libbson/1.24.2/bson_string_new.html new file mode 100644 index 0000000000000000000000000000000000000000..ee38452686668a3a82a1f61edd0ed2267afe52c2 --- /dev/null +++ b/libbson/1.24.2/bson_string_new.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_string_new() — libbson 1.24.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.24.2/bson_string_t.html b/libbson/1.24.2/bson_string_t.html new file mode 100644 index 0000000000000000000000000000000000000000..d12791f0579a7bebdca7c9d2c46d7b28280ce0a2 --- /dev/null +++ b/libbson/1.24.2/bson_string_t.html @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + bson_string_t — libbson 1.24.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.

    +
    + +
    +

    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.24.2/bson_string_truncate.html b/libbson/1.24.2/bson_string_truncate.html new file mode 100644 index 0000000000000000000000000000000000000000..70b9a4fac79e3352bc819d0b76a88640a974cffa --- /dev/null +++ b/libbson/1.24.2/bson_string_truncate.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + bson_string_truncate() — libbson 1.24.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.24.2/bson_strncpy.html b/libbson/1.24.2/bson_strncpy.html new file mode 100644 index 0000000000000000000000000000000000000000..834056f55917595c53d419f0808d684d8abba786 --- /dev/null +++ b/libbson/1.24.2/bson_strncpy.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_strncpy() — libbson 1.24.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.24.2/bson_strndup.html b/libbson/1.24.2/bson_strndup.html new file mode 100644 index 0000000000000000000000000000000000000000..36763cdacf613088b69f2ceccbbed993bcb94163 --- /dev/null +++ b/libbson/1.24.2/bson_strndup.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_strndup() — libbson 1.24.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.24.2/bson_strnlen.html b/libbson/1.24.2/bson_strnlen.html new file mode 100644 index 0000000000000000000000000000000000000000..c53388dc72da95349b6324f802d4391a2b871731 --- /dev/null +++ b/libbson/1.24.2/bson_strnlen.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_strnlen() — libbson 1.24.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.24.2/bson_subtype_t.html b/libbson/1.24.2/bson_subtype_t.html new file mode 100644 index 0000000000000000000000000000000000000000..26fdb8efde87f74ca881c1d44670843dbc9f96b2 --- /dev/null +++ b/libbson/1.24.2/bson_subtype_t.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + bson_subtype_t — libbson 1.24.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.24.2/bson_t.html b/libbson/1.24.2/bson_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5f3390c6910042538df4e44b71e7173e5316bc71 --- /dev/null +++ b/libbson/1.24.2/bson_t.html @@ -0,0 +1,361 @@ + + + + + + + + + + + + + + bson_t — libbson 1.24.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.

    +
    +
    +

    Duplicate Keys

    +

    The BSON specification allows BSON documents to have +duplicate keys. Documents are stored as an ordered list of key-value pairs. A +bson_t may contain duplicate keys. Applications should refrain from +generating such documents, because MongoDB server behavior is undefined when a +BSON document contains duplicate keys.

    +
    +
    +

    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.24.2/bson_type_t.html b/libbson/1.24.2/bson_type_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f179fda58599413d0d834b38e7549af5219e7266 --- /dev/null +++ b/libbson/1.24.2/bson_type_t.html @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + bson_type_t — libbson 1.24.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.24.2/bson_uint32_to_string.html b/libbson/1.24.2/bson_uint32_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..ce51b560f577b11cd49d7fef8ebd24970efc42ea --- /dev/null +++ b/libbson/1.24.2/bson_uint32_to_string.html @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + bson_uint32_to_string() — libbson 1.24.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.24.2/bson_unichar_t.html b/libbson/1.24.2/bson_unichar_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f1562037ca4dc8e9eda20a6da0a814e7ec4bb258 --- /dev/null +++ b/libbson/1.24.2/bson_unichar_t.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_unichar_t — libbson 1.24.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.24.2/bson_utf8_escape_for_json.html b/libbson/1.24.2/bson_utf8_escape_for_json.html new file mode 100644 index 0000000000000000000000000000000000000000..c1c19b93e0e524490a84f4f00a126c0d3aceac5f --- /dev/null +++ b/libbson/1.24.2/bson_utf8_escape_for_json.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + bson_utf8_escape_for_json() — libbson 1.24.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.24.2/bson_utf8_from_unichar.html b/libbson/1.24.2/bson_utf8_from_unichar.html new file mode 100644 index 0000000000000000000000000000000000000000..e8faeeed15654e23dfdbab5f68752de25562dce4 --- /dev/null +++ b/libbson/1.24.2/bson_utf8_from_unichar.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + bson_utf8_from_unichar() — libbson 1.24.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.24.2/bson_utf8_get_char.html b/libbson/1.24.2/bson_utf8_get_char.html new file mode 100644 index 0000000000000000000000000000000000000000..ca6f0656665768b725ee369d05253e9cb4cd4b94 --- /dev/null +++ b/libbson/1.24.2/bson_utf8_get_char.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + bson_utf8_get_char() — libbson 1.24.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.24.2/bson_utf8_next_char.html b/libbson/1.24.2/bson_utf8_next_char.html new file mode 100644 index 0000000000000000000000000000000000000000..6c8bd3edf7b3b5e6a26933cfcf9405d5b0b575b6 --- /dev/null +++ b/libbson/1.24.2/bson_utf8_next_char.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_utf8_next_char() — libbson 1.24.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.24.2/bson_utf8_validate.html b/libbson/1.24.2/bson_utf8_validate.html new file mode 100644 index 0000000000000000000000000000000000000000..8006238e284881b4a053b001900f2d52461d347a --- /dev/null +++ b/libbson/1.24.2/bson_utf8_validate.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + bson_utf8_validate() — libbson 1.24.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.24.2/bson_validate.html b/libbson/1.24.2/bson_validate.html new file mode 100644 index 0000000000000000000000000000000000000000..6f73794906e4fd9f8eed0ede6e52f967266ca7f3 --- /dev/null +++ b/libbson/1.24.2/bson_validate.html @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + bson_validate() — libbson 1.24.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.24.2/bson_validate_with_error.html b/libbson/1.24.2/bson_validate_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..9a9b97578160e8c70f2723ed544b624e08d448e7 --- /dev/null +++ b/libbson/1.24.2/bson_validate_with_error.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + bson_validate_with_error() — libbson 1.24.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.24.2/bson_value_copy.html b/libbson/1.24.2/bson_value_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..1841944c3ba75413542785491c10465d40de1fb5 --- /dev/null +++ b/libbson/1.24.2/bson_value_copy.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_value_copy() — libbson 1.24.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.24.2/bson_value_destroy.html b/libbson/1.24.2/bson_value_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..d2f8ee10f8f7ef5d90b3319a6455d32fc75f46b7 --- /dev/null +++ b/libbson/1.24.2/bson_value_destroy.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_value_destroy() — libbson 1.24.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.24.2/bson_value_t.html b/libbson/1.24.2/bson_value_t.html new file mode 100644 index 0000000000000000000000000000000000000000..93d8b07125801803832db601fe0f999e87375d75 --- /dev/null +++ b/libbson/1.24.2/bson_value_t.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + bson_value_t — libbson 1.24.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;
    +      bson_decimal128_t v_decimal128;
    +   } value;
    +} bson_value_t;
    +
    +
    +
    +
    +

    Description

    +

    The bson_value_t structure is a boxed type for encapsulating a runtime determined type.

    +
    + +
    +

    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.24.2/bson_visitor_t.html b/libbson/1.24.2/bson_visitor_t.html new file mode 100644 index 0000000000000000000000000000000000000000..3624208c6e4c36a53f90b2d4963837fec2541ebb --- /dev/null +++ b/libbson/1.24.2/bson_visitor_t.html @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + bson_visitor_t — libbson 1.24.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 <inttypes.h>
    +#include <stdio.h>
    +#include <stdlib.h>
    +
    +typedef struct {
    +   uint32_t depth;
    +   uint32_t 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, uint32_t 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 %" PRIu32 "\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;
    +   bson_error_t error;
    +
    +   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");
    +   }
    +
    +   const char *const filename = argv[1];
    +   const int 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;
    +   }
    +
    +   BSON_ASSERT (bson_in_range_signed (uint32_t, max_depth));
    +
    +   while ((bson = bson_reader_read (bson_reader, &reached_eof))) {
    +      check_depth (bson, (uint32_t) 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.24.2/bson_vsnprintf.html b/libbson/1.24.2/bson_vsnprintf.html new file mode 100644 index 0000000000000000000000000000000000000000..254ad51e5fa51ab5ce7890bbac832c3c963f23b4 --- /dev/null +++ b/libbson/1.24.2/bson_vsnprintf.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + bson_vsnprintf() — libbson 1.24.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.24.2/bson_writer_begin.html b/libbson/1.24.2/bson_writer_begin.html new file mode 100644 index 0000000000000000000000000000000000000000..236aba35630c33aaa0a65c67fbea8a62d8e384d5 --- /dev/null +++ b/libbson/1.24.2/bson_writer_begin.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_writer_begin() — libbson 1.24.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.24.2/bson_writer_destroy.html b/libbson/1.24.2/bson_writer_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..b36e866590e54d0f5ce8488b2b6b99033427b037 --- /dev/null +++ b/libbson/1.24.2/bson_writer_destroy.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_writer_destroy() — libbson 1.24.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.24.2/bson_writer_end.html b/libbson/1.24.2/bson_writer_end.html new file mode 100644 index 0000000000000000000000000000000000000000..90b84940db260ff36b6ce7be463067e13839d181 --- /dev/null +++ b/libbson/1.24.2/bson_writer_end.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_writer_end() — libbson 1.24.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.24.2/bson_writer_get_length.html b/libbson/1.24.2/bson_writer_get_length.html new file mode 100644 index 0000000000000000000000000000000000000000..ebb8fff9ad04ee5123f60933ff45b92a5ea7d084 --- /dev/null +++ b/libbson/1.24.2/bson_writer_get_length.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + bson_writer_get_length() — libbson 1.24.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.24.2/bson_writer_new.html b/libbson/1.24.2/bson_writer_new.html new file mode 100644 index 0000000000000000000000000000000000000000..92cfbd9f8ed40eb9484b4925343d12896cc9f197 --- /dev/null +++ b/libbson/1.24.2/bson_writer_new.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + bson_writer_new() — libbson 1.24.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.24.2/bson_writer_rollback.html b/libbson/1.24.2/bson_writer_rollback.html new file mode 100644 index 0000000000000000000000000000000000000000..5f8c31950bb1add8819325171fa1a1d34d0b9bef --- /dev/null +++ b/libbson/1.24.2/bson_writer_rollback.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + bson_writer_rollback() — libbson 1.24.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.24.2/bson_writer_t.html b/libbson/1.24.2/bson_writer_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a026de0fd56213020cef523c2245c802d6f8b0f7 --- /dev/null +++ b/libbson/1.24.2/bson_writer_t.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + bson_writer_t — libbson 1.24.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.

    +
    + +
    +

    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.24.2/bson_zero_free.html b/libbson/1.24.2/bson_zero_free.html new file mode 100644 index 0000000000000000000000000000000000000000..180147b9052e8941fd840d11184ca95225ce347c --- /dev/null +++ b/libbson/1.24.2/bson_zero_free.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + bson_zero_free() — libbson 1.24.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.24.2/character_and_string_routines.html b/libbson/1.24.2/character_and_string_routines.html new file mode 100644 index 0000000000000000000000000000000000000000..b98d34f0cebabdd1fc7d4e89e4af91502292e517 --- /dev/null +++ b/libbson/1.24.2/character_and_string_routines.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + Character and String Routines — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libbson/1.24.2/creating.html b/libbson/1.24.2/creating.html new file mode 100644 index 0000000000000000000000000000000000000000..1ffcabc4ce0be15cec52630eb64e3f88126ad3dd --- /dev/null +++ b/libbson/1.24.2/creating.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + Creating a BSON Document — libbson 1.24.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.24.2/cross-platform-notes.html b/libbson/1.24.2/cross-platform-notes.html new file mode 100644 index 0000000000000000000000000000000000000000..c57cd59a61554e4a30051247dedcdfde3bbc9b0f --- /dev/null +++ b/libbson/1.24.2/cross-platform-notes.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + Cross Platform Notes — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Cross Platform Notes

    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/endianness.html b/libbson/1.24.2/endianness.html new file mode 100644 index 0000000000000000000000000000000000000000..92a91462aab2de8796ed9285e50eb3d4615f2952 --- /dev/null +++ b/libbson/1.24.2/endianness.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + Endianness — libbson 1.24.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.24.2/errors.html b/libbson/1.24.2/errors.html new file mode 100644 index 0000000000000000000000000000000000000000..5de5d0eed7a2501e95d908b53e2d9af02ef6547a --- /dev/null +++ b/libbson/1.24.2/errors.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + Handling Errors — libbson 1.24.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_JSONBSON_JSON_ERROR_READ_CORRUPT_JS +BSON_JSON_ERROR_READ_INVALID_PARAM +BSON_JSON_ERROR_READ_CB_FAILUREbson_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_READERBSON_ERROR_READER_BADFDbson_json_reader_new_from_file() could not open the file.
    +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/full_index.html b/libbson/1.24.2/full_index.html new file mode 100644 index 0000000000000000000000000000000000000000..06d0f2e95bf84c9482c312a6aa5b92e4a5cb5f17 --- /dev/null +++ b/libbson/1.24.2/full_index.html @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + Index — libbson 1.24.2 + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Index

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/guides.html b/libbson/1.24.2/guides.html new file mode 100644 index 0000000000000000000000000000000000000000..74004e07f849c6be6f38780d2841032b00e50909 --- /dev/null +++ b/libbson/1.24.2/guides.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + Guides — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Guides

    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/1.24.2/include-and-link.html b/libbson/1.24.2/include-and-link.html new file mode 100644 index 0000000000000000000000000000000000000000..3928359851bbd99e7d3a83e28b50b7011030a8cb --- /dev/null +++ b/libbson/1.24.2/include-and-link.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + Using libbson In Your C Program — libbson 1.24.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.24.2/index.html b/libbson/1.24.2/index.html new file mode 100644 index 0000000000000000000000000000000000000000..45b2c74db82280814c4246b761814fa8a0c12eb7 --- /dev/null +++ b/libbson/1.24.2/index.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + libbson — libbson 1.24.2 + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + +
    +

    libbson

    +

    A Cross Platform BSON Library for C

    + +
    + + +
    +
    +
    + +
    +
    + + +
    + + + \ No newline at end of file diff --git a/libbson/1.24.2/json.html b/libbson/1.24.2/json.html new file mode 100644 index 0000000000000000000000000000000000000000..99545c70d1050aece2ebb1603bb059132ea28f91 --- /dev/null +++ b/libbson/1.24.2/json.html @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + JSON — libbson 1.24.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.24.2/objects.inv b/libbson/1.24.2/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..6d7a30b995c2eb9c25f338daa17319550f71d731 Binary files /dev/null and b/libbson/1.24.2/objects.inv differ diff --git a/libbson/1.24.2/oid.html b/libbson/1.24.2/oid.html new file mode 100644 index 0000000000000000000000000000000000000000..877be88ffc9801bc7b0b4c3ac3a8709617aff2f9 --- /dev/null +++ b/libbson/1.24.2/oid.html @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + ObjectIDs — libbson 1.24.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.24.2/parsing.html b/libbson/1.24.2/parsing.html new file mode 100644 index 0000000000000000000000000000000000000000..5f887cf224d1475d84c8151a6bb2a99df36e5d44 --- /dev/null +++ b/libbson/1.24.2/parsing.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + Parsing and Iterating BSON Documents — libbson 1.24.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.24.2/search.html b/libbson/1.24.2/search.html new file mode 100644 index 0000000000000000000000000000000000000000..955e2a2802f813eac7a6f3b17eb45d9ff6be5ed3 --- /dev/null +++ b/libbson/1.24.2/search.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + Search — libbson 1.24.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.24.2/searchindex.js b/libbson/1.24.2/searchindex.js new file mode 100644 index 0000000000000000000000000000000000000000..a3aa61e8e4adfbd59ef591a0596193175457c413 --- /dev/null +++ b/libbson/1.24.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_canonical_extended_json","bson_array_as_json","bson_array_as_relaxed_extended_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_set_outermost_array","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_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","version"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":1,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},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_canonical_extended_json.rst","bson_array_as_json.rst","bson_array_as_relaxed_extended_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_set_outermost_array.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_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","version.rst"],objects:{},objnames:{},objtypes:{},terms:{"0x00":[121,198,200],"0x01":[121,198,200],"0x02":[121,198,200],"0x03":[121,198,200],"0x04":[121,198,200],"0x05":[121,198,200],"0x06":[121,200],"0x07":[121,198,200],"0x08":[121,200],"0x09":[121,200],"0x0a":[121,200],"0x0b":[121,200],"0x0c":[121,200],"0x0d":[121,200],"0x0e":[121,200],"0x0f":[121,200],"0x10":[121,200],"0x11":[121,200],"0x12":[121,200],"0x13":200,"0x7f":[121,200],"0x80":198,"0xff":[121,200],"23f":199,"48mb":220,"abstract":[57,68,142,157,193,199,202,221],"boolean":[7,74,76,80,130],"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,40,41,55,56,72,73,86,97,98,122,138,139,144,145,146,149,153,154,155,157,166,172,176,179,190,194,195,197,199,201,202,203,204,205,206,207,208,209,214,224,233,234,238],"case":[25,26,47,89,90,92,177,181,213],"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,40,41,48,51,52,53,55,56,57,58,62,69,70,72,81,82,84,88,89,90,91,92,93,94,95,96,97,101,115,116,122,135,137,154,156,157,158,163,170,176,177,179,180,181,182,183,184,185,186,187,188,189,191,192,193,195,196,197,201,202,203,204,205,206,207,212,213,214,221,224,230,232,234,235],"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,40,41,43,44,49,50,51,52,53,54,55,56,58,61,64,69,70,72,73,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,104,105,108,112,114,115,116,118,119,120,121,122,123,124,125,135,137,141,145,146,147,148,149,150,151,153,154,156,158,161,163,165,170,177,179,181,182,183,184,187,189,192,195,196,197,201,202,203,205,206,207,208,209,210,212,213,214,230,232,235],"default":[46,48,140,144,152,174],"enum":[48,121,127,137,198,200,209],"final":175,"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,35,38,43,44,45,46,49,50,51,52,53,54,59,60,61,63,64,71,72,73,74,75,78,79,80,81,82,83,85,86,88,89,91,92,93,94,95,96,97,99,100,103,105,106,107,108,109,110,111,112,113,114,115,116,118,119,120,121,122,124,129,130,138,139,140,141,143,144,145,146,147,155,160,161,162,164,165,166,169,172,173,174,176,177,178,180,183,184,192,201,206,210,219,222,224,227,230,232,233,234,235,238],"import":[222,230],"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,35,36,38,41,42,43,48,52,56,57,65,66,67,68,74,92,96,117,134,136,137,147,157,162,170,176,179,180,181,185,199,213,214,221,224,230,232,235],"long":176,"new":[6,7,8,10,12,16,17,18,23,24,25,26,27,29,31,33,47,49,51,52,72,84,106,108,109,126,129,133,134,135,141,142,143,144,145,146,152,155,161,162,163,172,176,178,182,192,194,196,199,203,215,219,224,232,234],"null":[6,8,9,19,27,32,34,35,36,37,38,39,40,41,45,48,51,52,56,59,60,79,81,115,116,128,132,135,144,145,146,152,157,159,163,164,165,170,173,174,176,177,180,182,186,187,191,192,193,195,199,203,207,209,211,213,216,221,224,227,230,232,233,234,235,238],"return":[48,57,79,119,120,137,157,170,193,213,221,227,230,232,233,234,235],"short":195,"static":[93,97,180,199,202,213,230,239],"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,42,44,55,56,61,70,72,73,76,80,85,89,90,91,92,93,97,98,103,114,124,149,156,162,165,176,180,193,207,208,209,213,215,224,238],"void":[1,2,45,46,48,50,51,52,53,58,59,63,65,66,67,68,69,71,75,79,84,86,93,97,106,107,109,110,111,112,113,119,120,124,125,128,130,131,132,133,138,139,140,141,143,144,148,152,153,154,155,158,159,160,164,166,167,168,169,170,172,173,174,175,176,177,180,186,187,188,189,190,194,195,199,202,204,210,211,213,216,217,219,220,221,222,239],"while":[57,117,119,122,137,165,170,213,232,234,235],Doing:[4,142],For:[4,89,92,141,180,199,220,221,238],HAS:[1,2,138,139,172],IDs:48,Its:209,NOT:[1,138,172,216,236],One:142,That:122,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,53,54,56,57,59,60,61,62,64,65,66,67,68,71,72,73,75,77,78,79,80,81,82,83,84,86,89,90,91,92,93,97,98,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,126,127,129,130,131,133,137,143,144,145,146,147,155,156,157,160,161,162,165,166,170,176,178,179,185,190,194,195,197,199,200,201,202,203,204,207,209,212,213,214,215,216,218,219,221,222,226,230,232,233,234,235,239],Then:98,There:232,These:224,Use:[14,176,192,199,201,213,230,238],Useful:176,Using:[228,231,234,237],_bson_context_t:48,_bson_json_opts_t:131,_bson_json_reader_t:137,_bson_mem_vtable_t:141,_bson_reader_t:170,_bson_value_t:212,_bson_writer_t:221,_check_depth_docu:213,_decimal128:57,_id:[93,97],_memcmp:43,_qsort:43,_realloc:219,abort:[1,2,137,138,139,142,172,213,218,220,232],about:[124,213],abov:234,accept:70,access:236,accomplish:98,accord:41,act:82,add:[14,224],add_execut:230,added:[193,224,232],adding:224,addit:[48,74,195,213,234],addition:[142,174],address:41,advanc:[89,90,91,92,93,97,103,206],after:[5,15,94,95,96,103,170,175,176,180,181,193,195,213,216,232,235],against:239,aggreg:57,agre:[137,170,232],aid:142,align:[1,2,141],aligned_alloc:[1,2,141],all:[35,38,45,51,52,53,89,90,92,122,124,127,128,159,165,200,208,209,223,230,234,236],alloc:[1,2,34,35,36,37,38,39,40,45,47,49,59,62,88,117,126,129,133,134,135,138,139,140,141,142,143,144,145,146,161,162,163,164,172,173,174,176,178,182,183,184,192,193,196,199,203,216,219,221],allow:[4,9,32,48,106,107,108,109,110,111,112,113,123,142,164,168,199,207,209,214,224,232,238],allow_multipl:[126,133],allow_nul:207,also:[2,47,70,82,139,179,203,230,231,232,233,235],altern:[74,93,224],altogeth:226,alwai:[57,59,74,76,175,195,196,201,227,238],ambigu:232,among:230,ani:[77,117,137,170,175,176,211,216,232],anoth:[19,44,60,157,180],anyth:238,anywher:209,apach:[137,170,232],api:[193,221,228,231,235,238],appar:213,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,44,187,188,189,190,192,199,220,224],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],applic:[137,142,170,199,232],appropri:226,arbitrari:[133,164],arg:[53,184],argc:[48,57,137,157,170,180,213,221,230,232,235],argument:[137,170,232],argv:[48,57,137,157,170,180,213,221,230,232,235],around:[64,123,179,185],arrai:[3,4,5,11,34,35,36,75,114,186,234],array_len:75,as_json:213,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,55,56,90,187,188,203],assert:[213,235],assign:41,associ:[45,128,159,211],assum:10,atoi:213,atom:236,attempt:199,avail:[127,223,230],avoid:[14,50,73,234],back:[157,232],backslash:203,backward:141,bar:[34,35,36,38,199,234],base:[41,125,147,213,224,233,239],basi:[137,170,232],basic:209,baz:[199,224,234],bcon:224,bcon_:224,bcon_int32:[224,232,234],bcon_new:[224,230,232,234],bcon_utf8:[224,230],becaus:[124,199],been:[1,2,122,138,139,142,172,199],befor:[85,93,97,99,100,105,122,176,180,181,203,213],begin:[4,14,141,167,206,215,234],behav:222,behavior:[27,32,48,195,199],being:[140,141,218],below:[209,213,234],better:4,between:[33,57,117],big:[155,157,226,233],bigger:[1,2,138,139,172],binari:[6,79,198],binary_len:79,bind:[142,145],bit:[17,18,41,57,78,83,99,100,151,155,202,205,233],bitwis:[208,209],block:[162,239],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,42,44,55,56,60,61,70,72,73,74,76,80,85,89,90,91,92,93,94,95,96,97,98,103,106,108,114,124,126,130,133,134,149,156,162,165,170,176,180,191,207,208,209,212,213,215,224,235],both:[61,91,114,181,203,226,227],bound:74,boundari:218,box:[33,123,210,212],bptr:199,bson2:52,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,39,40,43,48,49,52,54,57,59,60,61,62,64,68,70,72,82,84,93,94,95,96,97,103,104,106,107,108,109,110,111,112,113,116,117,121,124,126,127,129,131,134,136,137,142,144,145,156,157,170,176,180,193,198,199,200,201,208,209,212,213,215,221,226,228,229,231,237],bson_aligned_alloc0:[0,142,228],bson_aligned_alloc:[0,142,228],bson_aligned_begin:199,bson_aligned_end:199,bson_append:144,bson_append_:224,bson_append_arrai:[0,199,228],bson_append_array_begin:[0,5,60,199,224,228],bson_append_array_end:[0,4,199,228],bson_append_binari:[0,198,199,228],bson_append_bool:[0,199,224,228],bson_append_cod:[0,9,199,228],bson_append_code_with_scop:[0,199,228],bson_append_date_tim:[0,22,29,199,228],bson_append_dbpoint:[0,199,228],bson_append_decimal128:[0,199,228],bson_append_docu:[0,199,228],bson_append_document_begin:[0,15,60,199,224,228],bson_append_document_end:[0,14,199,224,228],bson_append_doubl:[0,36,199,228],bson_append_int32:[0,34,52,199,221,224,228,235],bson_append_int64:[0,199,228],bson_append_it:[0,199,228],bson_append_maxkei:[0,199,228],bson_append_minkei:[0,199,228],bson_append_now_utc:[0,199,228],bson_append_nul:[0,27,32,199,228],bson_append_oid:[0,199,228],bson_append_regex:[0,199,228],bson_append_regex_w_len:[0,199,228],bson_append_symbol:[0,199,228],bson_append_time_t:[0,199,228],bson_append_timestamp:[0,199,228],bson_append_timev:[0,199,228],bson_append_undefin:[0,199,228],bson_append_utf8:[0,34,35,36,38,180,199,224,228],bson_append_valu:[0,199,228],bson_array_as_canonical_extended_json:[0,35,36,37,38,39,40,199,228],bson_array_as_json:[0,34,36,37,38,39,40,199,228],bson_array_as_relaxed_extended_json:[0,34,35,37,38,39,40,199,228],bson_as_canonical_extended_json:[0,34,35,36,38,39,40,170,176,199,213,224,228,230,232,234,235],bson_as_json:[0,34,35,36,37,39,40,52,199,228],bson_as_json_with_opt:[0,34,35,36,37,38,40,127,131,199,228],bson_as_relaxed_extended_json:[0,34,35,36,37,38,39,199,228,232],bson_ascii_strtol:[0,223,228],bson_assert:[199,213],bson_big_endian:57,bson_byte_ord:57,bson_check_vers:[0,228,239],bson_clear:199,bson_compar:[0,199,228],bson_concat:[0,71,72,73,143,144,145,146,175,176,178,199,228],bson_context_destroi:[0,47,48,228],bson_context_disable_host_cach:47,bson_context_disable_pid_cach:[46,47,48],bson_context_flags_t:[47,48],bson_context_get_default:[0,47,48,228],bson_context_new:[0,45,48,228],bson_context_non:[47,48],bson_context_t:[0,45,46,47,152,155,228,231],bson_context_thread_saf:[46,47,48],bson_context_use_task_id:47,bson_copi:[0,199,228],bson_copy_to:[0,199,228],bson_copy_to_exclud:[0,52,199,228],bson_copy_to_excluding_noinit:[0,51,53,199,228],bson_copy_to_excluding_noinit_va:[0,199,228],bson_count_kei:[0,199,228],bson_decimal128_from_str:[0,57,228],bson_decimal128_from_string_w_len:[0,57,228],bson_decimal128_inf:57,bson_decimal128_nan:57,bson_decimal128_str:[57,58],bson_decimal128_t:[0,12,55,56,58,85,108,212,213,228,231],bson_decimal128_to_str:[0,57,228],bson_destroi:[0,34,35,36,38,49,52,60,72,137,143,175,176,178,180,199,224,228,230,232,234],bson_destroy_with_st:[0,180,199,228],bson_empti:199,bson_empty0:199,bson_equ:[0,199,228],bson_error_invalid:209,bson_error_json:227,bson_error_read:227,bson_error_reader_badfd:227,bson_error_t:[0,72,135,136,137,146,163,170,177,209,213,227,228,231,232,235],bson_fre:[0,34,35,36,37,38,39,40,52,60,88,142,170,176,180,182,183,184,196,203,213,221,222,224,228,230,232,234,235],bson_get_data:[0,98,137,199,228,232],bson_get_major_vers:[0,228,239],bson_get_micro_vers:[0,228,239],bson_get_minor_vers:[0,228,239],bson_get_monotonic_tim:68,bson_get_vers:[0,228,239],bson_gettimeofdai:68,bson_gnuc_const:48,bson_gnuc_deprecated_for:[51,155],bson_gnuc_null_termin:[51,52],bson_gnuc_printf:[177,179,183,184,189,214],bson_has_field:[0,199,228],bson_in_range_sign:213,bson_init:[0,34,35,36,38,44,51,52,53,72,73,143,144,145,146,175,176,178,199,224,228],bson_init_from_json:[0,44,71,73,136,143,144,145,146,175,176,178,199,228,232],bson_init_stat:[0,44,71,72,82,143,144,145,146,175,176,178,199,228,234],bson_initi:[71,137,176,180,198,224,232],bson_isspac:[0,223,228],bson_iter_arrai:[0,117,228],bson_iter_as_bool:[0,117,228],bson_iter_as_doubl:[0,117,228],bson_iter_as_int64:[0,117,228],bson_iter_binari:[0,117,228],bson_iter_bool:[0,117,228],bson_iter_cod:[0,82,117,228],bson_iter_codewscop:[0,117,228],bson_iter_date_tim:[0,117,119,228],bson_iter_dbpoint:[0,117,228],bson_iter_decimal128:[0,117,228],bson_iter_docu:[0,117,228],bson_iter_doubl:[0,117,228],bson_iter_dup_utf8:[0,117,228],bson_iter_find:[0,93,94,97,117,228],bson_iter_find_cas:[0,89,92,93,95,97,117,228],bson_iter_find_descend:[0,117,228,234],bson_iter_find_w_len:[0,96,117,228],bson_iter_holds_arrai:[75,117],bson_iter_holds_binari:[79,117],bson_iter_holds_bool:[80,117],bson_iter_holds_cod:[81,117],bson_iter_holds_codewscop:[82,117],bson_iter_holds_date_tim:[83,117],bson_iter_holds_dbpoint:117,bson_iter_holds_decimal128:[85,117],bson_iter_holds_docu:[86,117,234],bson_iter_holds_doubl:[87,117],bson_iter_holds_int32:[99,117,234],bson_iter_holds_int64:[100,117],bson_iter_holds_int:117,bson_iter_holds_maxkei:117,bson_iter_holds_minkei:117,bson_iter_holds_nul:117,bson_iter_holds_numb:117,bson_iter_holds_oid:[93,97,105,117],bson_iter_holds_regex:117,bson_iter_holds_symbol:117,bson_iter_holds_timestamp:[117,119],bson_iter_holds_undefin:117,bson_iter_holds_utf8:[117,122],bson_iter_init:[0,94,95,96,97,117,213,228,234],bson_iter_init_find:[0,93,95,96,97,117,200,228,234],bson_iter_init_find_cas:[0,93,94,96,97,117,228],bson_iter_init_find_w_len:[0,117,228],bson_iter_init_from_data:[0,93,94,95,96,117,228],bson_iter_init_from_data_at_offset:[0,104,117,228],bson_iter_int32:[0,117,228,234],bson_iter_int64:[0,117,228],bson_iter_is_kei:117,bson_iter_kei:[0,19,102,117,228,234],bson_iter_key_len:[0,98,101,117,228],bson_iter_next:[0,93,97,117,228,234],bson_iter_offset:[0,98,117,228],bson_iter_oid:[0,93,97,117,228],bson_iter_overwrite_bool:[0,117,228],bson_iter_overwrite_date_tim:[0,117,228],bson_iter_overwrite_decimal128:[0,117,228],bson_iter_overwrite_doubl:[0,117,228],bson_iter_overwrite_int32:[0,117,228],bson_iter_overwrite_int64:[0,117,228],bson_iter_overwrite_oid:[0,117,228],bson_iter_overwrite_timestamp:[0,117,228],bson_iter_recurs:[0,117,228,234],bson_iter_regex:[0,117,228],bson_iter_symbol:[0,117,228],bson_iter_t:[0,19,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,118,119,120,121,122,123,124,200,213,228,231,234],bson_iter_time_t:[0,117,228],bson_iter_timestamp:[0,117,228],bson_iter_timev:[0,117,228],bson_iter_typ:[0,75,79,80,81,82,83,85,86,87,99,100,105,117,119,122,200,228],bson_iter_utf8:[0,88,117,228],bson_iter_valu:[0,117,212,228],bson_iter_visit_al:[0,117,213,228],bson_json_data_reader_ingest:[0,137,228],bson_json_data_reader_new:[0,137,228],bson_json_destroy_cb:133,bson_json_error_code_t:137,bson_json_error_read_cb_failur:[137,227],bson_json_error_read_corrupt_j:[137,227],bson_json_error_read_invalid_param:[137,227],bson_json_mode_canon:[39,127],bson_json_mode_legaci:127,bson_json_mode_relax:127,bson_json_mode_t:[0,129,131,199,228],bson_json_opts_destroi:[39,131,228],bson_json_opts_new:[39,131,228],bson_json_opts_set_outermost_arrai:[131,228],bson_json_opts_t:[0,39,128,129,130,199,228],bson_json_reader_cb:133,bson_json_reader_destroi:[0,126,133,134,137,228,232],bson_json_reader_new:[0,137,228],bson_json_reader_new_from_fd:[0,137,228,232],bson_json_reader_new_from_fil:[0,137,227,228,232],bson_json_reader_read:[0,72,137,146,228,232],bson_json_reader_t:[0,125,126,132,133,134,135,136,227,228,231,232],bson_little_endian:57,bson_major_vers:[65,239],bson_malloc0:[0,142,228],bson_malloc:[0,142,180,228],bson_max_len_unlimit:[39,129,131],bson_max_s:199,bson_mem_restore_vt:[0,142,228],bson_mem_set_vt:[0,142,228],bson_mem_vtable_t:141,bson_micro_vers:[66,239],bson_minor_vers:[67,239],bson_new:[0,44,71,72,73,144,145,146,175,176,178,199,228],bson_new_from_buff:[0,44,71,72,73,143,145,146,175,176,178,199,228],bson_new_from_data:[0,44,71,72,73,143,144,146,175,176,178,199,228,234],bson_new_from_json:[0,44,71,72,73,136,143,144,145,175,176,178,199,228,232],bson_oid_compar:[0,157,228,233],bson_oid_copi:[0,157,228],bson_oid_equ:[0,157,228,233],bson_oid_get_time_t:[0,157,228,233],bson_oid_hash:[0,157,228,233],bson_oid_init:[0,48,155,157,228,233],bson_oid_init_from_data:[0,157,228],bson_oid_init_from_str:[0,157,228,233],bson_oid_init_from_string_unsaf:233,bson_oid_init_sequ:[0,157,228],bson_oid_is_valid:[0,157,228],bson_oid_t:[0,11,24,48,84,93,97,105,112,147,148,149,150,151,152,153,154,155,158,212,213,228,231,233],bson_oid_to_str:[0,93,97,157,228],bson_read:213,bson_reader_destroi:[0,160,162,170,213,228,232,235],bson_reader_destroy_func_t:[0,164,168,170,228],bson_reader_new_from_data:[0,167,170,228,235],bson_reader_new_from_fd:[0,170,228,232,235],bson_reader_new_from_fil:[0,62,170,213,228,232,235],bson_reader_new_from_handl:[0,160,170,228],bson_reader_read:[0,170,213,228,232,235],bson_reader_read_func_t:[0,164,169,170,228],bson_reader_reset:[0,170,228],bson_reader_set_destroy_func:[0,170,228],bson_reader_set_read_func:[0,170,228],bson_reader_t:[0,62,159,160,161,162,163,164,165,166,167,168,169,171,213,228,231,232,235],bson_reader_tel:[0,170,228,235],bson_realloc:[0,142,173,228],bson_realloc_ctx:[0,142,174,221,228,235],bson_realloc_func:[0,142,144,219,221,228],bson_reinit:[0,44,71,72,73,137,143,144,145,146,176,178,199,228,232],bson_reserve_buff:[0,44,71,72,73,143,144,145,146,175,178,199,228],bson_set_error:[0,62,228],bson_shar:230,bson_sized_new:[0,44,71,72,73,143,144,145,146,175,176,199,228],bson_snprintf:[0,214,223,228],bson_stat:230,bson_steal:[0,60,199,228],bson_strcasecmp:[0,223,228],bson_strdup:[0,223,228],bson_strdup_printf:[0,184,223,228],bson_strdupv_printf:[0,223,228],bson_strerror_r:[0,62,228],bson_strfreev:[0,223,228],bson_string_append:[0,189,192,193,228],bson_string_append_c:[0,193,228],bson_string_append_printf:[0,193,228],bson_string_append_unichar:[0,193,228],bson_string_fre:[0,192,193,228],bson_string_new:[0,193,228],bson_string_t:[0,187,188,189,190,191,192,194,228,231],bson_string_trunc:[0,193,228],bson_strncpi:[0,223,228],bson_strndup:[0,88,223,228],bson_strnlen:[0,223,228],bson_subtype_binari:198,bson_subtype_binary_deprec:198,bson_subtype_column:198,bson_subtype_funct:198,bson_subtype_md5:198,bson_subtype_t:[0,6,79,212,213,228,231],bson_subtype_us:198,bson_subtype_uuid:198,bson_subtype_uuid_deprec:198,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,39,40,43,44,49,50,51,52,53,54,59,60,61,64,70,71,72,73,79,82,93,94,95,96,98,117,122,136,137,143,144,145,146,165,170,175,176,178,180,198,208,209,213,215,220,221,228,230,231,232,234,235],bson_type_arrai:[75,114,121,200],bson_type_binari:[79,121,200],bson_type_bool:[76,77,78,80,106,110,121,200],bson_type_cod:[81,121,200],bson_type_codewscop:[82,121,200],bson_type_date_tim:[22,83,107,118,120,121,200],bson_type_dbpoint:[84,121,200],bson_type_decimal128:[85,108,200],bson_type_docu:[86,114,121,200],bson_type_doubl:[76,77,78,87,109,121,200],bson_type_eod:[121,200],bson_type_int32:[76,77,78,99,110,121,200,212],bson_type_int64:[76,77,78,100,111,121,200],bson_type_maxkei:[20,121,200],bson_type_minkei:[21,121,200],bson_type_nul:[23,76,121,200],bson_type_oid:[24,105,112,121,200],bson_type_regex:[25,26,115,121,200],bson_type_symbol:[27,116,121,200],bson_type_t:[0,121,212,228,231],bson_type_timestamp:[29,113,119,121,200],bson_type_undefin:[31,76,121,200],bson_type_utf8:[76,121,122,200],bson_uint32_to_str:[0,4,223,228],bson_unichar_t:[0,190,204,205,228,231],bson_unus:213,bson_utf8_escape_for_json:[0,223,228],bson_utf8_from_unichar:[0,223,228],bson_utf8_get_char:[0,202,223,228],bson_utf8_next_char:[0,202,223,228],bson_utf8_valid:[0,122,223,228,238],bson_valid:[0,199,209,228,234],bson_validate_dollar_kei:209,bson_validate_dot_kei:209,bson_validate_empty_kei:209,bson_validate_flags_t:[208,209],bson_validate_non:[209,234],bson_validate_utf8:209,bson_validate_utf8_allow_nul:209,bson_validate_with_error:[0,199,208,228],bson_value_copi:[0,212,228],bson_value_destroi:[0,210,212,228],bson_value_t:[0,33,123,210,211,228,231],bson_version_:239,bson_version_hex:239,bson_visitor_t:[0,124,208,209,228,231,234],bson_vsnprintf:[0,223,228],bson_wrapper_destroi:180,bson_wrapper_t:180,bson_writer_begin:[0,60,221,228,235],bson_writer_destroi:[0,219,221,228],bson_writer_end:[0,215,221,228,235],bson_writer_get_length:[0,221,228],bson_writer_new:[0,216,221,228,235],bson_writer_rollback:[0,215,218,221,228],bson_writer_t:[0,215,216,217,218,219,220,228,231,235],bson_zero_fre:[0,142,228],bsonspec:[116,198],buf:[144,166,185,219,221,235],buf_len:144,buf_siz:133,buffer:[4,6,60,64,73,75,79,82,86,97,98,126,133,144,145,153,161,165,166,167,175,176,178,179,192,195,199,201,215,216,217,218,219,221,224,234,235],buflen:[185,219,221,235],build:[4,193,221,224,231,235],builder:[188,192],built:236,bulk:[137,221],c11:195,call:[4,5,14,15,22,34,35,36,37,38,39,40,45,47,51,52,53,59,60,79,80,81,85,88,93,97,99,100,102,105,106,107,108,109,110,111,112,113,114,115,119,122,134,140,141,144,160,162,166,175,176,180,193,199,206,213,215,224],callback:[124,160,166,168,170,213,227,233],caller:[3,4,34,35,36,37,38,39,40,62,93,97,122,215,216,219,234],calloc:[139,141],can:[43,57,64,73,75,79,80,82,86,98,117,122,129,131,133,137,157,164,170,193,199,200,202,208,209,213,221,222,224,230,233,234,235,238,239],cancel:213,cannot:218,canon:[34,37,232],cast:[57,77,78],caus:32,caveat:142,certain:[175,239],cflag:230,chang:[47,117,142],charact:[0,25,26,41,74,190,195,202,203,204,205,206,228,231,233],check:[42,47,70,74,79,80,149,156,165,197,199,209,218,227,234,239],check_depth:213,check_depth_func:213,check_depth_t:213,child:[4,5,13,14,15,114,199,213,224,234],chunk:[166,193],clean:[180,219],cleanup:[170,216,232],clock:[0,228,231],close:[134,162,170,232],close_fd:162,close_on_destroi:[134,162,170],closer:224,cmakelist:230,code:[9,27,31,51,52,62,82,84,151,155,177,209,212,213,227],code_len:212,coll:[11,199],collect:[11,84,212],collection_len:[84,212],come:170,command:[137,170,230,232],common:[31,232],commonli:122,commun:[29,32,119],compar:43,comparison:147,compat:[141,231,233],compil:[65,66,67,226,239],complet:[5,14,15,215,217],complianc:[137,170,232],comput:102,condit:[137,170,232],conjunct:[43,64],consid:[74,89,91,92,114,117],constant:[98,101,102,104,201],construct:157,consum:[173,174,224],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,55,56,57,60,70,72,82,83,89,90,92,97,106,115,117,118,120,125,127,131,133,137,138,142,144,146,149,150,153,154,155,156,157,170,172,173,174,175,198,199,200,201,202,207,209,212,213,232,233,238],content:[44,49,50,60,78,81,84,87,106,107,108,109,110,111,112,113,115,116,117,119,122,145,148,176,180,207,208,209,210,218],context:[45,46,47,48,152,155,173],continu:[34,35,36,137,170,213,232],control:48,conveni:[124,223,232,234,235],convers:[41,137,213],convert:[41,58,126,134,137,157,158,170,201,203,204,205,226,231,234],copi:[33,49,50,51,52,53,64,73,137,145,148,161,170,176,182,192,195,196,210,232,234],copyright:[137,170,232],core:224,correct:176,correctli:142,correspond:57,corrupt:[124,209,235],could:[32,98,156,176,213,224,227,235],couldn:176,count:[54,166,213],count_field:213,counter:[157,233],creat:[46,47,98,126,129,133,134,135,143,144,145,160,161,162,163,167,178,192,219,228,231,232,234,237],create_on_heap:199,creation:224,cross:[68,228,231],ctx:[48,144,173,174],current:[19,22,76,77,78,90,98,101,102,104,114,115,122,123,155,171,194,205,206,218,220],custom:[142,169,170,174,208,209],dangl:73,data:[6,57,72,73,79,97,98,104,124,125,133,136,144,145,146,153,161,164,166,169,170,180,198,199,201,212,213,222,231,234,236],data_len:[198,212],date:[10,22,107,119],dbpointer:11,dbref:209,dcb:133,deal:142,debug:232,dec:[55,56,58,85],decim:12,decimal128:[55,56,57,108],decimal128_str:58,decimal128t:58,declar:57,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,57,75,79,80,81,82,83,85,86,87,99,100,105,117,119,122,129,131,133,137,157,199,239],demand:221,demonstr:213,denot:163,depend:[25,26,57,233],deprec:[11,27,31,47,51,84,116,155,213],depth:213,derefer:226,dereferenc:226,descend:[91,213],describ:227,descriptor:[134,162,165,166,167,170,232,235],design:142,desir:[208,209],destin:[179,195,221,224],destroi:[60,128,134,159,160,162,168,180],detail:[39,208,209],detect:[19,44,165,208,220],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,72,74,76,90,130,146,200,212,224,227],dictat:226,dictionari:221,did:234,differ:[29,68,224],digit:41,dilig:142,direct:157,directli:[27,32,176,221],discard:117,disk:222,distribut:[137,170,232,238],dive:234,djb:233,do_someth:239,doc:[37,39,40,93,137,165,198,199,200,213,221,224,232,234,235],document:[9,10,11,13,14,15,16,19,20,21,33,34,35,36,39,43,44,49,60,61,64,82,86,93,97,103,106,107,108,109,110,111,112,113,114,117,121,124,126,129,131,136,137,144,145,165,170,176,178,199,208,209,213,215,218,221,227,228,231,232,237],document_len:86,doe:[45,52,53,59,62,128,132,159,195,211,213,216],doing:177,domain:[62,177,209,227],done:[4,59,106,107,108,109,110,111,112,113,122],dot:91,dotal:[25,26],dotkei:[70,91],doubl:[16,77,87,109,212,213],down:234,driver:[35,38,122,231],dst:[44,50,51,52,53,148,180,195,210],due:[27,32,124],dump:62,dure:227,dynam:[199,221],each:[137,170,186,201,232],easier:142,easili:[199,233],effect:[47,48,209],effici:[60,180],einval:41,either:[80,124,137,152,170,201,213,215,232],element:[4,6,7,8,9,10,12,14,16,17,18,19,20,21,22,23,24,29,31,34,35,36,54,70,75,78,79,80,82,83,84,86,89,90,92,93,97,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,234],elif:57,elimin:176,els:[93,97,137,170,213,232,238],emb:6,embed:[32,114,187,207,209,234],empti:[6,144,199,224],enabl:239,encapsul:[62,212,224],encod:[8,9,32,34,35,36,37,38,39,40,55,56,72,81,82,88,122,127,129,131,135,145,146,154,156,157,158,163,187,190,193,199,203,205,206,224,226,234],encount:[41,103],end:[140,165,166,194,199,234,238],endian:[57,155,157,225,228,231,233],endif:[57,239],endptr:41,enforc:179,enough:232,ensur:3,entir:[41,195],entri:[124,213],enumer:[127,198,200],eof:[176,235],epoch:[10,28,30,83,107,118,120,150,157],equal:[42,43,61,149,157,194,233],equat:76,equival:[60,71,74,181],erang:41,err_cod:185,err_offset:[213,234],errno:[41,185],error:[60,62,79,80,103,106,107,108,109,110,111,112,113,117,137,165,170,177,180,208,209,213,228,231,232,235,237],escap:203,essenti:199,etc:201,even:195,everi:[47,141],everyth:[25,26],exact:[55,56],exampl:[124,144,180,208,209,220,224,234],exce:213,except:[9,34,35,36,51,52,53,74,82,88,137,170,173,184,203,222,232],exclud:[32,51,52,53,72,146,194,214],execut:168,exemplifi:234,exhaust:[89,90,91,92,199],exist:[72,146,224,234],exit:[137,213,232],expand:144,expect:[137,145,170,219,226,232,234,238],express:[137,170,232],extend:[34,35,36,37,38,39,40,72,127,131,137,227,232],extern:[32,117],extrem:142,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,73,137,165,170,209,232,234,235,238],failur:[1,2,34,35,36,37,38,39,40,114,138,139,140,141,165,166,171,172,227],fallback:236,fals:[7,19,44,55,56,60,70,72,73,74,80,85,89,91,92,103,114,124,137,149,165,170,176,180,191,193,208,209,213,232,238],fashion:133,faster:102,fclose:176,featur:239,feed:125,fetch:[76,77,84,85,87,99,100,101,102,104,105,123,150,218],few:224,fidel:232,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,51,52,53,70,76,77,79,81,84,85,87,90,98,99,100,117,122,124,141,198,199,200,213,224],file:[134,135,137,162,163,164,165,166,167,170,176,213,227,230,232,235],filedescriptor:235,filenam:[135,137,163,170,213,232],fill:[176,195,209,227],find_error_loc:213,find_packag:230,finish:219,first:[41,51,52,53,65,89,90,92,93,97,155,176,222,224,234],first_exclud:[51,52,53],fit:195,flag:[46,47,48,199,208,209],fold:[89,90,92],follow:[47,76,77,91,155,224,232,233,238,239],foo:[35,38,199,200,224,234],fopen:176,form:9,format:[3,10,34,35,36,37,38,39,40,55,56,69,72,137,155,177,179,183,184,189,201,213,214,224,226,231,232,233,238],forth:3,forward:235,found:[70,72,89,90,91,92,117,135,146,197,203,213,234,235],four:230,fprintf:[62,137,165,170,176,213,232,234,235],fragment:9,fread:176,free:[34,35,36,37,38,39,40,59,60,62,63,69,132,141,186,191,199],free_seg:191,freed:[47,49,60,64,72,79,81,82,88,101,105,115,122,123,126,133,134,140,141,143,162,165,172,175,176,178,180,182,183,184,191,192,196,203,210,216],from:[41,51,52,53,57,75,76,85,86,98,99,100,133,134,136,162,164,165,166,167,169,170,176,195,196,199,200,201,206,210,216,221,226,231,232,233,234,236],fseek:176,ftell:176,full:[129,131],func:[168,169],further:[123,165,213,234],futur:[142,213],fwrite:[137,232],gcc:230,gener:[1,2,4,47,48,52,138,139,145,150,151,152,155,172,199,201,227,234,236],get:[22,65,66,67,176],getpid:47,gettimeofdai:68,give:209,given:[41,218],global:155,goe:224,good:178,govern:[137,170,232],greater:[42,43,147,166,233],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,176,235],growth:192,guarante:155,guid:[228,231],had:213,hand:224,handl:[62,68,160,164,166,167,170,177,228,231,237],has:[47,57,73,103,122,129,131,142,199,201,220,238],hash:151,hashtabl:[151,157,233],have:[45,47,48,178,180,199,209,224,232,234],header:[230,235],heap:[143,145,178,199,224],hello:[224,230],hello_bson:230,help:[142,145,232],helper:[22,28,30,177,238],hex:[154,156,157,158],high:[57,221],higher:[60,142,180,213,235],hold:[129,131],host:[163,226],how:[76,124,208,209,213],howev:[31,117,142,155],http:[116,137,170,198,232],idea:178,ident:[94,95,96,173,224],identifi:[11,233],ieee:57,ignor:[41,226],immut:[75,79,82],implement:[32,68,142,168,174,226,236],impli:[137,170,232],inc:[29,137,170,199,232],includ:[25,26,29,34,35,36,38,48,52,57,62,78,117,127,131,137,157,170,176,186,193,198,199,200,212,213,218,221,224,232,235],inclus:74,incom:[137,170,232],increment:[4,29,68,113,119,212,233],indic:[6,60,74,92,96,191,199,207,209,224,238],infer:41,infin:57,inform:[10,62,124,198,213,232,234,235,238],initi:[5,14,15,50,55,56,60,71,72,73,91,93,94,95,96,97,98,114,144,146,153,154,175,176,180,213,218,224,235],inlin:199,input:[203,232,233],insensit:[25,26],inspect:[208,209,235],instal:[141,230],instanc:219,instead:[28,30,60,141,213,226,230],int32:200,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,176],int32_t:[17,99,110,129,131,212,213],int64_t:[10,18,41,68,78,83,100,107,111,212,213],int8_t:212,integ:[17,18,34,35,36,41,54,78,83,92,96,99,100,102,104,181],integr:142,interact:11,interchang:232,interest:142,interfac:[232,236],intern:[22,43,73,133,176,185,199,227],intra:[29,119],intrins:226,inttyp:213,invalid:[5,15,19,41,44,72,73,81,89,91,92,103,114,115,119,122,123,176,180,206,209,227,238],is_outermost_arrai:130,isspac:74,issu:32,item:[224,233],iter:[19,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,200,202,212,213,228,231,235,237],its:[41,175,176,190],itself:186,javascript:[8,9,31,82],json:[34,35,36,37,38,39,40,72,125,126,127,129,131,134,136,137,146,170,176,203,224,227,228,229,231,234],just:[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,35,36,51,52,70,89,90,91,92,94,95,96,98,101,102,117,180,208,209,213,224,233,234],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],keylen:[92,96,98],kind:[137,170,232],know:[33,76,123,238],languag:[137,142,145,170,213,221,232,235],larg:176,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],last:103,later:[98,144],law:[137,170,232],layer:231,layout:[57,98],lazili:234,lead:41,leak:[14,50],least:[1,2,138,139,172,176,195],left:195,legaci:[11,27,32,35,38],len:[6,56,64,72,98,125,137,146,193,194,199,204,212,232],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,39,40,56,58,60,72,73,75,79,81,82,84,86,88,92,96,97,98,101,102,116,122,125,129,131,144,145,146,156,161,170,176,194,197,199,203,207,209,218,219,224,233,234,238],less:[43,147,224,233],let:[224,234],level:[60,142,180,213,221,235],lexicograph:[147,181],lib:230,libbson:[0,35,38,42,65,66,67,68,69,140,141,142,174,213,224,226,227,228,232,233,234,236,237,238],libc:[32,166],librari:[68,174,201,230,231,236,239],licens:[137,170,232],lifetim:[73,117,161],lightweight:142,like:[9,69,91,166,184,189,193,199,201,213,214,222,234,236],limit:[137,170,220,232],line:[137,170,230,232],link:230,list:[51,52,199],liter:224,littl:226,live:224,llong_max:41,llong_min:41,load:82,local:[25,26,48,90],locat:[19,34,35,36,37,38,39,40,58,60,72,75,79,81,82,84,85,86,88,90,94,95,96,122,124,146,158,185,201,204,208,213,214,234],logic:224,longer:[45,60,143,192,210],look:[122,224],low:57,lower:[180,181],macro:[75,79,86,224],made:73,mai:[6,10,47,72,106,107,108,109,110,111,112,113,117,137,142,145,146,170,175,198,199,206,213,215,221,232,233,234,238,239],main:[34,35,36,38,48,52,57,137,157,170,176,180,213,221,230,232,235],major:[42,65,66,67,239],make:[25,26,142,223,224,234],malloc:[138,139,141,175],manag:[0,199,220,224,228,231,235],mani:[32,221,226,227],manipul:223,manner:233,marshal:122,match:[25,26,90,195,203,234],max_depth:213,max_len:[129,131],maximum:[19,44,129,131,197,199,213],maxlen:197,mean:[47,56,195,226],meant:[117,166],meet:42,mem:[63,141,172,173,174,222],member:[129,131],memcpi:226,memori:[0,1,2,14,50,63,125,138,139,140,141,164,170,172,173,174,176,216,218,220,221,222,224,228,231,235],messag:[62,137,170,209,213,220,227,232],method:[53,216],micro:[42,65,66,67,239],microsecond:[68,120],middl:67,might:[193,232],millisecond:[10,28,30,83,107],minimum:[42,230],minor:[42,65,66,67,239],miss:[93,97],mlock:222,mode:[25,26,127,129,131,162],modifi:[32,64,69,79,81,82,101,105,115,117,122,123,165,208,209],mongo:230,mongodb:[20,21,29,34,35,36,37,38,39,40,72,91,127,131,137,170,199,220,227,231,232,233,234],mongodbextend:227,monoton:[68,201,233],more:[39,169,198,209,221,233,234,235,238],most:47,move:180,msec_since_epoch:213,multi:[122,190,202,204,205,233],multipl:[1,2,25,26,206],must:[1,2,4,6,8,14,24,32,41,50,69,72,73,75,86,93,97,98,117,140,141,161,162,176,180,194,195,210,215,233,234,238],mutabl:199,mutat:[106,107,108,109,110,111,112,113,234,236],my_bson_doc:117,my_data:234,my_data_len:234,my_doc:117,my_field:117,my_state_t:213,my_str:238,my_string_len:238,my_visit_befor:213,my_visit_corrupt:213,my_visit_unsupported_typ:213,mycollect:235,mysubdoc:117,n_byte:196,n_member:141,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,51,52,53,57,70,84,89,90,92,117,135,227,233,234],nan:[55,56,57],nativ:[231,236],necessari:[224,234],need:[47,52,193,213,224,233,234,238],neg:[10,181],nest:213,network:[221,235],newer:239,newli:[34,35,36,37,38,39,40,47,49,88,126,129,133,134,135,143,144,145,146,161,162,163,164,178,182,183,184,192,196,203,219],next:[103,136,155,165,166,206],non:[34,35,36,37,38,39,40,60,76,81,116,141,203],normal:[34,35,36,213],notat:[70,91,157],note:[122,216,222,228,231],noth:[45,59,128,132,159,177,195,211,216],notic:[224,238],now:[89,91,92,142,180,224],nul:[199,203],num_byt:[1,2,138,139,141,172,173,174],number:[1,2,32,41,54,65,66,67,83,118,120,138,155,166,179,195,201,202,204,214,223,224,233],numberint:[34,232],numer:232,nuse:[170,232],object:[48,57,72,146,157],objectid:[47,48,155,156,157,228,231,236,237],observ:[101,102,104,106,107,108,109,110,111,112,113,114,115,119,121,122,123],obtain:[98,137,170,232],occur:[180,194,208,209,234],off:213,off_t:171,offset:[98,104,171,206,208,213,218,219,221,234],often:[137,232],oid1:[147,149],oid2:[147,149],oid:[11,24,48,84,93,97,112,150,151,152,153,154,155,157,158,199,212,233],oidstr:[93,97],older:213,omit:224,onc:[129,131],one:[60,144,167,174,209,230,234,236],ones:48,onli:[11,29,48,68,72,73,79,106,107,108,109,110,111,112,113,114,146,155,167,168,234,239],oom:142,opaqu:[160,166],open:[134,137,170,227,232,235],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,44,47,137,166,176,236],opt:[25,39,128,130,131,199],optim:[201,226],option:[9,19,25,26,34,35,36,37,38,39,40,72,82,88,115,122,124,131,144,146,152,155,160,191,209,212,213],order:[57,199],org:[116,137,170,198,232],other:[35,38,43,48,61,77,80,122,164,176,203,222,227],otherwis:[9,55,56,59,70,72,73,85,114,135,145,146,149,163,164,171,191,208,209],our:[170,232],out:[41,62,74,85,142,144,209,215,227],outermost:[34,35,36],outsid:209,over:52,overflow:[19,44],overlap:227,overrid:48,overwrit:[106,107,108,109,110,111,112,113],own:[124,168,213],ownership:193,packag:230,packet:[218,221,235],pad:[141,199,213],page:222,pair:199,paramet:[62,224],parent:224,pars:[55,56,72,137,146,154,156,213,227,228,231,237],part:166,particular:[220,232],partli:218,pass:[27,32,39,41,62,98,103,123,144,160,185,218,224,238],password:222,past:220,path:[163,170,230,234],perform:[4,9,137,183,193,224,234,239],permiss:[137,170,232],perror:176,place:[71,93,97,106,107,108,109,110,111,112,113,122,194],platform:[57,68,142,223,228,231,236],pleas:[39,51,155],pluggabl:[164,174],point:[79,201],pointer:[1,2,24,72,73,79,82,98,133,138,139,144,164,172,173,174,176,201,206],pool:173,portabl:[1,2,41,138,139,142,172,179,181,185,197],posit:[19,54,171,181],posix:236,possibl:[209,226],power:[1,2,192,193],pre:[69,178],prealloc:178,precis:29,prefer:[27,32,52,224,232],prefix:224,prematur:124,preprocessor:239,preserv:[203,232],prevent:222,previous:98,primarili:[20,21,29],primit:232,print:[34,35,36,38,52,137,170,232,234],print_doc_id:[93,97],print_each_char:202,printabl:58,printf:[34,35,36,37,38,39,40,52,57,93,97,117,157,176,177,179,183,184,189,193,200,201,202,212,213,214,224,230,232,233,234,235,238],priu32:213,privat:[117,230],probabl:[119,122,222],proce:224,process:[1,2,39,46,47,137,138,139,140,141,170,172,232],processor:224,program:[60,79,80,103,106,107,108,109,110,111,112,113,137,170,228,231,232,237],progress:98,prohibit:209,proof:213,propag:[72,135,136,146,163],properli:[3,226],properti:64,protect:222,prototyp:174,provid:[6,7,8,9,55,56,68,73,82,115,124,130,137,144,153,160,162,164,170,202,213,221,223,224,231,232,233,234,235,236,238],pthread:236,purpos:233,python:221,qsort:[43,147,157,233],queri:[20,21],rand:233,random:[157,233],rang:41,rare:[47,142],rather:[34,35,36,195],raw:[64,75,82,86,153,180],reach:[129,131,165],reached_eof:[165,213],reached_of:165,read:[73,133,134,136,137,162,164,165,166,168,169,170,176,213,232],read_into:176,reader:[62,125,126,132,134,136,137,159,160,162,164,165,167,168,169,170,171,232,235],realloc:[141,144,172,174,235],realloc_func:[144,219,221],realloc_func_ctx:[144,219,221],reconstruct:[98,104],recurs:91,refer:[39,73,122,228,231,238],refrain:199,regex:[25,26,115,212],regex_length:26,region:[1,2,63,138,139,170,172,173,174,220,221,222,224,235],reiniti:175,relax:[36,40,232],releas:[42,45,65,66,67,117,128,159,211,216],reli:98,remain:[73,124,195],rememb:32,remov:224,report:[213,227],repres:[57,102,104,157,199,233],represent:[32,69,122,190,202,205,232],request:[89,91,92,126,133,172,173,174],requir:[42,62,63,137,142,170,213,224,230,232,233,236],required_major:42,required_micro:42,required_minor:42,reserv:176,resiz:144,resourc:[45,128,159,211],respons:[3,34,35,36,37,38,39,40,216,236],restor:[98,140],result:[34,35,36,37,38,39,40,41,49,58,60,63,73,82,88,116,122,129,131,140,141,158,161,178,179,201,203,204,214],retriev:[75,86,101,102,115,122],reus:175,revers:142,rewind:176,rfc:207,routin:[0,224,228,231,232],run:[213,226],runtim:[33,42,122,123,200,212],safe:[47,236],safer:74,same:[35,38,43,52,53,149,199,224],sampl:230,save:98,scope:[9,82,199],scope_data:212,scope_len:[82,212],second:[29,118,120,150,157,224,234],section:201,see:[4,55,56,62,70,89,92,124,137,170,198,199,208,218,232,234,235,238],seek:167,seek_end:176,semant:43,sensit:[89,90,92],sent:218,sequenc:[137,155,165,170,204,205,232],sequenti:[34,35,36,155,235],seri:213,serial:[4,144,221,235],serialis:[129,131],serv:47,server:[29,119,199],set:[2,34,35,36,37,38,39,40,41,55,56,60,72,115,116,124,130,135,139,141,142,144,146,163,165,168,169,176,177,195,196,199,201,208,209,213,224,230],shall:[3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,21,23,24,29,31,32,35,38,43,44,45,46,49,50,51,52,53,54,59,60,61,63,64,71,73,75,78,79,80,83,86,89,91,92,93,97,106,107,108,109,110,111,112,113,114,115,116,118,119,120,121,122,129,130,140,141,143,145,147,161,162,165,178],share:230,should:[11,25,26,27,31,45,47,49,51,52,59,60,62,63,64,72,81,82,84,85,88,89,91,92,98,99,100,101,105,114,115,117,123,126,133,134,143,155,162,165,168,178,182,183,184,191,192,196,199,202,203,224,238],show:224,sign:[17,18,41,78],similar:[29,82,88,139,166,232],similarli:222,simpl:233,simpli:[213,226,230,233],simplifi:213,sinc:[10,28,30,51,83,107,118,120,150,155,157],singl:[4,72,146,199,202,204,221,233],situat:[52,98,142],sixteen:57,size:[19,44,57,117,126,133,144,172,173,174,176,178,179,185,195,197,199,201,214,222],size_t:[1,2,34,35,36,37,38,39,40,73,97,98,125,126,133,138,139,141,144,145,156,161,166,170,172,173,174,176,178,179,185,195,196,197,201,207,208,213,214,218,219,221,222,232,234,235],sizeof:[1,2,138,139,157,172,180,201],slower:145,small:[199,223],smaller:194,snprintf:[179,201],socket:164,softwar:[137,170,232],some:[32,193,227],someth:[69,165],sort:[147,181],sourc:[133,136,164],space:[74,176,195,215],spec:84,special:[52,203],specif:[55,56,116,137,157,170,173,174,199,200,213,224,226,227,232],specifi:[3,10,13,48,51,52,53,59,107,224,230,234],speed:199,src:[44,50,51,52,53,148,180,195,210],ssize_t:[72,146,166,203,213],stack:[62,71,73,117,142,176,199,224],stand:142,standard:[91,195,207],start:[5,34,35,36,41,51,52,98,157,209,224],state:[19,44,213,224],stderr:[62,137,165,170,176,213,232,234,235],stdin:[170,232],stdin_fileno:[137,170,232],stdio:[57,137,157,170,176,213,230,232,235],stdlib:[137,213,232],stdout:[137,170,232],steal:60,stolen:60,stop:[124,129,131,213],store:[20,21,60,81,82,185,199,204,222,233],str:[34,35,36,37,38,39,40,41,52,58,154,156,157,158,170,179,182,187,188,191,192,193,196,201,202,212,214,224,232,235],strcasecmp:181,strcmp:[117,137,170,232],stream:[126,133,164,166,169,170,171,176,228,229,231],strerror:185,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,40,41,55,56,57,58,69,70,72,81,82,88,89,90,92,96,98,101,115,116,122,129,131,137,146,154,156,158,170,177,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,201,203,205,206,207,209,214,224,228,231,232,234,238],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,72,102,146,199,224],strncpy:195,strncpy_:195,strnlen:197,strptr:201,strtoll:41,struct:[30,48,57,62,68,98,117,120,131,137,141,157,170,180,193,199,212,213,221],structur:[39,48,57,59,60,62,117,131,137,143,157,170,175,180,191,199,209,212,213,215,219,227,233,236],strv:186,style:[43,147,157,177,179,183,184,189,214,234],sub:[4,13,14,75,86,117],sub_it:117,subdocu:[91,209],substitut:223,subsystem:227,subtyp:[6,79,198,199,212],success:[5,15,19,34,35,36,37,38,39,40,44,72,135,136,144,145,146,163,164],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,73,93,97,98,180],suggest:[32,122],suitabl:[151,187],supersed:[35,38],suppli:[63,129,161,216,217,219],support:[32,78,226,232,235],sure:224,swap:222,symbol:[27,34,35,36,37,38,39,40,116,212],system:[0,11,32,135,166,226,228,231,236],take:[28,30,53,122,173,176,184,193,224],target:[11,57,230],target_link_librari:230,tcp:221,tediou:224,tell:171,temporarili:176,termin:[8,9,32,41,51,52,56,186,195,203,238],test:230,text:[202,238],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,35,36,42,43,80,102,122,147,166,195,233],thei:[29,149,181,226],them:[57,137,232],therefor:[73,102,199,233],thi:[1,2,4,5,9,15,20,21,22,27,29,31,32,33,35,38,42,43,45,46,47,48,51,52,53,59,60,63,64,70,71,75,79,80,81,85,86,88,94,95,96,98,99,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,119,122,123,129,131,137,138,139,140,141,142,145,155,160,164,166,168,170,172,173,174,176,177,178,179,180,183,184,185,186,187,193,194,195,198,199,201,202,206,210,213,216,218,220,221,222,224,226,232,233,234,235,239],third:66,those:[51,52,53,60,223],thread:[47,225,228,231,233],through:[117,174,202,208,209,238],throughout:142,time:[10,22,98,101,102,104,107,117,119,150,155,157,224,232,236],time_t:[28,118,150,233],timeout:68,timestamp:[29,113,119,212,233],timev:[30,68,120],timezon:10,too:[176,195],top:60,trail:[32,72,146,179,194,195,196,234],transfer:[60,180],transform:137,translat:181,treat:199,tri:227,truli:222,truncat:194,tutori:[228,231],two:[43,57,149,192,193,224,233,234],txt:230,type:[3,9,11,13,16,20,21,23,24,25,26,27,29,31,33,57,75,76,77,79,81,84,85,86,105,106,107,108,109,110,111,112,113,114,115,116,117,119,121,123,157,200,212,213,224,227,230,232],type_cod:213,typedef:[48,57,62,117,121,127,131,137,141,157,160,166,170,174,180,193,198,199,200,202,209,212,213,221],typic:[119,233],u0000:203,uint32_t:[6,29,54,60,62,75,79,81,82,84,86,88,98,102,104,113,116,119,122,151,176,177,193,194,199,201,202,204,212,213],uint64_t:57,uint8_t:[6,60,64,73,75,79,82,86,97,98,125,144,145,146,153,157,161,170,176,199,212,213,219,221,235],undefin:[31,199,213],under:[137,142,170,232],underli:[60,106,107,108,109,110,111,112,113,122,135,136,165,166,167,169,171,178,199,215,218,235],unichar:[190,204],unicod:[25,26,190,202,204],uniniti:[14,50,72,176,180],union:212,uniqu:[155,236],unix:[10,28,30,83,107,118,120,150,157,166,233,236],unknown:165,unless:[59,137,170,232],unlik:[20,21],unrecogn:213,unsign:[104,157,202,233,234,235],unsupport:[124,213],until:[33,79],unus:[126,133],upon:[34,35,36,37,38,39,40,93,97,137,235],usag:[137,170,213,232],use:[6,7,8,19,32,35,38,41,47,48,51,60,103,104,122,137,141,143,155,170,174,175,180,192,199,201,208,209,210,213,215,224,226,230,232,233,234,238],used:[11,20,21,27,29,31,32,39,47,48,51,62,63,64,84,117,119,129,131,137,140,141,155,157,160,164,168,170,174,198,200,202,204,208,209,224,232,233,236,239],useful:[33,43,98,137,173,178,193,218,220,221,222,232,235,239],user:[133,164],uses:[19,32,43,192,234,236],using:[3,8,13,27,32,35,38,45,73,82,90,114,117,122,124,129,130,135,144,152,153,157,161,163,201,219,224,230,233],utc:[10,22],utf8:[32,122,203,204,205,206,207],utf8_len:[203,207],utf:[8,9,32,34,35,36,37,38,39,40,72,81,82,88,122,146,187,190,193,202,203,204,205,206,207,209,223,224,228,231,234,237],v_arrai:213,v_binari:[212,213],v_binary_len:213,v_bool:[212,213],v_code:[212,213],v_code_len:213,v_codewscop:212,v_collect:213,v_collection_len:213,v_datetim:212,v_dbpointer:212,v_decimal128:[212,213],v_doc:212,v_document:213,v_doubl:[212,213],v_increment:213,v_int32:[212,213],v_int64:[212,213],v_int8:212,v_oid:[212,213],v_option:213,v_regex:[212,213],v_scope:213,v_subtyp:213,v_symbol:[212,213],v_symbol_len:213,v_timestamp:[212,213],v_utf8:[212,213],v_utf8_len:213,va_list:[53,184,214],val:[3,6,7,8,9,10,12,13,16,17,18,24,25,27,28,29,30,32,33,199],valid:[25,26,32,41,55,56,72,73,79,98,117,122,146,156,161,162,167,207,208,209,227],valu:[6,7,10,12,13,16,17,18,19,20,21,22,23,27,28,29,30,31,32,33,34,35,36,41,57,65,66,67,76,77,80,85,98,99,100,106,107,108,109,110,111,112,123,130,147,157,166,180,199,201,202,208,209,211,212,224,232],value_typ:212,variabl:130,variad:[51,52,214,224],varieti:224,variou:[192,198,238,239],verbos:[25,26],veri:52,verifi:[75,85,86,99,100,105,207],version:[0,41,42,51,65,66,67,69,89,92,137,154,155,170,181,197,213,228,230,231,232],via:[48,72,135,136,142,146,163],visit:124,visit_aft:213,visit_arrai:213,visit_befor:213,visit_binari:213,visit_bool:213,visit_cod:213,visit_codewscop:213,visit_corrupt:213,visit_date_tim:213,visit_dbpoint:213,visit_decimal128:213,visit_docu:213,visit_doubl:213,visit_int32:213,visit_int64:213,visit_maxkei:213,visit_minkei:213,visit_nul:213,visit_oid:213,visit_regex:213,visit_symbol:213,visit_timestamp:213,visit_undefin:213,visit_unsupported_typ:213,visit_utf8:213,visitor:[124,213],vtabl:[124,141],wai:[52,53,68,174,233],walk:[208,209,238],want:[33,64,119,122,130,137,218,222,224,232,233,234,235,239],warranti:[137,170,232],well:[68,222,232],went:220,were:[76,77,78,124],what:[130,234],when:[4,11,14,20,21,45,59,60,65,66,67,106,107,108,109,110,111,112,113,114,115,122,134,143,145,160,162,168,173,176,192,199,202,210,213,215,219,221,224,226,234],whenev:224,where:[98,177,194,208,232],whether:[134,162,175,191],which:[1,2,32,35,38,41,64,81,82,97,101,115,138,139,170,172,176,192,195,199,206,209,232,235],white:74,whitespac:41,whose:206,window:236,wish:174,within:[32,54,68,70,155,171,199,206,207,208,234,238],without:[98,123,137,170,232,236],work:[52,53,137,145,173,238],world:224,would:[19,44,193,224],wrap:[180,224],wrap_bson:180,wrapper:[1,2,138,139,172,179,180,185],write:[137,170,176,195,215,217,232],writer:[215,216,217,218,220,221,235],written:[179,214,218],wrong:[140,141],www:[137,170,232],yet:235,yield:4,you:[4,33,45,59,63,64,69,79,80,85,99,100,105,119,122,137,157,170,174,176,178,180,193,208,209,218,220,221,222,224,230,232,233,234,235,236,238,239],your:[124,201,213,228,231,233,236,237],zero:[1,2,41,43,54,60,76,138,139,166,172,195,209,222]},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_canonical_extended_json()","bson_array_as_json()","bson_array_as_relaxed_extended_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_set_outermost_array()","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_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","Libbson Versioning"],titleterms:{"function":[48,57,62,68,117,131,137,142,157,170,193,198,199,200,202,212,213,221,223,239],"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,43,44,46,47,49,54,55,56,60,61,64,65,66,67,69,70,72,73,74,76,77,78,80,81,82,83,85,87,88,89,90,91,92,93,97,98,99,100,101,102,103,104,105,114,115,116,118,121,122,123,124,126,129,133,134,135,136,138,139,143,144,145,146,147,149,150,151,156,161,162,163,164,165,166,171,172,176,178,179,180,181,182,183,184,185,191,192,196,197,201,203,205,206,207,208,209,214,215,218,219],IDs:233,The:224,Using:230,api:0,arrai:[201,224],basic:213,bson:[224,230,232,234,235],bson_aligned_alloc0:2,bson_aligned_alloc:1,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_canonical_extended_json:34,bson_array_as_json:35,bson_array_as_relaxed_extended_json:36,bson_as_canonical_extended_json:37,bson_as_json:38,bson_as_json_with_opt:39,bson_as_relaxed_extended_json:40,bson_ascii_strtol:41,bson_check_vers:42,bson_compar:43,bson_concat:44,bson_context_destroi:45,bson_context_get_default:46,bson_context_new:47,bson_context_t:48,bson_copi:49,bson_copy_to:50,bson_copy_to_exclud:51,bson_copy_to_excluding_noinit:52,bson_copy_to_excluding_noinit_va:53,bson_count_kei:54,bson_decimal128_from_str:55,bson_decimal128_from_string_w_len:56,bson_decimal128_t:57,bson_decimal128_to_str:58,bson_destroi:59,bson_destroy_with_st:60,bson_equ:61,bson_error_t:62,bson_fre:63,bson_get_data:64,bson_get_major_vers:65,bson_get_micro_vers:66,bson_get_minor_vers:67,bson_get_vers:69,bson_has_field:70,bson_init:71,bson_init_from_json:72,bson_init_stat:73,bson_isspac:74,bson_iter_arrai:75,bson_iter_as_bool:76,bson_iter_as_doubl:77,bson_iter_as_int64:78,bson_iter_binari:79,bson_iter_bool:80,bson_iter_cod:81,bson_iter_codewscop:82,bson_iter_date_tim:83,bson_iter_dbpoint:84,bson_iter_decimal128:85,bson_iter_docu:86,bson_iter_doubl:87,bson_iter_dup_utf8:88,bson_iter_find:89,bson_iter_find_cas:90,bson_iter_find_descend:91,bson_iter_find_w_len:92,bson_iter_init:93,bson_iter_init_find:94,bson_iter_init_find_cas:95,bson_iter_init_find_w_len:96,bson_iter_init_from_data:97,bson_iter_init_from_data_at_offset:98,bson_iter_int32:99,bson_iter_int64:100,bson_iter_kei:101,bson_iter_key_len:102,bson_iter_next:103,bson_iter_offset:104,bson_iter_oid:105,bson_iter_overwrite_bool:106,bson_iter_overwrite_date_tim:107,bson_iter_overwrite_decimal128:108,bson_iter_overwrite_doubl:109,bson_iter_overwrite_int32:110,bson_iter_overwrite_int64:111,bson_iter_overwrite_oid:112,bson_iter_overwrite_timestamp:113,bson_iter_recurs:114,bson_iter_regex:115,bson_iter_symbol:116,bson_iter_t:117,bson_iter_time_t:118,bson_iter_timestamp:119,bson_iter_timev:120,bson_iter_typ:121,bson_iter_utf8:122,bson_iter_valu:123,bson_iter_visit_al:124,bson_json_data_reader_ingest:125,bson_json_data_reader_new:126,bson_json_mode_t:127,bson_json_opts_destroi:128,bson_json_opts_new:129,bson_json_opts_set_outermost_arrai:130,bson_json_opts_t:131,bson_json_reader_destroi:132,bson_json_reader_new:133,bson_json_reader_new_from_fd:134,bson_json_reader_new_from_fil:135,bson_json_reader_read:136,bson_json_reader_t:137,bson_malloc0:139,bson_malloc:138,bson_mem_restore_vt:140,bson_mem_set_vt:141,bson_new:143,bson_new_from_buff:144,bson_new_from_data:145,bson_new_from_json:146,bson_oid_compar:147,bson_oid_copi:148,bson_oid_equ:149,bson_oid_get_time_t:150,bson_oid_hash:151,bson_oid_init:152,bson_oid_init_from_data:153,bson_oid_init_from_str:154,bson_oid_init_sequ:155,bson_oid_is_valid:156,bson_oid_t:157,bson_oid_to_str:158,bson_reader_destroi:159,bson_reader_destroy_func_t:160,bson_reader_new_from_data:161,bson_reader_new_from_fd:162,bson_reader_new_from_fil:163,bson_reader_new_from_handl:164,bson_reader_read:165,bson_reader_read_func_t:166,bson_reader_reset:167,bson_reader_set_destroy_func:168,bson_reader_set_read_func:169,bson_reader_t:170,bson_reader_tel:171,bson_realloc:172,bson_realloc_ctx:173,bson_realloc_func:174,bson_reinit:175,bson_reserve_buff:176,bson_set_error:177,bson_sized_new:178,bson_snprintf:179,bson_steal:180,bson_strcasecmp:181,bson_strdup:182,bson_strdup_printf:183,bson_strdupv_printf:184,bson_strerror_r:185,bson_strfreev:186,bson_string_append:187,bson_string_append_c:188,bson_string_append_printf:189,bson_string_append_unichar:190,bson_string_fre:191,bson_string_new:192,bson_string_t:193,bson_string_trunc:194,bson_strncpi:195,bson_strndup:196,bson_strnlen:197,bson_subtype_t:198,bson_t:[199,224],bson_type_t:200,bson_uint32_to_str:201,bson_unichar_t:202,bson_utf8_escape_for_json:203,bson_utf8_from_unichar:204,bson_utf8_get_char:205,bson_utf8_next_char:206,bson_utf8_valid:207,bson_valid:208,bson_validate_with_error:209,bson_value_copi:210,bson_value_destroi:211,bson_value_t:212,bson_visitor_t:213,bson_vsnprintf:214,bson_writer_begin:215,bson_writer_destroi:216,bson_writer_end:217,bson_writer_get_length:218,bson_writer_new:219,bson_writer_rollback:220,bson_writer_t:221,bson_zero_fre:222,build:201,charact:223,check:213,clock:68,cmake:230,compar:[157,233],composit:233,config:230,convers:157,convert:232,corrupt:213,creat:224,creation:233,cross:225,custom:213,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,44,45,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,227],document:[224,234,235],dot:234,duplic:199,element:201,encod:238,endian:226,error:[72,135,136,146,163,227],exampl:[34,35,36,37,38,39,40,48,52,55,56,57,58,62,93,97,117,137,154,157,165,170,176,193,198,199,200,202,212,213,221,232],fetch:233,field:234,find:234,from:235,gener:233,guid:229,handl:227,hash:[157,233],includ:230,index:228,introduct:231,iter:234,json:232,kei:[199,201],libbson:[230,231,239],macro:239,manag:142,memori:142,notat:[224,234],note:[199,225],object:[224,233],objectid:233,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,44,45,47,49,50,51,52,53,54,55,56,58,59,60,61,63,64,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,118,119,120,121,122,123,124,125,126,128,129,130,132,133,134,135,136,138,139,141,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,169,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,194,195,196,197,201,203,204,205,206,207,208,209,210,211,214,215,216,217,218,219,220,222],pars:[232,233,234],perform:199,pkg:230,platform:225,program:230,read:235,recurs:234,refer:0,routin:223,sequenc:[235,238],simplifi:224,sort:233,stream:[232,235],string:[157,223,233],structur:224,sub:[224,234],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,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,239],system:68,thread:236,time:233,tutori:237,using:234,utf:238,valid:[157,213,234,238],version:239,write:235,your:230}}) \ No newline at end of file diff --git a/libbson/1.24.2/streaming-bson.html b/libbson/1.24.2/streaming-bson.html new file mode 100644 index 0000000000000000000000000000000000000000..7b0375640780ecbb0389661dfc9eec97891ca71f --- /dev/null +++ b/libbson/1.24.2/streaming-bson.html @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + Streaming BSON — libbson 1.24.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.24.2/threading.html b/libbson/1.24.2/threading.html new file mode 100644 index 0000000000000000000000000000000000000000..dc21d83cfde0e67af82e8078a53646873333593a --- /dev/null +++ b/libbson/1.24.2/threading.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + Threading — libbson 1.24.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.24.2/tutorial.html b/libbson/1.24.2/tutorial.html new file mode 100644 index 0000000000000000000000000000000000000000..54aa11942d802e4d40a7adab8a4bbe0f7cfb899b --- /dev/null +++ b/libbson/1.24.2/tutorial.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + Tutorial — libbson 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libbson/1.24.2/utf8.html b/libbson/1.24.2/utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..80c07c5e7186f727b85c8c4b3e61bf522e7aef6b --- /dev/null +++ b/libbson/1.24.2/utf8.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + UTF-8 — libbson 1.24.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.24.2/version.html b/libbson/1.24.2/version.html new file mode 100644 index 0000000000000000000000000000000000000000..622260b7c61872a6dd78afc8283f6b1af95b4fb1 --- /dev/null +++ b/libbson/1.24.2/version.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + Libbson Versioning — libbson 1.24.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
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libbson/current b/libbson/current index 3e940eb72468c14f7fe72a2d080252241ff949c3..0b4c970ea2c7b506f928cbe70c316cd3fee29fe4 120000 --- a/libbson/current +++ b/libbson/current @@ -1 +1 @@ -1.24.1 \ No newline at end of file +1.24.2 \ No newline at end of file diff --git a/libbson/index.html b/libbson/index.html index 189ad0a16b8c16bee45ccb4680022557823dd8f0..93ebc4138d8af7ea372196717d688994a5a164b9 100644 --- a/libbson/index.html +++ b/libbson/index.html @@ -1,10 +1,11 @@ - + - + - - + + - libbson Releases — MongoDB C Driver 1.24.1 + libbson Releases — MongoDB C Driver 1.24.2 - - - - - + @@ -48,7 +45,7 @@
  • previous
  • - +
    @@ -56,109 +53,110 @@
    -
    -

    libbson Releases

    -

    Latest Release (1.24.1)

    +
    +

    libbson Releases

    +

    Latest Release (1.24.2)

    Current Development (master)

    -
    +
    @@ -167,7 +165,7 @@ diff --git a/libmongoc-releases.html b/libmongoc-releases.html index e4367fa3cdc46e947e20fab7503b14d56ec99311..f8c6c1df89502985853d7db6d056f3d598a05094 100644 --- a/libmongoc-releases.html +++ b/libmongoc-releases.html @@ -1,10 +1,11 @@ - + - + - - + + - libmongoc Releases — MongoDB C Driver 1.24.1 + libmongoc Releases — MongoDB C Driver 1.24.2 - - - - - + @@ -52,7 +49,7 @@
  • previous |
  • - + @@ -60,110 +57,111 @@
    -
    -

    libmongoc Releases

    -

    Latest Release (1.24.1)

    +
    +

    libmongoc Releases

    +

    Latest Release (1.24.2)

    Current Development (master)

    -
    +
    @@ -172,7 +170,7 @@ diff --git a/libmongoc/1.24.1/advanced-connections.html b/libmongoc/1.24.1/advanced-connections.html index 89c643446f027febeb6183c5f852f06a87e57606..2aa8ca95356a9ed1d12c337394c55474f3cfc38c 100644 --- a/libmongoc/1.24.1/advanced-connections.html +++ b/libmongoc/1.24.1/advanced-connections.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/aggregate.html b/libmongoc/1.24.1/aggregate.html index b8bb1a055e6bad20f0adaa5f1885c1f12f6b2997..35a4a5042d5f05c5980828a2cc5e5ade32e94bd7 100644 --- a/libmongoc/1.24.1/aggregate.html +++ b/libmongoc/1.24.1/aggregate.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/api.html b/libmongoc/1.24.1/api.html index 581919a08982a8e17cd70d0edf58b253c79bd229..91a4e911d2235a57fd81c899cd7f57aed01b1834 100644 --- a/libmongoc/1.24.1/api.html +++ b/libmongoc/1.24.1/api.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/application-performance-monitoring.html b/libmongoc/1.24.1/application-performance-monitoring.html index 3dc33adb7a89a5cfba8b92df7222d126ac4d7233..f118822681914eb94b675c39e5ed24adc407eb23 100644 --- a/libmongoc/1.24.1/application-performance-monitoring.html +++ b/libmongoc/1.24.1/application-performance-monitoring.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/authentication.html b/libmongoc/1.24.1/authentication.html index dd848c0b155fc6d1607411ba2403fce7f6289260..feb121430298b109e928e17eb2b77c34b91ee59f 100644 --- a/libmongoc/1.24.1/authentication.html +++ b/libmongoc/1.24.1/authentication.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/basic-troubleshooting.html b/libmongoc/1.24.1/basic-troubleshooting.html index e0ab32cd63f9bc34a666462be251fc803456b8b7..2a568a5779b333e59f0fa638a0eedcc6f58fc853 100644 --- a/libmongoc/1.24.1/basic-troubleshooting.html +++ b/libmongoc/1.24.1/basic-troubleshooting.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/bulk.html b/libmongoc/1.24.1/bulk.html index 4102f794dec27b772886354236b8ae7dbc3b45dd..0ea1fa42c243de5ff9c18bfc8a330c296c853b15 100644 --- a/libmongoc/1.24.1/bulk.html +++ b/libmongoc/1.24.1/bulk.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/client-side-field-level-encryption.html b/libmongoc/1.24.1/client-side-field-level-encryption.html index 48563c847faea44f026acc110c898b65738d8e14..7b46eb887a3cff56d09bcd5129cfd6aba9146339 100644 --- a/libmongoc/1.24.1/client-side-field-level-encryption.html +++ b/libmongoc/1.24.1/client-side-field-level-encryption.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/configuring_tls.html b/libmongoc/1.24.1/configuring_tls.html index 5b1d93f5336291fc3350e5bbfe8dce726c49163f..326bb3ab0f53253ca06b1071b8ac40f9860da9fd 100644 --- a/libmongoc/1.24.1/configuring_tls.html +++ b/libmongoc/1.24.1/configuring_tls.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/connection-pooling.html b/libmongoc/1.24.1/connection-pooling.html index 3d90310e8bf3bb735d747d44ab91a9697a89cef8..0925c01605e9ef18666b42a51d81254f1655aca4 100644 --- a/libmongoc/1.24.1/connection-pooling.html +++ b/libmongoc/1.24.1/connection-pooling.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/cursors.html b/libmongoc/1.24.1/cursors.html index 12fb806a7862af1800db2f47e18d827558cbda2f..d849392593dc1c3caeeb55fb4fa2a386f4e87f8d 100644 --- a/libmongoc/1.24.1/cursors.html +++ b/libmongoc/1.24.1/cursors.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/debugging.html b/libmongoc/1.24.1/debugging.html index 1fe9964300a9981e29facf965a785c815b1c58d7..5e62e04b8a5489e1a4ffa0876813f1156ec14c76 100644 --- a/libmongoc/1.24.1/debugging.html +++ b/libmongoc/1.24.1/debugging.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/distinct-mapreduce.html b/libmongoc/1.24.1/distinct-mapreduce.html index 133e4ae97906c1e9e65d36b68a388acfa53f324f..68ab1adc596ae36778b1f209bb62a896675913ed 100644 --- a/libmongoc/1.24.1/distinct-mapreduce.html +++ b/libmongoc/1.24.1/distinct-mapreduce.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/errors.html b/libmongoc/1.24.1/errors.html index 32b30be1880c4a068121364e246a23f408643030..a4d66bf3239ee17a874bdd1707525855da6be088 100644 --- a/libmongoc/1.24.1/errors.html +++ b/libmongoc/1.24.1/errors.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/full_index.html b/libmongoc/1.24.1/full_index.html index 9ba1d7ac0b41fac9d015d18f3d13a05642431d2d..3bf61007c42dd40646f981c58919b1067b33ac15 100644 --- a/libmongoc/1.24.1/full_index.html +++ b/libmongoc/1.24.1/full_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.24.1/gridfs.html b/libmongoc/1.24.1/gridfs.html index 3116dea27b00f1b8420f492642999b9e5e60cf3f..77e67dd30a8e05b8495a3b9ae8a7b8770024392a 100644 --- a/libmongoc/1.24.1/gridfs.html +++ b/libmongoc/1.24.1/gridfs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/guides.html b/libmongoc/1.24.1/guides.html index 3ffab751f8ecab7254604d327fc9aa2fc63c7861..5ae0323c464f379aa7da519714e94a4892260c22 100644 --- a/libmongoc/1.24.1/guides.html +++ b/libmongoc/1.24.1/guides.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/in-use-encryption.html b/libmongoc/1.24.1/in-use-encryption.html index b5ec49358cd09f49e550a52735e0a87d336163d6..4ea2407fd9ae63eee48c80fa7de2f8d2127820ca 100644 --- a/libmongoc/1.24.1/in-use-encryption.html +++ b/libmongoc/1.24.1/in-use-encryption.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/index.html b/libmongoc/1.24.1/index.html index 2c431b6753a8a413c271f5d944f988391cbe4b5c..a269e265953cd0afa025d43c345984f3f04c31ca 100644 --- a/libmongoc/1.24.1/index.html +++ b/libmongoc/1.24.1/index.html @@ -39,6 +39,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/init-cleanup.html b/libmongoc/1.24.1/init-cleanup.html index f53dc29473c5f2cc61a87d6fca40f1e0f963d908..1f1ea6e6be3196a03f742325e7d16f258b6bcf8e 100644 --- a/libmongoc/1.24.1/init-cleanup.html +++ b/libmongoc/1.24.1/init-cleanup.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/installing.html b/libmongoc/1.24.1/installing.html index b11dfe9b8ef434e2d871b8bdee2a99ed235677f4..3ba3e5bdab11c1a4dd5d3da3dafdb9661303b5f0 100644 --- a/libmongoc/1.24.1/installing.html +++ b/libmongoc/1.24.1/installing.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/lifecycle.html b/libmongoc/1.24.1/lifecycle.html index 8ea645b65cf3388f244b066d93ef73b02dc1d73b..4f9c8a5f3244323f60e532450839670212184c88 100644 --- a/libmongoc/1.24.1/lifecycle.html +++ b/libmongoc/1.24.1/lifecycle.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/logging.html b/libmongoc/1.24.1/logging.html index a5d2061740225d6418e449c098e548999f172dce..325bbf564302d83b4979fae15f4e4ae97b692203 100644 --- a/libmongoc/1.24.1/logging.html +++ b/libmongoc/1.24.1/logging.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/manage-collection-indexes.html b/libmongoc/1.24.1/manage-collection-indexes.html index 23e2a63a40d62f1d660f916ed70f3c8c2c37362f..b7a9711554fbf124efe7b26572738d38664e853d 100644 --- a/libmongoc/1.24.1/manage-collection-indexes.html +++ b/libmongoc/1.24.1/manage-collection-indexes.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc-common-task-examples.html b/libmongoc/1.24.1/mongoc-common-task-examples.html index f3342f4f60e83076c5a4c4e989c425cbe142d8f8..b77bbf977ea9c55bd2b13b6e61af349bd2bbabe7 100644 --- a/libmongoc/1.24.1/mongoc-common-task-examples.html +++ b/libmongoc/1.24.1/mongoc-common-task-examples.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_callbacks_destroy.html b/libmongoc/1.24.1/mongoc_apm_callbacks_destroy.html index ac699360be3aba6ac9f0b244b4fc29a46436bdaf..04d22639d09dcb455ced471042c2c971facba072 100644 --- a/libmongoc/1.24.1/mongoc_apm_callbacks_destroy.html +++ b/libmongoc/1.24.1/mongoc_apm_callbacks_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_callbacks_new.html b/libmongoc/1.24.1/mongoc_apm_callbacks_new.html index 7c6d7b30fa9b9992302b9ded9408a0046ae31452..bac71553a36375359dbce9a7608f388c983ab10b 100644 --- a/libmongoc/1.24.1/mongoc_apm_callbacks_new.html +++ b/libmongoc/1.24.1/mongoc_apm_callbacks_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_callbacks_t.html b/libmongoc/1.24.1/mongoc_apm_callbacks_t.html index cf301e08c5cbe494e75615cec9eace980822c116..54e6360cce97298ee397ea1611101d99e11e4c06 100644 --- a/libmongoc/1.24.1/mongoc_apm_callbacks_t.html +++ b/libmongoc/1.24.1/mongoc_apm_callbacks_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_command_name.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_command_name.html index 2287403453d744522f8644de9ed80bcc181195e5..9253f1325c210518571514366053b251b14c6115 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_command_name.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_command_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_context.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_context.html index a14c5ab4472aaae9fa0aebd9ae0e9791e34daff6..20ae7cc205fa53b5016aa172c9995df5f005a427 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_duration.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_duration.html index c36231a7b155d5ef759bee96b13fc8a8c42c1cfd..b19cfd6dc176ed92cc0e22538eef9440d76e16a2 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_duration.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_duration.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_error.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_error.html index a65f9e7650a94adbf801fed3e5babe77e9d0d7bd..47b9317fbf4bbe44af886d3c1fbb6f1356ac9746 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_error.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_host.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_host.html index ca12f89176a9bef0ccce229bdbabb48190277c9c..91de7bb71e4edea3f807c266b1d7b85893a06e57 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_operation_id.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_operation_id.html index 08b5fef17aa3962035cdc4bdb25e8bb3fb739b3d..73c526c0c9afb0f8698567ff1f787f9fb6c38a84 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_operation_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_operation_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_reply.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_reply.html index 5c3417b03bc8b953065a9e3a487d247dac943f3e..0239297c5471f014d786a2c6eb433775eba8cb73 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_reply.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_reply.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_request_id.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_request_id.html index a50e1ab8855d9e9428ed47f92f36a20caf7386d8..0c6c4dbac3e92947ec5fd18cca300f356dc325b1 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_request_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_request_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id.html index 19bd11ca990a282e6249cc960b38596cc93b80bf..de44b0d9d044ec69cea5272a4567ce8d4871e7f2 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id_int64.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id_int64.html index 8b8c696ba7a6279e929f0b68171f1810458576a9..eeee121c79ce865c01bc11a6953194a0ab6ce4fe 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id_int64.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_connection_id_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_id.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_id.html index f58d765346f019045f7aca3985707feb2d7cdbd2..077bf8493589d85b2a2bb8ca20226ed0a9443a60 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_server_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_get_service_id.html b/libmongoc/1.24.1/mongoc_apm_command_failed_get_service_id.html index 1207d83cf05621be286181a151d4b7b9330b8bb4..982c3cbf06e97fe0331ff79e9853f63b2c6b290a 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_get_service_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_get_service_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_failed_t.html b/libmongoc/1.24.1/mongoc_apm_command_failed_t.html index c7038da25235c0c95b13e1cb85892fef8a475328..28dd7f0d977b17e49498a6dfca47f8d738198644 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_failed_t.html +++ b/libmongoc/1.24.1/mongoc_apm_command_failed_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_command.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_command.html index a6f3e5bcc16f24c20651eef3503170ee8b7970fa..ac3c367cd8465a99491652b7387ec27a0d9d870c 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_command.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_command.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_command_name.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_command_name.html index bb180c418eb8783043910456b90923b301373218..e9fb4b11cec97d9ece7039c826f57b8bd29a660b 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_command_name.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_command_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_context.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_context.html index 94ea89f2ac40d91451f407079461e8911406ce11..278c9b68cb1676921ac11484e5c4558198040f0f 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_database_name.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_database_name.html index e0c4da60c5fae4eeedda3705370dc6df9984cacc..c2ccda6da27d6af0bd45f8dd3d762df37be8c868 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_database_name.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_database_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_host.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_host.html index 250c081d9ed90344c94e2e910a0878db14f5fe3c..acc71ab800621066e6f49d5d2c2c2e36f602dc53 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_operation_id.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_operation_id.html index 3210be338a08076d0ba62f84abadd4aa2eeb3a3a..4f5ea111c390c27857ec58bdff351ce3e4eb5506 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_operation_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_operation_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_request_id.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_request_id.html index 9d05d5da049450c0b29c024d4074c9110fe23739..506a420e6ed4a6600286c43c524f9c5af77c3811 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_request_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_request_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id.html index db5320d70bd1d3de6b22078e86ec836f332cfeaf..6fdb81f28ef59ac33203c132d90834cc62b383c2 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id_int64.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id_int64.html index ae30a636eb7ca88cc5c1d4ddaae9b9b053b6c18f..4adeadc07e90c8aae783f0f29f06b76a31047181 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id_int64.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_server_connection_id_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_server_id.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_server_id.html index f5560a947132f3238389d539eb2237946d3af4a6..472af3e9a1acad7e1292cfb60bf9b938ad9b67e2 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_server_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_server_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_get_service_id.html b/libmongoc/1.24.1/mongoc_apm_command_started_get_service_id.html index fd03d4773c3d4715c13109db9c52de24db47b695..36494650caf63cf7982677c4c50b113fc9e4f86c 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_get_service_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_get_service_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_started_t.html b/libmongoc/1.24.1/mongoc_apm_command_started_t.html index 0714821189c07a941fb263073796b973c0d44bd9..2c9445168270443099cfe4d94a496c26b4e93244 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_started_t.html +++ b/libmongoc/1.24.1/mongoc_apm_command_started_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_command_name.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_command_name.html index 7d3ee7e67273509bea110560e24b37064defa132..3950d9118f34ef622a96e93f0970109696dd32a5 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_command_name.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_command_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_context.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_context.html index 0810a73f5d70675b8c6edefef05800bd6442da07..01b7ff3526c1afa992bde562b01f696087c34ecb 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_duration.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_duration.html index 3eefc8631347c3514f4ac881f4f041af2d39096f..950aa0e37ac1770deccb9f0117a03b84f5290e1f 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_duration.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_duration.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_host.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_host.html index a05b5b25e1e51c45a2ac8732cfd6f608a4da9eed..44aa1ab83101679ab4322f0a04488e94bfc26bfb 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_operation_id.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_operation_id.html index 406e025b67fdb5b21a251dc5053060ae1b40b50c..c82054262814efa0be1c120ab81f5f92dae27f5b 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_operation_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_operation_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_reply.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_reply.html index cd31d1f6fec2bab95a0b228dafa16d562096e81a..f274106340d440e92bb22773f109d38450a0ebeb 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_reply.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_reply.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_request_id.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_request_id.html index e79bfcd0ab8acc2be150849bd1c9d3ed4c836f8c..afbad5a9cc7d7c1a6443363d4e870a12bc7bd8af 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_request_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_request_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id.html index d4cd20e074d74c644ad74dd8d16e22c9f608064d..c8a018fe62341b4c0458b5916dcce90f07f0e78e 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id_int64.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id_int64.html index c59dbfaf31db220a5fde501071822dbf971c11c9..98cdf07f4498d4d6240caae1d4f0c164f2c7d4bc 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id_int64.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_connection_id_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_id.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_id.html index 6198f075836d529cb629d81f3904001fbf055f4f..d812c641355be070ec3a0ff72657ea8117659c5c 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_server_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_service_id.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_service_id.html index 6ea7477a3acdcb49ab1657010da207527e0ab927..b0b9f85209fedbea961f3befc14cc37e2790b239 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_service_id.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_get_service_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_command_succeeded_t.html b/libmongoc/1.24.1/mongoc_apm_command_succeeded_t.html index 3cde9aebfe13d80f76c68e16b7e28d9b6dbbe11f..1360d79119d0a4a63b705aaa292f4669833c9350 100644 --- a/libmongoc/1.24.1/mongoc_apm_command_succeeded_t.html +++ b/libmongoc/1.24.1/mongoc_apm_command_succeeded_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_changed_get_context.html b/libmongoc/1.24.1/mongoc_apm_server_changed_get_context.html index 0d6db4bb1cc1afdff4f72ad80da1ad21b30799be..ac333c43d2341c457d2ce38110b4f6b86adaea76 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_changed_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_server_changed_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_changed_get_host.html b/libmongoc/1.24.1/mongoc_apm_server_changed_get_host.html index b513aedde323fc99992931c2c2f76cce4e92b686..928a587f71271d72df9a33f2b9da16c3917cf9b3 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_changed_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_server_changed_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_changed_get_new_description.html b/libmongoc/1.24.1/mongoc_apm_server_changed_get_new_description.html index 7cb8e3dc958855879bd1513da597d00986a3eb0b..a54ac9e63679e4813b3e1aa12d769a3628cc02d6 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_changed_get_new_description.html +++ b/libmongoc/1.24.1/mongoc_apm_server_changed_get_new_description.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_changed_get_previous_description.html b/libmongoc/1.24.1/mongoc_apm_server_changed_get_previous_description.html index c4ddf2dc03c76492aad4e896e7018d8b9438a3da..9a8674f4b0f8923dff94e2560452eff0cfe8f0b9 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_changed_get_previous_description.html +++ b/libmongoc/1.24.1/mongoc_apm_server_changed_get_previous_description.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_changed_get_topology_id.html b/libmongoc/1.24.1/mongoc_apm_server_changed_get_topology_id.html index cf79ff5235d92f5abeb26a5d0b32349ddddb30d8..d10beedc6d439b34ab262ba8f38f9038f2bcb7ef 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_changed_get_topology_id.html +++ b/libmongoc/1.24.1/mongoc_apm_server_changed_get_topology_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_changed_t.html b/libmongoc/1.24.1/mongoc_apm_server_changed_t.html index 71c74723c7e12537daeb7e1c1318662965e6ddd8..c97cad36e8de2c24350941ff8bb45ce6083b4688 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_changed_t.html +++ b/libmongoc/1.24.1/mongoc_apm_server_changed_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_closed_get_context.html b/libmongoc/1.24.1/mongoc_apm_server_closed_get_context.html index bcc4b83ca15a62635ac68f06357f10f11a73499b..9363925825a982e1b5d633f52de3378b36d48547 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_closed_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_server_closed_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_closed_get_host.html b/libmongoc/1.24.1/mongoc_apm_server_closed_get_host.html index aa89728bdc93868cf513d50fb1dbad9558bafd9a..814bcfab1dd4b7c36ea05bc3bf3a4fc84fa83dde 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_closed_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_server_closed_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_closed_get_topology_id.html b/libmongoc/1.24.1/mongoc_apm_server_closed_get_topology_id.html index 4361a4ad4c57659b3c71ad1b60d4e95e729ef606..eacc98314d43b6351c0cc976469ebdc30fd55b23 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_closed_get_topology_id.html +++ b/libmongoc/1.24.1/mongoc_apm_server_closed_get_topology_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_closed_t.html b/libmongoc/1.24.1/mongoc_apm_server_closed_t.html index 0c1d52baa5464a490c02da3869f53c3193f6f3da..acbefc0b9a4da992a6dc0e5b74376aede3f60f00 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_closed_t.html +++ b/libmongoc/1.24.1/mongoc_apm_server_closed_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_awaited.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_awaited.html index ebeb03fd55f0fd79d3c609e4af30840082c8fea6..ee04bdb23c6462bbd0f5dba637db39a9c8db54ad 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_awaited.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_awaited.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_context.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_context.html index d7b13a0969f98a32ff6d2d8ed11aa6446a909ee3..c56ce904760e85f232c19a9bbe9004768e7ae2d0 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_duration.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_duration.html index 01047dc2425546a783e0ce9a2d7203dbaa5bb50a..4862b31c5c87222f8cda710345a22e345a85960a 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_duration.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_duration.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_error.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_error.html index 0a07b12e19717dd0f37ebe8f3b8fc96809c1cb8f..bcb1ee4749272a8e2d40db5610a77e0ea63b42ca 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_error.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_host.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_host.html index 3c29b22bad974f7ebce116df5824a18067802c80..82dbc6d86396e3e9baaa9167635d23f1b8da0779 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_t.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_t.html index 9b539a8cf22166299a415307bdf99943034a5785..86e6220f1a937d09997169ca65686f46a6e0a6e1 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_t.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_failed_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_awaited.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_awaited.html index ef1fd1248b0ff0fd32a9218556ef785c771779ff..a02adf6feb187774abb59a24c74572e5226224a7 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_awaited.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_awaited.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_context.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_context.html index f43c677be2354c8a19b84c89146fe82ac7ef5be9..04205d041ae73a4cb53cc76fd6cb3dabcf4dd057 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_host.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_host.html index 007bb93193d42d7722010db4121c3b7b7906ddb7..14998bcac654bbac4bd382dcc980e58b518d3481 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_t.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_t.html index 17259906cc6ca9d9a33bac88b8d425d8e2474f18..fe85b681d5326723af4c7a55f96b4d769e5df621 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_t.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_started_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html index 74c899fb935af6c09d876fa90d9255a7504f1418..fc8f04eeda0067779db0a361366800cfe2d17c94 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_awaited.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_context.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_context.html index 87cb10cfcf75c89c60524d4b048f93f77b78889a..17f907ecd93f3f75643cc0f92a5c4f5c2fa82efe 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html index ded862c94de4e0b487b8aae541c157bf81e872a9..571e0f38867f97cda8a5af20532baf927f451baf 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_duration.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_host.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_host.html index 229a8d2808f9386cbe0469bbb4aee74ac2af39c8..f9e2c6069e3f0204f9c310ecb42d035423a51964 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html index 2488d5adbb6087a1dfdd7098dd4b637cd7c8faf8..4854850f1d305989ea15da172e0e47dbbb2c0b75 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_get_reply.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_t.html b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_t.html index 3e5ac9acceccbfb115b1334cae915e6b93613ce0..235c4368d5e906fdc0ccac104bc63acba76a893a 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_t.html +++ b/libmongoc/1.24.1/mongoc_apm_server_heartbeat_succeeded_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_opening_get_context.html b/libmongoc/1.24.1/mongoc_apm_server_opening_get_context.html index aa8fb49d5c8044dd17c97cb0a33bcb126978ba6d..e7ba46cd55ad91e69e8c1be0c17a44b19cde4013 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_opening_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_server_opening_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_opening_get_host.html b/libmongoc/1.24.1/mongoc_apm_server_opening_get_host.html index 2c08c5fa2e302f62dff7960b6a1fc7d515d19069..f4fd64381b959c24317c5a04520d17493d0c3c17 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_opening_get_host.html +++ b/libmongoc/1.24.1/mongoc_apm_server_opening_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_opening_get_topology_id.html b/libmongoc/1.24.1/mongoc_apm_server_opening_get_topology_id.html index 8363e8b16d415d959142ae5e1dad0ea3827c6121..8a29ef96f1c7cb87c15f3e4c74e4f271f1beaef6 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_opening_get_topology_id.html +++ b/libmongoc/1.24.1/mongoc_apm_server_opening_get_topology_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_server_opening_t.html b/libmongoc/1.24.1/mongoc_apm_server_opening_t.html index 2a6eb4774a409e42f9605f0c08e3f4e0157931ab..7d4e3a259526fc5f76d1f2c7da38df66610ccf1b 100644 --- a/libmongoc/1.24.1/mongoc_apm_server_opening_t.html +++ b/libmongoc/1.24.1/mongoc_apm_server_opening_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_command_failed_cb.html b/libmongoc/1.24.1/mongoc_apm_set_command_failed_cb.html index 8ff864ce09b7ee1fe7c47e34b625d7b4d71a3f2c..cd7cda006b49b0144984c75e2f12578d46d202a7 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_command_failed_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_command_failed_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_command_started_cb.html b/libmongoc/1.24.1/mongoc_apm_set_command_started_cb.html index 13f985b7134324d9388ba01b9a443a24a7410181..e7bf7b7f437369b277499b55410faac808cf5336 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_command_started_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_command_started_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_command_succeeded_cb.html b/libmongoc/1.24.1/mongoc_apm_set_command_succeeded_cb.html index 65356aee7a56c57709654c400661d20d8158c2f5..58467035e7c35f12b83c978a4cf18500368df570 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_command_succeeded_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_command_succeeded_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_server_changed_cb.html b/libmongoc/1.24.1/mongoc_apm_set_server_changed_cb.html index ed889f2c73f7dc3516cd8f7888bc7ae6c71a4b0f..e34d9b579700764864d70cd5c36789be5d3f0063 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_server_changed_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_server_changed_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_server_closed_cb.html b/libmongoc/1.24.1/mongoc_apm_set_server_closed_cb.html index 69947a744080b17d583f2b37ce821a68be03756f..47210184a69edecee09e080d39bba8a2ae1db1a3 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_server_closed_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_server_closed_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_failed_cb.html b/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_failed_cb.html index ae43fa7fb2dcb8b4f5f7e5412ca397005c5d4d0f..3911ae698a8df6d7aa8bb16f68eb29e3ad7f01e1 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_failed_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_failed_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_started_cb.html b/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_started_cb.html index 7eeddeec4e5b61d869cf1bb7f535177ae30a6d97..79f3d7465323917dfa87aa5dbebb2d2db93f753b 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_started_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_started_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html b/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html index d8a5be293760c1ca511306fca041a0e759b1787e..6438bf652f51fe5664f0d541fbd145ce95b22b37 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_server_heartbeat_succeeded_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_server_opening_cb.html b/libmongoc/1.24.1/mongoc_apm_set_server_opening_cb.html index 49897a86fc967e2025833b2faf9f0374a3c8fe9c..2bccafa43943caf53a5bc8b1c96c0670c1baf361 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_server_opening_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_server_opening_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_topology_changed_cb.html b/libmongoc/1.24.1/mongoc_apm_set_topology_changed_cb.html index 319a940b43bbd1d664465e8fbe36ad1de4c8b689..95b3597da1c697c785701e6f2ec0803fce5aaf26 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_topology_changed_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_topology_changed_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_topology_closed_cb.html b/libmongoc/1.24.1/mongoc_apm_set_topology_closed_cb.html index f71d1b83ef1ee46f556cb93e61d5099aa351b1db..c4bafbaad85664e9512eee997c79882f8d4ba6e7 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_topology_closed_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_topology_closed_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_set_topology_opening_cb.html b/libmongoc/1.24.1/mongoc_apm_set_topology_opening_cb.html index 13a83285a46ea4e38a9d41de99c4ae72e04ecb21..32383b87ea4c7734f440456f82713c1226c9dc35 100644 --- a/libmongoc/1.24.1/mongoc_apm_set_topology_opening_cb.html +++ b/libmongoc/1.24.1/mongoc_apm_set_topology_opening_cb.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_context.html b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_context.html index 7ffa94434d88f5a8093457f76893400d6ccc08e5..ba126d06877af51f23ee03a056acbe044e424bf9 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_new_description.html b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_new_description.html index e2527cb6f864734dfa9eebed1b3fd55dcb34e795..48035d82b60d45dc514b61a3c1ff2af8a33a7dcf 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_new_description.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_new_description.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_previous_description.html b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_previous_description.html index 6062f8c4ba596d61eb2424a605e8895db3cc1912..5fb60ac583882a37cc57a697a76da809f3080ee0 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_previous_description.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_previous_description.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_topology_id.html b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_topology_id.html index 6b8b1f8557e177fbd14b1db88650f29ce8411809..382519efeb79ea7078eabec6073094f539a0f980 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_changed_get_topology_id.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_changed_get_topology_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_changed_t.html b/libmongoc/1.24.1/mongoc_apm_topology_changed_t.html index 97cb0a13d85115c62ee03acfabc60b2d82b1113a..0c81343b88e53d96e632a4b43a61637ae81475c3 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_changed_t.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_changed_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_closed_get_context.html b/libmongoc/1.24.1/mongoc_apm_topology_closed_get_context.html index 51128cf11e5199e6ae7477aafa3a8fb088126580..6c25d4d32d3a7c665fc1c19f67d3a00ebee4c975 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_closed_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_closed_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_closed_get_topology_id.html b/libmongoc/1.24.1/mongoc_apm_topology_closed_get_topology_id.html index ecb7c11bbe3ca2d00a3972d0596dadf14cdcfd90..c65f56b42fd9f8d865813c679036ca74bacd1867 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_closed_get_topology_id.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_closed_get_topology_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_closed_t.html b/libmongoc/1.24.1/mongoc_apm_topology_closed_t.html index 5c2777fd32cd36d596a79beeac12d1d705970913..0c4ff93cbc19e4afb5607483337616e39162e202 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_closed_t.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_closed_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_opening_get_context.html b/libmongoc/1.24.1/mongoc_apm_topology_opening_get_context.html index ef06086fded6de0e49c93583eaee75b94a3ee706..2baf354027550b991bc5f770946ce58e14695059 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_opening_get_context.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_opening_get_context.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_opening_get_topology_id.html b/libmongoc/1.24.1/mongoc_apm_topology_opening_get_topology_id.html index a9fd51a463c09fabd38f94327fc6241f2b8fc455..f48d23cf71c0d832dae08dddbab1542d88e40be9 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_opening_get_topology_id.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_opening_get_topology_id.html @@ -39,6 +39,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_apm_topology_opening_t.html b/libmongoc/1.24.1/mongoc_apm_topology_opening_t.html index cb427c4acf4e5457123b7150e626d7bd6aa056c1..5436e784d7ba562b18e1f06654bfed9eed1f1fcb 100644 --- a/libmongoc/1.24.1/mongoc_apm_topology_opening_t.html +++ b/libmongoc/1.24.1/mongoc_apm_topology_opening_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_destroy.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_destroy.html index eed9a8cebac1413089a503d01e4acb6b7766a1b6..166a1c6da808a883751b0b7e9c6c636500fed7a9 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_new.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_new.html index 9c94f46d9aecfa1e061592a1dc17d1db04a46558..bdecf0758608eb1f009d908324c000c419c2cc6c 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_new.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html index 472252eb101d21ac1621741ce78d818e4777fb1c..6a261a7694afd5352f7fc618514e3e9de90df946 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html index cd5e66da8321134b906438a3f94227ad56905684..ad2e16369296cf51bc21f048fc981e173e0b95ec 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_bypass_query_analysis.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html index de50ffebf6368d8f0a08575c0f72ebda829143f4..3e67cb0bfcc6a7790ab04849aface12a65fd9dfc 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_encrypted_fields_map.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_extra.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_extra.html index 56e9e78ed86069e0327f0f66d2f1d79eca850076..02c9e4030053e8c57d679ce99327e5f02ea613fb 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_extra.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_extra.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client.html index c95062699f3c9319fdccd4b779164e41d8d89717..bcf48821f74df089d6d7a6247fec3b978a3d5184 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html index adcf2762560653c7c5ab57ffef5d94809b6d0014..98f956f16f1b133d732968a504b1abbe09e3f8e6 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_client_pool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html index f02b99bb64f8bf584f444896891beed0b969e6eb..caaf14c159398a575360e4d7e6a9cd9c18b8e77f 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_keyvault_namespace.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html index e2364f141afad49817fd58a2a06da26f86787b59..b1088b573d05ffb74a6198c2d23d3713793d125c 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_providers.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_providers.html index c96f9bced9a210f626f997e6072e57808d7c9187..214b6b1581680b232cd46341fd6f71700b9a6328 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_providers.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_kms_providers.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_schema_map.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_schema_map.html index acc571c6ee78cc0bb03d151a9b3767380ee284fb..930f99ee17351fb2640f8f697e5377c187fabc8e 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_schema_map.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_schema_map.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_tls_opts.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_tls_opts.html index 6d29afc10e72ca31fd93a540e30a86f8ec587dc3..06c3c95c0b809d716088ab9564e6bf4e793567fe 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_tls_opts.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_set_tls_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_auto_encryption_opts_t.html b/libmongoc/1.24.1/mongoc_auto_encryption_opts_t.html index 6435ffba4474b516bf44ac781aefc50c4e000c06..21102aafb2c2ee9177370ca86fc9d65f747d8ef0 100644 --- a/libmongoc/1.24.1/mongoc_auto_encryption_opts_t.html +++ b/libmongoc/1.24.1/mongoc_auto_encryption_opts_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_delete.html b/libmongoc/1.24.1/mongoc_bulk_operation_delete.html index 2b4d34a001eb78d5f7506577e5cba8df722b2e61..6cacf81fe992b6539b17f25717080455d8438150 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_delete.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_delete.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_delete_one.html b/libmongoc/1.24.1/mongoc_bulk_operation_delete_one.html index decbbb0c20ba8850e5257af805cdad1c710c4d44..e0b92c07fc84c99a9e7eebfe7bb266ccaa9ada49 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_delete_one.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_delete_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_destroy.html b/libmongoc/1.24.1/mongoc_bulk_operation_destroy.html index f005591acb447dbe5d1454cd77a6ee9f4ad37f8a..1e26bbcad2c8ee6ee4e41dccda465d3610e44c46 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_destroy.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_execute.html b/libmongoc/1.24.1/mongoc_bulk_operation_execute.html index 69f49d92d94b3e8bca69f602e0b68fdbe51305ff..d05af64a71c471a1d61214fcf3771c18148916d1 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_execute.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_execute.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_get_hint.html b/libmongoc/1.24.1/mongoc_bulk_operation_get_hint.html index dcc49d4378aff339da3dd997a5a999fa393c9daa..7b1800f7264ffe02736d91f7d7d0c30c9436dd3b 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_get_hint.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_get_hint.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_get_write_concern.html b/libmongoc/1.24.1/mongoc_bulk_operation_get_write_concern.html index 3538549494ca686e52e9a3e6c56e69912ec76712..feefd3949d2137f1f730f0c4cd56b1e815f896f4 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_get_write_concern.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_get_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_insert.html b/libmongoc/1.24.1/mongoc_bulk_operation_insert.html index ffed235902ab7c4668360f2910dcfeff3d29c457..a96df4c52fa146c5c61da2908345c5f9bc4282fb 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_insert.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_insert.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_insert_with_opts.html b/libmongoc/1.24.1/mongoc_bulk_operation_insert_with_opts.html index 02f948bbe229cb59ba16ba8d0d3b5d8cae2ca136..c0fc0c7a74bd8447c495140d311e1a84ea3f7e0c 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_insert_with_opts.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_insert_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_remove.html b/libmongoc/1.24.1/mongoc_bulk_operation_remove.html index 8b2a1f96322cf37d11596a2704a7f2b9cc66c964..11d98b6bea955df2f80c08b98e18657080711072 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_remove.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_remove.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_remove_many_with_opts.html b/libmongoc/1.24.1/mongoc_bulk_operation_remove_many_with_opts.html index 6cb25ca622b7f028f90a3558018d10f1087b0944..1ec0d5f3a7a23ddda88bb915387f74aef753eae4 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_remove_many_with_opts.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_remove_many_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_remove_one.html b/libmongoc/1.24.1/mongoc_bulk_operation_remove_one.html index 6460c8a208564e1f2dc1327c07d92414971cae5e..12d235807c49704aac418420339b81a15a72257e 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_remove_one.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_remove_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_remove_one_with_opts.html b/libmongoc/1.24.1/mongoc_bulk_operation_remove_one_with_opts.html index 9ee99625359d855199afa567e285ce3f8a94ad9b..16119a5f77d42d1f96449f468e204b635af4a002 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_remove_one_with_opts.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_remove_one_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_replace_one.html b/libmongoc/1.24.1/mongoc_bulk_operation_replace_one.html index 7880d858ed1206b28961d4c854e86abd2ff2b481..e54f93ff1cf1e4a44e4eecfab48d8cfa3a1e7627 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_replace_one.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_replace_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_replace_one_with_opts.html b/libmongoc/1.24.1/mongoc_bulk_operation_replace_one_with_opts.html index 32084ab7381b46c36cde3623da5d4f51f8655279..9d47d1956f52b03345b7c9341189fa4853982441 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_replace_one_with_opts.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_replace_one_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_set_bypass_document_validation.html b/libmongoc/1.24.1/mongoc_bulk_operation_set_bypass_document_validation.html index ad8413f097fefe7db163d223186ba1544c76a012..f1f5cdee12409de9f36580fdec21fcb57de5ac5c 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_set_bypass_document_validation.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_set_bypass_document_validation.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_set_client_session.html b/libmongoc/1.24.1/mongoc_bulk_operation_set_client_session.html index 27218c1e99e36a2f0432ff588ea898a8aaad77e1..e46d94e2e4b3dd07beaa28ea910ed85d69121738 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_set_client_session.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_set_client_session.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_set_comment.html b/libmongoc/1.24.1/mongoc_bulk_operation_set_comment.html index 78492866ef70663588451e005cc1c7570ea4bb95..a6594169c51a648b2debc2e8b87df6a7949a0809 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_set_comment.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_set_comment.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_set_hint.html b/libmongoc/1.24.1/mongoc_bulk_operation_set_hint.html index af950c104f6f0930b89786425ee1ed7af429c324..f4b0e8e9dc6aaa7d37dd959b4531245a5b227b19 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_set_hint.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_set_hint.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_set_let.html b/libmongoc/1.24.1/mongoc_bulk_operation_set_let.html index 37e1eb8452033a8a3de69b8cb68e2e8d9e10e1da..92e56a0540d652c8309e20d086931a8ff745123e 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_set_let.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_set_let.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_t.html b/libmongoc/1.24.1/mongoc_bulk_operation_t.html index 0ad36c94f2a37f09155b0d03a32f418d3c5d3836..bce46501c157ce94fbc7c6893dd6ee41f53053b7 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_t.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_update.html b/libmongoc/1.24.1/mongoc_bulk_operation_update.html index e8d85684041af245f54607f118b443511bddc493..d2efeb4ec946e97e5561409b844b414653a5b542 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_update.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_update.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_update_many_with_opts.html b/libmongoc/1.24.1/mongoc_bulk_operation_update_many_with_opts.html index c431ba95f4e728a01f2710d7aadee39183265132..5d43f48a72f26b6afbcd486c0dbc93db8034db1f 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_update_many_with_opts.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_update_many_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_update_one.html b/libmongoc/1.24.1/mongoc_bulk_operation_update_one.html index 7c7d3f98c2f979c1d5b6a80a2f91a672fc21cad4..bbe3770b46780695f51973fb9967c947217f348a 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_update_one.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_update_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_bulk_operation_update_one_with_opts.html b/libmongoc/1.24.1/mongoc_bulk_operation_update_one_with_opts.html index 40bc8049a150f064668fbf8ce84525a8b800cbf1..24c8bfb2669ebd45bcf46888027eecf6b6a386dc 100644 --- a/libmongoc/1.24.1/mongoc_bulk_operation_update_one_with_opts.html +++ b/libmongoc/1.24.1/mongoc_bulk_operation_update_one_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_change_stream_destroy.html b/libmongoc/1.24.1/mongoc_change_stream_destroy.html index f2c9ec61ce2855468eb5fea2d665cb2acdf8c20e..85c28864112cccd2c3e5c1347236ae13f72bb8aa 100644 --- a/libmongoc/1.24.1/mongoc_change_stream_destroy.html +++ b/libmongoc/1.24.1/mongoc_change_stream_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_change_stream_error_document.html b/libmongoc/1.24.1/mongoc_change_stream_error_document.html index 3b80cdb45cfb221c0526ff1cf888a7dce66c3fc5..4f6edbac86556cb5252b48f0b23771bf1e1426f9 100644 --- a/libmongoc/1.24.1/mongoc_change_stream_error_document.html +++ b/libmongoc/1.24.1/mongoc_change_stream_error_document.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_change_stream_get_resume_token.html b/libmongoc/1.24.1/mongoc_change_stream_get_resume_token.html index 58db04147a1b324cae8bef3f50eb6000dfc57024..81d3c739d0fe9223adbd66fbb9687dd1d51b0807 100644 --- a/libmongoc/1.24.1/mongoc_change_stream_get_resume_token.html +++ b/libmongoc/1.24.1/mongoc_change_stream_get_resume_token.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_change_stream_next.html b/libmongoc/1.24.1/mongoc_change_stream_next.html index bd4cadb7d987c477166e13670c0f2173a2e26a88..306881338890cda21eff9250550f03f568d96dd4 100644 --- a/libmongoc/1.24.1/mongoc_change_stream_next.html +++ b/libmongoc/1.24.1/mongoc_change_stream_next.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_change_stream_t.html b/libmongoc/1.24.1/mongoc_change_stream_t.html index 81150ca303e4ff712b2bafbde660ec74e1af8fe7..78313abf8c078dba552fac4189058a4e3e74dfe3 100644 --- a/libmongoc/1.24.1/mongoc_change_stream_t.html +++ b/libmongoc/1.24.1/mongoc_change_stream_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_check_version.html b/libmongoc/1.24.1/mongoc_check_version.html index 9ef5a8f5dc76b92ad0af461df63ed3d5ce1f6eb2..9e3d2d4f068e1735e03c96f6866a0961d3e20faf 100644 --- a/libmongoc/1.24.1/mongoc_check_version.html +++ b/libmongoc/1.24.1/mongoc_check_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cleanup.html b/libmongoc/1.24.1/mongoc_cleanup.html index 90f093f30329219f19f20b9be24d21d3c8f69417..ff9a993cc5f16d6d96bf0196aa0e8a3538d33d37 100644 --- a/libmongoc/1.24.1/mongoc_cleanup.html +++ b/libmongoc/1.24.1/mongoc_cleanup.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_command.html b/libmongoc/1.24.1/mongoc_client_command.html index 19aa7f2ed8210d70c3b5069dfd46fa2d5e3f74e1..26902c0a014d85cc73b934775a8d9e91fc80274d 100644 --- a/libmongoc/1.24.1/mongoc_client_command.html +++ b/libmongoc/1.24.1/mongoc_client_command.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_command_simple.html b/libmongoc/1.24.1/mongoc_client_command_simple.html index e79ce3cc24ae99a3b18058dc39babb1df56b7b69..bbac0ec30adfea807f2ae010639dee8e62257c2d 100644 --- a/libmongoc/1.24.1/mongoc_client_command_simple.html +++ b/libmongoc/1.24.1/mongoc_client_command_simple.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_command_simple_with_server_id.html b/libmongoc/1.24.1/mongoc_client_command_simple_with_server_id.html index e7b42a982c528b02063a181a30308a413153c18a..8477d9a36af6aafa68ba7afaef9e083956bcb473 100644 --- a/libmongoc/1.24.1/mongoc_client_command_simple_with_server_id.html +++ b/libmongoc/1.24.1/mongoc_client_command_simple_with_server_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_command_with_opts.html b/libmongoc/1.24.1/mongoc_client_command_with_opts.html index 5e3dcc90b4c4c41f67e348061770540f2c40a1e4..40fc8d1f382288d350ff94153f76b320c287b62a 100644 --- a/libmongoc/1.24.1/mongoc_client_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_client_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_destroy.html b/libmongoc/1.24.1/mongoc_client_destroy.html index 717da6602e07f019c58412781b18b0540a111e01..e6b23c75086e30147302e4f352763cbb6c6ddde8 100644 --- a/libmongoc/1.24.1/mongoc_client_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_enable_auto_encryption.html b/libmongoc/1.24.1/mongoc_client_enable_auto_encryption.html index 066057a106fd99d6d2dec50727b17a24ff86b559..1c1b5af852db4da05285e773460239dfa2d01b77 100644 --- a/libmongoc/1.24.1/mongoc_client_enable_auto_encryption.html +++ b/libmongoc/1.24.1/mongoc_client_enable_auto_encryption.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_add_key_alt_name.html b/libmongoc/1.24.1/mongoc_client_encryption_add_key_alt_name.html index 1e2964302f5c07e8550a03f3843d58ff1043b54c..31551a6cff94d7a641f3e0027993f2477a832959 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_add_key_alt_name.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_add_key_alt_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_create_datakey.html b/libmongoc/1.24.1/mongoc_client_encryption_create_datakey.html index eccbddb007093a99fa5dcf5383cae535fc7083c5..b86c3715a2e70284b3946f606da7abd2d0d215de 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_create_datakey.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_create_datakey.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_create_encrypted_collection.html b/libmongoc/1.24.1/mongoc_client_encryption_create_encrypted_collection.html index 120ab33dbf48d400b018b7335dec59845b5443cf..bb771a2f83f83fa14f52a2a1f2ab753c2f2e8979 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_create_encrypted_collection.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_create_encrypted_collection.html @@ -41,6 +41,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_destroy.html b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_destroy.html index e5c8cd130a9b5d96021c53e2bab7aa864e74b1b5..77c01e08221eac25c7388951bb257b136fa1527e 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_new.html b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_new.html index a611eab357e6a0047480b7dd5cf55e60007ad744..a8de9bf7a1bc836e51167e034afbbfc05586f14b 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_new.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html index 8ae5b271c050c75c2beaf810ebfde7526a8bf1c4..701788b3e5872b88790c7eef162ea6ff0c590d3e 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keyaltnames.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html index bab9f465b4cf4b83a05c80dc1755c43044a6107e..a2fa78354ca00daeb05167b38eee718a478339c8 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_keymaterial.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_masterkey.html b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_masterkey.html index 90fe94239b17872cc19954c780cc9536da48c6b8..76944bb7babc1265d4775d3fd2a8395501ba5723 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_masterkey.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_set_masterkey.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_t.html b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_t.html index 82fa08c605dfabe9c73645e9b89b6698b8e985ba..3e636de8e8fb3e98678781273647db8909ccb0a3 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_t.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_datakey_opts_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_decrypt.html b/libmongoc/1.24.1/mongoc_client_encryption_decrypt.html index d39092bf9359c1ecda40bf0e328e927ebc7b3dda..2dda4fcf1ffbfb7297f3a18e24f3a3b7041655b5 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_decrypt.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_decrypt.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_delete_key.html b/libmongoc/1.24.1/mongoc_client_encryption_delete_key.html index 2bf08d09aa1c5413ed791d248617c9f9db876954..3c43ca3f27c586fdb8d67ebaa3f9a01bdb24af2d 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_delete_key.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_delete_key.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_destroy.html b/libmongoc/1.24.1/mongoc_client_encryption_destroy.html index 080b707187eb794fb478fc6f17b6b0a65f693af2..a97e2f77a9f8ef2e2715ee625de447f5f48e0c58 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt.html index 5fad05f4576077731865eb90d5516074886fde72..30bd84da2317f16dcd378587c30619ce26b7ed10 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_expression.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_expression.html index cf43b1ebe90550ce17438fde7a027355c15e5d7e..2e0cf364a59567940112dc2798206f2e14d186cb 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_expression.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_expression.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_destroy.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_destroy.html index c5331eac1904eb327a662fc12175eea61eebb068..e186351d40449ade698d491914233ddb628db7fe 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_new.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_new.html index d5677c14601681ed670e7ea7b485586c985e1934..d71a1fdaac516f9a11da07e28f66053d171cdc9d 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_new.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html index 1d59790ab320dfdbb23eb55ebddcd87d620b490f..11a02f584d671a1c817e5b8a92de621c49a9e62e 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_algorithm.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html index 723ca08e0573f312fc8fc45aaf22c516f917db33..8e95e0e5b14023f04cf0a7154c6ae5a01c850724 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_contention_factor.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html index e0e5f7c55a498aca524c8d6ba8a352656ad30b25..882229bebd6f545a3384265b661711d08947bb19 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyaltname.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyid.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyid.html index c3b5f286ea2b44b96d5c66e77110e2ab4565caad..a3057bf9c159ea6ff5dacc9253f226df8d25ad75 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyid.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_keyid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_query_type.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_query_type.html index 2a7f034543a6d170abaed1ec1c01cc09062f1aec..b438b995c53eaf6ae3e92be2cb25d7659f3a45ed 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_query_type.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_query_type.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_range_opts.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_range_opts.html index 7af7833a360c2f1d5f115ef63d85a0aab6ef5690..3a3e2dec9af4f8733ae310b640d3f4c4adfeffba 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_range_opts.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_set_range_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_t.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_t.html index 8a74257cbda9160f90377e6c832e1f88988352d7..b501268e385f9406e04fd84a2244494855ecacae 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_t.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_opts_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_destroy.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_destroy.html index 09e5338f649e2418bc9bb1a2c05177c46af97a21..69267f95f1866a13b4f94c428eee253cf771f1d2 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_new.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_new.html index dfbfabb216a35c994a07aa1b0bb17290bdb983a1..618bab6fb88902c0efd76ab4f15c1510d39047c3 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_new.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_max.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_max.html index 1f4c33269967c987bd50524877760b621637508c..333459ec611df9d39c940d9b34383f9010d5cb16 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_max.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_max.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_min.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_min.html index 859db0f43a28145eb4f8688552f24eef3fe909c9..643d0caa7121044155b4b5ef0e8ad3cab81982f6 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_min.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_min.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_precision.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_precision.html index 8d019eac67948b29834af4720ae928f8ac429155..62e7164c563f5dd5cce0e37842f321ba437f29cd 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_precision.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_precision.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html index fe30a5e6c96114bd5f4ec6db32698006a24858eb..9058d47fbd95eb9814119c74bcaa94b2a659cc6f 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_t.html b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_t.html index 9d74f73bbd458cca55112f487e8973f0d28c612b..057f5864a9a40e03fd060c89b7ad2b83a42f72c8 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_t.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_encrypt_range_opts_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_get_crypt_shared_version.html b/libmongoc/1.24.1/mongoc_client_encryption_get_crypt_shared_version.html index 6637630dc93dd1f43498eb58433a00eb076d67ec..ad02af732d72c2089b1bc4063f65893756c027d3 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_get_crypt_shared_version.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_get_crypt_shared_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_get_key.html b/libmongoc/1.24.1/mongoc_client_encryption_get_key.html index 96edc3e7451ef89c0b4c9c37775bcd41a03d428a..b2d2643a2c56eb0afafe45ef77849f0f75c665bc 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_get_key.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_get_key.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_get_key_by_alt_name.html b/libmongoc/1.24.1/mongoc_client_encryption_get_key_by_alt_name.html index 478f79f6c2b3e9c32cd5c8f41394641d8daac3f8..e079f5c40016ae7d8dc51c810d3b0332d169afa6 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_get_key_by_alt_name.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_get_key_by_alt_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_get_keys.html b/libmongoc/1.24.1/mongoc_client_encryption_get_keys.html index 42dc077db719057e3180d70cb3da7058614d3263..668c4146e4aaee6d301bcb6279943e81c603003a 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_get_keys.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_get_keys.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_new.html b/libmongoc/1.24.1/mongoc_client_encryption_new.html index 9fe37013752735fa65e39e035fd82d615d73ff46..df7f37a5f2809da92d24a1f23b58c208db48efbf 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_new.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_destroy.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_destroy.html index d650842ecc48472150083fe2eca97e08227d9d78..8f25c0e05112b140dfe1eda83a2de9dc7c3e7294 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_new.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_new.html index 8c6de8714e8ce11201cd2ff2a233710a6eb9d9cd..0432cf0491a6e7bcdf67b7aa03f6ad0fd744d719 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_new.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_client.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_client.html index 2ba6747c6b031245ad2706883cc65a5770d98533..815c8f5b282c8b3ddab678cb50d992bdb1c09bd3 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_client.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_client.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_namespace.html index 357d4a9f21f26120727372708cd83f2f57fa41e5..0643d9fd4332ded2f1b08c65ddb4e7d6a151f1fb 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_namespace.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_keyvault_namespace.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html index f3741b925b5a8cfb0c74adc6244e434c5bfb913d..172a4afbaf37ffcaf5b2e9c352825af97a0e1a5a 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_providers.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_providers.html index 8c67e847d746111685b4a2c9b021346e2b3fcfcc..f0f3fa8dad24088aa66435e72ce496ebf048c973 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_providers.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_kms_providers.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_tls_opts.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_tls_opts.html index 3acfca11ba33e509bb01454514ed95c1490090ef..911d782a65930d08943e8d4ec1aa95c8a32a0a50 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_set_tls_opts.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_set_tls_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_opts_t.html b/libmongoc/1.24.1/mongoc_client_encryption_opts_t.html index 6ef85f7a7d0d799fe8bc58821e33fcb16a638d94..478b1e2c143da661715cb13d53d0d0603d49464e 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_opts_t.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_opts_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_remove_key_alt_name.html b/libmongoc/1.24.1/mongoc_client_encryption_remove_key_alt_name.html index 0f6bd821a4308ac127ea99a355b085a91d9c5d1e..356108b09cf8f5464b0a4870e8defa5a96c8661c 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_remove_key_alt_name.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_remove_key_alt_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey.html b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey.html index 1f5c72cff1371d377eb2ac987577dc78b55342a5..4a7a5d31540ee8e0bec4a3ed3b6c36773b5a1916 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html index 517a4875432fbd748f6d217c9753bf94257ba720..024e043fa207f51ed51f64e83248e4d27f6df488 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html index 5b82a8c21706a163e40c7fd66212100316907a73..7672b64eba9d896592dd0bfd2e086c1cc6aaf98d 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html index 27c4b9cb2b0046733ff3211df99bc17f0949d996..49461f7d61aaf25ba0cb8051c660f1b6e0baa594 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html index e734a922c51a08e57dcd313334a7fe0fc3f76297..2b41266697504a6fddad4c0a891010d7e4736d0f 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_rewrap_many_datakey_result_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_encryption_t.html b/libmongoc/1.24.1/mongoc_client_encryption_t.html index a2d779da6fe48ced2c9b8a36cacc59f64bed2c23..bf66ee53bdee2aa537c7b123cd26445a3034c51f 100644 --- a/libmongoc/1.24.1/mongoc_client_encryption_t.html +++ b/libmongoc/1.24.1/mongoc_client_encryption_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_find_databases_with_opts.html b/libmongoc/1.24.1/mongoc_client_find_databases_with_opts.html index 90667a61732d0278ede5b8a961f0e4adc411607c..487db2d593762245891955f65e6d748b52f1001d 100644 --- a/libmongoc/1.24.1/mongoc_client_find_databases_with_opts.html +++ b/libmongoc/1.24.1/mongoc_client_find_databases_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_collection.html b/libmongoc/1.24.1/mongoc_client_get_collection.html index e13974fbb73b52c6ad887a603b309eb6103ef82a..4edbcf4da6551ae1670caf21b9a9e12b314d916a 100644 --- a/libmongoc/1.24.1/mongoc_client_get_collection.html +++ b/libmongoc/1.24.1/mongoc_client_get_collection.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_crypt_shared_version.html b/libmongoc/1.24.1/mongoc_client_get_crypt_shared_version.html index e94a36e097548787e75f42f7f06759a8d29c1b22..667ba2ee84b4d57e31de4da40e0e13434186a02c 100644 --- a/libmongoc/1.24.1/mongoc_client_get_crypt_shared_version.html +++ b/libmongoc/1.24.1/mongoc_client_get_crypt_shared_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_database.html b/libmongoc/1.24.1/mongoc_client_get_database.html index 978f7fda102de93d2313cbd3a0c7288009b768b2..021a886a39b9d24e12e6837856de8df374dbcf08 100644 --- a/libmongoc/1.24.1/mongoc_client_get_database.html +++ b/libmongoc/1.24.1/mongoc_client_get_database.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_database_names.html b/libmongoc/1.24.1/mongoc_client_get_database_names.html index c21ded539baa0e5c8924a733d0ae09b338e481bc..c7a4d7c1ba96c9333523f9d64c1bb74aede2d05a 100644 --- a/libmongoc/1.24.1/mongoc_client_get_database_names.html +++ b/libmongoc/1.24.1/mongoc_client_get_database_names.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_database_names_with_opts.html b/libmongoc/1.24.1/mongoc_client_get_database_names_with_opts.html index 3b065d125736d2fe0065e0e927c3f84698fda8cb..190e4c55d8f4b69c71120de5f0b12d8ba9b47457 100644 --- a/libmongoc/1.24.1/mongoc_client_get_database_names_with_opts.html +++ b/libmongoc/1.24.1/mongoc_client_get_database_names_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_default_database.html b/libmongoc/1.24.1/mongoc_client_get_default_database.html index 2a5a974a4feb5abeef962743e64573a18e73e9d9..8b6852661329eb123bb5c4e61b3cba153fc030f4 100644 --- a/libmongoc/1.24.1/mongoc_client_get_default_database.html +++ b/libmongoc/1.24.1/mongoc_client_get_default_database.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_gridfs.html b/libmongoc/1.24.1/mongoc_client_get_gridfs.html index 2aec71085db50cc2d8df674e8e91cdfef82b3c05..9177d7452fc4ccf940b68d5f6a441223b81f4eaf 100644 --- a/libmongoc/1.24.1/mongoc_client_get_gridfs.html +++ b/libmongoc/1.24.1/mongoc_client_get_gridfs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_handshake_description.html b/libmongoc/1.24.1/mongoc_client_get_handshake_description.html index 04e5e9ab1430bc8cd6f9b5adf81f4576ff1e3f3e..aa358b663c22069b97aed4eda1379c0ffd9698e9 100644 --- a/libmongoc/1.24.1/mongoc_client_get_handshake_description.html +++ b/libmongoc/1.24.1/mongoc_client_get_handshake_description.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_read_concern.html b/libmongoc/1.24.1/mongoc_client_get_read_concern.html index e6529daa44ab36f53c88a6303ad8451b448774eb..73e5dba1556472de53a6b243910da754bf405b1e 100644 --- a/libmongoc/1.24.1/mongoc_client_get_read_concern.html +++ b/libmongoc/1.24.1/mongoc_client_get_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_read_prefs.html b/libmongoc/1.24.1/mongoc_client_get_read_prefs.html index 137b2d9dd3baf41675001f837b53ed3726bdac32..c56b988fec4958a3b6c842679014332d55b6c17b 100644 --- a/libmongoc/1.24.1/mongoc_client_get_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_client_get_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_server_description.html b/libmongoc/1.24.1/mongoc_client_get_server_description.html index 13daa1da3ce41bd3b26094b71def7e2f12147529..8045210d03f3aad029cedbdb77be281b42d1a932 100644 --- a/libmongoc/1.24.1/mongoc_client_get_server_description.html +++ b/libmongoc/1.24.1/mongoc_client_get_server_description.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_server_descriptions.html b/libmongoc/1.24.1/mongoc_client_get_server_descriptions.html index dd1586f2cab90a16222cefe49d1cf22bcfe5ae7f..20733ada548fd3e1cf39c5a5ef22ff8e0046b0be 100644 --- a/libmongoc/1.24.1/mongoc_client_get_server_descriptions.html +++ b/libmongoc/1.24.1/mongoc_client_get_server_descriptions.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_server_status.html b/libmongoc/1.24.1/mongoc_client_get_server_status.html index bba015ece124fadf17870231acc604e957123ba5..a4c41a603adea4343201b1cd421a1b9025b9fb94 100644 --- a/libmongoc/1.24.1/mongoc_client_get_server_status.html +++ b/libmongoc/1.24.1/mongoc_client_get_server_status.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_uri.html b/libmongoc/1.24.1/mongoc_client_get_uri.html index a68c85327b29647c0299649e6f848585a725d608..5c7778af7abfdefe538fbf71a286ad0ffac7991f 100644 --- a/libmongoc/1.24.1/mongoc_client_get_uri.html +++ b/libmongoc/1.24.1/mongoc_client_get_uri.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_get_write_concern.html b/libmongoc/1.24.1/mongoc_client_get_write_concern.html index e88a5264cb415fe2f9be727ff7499166c3cce3f6..a150c7a87eda09c7adc863ed5aaac106dca99952 100644 --- a/libmongoc/1.24.1/mongoc_client_get_write_concern.html +++ b/libmongoc/1.24.1/mongoc_client_get_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_new.html b/libmongoc/1.24.1/mongoc_client_new.html index 77fd4925ff4d1b44f95fa6a8659a96318279c163..e55dbe9d2494b27aee086c85eac6ec2061151e4c 100644 --- a/libmongoc/1.24.1/mongoc_client_new.html +++ b/libmongoc/1.24.1/mongoc_client_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_new_from_uri.html b/libmongoc/1.24.1/mongoc_client_new_from_uri.html index 2556c60ad3397225164d19543d435f15c3bb0fd4..35400343c73d4c955b29e3dd2ac54d367da20503 100644 --- a/libmongoc/1.24.1/mongoc_client_new_from_uri.html +++ b/libmongoc/1.24.1/mongoc_client_new_from_uri.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_new_from_uri_with_error.html b/libmongoc/1.24.1/mongoc_client_new_from_uri_with_error.html index de6f9cef0f8ce6ee7bb325e2fe35b8515bc099d1..bc3576947d76eb6e8bc7f209185069dbd11c8c7d 100644 --- a/libmongoc/1.24.1/mongoc_client_new_from_uri_with_error.html +++ b/libmongoc/1.24.1/mongoc_client_new_from_uri_with_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_destroy.html b/libmongoc/1.24.1/mongoc_client_pool_destroy.html index ddf0f9b95fa3e0957666fc0471b5e57004a2a520..c76bdbdecb074923738c218ae534aa757e26ecd3 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_pool_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_enable_auto_encryption.html b/libmongoc/1.24.1/mongoc_client_pool_enable_auto_encryption.html index b0ce1cb030a5744e3bb6668c6fa018d2bbebbc71..f035ff2afadb20655ad017407a3740ae283afa88 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_enable_auto_encryption.html +++ b/libmongoc/1.24.1/mongoc_client_pool_enable_auto_encryption.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_max_size.html b/libmongoc/1.24.1/mongoc_client_pool_max_size.html index 53e2d43c3d8b77d7b4911cfa239225f96d4cb6c3..478f87313ca713fa4dc7d3cdad313ce49b7d7e0e 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_max_size.html +++ b/libmongoc/1.24.1/mongoc_client_pool_max_size.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_min_size.html b/libmongoc/1.24.1/mongoc_client_pool_min_size.html index 68a72c97a542c3c09b9199ea55e57b44fafa0bc6..1eebacee807ea50f0baef6982f0aed6ada86554a 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_min_size.html +++ b/libmongoc/1.24.1/mongoc_client_pool_min_size.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_new.html b/libmongoc/1.24.1/mongoc_client_pool_new.html index 8d9e4037c54a08099fc5161e2cdd2ece4adaf598..7367f087cb4faf7780dd1c3aa4f97ce38b7d906d 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_new.html +++ b/libmongoc/1.24.1/mongoc_client_pool_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_new_with_error.html b/libmongoc/1.24.1/mongoc_client_pool_new_with_error.html index 531b3d542dcc828d7c457ac61bb079584d53a445..cbe53db559aaf2da2118264d46b539beadec72f0 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_new_with_error.html +++ b/libmongoc/1.24.1/mongoc_client_pool_new_with_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_pop.html b/libmongoc/1.24.1/mongoc_client_pool_pop.html index 6b62258dbb58e697fc6a3e728d4b1b7c479728de..093f66917b7559157f04f2c7014297d59f09ace2 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_pop.html +++ b/libmongoc/1.24.1/mongoc_client_pool_pop.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_push.html b/libmongoc/1.24.1/mongoc_client_pool_push.html index 1658cbbb1bc1498cb543d91c086f047849637c22..2c1266e2b99a167f78cdc13f17378f86d76c3436 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_push.html +++ b/libmongoc/1.24.1/mongoc_client_pool_push.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_set_apm_callbacks.html b/libmongoc/1.24.1/mongoc_client_pool_set_apm_callbacks.html index 65a40d323bf557088afa1f08d3967798e71c58ac..1aa78670b43cb16c8e01a8bfb8800f05b2db9e41 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_set_apm_callbacks.html +++ b/libmongoc/1.24.1/mongoc_client_pool_set_apm_callbacks.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_set_appname.html b/libmongoc/1.24.1/mongoc_client_pool_set_appname.html index 02021c8315e8021c5fbcfb030dae226b21b77129..2652fdd65aa59f1c7fcdf7a8b8cf585c35dc24c8 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_set_appname.html +++ b/libmongoc/1.24.1/mongoc_client_pool_set_appname.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_set_error_api.html b/libmongoc/1.24.1/mongoc_client_pool_set_error_api.html index 4126949c9ce541adb09a1bef79109bec98a36525..869e0514c09459920ff3e3a321961b8c603d856f 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_set_error_api.html +++ b/libmongoc/1.24.1/mongoc_client_pool_set_error_api.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_set_server_api.html b/libmongoc/1.24.1/mongoc_client_pool_set_server_api.html index d2d62f02e260a871432d9c8e5a93dad19e6c161c..bc4612fe2c8bbf7a03483e22c538b3c8b647e198 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_set_server_api.html +++ b/libmongoc/1.24.1/mongoc_client_pool_set_server_api.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_set_ssl_opts.html b/libmongoc/1.24.1/mongoc_client_pool_set_ssl_opts.html index 05185ca6a4bc3ef4d3e658d8bf570d84efff3f86..167d320a3b2fec9c6958027c04b9575b0d36d5f7 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_set_ssl_opts.html +++ b/libmongoc/1.24.1/mongoc_client_pool_set_ssl_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_t.html b/libmongoc/1.24.1/mongoc_client_pool_t.html index dba5fcd2cba453852af7654085a22d7aa74083a3..c1682921e18a551b141319e73744637b175acad2 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_t.html +++ b/libmongoc/1.24.1/mongoc_client_pool_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_pool_try_pop.html b/libmongoc/1.24.1/mongoc_client_pool_try_pop.html index 7fe548358a733d8bdc1868e4d026de444495ea3e..09f18a0bbdff65a9e788bf0dcb5fb3d02a540918 100644 --- a/libmongoc/1.24.1/mongoc_client_pool_try_pop.html +++ b/libmongoc/1.24.1/mongoc_client_pool_try_pop.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_read_command_with_opts.html b/libmongoc/1.24.1/mongoc_client_read_command_with_opts.html index 9541f77b4d9cc31f89776f4d05dcf5334861e975..f02ad766de22446b948e45ae2d8b2acc73657709 100644 --- a/libmongoc/1.24.1/mongoc_client_read_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_client_read_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_read_write_command_with_opts.html b/libmongoc/1.24.1/mongoc_client_read_write_command_with_opts.html index 56e4c6668ebd69b7936418667bd0e326be998ce3..022afcbcb82c817cd9ef07c4369582c626df1501 100644 --- a/libmongoc/1.24.1/mongoc_client_read_write_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_client_read_write_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_reset.html b/libmongoc/1.24.1/mongoc_client_reset.html index 3bcef6a22ca91b8eba0f053424ed26f8605f7755..32644da87b9a603c4aa029e40d8973d8e867cced 100644 --- a/libmongoc/1.24.1/mongoc_client_reset.html +++ b/libmongoc/1.24.1/mongoc_client_reset.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_select_server.html b/libmongoc/1.24.1/mongoc_client_select_server.html index 779d27a804a8aff717492e562e701dae303f3b32..2826e91a6a4ca1715aaca9a1ba21c60d0c721880 100644 --- a/libmongoc/1.24.1/mongoc_client_select_server.html +++ b/libmongoc/1.24.1/mongoc_client_select_server.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_abort_transaction.html b/libmongoc/1.24.1/mongoc_client_session_abort_transaction.html index 9c8c7681138ee9eefcfa917c4c17cd45272ce698..3350ba511185b3843d00ce6c04e6229bd7718585 100644 --- a/libmongoc/1.24.1/mongoc_client_session_abort_transaction.html +++ b/libmongoc/1.24.1/mongoc_client_session_abort_transaction.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_advance_cluster_time.html b/libmongoc/1.24.1/mongoc_client_session_advance_cluster_time.html index d49a1800759745ae6ae1fdaa3c268f9b47d4e615..29bde6a3ce626beaf465f114eaab4f2d91e1ff05 100644 --- a/libmongoc/1.24.1/mongoc_client_session_advance_cluster_time.html +++ b/libmongoc/1.24.1/mongoc_client_session_advance_cluster_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_advance_operation_time.html b/libmongoc/1.24.1/mongoc_client_session_advance_operation_time.html index f0f5a9aac3517e4a2a54c42d02dfc1d77da08755..ed2b6f52c8a6dea34d29749381e197e2568d5503 100644 --- a/libmongoc/1.24.1/mongoc_client_session_advance_operation_time.html +++ b/libmongoc/1.24.1/mongoc_client_session_advance_operation_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_append.html b/libmongoc/1.24.1/mongoc_client_session_append.html index 6d97b0709745e368869dac74cb45826d694b4c02..b47de87671595fea29c50463e297f4ef67616baa 100644 --- a/libmongoc/1.24.1/mongoc_client_session_append.html +++ b/libmongoc/1.24.1/mongoc_client_session_append.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_commit_transaction.html b/libmongoc/1.24.1/mongoc_client_session_commit_transaction.html index 3e49e1979501260d9a05639afc5ed7237d14d74b..d921ecce91e7a2f2b43c2d8e8f934df81eb99c7c 100644 --- a/libmongoc/1.24.1/mongoc_client_session_commit_transaction.html +++ b/libmongoc/1.24.1/mongoc_client_session_commit_transaction.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_destroy.html b/libmongoc/1.24.1/mongoc_client_session_destroy.html index 1caeb2803db8b8e3af2287489e5c298f23520bcc..53f1a6e08a64857afa807f7136f1005ee0b65215 100644 --- a/libmongoc/1.24.1/mongoc_client_session_destroy.html +++ b/libmongoc/1.24.1/mongoc_client_session_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_client.html b/libmongoc/1.24.1/mongoc_client_session_get_client.html index 3e27467e759ba5f9ce6272385d81d4611d58a94a..6930a9fe961e8cde80590d48c2f40c16e0071d1e 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_client.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_client.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_cluster_time.html b/libmongoc/1.24.1/mongoc_client_session_get_cluster_time.html index aa8cc470665ffda0d243b14c2dafe338661023d1..f13da4905ce2e7a58d1c6d33f43a98af27169f1a 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_cluster_time.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_cluster_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_dirty.html b/libmongoc/1.24.1/mongoc_client_session_get_dirty.html index 65454dec75294c040a89948354393f0972785a5a..58249115b37b5ac12b2935ce45ff009f44a09282 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_dirty.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_dirty.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_lsid.html b/libmongoc/1.24.1/mongoc_client_session_get_lsid.html index 12d0ea6999a024e4f56f513d9d15ca2635d06867..b1e1cdb3646d798de73b19d66f75cd34dfa95b73 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_lsid.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_lsid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_operation_time.html b/libmongoc/1.24.1/mongoc_client_session_get_operation_time.html index 30ddf0e70309fffa61da840b8a8b3ec52bd24763..ecbd1d8efb3fd3cb3d04a67590de2d5227db0e96 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_operation_time.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_operation_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_opts.html b/libmongoc/1.24.1/mongoc_client_session_get_opts.html index b56ab77098c924293dae17d5fa9c9676361c83f4..81c09155990a2117b973bd588285d38cd2d1a6d6 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_opts.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_server_id.html b/libmongoc/1.24.1/mongoc_client_session_get_server_id.html index 7b27ea58a7feea09f49e2c804b9b4db37597bf66..75c8165f028128bb40228a8eecfdb9ca6baf3d9d 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_server_id.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_server_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_get_transaction_state.html b/libmongoc/1.24.1/mongoc_client_session_get_transaction_state.html index 4cf23d09ee0dba95335959664dfbf899549626ea..e1f8960359a81629ad4946a2adb411ca86920762 100644 --- a/libmongoc/1.24.1/mongoc_client_session_get_transaction_state.html +++ b/libmongoc/1.24.1/mongoc_client_session_get_transaction_state.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_in_transaction.html b/libmongoc/1.24.1/mongoc_client_session_in_transaction.html index e5edfd8ec5c5dd9232f35141acf67e42a97e79c6..002cd314fdbafe317bd9f2b99a0b5182274318e5 100644 --- a/libmongoc/1.24.1/mongoc_client_session_in_transaction.html +++ b/libmongoc/1.24.1/mongoc_client_session_in_transaction.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_start_transaction.html b/libmongoc/1.24.1/mongoc_client_session_start_transaction.html index f1926f3aa368046dc7f0241e23baca32526acdca..f52f30a2d69b22e6ac7c23b3aec8c7beeb026d5f 100644 --- a/libmongoc/1.24.1/mongoc_client_session_start_transaction.html +++ b/libmongoc/1.24.1/mongoc_client_session_start_transaction.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_t.html b/libmongoc/1.24.1/mongoc_client_session_t.html index 8b7d22795cf6a732b5a75862f82b0db5a1621c5c..21ade74f1963abd3dde2a152d8df6d8b2b74ee82 100644 --- a/libmongoc/1.24.1/mongoc_client_session_t.html +++ b/libmongoc/1.24.1/mongoc_client_session_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_with_transaction.html b/libmongoc/1.24.1/mongoc_client_session_with_transaction.html index d312e57f019239ad7085ec20f701ef0bc5fe9faa..1d39fe0ee35a882d1e586184abea4f69370a65ed 100644 --- a/libmongoc/1.24.1/mongoc_client_session_with_transaction.html +++ b/libmongoc/1.24.1/mongoc_client_session_with_transaction.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_session_with_transaction_cb_t.html b/libmongoc/1.24.1/mongoc_client_session_with_transaction_cb_t.html index 37df0a3c629846c1ea30158d02c07e1e5039ebc9..c436486c306f2147758bdf91fb66fd4e73cb316b 100644 --- a/libmongoc/1.24.1/mongoc_client_session_with_transaction_cb_t.html +++ b/libmongoc/1.24.1/mongoc_client_session_with_transaction_cb_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_apm_callbacks.html b/libmongoc/1.24.1/mongoc_client_set_apm_callbacks.html index 467017f6548a7b8982a4432d2477db93f3b132f7..632789e85693ba22189d8555dc58a25677d09f9f 100644 --- a/libmongoc/1.24.1/mongoc_client_set_apm_callbacks.html +++ b/libmongoc/1.24.1/mongoc_client_set_apm_callbacks.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_appname.html b/libmongoc/1.24.1/mongoc_client_set_appname.html index 8bcd2cd5c4eea412d118da188f8441c4fa10dd0b..699fffbf2d34ab63f6a8b3c3674f6d107f7f6949 100644 --- a/libmongoc/1.24.1/mongoc_client_set_appname.html +++ b/libmongoc/1.24.1/mongoc_client_set_appname.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_error_api.html b/libmongoc/1.24.1/mongoc_client_set_error_api.html index 27ce6faddb6c08d7a2172ab2f72f8531048aa5b3..5fe22c93143aa84c781cfa0d28196e2ccb55f96e 100644 --- a/libmongoc/1.24.1/mongoc_client_set_error_api.html +++ b/libmongoc/1.24.1/mongoc_client_set_error_api.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_read_concern.html b/libmongoc/1.24.1/mongoc_client_set_read_concern.html index 825e23821784a3fadab719f5f55042f21e6e3849..351de96bf644dd4c902d1c62e4fcac3c41412c08 100644 --- a/libmongoc/1.24.1/mongoc_client_set_read_concern.html +++ b/libmongoc/1.24.1/mongoc_client_set_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_read_prefs.html b/libmongoc/1.24.1/mongoc_client_set_read_prefs.html index 85c0ae931fb6968c3c1867431f8cd99b5ec1012d..a055f38c58ae4a9f9d8d799ebcaad51abb3b093b 100644 --- a/libmongoc/1.24.1/mongoc_client_set_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_client_set_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_server_api.html b/libmongoc/1.24.1/mongoc_client_set_server_api.html index afbd20987a0e97458d6fce2c09cdacd3db6f50d2..968fcfcf77ea916295df370d9b7201035e1c2a18 100644 --- a/libmongoc/1.24.1/mongoc_client_set_server_api.html +++ b/libmongoc/1.24.1/mongoc_client_set_server_api.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_ssl_opts.html b/libmongoc/1.24.1/mongoc_client_set_ssl_opts.html index 9059545a3e9b8369598f3d08103b12fbf84cb2c3..0acc102785a3a7de698eadb74d916c98df7076d9 100644 --- a/libmongoc/1.24.1/mongoc_client_set_ssl_opts.html +++ b/libmongoc/1.24.1/mongoc_client_set_ssl_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_stream_initiator.html b/libmongoc/1.24.1/mongoc_client_set_stream_initiator.html index 20c8790ce282a60a70186f2b8a5bd220f43942b1..a294883b707de2cd04e40d0108dcf3bd2ba91c97 100644 --- a/libmongoc/1.24.1/mongoc_client_set_stream_initiator.html +++ b/libmongoc/1.24.1/mongoc_client_set_stream_initiator.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_set_write_concern.html b/libmongoc/1.24.1/mongoc_client_set_write_concern.html index 79cc8a837dd44db20fc683b0388271e55772d81a..758749a8768d95940377b317a4f2bcf519ab535f 100644 --- a/libmongoc/1.24.1/mongoc_client_set_write_concern.html +++ b/libmongoc/1.24.1/mongoc_client_set_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_start_session.html b/libmongoc/1.24.1/mongoc_client_start_session.html index ec39a60f3a439387557ab1581bfded86c58d37c6..8458c825d5d60f26be145941937668785ddb6600 100644 --- a/libmongoc/1.24.1/mongoc_client_start_session.html +++ b/libmongoc/1.24.1/mongoc_client_start_session.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_t.html b/libmongoc/1.24.1/mongoc_client_t.html index 1904bb38e6f78e4f219782d030a2c3c6b4d0be4b..e9cbe4af4d5c8856993822923fd3d5821d136f76 100644 --- a/libmongoc/1.24.1/mongoc_client_t.html +++ b/libmongoc/1.24.1/mongoc_client_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_watch.html b/libmongoc/1.24.1/mongoc_client_watch.html index b35c01d990381ce9ec685b4859bbb03539efdff7..969474b5a2d6ae1277960da4ee57ba5841dcd19a 100644 --- a/libmongoc/1.24.1/mongoc_client_watch.html +++ b/libmongoc/1.24.1/mongoc_client_watch.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_client_write_command_with_opts.html b/libmongoc/1.24.1/mongoc_client_write_command_with_opts.html index 650bbdae78ddd790c72025d1f95c90b46366c024..fa348337341ba1837f6970c6a2aa73447a095d4c 100644 --- a/libmongoc/1.24.1/mongoc_client_write_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_client_write_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_aggregate.html b/libmongoc/1.24.1/mongoc_collection_aggregate.html index 057731174292c909525e7b76446d55233ce219f5..417077f81e90f05dbd2c00d872d9ed422f0027e7 100644 --- a/libmongoc/1.24.1/mongoc_collection_aggregate.html +++ b/libmongoc/1.24.1/mongoc_collection_aggregate.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_command.html b/libmongoc/1.24.1/mongoc_collection_command.html index 59c0756de8f4f647bc890e7a4b02021b4796b026..5e8d63fc63f5ae48adf5c8b14d40a78a4a66a625 100644 --- a/libmongoc/1.24.1/mongoc_collection_command.html +++ b/libmongoc/1.24.1/mongoc_collection_command.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_command_simple.html b/libmongoc/1.24.1/mongoc_collection_command_simple.html index 741a4455a35b00c14b842b7daef6e8b0e6352008..243d4943da3f10e0c49a508361e04601671d05c4 100644 --- a/libmongoc/1.24.1/mongoc_collection_command_simple.html +++ b/libmongoc/1.24.1/mongoc_collection_command_simple.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_command_with_opts.html b/libmongoc/1.24.1/mongoc_collection_command_with_opts.html index 636c3c790075872e80260dd0cc8391d96dddb383..0b6754ba01ebb6c2b7f9ffa9cfc8a1199f338643 100644 --- a/libmongoc/1.24.1/mongoc_collection_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_copy.html b/libmongoc/1.24.1/mongoc_collection_copy.html index 2ecad145509f0c0c16d85099276b2a5710e4f82e..9d3ddd1d9a9afde6a45e87b7df9b9dc5243a066f 100644 --- a/libmongoc/1.24.1/mongoc_collection_copy.html +++ b/libmongoc/1.24.1/mongoc_collection_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_count.html b/libmongoc/1.24.1/mongoc_collection_count.html index 4cd83c3f87f0cf0573ee3ed940a701622c7a947a..cad82580b6bf5a3f3ea975bb5ddc89615aa3d4c8 100644 --- a/libmongoc/1.24.1/mongoc_collection_count.html +++ b/libmongoc/1.24.1/mongoc_collection_count.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_count_documents.html b/libmongoc/1.24.1/mongoc_collection_count_documents.html index 7415c30d38e1b31b897eaec3870d0a6ac5f912c5..ae934d00abd3b703f4d09c07302922497f54f9b6 100644 --- a/libmongoc/1.24.1/mongoc_collection_count_documents.html +++ b/libmongoc/1.24.1/mongoc_collection_count_documents.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_count_with_opts.html b/libmongoc/1.24.1/mongoc_collection_count_with_opts.html index 0a00dadf3c07bc7f050300d49f224b0a5ce05430..be022b36acb7997f87ea8a5f447879d71477fa28 100644 --- a/libmongoc/1.24.1/mongoc_collection_count_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_count_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_create_bulk_operation.html b/libmongoc/1.24.1/mongoc_collection_create_bulk_operation.html index de77ec9ad82dce71c1ffc11583b12f48e3e34865..3aaa38316b6e3e79b5dd4ec38bea81e4764ea5e1 100644 --- a/libmongoc/1.24.1/mongoc_collection_create_bulk_operation.html +++ b/libmongoc/1.24.1/mongoc_collection_create_bulk_operation.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_create_bulk_operation_with_opts.html b/libmongoc/1.24.1/mongoc_collection_create_bulk_operation_with_opts.html index 77e54e4e4ac8a9b10f11b9dcee1c6d75163bfa39..e3d3983c01a19fcefcc55876e06046b563483aac 100644 --- a/libmongoc/1.24.1/mongoc_collection_create_bulk_operation_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_create_bulk_operation_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_create_index.html b/libmongoc/1.24.1/mongoc_collection_create_index.html index 9b247e28ce3c5a82105d7aff0e0a0763891e6bf3..1209aa62ea309324cfc76536df0fe333ea34c83c 100644 --- a/libmongoc/1.24.1/mongoc_collection_create_index.html +++ b/libmongoc/1.24.1/mongoc_collection_create_index.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_create_index_with_opts.html b/libmongoc/1.24.1/mongoc_collection_create_index_with_opts.html index e1cbd71ea588e00f27e8396eb5133cef72c2d9fa..873a78c6da5ce3980b24f270da2d16ca3d754b7f 100644 --- a/libmongoc/1.24.1/mongoc_collection_create_index_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_create_index_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_create_indexes_with_opts.html b/libmongoc/1.24.1/mongoc_collection_create_indexes_with_opts.html index cfec11523c456f24ffa2e5ca0ca06a362d3ab3e9..d2b4f5ba1f613ed53a9b6408bdb6088d16f56c3f 100644 --- a/libmongoc/1.24.1/mongoc_collection_create_indexes_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_create_indexes_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_delete.html b/libmongoc/1.24.1/mongoc_collection_delete.html index 6c051e803affa36d60d5835c9078e329d1a3e16b..909dd5a9ac5ae8abcd8ba67cafeb48774d515df6 100644 --- a/libmongoc/1.24.1/mongoc_collection_delete.html +++ b/libmongoc/1.24.1/mongoc_collection_delete.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_delete_many.html b/libmongoc/1.24.1/mongoc_collection_delete_many.html index 2e2f00bf77df7d601018b6946d2d0a9ef1626737..0b3dd5b03cdb57c8e1e41aeb263fd1f74c11f20f 100644 --- a/libmongoc/1.24.1/mongoc_collection_delete_many.html +++ b/libmongoc/1.24.1/mongoc_collection_delete_many.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_delete_one.html b/libmongoc/1.24.1/mongoc_collection_delete_one.html index ec602c98fba572c6a1544423baaf25c1448c03b9..7d33110931ba1a9dc17ac71941ae698ce14fa426 100644 --- a/libmongoc/1.24.1/mongoc_collection_delete_one.html +++ b/libmongoc/1.24.1/mongoc_collection_delete_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_destroy.html b/libmongoc/1.24.1/mongoc_collection_destroy.html index 7f1635dfa600cac83022793cd8387ad0fafd2a90..2b436745aa90a1ae7936db82494582a11e336b7b 100644 --- a/libmongoc/1.24.1/mongoc_collection_destroy.html +++ b/libmongoc/1.24.1/mongoc_collection_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_drop.html b/libmongoc/1.24.1/mongoc_collection_drop.html index ac83fd26c2c0af846fe89529daf9fd6da2a29e6e..bf4d78477379569507ee37e6980c86456d73bca6 100644 --- a/libmongoc/1.24.1/mongoc_collection_drop.html +++ b/libmongoc/1.24.1/mongoc_collection_drop.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_drop_index.html b/libmongoc/1.24.1/mongoc_collection_drop_index.html index fa90390b71a5539e1e4c7542bd06e8a2472a9a41..b2e30061e4640afe2864532298b7cff96de85bdb 100644 --- a/libmongoc/1.24.1/mongoc_collection_drop_index.html +++ b/libmongoc/1.24.1/mongoc_collection_drop_index.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_drop_index_with_opts.html b/libmongoc/1.24.1/mongoc_collection_drop_index_with_opts.html index c620474e7b01c4b7080f60a90e6522b735793aff..4bf3d2425c62791cfb9ec4e7e4944ab0ac115838 100644 --- a/libmongoc/1.24.1/mongoc_collection_drop_index_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_drop_index_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_drop_with_opts.html b/libmongoc/1.24.1/mongoc_collection_drop_with_opts.html index 8f738c97879b2b15ebdccf5268382472e2fb178a..55e3d50da103be0f36d53dabfe7513fb26ce333c 100644 --- a/libmongoc/1.24.1/mongoc_collection_drop_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_drop_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_ensure_index.html b/libmongoc/1.24.1/mongoc_collection_ensure_index.html index 0028820c36d01d2a007b6183fd4ee16c29e6d8a1..8ba0be456f28a25ce6aa38b2ff43e022a6b254e8 100644 --- a/libmongoc/1.24.1/mongoc_collection_ensure_index.html +++ b/libmongoc/1.24.1/mongoc_collection_ensure_index.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_estimated_document_count.html b/libmongoc/1.24.1/mongoc_collection_estimated_document_count.html index ff9f38c5ddc23f943f71bbf740269113f588641d..cd98db794dd0d443d27bfdacca0a04f37afa12f1 100644 --- a/libmongoc/1.24.1/mongoc_collection_estimated_document_count.html +++ b/libmongoc/1.24.1/mongoc_collection_estimated_document_count.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_find.html b/libmongoc/1.24.1/mongoc_collection_find.html index a5b2d68a20225224243ed3b91a059c8bf396baec..15606e8649893e54969c8eb0fb7cc254b1530220 100644 --- a/libmongoc/1.24.1/mongoc_collection_find.html +++ b/libmongoc/1.24.1/mongoc_collection_find.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_find_and_modify.html b/libmongoc/1.24.1/mongoc_collection_find_and_modify.html index 12902bb5fe7b84b6ed1da41718ded984c5a1f9a1..d6ddef6fa71acf7b9faef4973fbaa3d8983a246a 100644 --- a/libmongoc/1.24.1/mongoc_collection_find_and_modify.html +++ b/libmongoc/1.24.1/mongoc_collection_find_and_modify.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_find_and_modify_with_opts.html b/libmongoc/1.24.1/mongoc_collection_find_and_modify_with_opts.html index 95a3805f97a3d9ba63b15c2d9ea414823b1ac45d..aedc36a3d2aba584891db1f608ef89ea6e15f3d2 100644 --- a/libmongoc/1.24.1/mongoc_collection_find_and_modify_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_find_and_modify_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_find_indexes.html b/libmongoc/1.24.1/mongoc_collection_find_indexes.html index 439e05b4da2b0e83533a3eca78974497525832dc..29ccd5a829ea042ecc4c2108db5f3f5e23b65337 100644 --- a/libmongoc/1.24.1/mongoc_collection_find_indexes.html +++ b/libmongoc/1.24.1/mongoc_collection_find_indexes.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_find_indexes_with_opts.html b/libmongoc/1.24.1/mongoc_collection_find_indexes_with_opts.html index 64fb8edec6ea7760c726a27bdd705b08fd7593e9..0fdf38f11bff2be8a650a37cc524bf182498539c 100644 --- a/libmongoc/1.24.1/mongoc_collection_find_indexes_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_find_indexes_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_find_with_opts.html b/libmongoc/1.24.1/mongoc_collection_find_with_opts.html index 24363253b87b1097cd45df43311b5132ba2e2b02..bb40328ae54f84044a05ad8ea5bd9b29bc7d8d91 100644 --- a/libmongoc/1.24.1/mongoc_collection_find_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_find_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_get_last_error.html b/libmongoc/1.24.1/mongoc_collection_get_last_error.html index 171eb181a640b4b22de0df1e5ea3aa69e65ae696..b2a58a5cfb2a69cc488b0cdc76258664d9922df7 100644 --- a/libmongoc/1.24.1/mongoc_collection_get_last_error.html +++ b/libmongoc/1.24.1/mongoc_collection_get_last_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_get_name.html b/libmongoc/1.24.1/mongoc_collection_get_name.html index 00994fda420f35ea4dec5425231999ad231e2626..48e725368dca1fe16791ce0b9247b71de6cb6ee4 100644 --- a/libmongoc/1.24.1/mongoc_collection_get_name.html +++ b/libmongoc/1.24.1/mongoc_collection_get_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_get_read_concern.html b/libmongoc/1.24.1/mongoc_collection_get_read_concern.html index 9f527c3d729ac1ffaffe63eb4efe508ca0eb955b..865c1119e62d78a7409fada76a70f4ac41ca1d4a 100644 --- a/libmongoc/1.24.1/mongoc_collection_get_read_concern.html +++ b/libmongoc/1.24.1/mongoc_collection_get_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_get_read_prefs.html b/libmongoc/1.24.1/mongoc_collection_get_read_prefs.html index 6de9118501a44b1d8bb07fca461a848a0345bc4a..4bb03567d4bcf673cfafb0135aa71e8e28cdc183 100644 --- a/libmongoc/1.24.1/mongoc_collection_get_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_collection_get_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_get_write_concern.html b/libmongoc/1.24.1/mongoc_collection_get_write_concern.html index 853aa93ea2d0a0df191e324b9efd3f086374d412..20ec127bf8af9b4db6fbf83c2b57251dbc1b650a 100644 --- a/libmongoc/1.24.1/mongoc_collection_get_write_concern.html +++ b/libmongoc/1.24.1/mongoc_collection_get_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_insert.html b/libmongoc/1.24.1/mongoc_collection_insert.html index 98530f600237962d770489b0f4c315fe024e141f..45c61f292fb84f3b960458031c3645ed8a5a8380 100644 --- a/libmongoc/1.24.1/mongoc_collection_insert.html +++ b/libmongoc/1.24.1/mongoc_collection_insert.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_insert_bulk.html b/libmongoc/1.24.1/mongoc_collection_insert_bulk.html index 51243adfcfee5b6c83fc2b6dbe22cd3d9e42fc79..c477a2886dd244d01af2fb02b8d5e7d31c978329 100644 --- a/libmongoc/1.24.1/mongoc_collection_insert_bulk.html +++ b/libmongoc/1.24.1/mongoc_collection_insert_bulk.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_insert_many.html b/libmongoc/1.24.1/mongoc_collection_insert_many.html index 0c4137d9cc75338d4aafe21d09451c59bca6b8e3..79053e91c6d04b9767ea33776b686d5f13843900 100644 --- a/libmongoc/1.24.1/mongoc_collection_insert_many.html +++ b/libmongoc/1.24.1/mongoc_collection_insert_many.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_insert_one.html b/libmongoc/1.24.1/mongoc_collection_insert_one.html index 222309b095c10559fa8d4d5c03f40301e4dcb005..7d5af2864e239d98f690dcb0a8e7e4ccbecca47f 100644 --- a/libmongoc/1.24.1/mongoc_collection_insert_one.html +++ b/libmongoc/1.24.1/mongoc_collection_insert_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_keys_to_index_string.html b/libmongoc/1.24.1/mongoc_collection_keys_to_index_string.html index 3718ecb86e9c9edc2034ebcf8a01a98c4bae6c5d..a54d9f0e65f9f69c8c1a475feb2f54278f48eb1c 100644 --- a/libmongoc/1.24.1/mongoc_collection_keys_to_index_string.html +++ b/libmongoc/1.24.1/mongoc_collection_keys_to_index_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_read_command_with_opts.html b/libmongoc/1.24.1/mongoc_collection_read_command_with_opts.html index ce751279df5b1742d69f98d6e3b8141016d2e373..154e9e3707c3b4cd12174af4b5f55b5758948ad7 100644 --- a/libmongoc/1.24.1/mongoc_collection_read_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_read_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_read_write_command_with_opts.html b/libmongoc/1.24.1/mongoc_collection_read_write_command_with_opts.html index b2a698132fa94fd2f8ee0e0ef18ad9f2a8ed59f0..5ea88680595404ec7f1534aff224e57ca5e4f1f1 100644 --- a/libmongoc/1.24.1/mongoc_collection_read_write_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_read_write_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_remove.html b/libmongoc/1.24.1/mongoc_collection_remove.html index 64ebdb3089c9fa035acfd2d139a2a7c4d6a98cb1..f60b11d388ecaee2c5c00acbc23db24710cc3bea 100644 --- a/libmongoc/1.24.1/mongoc_collection_remove.html +++ b/libmongoc/1.24.1/mongoc_collection_remove.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_rename.html b/libmongoc/1.24.1/mongoc_collection_rename.html index bc20103db8db8ce2ea4c53bed61e3d4154b7d78f..d26216e7492db323cc177bb8a4693418b7216e83 100644 --- a/libmongoc/1.24.1/mongoc_collection_rename.html +++ b/libmongoc/1.24.1/mongoc_collection_rename.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_rename_with_opts.html b/libmongoc/1.24.1/mongoc_collection_rename_with_opts.html index 807f03a1d7e9096492f2c5a5f07f8d469c532ac5..ad3fa6e944a9ad1ad99a9d5bad642e6d708fab40 100644 --- a/libmongoc/1.24.1/mongoc_collection_rename_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_rename_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_replace_one.html b/libmongoc/1.24.1/mongoc_collection_replace_one.html index 99713891f63ac5c3055f527a59955f9197deaa44..9f58f0636fda22aa058cb26d05947b6c5b3f9a59 100644 --- a/libmongoc/1.24.1/mongoc_collection_replace_one.html +++ b/libmongoc/1.24.1/mongoc_collection_replace_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_save.html b/libmongoc/1.24.1/mongoc_collection_save.html index 6ab73f2060704d0544ff039c4b0c142f1c15fb3e..4da37595c3d1135e662dbbccee458f2459b06091 100644 --- a/libmongoc/1.24.1/mongoc_collection_save.html +++ b/libmongoc/1.24.1/mongoc_collection_save.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_set_read_concern.html b/libmongoc/1.24.1/mongoc_collection_set_read_concern.html index 06d0ed45963e030eae0fc60ccf47f29f2aefd61f..a58996d8424b7df57988648e7bf3e06a7972eb55 100644 --- a/libmongoc/1.24.1/mongoc_collection_set_read_concern.html +++ b/libmongoc/1.24.1/mongoc_collection_set_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_set_read_prefs.html b/libmongoc/1.24.1/mongoc_collection_set_read_prefs.html index 1ee2875c65e73ad6ca691cbe2d2beaf916d6e95e..645e6e34c58bec9047d6fe15716106eb57ac697a 100644 --- a/libmongoc/1.24.1/mongoc_collection_set_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_collection_set_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_set_write_concern.html b/libmongoc/1.24.1/mongoc_collection_set_write_concern.html index dbd2002b061cecb6cc3dfcc5d7a362d838e1b7e2..96cae6a3da1cb1540b2dd1317c7fcf13fcc97baa 100644 --- a/libmongoc/1.24.1/mongoc_collection_set_write_concern.html +++ b/libmongoc/1.24.1/mongoc_collection_set_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_stats.html b/libmongoc/1.24.1/mongoc_collection_stats.html index 9585b266f78c2e3808cbcec601f250c8f3308e51..3c7b9d8379c1b0daa2ca38ed1c8a2f739f7d146f 100644 --- a/libmongoc/1.24.1/mongoc_collection_stats.html +++ b/libmongoc/1.24.1/mongoc_collection_stats.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_t.html b/libmongoc/1.24.1/mongoc_collection_t.html index ac95b57b364016f360bf8442481a2d39deab570d..84fe0a3cb06a854bc6135cee93383b0417e6e41a 100644 --- a/libmongoc/1.24.1/mongoc_collection_t.html +++ b/libmongoc/1.24.1/mongoc_collection_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_update.html b/libmongoc/1.24.1/mongoc_collection_update.html index ef44f1ec91437ac28202a635e3d1953bd5135777..998a3cb119f07b655130e087711c880bc3b4b19b 100644 --- a/libmongoc/1.24.1/mongoc_collection_update.html +++ b/libmongoc/1.24.1/mongoc_collection_update.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_update_many.html b/libmongoc/1.24.1/mongoc_collection_update_many.html index 8828ff1a42f0054d311dee77c99c0ffa7a7de6ea..3999fcdc08f0004525a1786fad895f250da805c4 100644 --- a/libmongoc/1.24.1/mongoc_collection_update_many.html +++ b/libmongoc/1.24.1/mongoc_collection_update_many.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_update_one.html b/libmongoc/1.24.1/mongoc_collection_update_one.html index b0e1f1d8c3e57bd8c55932d3d01945fa6188cdb1..d912af893bbe9b58c28e7eef640671ec8176f8e1 100644 --- a/libmongoc/1.24.1/mongoc_collection_update_one.html +++ b/libmongoc/1.24.1/mongoc_collection_update_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_validate.html b/libmongoc/1.24.1/mongoc_collection_validate.html index 47200fa6bd536cc37c452b378e0d59fe486bd479..79252a6f35dd64b4bbfa279723833a3c2b9143b8 100644 --- a/libmongoc/1.24.1/mongoc_collection_validate.html +++ b/libmongoc/1.24.1/mongoc_collection_validate.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_watch.html b/libmongoc/1.24.1/mongoc_collection_watch.html index 7f6dbcf6fa0ce6ab0681b3999c44540d1c35625f..6128150bd944251de08aec4fa27ac8206c95b2b5 100644 --- a/libmongoc/1.24.1/mongoc_collection_watch.html +++ b/libmongoc/1.24.1/mongoc_collection_watch.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_collection_write_command_with_opts.html b/libmongoc/1.24.1/mongoc_collection_write_command_with_opts.html index 448d18ea68ae0b9e787ef4a89c90ed41ccfe4df0..ed407189ed796899e90766f461647a3ba394d7f8 100644 --- a/libmongoc/1.24.1/mongoc_collection_write_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_collection_write_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_clone.html b/libmongoc/1.24.1/mongoc_cursor_clone.html index 2604abcc964843d5af40bda43fd03b42776eaa97..a537ffab457e943013d8f1ba4fe56b0c4673e3dc 100644 --- a/libmongoc/1.24.1/mongoc_cursor_clone.html +++ b/libmongoc/1.24.1/mongoc_cursor_clone.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_current.html b/libmongoc/1.24.1/mongoc_cursor_current.html index db0031aa5fd22dcd8316f94688deeb32620deba7..b6d9da116fb95909982e8552c288d07e17c754c4 100644 --- a/libmongoc/1.24.1/mongoc_cursor_current.html +++ b/libmongoc/1.24.1/mongoc_cursor_current.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_destroy.html b/libmongoc/1.24.1/mongoc_cursor_destroy.html index 48694b7132261819d840fdd38be5b4de71fa01a8..5ebe968bd40934190a44ec39bcd8061440e5f694 100644 --- a/libmongoc/1.24.1/mongoc_cursor_destroy.html +++ b/libmongoc/1.24.1/mongoc_cursor_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_error.html b/libmongoc/1.24.1/mongoc_cursor_error.html index fc4f3fa4ab9afa46ca16bdd8776eac86a56ff608..960ad58edca0efb05b72970f74cda6bae0b9e0a7 100644 --- a/libmongoc/1.24.1/mongoc_cursor_error.html +++ b/libmongoc/1.24.1/mongoc_cursor_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_error_document.html b/libmongoc/1.24.1/mongoc_cursor_error_document.html index 395069d11f03225ba59c03c34fcdc95dae463ec6..17bb7b83639c6dd6a0f027c0e5043ad9249afee9 100644 --- a/libmongoc/1.24.1/mongoc_cursor_error_document.html +++ b/libmongoc/1.24.1/mongoc_cursor_error_document.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_get_batch_size.html b/libmongoc/1.24.1/mongoc_cursor_get_batch_size.html index 1b760709e407e7f7baea798feab0f403504ed877..c9f8e1c4956479a01c1fc31e2fb36756f17f810b 100644 --- a/libmongoc/1.24.1/mongoc_cursor_get_batch_size.html +++ b/libmongoc/1.24.1/mongoc_cursor_get_batch_size.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_get_hint.html b/libmongoc/1.24.1/mongoc_cursor_get_hint.html index 4ad2d0b5e0414e295c8b33f9e6de3a86dcf13b7a..3e25076e7913a6f63d4f1a01ecc28150eb1c7c94 100644 --- a/libmongoc/1.24.1/mongoc_cursor_get_hint.html +++ b/libmongoc/1.24.1/mongoc_cursor_get_hint.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_get_host.html b/libmongoc/1.24.1/mongoc_cursor_get_host.html index d5fc259f25eac4521bc309e85b7cf439b7eed218..71f7013de2fb4aba8c024524b885bfcfb04cbf01 100644 --- a/libmongoc/1.24.1/mongoc_cursor_get_host.html +++ b/libmongoc/1.24.1/mongoc_cursor_get_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_get_id.html b/libmongoc/1.24.1/mongoc_cursor_get_id.html index 18792dbf40435a4f0a7b5f86bb12eb0f55c92165..842ba782ec992a9954b67d00a872fdf56717b97f 100644 --- a/libmongoc/1.24.1/mongoc_cursor_get_id.html +++ b/libmongoc/1.24.1/mongoc_cursor_get_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_get_limit.html b/libmongoc/1.24.1/mongoc_cursor_get_limit.html index 63583531f98e45199b60d6cf7f13c40b4f7dda99..e0e0edfac0ddafd2a85796867b4992e4ab00c5b2 100644 --- a/libmongoc/1.24.1/mongoc_cursor_get_limit.html +++ b/libmongoc/1.24.1/mongoc_cursor_get_limit.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_get_max_await_time_ms.html b/libmongoc/1.24.1/mongoc_cursor_get_max_await_time_ms.html index a66fcf7d672161050dd0f32543ca1e652f4fbaec..c825551175b7ded89cbb6c262f5857651c54aa83 100644 --- a/libmongoc/1.24.1/mongoc_cursor_get_max_await_time_ms.html +++ b/libmongoc/1.24.1/mongoc_cursor_get_max_await_time_ms.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_is_alive.html b/libmongoc/1.24.1/mongoc_cursor_is_alive.html index a3f1973abcc3e7e3c56f6260ca3b877858702e4f..1a6f5fc5a227570e8cabb557526f0c5ccccc2746 100644 --- a/libmongoc/1.24.1/mongoc_cursor_is_alive.html +++ b/libmongoc/1.24.1/mongoc_cursor_is_alive.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_more.html b/libmongoc/1.24.1/mongoc_cursor_more.html index a0b8e6d872cb3f79de00dd9a31e821fe87ac4157..dda59dfe6b787078d3ab7a82f35a9b2b41c13adb 100644 --- a/libmongoc/1.24.1/mongoc_cursor_more.html +++ b/libmongoc/1.24.1/mongoc_cursor_more.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply.html b/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply.html index ae957be500964e8c04b8bf21ad4931fc22b02b04..e5267277b102b3222a1ffdb26292d4608fbe0659 100644 --- a/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply.html +++ b/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply_with_opts.html b/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply_with_opts.html index c3ba4c75e4de08e77deebce5d33b9bbe18813d2c..5af13c0cc87079ff2653745a76501d78cfdb29fe 100644 --- a/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply_with_opts.html +++ b/libmongoc/1.24.1/mongoc_cursor_new_from_command_reply_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_next.html b/libmongoc/1.24.1/mongoc_cursor_next.html index 8e489c5a8565ee3fb25843dbeab16661aa3ccd48..4ea924bde6b2a70d0afda2798c2d60d32c02adfd 100644 --- a/libmongoc/1.24.1/mongoc_cursor_next.html +++ b/libmongoc/1.24.1/mongoc_cursor_next.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_set_batch_size.html b/libmongoc/1.24.1/mongoc_cursor_set_batch_size.html index c60e3f032aad6923d6f4dbe10a98052e52c3b605..40fc710f4095567da0284147b9ce4a88aa6bbfad 100644 --- a/libmongoc/1.24.1/mongoc_cursor_set_batch_size.html +++ b/libmongoc/1.24.1/mongoc_cursor_set_batch_size.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_set_hint.html b/libmongoc/1.24.1/mongoc_cursor_set_hint.html index c7f9331faae1fa966b43fe5bcd4c5b22cbc8c615..ddd00564e52c89d2af3f2ad5abbc9c5d2cd351d0 100644 --- a/libmongoc/1.24.1/mongoc_cursor_set_hint.html +++ b/libmongoc/1.24.1/mongoc_cursor_set_hint.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_set_limit.html b/libmongoc/1.24.1/mongoc_cursor_set_limit.html index d51d130fd63ec5ec05ff57de99dafd272cf42d3d..14d2628323e020bb2a161d28f0cd0eb869e84de4 100644 --- a/libmongoc/1.24.1/mongoc_cursor_set_limit.html +++ b/libmongoc/1.24.1/mongoc_cursor_set_limit.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_set_max_await_time_ms.html b/libmongoc/1.24.1/mongoc_cursor_set_max_await_time_ms.html index 9f0a28078e2019c908ff6acaf0b7a215d52f531f..4d747d79ddf4ed50d505f6a7107b04ede4c36b27 100644 --- a/libmongoc/1.24.1/mongoc_cursor_set_max_await_time_ms.html +++ b/libmongoc/1.24.1/mongoc_cursor_set_max_await_time_ms.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_cursor_t.html b/libmongoc/1.24.1/mongoc_cursor_t.html index c489d5300655e92b14ac0d86723c03d219e55b54..e1d80dc12f509ba44b0359ab9da6fb4d3766b75b 100644 --- a/libmongoc/1.24.1/mongoc_cursor_t.html +++ b/libmongoc/1.24.1/mongoc_cursor_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_add_user.html b/libmongoc/1.24.1/mongoc_database_add_user.html index 611176b8211383e70ea227d3e857e669dc3fd8de..6bc4337721e2f8b46e008fbaaf05edc90d7153e6 100644 --- a/libmongoc/1.24.1/mongoc_database_add_user.html +++ b/libmongoc/1.24.1/mongoc_database_add_user.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_aggregate.html b/libmongoc/1.24.1/mongoc_database_aggregate.html index c0c13f7748a5fab2908202de7c86eb6cfab61bbf..82459548147fdc922c45313241931cc1f9944b09 100644 --- a/libmongoc/1.24.1/mongoc_database_aggregate.html +++ b/libmongoc/1.24.1/mongoc_database_aggregate.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_command.html b/libmongoc/1.24.1/mongoc_database_command.html index eeaf3ea8fd2cce0ee5c8c0e5e37b65bdde724b1f..725625b23d33bdae021ea58690168c4892c96b52 100644 --- a/libmongoc/1.24.1/mongoc_database_command.html +++ b/libmongoc/1.24.1/mongoc_database_command.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_command_simple.html b/libmongoc/1.24.1/mongoc_database_command_simple.html index 37fcb47f9ecabf9d92c3da24536ae7c1f38f9a9d..b8da8ba672f3f3bc827307c5747ea462b2359d4d 100644 --- a/libmongoc/1.24.1/mongoc_database_command_simple.html +++ b/libmongoc/1.24.1/mongoc_database_command_simple.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_command_with_opts.html b/libmongoc/1.24.1/mongoc_database_command_with_opts.html index 8d1e3b07a1b6ceb7f54f148d0818884555f688c7..008dc8fa04cd4726e73c71f46a24b85e606c3f45 100644 --- a/libmongoc/1.24.1/mongoc_database_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_database_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_copy.html b/libmongoc/1.24.1/mongoc_database_copy.html index b0196647f6404901996aac64ac12d9e10322e813..120327a34d46c2b09ebb9b3d52423c504f715811 100644 --- a/libmongoc/1.24.1/mongoc_database_copy.html +++ b/libmongoc/1.24.1/mongoc_database_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_create_collection.html b/libmongoc/1.24.1/mongoc_database_create_collection.html index 626db6c79065564d33703f1bd44bb97b3472fd1f..f78cceb2d7ddede1b7b199d96831f644379a672f 100644 --- a/libmongoc/1.24.1/mongoc_database_create_collection.html +++ b/libmongoc/1.24.1/mongoc_database_create_collection.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_destroy.html b/libmongoc/1.24.1/mongoc_database_destroy.html index af2001cac2a1eb2bc7219a5f32f2cb0a1463d7e3..029bdf034d67074ff69245488eae8753e520d1f5 100644 --- a/libmongoc/1.24.1/mongoc_database_destroy.html +++ b/libmongoc/1.24.1/mongoc_database_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_drop.html b/libmongoc/1.24.1/mongoc_database_drop.html index 9afce003821ec5611086f15be22aa358cb0c8a1c..641aa35ae78b649933cbdb999beb3f8d50632ffb 100644 --- a/libmongoc/1.24.1/mongoc_database_drop.html +++ b/libmongoc/1.24.1/mongoc_database_drop.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_drop_with_opts.html b/libmongoc/1.24.1/mongoc_database_drop_with_opts.html index a155540cd533c35476657a03577d67936ea298eb..296ce12bedc97e976cc558cbaac09112e636222b 100644 --- a/libmongoc/1.24.1/mongoc_database_drop_with_opts.html +++ b/libmongoc/1.24.1/mongoc_database_drop_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_find_collections.html b/libmongoc/1.24.1/mongoc_database_find_collections.html index 4fde8919cb4b1b9ec91283c409566850ea39895a..0348d85b794ac1dadabf20f7e41fd1d2e9086ae4 100644 --- a/libmongoc/1.24.1/mongoc_database_find_collections.html +++ b/libmongoc/1.24.1/mongoc_database_find_collections.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_find_collections_with_opts.html b/libmongoc/1.24.1/mongoc_database_find_collections_with_opts.html index f6923998c6cd7e7d597be48d08ce3c6960ce74f8..de7a30eee4378b9c14b4197866b38d7c07b33e86 100644 --- a/libmongoc/1.24.1/mongoc_database_find_collections_with_opts.html +++ b/libmongoc/1.24.1/mongoc_database_find_collections_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_get_collection.html b/libmongoc/1.24.1/mongoc_database_get_collection.html index f2e7f6379462bf41b9dac8ded29af39cc7f34660..5eea8c73ecdef195fdae94e139903efe5c522ee3 100644 --- a/libmongoc/1.24.1/mongoc_database_get_collection.html +++ b/libmongoc/1.24.1/mongoc_database_get_collection.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_get_collection_names.html b/libmongoc/1.24.1/mongoc_database_get_collection_names.html index a932651c39beac9edf002d047cdf8c5cbce4204c..2a58171dddf9af0541a7cefcf15d72ec723cc63e 100644 --- a/libmongoc/1.24.1/mongoc_database_get_collection_names.html +++ b/libmongoc/1.24.1/mongoc_database_get_collection_names.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_get_collection_names_with_opts.html b/libmongoc/1.24.1/mongoc_database_get_collection_names_with_opts.html index dfa9de2823ad0d35d2a6305b4a2d22af608d6705..bbc3ce09af9b38ea702e2eebb24b9977314c1428 100644 --- a/libmongoc/1.24.1/mongoc_database_get_collection_names_with_opts.html +++ b/libmongoc/1.24.1/mongoc_database_get_collection_names_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_get_name.html b/libmongoc/1.24.1/mongoc_database_get_name.html index 43015b742d1a5a7465832136d6b9cb6b245902fc..4a014f154b9cbe6511a06079a9e39407e0088a82 100644 --- a/libmongoc/1.24.1/mongoc_database_get_name.html +++ b/libmongoc/1.24.1/mongoc_database_get_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_get_read_concern.html b/libmongoc/1.24.1/mongoc_database_get_read_concern.html index 59c37de74450c67c1eb51637df68105f643cc732..f92c54c6cb10ddc5fbda0ae70f5b9869588b4a01 100644 --- a/libmongoc/1.24.1/mongoc_database_get_read_concern.html +++ b/libmongoc/1.24.1/mongoc_database_get_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_get_read_prefs.html b/libmongoc/1.24.1/mongoc_database_get_read_prefs.html index 105dc59b7e827cdfde5bd7f6af7fdf06fcc50306..b99ff6d5d25fbd3b7fbfeb7a73851391ce93ddc1 100644 --- a/libmongoc/1.24.1/mongoc_database_get_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_database_get_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_get_write_concern.html b/libmongoc/1.24.1/mongoc_database_get_write_concern.html index e473e86e3e24d80c49d50c04e85ad67fc46e409e..9d602a404464d11ca2528f3cc35efc87db628398 100644 --- a/libmongoc/1.24.1/mongoc_database_get_write_concern.html +++ b/libmongoc/1.24.1/mongoc_database_get_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_has_collection.html b/libmongoc/1.24.1/mongoc_database_has_collection.html index 2fcd81149c6be98b73919488e9ea0e427485d5f7..24cf0f51d2272fb455f9c049951ef65d2c66f8e4 100644 --- a/libmongoc/1.24.1/mongoc_database_has_collection.html +++ b/libmongoc/1.24.1/mongoc_database_has_collection.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_read_command_with_opts.html b/libmongoc/1.24.1/mongoc_database_read_command_with_opts.html index 79260a4de039ea6fa15464465c7ac20d3dc27d3d..1445ce309b35dd6531f1f52f768531f84f448798 100644 --- a/libmongoc/1.24.1/mongoc_database_read_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_database_read_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_read_write_command_with_opts.html b/libmongoc/1.24.1/mongoc_database_read_write_command_with_opts.html index ae73f21a928b221f036dfe4fbec7a3a5f619a16c..d73e4879aaeea6c9d705f7a0c5263376c6d1e6fb 100644 --- a/libmongoc/1.24.1/mongoc_database_read_write_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_database_read_write_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_remove_all_users.html b/libmongoc/1.24.1/mongoc_database_remove_all_users.html index d77f82be0b63eefeb0d32c205ea42c98c28abe17..91c2b6b090c980524026fd34a06e30ba991ba1f1 100644 --- a/libmongoc/1.24.1/mongoc_database_remove_all_users.html +++ b/libmongoc/1.24.1/mongoc_database_remove_all_users.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_remove_user.html b/libmongoc/1.24.1/mongoc_database_remove_user.html index 6caa8a3ffdf23b2b0018203264d16f3eb9999e25..3240c8c0d96c5addf2a56b563ef9003e97248bbd 100644 --- a/libmongoc/1.24.1/mongoc_database_remove_user.html +++ b/libmongoc/1.24.1/mongoc_database_remove_user.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_set_read_concern.html b/libmongoc/1.24.1/mongoc_database_set_read_concern.html index b8837f4cda5ad216cfef62d0bfd83698e16a147f..72e341547bc6ffd7b5df63fb6e13907a240f3c87 100644 --- a/libmongoc/1.24.1/mongoc_database_set_read_concern.html +++ b/libmongoc/1.24.1/mongoc_database_set_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_set_read_prefs.html b/libmongoc/1.24.1/mongoc_database_set_read_prefs.html index f66065f9753602adcae7f2d98e2849f786b957d4..4e4ca99b6ac16509241c4817a4eb5ea54597fe38 100644 --- a/libmongoc/1.24.1/mongoc_database_set_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_database_set_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_set_write_concern.html b/libmongoc/1.24.1/mongoc_database_set_write_concern.html index 56cbeb7dfe14a2a3d00db727193e365275de15ed..3dfd104257661f987452f2cd3a7b61bcffa0402c 100644 --- a/libmongoc/1.24.1/mongoc_database_set_write_concern.html +++ b/libmongoc/1.24.1/mongoc_database_set_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_t.html b/libmongoc/1.24.1/mongoc_database_t.html index 214419c6297b7f54244a72366e40e3c6bae423d1..68872deb7efbae482857e1c72c116eb8eb58dd04 100644 --- a/libmongoc/1.24.1/mongoc_database_t.html +++ b/libmongoc/1.24.1/mongoc_database_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_watch.html b/libmongoc/1.24.1/mongoc_database_watch.html index 7ac7941f068bfabcb22d25468d11a83683005bc8..fe95e0761dcb4728a39c87d1e920abc02777ad93 100644 --- a/libmongoc/1.24.1/mongoc_database_watch.html +++ b/libmongoc/1.24.1/mongoc_database_watch.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_database_write_command_with_opts.html b/libmongoc/1.24.1/mongoc_database_write_command_with_opts.html index c77dfb96e90f85af11a44c15c4f78c3674ae60c0..3485bf731b1b853fa3f7bdd7152c09e0d280643e 100644 --- a/libmongoc/1.24.1/mongoc_database_write_command_with_opts.html +++ b/libmongoc/1.24.1/mongoc_database_write_command_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_delete_flags_t.html b/libmongoc/1.24.1/mongoc_delete_flags_t.html index b343be7e2ed3994cb832d2c743e13a748e86d1cd..1ccbc9358b34d9d31a7b47ff1bc3c53228921227 100644 --- a/libmongoc/1.24.1/mongoc_delete_flags_t.html +++ b/libmongoc/1.24.1/mongoc_delete_flags_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_error_has_label.html b/libmongoc/1.24.1/mongoc_error_has_label.html index 1ea80e10cf2d6758193f7ec058923039c864450d..3ca2bd377b198468f605684f39255ac521989f00 100644 --- a/libmongoc/1.24.1/mongoc_error_has_label.html +++ b/libmongoc/1.24.1/mongoc_error_has_label.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_append.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_append.html index 6c7c933f2e5773fb9485274fb2f9e46f6d4c6465..b9cf4153f5a74a27153038859255c108e4ba27d2 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_append.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_append.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_destroy.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_destroy.html index e65f254c377bf39860269787bc79c7b6b06dbbfe..55cbd8cda5d88e126ac7257f7974ae6570c6da03 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html index a76ecc7b32523c6be3629bb77dd5d16e9c283b8e..e49db381e65b21b65a774db929db104d753ce455 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_bypass_document_validation.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_fields.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_fields.html index 2632f46c2b7a0952581a22cb42af6958e264c953..096be498afdf63c39dbdd51b84fc6e455d25272b 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_fields.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_fields.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_flags.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_flags.html index 177b6119e5ebcdff62ee096fbc2c8cf3caffc633..4ee1def235cd0abbf88217ae1a587f6a8f68cf6f 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_flags.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_flags.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_max_time_ms.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_max_time_ms.html index efd5cc63605d4b22bb2aa2db45f6d99376219d7c..85de0320a8a43b15419897f3fdba2c12d0a702fe 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_max_time_ms.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_max_time_ms.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_sort.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_sort.html index a1c7925997db586c618f4ae4fbec0af63808cea2..7c7f4b4e11a47f491d92c431a03f0422ce2f0313 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_sort.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_sort.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_update.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_update.html index 53aa564a09943883c378bdbbe08fb6f9f9eb33d4..bbe4adc71a1e864c82ded9cb9cc2d2bc0e496970 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_update.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_get_update.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_new.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_new.html index 8ef26c406c96039a56168286d6b461dc9313f190..8a0e6c1a3c7266b6670e67cbc59b8b2ed704b336 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_new.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html index e26955f550e88176d816cdf96465fae5932a2143..32d44ba4446f1ec8a78a3393b84ffe9674106492 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_bypass_document_validation.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_fields.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_fields.html index dad257029573b2a8d325840d2aaa6105dfb35f2c..f4b6dd915cbef0d1ff5aeb7001ef8bc44c2c10f7 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_fields.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_fields.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_flags.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_flags.html index c81e5563dd53ae1cb88256b4884bc794b7f075ce..ea89517fa7ebd4b19f829c42248209a785a2db8b 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_flags.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_flags.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_max_time_ms.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_max_time_ms.html index 61b9d245f484332c8d2e97f2cbfd7a624b95fe1b..98efdac300987b31cb5c75816d8638e8baf0a9d3 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_max_time_ms.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_max_time_ms.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_sort.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_sort.html index 45655abaf2590a8912ac90eadd890d32ec896476..bc00217eceaa54e8227a94f0e946aef2aee4cbe0 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_sort.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_sort.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_update.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_update.html index 79cb4d1197b8996f970411e9868cee7dc8575c4c..5943227c9c139ed2bb9fadc69d604b00ca7b0a48 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_update.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_set_update.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_find_and_modify_opts_t.html b/libmongoc/1.24.1/mongoc_find_and_modify_opts_t.html index c6f201ba3a8c5c9d95b34143dda7762ad2a5e91e..d282cc9711954cd6ea1b98fe494d7553b72e838c 100644 --- a/libmongoc/1.24.1/mongoc_find_and_modify_opts_t.html +++ b/libmongoc/1.24.1/mongoc_find_and_modify_opts_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_get_major_version.html b/libmongoc/1.24.1/mongoc_get_major_version.html index 6808fbb9adb05cf88ce70bdd4e2e02a1afa2f58a..5e3f616390da51d08be8f7c9e4d4d375f8077e4f 100644 --- a/libmongoc/1.24.1/mongoc_get_major_version.html +++ b/libmongoc/1.24.1/mongoc_get_major_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_get_micro_version.html b/libmongoc/1.24.1/mongoc_get_micro_version.html index 70530dd674213d6092b22fb9edf4041548a5f83d..844009999b0fb5cfb9e9f520ee632149f1863250 100644 --- a/libmongoc/1.24.1/mongoc_get_micro_version.html +++ b/libmongoc/1.24.1/mongoc_get_micro_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_get_minor_version.html b/libmongoc/1.24.1/mongoc_get_minor_version.html index 85c9d653e92851d0f597c002d00e802772ce8f34..e053a045e460f8795f1cbcc3893940347801be3b 100644 --- a/libmongoc/1.24.1/mongoc_get_minor_version.html +++ b/libmongoc/1.24.1/mongoc_get_minor_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_get_version.html b/libmongoc/1.24.1/mongoc_get_version.html index 44247ce6cb9c65bce3aad3def3d32d8033f89443..7cc8db25f3f543c1904688e9b63e6ca42f340e80 100644 --- a/libmongoc/1.24.1/mongoc_get_version.html +++ b/libmongoc/1.24.1/mongoc_get_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_abort_upload.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_abort_upload.html index 2fa36982839531a88a44c81afcc36c055c8b9344..cf623c91e3096bbd3198217bbe9de68d045f951b 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_abort_upload.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_abort_upload.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_delete_by_id.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_delete_by_id.html index 993bdc3f4aab2c726a57175674cdcb456a211714..ec7893450a9ae94f003c5410a192fe7582a636f1 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_delete_by_id.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_delete_by_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_destroy.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_destroy.html index 71ac3e4b59b16b30119921a6d324220c7f37a1e4..4560653e565f143785e8addf799e55d24550cd2b 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_destroy.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_download_to_stream.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_download_to_stream.html index 92b102b98d8d7ddf2e4b0ca706c3f382ee7b0203..3c16370a6bd82ea55b48effeebff51d00ba0faad 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_download_to_stream.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_download_to_stream.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_find.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_find.html index ec2e020760cd7e3996ffb0a1f93cf1e20527c30b..15dff9e6a6f09236cb5e9e927fd3650a00439b3f 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_find.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_find.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_new.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_new.html index 5936e426bac91503f4617c96100d2e9b3fca6a78..3759bed8339e5b264eca3d19e5c9a831e26fe40d 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_new.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_open_download_stream.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_open_download_stream.html index b49a3007144e6588b6364d64c0b64cc27702e599..6ca5ad19afa3a2c5d1417122a5bc34ac27dcbe69 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_open_download_stream.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_open_download_stream.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream.html index ac8fb50dd64784c2dec6c03030af8172b2bfbaca..c3443f358d9771b1c3928c7e1b310d4d433594f7 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html index 25055e277842aab1dd074490f2127cfc33a80f92..6114a28df04e2239d006cad842ac3cc1a211412d 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_open_upload_stream_with_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_stream_error.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_stream_error.html index 49464a06b056e719b6d2a183f41cb9084c8efa07..7767d6b2b0f601a9c25553d0a59be9bd04ab9460 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_stream_error.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_stream_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_t.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_t.html index 0469f0c32d6e63275274719166b8637f4ff60a66..2436731edae99735521658c8f3cf79499fdf6e9b 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_t.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream.html index c4f09affdbce012199de7097cc16caf6c2f22269..1cd05d8d219a7260ce8be0d07db7718fce28b5ff 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html b/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html index 59b32154f5f28aea02880a579261f82746a2b409..b0aa3286d308550ed46c0e0aa13217727080473d 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html +++ b/libmongoc/1.24.1/mongoc_gridfs_bucket_upload_from_stream_with_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_create_file.html b/libmongoc/1.24.1/mongoc_gridfs_create_file.html index baa8d8e2c2dd8f5331a88e3da1703b3047d6a6ea..3ff061b94b7de8d77714bb466298471d86a309f6 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_create_file.html +++ b/libmongoc/1.24.1/mongoc_gridfs_create_file.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_create_file_from_stream.html b/libmongoc/1.24.1/mongoc_gridfs_create_file_from_stream.html index dc86dd3608a0f7d1764a2b8a7330b9ad5b62352e..f3857b60038fac930ab68bd564c5e0b9da9e07f9 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_create_file_from_stream.html +++ b/libmongoc/1.24.1/mongoc_gridfs_create_file_from_stream.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_destroy.html b/libmongoc/1.24.1/mongoc_gridfs_destroy.html index 821dfedd9a1d1251765baa9615b5aee9eb890692..f6e81bd0493a95df3bdc51990cf4dcd804768028 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_destroy.html +++ b/libmongoc/1.24.1/mongoc_gridfs_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_drop.html b/libmongoc/1.24.1/mongoc_gridfs_drop.html index 38549e8f18f7b2e50e06e31a780dbe0fed71dd22..13b0dc6121629cba50314bd06fe8b5c4432977e7 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_drop.html +++ b/libmongoc/1.24.1/mongoc_gridfs_drop.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_destroy.html b/libmongoc/1.24.1/mongoc_gridfs_file_destroy.html index aecea271ca5a00c433652e0f72d27c1b76157557..67aa80d5faefd09c3681df91166d227c572ccb12 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_destroy.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_error.html b/libmongoc/1.24.1/mongoc_gridfs_file_error.html index abdd37f4183544819b86ec6794c776a15a4ea5e8..c504312306782c0f87de38357c6811ead4bd6b06 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_error.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_aliases.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_aliases.html index c541108bd6557cc1862404df7ad40b7774d56414..fa6528fa44ecb1c6d8fcf3676e895e3422cc6d91 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_aliases.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_aliases.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_chunk_size.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_chunk_size.html index b781d794c393d49e3c0471b6af082d6163d9b305..84db323a550e48866e5002b8d201ee2da81e2699 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_chunk_size.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_chunk_size.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_content_type.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_content_type.html index a1bbe837a6bdb4f5b570fb37524ae65ee30b3ffb..c549f090112380f53dcf77aabbbe139b8ff4325e 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_content_type.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_content_type.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_filename.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_filename.html index 1466e3f0d1e75aa3f65130c53413834bd1c3602b..1866b932797f2c5aa34303e95c1d66df8d3081ff 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_filename.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_filename.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_id.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_id.html index 4c72535fa3351805f964b1527514867bafdab56d..a09485371f1e16edfed5a937d696a1074e47cfd6 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_id.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_length.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_length.html index 3716ff5d3d65fe085f0f111ddf13bbb71a3524eb..88fb7dddd41dbf492df83ccaddc2c258fd2ceaa8 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_length.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_length.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_md5.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_md5.html index e33a21a34a7b732f974c238e0a7cc6615ea8997a..42c70e0698a0dea2bbab6d416917a335d3a6ef2c 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_md5.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_md5.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_metadata.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_metadata.html index 9fa8d0ac602f3bb800ed97834bf5049abcc961a9..5b9ec9dd0512d0a48fb3d2c7613bbb43b8487eec 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_metadata.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_metadata.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_get_upload_date.html b/libmongoc/1.24.1/mongoc_gridfs_file_get_upload_date.html index 6688d4eda933b3b2da3c891ca54f6c4ed84fb74a..9267675191e0e03352bff19a6eb6b083feaf10a6 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_get_upload_date.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_get_upload_date.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_list_destroy.html b/libmongoc/1.24.1/mongoc_gridfs_file_list_destroy.html index a7eba89f879db3fb88b35ac1627e311f2707acc9..317e45d63d9338825ece0e0e60ced6aaaa0ec7e9 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_list_destroy.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_list_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_list_error.html b/libmongoc/1.24.1/mongoc_gridfs_file_list_error.html index 169177752b7f2804ffaf720e3a9ea9053f882746..fd24cf10d30bdfe8f131a1c287fb30e4e5c47674 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_list_error.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_list_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_list_next.html b/libmongoc/1.24.1/mongoc_gridfs_file_list_next.html index fd05f0e9f66eead924e0619ffd14f6d9e8bcafaa..0df030ed4c07352c3d1955c60cc2f3e08047e20b 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_list_next.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_list_next.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_list_t.html b/libmongoc/1.24.1/mongoc_gridfs_file_list_t.html index db77b27f620d4b80e9db6e1b0c25a9e794cd3f6c..09b95d9888b5243ce7fcaae04a6e2013589bdad4 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_list_t.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_list_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_opt_t.html b/libmongoc/1.24.1/mongoc_gridfs_file_opt_t.html index f6053da4cdbafba1d0d0e54a44b30f810553a9ad..6e6e6fcd498a709b33e7188b06b71e1fa3515b0f 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_opt_t.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_opt_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_readv.html b/libmongoc/1.24.1/mongoc_gridfs_file_readv.html index f88003e43d0d5555dd4a106ee9f0ed36ed616298..f8b7f8fa13768a3656182b96ba8f4b24d1f479a3 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_readv.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_readv.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_remove.html b/libmongoc/1.24.1/mongoc_gridfs_file_remove.html index dc1755947fb4beaa6f42f71e815ea7af0074fee9..08cc146f60e6243349d47cc3b0293295210b56cd 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_remove.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_remove.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_save.html b/libmongoc/1.24.1/mongoc_gridfs_file_save.html index 881f0ac0f38d952535724acd30af8dbd524033ea..d3af5b21ef64ed9d052c46ee8b50536964d63d71 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_save.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_save.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_seek.html b/libmongoc/1.24.1/mongoc_gridfs_file_seek.html index 2079d8490d1c1ac1798f922ee3a9088a711c44d7..71c13e3293b6e9e76808d0f8c2273f68040549ab 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_seek.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_seek.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_set_aliases.html b/libmongoc/1.24.1/mongoc_gridfs_file_set_aliases.html index bc5416efe715d3f586c398f11c0a890398619901..27c2934d096563de84d488840e087fac120e68a7 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_set_aliases.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_set_aliases.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_set_content_type.html b/libmongoc/1.24.1/mongoc_gridfs_file_set_content_type.html index a4ee149bdea6b5763076cbca9e649928f111a4c5..f92aab1d392624d7a5041a41a2dbd653b66ee707 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_set_content_type.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_set_content_type.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_set_filename.html b/libmongoc/1.24.1/mongoc_gridfs_file_set_filename.html index 9c34953056d7b006d65f8d739908dcd05e4f212a..6a21322f7cff1c8f1d088d1e68c8a4e9d2f4473d 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_set_filename.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_set_filename.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_set_id.html b/libmongoc/1.24.1/mongoc_gridfs_file_set_id.html index 10b8ec91026032837308b19d20aa7b12a9cc8264..91dcf77d43b4d887a48749255628ae6bf1b529d1 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_set_id.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_set_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_set_md5.html b/libmongoc/1.24.1/mongoc_gridfs_file_set_md5.html index 9856e26ee936b913bcc2b5ff7a68664526bf28dd..f85cca4adeb53017f758786e518df4f5af6eabb4 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_set_md5.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_set_md5.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_set_metadata.html b/libmongoc/1.24.1/mongoc_gridfs_file_set_metadata.html index 36e82c3abcf288f4444abad39a2f3c819ee0e8ac..4e08993ca229b068a631db923b8c22d202e27a78 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_set_metadata.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_set_metadata.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_t.html b/libmongoc/1.24.1/mongoc_gridfs_file_t.html index 3c5296f0d0c15cdf8b417de36c996f1613a6c238..8799bd5d8588a1fbc583b0fe12ca2666514e7cbe 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_t.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_tell.html b/libmongoc/1.24.1/mongoc_gridfs_file_tell.html index 8cf306e7d58036359e71286f799ef2fcbe77a640..54a5d73c5c796de9794d5a8c032044d3b8af678f 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_tell.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_tell.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_file_writev.html b/libmongoc/1.24.1/mongoc_gridfs_file_writev.html index ba278f2d843bbe5be345a5e26676ac23371f10d2..e342db8ae22a41487e6f541dfa8a425620d10bfa 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_file_writev.html +++ b/libmongoc/1.24.1/mongoc_gridfs_file_writev.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_find.html b/libmongoc/1.24.1/mongoc_gridfs_find.html index 76f5dae6527e0cc5ee239f8141268fd6fd6249ae..48b5d7a8d83b0fb73d18811bc1a9c23df5b23fa4 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_find.html +++ b/libmongoc/1.24.1/mongoc_gridfs_find.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_find_one.html b/libmongoc/1.24.1/mongoc_gridfs_find_one.html index 6c5ccd9a56dffe529e052eda7a0772a90183e490..8fe1a59c6a07efb7c2d1524e35a90736bcf5c561 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_find_one.html +++ b/libmongoc/1.24.1/mongoc_gridfs_find_one.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_find_one_by_filename.html b/libmongoc/1.24.1/mongoc_gridfs_find_one_by_filename.html index 5a6a47ae1228e226093c4fbdd96da01c3d01fd9d..b575ef182f94176aefc15f950440744b1a09653c 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_find_one_by_filename.html +++ b/libmongoc/1.24.1/mongoc_gridfs_find_one_by_filename.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_find_one_with_opts.html b/libmongoc/1.24.1/mongoc_gridfs_find_one_with_opts.html index 3e45f0ecab5286337e973ca135eb280695720d97..b921ff82f9f22c729f4e75655fc19f1fece1809c 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_find_one_with_opts.html +++ b/libmongoc/1.24.1/mongoc_gridfs_find_one_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_find_with_opts.html b/libmongoc/1.24.1/mongoc_gridfs_find_with_opts.html index cdf3dee49521afec6e65d45374b7600e426674c8..5919ad59c7a8afd55c48f72ecb8a678ee4d526be 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_find_with_opts.html +++ b/libmongoc/1.24.1/mongoc_gridfs_find_with_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_get_chunks.html b/libmongoc/1.24.1/mongoc_gridfs_get_chunks.html index d04d15f4852d79f77d2bb79bc15a002e650b926e..6df683bb2567b65e266a11f84e7f956b315c6310 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_get_chunks.html +++ b/libmongoc/1.24.1/mongoc_gridfs_get_chunks.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_get_files.html b/libmongoc/1.24.1/mongoc_gridfs_get_files.html index b3e5416a5492ed9a8057943c78ca5d0909ed0818..5efacb265810a806bb97b5bffda076e2ede6a6e8 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_get_files.html +++ b/libmongoc/1.24.1/mongoc_gridfs_get_files.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_remove_by_filename.html b/libmongoc/1.24.1/mongoc_gridfs_remove_by_filename.html index f527ab9a89986937e29b9ff4f0eff63dea294bee..1d15c627d814d9eca65fc234cadb806255c58c34 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_remove_by_filename.html +++ b/libmongoc/1.24.1/mongoc_gridfs_remove_by_filename.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_gridfs_t.html b/libmongoc/1.24.1/mongoc_gridfs_t.html index d726bb6d22b85d06e659b99d9844b0b15526777e..87158f938e03321b3da712dcacfcbba0318fbac1 100644 --- a/libmongoc/1.24.1/mongoc_gridfs_t.html +++ b/libmongoc/1.24.1/mongoc_gridfs_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_handshake_data_append.html b/libmongoc/1.24.1/mongoc_handshake_data_append.html index bde95ca4bb1a3c0dd512f2c29f70eeee85e10d04..f0ee2b946c1c5ca0b014681c4d0c75d47909e1e9 100644 --- a/libmongoc/1.24.1/mongoc_handshake_data_append.html +++ b/libmongoc/1.24.1/mongoc_handshake_data_append.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_host_list_t.html b/libmongoc/1.24.1/mongoc_host_list_t.html index 53e231f258b699fb157e2e6ca1217a5cbf95d659..9bce10f0ee37ae31e16341f7ca241607b63af2af 100644 --- a/libmongoc/1.24.1/mongoc_host_list_t.html +++ b/libmongoc/1.24.1/mongoc_host_list_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_geo_get_default.html b/libmongoc/1.24.1/mongoc_index_opt_geo_get_default.html index 596b35e95e156cec997f16cc994b95acf53f58c0..5f0bc8f7b95b82f24abfc47df026cfae512034dc 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_geo_get_default.html +++ b/libmongoc/1.24.1/mongoc_index_opt_geo_get_default.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_geo_init.html b/libmongoc/1.24.1/mongoc_index_opt_geo_init.html index 3ae2dbee345e7ca8b3c2e5c013816bbf9e9014a9..fa4340ac2d902de905cfbdc25fbf200b6a766f8e 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_geo_init.html +++ b/libmongoc/1.24.1/mongoc_index_opt_geo_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_geo_t.html b/libmongoc/1.24.1/mongoc_index_opt_geo_t.html index 2f33b9491002590d4c6e15e29177f34a4f77b5b1..30ce6818d566547fa50c646d0d63e89405a990b2 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_geo_t.html +++ b/libmongoc/1.24.1/mongoc_index_opt_geo_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_get_default.html b/libmongoc/1.24.1/mongoc_index_opt_get_default.html index 25f78a7621b52d66b4a85dfe66a8e3fa816df7e9..3e15190504ce939f4fc63c5cb2a3f2eafd04b69c 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_get_default.html +++ b/libmongoc/1.24.1/mongoc_index_opt_get_default.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_init.html b/libmongoc/1.24.1/mongoc_index_opt_init.html index 9c5fc11a83593ce09e1386d19c01f385a7d70b2d..d31cb85045e0330885e8eadf855461f3920060c6 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_init.html +++ b/libmongoc/1.24.1/mongoc_index_opt_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_t.html b/libmongoc/1.24.1/mongoc_index_opt_t.html index abb31d53948bdadd0c31846447a1cc00e71815e9..67515c61c6a2f846f6b6c3700b0f5dfc53a4e664 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_t.html +++ b/libmongoc/1.24.1/mongoc_index_opt_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_wt_get_default.html b/libmongoc/1.24.1/mongoc_index_opt_wt_get_default.html index 7a5bca2ac2ad8bbad4db96705d5f942ba714e5a5..ada4f01547f564405ca5099b3ad0df3895a1a241 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_wt_get_default.html +++ b/libmongoc/1.24.1/mongoc_index_opt_wt_get_default.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_wt_init.html b/libmongoc/1.24.1/mongoc_index_opt_wt_init.html index ba971d6eb929317c7c2a82bf8a7139a586f3d105..5e383a6ecbd23ae8461bb593005c40a2e5a6bc9c 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_wt_init.html +++ b/libmongoc/1.24.1/mongoc_index_opt_wt_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_index_opt_wt_t.html b/libmongoc/1.24.1/mongoc_index_opt_wt_t.html index 09c6d2ef4897aadbc8abd0d77e5449e1ad676ee0..2d20d909f164680b93e33e36631d644ee121a15f 100644 --- a/libmongoc/1.24.1/mongoc_index_opt_wt_t.html +++ b/libmongoc/1.24.1/mongoc_index_opt_wt_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_init.html b/libmongoc/1.24.1/mongoc_init.html index c61d4c64cf2030632d511e3c76cb8acc3a001f3d..3efbf76233d1f0f7b4148fdb8eba7e09455fcf20 100644 --- a/libmongoc/1.24.1/mongoc_init.html +++ b/libmongoc/1.24.1/mongoc_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_insert_flags_t.html b/libmongoc/1.24.1/mongoc_insert_flags_t.html index cfeee25267a576e93d037a297496235e5a22a358..c7fd6140316483d83ee9f9577d7e7019535c1753 100644 --- a/libmongoc/1.24.1/mongoc_insert_flags_t.html +++ b/libmongoc/1.24.1/mongoc_insert_flags_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_iovec_t.html b/libmongoc/1.24.1/mongoc_iovec_t.html index 56a2eb41e9211836f883a054b6172d3b4c4a3b3e..ffef86115aeed9c1f181dd9a3b16fdf4ff995636 100644 --- a/libmongoc/1.24.1/mongoc_iovec_t.html +++ b/libmongoc/1.24.1/mongoc_iovec_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_optional_copy.html b/libmongoc/1.24.1/mongoc_optional_copy.html index 141f9a7547806c5dc5d0092cc3e881e92592162a..48e6ac0a8a52b9835fe35e489cc1892bf521934e 100644 --- a/libmongoc/1.24.1/mongoc_optional_copy.html +++ b/libmongoc/1.24.1/mongoc_optional_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_optional_init.html b/libmongoc/1.24.1/mongoc_optional_init.html index 3082cbb60557c507575815f81bff83c66534da24..197043ead34edd2971f49d41bfc58f7a197e5ddb 100644 --- a/libmongoc/1.24.1/mongoc_optional_init.html +++ b/libmongoc/1.24.1/mongoc_optional_init.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_optional_is_set.html b/libmongoc/1.24.1/mongoc_optional_is_set.html index f8ab386c9d20bf78958b3eaa5d4f2d24c4070de2..a7df5e8b5244ea7d1ecfed3a6da642968c7c0df4 100644 --- a/libmongoc/1.24.1/mongoc_optional_is_set.html +++ b/libmongoc/1.24.1/mongoc_optional_is_set.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_optional_set_value.html b/libmongoc/1.24.1/mongoc_optional_set_value.html index 0886e0ad94311bd08cb4b93c78292c48b755eada..1de01957661bbd4769729f09a627f6f4e91f35d0 100644 --- a/libmongoc/1.24.1/mongoc_optional_set_value.html +++ b/libmongoc/1.24.1/mongoc_optional_set_value.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_optional_t.html b/libmongoc/1.24.1/mongoc_optional_t.html index d9a3a5025c7fe73f7349536e2832edfe56fbdbfc..b35c70a2838ce6de1d7b1457c68bc2b88fe22d6a 100644 --- a/libmongoc/1.24.1/mongoc_optional_t.html +++ b/libmongoc/1.24.1/mongoc_optional_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_optional_value.html b/libmongoc/1.24.1/mongoc_optional_value.html index 4969a8e96460e60e5bcee725f942ebcdee845c7d..5038a86fa558c106a833e78e6e81cfba4afc8286 100644 --- a/libmongoc/1.24.1/mongoc_optional_value.html +++ b/libmongoc/1.24.1/mongoc_optional_value.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_query_flags_t.html b/libmongoc/1.24.1/mongoc_query_flags_t.html index 2c65ab57b8b4ae0c7da1de8ccf4628dc83d56a6c..6a67cd1c168a281cadadb1bcb4319b09eead0ec7 100644 --- a/libmongoc/1.24.1/mongoc_query_flags_t.html +++ b/libmongoc/1.24.1/mongoc_query_flags_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_rand.html b/libmongoc/1.24.1/mongoc_rand.html index d18f95bc9b0c906ed4e2476e8df24a6c826a4ba0..ab945e57f8f0c1d6e96ea73a4f1358d3a6656cb2 100644 --- a/libmongoc/1.24.1/mongoc_rand.html +++ b/libmongoc/1.24.1/mongoc_rand.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_rand_add.html b/libmongoc/1.24.1/mongoc_rand_add.html index 061de7ff01c1e8754a665248382157ecd77aea95..8866f6d880a5771b21bd04568da7514c28a2dbed 100644 --- a/libmongoc/1.24.1/mongoc_rand_add.html +++ b/libmongoc/1.24.1/mongoc_rand_add.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_rand_seed.html b/libmongoc/1.24.1/mongoc_rand_seed.html index 7e6783e17e559e7776998cf77075b6284c16e27f..267c918ed5d363e87eea83343c6c54f61e42de72 100644 --- a/libmongoc/1.24.1/mongoc_rand_seed.html +++ b/libmongoc/1.24.1/mongoc_rand_seed.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_rand_status.html b/libmongoc/1.24.1/mongoc_rand_status.html index d6f3e57538d9b9ddd5490586be083cd6234170b6..b2864e15957f39db011b0e78c2f94d261221e2f7 100644 --- a/libmongoc/1.24.1/mongoc_rand_status.html +++ b/libmongoc/1.24.1/mongoc_rand_status.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_append.html b/libmongoc/1.24.1/mongoc_read_concern_append.html index 63df6a75c66584a9d7f3712e24be0b98803d1203..2e42cfcf4e271519d3ed5a819d39f5ab80da3f5b 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_append.html +++ b/libmongoc/1.24.1/mongoc_read_concern_append.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_copy.html b/libmongoc/1.24.1/mongoc_read_concern_copy.html index 9b3a4ba8a6112c685b321f5bc28e20c3c7b4b9f3..1f101f57f5c4e3da1ec0c881d57a2bf304d3cfb3 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_copy.html +++ b/libmongoc/1.24.1/mongoc_read_concern_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_destroy.html b/libmongoc/1.24.1/mongoc_read_concern_destroy.html index 3ce2cf61ec63444cbfe718f18e2323e2b0a29989..5e57326ecc4adf6011aca77f8ff39084cd7a201f 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_destroy.html +++ b/libmongoc/1.24.1/mongoc_read_concern_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_get_level.html b/libmongoc/1.24.1/mongoc_read_concern_get_level.html index 5c1dd0bdb71687a0d3a611e69c7f786680387f84..775768eb8861973a3cd70e108063a95548dbfcf2 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_get_level.html +++ b/libmongoc/1.24.1/mongoc_read_concern_get_level.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_is_default.html b/libmongoc/1.24.1/mongoc_read_concern_is_default.html index 66234fa5227fa97dbedb1a391a9bf76af215fd05..c5acc1daf21a18379610cdfc0489c9311dba8c5b 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_is_default.html +++ b/libmongoc/1.24.1/mongoc_read_concern_is_default.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_new.html b/libmongoc/1.24.1/mongoc_read_concern_new.html index 7effa8265daf67051859346b0436e89e2c4da8d3..40c818f0bcdb897eadef45006a4d3f4e3fcb72a8 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_new.html +++ b/libmongoc/1.24.1/mongoc_read_concern_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_set_level.html b/libmongoc/1.24.1/mongoc_read_concern_set_level.html index ba0da42ee837d7d6f3cb2267fb21574e40cfc15f..9a034c5406155aa3e070fde9676b9701d0d266f2 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_set_level.html +++ b/libmongoc/1.24.1/mongoc_read_concern_set_level.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_concern_t.html b/libmongoc/1.24.1/mongoc_read_concern_t.html index 9ab182adc51d968ce646fdd4aa210a8c8c3a65a5..a1a8f3c26568ee4b4782c66b475c39e199277ba0 100644 --- a/libmongoc/1.24.1/mongoc_read_concern_t.html +++ b/libmongoc/1.24.1/mongoc_read_concern_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_mode_t.html b/libmongoc/1.24.1/mongoc_read_mode_t.html index 0eead5f5e3f1f1ada2854aeda68cd6a4450b4486..9d5b70c1898155e5ec14e1d1e836b22c2df8227e 100644 --- a/libmongoc/1.24.1/mongoc_read_mode_t.html +++ b/libmongoc/1.24.1/mongoc_read_mode_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_add_tag.html b/libmongoc/1.24.1/mongoc_read_prefs_add_tag.html index a0757ec002ac2a8def639b474d011a6a3e4d23b2..6f81783958c1ee0e4181aee0dc378b2f8f29c521 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_add_tag.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_add_tag.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_copy.html b/libmongoc/1.24.1/mongoc_read_prefs_copy.html index a6e386de0b3981f0eab28d3450d0650ad4b85c54..7d7d7e75b2b9a36800830c3284a28773679f3f8f 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_copy.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_destroy.html b/libmongoc/1.24.1/mongoc_read_prefs_destroy.html index bb1910ac890e004dd9b5b02de39c0b7c0e916938..5fb09a7b3c092d49e582e281e19e767f27d6f790 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_destroy.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_get_hedge.html b/libmongoc/1.24.1/mongoc_read_prefs_get_hedge.html index ff1f9e018af0184cd8eea795e434633c7215ee7e..059105c2e79b676c5fefad86971efcd55a185d8f 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_get_hedge.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_get_hedge.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_get_max_staleness_seconds.html b/libmongoc/1.24.1/mongoc_read_prefs_get_max_staleness_seconds.html index 7e7007da8f3a617b8e684642319d0eb2d73e325d..f188e230a6f14974cec38c4c88ac66a8d8c972ff 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_get_max_staleness_seconds.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_get_max_staleness_seconds.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_get_mode.html b/libmongoc/1.24.1/mongoc_read_prefs_get_mode.html index 1739ba3218d91bb2486927814837dd4903aae523..7c0ac231fc68d914ab589f614f97fb38c5798009 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_get_mode.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_get_mode.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_get_tags.html b/libmongoc/1.24.1/mongoc_read_prefs_get_tags.html index 4aa9e04a7c562a00a6f323172c1f83c0dd0e8c32..00a9c89ec3e5a171f52ef0fa0fb5dd10e3d11ec7 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_get_tags.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_get_tags.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_is_valid.html b/libmongoc/1.24.1/mongoc_read_prefs_is_valid.html index e90dc4758d5a9592379d3ccd96064d2978fee3e5..f1a8b8dd4aeccc80a10b8ce8d31c4d5b651cec3f 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_is_valid.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_is_valid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_new.html b/libmongoc/1.24.1/mongoc_read_prefs_new.html index 1ed25545bb25255be46e4c6dbe71613473a3bc91..647742f9342fad8fa71704368a2958d2b776047f 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_new.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_set_hedge.html b/libmongoc/1.24.1/mongoc_read_prefs_set_hedge.html index 5699366bb99ad65f4c00e634bf9e9fcd0a1ec49b..7a52f6a6d9a3f2a50daa66ef0cd2523c3213911a 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_set_hedge.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_set_hedge.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_set_max_staleness_seconds.html b/libmongoc/1.24.1/mongoc_read_prefs_set_max_staleness_seconds.html index a5af64e110ff1eb62aa856562507649b7f8ef9da..24381d4a22f3733684d22ca023ca8195ba7dfac1 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_set_max_staleness_seconds.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_set_max_staleness_seconds.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_set_mode.html b/libmongoc/1.24.1/mongoc_read_prefs_set_mode.html index 515820da9e29e64284c089124e15c92269c78947..b0c3bd13ff4c71340c68e9f3403dae7da0c9d16a 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_set_mode.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_set_mode.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_set_tags.html b/libmongoc/1.24.1/mongoc_read_prefs_set_tags.html index 28e6d874418b5f0fbf1a190bdf55818ebf1ff7bc..c14e328b52e9c785a93715de8116e9e189e3eeee 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_set_tags.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_set_tags.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_read_prefs_t.html b/libmongoc/1.24.1/mongoc_read_prefs_t.html index 32bab63836523eb133c2cac17d9f308d4f209c2a..4431216adaeb306ca3b90e5b08afb8befd9452e5 100644 --- a/libmongoc/1.24.1/mongoc_read_prefs_t.html +++ b/libmongoc/1.24.1/mongoc_read_prefs_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_remove_flags_t.html b/libmongoc/1.24.1/mongoc_remove_flags_t.html index cae702ed4a1142cebb8945cd1f9deba7d9254c63..250f8cab1bff0909c653a0301b1913e8b1cad9ca 100644 --- a/libmongoc/1.24.1/mongoc_remove_flags_t.html +++ b/libmongoc/1.24.1/mongoc_remove_flags_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_reply_flags_t.html b/libmongoc/1.24.1/mongoc_reply_flags_t.html index 6be8f259abce30ac8fa2710a6d850e30f01f7582..3e5e9829515ea7797f7d33b8fd8de49bf8514c69 100644 --- a/libmongoc/1.24.1/mongoc_reply_flags_t.html +++ b/libmongoc/1.24.1/mongoc_reply_flags_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_copy.html b/libmongoc/1.24.1/mongoc_server_api_copy.html index 4915d003707e5c1ef2eca57e57a437d63fa47ebd..5b4de08bebaad76d2fcf5553b35748962fea98ff 100644 --- a/libmongoc/1.24.1/mongoc_server_api_copy.html +++ b/libmongoc/1.24.1/mongoc_server_api_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_deprecation_errors.html b/libmongoc/1.24.1/mongoc_server_api_deprecation_errors.html index 556f56a663cfa97c87dc9ebec577c897070d1bdc..e2ea19acbd932119d8d6ca42749729fa7783d31c 100644 --- a/libmongoc/1.24.1/mongoc_server_api_deprecation_errors.html +++ b/libmongoc/1.24.1/mongoc_server_api_deprecation_errors.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_destroy.html b/libmongoc/1.24.1/mongoc_server_api_destroy.html index ec82b5377f69757204163276d485071a68cfa05e..546e78362d96d3921c40c1ad90d07234468d2f40 100644 --- a/libmongoc/1.24.1/mongoc_server_api_destroy.html +++ b/libmongoc/1.24.1/mongoc_server_api_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_get_deprecation_errors.html b/libmongoc/1.24.1/mongoc_server_api_get_deprecation_errors.html index 55b71c84131d5a1ae5b2950f98ac8af75ff10395..92bcc88f36e4050aaaee5106f08482d827c448e4 100644 --- a/libmongoc/1.24.1/mongoc_server_api_get_deprecation_errors.html +++ b/libmongoc/1.24.1/mongoc_server_api_get_deprecation_errors.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_get_strict.html b/libmongoc/1.24.1/mongoc_server_api_get_strict.html index be1441572a6a8ed329c4fdd3c24132a5707af832..e37e388488da2d76972807d7ab2feaeb70cb4a32 100644 --- a/libmongoc/1.24.1/mongoc_server_api_get_strict.html +++ b/libmongoc/1.24.1/mongoc_server_api_get_strict.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_get_version.html b/libmongoc/1.24.1/mongoc_server_api_get_version.html index c64321899ea352de1bb1ad9c4fc0d5770567e3f0..83df565a06572c0441d3054919de914e19e8e768 100644 --- a/libmongoc/1.24.1/mongoc_server_api_get_version.html +++ b/libmongoc/1.24.1/mongoc_server_api_get_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_new.html b/libmongoc/1.24.1/mongoc_server_api_new.html index 85c490079ebfe8af83d8bde6fcf8c890828a25e8..7703395b5b77624922ac0aa78956ee21bd6e8fcd 100644 --- a/libmongoc/1.24.1/mongoc_server_api_new.html +++ b/libmongoc/1.24.1/mongoc_server_api_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_strict.html b/libmongoc/1.24.1/mongoc_server_api_strict.html index 7324edffd8a2aba1b611ede5632d2691be191ad6..0174bfa7eeabc058358c52df3b79f4dbf83ea88a 100644 --- a/libmongoc/1.24.1/mongoc_server_api_strict.html +++ b/libmongoc/1.24.1/mongoc_server_api_strict.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_t.html b/libmongoc/1.24.1/mongoc_server_api_t.html index b575f98b35df12f5e57c910d313df1e3f3f3983a..c7ec96181eb525af57d11ffaa76082baa0500195 100644 --- a/libmongoc/1.24.1/mongoc_server_api_t.html +++ b/libmongoc/1.24.1/mongoc_server_api_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_version_from_string.html b/libmongoc/1.24.1/mongoc_server_api_version_from_string.html index 2586af774145dd7a718fae9f06597aa45d908634..131e50e7b7fc05323e1e517f3378cc5abb94eaa9 100644 --- a/libmongoc/1.24.1/mongoc_server_api_version_from_string.html +++ b/libmongoc/1.24.1/mongoc_server_api_version_from_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_version_t.html b/libmongoc/1.24.1/mongoc_server_api_version_t.html index ebd331be996afaae4ec18fdb8e75f009eb594372..ab413d468d35173628a7b04b1a07500efe28b1df 100644 --- a/libmongoc/1.24.1/mongoc_server_api_version_t.html +++ b/libmongoc/1.24.1/mongoc_server_api_version_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_api_version_to_string.html b/libmongoc/1.24.1/mongoc_server_api_version_to_string.html index 613363f24bd13de16689117c641a2809510ae4ae..44d816692e18edcfad7eae156f50ad621ae731de 100644 --- a/libmongoc/1.24.1/mongoc_server_api_version_to_string.html +++ b/libmongoc/1.24.1/mongoc_server_api_version_to_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_destroy.html b/libmongoc/1.24.1/mongoc_server_description_destroy.html index a98347e33c88ba4550e1e7c5253aa704bdcc8f1a..89f8097dd30890b019a5cb38e236f08e377a4c02 100644 --- a/libmongoc/1.24.1/mongoc_server_description_destroy.html +++ b/libmongoc/1.24.1/mongoc_server_description_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_hello_response.html b/libmongoc/1.24.1/mongoc_server_description_hello_response.html index a965052fc7961314b1116892369df6bcde537980..fc200791af976b4c576e9336849835b3e95a2f28 100644 --- a/libmongoc/1.24.1/mongoc_server_description_hello_response.html +++ b/libmongoc/1.24.1/mongoc_server_description_hello_response.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_host.html b/libmongoc/1.24.1/mongoc_server_description_host.html index 24a6dc7d0aaa9242a545e9909e9ce170eb54e36b..0a0e772c60f35f7356d962e325065394d350099e 100644 --- a/libmongoc/1.24.1/mongoc_server_description_host.html +++ b/libmongoc/1.24.1/mongoc_server_description_host.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_id.html b/libmongoc/1.24.1/mongoc_server_description_id.html index 1ddcc272a096d13eac1f7535c996ceeb6cce8bd0..962279373fea9195ce146f80dd4aa4b0c1d3476e 100644 --- a/libmongoc/1.24.1/mongoc_server_description_id.html +++ b/libmongoc/1.24.1/mongoc_server_description_id.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_ismaster.html b/libmongoc/1.24.1/mongoc_server_description_ismaster.html index 827a6b581305d484fec0c17136a5d4d460566033..237e559ceacf6a849096493e76e31846360c2613 100644 --- a/libmongoc/1.24.1/mongoc_server_description_ismaster.html +++ b/libmongoc/1.24.1/mongoc_server_description_ismaster.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_last_update_time.html b/libmongoc/1.24.1/mongoc_server_description_last_update_time.html index f27fc4ca8bdcc0fc7105566b8c4d303fd8070423..91646c10f2d69e2f2c736dff9ff08e798b0f9f02 100644 --- a/libmongoc/1.24.1/mongoc_server_description_last_update_time.html +++ b/libmongoc/1.24.1/mongoc_server_description_last_update_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_new_copy.html b/libmongoc/1.24.1/mongoc_server_description_new_copy.html index d863e6012a821a753ae54c410d6ca505e3bfd7ef..fbbee557aa14d98869edc358cb91dbfd9e6aefc5 100644 --- a/libmongoc/1.24.1/mongoc_server_description_new_copy.html +++ b/libmongoc/1.24.1/mongoc_server_description_new_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_round_trip_time.html b/libmongoc/1.24.1/mongoc_server_description_round_trip_time.html index e74b04a733cd1ae0bb3ea7e4f1dc96e2fe49f50d..90e3a12a928a2acd0136b88e0219206670801bd6 100644 --- a/libmongoc/1.24.1/mongoc_server_description_round_trip_time.html +++ b/libmongoc/1.24.1/mongoc_server_description_round_trip_time.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_t.html b/libmongoc/1.24.1/mongoc_server_description_t.html index 91df9842a6d88dd7647d995a841ef25045b185d4..18539b4f3f20d76b8f745898fbdb1907f66d1099 100644 --- a/libmongoc/1.24.1/mongoc_server_description_t.html +++ b/libmongoc/1.24.1/mongoc_server_description_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_description_type.html b/libmongoc/1.24.1/mongoc_server_description_type.html index cedcbab4e61787714d7b8e0ccf46836b1e12eff5..7c651574d1ebab68b2fbebd1d22e967812544684 100644 --- a/libmongoc/1.24.1/mongoc_server_description_type.html +++ b/libmongoc/1.24.1/mongoc_server_description_type.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_server_descriptions_destroy_all.html b/libmongoc/1.24.1/mongoc_server_descriptions_destroy_all.html index 7e20152a0e85e0751bd6e2e84d6ffed5cf343387..acbd6247cb79fa8c78343c0252dc7b4f6ede93e8 100644 --- a/libmongoc/1.24.1/mongoc_server_descriptions_destroy_all.html +++ b/libmongoc/1.24.1/mongoc_server_descriptions_destroy_all.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opt_t.html b/libmongoc/1.24.1/mongoc_session_opt_t.html index 6dac38a9783786f42ff8ef17c0b02fad4ac9e87f..279dd6186a3d684eecaba090765dfcc3494f7ce2 100644 --- a/libmongoc/1.24.1/mongoc_session_opt_t.html +++ b/libmongoc/1.24.1/mongoc_session_opt_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_clone.html b/libmongoc/1.24.1/mongoc_session_opts_clone.html index b6f18bc3f3b07657683eeb1291ee19d28662fecc..ba8a97e491ede29f5efdcc87213be737d4180de6 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_clone.html +++ b/libmongoc/1.24.1/mongoc_session_opts_clone.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_destroy.html b/libmongoc/1.24.1/mongoc_session_opts_destroy.html index dada7368180e09aca60a907e180a128c5ea8076c..d4cb1e7911241353037329760fd0505af3cd0250 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_session_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_get_causal_consistency.html b/libmongoc/1.24.1/mongoc_session_opts_get_causal_consistency.html index f7bbc0760b4ef9219a5222ac8488968d05731799..f1d7f145f10757d8741adcefd6a9375f290964bb 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_get_causal_consistency.html +++ b/libmongoc/1.24.1/mongoc_session_opts_get_causal_consistency.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_get_default_transaction_opts.html b/libmongoc/1.24.1/mongoc_session_opts_get_default_transaction_opts.html index 72276e3b98c23ff06ab039a9c6f01d7b1770129d..0b330db64c5476bf8deb3c1a13b722230e28f8cb 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_get_default_transaction_opts.html +++ b/libmongoc/1.24.1/mongoc_session_opts_get_default_transaction_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_get_snapshot.html b/libmongoc/1.24.1/mongoc_session_opts_get_snapshot.html index 535f1b53071674d0ea86b90d16cc524c20d7989c..89dd66dbcfaae341d8d2d0b46142570dc2923cf6 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_get_snapshot.html +++ b/libmongoc/1.24.1/mongoc_session_opts_get_snapshot.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_get_transaction_opts.html b/libmongoc/1.24.1/mongoc_session_opts_get_transaction_opts.html index 8350c820825b50e8cb746eaba2d4a499312d4980..c3dbb9fbd0b2b3a2ae49b87d280fb16f67345fbf 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_get_transaction_opts.html +++ b/libmongoc/1.24.1/mongoc_session_opts_get_transaction_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_new.html b/libmongoc/1.24.1/mongoc_session_opts_new.html index 4c9070465fc6d6e02c9d21925fa793abd01dc0f6..bdbeb4c01831dcab877befb262c5dda19bd5ba75 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_new.html +++ b/libmongoc/1.24.1/mongoc_session_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_set_causal_consistency.html b/libmongoc/1.24.1/mongoc_session_opts_set_causal_consistency.html index a74fe9bd807ade58c0c79818574e846920f14161..2d1e710d6684343a795500831fc4664d87e4c9ba 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_set_causal_consistency.html +++ b/libmongoc/1.24.1/mongoc_session_opts_set_causal_consistency.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_set_default_transaction_opts.html b/libmongoc/1.24.1/mongoc_session_opts_set_default_transaction_opts.html index ba58a03052df6395f4bd584d5d99bb12606a3db5..2eaa9b9d8d9836c2f352dc7d1580bbf5128e376d 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_set_default_transaction_opts.html +++ b/libmongoc/1.24.1/mongoc_session_opts_set_default_transaction_opts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_session_opts_set_snapshot.html b/libmongoc/1.24.1/mongoc_session_opts_set_snapshot.html index 953691f6e24c66d8bdfa2bcfe167c90d165cf0d3..557ad265bcf0999179e3aace946f47b3839f9597 100644 --- a/libmongoc/1.24.1/mongoc_session_opts_set_snapshot.html +++ b/libmongoc/1.24.1/mongoc_session_opts_set_snapshot.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_accept.html b/libmongoc/1.24.1/mongoc_socket_accept.html index cca34c454ff4057b9008f312cb21232e5f6dcacd..ac6f44c0e5d374ff65785d636990fde1c15aa791 100644 --- a/libmongoc/1.24.1/mongoc_socket_accept.html +++ b/libmongoc/1.24.1/mongoc_socket_accept.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_bind.html b/libmongoc/1.24.1/mongoc_socket_bind.html index 0800ae2fa26808f1819402291b9c6683607bc1c0..15746ecc59c909f2159ab778e1e89d5af3b7df3c 100644 --- a/libmongoc/1.24.1/mongoc_socket_bind.html +++ b/libmongoc/1.24.1/mongoc_socket_bind.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_close.html b/libmongoc/1.24.1/mongoc_socket_close.html index eef200998622efac8fae30eda7c82c05662bd078..67c9edbaba1a0c6ff0f7de3b364be3328b93066d 100644 --- a/libmongoc/1.24.1/mongoc_socket_close.html +++ b/libmongoc/1.24.1/mongoc_socket_close.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_connect.html b/libmongoc/1.24.1/mongoc_socket_connect.html index 13f38f1a36c8964090746f4a43393cc37ef6f03a..1c0d3cd9e94e2fe1862a74e07a246628d053260f 100644 --- a/libmongoc/1.24.1/mongoc_socket_connect.html +++ b/libmongoc/1.24.1/mongoc_socket_connect.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_destroy.html b/libmongoc/1.24.1/mongoc_socket_destroy.html index f29dd35dc7c9d60ca1bd73465b627c6c1f167898..3c3393a0fe8dd02a49d03937b954f17127644aab 100644 --- a/libmongoc/1.24.1/mongoc_socket_destroy.html +++ b/libmongoc/1.24.1/mongoc_socket_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_errno.html b/libmongoc/1.24.1/mongoc_socket_errno.html index be3f5ef8359c46a503d6a02304a33a2a760c59ef..cb44a5bc8af17f3c889f98752b813e54ae565252 100644 --- a/libmongoc/1.24.1/mongoc_socket_errno.html +++ b/libmongoc/1.24.1/mongoc_socket_errno.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_getnameinfo.html b/libmongoc/1.24.1/mongoc_socket_getnameinfo.html index 9e8d8aebfda2df8c6019b4d38fab09d73dec5eda..436fb28460ea89799d1a8a0b58ff8987f0744ef6 100644 --- a/libmongoc/1.24.1/mongoc_socket_getnameinfo.html +++ b/libmongoc/1.24.1/mongoc_socket_getnameinfo.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_getsockname.html b/libmongoc/1.24.1/mongoc_socket_getsockname.html index c9384703c1799da674dd8f276b8f25cfa2f2d8d3..9ff10e72a454d5da5aade8c6e458d9dcc5e3e65b 100644 --- a/libmongoc/1.24.1/mongoc_socket_getsockname.html +++ b/libmongoc/1.24.1/mongoc_socket_getsockname.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_listen.html b/libmongoc/1.24.1/mongoc_socket_listen.html index 13f4963cb99e2c10c5cbfed0688638eb105a29cd..be58631e93a850b3a11a9a1fb2206d29539a3bc3 100644 --- a/libmongoc/1.24.1/mongoc_socket_listen.html +++ b/libmongoc/1.24.1/mongoc_socket_listen.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_new.html b/libmongoc/1.24.1/mongoc_socket_new.html index 9b38ee20931152cb8471d4f552e44e0b5a9e14c1..8ec67445b298adc1f72697ae68e9158d0e5ebb9b 100644 --- a/libmongoc/1.24.1/mongoc_socket_new.html +++ b/libmongoc/1.24.1/mongoc_socket_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_recv.html b/libmongoc/1.24.1/mongoc_socket_recv.html index 26cb0b574a50c1b2559034ef29044307c7eb3083..fd4a7496f64e29e1d143598b98a7b3849eef54e8 100644 --- a/libmongoc/1.24.1/mongoc_socket_recv.html +++ b/libmongoc/1.24.1/mongoc_socket_recv.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_send.html b/libmongoc/1.24.1/mongoc_socket_send.html index 9c906d8c4c101763afea59e8d635141ea5e02fa6..88836cbd8f44f22ad7eeffc8e4da64d4e746e82e 100644 --- a/libmongoc/1.24.1/mongoc_socket_send.html +++ b/libmongoc/1.24.1/mongoc_socket_send.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_sendv.html b/libmongoc/1.24.1/mongoc_socket_sendv.html index 9855d7dc1259bc09dbe4c4c639290f585a113b3c..031013f122366ce440b6a2dfcdf4640bfff45fba 100644 --- a/libmongoc/1.24.1/mongoc_socket_sendv.html +++ b/libmongoc/1.24.1/mongoc_socket_sendv.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_setsockopt.html b/libmongoc/1.24.1/mongoc_socket_setsockopt.html index 20f92e7b184e88dafbdcfcf4ac0a94238190250c..4ca0571ef450e965ee03c57393c1ef4eb8cb69b2 100644 --- a/libmongoc/1.24.1/mongoc_socket_setsockopt.html +++ b/libmongoc/1.24.1/mongoc_socket_setsockopt.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_socket_t.html b/libmongoc/1.24.1/mongoc_socket_t.html index e2f7d33a506e7bcfbd88dbd36dfa5c9844597655..1b8f9697ec945c258e02d545f89612be81624cde 100644 --- a/libmongoc/1.24.1/mongoc_socket_t.html +++ b/libmongoc/1.24.1/mongoc_socket_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_ssl_opt_get_default.html b/libmongoc/1.24.1/mongoc_ssl_opt_get_default.html index 8d505f1e1d5989d7e67e3e9ce8e0fec18bf04dd6..90752f1da79cc886f491a46895b2341858fad348 100644 --- a/libmongoc/1.24.1/mongoc_ssl_opt_get_default.html +++ b/libmongoc/1.24.1/mongoc_ssl_opt_get_default.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_ssl_opt_t.html b/libmongoc/1.24.1/mongoc_ssl_opt_t.html index a2cceda82da7646bb0b842ce2a77ca587af53cc5..02195a5edcedbe42834840d2178462600e3c2fc5 100644 --- a/libmongoc/1.24.1/mongoc_ssl_opt_t.html +++ b/libmongoc/1.24.1/mongoc_ssl_opt_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_buffered_new.html b/libmongoc/1.24.1/mongoc_stream_buffered_new.html index 0d18c13fd3a2ab446f7f14aef886ce10ce73e30c..99d46e9fad9458950315b16de51ac5f24c6941c2 100644 --- a/libmongoc/1.24.1/mongoc_stream_buffered_new.html +++ b/libmongoc/1.24.1/mongoc_stream_buffered_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_buffered_t.html b/libmongoc/1.24.1/mongoc_stream_buffered_t.html index 5218d7f80ece32dd0064254cfbd27011fe0da803..22884b9cad7e14bb8fc9af0855e90062ac5b4944 100644 --- a/libmongoc/1.24.1/mongoc_stream_buffered_t.html +++ b/libmongoc/1.24.1/mongoc_stream_buffered_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_close.html b/libmongoc/1.24.1/mongoc_stream_close.html index 54b9d3f459b1a2a73ab73c72d858f445975aee1c..536627bcfd7dcd8ba09eab10c1af572fb6e248ee 100644 --- a/libmongoc/1.24.1/mongoc_stream_close.html +++ b/libmongoc/1.24.1/mongoc_stream_close.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_cork.html b/libmongoc/1.24.1/mongoc_stream_cork.html index 5a9043f4de320a57e3a60aa0c1c8812940edaf4d..fa727f31bee244d1710cb6bfa98defbd45b40ea2 100644 --- a/libmongoc/1.24.1/mongoc_stream_cork.html +++ b/libmongoc/1.24.1/mongoc_stream_cork.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_destroy.html b/libmongoc/1.24.1/mongoc_stream_destroy.html index dd9319c5aebb635b74658a1dee32cf9db4bebf78..a662d99c8f608337489d2887574fe6e48b0fc2a4 100644 --- a/libmongoc/1.24.1/mongoc_stream_destroy.html +++ b/libmongoc/1.24.1/mongoc_stream_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_file_get_fd.html b/libmongoc/1.24.1/mongoc_stream_file_get_fd.html index 2d7a0b8472aa11ad9f36969d8aaf39aa8f2cfa9e..9a1d2a238554d4c62f1e2901ceab146304b521d3 100644 --- a/libmongoc/1.24.1/mongoc_stream_file_get_fd.html +++ b/libmongoc/1.24.1/mongoc_stream_file_get_fd.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_file_new.html b/libmongoc/1.24.1/mongoc_stream_file_new.html index 07ca504561f97c6e8a1c88a89fee2d504eaabd10..45bdc60b22533f632d8c5f85a44f70df0bf09b87 100644 --- a/libmongoc/1.24.1/mongoc_stream_file_new.html +++ b/libmongoc/1.24.1/mongoc_stream_file_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_file_new_for_path.html b/libmongoc/1.24.1/mongoc_stream_file_new_for_path.html index cb9bda56c1c78de99fd494dc3ff48ef9f296a4e1..01ff4dee4d9f09e73c2bcd72a62dce6d39c8fd0c 100644 --- a/libmongoc/1.24.1/mongoc_stream_file_new_for_path.html +++ b/libmongoc/1.24.1/mongoc_stream_file_new_for_path.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_file_t.html b/libmongoc/1.24.1/mongoc_stream_file_t.html index 940888f70cf079407cee4eb60d0cd48e1ad87b87..f32d92ec283d0b804720d7f408ee000ddd3fb17b 100644 --- a/libmongoc/1.24.1/mongoc_stream_file_t.html +++ b/libmongoc/1.24.1/mongoc_stream_file_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_flush.html b/libmongoc/1.24.1/mongoc_stream_flush.html index 81af6c4409d1f9a5a5e4ca49f9c56eb4124ec5e5..01258d08b3dd95c7ece3eef8575fa0e056102129 100644 --- a/libmongoc/1.24.1/mongoc_stream_flush.html +++ b/libmongoc/1.24.1/mongoc_stream_flush.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_get_base_stream.html b/libmongoc/1.24.1/mongoc_stream_get_base_stream.html index 84191c9aba8befc4f9625b4ee9eb5fe91e4798b6..3f48128dc63220526865b453c78f6d9f105c68de 100644 --- a/libmongoc/1.24.1/mongoc_stream_get_base_stream.html +++ b/libmongoc/1.24.1/mongoc_stream_get_base_stream.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_gridfs_new.html b/libmongoc/1.24.1/mongoc_stream_gridfs_new.html index 9eb8063927fb7c4867aaebfe0a24950961367365..c70afe24b1f5f2ed7ae4d613435f4a7aecfbfd41 100644 --- a/libmongoc/1.24.1/mongoc_stream_gridfs_new.html +++ b/libmongoc/1.24.1/mongoc_stream_gridfs_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_read.html b/libmongoc/1.24.1/mongoc_stream_read.html index b8d021e84f2e80302731bc343d6a2185d3e7c8d8..3a0fa67191532be80699ad0342bb6d1028ce750e 100644 --- a/libmongoc/1.24.1/mongoc_stream_read.html +++ b/libmongoc/1.24.1/mongoc_stream_read.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_readv.html b/libmongoc/1.24.1/mongoc_stream_readv.html index 6f01ea3518dd829afd6287f36062300e8d985d3e..78d06957f6f09e850ef24454abff3398ea8534d3 100644 --- a/libmongoc/1.24.1/mongoc_stream_readv.html +++ b/libmongoc/1.24.1/mongoc_stream_readv.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_setsockopt.html b/libmongoc/1.24.1/mongoc_stream_setsockopt.html index 7238f6a0f00fae86b77571af8d2f43278e64e8c5..1d7bd12c56fd348ba5bb5a3731121da8e45df792 100644 --- a/libmongoc/1.24.1/mongoc_stream_setsockopt.html +++ b/libmongoc/1.24.1/mongoc_stream_setsockopt.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_should_retry.html b/libmongoc/1.24.1/mongoc_stream_should_retry.html index 1cdce965f56decd0c30d8ef7e72fce8766fc3a18..b43d4fe5aedb4eec698f2f4b046984b28f72deb8 100644 --- a/libmongoc/1.24.1/mongoc_stream_should_retry.html +++ b/libmongoc/1.24.1/mongoc_stream_should_retry.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_socket_get_socket.html b/libmongoc/1.24.1/mongoc_stream_socket_get_socket.html index 292726af81094b1b36fee66eb15a0ebf1c0eb8e9..5273ebfc84a95f2128307b356bd18fecaf97018f 100644 --- a/libmongoc/1.24.1/mongoc_stream_socket_get_socket.html +++ b/libmongoc/1.24.1/mongoc_stream_socket_get_socket.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_socket_new.html b/libmongoc/1.24.1/mongoc_stream_socket_new.html index c47dacd68d788cf9360b3e9a4e15471361f3e021..f039fd318bb87ee1a64e6b8b32dd9b991f07e399 100644 --- a/libmongoc/1.24.1/mongoc_stream_socket_new.html +++ b/libmongoc/1.24.1/mongoc_stream_socket_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_socket_t.html b/libmongoc/1.24.1/mongoc_stream_socket_t.html index 9b0f47a039ed08ee9adb8aa57546f806a11b914a..ad402864b2cbfdec798f4cc8814ba9547d661413 100644 --- a/libmongoc/1.24.1/mongoc_stream_socket_t.html +++ b/libmongoc/1.24.1/mongoc_stream_socket_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_t.html b/libmongoc/1.24.1/mongoc_stream_t.html index aadf502dd5b5bdec95939cfe77e784ec6c635f79..490d578c6120832f8c58e01d962d3a7e9025b2b6 100644 --- a/libmongoc/1.24.1/mongoc_stream_t.html +++ b/libmongoc/1.24.1/mongoc_stream_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_timed_out.html b/libmongoc/1.24.1/mongoc_stream_timed_out.html index 740ea2c4ffe596ecdb6d17bd114e1967e147406a..b3ce8f8d13d8db0db9874616854ac116eba26f04 100644 --- a/libmongoc/1.24.1/mongoc_stream_timed_out.html +++ b/libmongoc/1.24.1/mongoc_stream_timed_out.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_tls_t.html b/libmongoc/1.24.1/mongoc_stream_tls_t.html index 069037c7d1c7b7ffb1d078be970e982c436d7cee..6bf58e2fe31d231cccf69c4a0ef176665780cfb9 100644 --- a/libmongoc/1.24.1/mongoc_stream_tls_t.html +++ b/libmongoc/1.24.1/mongoc_stream_tls_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_uncork.html b/libmongoc/1.24.1/mongoc_stream_uncork.html index 28080b57ada76f30cc40458f8a9503e10a963122..b11a867ac088ba8cdc580ea1b08d3f4ed1d106e6 100644 --- a/libmongoc/1.24.1/mongoc_stream_uncork.html +++ b/libmongoc/1.24.1/mongoc_stream_uncork.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_write.html b/libmongoc/1.24.1/mongoc_stream_write.html index a5a03325af75ad0a7460eed54cb4859d59939f12..da864bdbfa960c87b6eb220b52f284e04d3203e2 100644 --- a/libmongoc/1.24.1/mongoc_stream_write.html +++ b/libmongoc/1.24.1/mongoc_stream_write.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_stream_writev.html b/libmongoc/1.24.1/mongoc_stream_writev.html index 7d96f05c145973a5cd0d6ddc1d1a7c701e0693e3..ee2921593c5c7a2547b130b12da191df6f0a111c 100644 --- a/libmongoc/1.24.1/mongoc_stream_writev.html +++ b/libmongoc/1.24.1/mongoc_stream_writev.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_topology_description_destroy.html b/libmongoc/1.24.1/mongoc_topology_description_destroy.html index 33d47ba7f0fb497bdd0da0bbe92d8dd82555de70..6951987444159c1365d0fa5b2e09d166564c99e9 100644 --- a/libmongoc/1.24.1/mongoc_topology_description_destroy.html +++ b/libmongoc/1.24.1/mongoc_topology_description_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_topology_description_get_servers.html b/libmongoc/1.24.1/mongoc_topology_description_get_servers.html index 8b5d1e7efc69d972849a62730abc804a4e7c1a81..aebf7f1c41e99c1aa00e01ced4ce70d8f92ce32f 100644 --- a/libmongoc/1.24.1/mongoc_topology_description_get_servers.html +++ b/libmongoc/1.24.1/mongoc_topology_description_get_servers.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_topology_description_has_readable_server.html b/libmongoc/1.24.1/mongoc_topology_description_has_readable_server.html index 494c2316d22d723ba9c816419018b73a99a250b6..85a417a3d341103468ae77cdfe9ea05adc522893 100644 --- a/libmongoc/1.24.1/mongoc_topology_description_has_readable_server.html +++ b/libmongoc/1.24.1/mongoc_topology_description_has_readable_server.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_topology_description_has_writable_server.html b/libmongoc/1.24.1/mongoc_topology_description_has_writable_server.html index 0ebe69268799668ea842801197787da3f55acb3d..423a65646530ff972024840afeb7c73eb7a43d19 100644 --- a/libmongoc/1.24.1/mongoc_topology_description_has_writable_server.html +++ b/libmongoc/1.24.1/mongoc_topology_description_has_writable_server.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_topology_description_new_copy.html b/libmongoc/1.24.1/mongoc_topology_description_new_copy.html index d02165b01e7fe4e9ac8e13e49bd8eef1b6066859..eecc1acfff75e8dea07d2aa7ba2a683f14ff4b70 100644 --- a/libmongoc/1.24.1/mongoc_topology_description_new_copy.html +++ b/libmongoc/1.24.1/mongoc_topology_description_new_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_topology_description_t.html b/libmongoc/1.24.1/mongoc_topology_description_t.html index 6a53e8d2711f431d4b2080ca033976ae99b63e98..5413ea195cd45bb39b910349a94f1afb60a8ccc1 100644 --- a/libmongoc/1.24.1/mongoc_topology_description_t.html +++ b/libmongoc/1.24.1/mongoc_topology_description_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_topology_description_type.html b/libmongoc/1.24.1/mongoc_topology_description_type.html index 8cc38804e740e0798d108ee5dda4dc76083fb48d..865831c0825cb439c47e7649fa0a0d16881c1812 100644 --- a/libmongoc/1.24.1/mongoc_topology_description_type.html +++ b/libmongoc/1.24.1/mongoc_topology_description_type.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opt_t.html b/libmongoc/1.24.1/mongoc_transaction_opt_t.html index 47835228024dc5aa1685ddbc1667baad513c94f2..d12aa915a0314af271f2c41a89ffae63eda65213 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opt_t.html +++ b/libmongoc/1.24.1/mongoc_transaction_opt_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_clone.html b/libmongoc/1.24.1/mongoc_transaction_opts_clone.html index 294ec17afcb8c134fefb6bcb420f2765a7bb0733..48a48167d160a49c692610e3a821044abcbff118 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_clone.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_clone.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_destroy.html b/libmongoc/1.24.1/mongoc_transaction_opts_destroy.html index 4dd2ac5d10c0ee8855f4bf37e4c0ec6c84664fba..a41b1e06455ff5a1ebf7995f4cbdca1ad7ef5b75 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_destroy.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_get_max_commit_time_ms.html b/libmongoc/1.24.1/mongoc_transaction_opts_get_max_commit_time_ms.html index 530fc96f21c3d076c4d1c2624f1ac0e2b580c5da..f33a678b1113ec51d9cd0cd6bb8527cbc50843a2 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_get_max_commit_time_ms.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_get_max_commit_time_ms.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_get_read_concern.html b/libmongoc/1.24.1/mongoc_transaction_opts_get_read_concern.html index a984f3f59f517b0b532e86a53021930d814743d9..c560ab3f3369e6118ecacc6d4a27ec078329fb9e 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_get_read_concern.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_get_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_get_read_prefs.html b/libmongoc/1.24.1/mongoc_transaction_opts_get_read_prefs.html index 589481d28cac625862b577ab53af20c4d62a2235..888033c1cbe6f4e66d312d943427aadd44a2f94d 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_get_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_get_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_get_write_concern.html b/libmongoc/1.24.1/mongoc_transaction_opts_get_write_concern.html index 622c05710dd47a50e189e9082d306a8b00643972..df3a9dfd014573cf6805feca3fe02ae13ec5eb0e 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_get_write_concern.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_get_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_new.html b/libmongoc/1.24.1/mongoc_transaction_opts_new.html index 25b0b432b230d7bafa6e4419960f0e222688e802..77b9b02bdd152deead02c090295fe67ca282a86e 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_new.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_set_max_commit_time_ms.html b/libmongoc/1.24.1/mongoc_transaction_opts_set_max_commit_time_ms.html index 3733468c8be330b3833370a0b6b75a19a24c9d24..756d6f015cd3af23f69aabd34e3f1bb39151aacc 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_set_max_commit_time_ms.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_set_max_commit_time_ms.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_set_read_concern.html b/libmongoc/1.24.1/mongoc_transaction_opts_set_read_concern.html index b6f9faa855fc5b1276b56ec27e4e5b1ab1da1502..d4541f26d29b51c10621368424f15f6c6a1d9c00 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_set_read_concern.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_set_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_set_read_prefs.html b/libmongoc/1.24.1/mongoc_transaction_opts_set_read_prefs.html index 283993502528105c73c1b7a930229184859e1bc5..90535c862d8a605bbe4d5f391a512f972d563545 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_set_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_set_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_opts_set_write_concern.html b/libmongoc/1.24.1/mongoc_transaction_opts_set_write_concern.html index 504df6467ea228c91b17613b720e1c121e73f57d..290896577ad9db0875107a3c35b8cbbb97454d3c 100644 --- a/libmongoc/1.24.1/mongoc_transaction_opts_set_write_concern.html +++ b/libmongoc/1.24.1/mongoc_transaction_opts_set_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_transaction_state_t.html b/libmongoc/1.24.1/mongoc_transaction_state_t.html index 7a400dab7c633025b20312d36d45959eaa912f58..df81a84a6d7b577d6ec16119c50f442048172c3a 100644 --- a/libmongoc/1.24.1/mongoc_transaction_state_t.html +++ b/libmongoc/1.24.1/mongoc_transaction_state_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_update_flags_t.html b/libmongoc/1.24.1/mongoc_update_flags_t.html index a088e0c2876dd7a9ed38ed0c6348216509f651db..b5df062bfc3749dda57b096ac18bc66835db7d8f 100644 --- a/libmongoc/1.24.1/mongoc_update_flags_t.html +++ b/libmongoc/1.24.1/mongoc_update_flags_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_copy.html b/libmongoc/1.24.1/mongoc_uri_copy.html index ef4b7edc6b20de184262a049f3e5bed9961d1d96..98d0f050b1f21d1728ebedb26f07de6ba389ed9b 100644 --- a/libmongoc/1.24.1/mongoc_uri_copy.html +++ b/libmongoc/1.24.1/mongoc_uri_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_destroy.html b/libmongoc/1.24.1/mongoc_uri_destroy.html index b5a2dd86048c38030ccf66f83d51255aeeb4746d..d22de38c69bfc8650af85e826b6b8d45005821e3 100644 --- a/libmongoc/1.24.1/mongoc_uri_destroy.html +++ b/libmongoc/1.24.1/mongoc_uri_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_auth_mechanism.html b/libmongoc/1.24.1/mongoc_uri_get_auth_mechanism.html index a50618fc3395e53be55691b7fdd95e7586e7a6ac..b98cb46c9cbdb50e9dd6e8f194bb1ae52bc642aa 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_auth_mechanism.html +++ b/libmongoc/1.24.1/mongoc_uri_get_auth_mechanism.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_auth_source.html b/libmongoc/1.24.1/mongoc_uri_get_auth_source.html index cbfe7e4e758975f30243504818bbe723d72f67e6..3b874b89c672353c50b987b6f276c22981d69071 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_auth_source.html +++ b/libmongoc/1.24.1/mongoc_uri_get_auth_source.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_compressors.html b/libmongoc/1.24.1/mongoc_uri_get_compressors.html index c3420257276f1e0f01638069b856fd204a3c444a..82e92105ef0f4147521434e4f300be0df1f832d6 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_compressors.html +++ b/libmongoc/1.24.1/mongoc_uri_get_compressors.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_database.html b/libmongoc/1.24.1/mongoc_uri_get_database.html index 2198585bfe8706666eec18cb4db2458567f213c8..2fe4bbdd6c349d8324c3f68acfb049cb03459f59 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_database.html +++ b/libmongoc/1.24.1/mongoc_uri_get_database.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_hosts.html b/libmongoc/1.24.1/mongoc_uri_get_hosts.html index 716f8d2bf4819cc5646e987d254ae4b262cd92fd..be6daceb2586650b82d8fc4f51c4c98702faff62 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_hosts.html +++ b/libmongoc/1.24.1/mongoc_uri_get_hosts.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_mechanism_properties.html b/libmongoc/1.24.1/mongoc_uri_get_mechanism_properties.html index 41914412e4ad869b7f01dcc0d64c354edaa6f3e9..5116b6c17b50447754fdd15ef2647724843e9414 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_mechanism_properties.html +++ b/libmongoc/1.24.1/mongoc_uri_get_mechanism_properties.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_option_as_bool.html b/libmongoc/1.24.1/mongoc_uri_get_option_as_bool.html index 5ffddba1f6d8201c9d98e23ae0bd988a6d096233..e7afab103be617c6fa375729221f1fdfcd30f47d 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_option_as_bool.html +++ b/libmongoc/1.24.1/mongoc_uri_get_option_as_bool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_option_as_int32.html b/libmongoc/1.24.1/mongoc_uri_get_option_as_int32.html index 02d8edc8a0a40fdfb3721626391863fdbac4f271..c6f37b1c44b6f7bb3e802cb3287a8bb8b8298e36 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_option_as_int32.html +++ b/libmongoc/1.24.1/mongoc_uri_get_option_as_int32.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_option_as_int64.html b/libmongoc/1.24.1/mongoc_uri_get_option_as_int64.html index 31f1dd0cfd3651fd0977b420e5bb0425d2769711..c7ed531a82efbb57e5f4d20f850eb134ad4cfb84 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_option_as_int64.html +++ b/libmongoc/1.24.1/mongoc_uri_get_option_as_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_option_as_utf8.html b/libmongoc/1.24.1/mongoc_uri_get_option_as_utf8.html index ce3e7581b43d8b0047c7c6072006b65525c344c4..f33ef9c23496cbae20af7676baecffca87b8416f 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_option_as_utf8.html +++ b/libmongoc/1.24.1/mongoc_uri_get_option_as_utf8.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_options.html b/libmongoc/1.24.1/mongoc_uri_get_options.html index dc1120d759037ed8839ad867d596e4100c836de3..143cc664694bef3da94bf15992f0904366570314 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_options.html +++ b/libmongoc/1.24.1/mongoc_uri_get_options.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_password.html b/libmongoc/1.24.1/mongoc_uri_get_password.html index c4b332603e71db125696de051ac873433083e199..2bdb93eaab953e03f5aaef6d6dbe79e3741e2e75 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_password.html +++ b/libmongoc/1.24.1/mongoc_uri_get_password.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_read_concern.html b/libmongoc/1.24.1/mongoc_uri_get_read_concern.html index 46539d6ed9a7af6d6212a42d14438e3c122b0fb6..9a54bf4c5b6507077ab3f6a951d43d8e71f85e19 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_read_concern.html +++ b/libmongoc/1.24.1/mongoc_uri_get_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_read_prefs.html b/libmongoc/1.24.1/mongoc_uri_get_read_prefs.html index a08b1dd69ec76099bd0676e8182844a1fc97785a..b08bb6d62a7701166565df568bc5fd3dff993cc2 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_read_prefs.html +++ b/libmongoc/1.24.1/mongoc_uri_get_read_prefs.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_read_prefs_t.html b/libmongoc/1.24.1/mongoc_uri_get_read_prefs_t.html index c04d0f065a8489b8be937cdf1d3c4a5cb278f928..384b9f8c8fa20e811a7cb53c728d49b1a67f8c56 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_read_prefs_t.html +++ b/libmongoc/1.24.1/mongoc_uri_get_read_prefs_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_replica_set.html b/libmongoc/1.24.1/mongoc_uri_get_replica_set.html index 610c5cf78675a5bff47209024f27684e7f634d62..36ccc5eb1c8a2f89b98ca180d4051f5e87646ca7 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_replica_set.html +++ b/libmongoc/1.24.1/mongoc_uri_get_replica_set.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_service.html b/libmongoc/1.24.1/mongoc_uri_get_service.html index 18a44a8e6136ce261d26fe53fbf68a0be5eeda61..a27f88ddc2db17494572ee478cfac810bba1f73b 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_service.html +++ b/libmongoc/1.24.1/mongoc_uri_get_service.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_srv_hostname.html b/libmongoc/1.24.1/mongoc_uri_get_srv_hostname.html index 9b229adf0dbb39cad4264b6a501363f2ff5769cd..5f9c8dbffba4134ce7dc1bbb8c705d69c5b0dd8c 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_srv_hostname.html +++ b/libmongoc/1.24.1/mongoc_uri_get_srv_hostname.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_srv_service_name.html b/libmongoc/1.24.1/mongoc_uri_get_srv_service_name.html index adca5a621f61fa3d004644af972a8767d81eaf07..73146acc680bd20a2d712a59a0eafc8dcbdb308f 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_srv_service_name.html +++ b/libmongoc/1.24.1/mongoc_uri_get_srv_service_name.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_ssl.html b/libmongoc/1.24.1/mongoc_uri_get_ssl.html index 092da8acc2ff6a99cdcd950c78cc852e3ced15c8..255cd6aa47e6e4f2fdc869b77560a98830648e74 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_ssl.html +++ b/libmongoc/1.24.1/mongoc_uri_get_ssl.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_string.html b/libmongoc/1.24.1/mongoc_uri_get_string.html index f10c85dfdbfef6a1d4d4a45c9cd6c53c8243c8d7..143f0513ee2f981b88c8f8237af70f3a739b732e 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_string.html +++ b/libmongoc/1.24.1/mongoc_uri_get_string.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_tls.html b/libmongoc/1.24.1/mongoc_uri_get_tls.html index 403ea6d1c5e6f69bbe3aeaf3911887bd8b6e064d..3404bbbb008ad5b6f8fd59ca910b64db9e5c1460 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_tls.html +++ b/libmongoc/1.24.1/mongoc_uri_get_tls.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_username.html b/libmongoc/1.24.1/mongoc_uri_get_username.html index 841f923c845003aa2877b074b32f080c4e6fed29..62b74208ba0a43430e8403b09abefdb67e601451 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_username.html +++ b/libmongoc/1.24.1/mongoc_uri_get_username.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_get_write_concern.html b/libmongoc/1.24.1/mongoc_uri_get_write_concern.html index c15c1cc231318961f273970a502012fda0218650..010c83ed5e2d75816343a00c343835d4f44ee8d1 100644 --- a/libmongoc/1.24.1/mongoc_uri_get_write_concern.html +++ b/libmongoc/1.24.1/mongoc_uri_get_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_has_option.html b/libmongoc/1.24.1/mongoc_uri_has_option.html index 5a509bf54d640beefe10bed791ca693d933bae11..ad5fa5a46d817795bbf840a88750959da99643d7 100644 --- a/libmongoc/1.24.1/mongoc_uri_has_option.html +++ b/libmongoc/1.24.1/mongoc_uri_has_option.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_new.html b/libmongoc/1.24.1/mongoc_uri_new.html index b0807cea5ec84c5a3f36b752307be41740545f82..13e7fe586f68427c646fbfd01101b88dbeaaf21c 100644 --- a/libmongoc/1.24.1/mongoc_uri_new.html +++ b/libmongoc/1.24.1/mongoc_uri_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_new_for_host_port.html b/libmongoc/1.24.1/mongoc_uri_new_for_host_port.html index 56ca99482093b894100ff1d6c6d0cf0a40be645c..06082e4ad0ab650c06503a4829f23af3ee97e314 100644 --- a/libmongoc/1.24.1/mongoc_uri_new_for_host_port.html +++ b/libmongoc/1.24.1/mongoc_uri_new_for_host_port.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_new_with_error.html b/libmongoc/1.24.1/mongoc_uri_new_with_error.html index d6998f17e86a139cbc96d5420d07c1061da6693a..69f1f80705f70ac635a6069fa2581036ce0ff74d 100644 --- a/libmongoc/1.24.1/mongoc_uri_new_with_error.html +++ b/libmongoc/1.24.1/mongoc_uri_new_with_error.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_option_is_bool.html b/libmongoc/1.24.1/mongoc_uri_option_is_bool.html index 2432d4ba460e5dc76359da066821bc6d9e2b2351..c37f1477632b71881d9113eec2ce884f47d00279 100644 --- a/libmongoc/1.24.1/mongoc_uri_option_is_bool.html +++ b/libmongoc/1.24.1/mongoc_uri_option_is_bool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_option_is_int32.html b/libmongoc/1.24.1/mongoc_uri_option_is_int32.html index 9cc49076aabfe0794a85abcab652536c47f63dca..43fe429e2e6de9d44eeb1c1a4ef1a5aad2c84bb3 100644 --- a/libmongoc/1.24.1/mongoc_uri_option_is_int32.html +++ b/libmongoc/1.24.1/mongoc_uri_option_is_int32.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_option_is_int64.html b/libmongoc/1.24.1/mongoc_uri_option_is_int64.html index 3e177649c8c2bef4fb68ce0baad501853be61503..344d78340cff4ef39e43f7ff43ca4dac712bc1ec 100644 --- a/libmongoc/1.24.1/mongoc_uri_option_is_int64.html +++ b/libmongoc/1.24.1/mongoc_uri_option_is_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_option_is_utf8.html b/libmongoc/1.24.1/mongoc_uri_option_is_utf8.html index 336783e50e1cb0c9bc512d7682efe513fb0226cc..2785718bfdee80ae223c3bc0804d0b46e5fec4f0 100644 --- a/libmongoc/1.24.1/mongoc_uri_option_is_utf8.html +++ b/libmongoc/1.24.1/mongoc_uri_option_is_utf8.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_auth_mechanism.html b/libmongoc/1.24.1/mongoc_uri_set_auth_mechanism.html index ca3dc319b6939dd1c3a4c141263a813d85ec6563..7e72ef2bc333ade2b659296c0f80dbda1eb73034 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_auth_mechanism.html +++ b/libmongoc/1.24.1/mongoc_uri_set_auth_mechanism.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_auth_source.html b/libmongoc/1.24.1/mongoc_uri_set_auth_source.html index 45dd92bf093ac27b538b60c48f7f427bbb2e3ac7..45180bf46c1f27b803723e9a013127cc384d3cbc 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_auth_source.html +++ b/libmongoc/1.24.1/mongoc_uri_set_auth_source.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_compressors.html b/libmongoc/1.24.1/mongoc_uri_set_compressors.html index cc4fc8675e44f8f021252edc758700adb9c9c180..74137e45b66f60aea98546593a445fac9c4e8073 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_compressors.html +++ b/libmongoc/1.24.1/mongoc_uri_set_compressors.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_database.html b/libmongoc/1.24.1/mongoc_uri_set_database.html index f05755f6a33fe3bc74a1a0faba5cb076676ec00c..64021fc9321ff839b64d4230adef6dac05d69459 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_database.html +++ b/libmongoc/1.24.1/mongoc_uri_set_database.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_mechanism_properties.html b/libmongoc/1.24.1/mongoc_uri_set_mechanism_properties.html index bb973690138d635c6f49c07f1d702e460852b9b9..fb563d4a74519411195b864dd820cca23c9a528b 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_mechanism_properties.html +++ b/libmongoc/1.24.1/mongoc_uri_set_mechanism_properties.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_option_as_bool.html b/libmongoc/1.24.1/mongoc_uri_set_option_as_bool.html index 8229e9f6fabd03475abab02d94f71f126c12d913..a7e13eee7e10081ea2c9dd67345a03b6dd262e19 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_option_as_bool.html +++ b/libmongoc/1.24.1/mongoc_uri_set_option_as_bool.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_option_as_int32.html b/libmongoc/1.24.1/mongoc_uri_set_option_as_int32.html index 8f8510dca35ba3e2fc11f4296531fab27752282d..e45058f66e14c740609d70a5f3218fb943eb7682 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_option_as_int32.html +++ b/libmongoc/1.24.1/mongoc_uri_set_option_as_int32.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_option_as_int64.html b/libmongoc/1.24.1/mongoc_uri_set_option_as_int64.html index 7aa39ce70246ea23c6e680ffff2b8944a6e7fb35..178177e70919834adbcc7fd219de8f18f245a957 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_option_as_int64.html +++ b/libmongoc/1.24.1/mongoc_uri_set_option_as_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_option_as_utf8.html b/libmongoc/1.24.1/mongoc_uri_set_option_as_utf8.html index c5da791586ed76277f79c8cf2afc1a2da1d89b53..71943941f706eef8e03e22abb3fe625f9b3ee13e 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_option_as_utf8.html +++ b/libmongoc/1.24.1/mongoc_uri_set_option_as_utf8.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_password.html b/libmongoc/1.24.1/mongoc_uri_set_password.html index ca9db17d2089721cd584dfa927e8e29dbf9f2c5c..4232df0819927795fbb37044de1ac97208296f8e 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_password.html +++ b/libmongoc/1.24.1/mongoc_uri_set_password.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_read_concern.html b/libmongoc/1.24.1/mongoc_uri_set_read_concern.html index 1ba3d1aae53b4dac3fc63e274f3aa97f78fa028c..fe1fa4cfd3e430c2a65ade79222dced230c3a6ee 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_read_concern.html +++ b/libmongoc/1.24.1/mongoc_uri_set_read_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_read_prefs_t.html b/libmongoc/1.24.1/mongoc_uri_set_read_prefs_t.html index 2ac21f68bef2c0f7d7aa86445680f1c465149b94..d2c9a13717797311334cb91de6cd7cbacd3657d9 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_read_prefs_t.html +++ b/libmongoc/1.24.1/mongoc_uri_set_read_prefs_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_username.html b/libmongoc/1.24.1/mongoc_uri_set_username.html index e6acf2679cdeaf1b02297f4dd523fc5d2531fa9c..445e984bc119bf46f676ad61af4f49f5da5233f4 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_username.html +++ b/libmongoc/1.24.1/mongoc_uri_set_username.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_set_write_concern.html b/libmongoc/1.24.1/mongoc_uri_set_write_concern.html index 39a31b613f0be5aee2ada6aae7d9cda422b1c8f5..98663986be1e497800e1c8ec35d769d09c93c5ff 100644 --- a/libmongoc/1.24.1/mongoc_uri_set_write_concern.html +++ b/libmongoc/1.24.1/mongoc_uri_set_write_concern.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_t.html b/libmongoc/1.24.1/mongoc_uri_t.html index f42d9da5ed0b1e262a8aafe31115d7e3f3c3b4ba..fe13669779bb32a929d94200a6eb3b2b8c74a7cd 100644 --- a/libmongoc/1.24.1/mongoc_uri_t.html +++ b/libmongoc/1.24.1/mongoc_uri_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_uri_unescape.html b/libmongoc/1.24.1/mongoc_uri_unescape.html index 69f7a39dfe90a89319b6f21be059d3d82fbb45b0..8ab99a225270269891b88c93ba2ff5a0918c558f 100644 --- a/libmongoc/1.24.1/mongoc_uri_unescape.html +++ b/libmongoc/1.24.1/mongoc_uri_unescape.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_version.html b/libmongoc/1.24.1/mongoc_version.html index 3e455d955d555fe787f0000a8e1afeb6a745fbad..be6bd476ffd7902d31a29792a606426893232c2f 100644 --- a/libmongoc/1.24.1/mongoc_version.html +++ b/libmongoc/1.24.1/mongoc_version.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_append.html b/libmongoc/1.24.1/mongoc_write_concern_append.html index c0e81abd9e4d5fd860f685243fa415800d3304fd..2bca15bc7a2b1bda9a825d08d065e9f2e383a648 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_append.html +++ b/libmongoc/1.24.1/mongoc_write_concern_append.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_copy.html b/libmongoc/1.24.1/mongoc_write_concern_copy.html index 0e8c4c85b1302b54f884df4cdd2cecfbb27471ef..fe86caab53b115a4b74c5ac54d849df9b0a8b9f8 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_copy.html +++ b/libmongoc/1.24.1/mongoc_write_concern_copy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_destroy.html b/libmongoc/1.24.1/mongoc_write_concern_destroy.html index df1addfa914852f0e7c7666f9011b39d6a95d28a..c1ec6f569ba0a29502614aeb5b2b13b1cf3c8eb4 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_destroy.html +++ b/libmongoc/1.24.1/mongoc_write_concern_destroy.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_get_fsync.html b/libmongoc/1.24.1/mongoc_write_concern_get_fsync.html index 699176445d3dfc8c8eaeb0ca1197e360cb77d0a5..0b05746fc943f3ae0f180597e3d15dba869f3eca 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_get_fsync.html +++ b/libmongoc/1.24.1/mongoc_write_concern_get_fsync.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_get_journal.html b/libmongoc/1.24.1/mongoc_write_concern_get_journal.html index 2fd198dc0e181b2373c07a45a5d31f25db053e10..3b661bf123fb4b86b1af5a424a2ff584dccd711c 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_get_journal.html +++ b/libmongoc/1.24.1/mongoc_write_concern_get_journal.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_get_w.html b/libmongoc/1.24.1/mongoc_write_concern_get_w.html index 7b3228511c33c723921b0708aafcc5f1461121df..616e39974c286d21693219c2ee9c571dc2deca21 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_get_w.html +++ b/libmongoc/1.24.1/mongoc_write_concern_get_w.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_get_wmajority.html b/libmongoc/1.24.1/mongoc_write_concern_get_wmajority.html index da111807cfd51341f249596ac61bbd125a547ae5..223b8c3bbf188f9306906f2ade038b072b6e1c86 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_get_wmajority.html +++ b/libmongoc/1.24.1/mongoc_write_concern_get_wmajority.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_get_wtag.html b/libmongoc/1.24.1/mongoc_write_concern_get_wtag.html index ea065b918e3189abd9120a19ecc45db93065c8f2..44bd3d5b54d4a6b3a487603d128ef8eb404dd81c 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_get_wtag.html +++ b/libmongoc/1.24.1/mongoc_write_concern_get_wtag.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout.html b/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout.html index f071bc0cf974c0fa3f635ef77e591c08c9f642e9..72f6cb3f88f7394f748adb0706b6da4085fda197 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout.html +++ b/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout_int64.html b/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout_int64.html index 243a893a9fe7aa9aacdd3e1b7654d4515c0dcbc6..eed6ff69be1bc65a0433dee4181e5e184dac19a3 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout_int64.html +++ b/libmongoc/1.24.1/mongoc_write_concern_get_wtimeout_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_is_acknowledged.html b/libmongoc/1.24.1/mongoc_write_concern_is_acknowledged.html index cc05afb21b8455943eb3a65f4937ad4ded7ecd63..125b9138ab339be904264fa11f97bb0da265aa9e 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_is_acknowledged.html +++ b/libmongoc/1.24.1/mongoc_write_concern_is_acknowledged.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_is_default.html b/libmongoc/1.24.1/mongoc_write_concern_is_default.html index 55bb8d837d17e3beaf9a6937a3a87a907aa34f51..b837cb5107e5dfb82d410e064f609fc37feaca0d 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_is_default.html +++ b/libmongoc/1.24.1/mongoc_write_concern_is_default.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_is_valid.html b/libmongoc/1.24.1/mongoc_write_concern_is_valid.html index f60af2f128ed8abb9c14dc6dbb7cc08dba199752..b6229e4b90f80700550b8305d121c7da55b36de4 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_is_valid.html +++ b/libmongoc/1.24.1/mongoc_write_concern_is_valid.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_journal_is_set.html b/libmongoc/1.24.1/mongoc_write_concern_journal_is_set.html index d05bcffe8a3d82c34d567ca79805d614ff1a7e9f..54d9f39fce8fb9de5d6d0d584408706e02bbe653 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_journal_is_set.html +++ b/libmongoc/1.24.1/mongoc_write_concern_journal_is_set.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_new.html b/libmongoc/1.24.1/mongoc_write_concern_new.html index 9d4642cf6372074c6f695e1178599d9ce04cc151..74cd3484150ed6187d50a40abd37e9ca10d3c0d4 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_new.html +++ b/libmongoc/1.24.1/mongoc_write_concern_new.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_set_fsync.html b/libmongoc/1.24.1/mongoc_write_concern_set_fsync.html index 48b23db9ce22df5b86690a8afe0d4d64091cfc9b..aed8950e243152d43d553f3b35db4263a95af62b 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_set_fsync.html +++ b/libmongoc/1.24.1/mongoc_write_concern_set_fsync.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_set_journal.html b/libmongoc/1.24.1/mongoc_write_concern_set_journal.html index b70e574d1b28d256b6d84e9c518bb900f2cfce1b..47542a87588e544138c254a9113a86fbd987427b 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_set_journal.html +++ b/libmongoc/1.24.1/mongoc_write_concern_set_journal.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_set_w.html b/libmongoc/1.24.1/mongoc_write_concern_set_w.html index c2a7e13e2b8cee2b0f9d03d94565302f6d8e3967..c5bffa830a2b6574d2e2ce633e534aea858af52e 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_set_w.html +++ b/libmongoc/1.24.1/mongoc_write_concern_set_w.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_set_wmajority.html b/libmongoc/1.24.1/mongoc_write_concern_set_wmajority.html index 038b2c7ef9d7a0b2fbcd6c8761885d1db2f32447..186bdc850e2ff05f73c61df8e3dc21ea176ca191 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_set_wmajority.html +++ b/libmongoc/1.24.1/mongoc_write_concern_set_wmajority.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_set_wtag.html b/libmongoc/1.24.1/mongoc_write_concern_set_wtag.html index 14a03a8e52af0aa855cf87cbbce2aea8fd600e3f..1f18e7f70f8473e82fdcd3b86b7fb820f7537b8f 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_set_wtag.html +++ b/libmongoc/1.24.1/mongoc_write_concern_set_wtag.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout.html b/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout.html index 3e655479875afc631fbf008e27dad29ffc87dc45..0aafd8f9d7e925197c5ac0ac96bc3b331709ba3a 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout.html +++ b/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout_int64.html b/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout_int64.html index 2770695521e9496ab1881258833ec18077873739..bcf278fdb020f031a347e2cb0f2d8b55bdf224a7 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout_int64.html +++ b/libmongoc/1.24.1/mongoc_write_concern_set_wtimeout_int64.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/mongoc_write_concern_t.html b/libmongoc/1.24.1/mongoc_write_concern_t.html index ef3cc8a51795646fe59fcafcfb97c3528a218030..96e19841c56f126b9b5fdb83a4ff495680ae7685 100644 --- a/libmongoc/1.24.1/mongoc_write_concern_t.html +++ b/libmongoc/1.24.1/mongoc_write_concern_t.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/queryable-encryption.html b/libmongoc/1.24.1/queryable-encryption.html index 8417339c52e309a45fac3953dfc1cc2f1758357d..941dde0e57034fdf8b6df403c4deadb069bdd31c 100644 --- a/libmongoc/1.24.1/queryable-encryption.html +++ b/libmongoc/1.24.1/queryable-encryption.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/search.html b/libmongoc/1.24.1/search.html index 3982f32f100ab24fa6971403ddc6caa412b80d8b..1b94d65a6b1e04a7b8935d01b1f5182dac465206 100644 --- a/libmongoc/1.24.1/search.html +++ b/libmongoc/1.24.1/search.html @@ -45,6 +45,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/tutorial.html b/libmongoc/1.24.1/tutorial.html index 5f3fed632b5491825d0329aeb7f902a36664ef81..1798c6f3228722111e473a8aebe12a94b3a7b473 100644 --- a/libmongoc/1.24.1/tutorial.html +++ b/libmongoc/1.24.1/tutorial.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.1/visual-studio-guide.html b/libmongoc/1.24.1/visual-studio-guide.html index 279f35133639e1fefc34ad9655013753eb41d763..0ff6d3348bba24a5525ad3cf3e2afd965c3ad924 100644 --- a/libmongoc/1.24.1/visual-studio-guide.html +++ b/libmongoc/1.24.1/visual-studio-guide.html @@ -40,6 +40,12 @@ +
    + This is an outdated version of the documentation. + + See the current version of this page. +
    diff --git a/libmongoc/1.24.2/.nojekyll b/libmongoc/1.24.2/.nojekyll new file mode 100644 index 0000000000000000000000000000000000000000..19102815663d23f8b75a47e7a01965dcdc96468c --- /dev/null +++ b/libmongoc/1.24.2/.nojekyll @@ -0,0 +1 @@ +foo \ No newline at end of file diff --git a/libmongoc/1.24.2/CMakeLists.txt b/libmongoc/1.24.2/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..202daf7bc716d73f8e8ace2890c0af6889b1f658 --- /dev/null +++ b/libmongoc/1.24.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.24.2/_images/msvc-add-dependencies-static.png b/libmongoc/1.24.2/_images/msvc-add-dependencies-static.png new file mode 100644 index 0000000000000000000000000000000000000000..b70984e5b94463f3292966ed74d2fb4fc7a92343 Binary files /dev/null and b/libmongoc/1.24.2/_images/msvc-add-dependencies-static.png differ diff --git a/libmongoc/1.24.2/_images/msvc-add-dependencies.png b/libmongoc/1.24.2/_images/msvc-add-dependencies.png new file mode 100644 index 0000000000000000000000000000000000000000..3fe2c7ae74660fb2096f6442aba0972d42f77aec Binary files /dev/null and b/libmongoc/1.24.2/_images/msvc-add-dependencies.png differ diff --git a/libmongoc/1.24.2/_images/msvc-add-include-directories.png b/libmongoc/1.24.2/_images/msvc-add-include-directories.png new file mode 100644 index 0000000000000000000000000000000000000000..afd181272db5fc0d6457868e0c4849628a17a12b Binary files /dev/null and b/libmongoc/1.24.2/_images/msvc-add-include-directories.png differ diff --git a/libmongoc/1.24.2/_images/msvc-create-project.png b/libmongoc/1.24.2/_images/msvc-create-project.png new file mode 100644 index 0000000000000000000000000000000000000000..8c7f749c65be2289f93a0e5ddbc0568fe9b982ab Binary files /dev/null and b/libmongoc/1.24.2/_images/msvc-create-project.png differ diff --git a/libmongoc/1.24.2/_images/msvc-set-path.png b/libmongoc/1.24.2/_images/msvc-set-path.png new file mode 100644 index 0000000000000000000000000000000000000000..c135b1a014a61186b2873a9caf80b972d2384c5e Binary files /dev/null and b/libmongoc/1.24.2/_images/msvc-set-path.png differ diff --git a/libmongoc/1.24.2/_images/msvc-switch-architecture.png b/libmongoc/1.24.2/_images/msvc-switch-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc52d1590a958d565d0a1f13aeb17f5bec62e4d Binary files /dev/null and b/libmongoc/1.24.2/_images/msvc-switch-architecture.png differ diff --git a/libmongoc/1.24.2/_static/ajax-loader.gif b/libmongoc/1.24.2/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 Binary files /dev/null and b/libmongoc/1.24.2/_static/ajax-loader.gif differ diff --git a/libmongoc/1.24.2/_static/basic.css b/libmongoc/1.24.2/_static/basic.css new file mode 100644 index 0000000000000000000000000000000000000000..19ced1057aebf39d3dac6f6a5d864491231a3e33 --- /dev/null +++ b/libmongoc/1.24.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.24.2/_static/comment-bright.png b/libmongoc/1.24.2/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e Binary files /dev/null and b/libmongoc/1.24.2/_static/comment-bright.png differ diff --git a/libmongoc/1.24.2/_static/comment-close.png b/libmongoc/1.24.2/_static/comment-close.png new file mode 100644 index 0000000000000000000000000000000000000000..4d91bcf57de866a901a89a2a68c0f36af1114841 Binary files /dev/null and b/libmongoc/1.24.2/_static/comment-close.png differ diff --git a/libmongoc/1.24.2/_static/comment.png b/libmongoc/1.24.2/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbc0cbd512bdeefcb1984c99d8e577efb77f006 Binary files /dev/null and b/libmongoc/1.24.2/_static/comment.png differ diff --git a/libmongoc/1.24.2/_static/doctools.js b/libmongoc/1.24.2/_static/doctools.js new file mode 100644 index 0000000000000000000000000000000000000000..d8928926bf24bb081d91a12f7b92e1b2d8b142b6 --- /dev/null +++ b/libmongoc/1.24.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.24.2/_static/documentation_options.js b/libmongoc/1.24.2/_static/documentation_options.js new file mode 100644 index 0000000000000000000000000000000000000000..bc12cb35cdbb5228850f6e53832f07a9febac8ed --- /dev/null +++ b/libmongoc/1.24.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.24.2/_static/down-pressed.png b/libmongoc/1.24.2/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 Binary files /dev/null and b/libmongoc/1.24.2/_static/down-pressed.png differ diff --git a/libmongoc/1.24.2/_static/down.png b/libmongoc/1.24.2/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 Binary files /dev/null and b/libmongoc/1.24.2/_static/down.png differ diff --git a/libmongoc/1.24.2/_static/file.png b/libmongoc/1.24.2/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 Binary files /dev/null and b/libmongoc/1.24.2/_static/file.png differ diff --git a/libmongoc/1.24.2/_static/jquery-3.2.1.js b/libmongoc/1.24.2/_static/jquery-3.2.1.js new file mode 100644 index 0000000000000000000000000000000000000000..d2d8ca4790e52b0537f3cbb7dcd766099b789583 --- /dev/null +++ b/libmongoc/1.24.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.24.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:

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionDescriptionValue
    SO_KEEPALIVETCP Keep AliveEnabled
    TCP_KEEPIDLEHow long a connection needs to remain idle before TCP +starts sending keepalive probes120 seconds
    TCP_KEEPINTVLThe time in seconds between TCP probes10 seconds
    TCP_KEEPCNTHow many probes to send, without acknowledgement, +before dropping the connection9 probes
    TCP_NODELAYSend 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.24.2/aggregate.html b/libmongoc/1.24.2/aggregate.html new file mode 100644 index 0000000000000000000000000000000000000000..88931d543a564f51561e1d4cd7da73f41c248a01 --- /dev/null +++ b/libmongoc/1.24.2/aggregate.html @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + Aggregation Framework Examples — libmongoc 1.24.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.24.2/api.html b/libmongoc/1.24.2/api.html new file mode 100644 index 0000000000000000000000000000000000000000..2f6cbeb53ff00343632551df1b076e7f533edf01 --- /dev/null +++ b/libmongoc/1.24.2/api.html @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + API Reference — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/application-performance-monitoring.html b/libmongoc/1.24.2/application-performance-monitoring.html new file mode 100644 index 0000000000000000000000000000000000000000..4f923ce6faab8bbf59a95341484702347f9cb238 --- /dev/null +++ b/libmongoc/1.24.2/application-performance-monitoring.html @@ -0,0 +1,706 @@ + + + + + + + + + + + + + + Application Performance Monitoring (APM) — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/authentication.html b/libmongoc/1.24.2/authentication.html new file mode 100644 index 0000000000000000000000000000000000000000..3cd26c029ab1bf76f0945f0537159e67199cea60 --- /dev/null +++ b/libmongoc/1.24.2/authentication.html @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + Authentication — libmongoc 1.24.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.24.2/basic-troubleshooting.html b/libmongoc/1.24.2/basic-troubleshooting.html new file mode 100644 index 0000000000000000000000000000000000000000..57bebeec0ef6121c7fce3de5070b256ff7af531b --- /dev/null +++ b/libmongoc/1.24.2/basic-troubleshooting.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + Basic Troubleshooting — libmongoc 1.24.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 ASAN 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 and unique feature to help developers and sysadmins troubleshoot problems in production. +Performance counters are available for each process using the C Driver. +If available, the counters can be accessed outside of the application process via a shared memory segment. +The counters may be used graph statistics about your application process easily from tools like Munin or Nagios. +For example, the command watch --interval=0.5 -d mongoc-stat $PID may be used to monitor an application.

    +

    Performance counters are only available on Linux platforms and macOS arm64 platforms that support 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.
    • +
    +
    +

    Note

    +

    An operation is considered “sent” when one or more bytes of the corresponding message is written to the stream, regardless of whether the entire message is successfully written or if the operation ultimately succeeds or fails. +This does not include bytes that may be written during the stream connection process, such as TLS handshake messages.

    +
    +

    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.24.2/bulk.html b/libmongoc/1.24.2/bulk.html new file mode 100644 index 0000000000000000000000000000000000000000..5633da5defdf5b0c0c16a6e0554bac76e435f1bd --- /dev/null +++ b/libmongoc/1.24.2/bulk.html @@ -0,0 +1,989 @@ + + + + + + + + + + + + + + Bulk Write Operations — libmongoc 1.24.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.24.2/client-side-field-level-encryption.html b/libmongoc/1.24.2/client-side-field-level-encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..822569d1a9182180fce8e4e2e6d2222e5655bc0c --- /dev/null +++ b/libmongoc/1.24.2/client-side-field-level-encryption.html @@ -0,0 +1,1191 @@ + + + + + + + + + + + + + + Client-Side Field Level Encryption — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Client-Side Field Level Encryption

    +

    New in MongoDB 4.2, Client-Side Field Level Encryption (also referred to as CSFLE) allows administrators and developers to encrypt specific data fields in addition to other MongoDB encryption features.

    +

    With CSFLE, developers can encrypt fields client side without any server-side configuration or directives. CSFLE 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 dependency for Query Analysis. See In-Use Encryption for more information.

    +
    +

    See also

    +
    +
    The MongoDB Manual for Client-Side Field Level Encryption
    +
    +
    +
    +

    Automatic Client-Side Field Level Encryption

    +

    Automatic encryption is enabled by calling mongoc_client_enable_auto_encryption() on a mongoc_client_t. The following examples show how to set up automatic encryption using mongoc_client_encryption_t to create a new encryption data key.

    +
    +

    Note

    +

    Automatic 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 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;
    +   bson_t *index_opts = NULL;
    +   mongoc_index_model_t *index_model = 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");
    +   BSON_ASSERT (keyvault_client);
    +
    +   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_opts = BCON_NEW ("unique",
    +                          BCON_BOOL (true),
    +                          "partialFilterExpression",
    +                          "{",
    +                          "keyAltNames",
    +                          "{",
    +                          "$exists",
    +                          BCON_BOOL (true),
    +                          "}",
    +                          "}");
    +   index_model = mongoc_index_model_new (index_keys, index_opts);
    +   ret = mongoc_collection_create_indexes_with_opts (keyvault_coll,
    +                                                     &index_model,
    +                                                     1,
    +                                                     NULL /* opts */,
    +                                                     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");
    +   BSON_ASSERT (client);
    +
    +   /* 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");
    +   BSON_ASSERT (unencrypted_client);
    +
    +   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);
    +   mongoc_index_model_destroy (index_model);
    +   bson_destroy (index_opts);
    +   bson_destroy (index_keys);
    +   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 encryption using mongoc_client_encryption_t to create a new encryption data key and create a collection with the necessary JSON Schema:

    +
    +
    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;
    +   bson_t *index_opts = NULL;
    +   mongoc_index_model_t *index_model = 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");
    +   BSON_ASSERT (keyvault_client);
    +
    +   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_opts = BCON_NEW ("unique",
    +                          BCON_BOOL (true),
    +                          "partialFilterExpression",
    +                          "{",
    +                          "keyAltNames",
    +                          "{",
    +                          "$exists",
    +                          BCON_BOOL (true),
    +                          "}",
    +                          "}");
    +   index_model = mongoc_index_model_new (index_keys, index_opts);
    +   ret = mongoc_collection_create_indexes_with_opts (keyvault_coll,
    +                                                     &index_model,
    +                                                     1,
    +                                                     NULL /* opts */,
    +                                                     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");
    +   BSON_ASSERT (client);
    +
    +   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");
    +   BSON_ASSERT (unencrypted_client);
    +
    +   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);
    +   mongoc_index_model_destroy (index_model);
    +   bson_destroy (index_opts);
    +   bson_destroy (index_keys);
    +   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 Query Analysis (mongocryptd or crypt_shared). 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;
    +   bson_t *index_opts = NULL;
    +   mongoc_index_model_t *index_model = 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_opts = BCON_NEW ("unique",
    +                          BCON_BOOL (true),
    +                          "partialFilterExpression",
    +                          "{",
    +                          "keyAltNames",
    +                          "{",
    +                          "$exists",
    +                          BCON_BOOL (true),
    +                          "}",
    +                          "}");
    +   index_model = mongoc_index_model_new (index_keys, index_opts);
    +   ret = mongoc_collection_create_indexes_with_opts (keyvault_coll,
    +                                                     &index_model,
    +                                                     1,
    +                                                     NULL /* opts */,
    +                                                     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";
    +   const size_t len = strlen (to_encrypt.value.v_utf8.str);
    +   BSON_ASSERT (bson_in_range_unsigned (uint32_t, len));
    +   to_encrypt.value.v_utf8.len = (uint32_t) len;
    +
    +   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);
    +   mongoc_index_model_destroy (index_model);
    +   bson_destroy (index_opts);
    +   bson_destroy (index_keys);
    +   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;
    +   bson_t *index_opts = NULL;
    +   mongoc_index_model_t *index_model = 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_opts = BCON_NEW ("unique",
    +                          BCON_BOOL (true),
    +                          "partialFilterExpression",
    +                          "{",
    +                          "keyAltNames",
    +                          "{",
    +                          "$exists",
    +                          BCON_BOOL (true),
    +                          "}",
    +                          "}");
    +   index_model = mongoc_index_model_new (index_keys, index_opts);
    +   ret = mongoc_collection_create_indexes_with_opts (keyvault_coll,
    +                                                     &index_model,
    +                                                     1,
    +                                                     NULL /* opts */,
    +                                                     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";
    +   const size_t len = strlen (to_encrypt.value.v_utf8.str);
    +   BSON_ASSERT (bson_in_range_unsigned (uint32_t, len));
    +   to_encrypt.value.v_utf8.len = (uint32_t) len;
    +
    +   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);
    +   mongoc_index_model_destroy (index_model);
    +   bson_destroy (index_opts);
    +   bson_destroy (index_keys);
    +   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.24.2/configuring_tls.html b/libmongoc/1.24.2/configuring_tls.html new file mode 100644 index 0000000000000000000000000000000000000000..4a08b7f1b0f4d3469368b27bf4d2ac89103a4eb0 --- /dev/null +++ b/libmongoc/1.24.2/configuring_tls.html @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + Configuring TLS — libmongoc 1.24.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:

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_TLStls{true|false}, indicating if TLS must be used.
    MONGOC_URI_TLSCERTIFICATEKEYFILEtlscertificatekeyfilePath to PEM formatted Private Key, with its Public Certificate concatenated at the end.
    MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORDtlscertificatekeypasswordThe password, if any, to use to unlock encrypted Private Key.
    MONGOC_URI_TLSCAFILEtlscafileOne, or a bundle of, Certificate Authorities whom should be considered to be trusted.
    MONGOC_URI_TLSALLOWINVALIDCERTIFICATEStlsallowinvalidcertificatesAccept and ignore certificate verification errors (e.g. untrusted issuer, expired, etc.)
    MONGOC_URI_TLSALLOWINVALIDHOSTNAMEStlsallowinvalidhostnamesIgnore hostname verification of the certificate (e.g. Man In The Middle, using valid certificate, but issued for another hostname)
    MONGOC_URI_TLSINSECUREtlsinsecure{true|false}, indicating if insecure TLS options should be used. Currently this implies MONGOC_URI_TLSALLOWINVALIDCERTIFICATES and MONGOC_URI_TLSALLOWINVALIDHOSTNAMES.
    MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECKtlsdisablecertificaterevocationcheck{true|false}, indicates if revocation checking (CRL / OCSP) should be disabled.
    MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECKtlsdisableocspendpointcheck{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 keyURI key
    pem_filetlsClientCertificateKeyFile
    pem_pwdtlsClientCertificateKeyPassword
    ca_filetlsCAFile
    weak_cert_validationtlsAllowInvalidCertificates
    allow_invalid_hostnametlsAllowInvalidHostnames
    +

    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.24.2/connection-pooling.html b/libmongoc/1.24.2/connection-pooling.html new file mode 100644 index 0000000000000000000000000000000000000000..abc3c48ecf20dfa6c2d1d26ec56118aa3c8a4fff --- /dev/null +++ b/libmongoc/1.24.2/connection-pooling.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + Connection Pooling — libmongoc 1.24.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.24.2/cursors.html b/libmongoc/1.24.2/cursors.html new file mode 100644 index 0000000000000000000000000000000000000000..0fcfa70246b437da90e5b4eb178327e9d1d21be9 --- /dev/null +++ b/libmongoc/1.24.2/cursors.html @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + Cursors — libmongoc 1.24.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.24.2/debugging.html b/libmongoc/1.24.2/debugging.html new file mode 100644 index 0000000000000000000000000000000000000000..9f9bc2d24a3ad8e6956a151c67b94c31e6475259 --- /dev/null +++ b/libmongoc/1.24.2/debugging.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + Aids for Debugging — libmongoc 1.24.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

    +

    The mongo-c-driver repository contains a script lldb_bson.py that can be +imported into an LLDB sessions and allows rich inspection of BSON values.

    +
    +

    Note

    +

    The lldb_bson.py module requires an LLDB with Python 3.8 or newer.

    +
    +

    To activate the script, import it from the LLDB command line:

    +
    (lldb) command script import /path/to/mongo-c-driver/lldb_bson.py
    +
    +
    +

    Upon success, the message lldb_bson is ready will be printed to the LLDB +console.

    +

    The import of this script can be made automatic by adding the command to an +.lldbinit file. For example: Create a file ~/.lldbinit containing:

    +
    command script import /path/to/mongo-c-driver/lldb_bson.py
    +
    +
    +

    The docstring at the top of the lldb_bson.py file contains more information +on the capabilities of the module.

    +
    +
    +

    Debug assertions

    +

    To enable runtime debug assertions, configure with -DENABLE_DEBUG_ASSERTIONS=ON.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/distinct-mapreduce.html b/libmongoc/1.24.2/distinct-mapreduce.html new file mode 100644 index 0000000000000000000000000000000000000000..f79f846d2428f41fc1e7f554ae2babca84a5153e --- /dev/null +++ b/libmongoc/1.24.2/distinct-mapreduce.html @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + “distinct” and “mapReduce” — libmongoc 1.24.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.24.2/errors.html b/libmongoc/1.24.2/errors.html new file mode 100644 index 0000000000000000000000000000000000000000..6f8a634eed76243f34578e63f304595a364d834f --- /dev/null +++ b/libmongoc/1.24.2/errors.html @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + Error Reporting — libmongoc 1.24.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

    + +
    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CodeDescription 
    MONGOC_ERROR_CLIENTMONGOC_ERROR_CLIENT_TOO_BIGYou tried to send a message larger than the server’s max message size.
     MONGOC_ERROR_CLIENT_AUTHENTICATEWrong credentials, or failure sending or receiving authentication messages.
     MONGOC_ERROR_CLIENT_NO_ACCEPTABLE_PEERYou tried an TLS connection but the driver was not built with TLS.
     MONGOC_ERROR_CLIENT_IN_EXHAUSTYou began iterating an exhaust cursor, then tried to begin another operation with the same mongoc_client_t.
     MONGOC_ERROR_CLIENT_SESSION_FAILUREFailure related to creating or using a logical session.
     MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_ARGFailure related to arguments passed when initializing In-Use Encryption.
     MONGOC_ERROR_CLIENT_INVALID_ENCRYPTION_STATEFailure related to In-Use Encryption.
     MONGOC_ERROR_CLIENT_INVALID_LOAD_BALANCERYou attempted to connect to a MongoDB server behind a load balancer, but the server does not advertize load balanced support.
    MONGOC_ERROR_STREAMMONGOC_ERROR_STREAM_NAME_RESOLUTIONDNS failure.
     MONGOC_ERROR_STREAM_SOCKETTimeout communicating with server, or connection closed.
     MONGOC_ERROR_STREAM_CONNECTFailed to connect to server.
    MONGOC_ERROR_PROTOCOLMONGOC_ERROR_PROTOCOL_INVALID_REPLYCorrupt response from server.
     MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSIONThe server version is too old or too new to communicate with the driver.
    MONGOC_ERROR_CURSORMONGOC_ERROR_CURSOR_INVALID_CURSORYou 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_TOKENA resume token was not returned in a document found with mongoc_change_stream_next()
    MONGOC_ERROR_QUERYMONGOC_ERROR_QUERY_FAILUREError API Version 1: Server error from command or query. The server error message is in message.
    MONGOC_ERROR_SERVERMONGOC_ERROR_QUERY_FAILUREError API Version 2: Server error from command or query. The server error message is in message.
    MONGOC_ERROR_SASLA SASL error code.man sasl_errors for a list of codes.
    MONGOC_ERROR_BSONMONGOC_ERROR_BSON_INVALIDYou 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_NAMESPACEMONGOC_ERROR_NAMESPACE_INVALIDYou tried to create a collection with an invalid name.
    MONGOC_ERROR_COMMANDMONGOC_ERROR_COMMAND_INVALID_ARGMany functions set this error code when passed bad parameters. Print the error message for details.
     MONGOC_ERROR_PROTOCOL_BAD_WIRE_VERSIONYou tried to use a command option the server does not support.
     MONGOC_ERROR_DUPLICATE_KEYAn insert or update failed because because of a duplicate _id or other unique-index violation.
     MONGOC_ERROR_MAX_TIME_MS_EXPIREDThe operation failed because maxTimeMS expired.
     MONGOC_ERROR_SERVER_SELECTION_INVALID_IDThe serverId option for an operation conflicts with the pinned server for that operation’s client session (denoted by the sessionId option).
    MONGOC_ERROR_COMMANDError code from server.Error API Version 1: Server error from a command. The server error message is in message.
    MONGOC_ERROR_SERVERError code from server.Error API Version 2: Server error from a command. The server error message is in message.
    MONGOC_ERROR_COLLECTIONMONGOC_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_COLLECTIONError 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_SERVERError 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_GRIDFSMONGOC_ERROR_GRIDFS_CHUNK_MISSINGThe GridFS file is missing a document in its chunks collection.
     MONGOC_ERROR_GRIDFS_CORRUPTA data inconsistency was detected in GridFS.
     MONGOC_ERROR_GRIDFS_INVALID_FILENAMEYou passed a NULL filename to mongoc_gridfs_remove_by_filename().
     MONGOC_ERROR_GRIDFS_PROTOCOL_ERRORYou 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_FOUNDA GridFS file is missing from files collection.
     MONGOC_ERROR_GRIDFS_BUCKET_STREAMAn error occurred on a stream created from a GridFS operation like mongoc_gridfs_bucket_upload_from_stream().
    MONGOC_ERROR_SCRAMMONGOC_ERROR_SCRAM_PROTOCOL_ERRORFailure in SCRAM-SHA-1 authentication.
    MONGOC_ERROR_SERVER_SELECTIONMONGOC_ERROR_SERVER_SELECTION_FAILURENo 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_CONCERNError code from server.There was a write concern error or timeout from the server.
    MONGOC_ERROR_TRANSACTIONMONGOC_ERROR_TRANSACTION_INVALIDYou attempted to start a transaction when one is already in progress, or commit or abort when there is no transaction.
    MONGOC_ERROR_CLIENT_SIDE_ENCRYPTIONError code produced by libmongocrypt.An error occurred in the library responsible for In-Use Encryption
    MONGOC_ERROR_AZUREMONGOC_ERROR_KMS_SERVER_HTTPAn Azure HTTP service responded with an error status
     MONGOC_ERROR_KMS_SERVER_BAD_JSONAn Azure service responded with invalid JSON data
    MONGOC_ERROR_GCPMONGOC_ERROR_KMS_SERVER_HTTPA GCP HTTP service responded with an error status
     MONGOC_ERROR_KMS_SERVER_BAD_JSONA GCP service responded with invalid JSON data
    +
    +
    +

    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 SourceAPI Version 1API Version 2
    mongoc_cursor_error()MONGOC_ERROR_QUERYMONGOC_ERROR_SERVER
    mongoc_client_command_with_opts(), +mongoc_database_command_with_opts(), and +other command functionsMONGOC_ERROR_QUERYMONGOC_ERROR_SERVER
    mongoc_collection_count_with_opts() +mongoc_client_get_database_names_with_opts(), +and other command helper functionsMONGOC_ERROR_QUERYMONGOC_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_COMMANDMONGOC_ERROR_SERVER
    mongoc_bulk_operation_execute()MONGOC_ERROR_COMMANDMONGOC_ERROR_SERVER
    Write-concern timeoutMONGOC_ERROR_WRITE_CONCERNMONGOC_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.24.2/full_index.html b/libmongoc/1.24.2/full_index.html new file mode 100644 index 0000000000000000000000000000000000000000..adac8da70e5ec35b2606bcabceb12b8e598e4588 --- /dev/null +++ b/libmongoc/1.24.2/full_index.html @@ -0,0 +1,937 @@ + + + + + + + + + + + + + + Index — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Index

    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/gridfs.html b/libmongoc/1.24.2/gridfs.html new file mode 100644 index 0000000000000000000000000000000000000000..3beda2bf4e78729fbbe682bbdf334d0f6b3d2204 --- /dev/null +++ b/libmongoc/1.24.2/gridfs.html @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + GridFS — libmongoc 1.24.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.24.2/guides.html b/libmongoc/1.24.2/guides.html new file mode 100644 index 0000000000000000000000000000000000000000..8cd590865f251f31599ac9898d986aa4b98902b9 --- /dev/null +++ b/libmongoc/1.24.2/guides.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + Guides — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/in-use-encryption.html b/libmongoc/1.24.2/in-use-encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..4017aa2aa6010c197717362f209104685f514c64 --- /dev/null +++ b/libmongoc/1.24.2/in-use-encryption.html @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + In-Use Encryption — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    In-Use Encryption

    +

    In-Use Encryption consists of two features:

    + +
    +

    Installation

    +

    Using In-Use Encryption in the C driver requires the dependency libmongocrypt. See the MongoDB Manual for libmongocrypt installation instructions.

    +

    Once libmongocrypt is installed, configure the C driver with -DENABLE_CLIENT_SIDE_ENCRYPTION=ON to require In-Use Encryption be enabled.

    +
    $ cd mongo-c-driver
    +$ mkdir cmake-build && cd cmake-build
    +$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_CLIENT_SIDE_ENCRYPTION=ON ..
    +$ cmake --build . --target install
    +
    +
    +
    +
    +

    API

    +

    mongoc_client_encryption_t is used for explicit encryption and key management. +mongoc_client_enable_auto_encryption() and mongoc_client_pool_enable_auto_encryption() is used to enable automatic encryption.

    +

    The Queryable Encryption and CSFLE features share much of the same API with some exceptions.

    + +
    +
    +

    Query Analysis

    +

    To support the automatic encryption feature, one of the following dependencies are required:

    + +

    A mongoc_client_t or mongoc_client_pool_t configured with auto encryption will automatically try to load the crypt_shared library. If loading the crypt_shared library fails, the mongoc_client_t or mongoc_client_pool_t will try to spawn the mongocryptd process from the application’s PATH. To configure use of crypt_shared and mongocryptd see mongoc_auto_encryption_opts_set_extra().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/index.html b/libmongoc/1.24.2/index.html new file mode 100644 index 0000000000000000000000000000000000000000..0847737737e14f9bda9f7e6a70681b40ca1d0627 --- /dev/null +++ b/libmongoc/1.24.2/index.html @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + libmongoc — libmongoc 1.24.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.24.2/init-cleanup.html b/libmongoc/1.24.2/init-cleanup.html new file mode 100644 index 0000000000000000000000000000000000000000..b38716f183e501d3168215b608d9d589a5fc8bbd --- /dev/null +++ b/libmongoc/1.24.2/init-cleanup.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + Initialization and cleanup — libmongoc 1.24.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.24.2/installing.html b/libmongoc/1.24.2/installing.html new file mode 100644 index 0000000000000000000000000000000000000000..0b2b3681cc5a2e81ccca46b64ce43da7812bda47 --- /dev/null +++ b/libmongoc/1.24.2/installing.html @@ -0,0 +1,375 @@ + + + + + + + + + + + + + + Installing the MongoDB C Driver (libmongoc) and BSON library (libbson) — libmongoc 1.24.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, 11.0
    • +
    • macOS 10.14 (Will be dropped in an upcoming release)
    • +
    • macOS 11.0 (x86_64 and arm64)
    • +
    • Microsoft Windows Server 2008, 2016
    • +
    • RHEL 7.0, 7.1, 8.1, 8.2, 8.3
    • +
    • Ubuntu 16.04, 18.04, 20.04
    • +
    • Clang 3.4, 3.5, 3.7, 3.8, 6.0
    • +
    • GCC 4.8, 4.9, 5.4, 6.3, 7.5, 8.2, 8.3, 9.4, 10.2
    • +
    • 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-dev
    +
    +
    +

    The libmongoc-dev package includes headers required to build applications using libmongoc. To check which version is available, run apt-cache policy libmongoc-dev. To only install the libraries without headers, install the libmongoc-1.0-0 package.

    +

    On Fedora, a mongo-c-driver package is available in the default repositories and can be installed with:

    +
    $ dnf install mongo-c-driver-devel
    +
    +
    +

    The mongo-c-driver-devel package includes headers required to build applications using libmongoc. To check which version is available, see https://packages.fedoraproject.org/pkgs/mongo-c-driver/mongo-c-driver-devel. To only install the libraries without headers, install the mongo-c-driver package.

    +

    On recent Red Hat systems, such as CentOS and RHEL 7, a mongo-c-driver-devel package is available in the EPEL repository. The package can be installed with:

    +
    $ yum install mongo-c-driver-devel
    +
    +
    +

    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-dev
    +
    +
    +

    The libbson-dev package includes headers required to build applications using libbson. To check which version is available, run apt-cache policy libbson-dev. To only install the libraries without headers, install the libbson-1.0-0 package.

    +

    On Fedora, a libbson package is available in the default repositories and can be installed with:

    +
    $ dnf install libbson-devel
    +
    +
    +

    The libbson-devel package includes headers required to build applications using libbson. To check +which version is available, see https://packages.fedoraproject.org/pkgs/mongo-c-driver/libbson-devel. To only install the libraries without headers, install the libbson package.

    +

    On recent Red Hat systems, such as CentOS and RHEL 7, a libbson package is available in the EPEL repository. +The package can be installed with:

    +
    $ yum install libbson-devel
    +
    +
    +
    +
    +

    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.24.2/mongo-c-driver-1.24.2.tar.gz
    +$ tar xzf mongo-c-driver-1.24.2.tar.gz
    +$ cd mongo-c-driver-1.24.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.24.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.24.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.24.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.24.2/lifecycle.html b/libmongoc/1.24.2/lifecycle.html new file mode 100644 index 0000000000000000000000000000000000000000..0379d17f287a4400f58d811c52773ee6489cc71e --- /dev/null +++ b/libmongoc/1.24.2/lifecycle.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + Object Lifecycle — libmongoc 1.24.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.24.2/logging.html b/libmongoc/1.24.2/logging.html new file mode 100644 index 0000000000000000000000000000000000000000..235ddf3546a06821d8743597a9ea9ede9c06fca2 --- /dev/null +++ b/libmongoc/1.24.2/logging.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + Logging — libmongoc 1.24.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.24.2/manage-collection-indexes.html b/libmongoc/1.24.2/manage-collection-indexes.html new file mode 100644 index 0000000000000000000000000000000000000000..02012d3a201cefb116a23695ac99e1980896a08b --- /dev/null +++ b/libmongoc/1.24.2/manage-collection-indexes.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + Manage Collection Indexes — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Manage Collection Indexes

    +

    To create indexes on a MongoDB collection, use mongoc_collection_create_indexes_with_opts():

    +
    // `keys` represents an ascending index on field `x`.
    +bson_t *keys = BCON_NEW ("x", BCON_INT32 (1));
    +mongoc_index_model_t *im = mongoc_index_model_new (keys, NULL /* opts */);
    +if (mongoc_collection_create_indexes_with_opts (
    +       coll, &im, 1, NULL /* opts */, NULL /* reply */, &error)) {
    +   printf ("Successfully created index\n");
    +} else {
    +   bson_destroy (keys);
    +   HANDLE_ERROR ("Failed to create index: %s", error.message);
    +}
    +bson_destroy (keys);
    +
    +
    +

    To list indexes, use mongoc_collection_find_indexes_with_opts():

    +
    mongoc_cursor_t *cursor =
    +   mongoc_collection_find_indexes_with_opts (coll, NULL /* opts */);
    +printf ("Listing indexes:\n");
    +const bson_t *got;
    +while (mongoc_cursor_next (cursor, &got)) {
    +   char *got_str = bson_as_canonical_extended_json (got, NULL);
    +   printf ("  %s\n", got_str);
    +   bson_free (got_str);
    +}
    +if (mongoc_cursor_error (cursor, &error)) {
    +   mongoc_cursor_destroy (cursor);
    +   HANDLE_ERROR ("Failed to list indexes: %s", error.message);
    +}
    +mongoc_cursor_destroy (cursor);
    +
    +
    +

    To drop an index, use mongoc_collection_drop_index_with_opts(). The index name may be obtained from the keys document with mongoc_collection_keys_to_index_string():

    +
    bson_t *keys = BCON_NEW ("x", BCON_INT32 (1));
    +char *index_name = mongoc_collection_keys_to_index_string (keys);
    +if (mongoc_collection_drop_index_with_opts (
    +       coll, index_name, NULL /* opts */, &error)) {
    +   printf ("Successfully dropped index\n");
    +} else {
    +   bson_free (index_name);
    +   bson_destroy (keys);
    +   HANDLE_ERROR ("Failed to drop index: %s", error.message);
    +}
    +bson_free (index_name);
    +bson_destroy (keys);
    +
    +
    +

    For a full example, see example-manage-collection-indexes.c.

    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc-common-task-examples.html b/libmongoc/1.24.2/mongoc-common-task-examples.html new file mode 100644 index 0000000000000000000000000000000000000000..82edc6a487b0c95167beb6467d4693cd1b806d82 --- /dev/null +++ b/libmongoc/1.24.2/mongoc-common-task-examples.html @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + Common Tasks — libmongoc 1.24.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.24.2/mongoc_apm_callbacks_destroy.html b/libmongoc/1.24.2/mongoc_apm_callbacks_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..dfb92182eccf5d7e3d945343b197e29bbf10094f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_callbacks_destroy.html @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + mongoc_apm_callbacks_destroy() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_callbacks_new.html b/libmongoc/1.24.2/mongoc_apm_callbacks_new.html new file mode 100644 index 0000000000000000000000000000000000000000..0edc89ce120402db72cd4cb8bc37a8d0c0d140bd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_callbacks_new.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + mongoc_apm_callbacks_new() — libmongoc 1.24.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.24.2/mongoc_apm_callbacks_t.html b/libmongoc/1.24.2/mongoc_apm_callbacks_t.html new file mode 100644 index 0000000000000000000000000000000000000000..506c26f5492434c3bcfc6e70ac1239d894ee7fb8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_callbacks_t.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + mongoc_apm_callbacks_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_command_failed_get_command_name.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_command_name.html new file mode 100644 index 0000000000000000000000000000000000000000..2f2303556833b3dbf66150275917e98889cb44fd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_command_name.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_command_name() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_context.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..b622e6867bdaf1ab9d099577c50d4484225c5519 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_command_failed_get_duration.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..afb631d040845012d35242e2b6df0e31564d7985 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_duration.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_duration() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_error.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_error.html new file mode 100644 index 0000000000000000000000000000000000000000..4722500926e7733f83cf35d55693b32e3274f61a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_error.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_error() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_host.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..cc29f2d7d1ed6b405f0510d91092379f8cd49063 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_host.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_operation_id.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_operation_id.html new file mode 100644 index 0000000000000000000000000000000000000000..0e08a1279a5bb7bd4533202258b9c959f604f0b6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_operation_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_operation_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_reply.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..98501f16656615f82cf81d02ed086deced841607 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_reply.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_reply() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_request_id.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_request_id.html new file mode 100644 index 0000000000000000000000000000000000000000..66f13217f590377a5c6f5709922526af2a9b271f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_request_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_request_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_server_connection_id.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_server_connection_id.html new file mode 100644 index 0000000000000000000000000000000000000000..e0b4b9ce36a56bce1e61381aefa376a3cffbe6ca --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_server_connection_id.html @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_server_connection_id() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_server_connection_id()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.24.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_apm_command_failed_get_server_connection_id_int64() in new code.

    +
    +
    +
    +

    Synopsis

    +
    int32_t
    +mongoc_apm_command_failed_get_server_connection_id (
    +  const mongoc_apm_command_failed_t *event)
    +  BSON_GNUC_DEPRECATED_FOR (
    +      "mongoc_apm_command_failed_get_server_connection_id_int64");
    +
    +
    +

    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.24.2/mongoc_apm_command_failed_get_server_connection_id_int64.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_server_connection_id_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..5d436130fda5f84f3c4d0e3b1b838bb9aa32eb8a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_server_connection_id_int64.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_server_connection_id_int64() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_failed_get_server_connection_id_int64()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_failed_get_server_connection_id_int64 (
    +  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.24.2/mongoc_apm_command_failed_get_server_id.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..be961f9d6bc8e6f5393d18879caf18856b014040 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_server_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_server_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_get_service_id.html b/libmongoc/1.24.2/mongoc_apm_command_failed_get_service_id.html new file mode 100644 index 0000000000000000000000000000000000000000..df25cfb6be4be53a971afcecd1fd8dce36b55626 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_get_service_id.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_get_service_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_failed_t.html b/libmongoc/1.24.2/mongoc_apm_command_failed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..16b949c81a5ea83b9af52393f18970b19cb7de7d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_failed_t.html @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + mongoc_apm_command_failed_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_command_started_get_command.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_command.html new file mode 100644 index 0000000000000000000000000000000000000000..9fb908a5a07797acfde08db1860a43f72716d94a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_command.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_command() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_get_command_name.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_command_name.html new file mode 100644 index 0000000000000000000000000000000000000000..00837ef41a24d6de762c416b95d8667fad420c93 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_command_name.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_command_name() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_get_context.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..3e29ce2d00c38492f61b90765e728dd70c4b9b92 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_command_started_get_database_name.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_database_name.html new file mode 100644 index 0000000000000000000000000000000000000000..3a945d120bda755263f361c584f53b76e90252d1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_database_name.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_database_name() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_get_host.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..1e1470c9486ddc3c6851e6c1fab87a5d950c5b03 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_host.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_get_operation_id.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_operation_id.html new file mode 100644 index 0000000000000000000000000000000000000000..7f1a8a4f46739a64c1c3a57253ddd01f01f2118d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_operation_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_operation_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_get_request_id.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_request_id.html new file mode 100644 index 0000000000000000000000000000000000000000..8079b830dac67232bee4425f478870454413b07a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_request_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_request_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_get_server_connection_id.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_server_connection_id.html new file mode 100644 index 0000000000000000000000000000000000000000..0e3d03a01445034e1066bf07b7376d7ffaa67a69 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_server_connection_id.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_server_connection_id() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_server_connection_id()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.24.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_apm_command_started_get_server_connection_id_int64() in new code.

    +
    +
    +
    +

    Synopsis

    +
    int32_t
    +mongoc_apm_command_started_get_server_connection_id (
    +  const mongoc_apm_command_started_t *event)
    +  BSON_GNUC_DEPRECATED_FOR (
    +      "mongoc_apm_command_started_get_server_connection_id_int64");
    +
    +
    +

    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.24.2/mongoc_apm_command_started_get_server_connection_id_int64.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_server_connection_id_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..feab58bd076ca94c7e230045669482f1fb58e22b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_server_connection_id_int64.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_server_connection_id_int64() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_started_get_server_connection_id_int64()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_started_get_server_connection_id_int64 (
    +  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.24.2/mongoc_apm_command_started_get_server_id.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..c186a4483203bf9d3ea8810f63e567bcbf1f03f4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_server_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_server_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_get_service_id.html b/libmongoc/1.24.2/mongoc_apm_command_started_get_service_id.html new file mode 100644 index 0000000000000000000000000000000000000000..2a383c424255e428688df3cca6ccfd366510e092 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_get_service_id.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_get_service_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_started_t.html b/libmongoc/1.24.2/mongoc_apm_command_started_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9ed13a7a01be842d1bed0d837fc44d747ebd800e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_started_t.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_command_started_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_command_name.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_command_name.html new file mode 100644 index 0000000000000000000000000000000000000000..ebc207c3ca1f45964d266655ee6129bf0283c200 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_command_name.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_command_name() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_get_context.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..9c59ec7c64b18cc136135c9b097c36daa168da0f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_duration.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..18916054735910ad7a4f75567abda03834466d6a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_duration.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_duration() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_get_host.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..0f58bf76d52592a78d1b0a4cb1e94700533f8a96 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_host.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_get_operation_id.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_operation_id.html new file mode 100644 index 0000000000000000000000000000000000000000..a342b0a7e5d8610143f5d6772ccdbce05f4f7245 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_operation_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_operation_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_get_reply.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..bfb9a45e998e2eafa897a14e97ba7d8d3993d5ef --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_reply.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_reply() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_get_request_id.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_request_id.html new file mode 100644 index 0000000000000000000000000000000000000000..52af8079c7d48deea8d1d27dedb7cb37ed6e6da1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_request_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_request_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_get_server_connection_id.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_server_connection_id.html new file mode 100644 index 0000000000000000000000000000000000000000..edb8e1768f62b2a656549d92bb291b886106298e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_server_connection_id.html @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_server_connection_id() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_server_connection_id()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.24.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_apm_command_succeeded_get_server_connection_id_int64() in new code.

    +
    +
    +
    +

    Synopsis

    +
    int32_t
    +mongoc_apm_command_succeeded_get_server_connection_id (
    +  const mongoc_apm_command_succeeded_t *event)
    +  BSON_GNUC_DEPRECATED_FOR (
    +      "mongoc_apm_command_succeeded_get_server_connection_id_int64");
    +
    +
    +

    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.24.2/mongoc_apm_command_succeeded_get_server_connection_id_int64.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_server_connection_id_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..805df1149d5507916744ba9a8c829400ecf7b809 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_server_connection_id_int64.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_server_connection_id_int64() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_apm_command_succeeded_get_server_connection_id_int64()

    +
    +

    Synopsis

    +
    int64_t
    +mongoc_apm_command_succeeded_get_server_connection_id_int64 (
    +  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.24.2/mongoc_apm_command_succeeded_get_server_id.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..44fedca559b47a1586d871f58744fd5de44c75bb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_server_id.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_server_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_get_service_id.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_service_id.html new file mode 100644 index 0000000000000000000000000000000000000000..0eee79a1f04d26cf2c7a173de0b8b549bdf97baf --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_get_service_id.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_get_service_id() — libmongoc 1.24.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.24.2/mongoc_apm_command_succeeded_t.html b/libmongoc/1.24.2/mongoc_apm_command_succeeded_t.html new file mode 100644 index 0000000000000000000000000000000000000000..32b01d72d1daa70e0a0e86b7f164b78298c50927 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_command_succeeded_t.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + mongoc_apm_command_succeeded_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_changed_get_context.html b/libmongoc/1.24.2/mongoc_apm_server_changed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..976197c07dc6843f1ee76ea9e1ee4cf301743984 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_changed_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_changed_get_host.html b/libmongoc/1.24.2/mongoc_apm_server_changed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..b4e95d54a10e69894ce6d280330f5f6b4039ddaa --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_changed_get_host.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_server_changed_get_new_description.html b/libmongoc/1.24.2/mongoc_apm_server_changed_get_new_description.html new file mode 100644 index 0000000000000000000000000000000000000000..7257aecf9c7abd9ac6c396535fe88eeab225d244 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_changed_get_new_description.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_new_description() — libmongoc 1.24.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.24.2/mongoc_apm_server_changed_get_previous_description.html b/libmongoc/1.24.2/mongoc_apm_server_changed_get_previous_description.html new file mode 100644 index 0000000000000000000000000000000000000000..1f01bd8d96365e61c34799a049973e0fff8ee8f4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_changed_get_previous_description.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_previous_description() — libmongoc 1.24.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.24.2/mongoc_apm_server_changed_get_topology_id.html b/libmongoc/1.24.2/mongoc_apm_server_changed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..059ef8a889b181f73d1d4d60cef60326ca40fd26 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_changed_get_topology_id.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_get_topology_id() — libmongoc 1.24.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.24.2/mongoc_apm_server_changed_t.html b/libmongoc/1.24.2/mongoc_apm_server_changed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..aaa90fab844442d655ecd3203c9fdadeab42f71b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_changed_t.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_server_changed_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_closed_get_context.html b/libmongoc/1.24.2/mongoc_apm_server_closed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..b2955542506be55bcbc20d52ce127ab4a6d800a4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_closed_get_context.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_closed_get_host.html b/libmongoc/1.24.2/mongoc_apm_server_closed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..8dfbc7cc543ade305970083cb738e8dd35e3a35f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_closed_get_host.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_server_closed_get_topology_id.html b/libmongoc/1.24.2/mongoc_apm_server_closed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..562054c394d587e626dfae3e84e4884c55fe12ea --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_closed_get_topology_id.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_get_topology_id() — libmongoc 1.24.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.24.2/mongoc_apm_server_closed_t.html b/libmongoc/1.24.2/mongoc_apm_server_closed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..551240b287cdf795ed3d16bacfe1cba38bbfc7cf --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_closed_t.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + mongoc_apm_server_closed_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_awaited.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_awaited.html new file mode 100644 index 0000000000000000000000000000000000000000..e470eb2da87492000447e1debae8e7ea84349fad --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_awaited.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_awaited() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_failed_get_context.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..372ea60aa68cc1ab2fa72ecba1e6be8012792fab --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_duration.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..8a1344ed1f664e1f009e9112c243842ba5106867 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_duration.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_duration() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_failed_get_error.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_error.html new file mode 100644 index 0000000000000000000000000000000000000000..c785259a23649d43085b9c39d172f62eb663fe16 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_error.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_error() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_failed_get_host.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..63bbf6eca9747a0ccdae49ddfbae6768b8194c17 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_get_host.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_failed_t.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0a9cd8635812bd41e1f31523ff928eab50745e67 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_failed_t.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_failed_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_awaited.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_awaited.html new file mode 100644 index 0000000000000000000000000000000000000000..1cb6aa88ff7ec2aff5e6efbe1938273391f221f7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_awaited.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_get_awaited() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_started_get_context.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..47dc1d71ea35cf04ffa00278662972085d749673 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_host.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..2484d9177e4dac8d6dca8925d0ac2b3381219f5f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_get_host.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_started_t.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_t.html new file mode 100644 index 0000000000000000000000000000000000000000..718f9d840f56f1dacf878834b0483e03fef6c007 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_started_t.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_started_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_awaited.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_awaited.html new file mode 100644 index 0000000000000000000000000000000000000000..79b1307dd2be40fcae70155cfd3615e9fdb99418 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_awaited.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_awaited() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_succeeded_get_context.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..766b5c1f30c9fdfb64de63e484f53a14d0062413 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_duration.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_duration.html new file mode 100644 index 0000000000000000000000000000000000000000..08e01a2b1e18d8a3d4f7e4e90871a3b72867956a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_duration.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_duration() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_succeeded_get_host.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..39f5344eac90bc98d99159e0763964de8cc8a174 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_host.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_succeeded_get_reply.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..85c9601dfa6e08c4d924c84db4f46fac74a322d8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_get_reply.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_get_reply() — libmongoc 1.24.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.24.2/mongoc_apm_server_heartbeat_succeeded_t.html b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_t.html new file mode 100644 index 0000000000000000000000000000000000000000..604b87b11f0d0278931ccf440bc8d5ae6bd31fad --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_heartbeat_succeeded_t.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_server_heartbeat_succeeded_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_opening_get_context.html b/libmongoc/1.24.2/mongoc_apm_server_opening_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..5d6463225bcff37bc272be96e258c7de2c65ab3f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_opening_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_server_opening_get_host.html b/libmongoc/1.24.2/mongoc_apm_server_opening_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..728b417582befd7b4cfdff52d22b6196686de72d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_opening_get_host.html @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_get_host() — libmongoc 1.24.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.24.2/mongoc_apm_server_opening_get_topology_id.html b/libmongoc/1.24.2/mongoc_apm_server_opening_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..85a1a2fde2dd77c76cc62420ba309502c1a96e29 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_opening_get_topology_id.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_get_topology_id() — libmongoc 1.24.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.24.2/mongoc_apm_server_opening_t.html b/libmongoc/1.24.2/mongoc_apm_server_opening_t.html new file mode 100644 index 0000000000000000000000000000000000000000..cd419be1f5e4c5e92b089271586ed72264f5962e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_server_opening_t.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + mongoc_apm_server_opening_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_set_command_failed_cb.html b/libmongoc/1.24.2/mongoc_apm_set_command_failed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..7ea5eb8916638d6ae34beda4961fd01107219de6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_command_failed_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_command_failed_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_command_started_cb.html b/libmongoc/1.24.2/mongoc_apm_set_command_started_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..1e188af956fd6b28150be2dd1264d6762a9f12ac --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_command_started_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_command_started_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_command_succeeded_cb.html b/libmongoc/1.24.2/mongoc_apm_set_command_succeeded_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..95633e0838488c08ea90953bc3433496d3b6e607 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_command_succeeded_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_command_succeeded_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_server_changed_cb.html b/libmongoc/1.24.2/mongoc_apm_set_server_changed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..cb8893da86108ef3e3525d690297bbd5937993d3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_server_changed_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_changed_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_server_closed_cb.html b/libmongoc/1.24.2/mongoc_apm_set_server_closed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..fd7a9b32fbf1c4446da1b0d986271c71060efaa4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_server_closed_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_closed_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_server_heartbeat_failed_cb.html b/libmongoc/1.24.2/mongoc_apm_set_server_heartbeat_failed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..b579533bb5952f7830e11c855288474d8aa762f9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_server_heartbeat_failed_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_heartbeat_failed_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_server_heartbeat_started_cb.html b/libmongoc/1.24.2/mongoc_apm_set_server_heartbeat_started_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..bcdb77e67ab7211b8abab0306635f16cd9b8ecd1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_server_heartbeat_started_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_heartbeat_started_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_server_heartbeat_succeeded_cb.html b/libmongoc/1.24.2/mongoc_apm_set_server_heartbeat_succeeded_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..7d61533cc5fb4966dc5de2f385d2ee7c9e6973ae --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_server_heartbeat_succeeded_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_heartbeat_succeeded_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_server_opening_cb.html b/libmongoc/1.24.2/mongoc_apm_set_server_opening_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..1019e02d2b730fd0ac6ba3c49d29e9bdf0a47480 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_server_opening_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_server_opening_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_topology_changed_cb.html b/libmongoc/1.24.2/mongoc_apm_set_topology_changed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..bb07a8200a884633bbfde91cdce98df4705341bf --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_topology_changed_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_topology_changed_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_topology_closed_cb.html b/libmongoc/1.24.2/mongoc_apm_set_topology_closed_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..9f5af0bc7f0290c03e3d18781876de9d3737c154 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_topology_closed_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_topology_closed_cb() — libmongoc 1.24.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.24.2/mongoc_apm_set_topology_opening_cb.html b/libmongoc/1.24.2/mongoc_apm_set_topology_opening_cb.html new file mode 100644 index 0000000000000000000000000000000000000000..5468350bb69fd1988fd3a8cc3c25247c1f2e2330 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_set_topology_opening_cb.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_set_topology_opening_cb() — libmongoc 1.24.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.24.2/mongoc_apm_topology_changed_get_context.html b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..184a5ecea5daf23ef68f4390cba5cedaac0e26fe --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_topology_changed_get_new_description.html b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_new_description.html new file mode 100644 index 0000000000000000000000000000000000000000..cd1a3a32da145832a40e93b335309950f6013370 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_new_description.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_new_description() — libmongoc 1.24.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.24.2/mongoc_apm_topology_changed_get_previous_description.html b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_previous_description.html new file mode 100644 index 0000000000000000000000000000000000000000..46155ca7d4ecbafa545812807245855cd8f5beb2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_previous_description.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_previous_description() — libmongoc 1.24.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.24.2/mongoc_apm_topology_changed_get_topology_id.html b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..1e8d5364c3281e551663bd53a76c458a601926a9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_changed_get_topology_id.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_get_topology_id() — libmongoc 1.24.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.24.2/mongoc_apm_topology_changed_t.html b/libmongoc/1.24.2/mongoc_apm_topology_changed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..d2c3f4304cbb08a4bfa8564a8eb133952affd2e1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_changed_t.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + mongoc_apm_topology_changed_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_topology_closed_get_context.html b/libmongoc/1.24.2/mongoc_apm_topology_closed_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..d56772699cb24bcfcf042a1a91ad25643b651a33 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_closed_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_topology_closed_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_topology_closed_get_topology_id.html b/libmongoc/1.24.2/mongoc_apm_topology_closed_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..a264c4939fb379639800a37006181627dbbf3d11 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_closed_get_topology_id.html @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + mongoc_apm_topology_closed_get_topology_id() — libmongoc 1.24.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.24.2/mongoc_apm_topology_closed_t.html b/libmongoc/1.24.2/mongoc_apm_topology_closed_t.html new file mode 100644 index 0000000000000000000000000000000000000000..7855993928ba0eae1eb29b96ec10f13bc3ef80a0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_closed_t.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + mongoc_apm_topology_closed_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_topology_opening_get_context.html b/libmongoc/1.24.2/mongoc_apm_topology_opening_get_context.html new file mode 100644 index 0000000000000000000000000000000000000000..8f3b52a876c3e53f1224ffb8795cacff2c40d45d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_opening_get_context.html @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + mongoc_apm_topology_opening_get_context() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_apm_topology_opening_get_topology_id.html b/libmongoc/1.24.2/mongoc_apm_topology_opening_get_topology_id.html new file mode 100644 index 0000000000000000000000000000000000000000..1af46da195e1db967ec01384a431fee89052ae99 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_opening_get_topology_id.html @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + mongoc_apm_topology_opening_get_topology_id() — libmongoc 1.24.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.24.2/mongoc_apm_topology_opening_t.html b/libmongoc/1.24.2/mongoc_apm_topology_opening_t.html new file mode 100644 index 0000000000000000000000000000000000000000..11629a5467b5e08ac58995c13e226c0c82a57f7c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_apm_topology_opening_t.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + mongoc_apm_topology_opening_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_auto_encryption_opts_destroy.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..d3e20d83b39a1b5cb92fe83b66ebbf11c8a9bfdf --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_destroy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_destroy() — libmongoc 1.24.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.24.2/mongoc_auto_encryption_opts_new.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..c12429a30ca51e294e87aab7886c568b7b1283b8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_new.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_new() — libmongoc 1.24.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().

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..a462c43f9685c03fb1edad284644eaf199351435 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_bypass_auto_encryption.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_bypass_auto_encryption() — libmongoc 1.24.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.24.2/mongoc_auto_encryption_opts_set_bypass_query_analysis.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_bypass_query_analysis.html new file mode 100644 index 0000000000000000000000000000000000000000..2b727e1b2b8e1a59b6ccfd63411f51b247c6b5fe --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_bypass_query_analysis.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_bypass_query_analysis() — libmongoc 1.24.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);
    +
    +
    +
    +

    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.24.2/mongoc_auto_encryption_opts_set_encrypted_fields_map.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_encrypted_fields_map.html new file mode 100644 index 0000000000000000000000000000000000000000..1d04c32466548f715ebbf850a38f974ed9bcd843 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_encrypted_fields_map.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_encrypted_fields_map() — libmongoc 1.24.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);
    +
    +
    +
    +

    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.

    +

    The schema map does not apply to collections encrypted with: Client-Side Field Level Encryption. See mongoc_auto_encryption_opts_set_schema_map() instead.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_extra.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_extra.html new file mode 100644 index 0000000000000000000000000000000000000000..7518a75f724f98f4ad6cff172d7096730fc8be04 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_extra.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_extra() — libmongoc 1.24.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.

      +
    • +
    +
    +

    See also

    + + +
    +
    MongoDB Manual documentation for crypt_shared: Automatic Encryption Shared Library
    +
    +
    +
    MongoDB Manual documentation for mongocryptd: Install and Configure mongocryptd
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_keyvault_client.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_keyvault_client.html new file mode 100644 index 0000000000000000000000000000000000000000..351e08c0ce57469e5199b2be162938e064a893ba --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_keyvault_client.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_keyvault_client() — libmongoc 1.24.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.24.2/mongoc_auto_encryption_opts_set_keyvault_client_pool.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_keyvault_client_pool.html new file mode 100644 index 0000000000000000000000000000000000000000..9bed6d941ebdb5e2dcf50f3b9b95d6437354ff1f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_keyvault_client_pool.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_keyvault_client_pool() — libmongoc 1.24.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.24.2/mongoc_auto_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_keyvault_namespace.html new file mode 100644 index 0000000000000000000000000000000000000000..d2c6400e12e243bb2c470811027daec9851597c0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_keyvault_namespace.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_keyvault_namespace() — libmongoc 1.24.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 In-Use 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.24.2/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html new file mode 100644 index 0000000000000000000000000000000000000000..3838972b5e82d4b61b8509607c4874631778163f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_kms_credential_provider_callback.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_kms_credential_provider_callback() — libmongoc 1.24.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.24.2/mongoc_auto_encryption_opts_set_kms_providers.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_kms_providers.html new file mode 100644 index 0000000000000000000000000000000000000000..f9c8e95fdc12b6b8b3d55dedd026aa288708dc06 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_kms_providers.html @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_kms_providers() — libmongoc 1.24.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.24.2/mongoc_auto_encryption_opts_set_schema_map.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_schema_map.html new file mode 100644 index 0000000000000000000000000000000000000000..0954f6794c0d7c35c43af6042ea39ebc81717c7b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_schema_map.html @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_schema_map() — libmongoc 1.24.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 Field Level 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"
    +     }
    + }
    +
    +
    +

    The schema map does not apply to collections encrypted with: Queryable Encryption. Use mongoc_auto_encryption_opts_set_encrypted_fields_map() instead.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_tls_opts.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_tls_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..da039eeee7c3ebc416da1e8e1b92933e03910e86 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_set_tls_opts.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_set_tls_opts() — libmongoc 1.24.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.24.2/mongoc_auto_encryption_opts_t.html b/libmongoc/1.24.2/mongoc_auto_encryption_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5d1422a229b01d4c608ad0753ac8e142307b560a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_auto_encryption_opts_t.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_auto_encryption_opts_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_bulk_operation_delete.html b/libmongoc/1.24.2/mongoc_bulk_operation_delete.html new file mode 100644 index 0000000000000000000000000000000000000000..a6a24cbfc41f95a50b352938702dea043070a66c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_delete.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_delete() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_delete()

    +
    +

    Warning

    +
    +

    Deprecated since version 0.96.0.

    +
    +

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

    +

    Please use mongoc_bulk_operation_remove() in new code.

    +
    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_delete (mongoc_bulk_operation_t *bulk,
    +                              const bson_t *selector)
    +  BSON_GNUC_DEPRECATED_FOR (mongoc_bulk_operation_remove);
    +
    +
    +

    Deletes documents as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +
    +
    +

    Parameters

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_bulk_operation_delete_one.html b/libmongoc/1.24.2/mongoc_bulk_operation_delete_one.html new file mode 100644 index 0000000000000000000000000000000000000000..16c69d14f7352be739436c0323eed9fdd936fd7c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_delete_one.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_delete_one() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_bulk_operation_delete_one()

    +
    +

    Warning

    +
    +

    Deprecated since version 0.96.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_bulk_operation_remove_one() in new code.

    +
    +
    +
    +

    Synopsis

    +
    void
    +mongoc_bulk_operation_delete_one (mongoc_bulk_operation_t *bulk,
    +                                  const bson_t *selector)
    +  BSON_GNUC_DEPRECATED_FOR (mongoc_bulk_operation_remove_one);
    +
    +
    +

    Delete a single document as part of a bulk operation. This only queues the operation. To execute it, call mongoc_bulk_operation_execute().

    +
    +
    +

    Parameters

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_bulk_operation_destroy.html b/libmongoc/1.24.2/mongoc_bulk_operation_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..0bcd9c3e67fe6a7e65f308cc08d61e548fff4437 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_destroy.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_destroy() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_execute.html b/libmongoc/1.24.2/mongoc_bulk_operation_execute.html new file mode 100644 index 0000000000000000000000000000000000000000..a226da6fa95e20cd9095e55b4e194f246d88b1f1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_execute.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_execute() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_get_hint.html b/libmongoc/1.24.2/mongoc_bulk_operation_get_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..ee7a75560b8953a88716d4ec14d71c4ab56d1113 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_get_hint.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_get_hint() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_get_write_concern.html b/libmongoc/1.24.2/mongoc_bulk_operation_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..b978f986227037f02b9dc4cfc5d28c5a4305b252 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_get_write_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_get_write_concern() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_insert.html b/libmongoc/1.24.2/mongoc_bulk_operation_insert.html new file mode 100644 index 0000000000000000000000000000000000000000..dab80c8e43a6bd39f47b7f7e169055a638385344 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_insert.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_insert() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_insert_with_opts.html b/libmongoc/1.24.2/mongoc_bulk_operation_insert_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..716e36389be850757c8394b109d6c3b344814e5b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_insert_with_opts.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_insert_with_opts() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_remove.html b/libmongoc/1.24.2/mongoc_bulk_operation_remove.html new file mode 100644 index 0000000000000000000000000000000000000000..0cdffa22bf100c4c3fdc4d70b89f30f1ed6678e2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_remove.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove() — libmongoc 1.24.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

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_bulk_operation_remove_many_with_opts.html b/libmongoc/1.24.2/mongoc_bulk_operation_remove_many_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..c907eb0eae778a5da296dcf031bb6b5bfe14a25f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_remove_many_with_opts.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove_many_with_opts() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_remove_one.html b/libmongoc/1.24.2/mongoc_bulk_operation_remove_one.html new file mode 100644 index 0000000000000000000000000000000000000000..f74208df1a7a0a5fff5a73d986558ce8310ba5a7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_remove_one.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove_one() — libmongoc 1.24.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

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_bulk_operation_remove_one_with_opts.html b/libmongoc/1.24.2/mongoc_bulk_operation_remove_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..c7a732146dbc74959be1f8f04f9e2db3d099717b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_remove_one_with_opts.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_remove_one_with_opts() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_replace_one.html b/libmongoc/1.24.2/mongoc_bulk_operation_replace_one.html new file mode 100644 index 0000000000000000000000000000000000000000..6a0a2c7c976c5715ca01b90447737e7f5b174931 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_replace_one.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_replace_one() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_replace_one_with_opts.html b/libmongoc/1.24.2/mongoc_bulk_operation_replace_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..aca0c182d8af66fe224264bb1ad68baaa16864ba --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_replace_one_with_opts.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_replace_one_with_opts() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_set_bypass_document_validation.html b/libmongoc/1.24.2/mongoc_bulk_operation_set_bypass_document_validation.html new file mode 100644 index 0000000000000000000000000000000000000000..b56addf3ca33ca5bdadcbdee279c50490d8231b2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_set_bypass_document_validation.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_bypass_document_validation() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_set_client_session.html b/libmongoc/1.24.2/mongoc_bulk_operation_set_client_session.html new file mode 100644 index 0000000000000000000000000000000000000000..fab8beaa40bb4b063d241e6390c0babf3083fccc --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_set_client_session.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_client_session() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_set_comment.html b/libmongoc/1.24.2/mongoc_bulk_operation_set_comment.html new file mode 100644 index 0000000000000000000000000000000000000000..315f054da284f24b4aca86a0b220368ac4757f39 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_set_comment.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_comment() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_set_hint.html b/libmongoc/1.24.2/mongoc_bulk_operation_set_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..bd9506ff3d981ce3b3a636d904ffb4336a2be743 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_set_hint.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_hint() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_set_let.html b/libmongoc/1.24.2/mongoc_bulk_operation_set_let.html new file mode 100644 index 0000000000000000000000000000000000000000..7faef6d53e8ee7cde23b3699657d5348af8a2261 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_set_let.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_set_let() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_t.html b/libmongoc/1.24.2/mongoc_bulk_operation_t.html new file mode 100644 index 0000000000000000000000000000000000000000..e038910090f0a11a5c93d0aef7929388850c12e7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_t.html @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_bulk_operation_update.html b/libmongoc/1.24.2/mongoc_bulk_operation_update.html new file mode 100644 index 0000000000000000000000000000000000000000..05c344fa49d355f7706c4a93cfa32e4356899884 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_update.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update() — libmongoc 1.24.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.
    • +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_bulk_operation_update_many_with_opts.html b/libmongoc/1.24.2/mongoc_bulk_operation_update_many_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..abb64502de1793f8506d7d5664b4083a49d0cc79 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_update_many_with_opts.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update_many_with_opts() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_update_one.html b/libmongoc/1.24.2/mongoc_bulk_operation_update_one.html new file mode 100644 index 0000000000000000000000000000000000000000..bbdce3eefa1a978093b887d1c0c80153f21d9d3c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_update_one.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update_one() — libmongoc 1.24.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.24.2/mongoc_bulk_operation_update_one_with_opts.html b/libmongoc/1.24.2/mongoc_bulk_operation_update_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..25baa33b5539d59a39bc04620c0315c584177c3a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_bulk_operation_update_one_with_opts.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_bulk_operation_update_one_with_opts() — libmongoc 1.24.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.24.2/mongoc_change_stream_destroy.html b/libmongoc/1.24.2/mongoc_change_stream_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..250ad863f7f7f3efe1dfc0b8c6dfc01c105f5fca --- /dev/null +++ b/libmongoc/1.24.2/mongoc_change_stream_destroy.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_change_stream_destroy() — libmongoc 1.24.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.24.2/mongoc_change_stream_error_document.html b/libmongoc/1.24.2/mongoc_change_stream_error_document.html new file mode 100644 index 0000000000000000000000000000000000000000..6d7792aeadc45ef2980ec9086379772debd27141 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_change_stream_error_document.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_change_stream_error_document() — libmongoc 1.24.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.24.2/mongoc_change_stream_get_resume_token.html b/libmongoc/1.24.2/mongoc_change_stream_get_resume_token.html new file mode 100644 index 0000000000000000000000000000000000000000..82ca6193b0b789b66823ffbc70e80363bd061406 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_change_stream_get_resume_token.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_change_stream_get_resume_token() — libmongoc 1.24.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.24.2/mongoc_change_stream_next.html b/libmongoc/1.24.2/mongoc_change_stream_next.html new file mode 100644 index 0000000000000000000000000000000000000000..8f5267b69dab457fa4838ae741602c76ceda994d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_change_stream_next.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_change_stream_next() — libmongoc 1.24.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.24.2/mongoc_change_stream_t.html b/libmongoc/1.24.2/mongoc_change_stream_t.html new file mode 100644 index 0000000000000000000000000000000000000000..148d1864dcb32cc0d5dfc3bbb1ffe094ce3ed946 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_change_stream_t.html @@ -0,0 +1,575 @@ + + + + + + + + + + + + + + mongoc_change_stream_t — libmongoc 1.24.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 (void)
    +{
    +   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 (void)
    +{
    +   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 (void)
    +{
    +   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;
    +}
    +
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_check_version.html b/libmongoc/1.24.2/mongoc_check_version.html new file mode 100644 index 0000000000000000000000000000000000000000..1706c114db2d568f2ffa548b9fee59f65021c255 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_check_version.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_check_version() — libmongoc 1.24.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.24.2/mongoc_cleanup.html b/libmongoc/1.24.2/mongoc_cleanup.html new file mode 100644 index 0000000000000000000000000000000000000000..fe4000177a0f200c62cc28b817a1d1e60b751934 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cleanup.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_cleanup() — libmongoc 1.24.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.24.2/mongoc_client_command.html b/libmongoc/1.24.2/mongoc_client_command.html new file mode 100644 index 0000000000000000000000000000000000000000..07af51489514157e3658199ce7bbd378286efa20 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_command.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_client_command() — libmongoc 1.24.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.24.2/mongoc_client_command_simple.html b/libmongoc/1.24.2/mongoc_client_command_simple.html new file mode 100644 index 0000000000000000000000000000000000000000..41cfb370aab674e13c1a2e3a048912a8dd4f3880 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_command_simple.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_client_command_simple() — libmongoc 1.24.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.24.2/mongoc_client_command_simple_with_server_id.html b/libmongoc/1.24.2/mongoc_client_command_simple_with_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..c0e03964409d3195c3675e8bfee54c43861eae12 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_command_simple_with_server_id.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_client_command_simple_with_server_id() — libmongoc 1.24.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.24.2/mongoc_client_command_with_opts.html b/libmongoc/1.24.2/mongoc_client_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..f053019ce68133834e04923c18978508e025cd24 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_command_with_opts.html @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + mongoc_client_command_with_opts() — libmongoc 1.24.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 PreferencesRead ConcernWrite ConcernCollation
    read_prefsoptsoptsopts
    TransactionTransactionTransaction 
    +

    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.24.2/mongoc_client_destroy.html b/libmongoc/1.24.2/mongoc_client_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..55724acd78c9325901946c6a3c02b16618eb3bc5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_destroy.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_client_destroy() — libmongoc 1.24.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.24.2/mongoc_client_enable_auto_encryption.html b/libmongoc/1.24.2/mongoc_client_enable_auto_encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..4165f4183fa891143aa238a03992e4812b8ce851 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_enable_auto_encryption.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_client_enable_auto_encryption() — libmongoc 1.24.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 In-Use Encryption on a mongoc_client_t. Requires libmongoc to be built with support for In-Use Encryption. See In-Use Encryption for instructions to enable In-Use Encryption in libmongoc.

    +

    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.

    +
    +

    See also

    + + +
    +
    In-Use Encryption for libmongoc
    +
    +
    +
    The MongoDB Manual for Client-Side Field Level Encryption
    +
    +
    +
    The MongoDB Manual for Queryable Encryption
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_add_key_alt_name.html b/libmongoc/1.24.2/mongoc_client_encryption_add_key_alt_name.html new file mode 100644 index 0000000000000000000000000000000000000000..0d9648d5d8c875873d7bf87ee4d1f4b244106665 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_add_key_alt_name.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_client_encryption_add_key_alt_name() — libmongoc 1.24.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.24.2/mongoc_client_encryption_create_datakey.html b/libmongoc/1.24.2/mongoc_client_encryption_create_datakey.html new file mode 100644 index 0000000000000000000000000000000000000000..eb1101218335ae70c33fb4d9114e690657b6c509 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_create_datakey.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_client_encryption_create_datakey() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_create_datakey()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_create_datakey (
    +   mongoc_client_encryption_t *client_encryption,
    +   const char *kms_provider,
    +   const 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.24.2/mongoc_client_encryption_create_encrypted_collection.html b/libmongoc/1.24.2/mongoc_client_encryption_create_encrypted_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..8ce124c238937994195a4e8245e57760bd331c8d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_create_encrypted_collection.html @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + mongoc_client_encryption_create_encrypted_collection() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_create_encrypted_collection()

    +
    +

    Synopsis

    +
    mongoc_collection_t*
    +mongoc_client_encryption_create_encrypted_collection (
    +      mongoc_client_encryption_t *enc,
    +      mongoc_database_t *database,
    +      const char *name,
    +      const bson_t *in_options,
    +      bson_t *out_options,
    +      const char *kms_provider,
    +      const bson_t *opt_masterKey,
    +      bson_error_t *error)
    +  BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +

    Create a new collection with Queryable Encryption +enabled. Requires a valid mongoc_client_encryption_t object to +operate.

    +
    +

    New in version 1.24.0.

    +
    +
    +

    See also

    +

    This function is a convenience API wrapping +mongoc_database_create_collection().

    +
    +
    +
    +

    Parameters

    +
      +
    • enc: The mongoc_client_encryption_t to be used to configure +encryption for the new collection.
    • +
    • database: The mongoc_database_t in which the new collection will +be created.
    • +
    • name: The name of the new collection.
    • +
    • in_options: The options for the new collection. (See below).
    • +
    • out_options: An optional output option for the final create-collection +options. Should point to storage for a bson_t. The pointed-to object +must be destroyed by the caller. If NULL, has no effect.
    • +
    • kms_provider: The name of the KMS provider to use for generating new data +encryption keys for encrypted fields within the collection.
    • +
    • opt_masterKey: If provided, used as the masterkey option when data +encryption keys need to be created. (See: +mongoc_client_encryption_datakey_opts_set_masterkey())
    • +
    • error: Optional output parameter pointing to storage for a +bson_error_t. If an error occurs, will be initialized with error +information.
    • +
    +
    +
    +

    Returns

    +

    If successful, this function returns a new mongoc_collection_t object. +Upon failure, returns NULL and initializes *error with an error +indicating the reason for failure. The returned collection object must be freed +by the caller.

    +
    +
    +

    Creation Options

    +

    The in_options parameter behaves similarly to the opts parameter for +mongoc_database_create_collection(), which accepts the options for the +create MongoDB command +(Documented here). +The in_options document accepted here is different in one important way:

    +

    The $.encryptedFields.fields array is required by this function, and, +unlike the schema documented for the create command, accepts a value of +null for the keyId parameter on each array element.

    +

    This function has the following as-if effect:

    +
      +
    1. A new set of options \(O\) will be created based on in_options.
    2. +
    3. For each element \(F\) in the $.encryptedFields.fields array of \(O\):
        +
      1. If \(F\) contains a "keyId": null element, a new data encryption key +\(K_f\) will be created as-if by calling the +mongoc_client_encryption_create_datakey(), using the relevant +arguments that were given to +mongoc_client_encryption_create_encrypted_collection.
      2. +
      3. The ID of \(K_f\) will be used to replace the "keyId": null element +within \(F\).
      4. +
      +
    4. +
    5. A collection will be created using the options \(O\).
    6. +
    7. If out_options is not NULL, \(O\) will be written to +out_options.
    8. +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_destroy.html b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..0f1cfb1578e763d138152b66f32ffa8d87596ded --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_destroy.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_destroy() — libmongoc 1.24.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.24.2/mongoc_client_encryption_datakey_opts_new.html b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..b645ef815152be3b5ac7111db37efe7393591edd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_new.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_new() — libmongoc 1.24.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;
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_set_keyaltnames.html b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_set_keyaltnames.html new file mode 100644 index 0000000000000000000000000000000000000000..e9f8af39da8aa26bfa38cb521f3ed218584c3a33 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_set_keyaltnames.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_set_keyaltnames() — libmongoc 1.24.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.24.2/mongoc_client_encryption_datakey_opts_set_keymaterial.html b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_set_keymaterial.html new file mode 100644 index 0000000000000000000000000000000000000000..35cfef96ca6b94288dd9b7ac64ecbfc2b8dae752 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_set_keymaterial.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_set_keymaterial() — libmongoc 1.24.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.24.2/mongoc_client_encryption_datakey_opts_set_masterkey.html b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_set_masterkey.html new file mode 100644 index 0000000000000000000000000000000000000000..cf8d06fcba1080dfeeb65c443decb09b60e63a0d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_set_masterkey.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_set_masterkey() — libmongoc 1.24.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.24.2/mongoc_client_encryption_datakey_opts_t.html b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1bd2babd00b1afa80b8eb95e3898458c2ef05229 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_datakey_opts_t.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_encryption_datakey_opts_t — libmongoc 1.24.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().

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_decrypt.html b/libmongoc/1.24.2/mongoc_client_encryption_decrypt.html new file mode 100644 index 0000000000000000000000000000000000000000..cbbda8c90a5d6cb9399b9fe628e169a760c76d5c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_decrypt.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_decryption_decrypt() — libmongoc 1.24.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.24.2/mongoc_client_encryption_delete_key.html b/libmongoc/1.24.2/mongoc_client_encryption_delete_key.html new file mode 100644 index 0000000000000000000000000000000000000000..e237edb4d43aa672d082abf03c65fe7bb591e485 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_delete_key.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_client_encryption_delete_key() — libmongoc 1.24.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.24.2/mongoc_client_encryption_destroy.html b/libmongoc/1.24.2/mongoc_client_encryption_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..8d3c96105cce1b890e1c03a56f6a4b70ef3babe9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_destroy.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_client_encryption_destroy() — libmongoc 1.24.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.24.2/mongoc_client_encryption_encrypt.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt.html new file mode 100644 index 0000000000000000000000000000000000000000..7970392118d17721d5dd221770580913374be2d7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt() — libmongoc 1.24.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” or “RangePreview” 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 "RangePreview" payload type is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.. The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes.

    +

    To insert with a RangePreview payload +mongoc_client_encryption_encrypt_range_opts_t must be set in opts.

    +

    To query with a RangePreview payload, use mongoc_client_encryption_encrypt_expression()

    +

    NOTE that the Range algorithm is experimental only and not intended for public use. It is subject to breaking changes.

    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_expression.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_expression.html new file mode 100644 index 0000000000000000000000000000000000000000..ec19b825cd90fa12f68d3a9079361320e7eb5b60 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_expression.html @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_expression() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_expression()

    +
    +

    Synopsis

    +
    bool
    +mongoc_client_encryption_encrypt_expression (
    +   mongoc_client_encryption_t *client_encryption,
    +   const bson_t *expr,
    +   mongoc_client_encryption_encrypt_opts_t *opts,
    +   bson_t *expr_out,
    +   bson_error_t *error);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    Encrypts a Match Expression or Aggregate Expression to query a range index.

    +

    To query with a RangePreview 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().

    +

    To query with a RangePreview payload, expr must be one of the following forms:

    +
      +
    1. A Match Expression of the following form:

      +
      // $gt may also be $gte. $lt may also be $lte.
      +// Can include one of $gt/$gte/$lt/$lte. It is not required to include both.
      +{"$and": [{"<field>": {"$gt": "<value1>"}}, {"<field>": {"$lt": "<value2>" }}]}
      +
      +
      +
    2. +
    3. An Aggregation Expression of this form:

      +
      // $gt may also be $gte. $lt may also be $lte
      +// Can include one of $gt/$gte/$lt/$lte. It is not required to include both.
      +{"$and": [{"$gt": ["<fieldpath>", "<value1>"]}, {"$lt": ["<fieldpath>", "<value2>"]}]
      +
      +
      +
    4. +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    Returns true if successful. Returns false and sets error otherwise.

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_destroy.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..98f8a852aa3f6fd9af8148682cb4c93eeebd29de --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_destroy.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_destroy() — libmongoc 1.24.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.24.2/mongoc_client_encryption_encrypt_opts_new.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..5aceab06b6287d5f30a1f61d78dbf2e6c1f84107 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_new.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_new() — libmongoc 1.24.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;
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_algorithm.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_algorithm.html new file mode 100644 index 0000000000000000000000000000000000000000..75b5837dab5eda3761661725e4bfdbc043be7de0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_algorithm.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_algorithm() — libmongoc 1.24.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"
    +// (Experimental: See below)
    +#define MONGOC_ENCRYPT_ALGORITHM_RANGEPREVIEW "RangePreview"
    +
    +
    +

    Identifies the algorithm to use for encryption. Valid values of algorithm are:

    +

    "AEAD_AES_256_CBC_HMAC_SHA_512-Random"

    +
    +
    for randomized encryption. Specific to the Client-Side Field Level Encryption feature.
    +

    "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"

    +
    +
    for deterministic (queryable) encryption. Specific to the Client-Side Field Level Encryption feature.
    +

    "Indexed"

    +
    +
    for indexed encryption. Specific to the Queryable Encryption feature.
    +

    "Unindexed"

    +
    +
    for unindexed encryption. Specific to the Queryable Encryption feature.
    +

    "RangePreview"

    +
    +

    for range encryption. Specific to the Queryable Encryption feature.

    +
    +

    Note

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. 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.24.2/mongoc_client_encryption_encrypt_opts_set_contention_factor.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_contention_factor.html new file mode 100644 index 0000000000000000000000000000000000000000..19a81001b6ad5984f8e5d6348437198d80a2dda8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_contention_factor.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_contention_factor() — libmongoc 1.24.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);
    +
    +
    +
    +

    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” or “RangePreview”. +It is an error to set the contention factor when algorithm is not “Indexed” or “RangePreview”. Note that the Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. +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.24.2/mongoc_client_encryption_encrypt_opts_set_keyaltname.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_keyaltname.html new file mode 100644 index 0000000000000000000000000000000000000000..99ce1f15258c9ea17bf9a6ad7d87f5056692e88f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_keyaltname.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_keyaltname() — libmongoc 1.24.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.24.2/mongoc_client_encryption_encrypt_opts_set_keyid.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_keyid.html new file mode 100644 index 0000000000000000000000000000000000000000..56f87e20272ea37b876752d535ddc513cf3809e3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_keyid.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_keyid() — libmongoc 1.24.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.24.2/mongoc_client_encryption_encrypt_opts_set_query_type.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_query_type.html new file mode 100644 index 0000000000000000000000000000000000000000..e8dce61ca14b14ed30802e5fdcbcb278445fb489 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_query_type.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_query_type() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_set_query_type()

    +
    +

    Synopsis

    +
    #define MONGOC_ENCRYPT_QUERY_TYPE_EQUALITY "equality"
    +#define MONGOC_ENCRYPT_QUERY_TYPE_RANGEPREVIEW "rangePreview"
    +
    +MONGOC_EXPORT (void)
    + mongoc_client_encryption_encrypt_opts_set_query_type (
    +     mongoc_client_encryption_encrypt_opts_t *opts, const char* query_type);
    +
    +
    +
    +

    New in version 1.22.0.

    +
    +

    Sets a query type for explicit encryption. Currently, the supported values +for query_type are "equality" and "rangePreview". NOTE that the Range algorithm is experimental only and not intended for public use. It is subject to breaking changes.

    +

    Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “Indexed” or “RangePreview”. +It is an error to set the query type when algorithm is not “Indexed” or “RangePreview”.

    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_range_opts.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_range_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..2c6ad04121add98e057b0cf300591610ae4407bb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_set_range_opts.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_set_range_opts() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_opts_set_range_opts()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_opts_set_range_opts (
    +      mongoc_client_encryption_encrypt_opts_t *opts,
    +      const mongoc_client_encryption_encrypt_range_opts_t *range_opts);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    Sets the range_opts for explicit encryption. +Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “RangePreview”. +It is an error to set range_opts when algorithm is not “RangePreview”.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_t.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..7e44970f9e42eee444e7af827d6ccfca3e062b2e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_opts_t.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_opts_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_destroy.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..e0a469a5fa4347625186525fd45b23ca588fb71b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_destroy.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_range_opts_destroy() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_range_opts_destroy()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_range_opts_destroy (mongoc_client_encryption_encrypt_range_opts_t *range_opts);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    Frees resources of a mongoc_client_encryption_encrypt_range_opts_t created with mongoc_client_encryption_encrypt_range_opts_new(). Does nothing if NULL is passed.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_new.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..7333701b7992a553b2520f4faa10d4dc191a2f42 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_new.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_range_opts_new() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_range_opts_new()

    +
    +

    Synopsis

    +
    mongoc_client_encryption_encrypt_range_opts_t *
    +mongoc_client_encryption_encrypt_range_opts_new (void);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_max.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_max.html new file mode 100644 index 0000000000000000000000000000000000000000..aa628eb599ac04fdcb816fff2229ce1d853ec440 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_max.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_range_opts_set_max() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_range_opts_set_max()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_range_opts_set_max (
    +     mongoc_client_encryption_encrypt_range_opts_t *range_opts,
    +     const bson_value_t *max);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    Sets the maximum value of the range for explicit encryption. +Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “RangePreview”. +It is an error to set maximum when algorithm is not “RangePreview”.

    +

    The maximum must match the value set in the encryptedFields of the destination collection. +It is an error to set a different value.

    +

    For double and decimal128 fields, max/max/precision must all be set, or all be unset.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_min.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_min.html new file mode 100644 index 0000000000000000000000000000000000000000..61b2ab7bd66404f4991d82184acebfbb5a06106c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_min.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_range_opts_set_min() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_range_opts_set_min()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_range_opts_set_min (
    +     mongoc_client_encryption_encrypt_range_opts_t *range_opts,
    +     const bson_value_t *min);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    Sets the minimum value of the range for explicit encryption. +Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “RangePreview”. +It is an error to set minimum when algorithm is not “RangePreview”.

    +

    The minimum must match the value set in the encryptedFields of the destination collection. +It is an error to set a different value.

    +

    For double and decimal128 fields, min/max/precision must all be set, or all be unset.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_precision.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_precision.html new file mode 100644 index 0000000000000000000000000000000000000000..f7972da90f49172db699c5ffa0815ac8d358c8a2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_precision.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_range_opts_set_precision() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_range_opts_set_precision()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_range_opts_set_precision (
    +     mongoc_client_encryption_encrypt_range_opts_t *range_opts, int32_t precision);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    Sets precision for explicit encryption. +Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “RangePreview”. +It is an error to set precision when algorithm is not “RangePreview”.

    +

    Precision can only be set with double or decimal128 fields. +It is an error to set precision if the type of the encryptedFields in the destination collection is not double or decimal128.

    +

    For double and decimal128 fields, min/max/precision must all be set, or all be unset.

    +

    Precision must match the value set in the encryptedFields of the destination collection. +It is an error to set a different value.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html new file mode 100644 index 0000000000000000000000000000000000000000..b060d0f2a273015449fedb6ee8240d224ac8ed61 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_set_sparsity.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_range_opts_set_sparsity() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_range_opts_set_sparsity()

    +
    +

    Synopsis

    +
    void
    +mongoc_client_encryption_encrypt_range_opts_set_sparsity (
    +     mongoc_client_encryption_encrypt_range_opts_t *range_opts, int64_t sparsity);
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    Sets sparsity for explicit encryption. Sparsity is required for explicit encryption of range indexes. +Only applies when the algorithm set by mongoc_client_encryption_encrypt_opts_set_algorithm() is “RangePreview”. +It is an error to set sparsity when algorithm is not “RangePreview”.

    +

    Sparsity must match the value set in the encryptedFields of the destination collection. +It is an error to set a different value.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_t.html b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..d188f9149c5af237f29c8adae706f5e549d53beb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_encrypt_range_opts_t.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_client_encryption_encrypt_range_opts_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_encrypt_range_opts_t

    +
    +

    Synopsis

    +
    typedef struct _mongoc_client_encryption_encrypt_range_opts_t mongoc_client_encryption_encrypt_range_opts_t;
    +
    +
    +
    +

    Important

    +

    The Range algorithm is experimental only and not intended for public use. It is subject to breaking changes. This API is part of the experimental +Queryable Encryption API and may be subject +to breaking changes in future releases.

    +
    +
    +

    New in version 1.24.0.

    +
    +

    RangeOpts specifies index options for a Queryable Encryption field supporting “rangePreview” queries. Used to set options for mongoc_client_encryption_encrypt().

    +

    The options min, max, sparsity, and range must match the values set in the encryptedFields of the destination collection.

    +

    For double and decimal128 fields, min/max/precision must all be set, or all be unset.

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_get_crypt_shared_version.html b/libmongoc/1.24.2/mongoc_client_encryption_get_crypt_shared_version.html new file mode 100644 index 0000000000000000000000000000000000000000..e4ed967ba75c677eb2e097383750b967098aadf6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_get_crypt_shared_version.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_crypt_shared_version() — libmongoc 1.24.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.24.2/mongoc_client_encryption_get_key.html b/libmongoc/1.24.2/mongoc_client_encryption_get_key.html new file mode 100644 index 0000000000000000000000000000000000000000..3bf1b8b1ecdc68c891c418f256a112401ab3a5cb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_get_key.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_key() — libmongoc 1.24.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.24.2/mongoc_client_encryption_get_key_by_alt_name.html b/libmongoc/1.24.2/mongoc_client_encryption_get_key_by_alt_name.html new file mode 100644 index 0000000000000000000000000000000000000000..2893b9a76bb137fd8b6595649c80590edcce5826 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_get_key_by_alt_name.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_key_by_alt_name() — libmongoc 1.24.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.24.2/mongoc_client_encryption_get_keys.html b/libmongoc/1.24.2/mongoc_client_encryption_get_keys.html new file mode 100644 index 0000000000000000000000000000000000000000..0ab0098c012feb76e8e1dd94d6cf8b24eecbf3dd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_get_keys.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_encryption_get_keys() — libmongoc 1.24.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.24.2/mongoc_client_encryption_new.html b/libmongoc/1.24.2/mongoc_client_encryption_new.html new file mode 100644 index 0000000000000000000000000000000000000000..3bc7c99f44924993027d85df9dbabe17654a7395 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_new.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_client_encryption_new() — libmongoc 1.24.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.24.2/mongoc_client_encryption_opts_destroy.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..4f81fafbb3752e788a6a2db02ce0a1a42a646e55 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_destroy.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_destroy() — libmongoc 1.24.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.24.2/mongoc_client_encryption_opts_new.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..2387804ffc47252a5784efe62690da50d63a2fb9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_new.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_new() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_encryption_opts_new()

    +
    +

    Synopsis

    +
    mongoc_client_encryption_opts_t *
    +mongoc_client_encryption_opts_new (void) BSON_GNUC_WARN_UNUSED_RESULT;
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_opts_set_keyvault_client.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_keyvault_client.html new file mode 100644 index 0000000000000000000000000000000000000000..36f9b47c2905d516f964c8b01c0668a345741db7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_keyvault_client.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_keyvault_client() — libmongoc 1.24.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.24.2/mongoc_client_encryption_opts_set_keyvault_namespace.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_keyvault_namespace.html new file mode 100644 index 0000000000000000000000000000000000000000..18bdff9870967124460430ecb752415c7055fa92 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_keyvault_namespace.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_keyvault_namespace() — libmongoc 1.24.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 In-Use Encryption.

    +
    +
    +

    Parameters

    + + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html new file mode 100644 index 0000000000000000000000000000000000000000..dcb04448bda5acfee885eab78017d0e75f6b3e96 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_kms_credential_provider_callback.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_kms_credential_provider_callback () — libmongoc 1.24.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:

    +
    +
    +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.24.2/mongoc_client_encryption_opts_set_kms_providers.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_kms_providers.html new file mode 100644 index 0000000000000000000000000000000000000000..ae5ba5e5d72c40ecbd12e8e966b60b293e97a37b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_kms_providers.html @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_kms_providers() — libmongoc 1.24.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.24.2/mongoc_client_encryption_opts_set_tls_opts.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_tls_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..5ebbc08cfa868474bacc29382fec90563b58e39f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_set_tls_opts.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_set_tls_opts() — libmongoc 1.24.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.24.2/mongoc_client_encryption_opts_t.html b/libmongoc/1.24.2/mongoc_client_encryption_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..fe6ac8916e84ae20c5e9e25f09186ca2a6fb1a6b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_opts_t.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_encryption_opts_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_remove_key_alt_name.html b/libmongoc/1.24.2/mongoc_client_encryption_remove_key_alt_name.html new file mode 100644 index 0000000000000000000000000000000000000000..c1e973924104b4d8ef08f66652012f303dc28d94 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_remove_key_alt_name.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_encryption_remove_key_alt_name() — libmongoc 1.24.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.24.2/mongoc_client_encryption_rewrap_many_datakey.html b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey.html new file mode 100644 index 0000000000000000000000000000000000000000..844ff990b476a4abfae19d9fb04738dad61f6db4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey() — libmongoc 1.24.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 and master key.

    +

    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.24.2/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..ff2bd73f95544fd24fdff1368658d0a28d04cb15 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_destroy.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_destroy() — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html new file mode 100644 index 0000000000000000000000000000000000000000..feb7f6909e65eeb1f133236b21898f814f0a50ce --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result() — libmongoc 1.24.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.

    +
    + +
    +

    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.24.2/mongoc_client_encryption_rewrap_many_datakey_result_new.html b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_new.html new file mode 100644 index 0000000000000000000000000000000000000000..a81cb9fe7d37fa6b60fab47be3bdf4dc7168a539 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_new.html @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_new() — libmongoc 1.24.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;
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_t.html b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c082a2cfc007edea7b0c62c401e50651a20ac9ed --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_rewrap_many_datakey_result_t.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_client_encryption_rewrap_many_datakey_result_t — libmongoc 1.24.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().

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_encryption_t.html b/libmongoc/1.24.2/mongoc_client_encryption_t.html new file mode 100644 index 0000000000000000000000000000000000000000..7cb77edad5dcdfa33e16834cb7970d58f870e028 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_encryption_t.html @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + mongoc_client_encryption_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_find_databases_with_opts.html b/libmongoc/1.24.2/mongoc_client_find_databases_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..594304d82a9b951604ed0cb6f1ed6b806e8f5d4a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_find_databases_with_opts.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_client_find_databases_with_opts() — libmongoc 1.24.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.24.2/mongoc_client_get_collection.html b/libmongoc/1.24.2/mongoc_client_get_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..1cd7068d68bb841c6748d3b28495de71750985ce --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_collection.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_client_get_collection() — libmongoc 1.24.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.24.2/mongoc_client_get_crypt_shared_version.html b/libmongoc/1.24.2/mongoc_client_get_crypt_shared_version.html new file mode 100644 index 0000000000000000000000000000000000000000..cb2eeab8bef5af284482edaaacb6f83907d8096f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_crypt_shared_version.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_client_get_crypt_shared_version() — libmongoc 1.24.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.24.2/mongoc_client_get_database.html b/libmongoc/1.24.2/mongoc_client_get_database.html new file mode 100644 index 0000000000000000000000000000000000000000..fdd6536c098575f2059bc5b2c11d85c3a0d7dbfd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_database.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_get_database() — libmongoc 1.24.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.24.2/mongoc_client_get_database_names.html b/libmongoc/1.24.2/mongoc_client_get_database_names.html new file mode 100644 index 0000000000000000000000000000000000000000..9f10989418ceaf324a511bc169692cadcf201f83 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_database_names.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_client_get_database_names() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_database_names()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_client_get_database_names_with_opts() in new code.

    +
    +
    +
    +

    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);
    +
    +
    +
    +
    +

    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.24.2/mongoc_client_get_database_names_with_opts.html b/libmongoc/1.24.2/mongoc_client_get_database_names_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..0cee932fe66934ca539e95924b362a3c256433f1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_database_names_with_opts.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + mongoc_client_get_database_names_with_opts() — libmongoc 1.24.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.24.2/mongoc_client_get_default_database.html b/libmongoc/1.24.2/mongoc_client_get_default_database.html new file mode 100644 index 0000000000000000000000000000000000000000..1370be1a532982c5b61236a4ca4756f1fbd696db --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_default_database.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_client_get_default_database() — libmongoc 1.24.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.24.2/mongoc_client_get_gridfs.html b/libmongoc/1.24.2/mongoc_client_get_gridfs.html new file mode 100644 index 0000000000000000000000000000000000000000..2ed95cbfbb975518baa1ec401923d8aaf6c5f304 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_gridfs.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_client_get_gridfs() — libmongoc 1.24.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.24.2/mongoc_client_get_handshake_description.html b/libmongoc/1.24.2/mongoc_client_get_handshake_description.html new file mode 100644 index 0000000000000000000000000000000000000000..92932c606ea7a187037370da84c7b8057053a2d6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_handshake_description.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_client_get_handshake_description() — libmongoc 1.24.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.24.2/mongoc_client_get_read_concern.html b/libmongoc/1.24.2/mongoc_client_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..65d694b229897de78cb2e7676097624db5c435aa --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_read_concern.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_get_read_concern() — libmongoc 1.24.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.24.2/mongoc_client_get_read_prefs.html b/libmongoc/1.24.2/mongoc_client_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..2458d6a6b288940dfc0ec842e37988dd42ecc5f6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_read_prefs.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_get_read_prefs() — libmongoc 1.24.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.24.2/mongoc_client_get_server_description.html b/libmongoc/1.24.2/mongoc_client_get_server_description.html new file mode 100644 index 0000000000000000000000000000000000000000..4f37338a5c5dc2e1e678efa167f9c8f82f2555cd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_server_description.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_get_server_description() — libmongoc 1.24.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.24.2/mongoc_client_get_server_descriptions.html b/libmongoc/1.24.2/mongoc_client_get_server_descriptions.html new file mode 100644 index 0000000000000000000000000000000000000000..3e8be3b9ad253950c36562615e8a2298ea477b0a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_server_descriptions.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_client_get_server_descriptions() — libmongoc 1.24.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.24.2/mongoc_client_get_server_status.html b/libmongoc/1.24.2/mongoc_client_get_server_status.html new file mode 100644 index 0000000000000000000000000000000000000000..08b7390846cf4c383b8eb6939c865098acaa08c4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_server_status.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_client_get_server_status() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_get_server_status()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.10.0: This function is deprecated and should not be used in new code.

    +

    Run the serverStatus command directly with mongoc_client_read_command_with_opts() instead.

    +
    +
    +
    +

    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.

    +
    +
    +

    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.24.2/mongoc_client_get_uri.html b/libmongoc/1.24.2/mongoc_client_get_uri.html new file mode 100644 index 0000000000000000000000000000000000000000..fb4ada93ebb7ba7a1c580c0c19f8d2dc349a95a7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_uri.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_get_uri() — libmongoc 1.24.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.24.2/mongoc_client_get_write_concern.html b/libmongoc/1.24.2/mongoc_client_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..64de106642cb03d48629ff9929f35f9f66531eaf --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_get_write_concern.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_get_write_concern() — libmongoc 1.24.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.24.2/mongoc_client_new.html b/libmongoc/1.24.2/mongoc_client_new.html new file mode 100644 index 0000000000000000000000000000000000000000..2b9e608ba3dc83f5671c88030e4dc29148c8fc60 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_new.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_new() — libmongoc 1.24.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.24.2/mongoc_client_new_from_uri.html b/libmongoc/1.24.2/mongoc_client_new_from_uri.html new file mode 100644 index 0000000000000000000000000000000000000000..f61e7899d60372311e013e8822a3f5605e394e1b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_new_from_uri.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_new_from_uri() — libmongoc 1.24.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.24.2/mongoc_client_new_from_uri_with_error.html b/libmongoc/1.24.2/mongoc_client_new_from_uri_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..f6cf38ae7698215f705d5b31c6b4fa2be4255ced --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_new_from_uri_with_error.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_client_new_from_uri_with_error() — libmongoc 1.24.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.24.2/mongoc_client_pool_destroy.html b/libmongoc/1.24.2/mongoc_client_pool_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..aad8357e67306e0954df4acb2260eef42fb9de41 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_destroy.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_client_pool_destroy() — libmongoc 1.24.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.24.2/mongoc_client_pool_enable_auto_encryption.html b/libmongoc/1.24.2/mongoc_client_pool_enable_auto_encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..5a581d9b9d85791808569c319025423416842a48 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_enable_auto_encryption.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_client_pool_enable_auto_encryption() — libmongoc 1.24.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 In-Use Encryption. See In-Use Encryption for instructions to enable In-Use Encryption in libmongoc.

    +

    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.

    +
    +

    See also

    + + +
    +
    In-Use Encryption for libmongoc
    +
    +
    +
    The MongoDB Manual for Client-Side Field Level Encryption
    +
    +
    +
    The MongoDB Manual for Queryable Encryption
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_pool_max_size.html b/libmongoc/1.24.2/mongoc_client_pool_max_size.html new file mode 100644 index 0000000000000000000000000000000000000000..c17f72f8f62fca75aededab5ab6b4563fe417dcf --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_max_size.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_pool_max_size() — libmongoc 1.24.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.24.2/mongoc_client_pool_min_size.html b/libmongoc/1.24.2/mongoc_client_pool_min_size.html new file mode 100644 index 0000000000000000000000000000000000000000..b93238f7e42bf08adc2e7304dd0e5eb7ff47fcd4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_min_size.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_client_pool_min_size() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_client_pool_min_size()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: 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.

    +
    +
    +
    +

    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.

    +
    +
    +

    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.24.2/mongoc_client_pool_new.html b/libmongoc/1.24.2/mongoc_client_pool_new.html new file mode 100644 index 0000000000000000000000000000000000000000..89639eadcf99e51c4a4ac2bdba8dcb9854c1827c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_new.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_pool_new() — libmongoc 1.24.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.24.2/mongoc_client_pool_new_with_error.html b/libmongoc/1.24.2/mongoc_client_pool_new_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..19895fa8cb34fcbdcda616914f7ec0c85dc48726 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_new_with_error.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_client_pool_new_with_error() — libmongoc 1.24.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.24.2/mongoc_client_pool_pop.html b/libmongoc/1.24.2/mongoc_client_pool_pop.html new file mode 100644 index 0000000000000000000000000000000000000000..9cf6f437b48c46dfdc8faac57d6924953a26a339 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_pop.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_pool_pop() — libmongoc 1.24.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.24.2/mongoc_client_pool_push.html b/libmongoc/1.24.2/mongoc_client_pool_push.html new file mode 100644 index 0000000000000000000000000000000000000000..4dcb0780118791a7c7db3e95be6cd37d2fc07c81 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_push.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_client_pool_push() — libmongoc 1.24.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.24.2/mongoc_client_pool_set_apm_callbacks.html b/libmongoc/1.24.2/mongoc_client_pool_set_apm_callbacks.html new file mode 100644 index 0000000000000000000000000000000000000000..a9ddf9b7b94d50fd7a917c882365901872b011f8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_set_apm_callbacks.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_apm_callbacks() — libmongoc 1.24.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.24.2/mongoc_client_pool_set_appname.html b/libmongoc/1.24.2/mongoc_client_pool_set_appname.html new file mode 100644 index 0000000000000000000000000000000000000000..cb63a838f5b796e38fd0aca03f1ce4cd9dbb90d8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_set_appname.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_appname() — libmongoc 1.24.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.24.2/mongoc_client_pool_set_error_api.html b/libmongoc/1.24.2/mongoc_client_pool_set_error_api.html new file mode 100644 index 0000000000000000000000000000000000000000..088be75970c0fb1b62153bb65aac676765f77015 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_set_error_api.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_error_api() — libmongoc 1.24.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.24.2/mongoc_client_pool_set_server_api.html b/libmongoc/1.24.2/mongoc_client_pool_set_server_api.html new file mode 100644 index 0000000000000000000000000000000000000000..336fbcdb007b98fe7944f4a513e0ccf4543ece30 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_set_server_api.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_server_api() — libmongoc 1.24.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.24.2/mongoc_client_pool_set_ssl_opts.html b/libmongoc/1.24.2/mongoc_client_pool_set_ssl_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..98ec87493e3ee7a891ed96aabd1add2bb5eb0784 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_set_ssl_opts.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_client_pool_set_ssl_opts() — libmongoc 1.24.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.24.2/mongoc_client_pool_t.html b/libmongoc/1.24.2/mongoc_client_pool_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5c833fad0b5725ec859f89be7991037c55b6bd19 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_t.html @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + mongoc_client_pool_t — libmongoc 1.24.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;
    +}
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_pool_try_pop.html b/libmongoc/1.24.2/mongoc_client_pool_try_pop.html new file mode 100644 index 0000000000000000000000000000000000000000..2dea02c41e6c6be5b1316443a965d28fc5eeec0a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_pool_try_pop.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_client_pool_try_pop() — libmongoc 1.24.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.24.2/mongoc_client_read_command_with_opts.html b/libmongoc/1.24.2/mongoc_client_read_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..3a88f77ea51e9133a46b2f1902e3bb2009094421 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_read_command_with_opts.html @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + mongoc_client_read_command_with_opts() — libmongoc 1.24.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 PreferencesRead ConcernCollation
    read_prefsoptsopts
    TransactionTransaction 
    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.24.2/mongoc_client_read_write_command_with_opts.html b/libmongoc/1.24.2/mongoc_client_read_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..746054492aa17bfaf8ac0029bdd4422096960c2d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_read_write_command_with_opts.html @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + mongoc_client_read_write_command_with_opts() — libmongoc 1.24.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 ConcernWrite ConcernCollation
    optsoptsopts
    TransactionTransaction 
    clientclient 
    +

    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.24.2/mongoc_client_reset.html b/libmongoc/1.24.2/mongoc_client_reset.html new file mode 100644 index 0000000000000000000000000000000000000000..c4ce4ff3c6b4c263a789aecb43ff2adf32df7240 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_reset.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_client_reset() — libmongoc 1.24.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.24.2/mongoc_client_select_server.html b/libmongoc/1.24.2/mongoc_client_select_server.html new file mode 100644 index 0000000000000000000000000000000000000000..f318f85b99b555b1e6dfb318eeb2967e2bd31664 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_select_server.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_client_select_server() — libmongoc 1.24.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.24.2/mongoc_client_session_abort_transaction.html b/libmongoc/1.24.2/mongoc_client_session_abort_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..10ce963bb087f3d2865fd8e7c54f451e095d3859 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_abort_transaction.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_client_session_abort_transaction() — libmongoc 1.24.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.24.2/mongoc_client_session_advance_cluster_time.html b/libmongoc/1.24.2/mongoc_client_session_advance_cluster_time.html new file mode 100644 index 0000000000000000000000000000000000000000..b017ed7e11eab10c70db74ba9e988b5fd464e89f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_advance_cluster_time.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + mongoc_client_session_advance_cluster_time() — libmongoc 1.24.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.24.2/mongoc_client_session_advance_operation_time.html b/libmongoc/1.24.2/mongoc_client_session_advance_operation_time.html new file mode 100644 index 0000000000000000000000000000000000000000..42bc8e3aabc76fcd5f36bbf18bba6c2ab07c5341 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_advance_operation_time.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + mongoc_client_session_advance_operation_time() — libmongoc 1.24.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.24.2/mongoc_client_session_append.html b/libmongoc/1.24.2/mongoc_client_session_append.html new file mode 100644 index 0000000000000000000000000000000000000000..181836e384ec4db924e4670c2b3d4610bbe36390 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_append.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_client_session_append() — libmongoc 1.24.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.24.2/mongoc_client_session_commit_transaction.html b/libmongoc/1.24.2/mongoc_client_session_commit_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..84653107e48e908e6777a1aef3b9ebecb1552e79 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_commit_transaction.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + mongoc_client_session_commit_transaction() — libmongoc 1.24.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.24.2/mongoc_client_session_destroy.html b/libmongoc/1.24.2/mongoc_client_session_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..6640627576ea240126407e7243d87cc6f394bc20 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_destroy.html @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + mongoc_client_session_destroy() — libmongoc 1.24.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.24.2/mongoc_client_session_get_client.html b/libmongoc/1.24.2/mongoc_client_session_get_client.html new file mode 100644 index 0000000000000000000000000000000000000000..967c28d8079f695496038d67f97cd23fc51e5758 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_client.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_client_session_get_client() — libmongoc 1.24.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.24.2/mongoc_client_session_get_cluster_time.html b/libmongoc/1.24.2/mongoc_client_session_get_cluster_time.html new file mode 100644 index 0000000000000000000000000000000000000000..3b62df641d5103597f7b3750ad996472e42f3222 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_cluster_time.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_client_session_get_cluster_time() — libmongoc 1.24.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.24.2/mongoc_client_session_get_dirty.html b/libmongoc/1.24.2/mongoc_client_session_get_dirty.html new file mode 100644 index 0000000000000000000000000000000000000000..0112a9d791b6d74084002c47c40541cf6468cea8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_dirty.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + mongoc_client_session_get_dirty() — libmongoc 1.24.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.24.2/mongoc_client_session_get_lsid.html b/libmongoc/1.24.2/mongoc_client_session_get_lsid.html new file mode 100644 index 0000000000000000000000000000000000000000..8c43f15da28c9446d0d4a29095e39498d9b9fd1a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_lsid.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_client_session_get_lsid() — libmongoc 1.24.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.24.2/mongoc_client_session_get_operation_time.html b/libmongoc/1.24.2/mongoc_client_session_get_operation_time.html new file mode 100644 index 0000000000000000000000000000000000000000..2e7ae566af36d22342f89284116a6ce4ccde85de --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_operation_time.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_client_session_get_operation_time() — libmongoc 1.24.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.24.2/mongoc_client_session_get_opts.html b/libmongoc/1.24.2/mongoc_client_session_get_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..6bd12058c496893a2088a3acb84ea40b782b0ce6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_opts.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_client_session_get_opts() — libmongoc 1.24.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.24.2/mongoc_client_session_get_server_id.html b/libmongoc/1.24.2/mongoc_client_session_get_server_id.html new file mode 100644 index 0000000000000000000000000000000000000000..45351741447683014b439f1a9d5f0f14b0f1f956 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_server_id.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_client_session_get_server_id() — libmongoc 1.24.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.24.2/mongoc_client_session_get_transaction_state.html b/libmongoc/1.24.2/mongoc_client_session_get_transaction_state.html new file mode 100644 index 0000000000000000000000000000000000000000..72838d32b646787e4745a96c11ba8ce4a4843942 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_get_transaction_state.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_session_get_transaction_state() — libmongoc 1.24.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.24.2/mongoc_client_session_in_transaction.html b/libmongoc/1.24.2/mongoc_client_session_in_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..6c0c8552795eb81812aaf467c4ddc8bca49bad8e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_in_transaction.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_session_in_transaction() — libmongoc 1.24.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.24.2/mongoc_client_session_start_transaction.html b/libmongoc/1.24.2/mongoc_client_session_start_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..c2a5d302bb2ed175c63111d31e3fb31b4385ea5e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_start_transaction.html @@ -0,0 +1,495 @@ + + + + + + + + + + + + + + mongoc_client_session_start_transaction() — libmongoc 1.24.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.24.2/mongoc_client_session_t.html b/libmongoc/1.24.2/mongoc_client_session_t.html new file mode 100644 index 0000000000000000000000000000000000000000..35a5ecea1e5e9542f9e390245c4361e2dbeaabf7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_t.html @@ -0,0 +1,365 @@ + + + + + + + + + + + + + + mongoc_client_session_t — libmongoc 1.24.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;
    +}
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_session_with_transaction.html b/libmongoc/1.24.2/mongoc_client_session_with_transaction.html new file mode 100644 index 0000000000000000000000000000000000000000..cc2a8946c6f8ae27ef70740b5458d6ace6ae3d20 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_with_transaction.html @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + mongoc_client_session_with_transaction() — libmongoc 1.24.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.24.2/mongoc_client_session_with_transaction_cb_t.html b/libmongoc/1.24.2/mongoc_client_session_with_transaction_cb_t.html new file mode 100644 index 0000000000000000000000000000000000000000..ab2c280b742c3a2a34c35c83d94f8e71b5577bff --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_session_with_transaction_cb_t.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_client_session_with_transaction_cb_t — libmongoc 1.24.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.24.2/mongoc_client_set_apm_callbacks.html b/libmongoc/1.24.2/mongoc_client_set_apm_callbacks.html new file mode 100644 index 0000000000000000000000000000000000000000..36f516b4cd5962996014432d1cbc9c0efad65fec --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_apm_callbacks.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_client_set_apm_callbacks() — libmongoc 1.24.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.24.2/mongoc_client_set_appname.html b/libmongoc/1.24.2/mongoc_client_set_appname.html new file mode 100644 index 0000000000000000000000000000000000000000..9d1aa4d5c2744f297f460c1ab01c58fd76466f0a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_appname.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_client_set_appname() — libmongoc 1.24.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.24.2/mongoc_client_set_error_api.html b/libmongoc/1.24.2/mongoc_client_set_error_api.html new file mode 100644 index 0000000000000000000000000000000000000000..23500a9f4c26b0cb7d1b0758b26a866240084264 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_error_api.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_client_set_error_api() — libmongoc 1.24.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.24.2/mongoc_client_set_read_concern.html b/libmongoc/1.24.2/mongoc_client_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..db1d4b57c7de219fe5a899d607da7c17c7d59a07 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_read_concern.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_set_read_concern() — libmongoc 1.24.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.24.2/mongoc_client_set_read_prefs.html b/libmongoc/1.24.2/mongoc_client_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..d833a5d1df7fa771a66fc242e01f2de7335fc662 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_read_prefs.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_client_set_read_prefs() — libmongoc 1.24.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.24.2/mongoc_client_set_server_api.html b/libmongoc/1.24.2/mongoc_client_set_server_api.html new file mode 100644 index 0000000000000000000000000000000000000000..cfb7eaca3baafe5abb250fe6b2f55a142e54f87c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_server_api.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_client_set_server_api() — libmongoc 1.24.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.24.2/mongoc_client_set_ssl_opts.html b/libmongoc/1.24.2/mongoc_client_set_ssl_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..2bcb15c7737cbeb15f6f7ec88c5ef047b8352a4d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_ssl_opts.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_client_set_ssl_opts() — libmongoc 1.24.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.24.2/mongoc_client_set_stream_initiator.html b/libmongoc/1.24.2/mongoc_client_set_stream_initiator.html new file mode 100644 index 0000000000000000000000000000000000000000..0edf462bc53ddb0723e226a7b33e88c89a694200 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_stream_initiator.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_client_set_stream_initiator() — libmongoc 1.24.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.24.2/mongoc_client_set_write_concern.html b/libmongoc/1.24.2/mongoc_client_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..1a10820ae03e169b428832fe288a47f37cd680f1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_set_write_concern.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_client_set_write_concern() — libmongoc 1.24.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.24.2/mongoc_client_start_session.html b/libmongoc/1.24.2/mongoc_client_start_session.html new file mode 100644 index 0000000000000000000000000000000000000000..6877778249f83f63d37b99ed16cbf09ffdfd0701 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_start_session.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + mongoc_client_start_session() — libmongoc 1.24.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.24.2/mongoc_client_t.html b/libmongoc/1.24.2/mongoc_client_t.html new file mode 100644 index 0000000000000000000000000000000000000000..f6566ff9bfe727b5c07a907209702f343c0d3cca --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_t.html @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + mongoc_client_t — libmongoc 1.24.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;
    +}
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_client_watch.html b/libmongoc/1.24.2/mongoc_client_watch.html new file mode 100644 index 0000000000000000000000000000000000000000..764682448e265ef56611207ff81787450afcc1a3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_watch.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + mongoc_client_watch() — libmongoc 1.24.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.
    • +
    • showExpandedEvents: Set to true to return an expanded list of change stream events. Avaiable only on MongoDB versions >=6.0
    • +
    • 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.24.2/mongoc_client_write_command_with_opts.html b/libmongoc/1.24.2/mongoc_client_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..9b894d4a19cd575c1ce44f3048df0d4fa8e55831 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_client_write_command_with_opts.html @@ -0,0 +1,406 @@ + + + + + + + + + + + + + + mongoc_client_write_command_with_opts() — libmongoc 1.24.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 ConcernCollation
    optsopts
    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.24.2/mongoc_collection_aggregate.html b/libmongoc/1.24.2/mongoc_collection_aggregate.html new file mode 100644 index 0000000000000000000000000000000000000000..0d30f692a24327f8851187a9765cbc9c5485c26b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_aggregate.html @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + mongoc_collection_aggregate() — libmongoc 1.24.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 PreferencesRead ConcernWrite ConcernCollation
    read_prefsoptsoptsopts
    TransactionTransactionTransaction 
    collectioncollectioncollection 
    +

    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.24.2/mongoc_collection_command.html b/libmongoc/1.24.2/mongoc_collection_command.html new file mode 100644 index 0000000000000000000000000000000000000000..e9b1ca73b625c8c8d77440147d94e3d145f7206d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_command.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_collection_command() — libmongoc 1.24.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.24.2/mongoc_collection_command_simple.html b/libmongoc/1.24.2/mongoc_collection_command_simple.html new file mode 100644 index 0000000000000000000000000000000000000000..ab6c531c7f64d8e9b9d15cf791b32ecbf0240bc5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_command_simple.html @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + mongoc_collection_command_simple() — libmongoc 1.24.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 ping command.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +static void
    +do_ping (mongoc_collection_t *collection)
    +{
    +   bson_error_t error;
    +   bson_t *cmd;
    +   bson_t reply;
    +   char *str;
    +
    +   cmd = BCON_NEW ("ping", BCON_INT32 (1));
    +
    +   if (mongoc_collection_command_simple (
    +          collection, cmd, NULL, &reply, &error)) {
    +      str = bson_as_canonical_extended_json (&reply, NULL);
    +      printf ("Got reply: %s\n", str);
    +      bson_free (str);
    +   } else {
    +      fprintf (stderr, "Got error: %s\n", error.message);
    +   }
    +
    +   bson_destroy (&reply);
    +   bson_destroy (cmd);
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_collection_command_with_opts.html b/libmongoc/1.24.2/mongoc_collection_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..c97a1f9ebbc955f2a72ecf445030fb5b11c48de9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_command_with_opts.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + mongoc_collection_command_with_opts() — libmongoc 1.24.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 PreferencesRead ConcernWrite ConcernCollation
    read_prefsoptsoptsopts
    TransactionTransactionTransaction 
    +

    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.24.2/mongoc_collection_copy.html b/libmongoc/1.24.2/mongoc_collection_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..aae3e46bbccce4a510794326ee3c914f90cbe675 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_copy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_copy() — libmongoc 1.24.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.24.2/mongoc_collection_count.html b/libmongoc/1.24.2/mongoc_collection_count.html new file mode 100644 index 0000000000000000000000000000000000000000..ba93a4782eb19c998e1431e488a70687307200b5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_count.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + mongoc_collection_count() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_count()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.11.0: 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.24.2/mongoc_collection_count_documents.html b/libmongoc/1.24.2/mongoc_collection_count_documents.html new file mode 100644 index 0000000000000000000000000000000000000000..bf59e9c5c7a9ee28b08293f3acbb58c7d1882af5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_count_documents.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + mongoc_collection_count_documents() — libmongoc 1.24.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:

    + +

    Other options are included in the sent aggregate command. For a list of all options, see the MongoDB Manual entry on the aggregate command.

    +
    +
    +

    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:

    + ++++ + + + + + + + + + + + + + + + + +
    OperatorReplacement
    $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.24.2/mongoc_collection_count_with_opts.html b/libmongoc/1.24.2/mongoc_collection_count_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..c258454bc4115db7350cd88700cba0d739541412 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_count_with_opts.html @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + mongoc_collection_count_with_opts() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_count_with_opts()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.11.0: 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.24.2/mongoc_collection_create_bulk_operation.html b/libmongoc/1.24.2/mongoc_collection_create_bulk_operation.html new file mode 100644 index 0000000000000000000000000000000000000000..fa580094df9bf52637aaf32fc969e807857f5d7e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_create_bulk_operation.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + mongoc_collection_create_bulk_operation() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_bulk_operation()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_create_bulk_operation_with_opts() in new code.

    +
    +
    +
    +

    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);
    +
    +
    +
    +
    +

    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.24.2/mongoc_collection_create_bulk_operation_with_opts.html b/libmongoc/1.24.2/mongoc_collection_create_bulk_operation_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..70e47aa5a279e155675594e5b2e4f9ff9badcc7c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_create_bulk_operation_with_opts.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + mongoc_collection_create_bulk_operation_with_opts() — libmongoc 1.24.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.24.2/mongoc_collection_create_index.html b/libmongoc/1.24.2/mongoc_collection_create_index.html new file mode 100644 index 0000000000000000000000000000000000000000..5095533284ef72a31d969c69eb54ab4e4b68d7e4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_create_index.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_collection_create_index() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_index()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.8.0: This function is deprecated and should not be used in new code. See Manage Collection Indexes.

    +
    +
    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_create_index (mongoc_collection_t *collection,
    +                                const bson_t *keys,
    +                                const mongoc_index_opt_t *opt,
    +                                bson_error_t *error) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_collection_create_index_with_opts.html b/libmongoc/1.24.2/mongoc_collection_create_index_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..6eeb7d6feeafa896a2f3eb739fdac40328e9f013 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_create_index_with_opts.html @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + mongoc_collection_create_index_with_opts() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_index_with_opts()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.8.0: This function is deprecated and should not be used in new code. See Manage Collection Indexes.

    +
    +
    +
    +

    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)
    +   BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    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.24.2/mongoc_collection_create_indexes_with_opts.html b/libmongoc/1.24.2/mongoc_collection_create_indexes_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..2ebbdb5cc769e99eb46ddea1feb1dbbae2e190d8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_create_indexes_with_opts.html @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + mongoc_collection_create_indexes_with_opts() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_create_indexes_with_opts()

    +
    +

    Synopsis

    +
    typedef struct _mongoc_index_model_t mongoc_index_model_t;
    +
    +mongoc_index_model_t *
    +mongoc_index_model_new (const bson_t *keys, const bson_t *opts);
    +
    +void mongoc_index_model_destroy (mongoc_index_model_t *model);
    +
    +bool
    +mongoc_collection_create_indexes_with_opts (mongoc_collection_t *collection,
    +                                            mongoc_index_model_t **models,
    +                                            size_t n_models,
    +                                            const bson_t *opts,
    +                                            bson_t *reply,
    +                                            bson_error_t *error);
    +
    +
    +
    +
    +

    Parameters

    +
      +
    • collection: A mongoc_collection_t.
    • +
    • models: An array of mongoc_index_model_t *.
    • +
    • n_models: The number of models.
    • +
    • opts: Optional options.
    • +
    • reply: An optional location for the server reply to the createIndexes command.
    • +
    • error: An optional location for a bson_error_t or NULL.
    • +
    +

    opts may be NULL or a BSON document with additional command options:

    + +

    Additional options passed in opts are appended to the createIndexes command. See the MongoDB Manual for createIndexes for all supported options.

    +

    If no write concern is provided in opts, the collection’s write concern is used.

    +
    +

    mongoc_index_model_t

    +

    Each mongoc_index_model_t represents an index to create. mongoc_index_model_new includes:

    +
      +
    • keys Expected to match the form of the key field in the createIndexes command.
    • +
    • opts Optional index options appended as a sibling to the key field in the createIndexes command.
    • +
    +
    +
    +
    +

    Description

    +

    This function wraps around the createIndexes 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.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_collection_delete.html b/libmongoc/1.24.2/mongoc_collection_delete.html new file mode 100644 index 0000000000000000000000000000000000000000..56151c0d4a35f4b88f394863418276ce469d13e4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_delete.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_collection_delete() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_delete()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_delete_one() or mongoc_collection_delete_many() in new code.

    +
    +
    +
    +

    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);
    +
    +
    +
    +
    +

    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.24.2/mongoc_collection_delete_many.html b/libmongoc/1.24.2/mongoc_collection_delete_many.html new file mode 100644 index 0000000000000000000000000000000000000000..b6ebfe1ae9607be6d86da0be847fd890a7d9ea73 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_delete_many.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_collection_delete_many() — libmongoc 1.24.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.24.2/mongoc_collection_delete_one.html b/libmongoc/1.24.2/mongoc_collection_delete_one.html new file mode 100644 index 0000000000000000000000000000000000000000..74a0ad35cb26291958a7cbeeae82fce97d28968a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_delete_one.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_collection_delete_one() — libmongoc 1.24.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.24.2/mongoc_collection_destroy.html b/libmongoc/1.24.2/mongoc_collection_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..18e5544221cdd3b670a7b469c742a0dc627278eb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_destroy.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_destroy() — libmongoc 1.24.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.24.2/mongoc_collection_drop.html b/libmongoc/1.24.2/mongoc_collection_drop.html new file mode 100644 index 0000000000000000000000000000000000000000..65e72010751bc6f5edfd79e836fbe776a850090e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_drop.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_collection_drop() — libmongoc 1.24.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.24.2/mongoc_collection_drop_index.html b/libmongoc/1.24.2/mongoc_collection_drop_index.html new file mode 100644 index 0000000000000000000000000000000000000000..0f9a9280930d5f95d35e3bb4b867429966dac058 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_drop_index.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_drop_index() — libmongoc 1.24.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.24.2/mongoc_collection_drop_index_with_opts.html b/libmongoc/1.24.2/mongoc_collection_drop_index_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..b1b6ba53951818d5d5caf9c4d963280b744f300d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_drop_index_with_opts.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_collection_drop_index_with_opts() — libmongoc 1.24.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.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_collection_drop_with_opts.html b/libmongoc/1.24.2/mongoc_collection_drop_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..34b1ef13d571c4f27673ef0249ab0241b8952449 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_drop_with_opts.html @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + mongoc_collection_drop_with_opts() — libmongoc 1.24.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 drop a collection for Queryable 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.24.2/mongoc_collection_ensure_index.html b/libmongoc/1.24.2/mongoc_collection_ensure_index.html new file mode 100644 index 0000000000000000000000000000000000000000..c94df751ffe1cc911f2379e67260b142f7ee5390 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_ensure_index.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_collection_ensure_index() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_ensure_index()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.8.0: This function is deprecated and should not be used in new code. See Manage Collection Indexes.

    +
    +
    +
    +

    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;
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_collection_estimated_document_count.html b/libmongoc/1.24.2/mongoc_collection_estimated_document_count.html new file mode 100644 index 0000000000000000000000000000000000000000..82f8787ac55dad166e3fb5c8a97646816b485b40 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_estimated_document_count.html @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + mongoc_collection_estimated_document_count() — libmongoc 1.24.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.24.2/mongoc_collection_find.html b/libmongoc/1.24.2/mongoc_collection_find.html new file mode 100644 index 0000000000000000000000000000000000000000..0466a0d3e270a95eeb014b29ca949bacd460c0f7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_find.html @@ -0,0 +1,358 @@ + + + + + + + + + + + + + + mongoc_collection_find() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.5.0: 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$queryfilter
    Sort$orderbysort
    Show record location$showDiskLocshowRecordId
    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.24.2/mongoc_collection_find_and_modify.html b/libmongoc/1.24.2/mongoc_collection_find_and_modify.html new file mode 100644 index 0000000000000000000000000000000000000000..48da4e314768354080e1086fe397e79336a74e63 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_find_and_modify.html @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + mongoc_collection_find_and_modify() — libmongoc 1.24.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().

    +

    On success, the output reply contains the full server reply to the findAndModify command. See the MongoDB Manual page for findAndModify for the expected server reply.

    +
    +
    +

    Errors

    +

    Errors are propagated via the error parameter.

    +
    +
    +

    Returns

    +

    If given invalid arguments or a server/network error occurs, returns false and sets error. Otherwise, succeeds and returns true. +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.24.2/mongoc_collection_find_and_modify_with_opts.html b/libmongoc/1.24.2/mongoc_collection_find_and_modify_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..6ae10b438f316b0011df769ded7d499091ae4d44 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_find_and_modify_with_opts.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_collection_find_and_modify_with_opts() — libmongoc 1.24.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.

    +

    On success, the output reply contains the full server reply to the findAndModify command. See the MongoDB Manual page for findAndModify for the expected server reply.

    +
    +
    +

    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.24.2/mongoc_collection_find_indexes.html b/libmongoc/1.24.2/mongoc_collection_find_indexes.html new file mode 100644 index 0000000000000000000000000000000000000000..d669f4044ffb88e11c2c290846973aa325395d23 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_find_indexes.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_collection_find_indexes() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_find_indexes()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_find_indexes_with_opts() in new code.

    +
    +
    +
    +

    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);
    +
    +
    +

    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.24.2/mongoc_collection_find_indexes_with_opts.html b/libmongoc/1.24.2/mongoc_collection_find_indexes_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..b7b6f350c9bb618838eeda3a60b0e2bc7ea35846 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_find_indexes_with_opts.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_collection_find_indexes_with_opts() — libmongoc 1.24.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.

    +
    +

    See also

    + +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_collection_find_with_opts.html b/libmongoc/1.24.2/mongoc_collection_find_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..415d8084c318d32c10aca345ec3cf176a9ba759d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_find_with_opts.html @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + mongoc_collection_find_with_opts() — libmongoc 1.24.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 PreferencesRead ConcernCollation
    read_prefsoptsopts
    TransactionTransaction 
    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.

    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OptionBSON typeOptionBSON type
    projectiondocumentmaxdocument
    sortdocumentmaxTimeMSnon-negative int64
    skipnon-negative int64maxAwaitTimeMSnon-negative int64
    limitnon-negative int64mindocument
    batchSizenon-negative int64noCursorTimeoutbool
    exhaustbooloplogReplaybool
    hintstring or documentreadConcerndocument
    allowPartialResultsboolreturnKeybool
    awaitDataboolsessionId(none)
    collationdocumentshowRecordIdbool
    commentanysingleBatchbool
    allowDiskUseboolletdocument
    +

    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.24.2/mongoc_collection_get_last_error.html b/libmongoc/1.24.2/mongoc_collection_get_last_error.html new file mode 100644 index 0000000000000000000000000000000000000000..9476c052c57d87d721c0b088bc66a484e95a3a6f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_get_last_error.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_collection_get_last_error() — libmongoc 1.24.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.24.2/mongoc_collection_get_name.html b/libmongoc/1.24.2/mongoc_collection_get_name.html new file mode 100644 index 0000000000000000000000000000000000000000..78e7cd7fc935abfae1d8d9002e33b1d824fa77fe --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_get_name.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_get_name() — libmongoc 1.24.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.24.2/mongoc_collection_get_read_concern.html b/libmongoc/1.24.2/mongoc_collection_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..9f6b0afc671e8e68fff8f5b78b047770a24f6152 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_get_read_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_get_read_concern() — libmongoc 1.24.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.24.2/mongoc_collection_get_read_prefs.html b/libmongoc/1.24.2/mongoc_collection_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..80a957f2c5603b51f91835f4c63a79abbeedb8da --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_get_read_prefs.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_get_read_prefs() — libmongoc 1.24.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.24.2/mongoc_collection_get_write_concern.html b/libmongoc/1.24.2/mongoc_collection_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..6c0618ed191e34eb63f73759defc92d0a68e39fd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_get_write_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_get_write_concern() — libmongoc 1.24.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.24.2/mongoc_collection_insert.html b/libmongoc/1.24.2/mongoc_collection_insert.html new file mode 100644 index 0000000000000000000000000000000000000000..ee1daeb337e1bea70122690ad4c2b30d557ee296 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_insert.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_collection_insert() — libmongoc 1.24.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.24.2/mongoc_collection_insert_bulk.html b/libmongoc/1.24.2/mongoc_collection_insert_bulk.html new file mode 100644 index 0000000000000000000000000000000000000000..98153c45ccd866438f0e13a9e91343f4b06ac512 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_insert_bulk.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_collection_insert_bulk() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_insert_bulk()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_collection_insert_many() in new code.

    +
    +
    +
    +

    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);
    +
    +
    +
    +
    +

    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.24.2/mongoc_collection_insert_many.html b/libmongoc/1.24.2/mongoc_collection_insert_many.html new file mode 100644 index 0000000000000000000000000000000000000000..20099779307c71f78ccc4f6af6c15343d4549b1e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_insert_many.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_collection_insert_many() — libmongoc 1.24.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.24.2/mongoc_collection_insert_one.html b/libmongoc/1.24.2/mongoc_collection_insert_one.html new file mode 100644 index 0000000000000000000000000000000000000000..256fce5acd061370e04a6aebe8470877c6b9cb0f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_insert_one.html @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + mongoc_collection_insert_one() — libmongoc 1.24.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.24.2/mongoc_collection_keys_to_index_string.html b/libmongoc/1.24.2/mongoc_collection_keys_to_index_string.html new file mode 100644 index 0000000000000000000000000000000000000000..d535667de131786c2a3e2e1ef89d45c63dde7e40 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_keys_to_index_string.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_collection_keys_to_index_string() — libmongoc 1.24.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

    +
      +
    • keys: A bson_t. This is expected to match the form of the key field in the createIndexes command.
    • +
    +
    +
    +

    Description

    +

    This function returns the canonical stringification of a given key specification. See Manage Collection Indexes for example usage.

    +

    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.24.2/mongoc_collection_read_command_with_opts.html b/libmongoc/1.24.2/mongoc_collection_read_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..858573924aae8ac992512864dd9593869efebc37 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_read_command_with_opts.html @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + mongoc_collection_read_command_with_opts() — libmongoc 1.24.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 PreferencesRead ConcernCollation
    read_prefsoptsopts
    TransactionTransaction 
    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.24.2/mongoc_collection_read_write_command_with_opts.html b/libmongoc/1.24.2/mongoc_collection_read_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..8b750fa306b94821a60a2b4cd3f3f057b83c5079 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_read_write_command_with_opts.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + mongoc_collection_read_write_command_with_opts() — libmongoc 1.24.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 ConcernWrite ConcernCollation
    optsoptsopts
    TransactionTransaction 
    collectioncollection 
    +

    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.24.2/mongoc_collection_remove.html b/libmongoc/1.24.2/mongoc_collection_remove.html new file mode 100644 index 0000000000000000000000000000000000000000..99fffcffdd7a48582894d9bc943f72b6dd91e498 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_remove.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_collection_remove() — libmongoc 1.24.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.24.2/mongoc_collection_rename.html b/libmongoc/1.24.2/mongoc_collection_rename.html new file mode 100644 index 0000000000000000000000000000000000000000..e92ff0b9fafe8a61cd61d9ff08605ee9046cdadb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_rename.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_collection_rename() — libmongoc 1.24.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.24.2/mongoc_collection_rename_with_opts.html b/libmongoc/1.24.2/mongoc_collection_rename_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..0ed2c0953d8a6ab53fe81c23a1be8884dd37f03d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_rename_with_opts.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + mongoc_collection_rename_with_opts() — libmongoc 1.24.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.24.2/mongoc_collection_replace_one.html b/libmongoc/1.24.2/mongoc_collection_replace_one.html new file mode 100644 index 0000000000000000000000000000000000000000..ac335e6d160e0b1b3a3935568e4604eb487197c0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_replace_one.html @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + mongoc_collection_replace_one() — libmongoc 1.24.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.24.2/mongoc_collection_save.html b/libmongoc/1.24.2/mongoc_collection_save.html new file mode 100644 index 0000000000000000000000000000000000000000..82238d2822c98aa6b53949f46e444d38569fab4b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_save.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_collection_save() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_save()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: 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.24.2/mongoc_collection_set_read_concern.html b/libmongoc/1.24.2/mongoc_collection_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..24f38e49415cfbf090a0208fa60e6e05e2bdfe92 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_set_read_concern.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_collection_set_read_concern() — libmongoc 1.24.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.24.2/mongoc_collection_set_read_prefs.html b/libmongoc/1.24.2/mongoc_collection_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..2ebce5aefcac3a851747198a566a52ab0b95a651 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_set_read_prefs.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_set_read_prefs() — libmongoc 1.24.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.24.2/mongoc_collection_set_write_concern.html b/libmongoc/1.24.2/mongoc_collection_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..487da40d35b1e5926eddbda6f89052ccb4c7bf34 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_set_write_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_collection_set_write_concern() — libmongoc 1.24.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.24.2/mongoc_collection_stats.html b/libmongoc/1.24.2/mongoc_collection_stats.html new file mode 100644 index 0000000000000000000000000000000000000000..b16f3365181107c2bdb70ac29b95876a5cd7db6c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_stats.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_collection_stats() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_stats()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.10.0: This helper function is deprecated and should not be used in new code. Use the $collStats aggregation pipeline stage with mongoc_collection_aggregate() instead.

    +
    +
    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_stats (mongoc_collection_t *collection,
    +                         const bson_t *options,
    +                         bson_t *reply,
    +                         bson_error_t *error) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    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.24.2/mongoc_collection_t.html b/libmongoc/1.24.2/mongoc_collection_t.html new file mode 100644 index 0000000000000000000000000000000000000000..fdcee6887109281a875f6a0204d8ab19e0250f84 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_t.html @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + mongoc_collection_t — libmongoc 1.24.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.24.2/mongoc_collection_update.html b/libmongoc/1.24.2/mongoc_collection_update.html new file mode 100644 index 0000000000000000000000000000000000000000..cc99f27cc89c8cfa99a9e0d2844ca99695f9e0bc --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_update.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_collection_update() — libmongoc 1.24.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.24.2/mongoc_collection_update_many.html b/libmongoc/1.24.2/mongoc_collection_update_many.html new file mode 100644 index 0000000000000000000000000000000000000000..8a2dd6f542d16c0dea5616823207a3b04be2657c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_update_many.html @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + mongoc_collection_update_many() — libmongoc 1.24.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.24.2/mongoc_collection_update_one.html b/libmongoc/1.24.2/mongoc_collection_update_one.html new file mode 100644 index 0000000000000000000000000000000000000000..cf58c09c67fb6849ffc6e9858e0f6c540ab8eff4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_update_one.html @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + mongoc_collection_update_one() — libmongoc 1.24.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.24.2/mongoc_collection_validate.html b/libmongoc/1.24.2/mongoc_collection_validate.html new file mode 100644 index 0000000000000000000000000000000000000000..5d263fa9e89096ffb6d56d45500d92d322650ab1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_validate.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mongoc_collection_validate() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_collection_validate()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.10.0: 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.

    +
    +
    +
    +

    Synopsis

    +
    bool
    +mongoc_collection_validate (mongoc_collection_t *collection,
    +                            const bson_t *options,
    +                            bson_t *reply,
    +                            bson_error_t *error) BSON_GNUC_DEPRECATED;
    +
    +
    +
    +
    +

    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.24.2/mongoc_collection_watch.html b/libmongoc/1.24.2/mongoc_collection_watch.html new file mode 100644 index 0000000000000000000000000000000000000000..06eb1d580606ec6b74d278dd1cc2a1c45594ef8a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_watch.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + mongoc_collection_watch() — libmongoc 1.24.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.
    • +
    • showExpandedEvents: Set to true to return an expanded list of change stream events. Avaiable only on MongoDB versions >=6.0
    • +
    • 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.24.2/mongoc_collection_write_command_with_opts.html b/libmongoc/1.24.2/mongoc_collection_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..84b49cbb11ed668ffb84d576608c00b571d1345f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_collection_write_command_with_opts.html @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + mongoc_collection_write_command_with_opts() — libmongoc 1.24.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 ConcernCollation
    optsopts
    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.24.2/mongoc_cursor_clone.html b/libmongoc/1.24.2/mongoc_cursor_clone.html new file mode 100644 index 0000000000000000000000000000000000000000..1c67f3a2c1fd928bdfbb7613fc3624e2d70cea3e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_clone.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_cursor_clone() — libmongoc 1.24.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.24.2/mongoc_cursor_current.html b/libmongoc/1.24.2/mongoc_cursor_current.html new file mode 100644 index 0000000000000000000000000000000000000000..c23bda05186efb2431860088df78ef36cdb58d96 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_current.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_cursor_current() — libmongoc 1.24.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.24.2/mongoc_cursor_destroy.html b/libmongoc/1.24.2/mongoc_cursor_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..cbd3a48c5373686c5223257e05ed7e8ce5378d44 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_cursor_destroy() — libmongoc 1.24.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.24.2/mongoc_cursor_error.html b/libmongoc/1.24.2/mongoc_cursor_error.html new file mode 100644 index 0000000000000000000000000000000000000000..4168c96f65cf1ae2fb0260fc3e1e7fdfa19cf63e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_error.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_cursor_error() — libmongoc 1.24.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.24.2/mongoc_cursor_error_document.html b/libmongoc/1.24.2/mongoc_cursor_error_document.html new file mode 100644 index 0000000000000000000000000000000000000000..15c9dabbbf58c3f0bb1e07fc4d5371d50bd5271f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_error_document.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + mongoc_cursor_error_document() — libmongoc 1.24.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.24.2/mongoc_cursor_get_batch_size.html b/libmongoc/1.24.2/mongoc_cursor_get_batch_size.html new file mode 100644 index 0000000000000000000000000000000000000000..e9660a6b7a57ef10f1a81db75cc99f94124b06c3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_get_batch_size.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_cursor_get_batch_size() — libmongoc 1.24.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.24.2/mongoc_cursor_get_hint.html b/libmongoc/1.24.2/mongoc_cursor_get_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..5ab60193fa324d8acc0fb281fa5a09424f87ba6e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_get_hint.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_cursor_get_hint() — libmongoc 1.24.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.24.2/mongoc_cursor_get_host.html b/libmongoc/1.24.2/mongoc_cursor_get_host.html new file mode 100644 index 0000000000000000000000000000000000000000..d19a53f86393ab723489e4a2073d2922166f2611 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_get_host.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_cursor_get_host() — libmongoc 1.24.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.24.2/mongoc_cursor_get_id.html b/libmongoc/1.24.2/mongoc_cursor_get_id.html new file mode 100644 index 0000000000000000000000000000000000000000..9e34d00d620e9cd9e68e86e8b2aae7ca5adcc43c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_get_id.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_cursor_get_id() — libmongoc 1.24.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.24.2/mongoc_cursor_get_limit.html b/libmongoc/1.24.2/mongoc_cursor_get_limit.html new file mode 100644 index 0000000000000000000000000000000000000000..25a0a2a50ddc840b90a00f08a3ba1515cd160e56 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_get_limit.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_cursor_get_limit() — libmongoc 1.24.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.24.2/mongoc_cursor_get_max_await_time_ms.html b/libmongoc/1.24.2/mongoc_cursor_get_max_await_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..a583b569fac499f4726a39e414c7eba9e06342d6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_get_max_await_time_ms.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_cursor_get_max_await_time_ms() — libmongoc 1.24.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.24.2/mongoc_cursor_is_alive.html b/libmongoc/1.24.2/mongoc_cursor_is_alive.html new file mode 100644 index 0000000000000000000000000000000000000000..2cb6660eeaa926d0ef630446f7d4c91d3f59ff6e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_is_alive.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_cursor_is_alive() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_is_alive()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.10.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_cursor_more() in new code.

    +
    +
    +
    +

    Synopsis

    +
    bool
    +mongoc_cursor_is_alive (const mongoc_cursor_t *cursor)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_cursor_more);
    +
    +
    +
    +
    +

    Parameters

    + +
    +
    +

    Returns

    +

    See mongoc_cursor_more().

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_cursor_more.html b/libmongoc/1.24.2/mongoc_cursor_more.html new file mode 100644 index 0000000000000000000000000000000000000000..f3039f17ca5005d7192be0691abc44ad286c8f13 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_more.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_cursor_more() — libmongoc 1.24.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.24.2/mongoc_cursor_new_from_command_reply.html b/libmongoc/1.24.2/mongoc_cursor_new_from_command_reply.html new file mode 100644 index 0000000000000000000000000000000000000000..94baea6f92670ecac4199d7564304768fa7af313 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_new_from_command_reply.html @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + mongoc_cursor_new_from_command_reply() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_cursor_new_from_command_reply()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.11.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_cursor_new_from_command_reply_with_opts() in new code.

    +

    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.

    +
    +
    +
    +

    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);
    +
    +
    +
    +
    +

    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), server_id may be 0. If the cursor response is not completed (i.e. with non-zero cursor id), pass the server_id of the server used to create the cursor.

    +

    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.24.2/mongoc_cursor_new_from_command_reply_with_opts.html b/libmongoc/1.24.2/mongoc_cursor_new_from_command_reply_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..025ae3b95bfd1210161f680cc5f3ce5b68a8e90e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_new_from_command_reply_with_opts.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + mongoc_cursor_new_from_command_reply_with_opts() — libmongoc 1.24.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.

    +

    When synthesizing a completed cursor response that has no more batches (i.e. with cursor id 0), serverId may be 0. If the cursor response is not completed (i.e. with non-zero cursor id), pass the serverId of the server used to create the cursor.

    +

    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.24.2/mongoc_cursor_next.html b/libmongoc/1.24.2/mongoc_cursor_next.html new file mode 100644 index 0000000000000000000000000000000000000000..675635e9babdcd4e43606f19547c18de1fade841 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_next.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_cursor_next() — libmongoc 1.24.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.24.2/mongoc_cursor_set_batch_size.html b/libmongoc/1.24.2/mongoc_cursor_set_batch_size.html new file mode 100644 index 0000000000000000000000000000000000000000..aab3e5ce5e985613b13b31c76f124e19b4ce7063 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_set_batch_size.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_cursor_set_batch_size() — libmongoc 1.24.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.24.2/mongoc_cursor_set_hint.html b/libmongoc/1.24.2/mongoc_cursor_set_hint.html new file mode 100644 index 0000000000000000000000000000000000000000..339fa4b6d0b5503be772699a1f3f32e5c60b2ff6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_set_hint.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_cursor_set_hint() — libmongoc 1.24.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.24.2/mongoc_cursor_set_limit.html b/libmongoc/1.24.2/mongoc_cursor_set_limit.html new file mode 100644 index 0000000000000000000000000000000000000000..fc0dad998eb3c26955e69071d1b94e0fd80622b1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_set_limit.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_cursor_set_limit() — libmongoc 1.24.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.24.2/mongoc_cursor_set_max_await_time_ms.html b/libmongoc/1.24.2/mongoc_cursor_set_max_await_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..829e14d57a23575fd338b784d3b69da8f4df1f6b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_set_max_await_time_ms.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_cursor_set_max_await_time_ms() — libmongoc 1.24.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.24.2/mongoc_cursor_t.html b/libmongoc/1.24.2/mongoc_cursor_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a4ee392a7ae46dda0af70f1a2d935fc710713a92 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_cursor_t.html @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + mongoc_cursor_t — libmongoc 1.24.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;
    +}
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_database_add_user.html b/libmongoc/1.24.2/mongoc_database_add_user.html new file mode 100644 index 0000000000000000000000000000000000000000..bf38daceb2edbcffef21bb0fc859d259db20d197 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_add_user.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_database_add_user() — libmongoc 1.24.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.24.2/mongoc_database_aggregate.html b/libmongoc/1.24.2/mongoc_database_aggregate.html new file mode 100644 index 0000000000000000000000000000000000000000..0820d77d160ca0082967d914d54f8873655b7632 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_aggregate.html @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + mongoc_database_aggregate() — libmongoc 1.24.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 PreferencesRead ConcernWrite ConcernCollation
    read_prefsoptsoptsopts
    TransactionTransactionTransaction 
    databasedatabasedatabase 
    +

    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.24.2/mongoc_database_command.html b/libmongoc/1.24.2/mongoc_database_command.html new file mode 100644 index 0000000000000000000000000000000000000000..069fa54583b6ed2e801c44be60ec9a0e31fbecde --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_command.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_database_command() — libmongoc 1.24.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.24.2/mongoc_database_command_simple.html b/libmongoc/1.24.2/mongoc_database_command_simple.html new file mode 100644 index 0000000000000000000000000000000000000000..be6a4d2fd030f7587dfecd3a066dc46ec8cc2800 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_command_simple.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_database_command_simple() — libmongoc 1.24.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.24.2/mongoc_database_command_with_opts.html b/libmongoc/1.24.2/mongoc_database_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..d680b64a12a410f7b0fe11562628a87d47c8fce5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_command_with_opts.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + mongoc_database_command_with_opts() — libmongoc 1.24.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 PreferencesRead ConcernWrite ConcernCollation
    read_prefsoptsoptsopts
    TransactionTransactionTransaction 
    +

    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.24.2/mongoc_database_copy.html b/libmongoc/1.24.2/mongoc_database_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..400904f2d4ca37cdfabea1870869304113aa725d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_copy.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_database_copy() — libmongoc 1.24.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.24.2/mongoc_database_create_collection.html b/libmongoc/1.24.2/mongoc_database_create_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..fdfba4ca3a539a8e16f16e60eafd2b6f0704faed --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_create_collection.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_database_create_collection() — libmongoc 1.24.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 Queryable 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.24.2/mongoc_database_destroy.html b/libmongoc/1.24.2/mongoc_database_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..e2e495a2e910a27268c79c5646cf2633247fdaf7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_destroy.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_database_destroy() — libmongoc 1.24.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.24.2/mongoc_database_drop.html b/libmongoc/1.24.2/mongoc_database_drop.html new file mode 100644 index 0000000000000000000000000000000000000000..bab611a8f8c15404db1dc914139852b959f21b58 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_drop.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_database_drop() — libmongoc 1.24.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.24.2/mongoc_database_drop_with_opts.html b/libmongoc/1.24.2/mongoc_database_drop_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..a9dcb54f001c58c8f36acad71fb0425cc645f74d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_drop_with_opts.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_database_drop_with_opts() — libmongoc 1.24.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 Queryable 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.24.2/mongoc_database_find_collections.html b/libmongoc/1.24.2/mongoc_database_find_collections.html new file mode 100644 index 0000000000000000000000000000000000000000..a0509cfca03427d0d4e52fd9fc78be550a4f485a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_find_collections.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + mongoc_database_find_collections() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_find_collections()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_database_find_collections_with_opts() in new code.

    +
    +
    +
    +

    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);
    +
    +
    +
    +
    +

    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.24.2/mongoc_database_find_collections_with_opts.html b/libmongoc/1.24.2/mongoc_database_find_collections_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..2fda9790a07d8f0e24c304a32b61226dd0e0813a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_find_collections_with_opts.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + mongoc_database_find_collections_with_opts() — libmongoc 1.24.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;
    +   mongoc_cursor_t *cursor;
    +
    +   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.message);
    +   }
    +
    +   mongoc_cursor_destroy (cursor);
    +   bson_destroy (&opts);
    +}
    +
    +
    + +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_database_get_collection.html b/libmongoc/1.24.2/mongoc_database_get_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..ee30bb616431c0325b21cf0ccd9492faa909d40d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_get_collection.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_database_get_collection() — libmongoc 1.24.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.24.2/mongoc_database_get_collection_names.html b/libmongoc/1.24.2/mongoc_database_get_collection_names.html new file mode 100644 index 0000000000000000000000000000000000000000..dd4c71e3f6155efa684b62149ac2b583d22d3cae --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_get_collection_names.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_database_get_collection_names() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_database_get_collection_names()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_database_get_collection_names_with_opts() in new code.

    +
    +
    +
    +

    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);
    +
    +
    +
    +
    +

    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.24.2/mongoc_database_get_collection_names_with_opts.html b/libmongoc/1.24.2/mongoc_database_get_collection_names_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..5d38d024ca10a65c488ad1c37a0d60f261b82eb6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_get_collection_names_with_opts.html @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + mongoc_database_get_collection_names_with_opts() — libmongoc 1.24.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.24.2/mongoc_database_get_name.html b/libmongoc/1.24.2/mongoc_database_get_name.html new file mode 100644 index 0000000000000000000000000000000000000000..69a88c34e12515e6afc21cd82151df549bac25d4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_get_name.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_database_get_name() — libmongoc 1.24.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.24.2/mongoc_database_get_read_concern.html b/libmongoc/1.24.2/mongoc_database_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..9445bcbc55feab532b332294ba12eb1d25ba1f11 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_get_read_concern.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_database_get_read_concern() — libmongoc 1.24.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.24.2/mongoc_database_get_read_prefs.html b/libmongoc/1.24.2/mongoc_database_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..b2ef21ced9315d0e700b812553d01420dbc653f4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_get_read_prefs.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_database_get_read_prefs() — libmongoc 1.24.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.24.2/mongoc_database_get_write_concern.html b/libmongoc/1.24.2/mongoc_database_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..bd0f108d1bb3f0e099cd2dd1f8cdfc7ebd5dad18 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_get_write_concern.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_database_get_write_concern() — libmongoc 1.24.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.24.2/mongoc_database_has_collection.html b/libmongoc/1.24.2/mongoc_database_has_collection.html new file mode 100644 index 0000000000000000000000000000000000000000..8e82bcd44ee40553d9348e626d0be06bc89007c1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_has_collection.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_database_has_collection() — libmongoc 1.24.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.24.2/mongoc_database_read_command_with_opts.html b/libmongoc/1.24.2/mongoc_database_read_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..ce5bb10a74dd8d35f39a8cae22b7f5efdf943213 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_read_command_with_opts.html @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + mongoc_database_read_command_with_opts() — libmongoc 1.24.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 PreferencesRead ConcernCollation
    read_prefsoptsopts
    TransactionTransaction 
    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.24.2/mongoc_database_read_write_command_with_opts.html b/libmongoc/1.24.2/mongoc_database_read_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..d8a0ac3619aead4c0d4278b97295c50fe45922f8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_read_write_command_with_opts.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + mongoc_database_read_write_command_with_opts() — libmongoc 1.24.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 ConcernWrite ConcernCollation
    optsoptsopts
    TransactionTransaction 
    databasedatabase 
    +

    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.24.2/mongoc_database_remove_all_users.html b/libmongoc/1.24.2/mongoc_database_remove_all_users.html new file mode 100644 index 0000000000000000000000000000000000000000..1d76d72ac31529dcafb97c853c291e990c8180c3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_remove_all_users.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_database_remove_all_users() — libmongoc 1.24.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.24.2/mongoc_database_remove_user.html b/libmongoc/1.24.2/mongoc_database_remove_user.html new file mode 100644 index 0000000000000000000000000000000000000000..bbf90a4daae2519d5dbf597d5e81ee66fd58b2b1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_remove_user.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_database_remove_user() — libmongoc 1.24.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.24.2/mongoc_database_set_read_concern.html b/libmongoc/1.24.2/mongoc_database_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..d09b38f45f36df038e89f738b10f8acca5004dbd --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_set_read_concern.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_database_set_read_concern() — libmongoc 1.24.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.24.2/mongoc_database_set_read_prefs.html b/libmongoc/1.24.2/mongoc_database_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..c3f39bb99b1ff8172c60c605482c6b731e97a7f8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_set_read_prefs.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_database_set_read_prefs() — libmongoc 1.24.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.24.2/mongoc_database_set_write_concern.html b/libmongoc/1.24.2/mongoc_database_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..5e1485619d22523f651cafe2d15fcbec5df16fa5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_set_write_concern.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_database_set_write_concern() — libmongoc 1.24.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.24.2/mongoc_database_t.html b/libmongoc/1.24.2/mongoc_database_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9193e6780fd2f21da282e29e990635685c21b8da --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_t.html @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + mongoc_database_t — libmongoc 1.24.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().

    +
    + +
    +

    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.24.2/mongoc_database_watch.html b/libmongoc/1.24.2/mongoc_database_watch.html new file mode 100644 index 0000000000000000000000000000000000000000..42f81bc64c9916b544105dbbb0df8bdbdb952f45 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_watch.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + mongoc_database_watch() — libmongoc 1.24.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.
    • +
    • showExpandedEvents: Set to true to return an expanded list of change stream events. Avaiable only on MongoDB versions >=6.0
    • +
    • 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.24.2/mongoc_database_write_command_with_opts.html b/libmongoc/1.24.2/mongoc_database_write_command_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..100b7007f5443c1e229c7334a0eb5ab19dd48d12 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_database_write_command_with_opts.html @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + mongoc_database_write_command_with_opts() — libmongoc 1.24.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 ConcernCollation
    optsopts
    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.24.2/mongoc_delete_flags_t.html b/libmongoc/1.24.2/mongoc_delete_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..6b1d615f6a90e9248acc36592d71a3dfcf538f5f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_delete_flags_t.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_delete_flags_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_delete_flags_t

    +
    +

    Warning

    +
    +

    Deprecated since version 1.9.0: These flags are deprecated and should not be used in new code.

    +

    Please use mongoc_collection_delete_one() or mongoc_collection_delete_many() in new code.

    +
    +
    +
    +

    Synopsis

    +
    typedef enum {
    +   MONGOC_DELETE_NONE = 0,
    +   MONGOC_DELETE_SINGLE_REMOVE = 1 << 0,
    +} mongoc_delete_flags_t;
    +
    +
    +

    Flags for deletion operations

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_error_has_label.html b/libmongoc/1.24.2/mongoc_error_has_label.html new file mode 100644 index 0000000000000000000000000000000000000000..5929f67ecae3e015153dfb354f9b8eeb0dca62ab --- /dev/null +++ b/libmongoc/1.24.2/mongoc_error_has_label.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_error_has_label() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_append.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_append.html new file mode 100644 index 0000000000000000000000000000000000000000..b4e1b5cfc4d3c2ab51e3531ed8c99f8d1065a2d7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_append.html @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_append() — libmongoc 1.24.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 the 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.24.2/mongoc_find_and_modify_opts_destroy.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..eb839293995e67ba51e71c25847b15a39b0354e9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_destroy.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_destroy() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_get_bypass_document_validation.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_bypass_document_validation.html new file mode 100644 index 0000000000000000000000000000000000000000..b7361da0cdaf641d6b6412daa3fbdf0b46daa449 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_bypass_document_validation.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_bypass_document_validation() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_get_fields.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_fields.html new file mode 100644 index 0000000000000000000000000000000000000000..6e0f4e2bbb308ef6f847bf40036f723c4a7488b5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_fields.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_fields() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_get_flags.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_flags.html new file mode 100644 index 0000000000000000000000000000000000000000..cad1306332105ed6fcae4d064df52bc52051a37c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_flags.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_flags() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_get_max_time_ms.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_max_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..8de74a75bb82f6cbe47b21de4e0137e2cf4cb5b4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_max_time_ms.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_max_time_ms() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_get_sort.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_sort.html new file mode 100644 index 0000000000000000000000000000000000000000..49f14334d050d34d66808d578b9999906c337411 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_sort.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_sort() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_get_update.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_update.html new file mode 100644 index 0000000000000000000000000000000000000000..31666cd7a6c5c8145839c2778e463354bf09bf53 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_get_update.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_get_update() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_new.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..d626edf69c5bb4fcf741c3b3f77954eb4db190a2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_new.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_new() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_set_bypass_document_validation.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_bypass_document_validation.html new file mode 100644 index 0000000000000000000000000000000000000000..a6bd3d1392428fefd3710dd2c91db81659e06c61 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_bypass_document_validation.html @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_bypass_document_validation() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_set_fields.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_fields.html new file mode 100644 index 0000000000000000000000000000000000000000..857966af513af7f60e72f9841acc0c96f40c5034 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_fields.html @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_fields() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_set_flags.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_flags.html new file mode 100644 index 0000000000000000000000000000000000000000..3c6c414073be6d72cfa679ba42261883f11eb0ea --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_flags.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_flags() — libmongoc 1.24.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_NONEDefault. Doesn’t add anything to the builder.
    MONGOC_FIND_AND_MODIFY_REMOVEWill instruct find_and_modify to remove the matching document.
    MONGOC_FIND_AND_MODIFY_UPSERTUpdate the matching document or, if no document matches, insert the document.
    MONGOC_FIND_AND_MODIFY_RETURN_NEWReturn 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.24.2/mongoc_find_and_modify_opts_set_max_time_ms.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_max_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..11adf0524fa67c90437a2a0701e70d231c3731e7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_max_time_ms.html @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_max_time_ms() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_set_sort.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_sort.html new file mode 100644 index 0000000000000000000000000000000000000000..a9ab09d3ab7a50a54517c9b8ed0fca1c88ea8a93 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_sort.html @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_sort() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_set_update.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_update.html new file mode 100644 index 0000000000000000000000000000000000000000..36948553e3b8d8ef0c428f8e6fb2129fcf66f3ed --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_set_update.html @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_set_update() — libmongoc 1.24.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.24.2/mongoc_find_and_modify_opts_t.html b/libmongoc/1.24.2/mongoc_find_and_modify_opts_t.html new file mode 100644 index 0000000000000000000000000000000000000000..70e059e71ee4fa6e3a65b62017475063b51ebb9f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_find_and_modify_opts_t.html @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + mongoc_find_and_modify_opts_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_find_and_modify_opts_t

    +

    find_and_modify abstraction

    +
    +

    Synopsis

    +

    mongoc_find_and_modify_opts_t is a builder interface to construct the findAndModify command.

    +

    It was created to be able to accommodate new arguments to the findAndModify 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
    +}
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_get_major_version.html b/libmongoc/1.24.2/mongoc_get_major_version.html new file mode 100644 index 0000000000000000000000000000000000000000..b910a0a2ba38177be647beea3ade75ec5b897e51 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_get_major_version.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_get_major_version() — libmongoc 1.24.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.24.2/mongoc_get_micro_version.html b/libmongoc/1.24.2/mongoc_get_micro_version.html new file mode 100644 index 0000000000000000000000000000000000000000..2cbc34c10ce129e240e89e08437023cfc5b217ab --- /dev/null +++ b/libmongoc/1.24.2/mongoc_get_micro_version.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_get_micro_version() — libmongoc 1.24.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.24.2/mongoc_get_minor_version.html b/libmongoc/1.24.2/mongoc_get_minor_version.html new file mode 100644 index 0000000000000000000000000000000000000000..45847d57b8a7b54bb6f99355ea2a547f837d0c51 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_get_minor_version.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_get_minor_version() — libmongoc 1.24.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.24.2/mongoc_get_version.html b/libmongoc/1.24.2/mongoc_get_version.html new file mode 100644 index 0000000000000000000000000000000000000000..7a3d10a7b3a516367aa6b659ff983ba34c9c51ae --- /dev/null +++ b/libmongoc/1.24.2/mongoc_get_version.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_get_version() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_abort_upload.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_abort_upload.html new file mode 100644 index 0000000000000000000000000000000000000000..273f420e46a2f02732d1e2332834a25553664d92 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_abort_upload.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_abort_upload() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_abort_upload()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_abort_upload (mongoc_stream_t *stream);
    +
    +
    +
    + +
    +

    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.24.2/mongoc_gridfs_bucket_delete_by_id.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_delete_by_id.html new file mode 100644 index 0000000000000000000000000000000000000000..c1824bd5f94ac9669873d9b184cd501d3ab20b88 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_delete_by_id.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_delete_by_id() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_destroy.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..6661ebd4aebae2ad46707d03be00a95332964665 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_destroy() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_download_to_stream.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_download_to_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..99177e8e88e609a024c157fa7042e8cdf2d5ef08 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_download_to_stream.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_download_to_stream() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_find.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_find.html new file mode 100644 index 0000000000000000000000000000000000000000..a0754ec35b0035689af6c28a2379ab4bc1d7e05c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_find.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_find() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_new.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_new.html new file mode 100644 index 0000000000000000000000000000000000000000..e789159c7fe02557e0aea3bfd9638e8d6d3e20b3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_new.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_new() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_open_download_stream.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_open_download_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..3bdd5c28be75edecc14ea1c675a43cc1ac0bee19 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_open_download_stream.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_open_download_stream() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_open_upload_stream.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_open_upload_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..8fc57c33817d55db1922a391ba2573ca1bbc0349 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_open_upload_stream.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_open_upload_stream() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_open_upload_stream_with_id.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_open_upload_stream_with_id.html new file mode 100644 index 0000000000000000000000000000000000000000..9f634cbfd101096e83ea34991baca5a561f717d1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_open_upload_stream_with_id.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_open_upload_stream_with_id() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_stream_error.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_stream_error.html new file mode 100644 index 0000000000000000000000000000000000000000..2db704b385aeed854ffc374619b14dfd3ecd34e9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_stream_error.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_stream_error() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_bucket_stream_error()

    +
    +

    Synopsis

    +
    bool
    +mongoc_gridfs_bucket_stream_error (mongoc_stream_t *stream,
    +                                   bson_error_t *error);
    +
    +
    +
    + +
    +

    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.24.2/mongoc_gridfs_bucket_t.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_t.html new file mode 100644 index 0000000000000000000000000000000000000000..81014e9639d9d469e92bd1e035131b621dc8e273 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_t.html @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_t — libmongoc 1.24.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.
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_gridfs_bucket_upload_from_stream.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_upload_from_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..b0104cf0b337fb421e01b63e421ed054d6c31aca --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_upload_from_stream.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_upload_from_stream() — libmongoc 1.24.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.24.2/mongoc_gridfs_bucket_upload_from_stream_with_id.html b/libmongoc/1.24.2/mongoc_gridfs_bucket_upload_from_stream_with_id.html new file mode 100644 index 0000000000000000000000000000000000000000..eb8bba8b13ede370dc6f6eee9a8c5293778bc995 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_bucket_upload_from_stream_with_id.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_gridfs_bucket_upload_from_stream_with_id() — libmongoc 1.24.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.24.2/mongoc_gridfs_create_file.html b/libmongoc/1.24.2/mongoc_gridfs_create_file.html new file mode 100644 index 0000000000000000000000000000000000000000..e17cb21d8963e874e03c61db67aeceb8b1e43b23 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_create_file.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_gridfs_create_file() — libmongoc 1.24.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.24.2/mongoc_gridfs_create_file_from_stream.html b/libmongoc/1.24.2/mongoc_gridfs_create_file_from_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..67732a832380141da102a520b6acc4c280a814c7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_create_file_from_stream.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_gridfs_create_file_from_stream() — libmongoc 1.24.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.24.2/mongoc_gridfs_destroy.html b/libmongoc/1.24.2/mongoc_gridfs_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..f8fb86c5cc43d2947b2580309fada1ff295a19a6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_gridfs_destroy() — libmongoc 1.24.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.24.2/mongoc_gridfs_drop.html b/libmongoc/1.24.2/mongoc_gridfs_drop.html new file mode 100644 index 0000000000000000000000000000000000000000..f1306047c114190b91178513594dacbff1a9e656 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_drop.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_gridfs_drop() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_destroy.html b/libmongoc/1.24.2/mongoc_gridfs_file_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..54b94bd107269122ad88695a191e555cf9b6b1fc --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_destroy() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_error.html b/libmongoc/1.24.2/mongoc_gridfs_file_error.html new file mode 100644 index 0000000000000000000000000000000000000000..c79725ce7fdd8995d77538e75b6346918cb7eff6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_error.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_error() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_aliases.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_aliases.html new file mode 100644 index 0000000000000000000000000000000000000000..923050d1ece65be1959c14f90d611b49fcc8131b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_aliases.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_aliases() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_chunk_size.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_chunk_size.html new file mode 100644 index 0000000000000000000000000000000000000000..8e939bae824fbea10fb8061c866a5f6ac0aaf715 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_chunk_size.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_chunk_size() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_content_type.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_content_type.html new file mode 100644 index 0000000000000000000000000000000000000000..02b02999f4f8861961c75be8ffb16e9b68045e4b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_content_type.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_content_type() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_filename.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..dfa02389501f76ad00b18fe5e9cf337851ce41b2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_filename.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_filename() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_id.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_id.html new file mode 100644 index 0000000000000000000000000000000000000000..f1aab690fb50bd1dadb7bb98c1c0cf1672b5d700 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_id.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_id() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_length.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_length.html new file mode 100644 index 0000000000000000000000000000000000000000..c2c45aa157603f9c8c7533114ab0679ed05046f4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_length.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_length() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_md5.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_md5.html new file mode 100644 index 0000000000000000000000000000000000000000..877e9e27d86fedaf85654fcc3bec8d2aee6d0bd0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_md5.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_md5() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_metadata.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_metadata.html new file mode 100644 index 0000000000000000000000000000000000000000..fd54750567275534535b7549f4deee85d76db0a9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_metadata.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_metadata() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_get_upload_date.html b/libmongoc/1.24.2/mongoc_gridfs_file_get_upload_date.html new file mode 100644 index 0000000000000000000000000000000000000000..f1a105172bf61d16b482c23a0b21372673cad501 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_get_upload_date.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_get_upload_date() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_list_destroy.html b/libmongoc/1.24.2/mongoc_gridfs_file_list_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..5c9124784b3c0706e7434e91ccf95d34c8915f51 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_list_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_destroy() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_list_error.html b/libmongoc/1.24.2/mongoc_gridfs_file_list_error.html new file mode 100644 index 0000000000000000000000000000000000000000..6f56478921ac5ff4b69ffb599cef03dca5920671 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_list_error.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_error() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_list_next.html b/libmongoc/1.24.2/mongoc_gridfs_file_list_next.html new file mode 100644 index 0000000000000000000000000000000000000000..14987b9b872cdfe9c439658e53ffafe85c1e95aa --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_list_next.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_next() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_list_t.html b/libmongoc/1.24.2/mongoc_gridfs_file_list_t.html new file mode 100644 index 0000000000000000000000000000000000000000..858bbe79874d8ea0a6d170574bb12c567a975d75 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_list_t.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_list_t — libmongoc 1.24.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);
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_gridfs_file_opt_t.html b/libmongoc/1.24.2/mongoc_gridfs_file_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..39740a8f9319384af7d3ce13c83d9686123567f0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_opt_t.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_opt_t — libmongoc 1.24.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.24.2/mongoc_gridfs_file_readv.html b/libmongoc/1.24.2/mongoc_gridfs_file_readv.html new file mode 100644 index 0000000000000000000000000000000000000000..577b351eacca22bd9e9ec6230da74b20cc9f90ba --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_readv.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_readv() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_remove.html b/libmongoc/1.24.2/mongoc_gridfs_file_remove.html new file mode 100644 index 0000000000000000000000000000000000000000..50863b5fedfc554ca9252a2ba6c221cb5a153a8a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_remove.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_remove() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_save.html b/libmongoc/1.24.2/mongoc_gridfs_file_save.html new file mode 100644 index 0000000000000000000000000000000000000000..0c04898de1866f1ba90610d7f04f14b25ed8fe37 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_save.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_save() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_seek.html b/libmongoc/1.24.2/mongoc_gridfs_file_seek.html new file mode 100644 index 0000000000000000000000000000000000000000..64c703e5f5fa37f31d6db7eca14052453da48f42 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_seek.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_seek() — libmongoc 1.24.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_SETSet the position relative to the start of the file.
    SEEK_CURMove delta relative to the current file position.
    SEEK_ENDMove 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

    + ++++ + + + + + + + + +
    EINVALwhence is not one of SEEK_SET, SEEK_CUR or SEEK_END.
    EINVALThe 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.24.2/mongoc_gridfs_file_set_aliases.html b/libmongoc/1.24.2/mongoc_gridfs_file_set_aliases.html new file mode 100644 index 0000000000000000000000000000000000000000..1f5354279b26c1cb1bd951520307a860905ffb45 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_set_aliases.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_aliases() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_set_content_type.html b/libmongoc/1.24.2/mongoc_gridfs_file_set_content_type.html new file mode 100644 index 0000000000000000000000000000000000000000..9e7dd80b6400891807e685a3e523b8bb9e450205 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_set_content_type.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_content_type() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_set_filename.html b/libmongoc/1.24.2/mongoc_gridfs_file_set_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..94b6a1983915e99d9d521369eff4c1d6f5d402c6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_set_filename.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_filename() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_set_id.html b/libmongoc/1.24.2/mongoc_gridfs_file_set_id.html new file mode 100644 index 0000000000000000000000000000000000000000..8ad84fd0122408cd9a989a0031ae624c99d02671 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_set_id.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_id() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_set_md5.html b/libmongoc/1.24.2/mongoc_gridfs_file_set_md5.html new file mode 100644 index 0000000000000000000000000000000000000000..d5a87fbb74544c2b0ea79888df435186674d23fb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_set_md5.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_md5() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_set_metadata.html b/libmongoc/1.24.2/mongoc_gridfs_file_set_metadata.html new file mode 100644 index 0000000000000000000000000000000000000000..c2a719b90a76a21ff6c61793e2834d86873f553f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_set_metadata.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_set_metadata() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_t.html b/libmongoc/1.24.2/mongoc_gridfs_file_t.html new file mode 100644 index 0000000000000000000000000000000000000000..13196d31cdea6eaff273029c0354ab66ee2ae893 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_t.html @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_t — libmongoc 1.24.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.

    +
    + + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_gridfs_file_tell.html b/libmongoc/1.24.2/mongoc_gridfs_file_tell.html new file mode 100644 index 0000000000000000000000000000000000000000..0e32e2e0e96a259e62832a5b2f3f4795c06b9072 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_tell.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_tell() — libmongoc 1.24.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.24.2/mongoc_gridfs_file_writev.html b/libmongoc/1.24.2/mongoc_gridfs_file_writev.html new file mode 100644 index 0000000000000000000000000000000000000000..44f3e9fdbfeadc9fe37135ce4577cb9041a5662d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_file_writev.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_gridfs_file_writev() — libmongoc 1.24.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.24.2/mongoc_gridfs_find.html b/libmongoc/1.24.2/mongoc_gridfs_find.html new file mode 100644 index 0000000000000000000000000000000000000000..9a7d24fcd5e1af3d1824acb59ef043a646ca43c0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_find.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_gridfs_find() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_find()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.5.0: 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.24.2/mongoc_gridfs_find_one.html b/libmongoc/1.24.2/mongoc_gridfs_find_one.html new file mode 100644 index 0000000000000000000000000000000000000000..dc78653572f8abc4b3fecbbc915b62e52dbbf9d6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_find_one.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_one() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_gridfs_find_one()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.5.0: 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.24.2/mongoc_gridfs_find_one_by_filename.html b/libmongoc/1.24.2/mongoc_gridfs_find_one_by_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..290b071e52b95ead8a5dbd6afd0225d836b8c3e1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_find_one_by_filename.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_one_by_filename() — libmongoc 1.24.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.24.2/mongoc_gridfs_find_one_with_opts.html b/libmongoc/1.24.2/mongoc_gridfs_find_one_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..55217794d767720002ba8d98299ba97919b2fdde --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_find_one_with_opts.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_one_with_opts() — libmongoc 1.24.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.24.2/mongoc_gridfs_find_with_opts.html b/libmongoc/1.24.2/mongoc_gridfs_find_with_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..a4c5fec17cc49692065c7718136f7c0959e9f8e7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_find_with_opts.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_gridfs_find_with_opts() — libmongoc 1.24.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.24.2/mongoc_gridfs_get_chunks.html b/libmongoc/1.24.2/mongoc_gridfs_get_chunks.html new file mode 100644 index 0000000000000000000000000000000000000000..bd25f92f61d5c137a9a9154162b16cc13e375dda --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_get_chunks.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_get_chunks() — libmongoc 1.24.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.24.2/mongoc_gridfs_get_files.html b/libmongoc/1.24.2/mongoc_gridfs_get_files.html new file mode 100644 index 0000000000000000000000000000000000000000..3efa624724f001bd42b38fb3521ab012202853e4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_get_files.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_gridfs_get_files() — libmongoc 1.24.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.24.2/mongoc_gridfs_remove_by_filename.html b/libmongoc/1.24.2/mongoc_gridfs_remove_by_filename.html new file mode 100644 index 0000000000000000000000000000000000000000..c176e7668af54d1a22ec2696989c6c6a69f59c7c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_remove_by_filename.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_gridfs_remove_by_filename() — libmongoc 1.24.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.24.2/mongoc_gridfs_t.html b/libmongoc/1.24.2/mongoc_gridfs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a093e65cabd8bed21301d8a598aab73fcde3d6c6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_gridfs_t.html @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + mongoc_gridfs_t — libmongoc 1.24.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.
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_handshake_data_append.html b/libmongoc/1.24.2/mongoc_handshake_data_append.html new file mode 100644 index 0000000000000000000000000000000000000000..0a485d11e29cd40eecb20e1f076f408eead248ca --- /dev/null +++ b/libmongoc/1.24.2/mongoc_handshake_data_append.html @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + mongoc_handshake_data_append() — libmongoc 1.24.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.24.2/mongoc_host_list_t.html b/libmongoc/1.24.2/mongoc_host_list_t.html new file mode 100644 index 0000000000000000000000000000000000000000..99e49d4292132462e1906b30bb3dfc87359338b7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_host_list_t.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_host_list_t — libmongoc 1.24.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.24.2/mongoc_index_opt_geo_get_default.html b/libmongoc/1.24.2/mongoc_index_opt_geo_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..25cad590a6fe983f8846a6078d396c982d16bd53 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_geo_get_default.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_index_opt_geo_get_default() — libmongoc 1.24.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.24.2/mongoc_index_opt_geo_init.html b/libmongoc/1.24.2/mongoc_index_opt_geo_init.html new file mode 100644 index 0000000000000000000000000000000000000000..4fd8e79268138921ba1a24b2fd164c35751b0513 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_geo_init.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_index_opt_geo_init() — libmongoc 1.24.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.24.2/mongoc_index_opt_geo_t.html b/libmongoc/1.24.2/mongoc_index_opt_geo_t.html new file mode 100644 index 0000000000000000000000000000000000000000..07c7e75111cd6416aef90252f642e23cf14afdd3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_geo_t.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_index_opt_geo_t — libmongoc 1.24.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.

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_index_opt_get_default.html b/libmongoc/1.24.2/mongoc_index_opt_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..53e5f1d6246e979983e97bda606479ee1adb5269 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_get_default.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_index_opt_get_default() — libmongoc 1.24.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.24.2/mongoc_index_opt_init.html b/libmongoc/1.24.2/mongoc_index_opt_init.html new file mode 100644 index 0000000000000000000000000000000000000000..4b8f351107633b663b302bf87e2eb36e00675666 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_init.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_index_opt_init() — libmongoc 1.24.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.24.2/mongoc_index_opt_t.html b/libmongoc/1.24.2/mongoc_index_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..524ba37ab5b30e97d51a70798d72a7059739729c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_t.html @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + mongoc_index_opt_t — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_index_opt_t

    +
    +

    Warning

    +
    +

    Deprecated since version 1.8.0: This structure is deprecated and should not be used in new code. See Manage Collection Indexes.

    +
    +
    +
    +

    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;
    +
    +
    +
    +
    +

    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);
    +}
    +
    +
    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_index_opt_wt_get_default.html b/libmongoc/1.24.2/mongoc_index_opt_wt_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..9e301a27f0b07b119dacc8595b0d6c9f3f13e048 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_wt_get_default.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_index_opt_wt_get_default() — libmongoc 1.24.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.24.2/mongoc_index_opt_wt_init.html b/libmongoc/1.24.2/mongoc_index_opt_wt_init.html new file mode 100644 index 0000000000000000000000000000000000000000..acb7a94f8bf760bf8feb08f3c5e87b9c9e9008ce --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_wt_init.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_index_opt_wt_init() — libmongoc 1.24.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.24.2/mongoc_index_opt_wt_t.html b/libmongoc/1.24.2/mongoc_index_opt_wt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..b4b389fb7951c9abde0b690a2186638d47a33236 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_index_opt_wt_t.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_index_opt_wt_t — libmongoc 1.24.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.

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_init.html b/libmongoc/1.24.2/mongoc_init.html new file mode 100644 index 0000000000000000000000000000000000000000..5f20c57b5925a7f2cd597ef1deb96759bb2880e9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_init.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_init() — libmongoc 1.24.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.24.2/mongoc_insert_flags_t.html b/libmongoc/1.24.2/mongoc_insert_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..cd626cd1a827ece0335bd9c220b347ae2fd5b5da --- /dev/null +++ b/libmongoc/1.24.2/mongoc_insert_flags_t.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + mongoc_insert_flags_t — libmongoc 1.24.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_NONESpecify no insert flags.
    MONGOC_INSERT_CONTINUE_ON_ERRORContinue inserting documents from the insertion set even if one insert fails.
    MONGOC_INSERT_NO_VALIDATEDo 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.24.2/mongoc_iovec_t.html b/libmongoc/1.24.2/mongoc_iovec_t.html new file mode 100644 index 0000000000000000000000000000000000000000..3cb9df604f044ade9a41b1d412fa671017cbd7ed --- /dev/null +++ b/libmongoc/1.24.2/mongoc_iovec_t.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_iovec_t — libmongoc 1.24.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.24.2/mongoc_optional_copy.html b/libmongoc/1.24.2/mongoc_optional_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..a0fbda4526c9be0a572f12a8d709995fb8b6bcc0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_optional_copy.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_optional_copy() — libmongoc 1.24.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.24.2/mongoc_optional_init.html b/libmongoc/1.24.2/mongoc_optional_init.html new file mode 100644 index 0000000000000000000000000000000000000000..c6b67e4cccb5b36313914f838117e7202e7824e8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_optional_init.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_optional_init() — libmongoc 1.24.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.24.2/mongoc_optional_is_set.html b/libmongoc/1.24.2/mongoc_optional_is_set.html new file mode 100644 index 0000000000000000000000000000000000000000..da4e9b447eda51188aa94a86c58062eb73a288ee --- /dev/null +++ b/libmongoc/1.24.2/mongoc_optional_is_set.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_optional_is_set() — libmongoc 1.24.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.24.2/mongoc_optional_set_value.html b/libmongoc/1.24.2/mongoc_optional_set_value.html new file mode 100644 index 0000000000000000000000000000000000000000..d5dec42c8dbe35b6cae2034efca7a61431547c33 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_optional_set_value.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_optional_set_value() — libmongoc 1.24.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.24.2/mongoc_optional_t.html b/libmongoc/1.24.2/mongoc_optional_t.html new file mode 100644 index 0000000000000000000000000000000000000000..3e05efa0fc9c453a941495a93d6c51b69e00ac42 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_optional_t.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_optional_t — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_optional_value.html b/libmongoc/1.24.2/mongoc_optional_value.html new file mode 100644 index 0000000000000000000000000000000000000000..b62d5a4f952a152efe3d8cef72664a6f1aae2679 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_optional_value.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_optional_value() — libmongoc 1.24.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.24.2/mongoc_query_flags_t.html b/libmongoc/1.24.2/mongoc_query_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..a99000190db00e60040746a3f9ba00730e5bd6aa --- /dev/null +++ b/libmongoc/1.24.2/mongoc_query_flags_t.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + mongoc_query_flags_t — libmongoc 1.24.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_NONESpecify no query flags.
    MONGOC_QUERY_TAILABLE_CURSORCursor will not be closed when the last data is retrieved. You can resume this cursor later.
    MONGOC_QUERY_SECONDARY_OKAllow query of replica set secondaries.
    MONGOC_QUERY_OPLOG_REPLAYUsed internally by MongoDB.
    MONGOC_QUERY_NO_CURSOR_TIMEOUTThe server normally times out an idle cursor after an inactivity period (10 minutes). This prevents that.
    MONGOC_QUERY_AWAIT_DATAUse with MONGOC_QUERY_TAILABLE_CURSOR. Block rather than returning no data. After a period, time out.
    MONGOC_QUERY_EXHAUSTStream 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_PARTIALGet 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.24.2/mongoc_rand.html b/libmongoc/1.24.2/mongoc_rand.html new file mode 100644 index 0000000000000000000000000000000000000000..98b44f1278b09458f23b6ea0d8ed65d6d75afa17 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_rand.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_rand — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_rand_add.html b/libmongoc/1.24.2/mongoc_rand_add.html new file mode 100644 index 0000000000000000000000000000000000000000..4d33966896b88a425263cb922c5fd7b48b1f94e7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_rand_add.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_rand_add() — libmongoc 1.24.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.24.2/mongoc_rand_seed.html b/libmongoc/1.24.2/mongoc_rand_seed.html new file mode 100644 index 0000000000000000000000000000000000000000..cd767a583a21f73c131ad0a7b056e5156dd65f18 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_rand_seed.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_rand_seed() — libmongoc 1.24.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.24.2/mongoc_rand_status.html b/libmongoc/1.24.2/mongoc_rand_status.html new file mode 100644 index 0000000000000000000000000000000000000000..34adb281aaed39d0202305f41e394708e1c71f94 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_rand_status.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_rand_status() — libmongoc 1.24.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.24.2/mongoc_read_concern_append.html b/libmongoc/1.24.2/mongoc_read_concern_append.html new file mode 100644 index 0000000000000000000000000000000000000000..c1389bda8505fe6c6aa0b6461717336bdbe71b22 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_append.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_read_concern_append() — libmongoc 1.24.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.24.2/mongoc_read_concern_copy.html b/libmongoc/1.24.2/mongoc_read_concern_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..ef455e9de2d1d0723319b058a52f9f0796da78a4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_copy.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_read_concern_copy() — libmongoc 1.24.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.24.2/mongoc_read_concern_destroy.html b/libmongoc/1.24.2/mongoc_read_concern_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..0f59bf9ab801447b2739a2cbaa2bab05ac9af3c5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_read_concern_destroy() — libmongoc 1.24.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.24.2/mongoc_read_concern_get_level.html b/libmongoc/1.24.2/mongoc_read_concern_get_level.html new file mode 100644 index 0000000000000000000000000000000000000000..356d4c1042c74ee88a5139ec035136ed042a19f1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_get_level.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_read_concern_get_level() — libmongoc 1.24.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.24.2/mongoc_read_concern_is_default.html b/libmongoc/1.24.2/mongoc_read_concern_is_default.html new file mode 100644 index 0000000000000000000000000000000000000000..ae17ff2b5c99b36e704b259b3a7257a3539f19e5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_is_default.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_read_concern_is_default() — libmongoc 1.24.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.24.2/mongoc_read_concern_new.html b/libmongoc/1.24.2/mongoc_read_concern_new.html new file mode 100644 index 0000000000000000000000000000000000000000..582094a470d5d0d6451585798f0f6535a53ced78 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_new.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_read_concern_new() — libmongoc 1.24.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.24.2/mongoc_read_concern_set_level.html b/libmongoc/1.24.2/mongoc_read_concern_set_level.html new file mode 100644 index 0000000000000000000000000000000000000000..b4572fe7604618d97b29195c21e6808dd5c8e7ae --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_set_level.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_read_concern_set_level() — libmongoc 1.24.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.24.2/mongoc_read_concern_t.html b/libmongoc/1.24.2/mongoc_read_concern_t.html new file mode 100644 index 0000000000000000000000000000000000000000..61bea51727d192a02d8fb5e764710c0138660dbb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_concern_t.html @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + mongoc_read_concern_t — libmongoc 1.24.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

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    MacroDescriptionFirst MongoDB version
    MONGOC_READ_CONCERN_LEVEL_LOCALLevel “local”, the default.3.2
    MONGOC_READ_CONCERN_LEVEL_MAJORITYLevel “majority”.3.2
    MONGOC_READ_CONCERN_LEVEL_LINEARIZABLELevel “linearizable”.3.4
    MONGOC_READ_CONCERN_LEVEL_AVAILABLELevel “available”.3.6
    MONGOC_READ_CONCERN_LEVEL_SNAPSHOTLevel “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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_read_mode_t.html b/libmongoc/1.24.2/mongoc_read_mode_t.html new file mode 100644 index 0000000000000000000000000000000000000000..8f2c4bd0e24581d689f6dcc522add2840adfd9fb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_mode_t.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_read_mode_t — libmongoc 1.24.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.24.2/mongoc_read_prefs_add_tag.html b/libmongoc/1.24.2/mongoc_read_prefs_add_tag.html new file mode 100644 index 0000000000000000000000000000000000000000..755628f6cf01d623fb68fba25eceaa6908617a19 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_add_tag.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_read_prefs_add_tag() — libmongoc 1.24.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.24.2/mongoc_read_prefs_copy.html b/libmongoc/1.24.2/mongoc_read_prefs_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..a63683c6b2decad19a9ff5748930ad931c5e1c67 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_copy.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_read_prefs_copy() — libmongoc 1.24.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.24.2/mongoc_read_prefs_destroy.html b/libmongoc/1.24.2/mongoc_read_prefs_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..8cd277f46fff8ae0a3501d67124b316174b00b63 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_read_prefs_destroy() — libmongoc 1.24.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.24.2/mongoc_read_prefs_get_hedge.html b/libmongoc/1.24.2/mongoc_read_prefs_get_hedge.html new file mode 100644 index 0000000000000000000000000000000000000000..9b590b8865ea50cd6d1202646a56f11f7380bdfc --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_get_hedge.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_hedge() — libmongoc 1.24.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.24.2/mongoc_read_prefs_get_max_staleness_seconds.html b/libmongoc/1.24.2/mongoc_read_prefs_get_max_staleness_seconds.html new file mode 100644 index 0000000000000000000000000000000000000000..f4765b4c877be1639905bbedf74b518d79cade1e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_get_max_staleness_seconds.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_max_staleness_seconds() — libmongoc 1.24.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.24.2/mongoc_read_prefs_get_mode.html b/libmongoc/1.24.2/mongoc_read_prefs_get_mode.html new file mode 100644 index 0000000000000000000000000000000000000000..8cba5e45eab9f4a31a2c1a2f92f99ca660bac69c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_get_mode.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_mode() — libmongoc 1.24.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.24.2/mongoc_read_prefs_get_tags.html b/libmongoc/1.24.2/mongoc_read_prefs_get_tags.html new file mode 100644 index 0000000000000000000000000000000000000000..8a964192c9d0fd6490880659a869ee6fa7d9ed44 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_get_tags.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_read_prefs_get_tags() — libmongoc 1.24.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.24.2/mongoc_read_prefs_is_valid.html b/libmongoc/1.24.2/mongoc_read_prefs_is_valid.html new file mode 100644 index 0000000000000000000000000000000000000000..a087ef45992996e01e40b5daec7563d7accc78fe --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_is_valid.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_read_prefs_is_valid() — libmongoc 1.24.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.24.2/mongoc_read_prefs_new.html b/libmongoc/1.24.2/mongoc_read_prefs_new.html new file mode 100644 index 0000000000000000000000000000000000000000..67cec66915a9abf7b9fddc06be0b8c932b2c2264 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_new.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_read_prefs_new() — libmongoc 1.24.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.24.2/mongoc_read_prefs_set_hedge.html b/libmongoc/1.24.2/mongoc_read_prefs_set_hedge.html new file mode 100644 index 0000000000000000000000000000000000000000..7f32d838e7627a674e047c953c6e2ab0a88a88a4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_set_hedge.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_hedge() — libmongoc 1.24.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.24.2/mongoc_read_prefs_set_max_staleness_seconds.html b/libmongoc/1.24.2/mongoc_read_prefs_set_max_staleness_seconds.html new file mode 100644 index 0000000000000000000000000000000000000000..edb2376791892a4851caacf59c29f9703a8bfb73 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_set_max_staleness_seconds.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_max_staleness_seconds() — libmongoc 1.24.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.24.2/mongoc_read_prefs_set_mode.html b/libmongoc/1.24.2/mongoc_read_prefs_set_mode.html new file mode 100644 index 0000000000000000000000000000000000000000..2efd9eb47ce786941c27fa76c853c4cd5c58cbc3 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_set_mode.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_mode() — libmongoc 1.24.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.24.2/mongoc_read_prefs_set_tags.html b/libmongoc/1.24.2/mongoc_read_prefs_set_tags.html new file mode 100644 index 0000000000000000000000000000000000000000..21dbd37d5277db167cf015c0ac55688dd260e8e9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_set_tags.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + mongoc_read_prefs_set_tags() — libmongoc 1.24.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.24.2/mongoc_read_prefs_t.html b/libmongoc/1.24.2/mongoc_read_prefs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..975722376b912c493330eb2cda5abdfe905cd925 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_read_prefs_t.html @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + mongoc_read_prefs_t — libmongoc 1.24.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_PRIMARYDefault mode. All operations read from the current replica set primary.
    MONGOC_READ_SECONDARYAll operations read from among the nearest secondary members of the replica set.
    MONGOC_READ_PRIMARY_PREFERREDIn most situations, operations read from the primary but if it is unavailable, operations read from secondary members.
    MONGOC_READ_SECONDARY_PREFERREDIn most situations, operations read from among the nearest secondary members, but if no secondaries are available, operations read from the primary.
    MONGOC_READ_NEARESTOperations 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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_remove_flags_t.html b/libmongoc/1.24.2/mongoc_remove_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0ccc30ed7d3e4790aa91a150fa832d16ce31fe04 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_remove_flags_t.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_remove_flags_t — libmongoc 1.24.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_NONESpecify no removal flags. All matching documents will be removed.
    MONGOC_REMOVE_SINGLE_REMOVEOnly remove the first matching document from the selector.
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_reply_flags_t.html b/libmongoc/1.24.2/mongoc_reply_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5ef3ba43508dae7b2d2b1d4fdd556d0ed65239a5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_reply_flags_t.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_reply_flags_t — libmongoc 1.24.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_NONENo flags set.
    MONGOC_REPLY_CURSOR_NOT_FOUNDNo matching cursor was found on the server.
    MONGOC_REPLY_QUERY_FAILUREThe query failed or was invalid. Error document has been provided.
    MONGOC_REPLY_SHARD_CONFIG_STALEShard config is stale.
    MONGOC_REPLY_AWAIT_CAPABLEIf the returned cursor is capable of MONGOC_QUERY_AWAIT_DATA.
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_server_api_copy.html b/libmongoc/1.24.2/mongoc_server_api_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..cbeb31efb88f10273d6ee837a67f65984017a77f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_copy.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_server_api_copy() — libmongoc 1.24.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.24.2/mongoc_server_api_deprecation_errors.html b/libmongoc/1.24.2/mongoc_server_api_deprecation_errors.html new file mode 100644 index 0000000000000000000000000000000000000000..5a219a28475aa128c802c2c8ee23679274468eac --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_deprecation_errors.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_server_api_deprecation_errors() — libmongoc 1.24.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.24.2/mongoc_server_api_destroy.html b/libmongoc/1.24.2/mongoc_server_api_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..9dac2618e98ebf5d48f544c8c28609e2fe7afc9c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_destroy.html @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + mongoc_server_api_destroy() — libmongoc 1.24.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.24.2/mongoc_server_api_get_deprecation_errors.html b/libmongoc/1.24.2/mongoc_server_api_get_deprecation_errors.html new file mode 100644 index 0000000000000000000000000000000000000000..96488dd377503f831b4f76b12bd6186127133ea0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_get_deprecation_errors.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_server_api_get_deprecation_errors() — libmongoc 1.24.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.24.2/mongoc_server_api_get_strict.html b/libmongoc/1.24.2/mongoc_server_api_get_strict.html new file mode 100644 index 0000000000000000000000000000000000000000..e0a646701a9540dc5ffadc34e1ea844361cd136d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_get_strict.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_server_api_get_strict() — libmongoc 1.24.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.24.2/mongoc_server_api_get_version.html b/libmongoc/1.24.2/mongoc_server_api_get_version.html new file mode 100644 index 0000000000000000000000000000000000000000..a63d7f6e068fb18675cfa57d22676b86dac9fdad --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_get_version.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_server_api_get_version() — libmongoc 1.24.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.24.2/mongoc_server_api_new.html b/libmongoc/1.24.2/mongoc_server_api_new.html new file mode 100644 index 0000000000000000000000000000000000000000..ec07ec69be014c1b407d5caef8c6ed139c693454 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_new.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + mongoc_server_api_new() — libmongoc 1.24.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.24.2/mongoc_server_api_strict.html b/libmongoc/1.24.2/mongoc_server_api_strict.html new file mode 100644 index 0000000000000000000000000000000000000000..f6c0ae52683278bb4ecd0fc9ebab07725b783a61 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_strict.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_server_api_strict() — libmongoc 1.24.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.24.2/mongoc_server_api_t.html b/libmongoc/1.24.2/mongoc_server_api_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1f42803a25af055843280d5ffcb1f9055ad6be7d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_t.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_server_api_t — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_server_api_version_from_string.html b/libmongoc/1.24.2/mongoc_server_api_version_from_string.html new file mode 100644 index 0000000000000000000000000000000000000000..760cf58f33ce488b2f24e071d31a5a367d25df7e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_version_from_string.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + mongoc_server_api_version_from_string() — libmongoc 1.24.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.24.2/mongoc_server_api_version_t.html b/libmongoc/1.24.2/mongoc_server_api_version_t.html new file mode 100644 index 0000000000000000000000000000000000000000..4631c6cff6f5f626ceab242daa770fabb0b5e68a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_version_t.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_server_api_version_t — libmongoc 1.24.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 valueMongoDB version string
    MONGOC_SERVER_API_V1“1”
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_server_api_version_to_string.html b/libmongoc/1.24.2/mongoc_server_api_version_to_string.html new file mode 100644 index 0000000000000000000000000000000000000000..3be11ffca854bcff2d17259c02aa8008b7867cfb --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_api_version_to_string.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_server_api_version_to_string() — libmongoc 1.24.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.24.2/mongoc_server_description_destroy.html b/libmongoc/1.24.2/mongoc_server_description_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..1f6eb1f8f731ce10d9a87a3fee316408a4d7381c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_server_description_destroy() — libmongoc 1.24.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.24.2/mongoc_server_description_hello_response.html b/libmongoc/1.24.2/mongoc_server_description_hello_response.html new file mode 100644 index 0000000000000000000000000000000000000000..f623b5bd0ec1ff41b9176b3621efc77c27893786 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_hello_response.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_server_description_hello_response() — libmongoc 1.24.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.24.2/mongoc_server_description_host.html b/libmongoc/1.24.2/mongoc_server_description_host.html new file mode 100644 index 0000000000000000000000000000000000000000..b26e06c1c31ec657b51d62389421cc3d83124de5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_host.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_server_description_host() — libmongoc 1.24.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.24.2/mongoc_server_description_id.html b/libmongoc/1.24.2/mongoc_server_description_id.html new file mode 100644 index 0000000000000000000000000000000000000000..6a2f5a5fc69dc429ecfe78b4a0c4a26b72e39d22 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_id.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_server_description_id() — libmongoc 1.24.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.24.2/mongoc_server_description_ismaster.html b/libmongoc/1.24.2/mongoc_server_description_ismaster.html new file mode 100644 index 0000000000000000000000000000000000000000..bc3ec8033c088b7ce36a2a8c8e0341b367edfe02 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_ismaster.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_server_description_ismaster() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_server_description_ismaster()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.18.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_server_description_hello_response() in new code.

    +
    +
    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_server_description_ismaster (
    +   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.24.2/mongoc_server_description_last_update_time.html b/libmongoc/1.24.2/mongoc_server_description_last_update_time.html new file mode 100644 index 0000000000000000000000000000000000000000..c78dd62c3ca7de8a9f36944f22ce742bc9933825 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_last_update_time.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_server_description_last_update_time() — libmongoc 1.24.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.24.2/mongoc_server_description_new_copy.html b/libmongoc/1.24.2/mongoc_server_description_new_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..f093d9e53a54fb8792c58006084f0bf6597a0105 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_new_copy.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_server_description_new_copy() — libmongoc 1.24.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.24.2/mongoc_server_description_round_trip_time.html b/libmongoc/1.24.2/mongoc_server_description_round_trip_time.html new file mode 100644 index 0000000000000000000000000000000000000000..7a03cc8c7f10874e50dd5c13a3cf2f2e81673ac7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_round_trip_time.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_server_description_round_trip_time() — libmongoc 1.24.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.24.2/mongoc_server_description_t.html b/libmongoc/1.24.2/mongoc_server_description_t.html new file mode 100644 index 0000000000000000000000000000000000000000..6e408cc723f229e00739e179000cf51b66816a20 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_t.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_server_description_t — libmongoc 1.24.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.

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_server_description_type.html b/libmongoc/1.24.2/mongoc_server_description_type.html new file mode 100644 index 0000000000000000000000000000000000000000..737bb9093bfe9d4449beae720898432fcb51a960 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_description_type.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_server_description_type() — libmongoc 1.24.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.24.2/mongoc_server_descriptions_destroy_all.html b/libmongoc/1.24.2/mongoc_server_descriptions_destroy_all.html new file mode 100644 index 0000000000000000000000000000000000000000..af41c668ed79379ed4edc4925a25f30ee790d672 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_server_descriptions_destroy_all.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_server_descriptions_destroy_all() — libmongoc 1.24.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.24.2/mongoc_session_opt_t.html b/libmongoc/1.24.2/mongoc_session_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..6f1d52791253bc04badedd435639663aeb9ecc27 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opt_t.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_session_opt_t — libmongoc 1.24.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().

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_session_opts_clone.html b/libmongoc/1.24.2/mongoc_session_opts_clone.html new file mode 100644 index 0000000000000000000000000000000000000000..eaa1881cc8472bcd4176b51ae2db96b6e3f6619b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_clone.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + mongoc_session_opts_clone() — libmongoc 1.24.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.24.2/mongoc_session_opts_destroy.html b/libmongoc/1.24.2/mongoc_session_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..ba38ee7091eb2fe6de0a84476725f1d71be5a63b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_destroy.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_session_opts_destroy() — libmongoc 1.24.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.24.2/mongoc_session_opts_get_causal_consistency.html b/libmongoc/1.24.2/mongoc_session_opts_get_causal_consistency.html new file mode 100644 index 0000000000000000000000000000000000000000..e2db91123ab622fb6c32407d955306c0366d7db6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_get_causal_consistency.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_causal_consistency() — libmongoc 1.24.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.24.2/mongoc_session_opts_get_default_transaction_opts.html b/libmongoc/1.24.2/mongoc_session_opts_get_default_transaction_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..88486f20343028eb14ed39899480ba518bd91036 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_get_default_transaction_opts.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_default_transaction_opts() — libmongoc 1.24.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.24.2/mongoc_session_opts_get_snapshot.html b/libmongoc/1.24.2/mongoc_session_opts_get_snapshot.html new file mode 100644 index 0000000000000000000000000000000000000000..3ad83d3ce94a7024acbb868479c7410342742dde --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_get_snapshot.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_snapshot() — libmongoc 1.24.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.24.2/mongoc_session_opts_get_transaction_opts.html b/libmongoc/1.24.2/mongoc_session_opts_get_transaction_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..af0522eedc073c44c6c202ffb641681c84682b4c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_get_transaction_opts.html @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + mongoc_session_opts_get_transaction_opts() — libmongoc 1.24.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.24.2/mongoc_session_opts_new.html b/libmongoc/1.24.2/mongoc_session_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..d08fc1366f7bb59f780155efb3631fc930ab9ee6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_new.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_session_opts_new() — libmongoc 1.24.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.24.2/mongoc_session_opts_set_causal_consistency.html b/libmongoc/1.24.2/mongoc_session_opts_set_causal_consistency.html new file mode 100644 index 0000000000000000000000000000000000000000..58055f09b7bb38fb0b1aa682582cad9df5199e44 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_set_causal_consistency.html @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + mongoc_session_opts_set_causal_consistency() — libmongoc 1.24.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.24.2/mongoc_session_opts_set_default_transaction_opts.html b/libmongoc/1.24.2/mongoc_session_opts_set_default_transaction_opts.html new file mode 100644 index 0000000000000000000000000000000000000000..5412ac66d354cb54879f6f8c9a35c9cfbddde02f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_set_default_transaction_opts.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + mongoc_session_opts_set_default_transaction_opts() — libmongoc 1.24.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.24.2/mongoc_session_opts_set_snapshot.html b/libmongoc/1.24.2/mongoc_session_opts_set_snapshot.html new file mode 100644 index 0000000000000000000000000000000000000000..743b249226ccc717e77b66eaa4fd131637c82c2f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_session_opts_set_snapshot.html @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + mongoc_session_opts_set_snapshot() — libmongoc 1.24.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.24.2/mongoc_socket_accept.html b/libmongoc/1.24.2/mongoc_socket_accept.html new file mode 100644 index 0000000000000000000000000000000000000000..591ef2d1e89b98cd789b07afc8e6253c00e386e7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_accept.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_socket_accept() — libmongoc 1.24.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.24.2/mongoc_socket_bind.html b/libmongoc/1.24.2/mongoc_socket_bind.html new file mode 100644 index 0000000000000000000000000000000000000000..1b9318a0a68d3fcd43fad8d8f2f9c0fa1eae81d2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_bind.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_socket_bind() — libmongoc 1.24.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.24.2/mongoc_socket_close.html b/libmongoc/1.24.2/mongoc_socket_close.html new file mode 100644 index 0000000000000000000000000000000000000000..9f1a4712370f146f40b1370057031407cc7a0bca --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_close.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_socket_close() — libmongoc 1.24.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.24.2/mongoc_socket_connect.html b/libmongoc/1.24.2/mongoc_socket_connect.html new file mode 100644 index 0000000000000000000000000000000000000000..78f6d6ba8b3c49aedbaaada68181cf8c6480b1c1 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_connect.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_socket_connect() — libmongoc 1.24.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.24.2/mongoc_socket_destroy.html b/libmongoc/1.24.2/mongoc_socket_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..0ffaa800d4c75c83e306d80997a6dcd444c8dc82 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_socket_destroy() — libmongoc 1.24.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.24.2/mongoc_socket_errno.html b/libmongoc/1.24.2/mongoc_socket_errno.html new file mode 100644 index 0000000000000000000000000000000000000000..59b25bf4ff745ce64480e29874335278a27a8598 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_errno.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_socket_errno() — libmongoc 1.24.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.24.2/mongoc_socket_getnameinfo.html b/libmongoc/1.24.2/mongoc_socket_getnameinfo.html new file mode 100644 index 0000000000000000000000000000000000000000..99ed29ac397ac8849617fa852633f8ff00b9f009 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_getnameinfo.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_socket_getnameinfo() — libmongoc 1.24.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.24.2/mongoc_socket_getsockname.html b/libmongoc/1.24.2/mongoc_socket_getsockname.html new file mode 100644 index 0000000000000000000000000000000000000000..7df8716717e7eb7482050c735d84c4a5d3796b30 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_getsockname.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_socket_getsockname() — libmongoc 1.24.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.24.2/mongoc_socket_listen.html b/libmongoc/1.24.2/mongoc_socket_listen.html new file mode 100644 index 0000000000000000000000000000000000000000..c59608a55ccd601b36ac4324fa9834295b3ce0ff --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_listen.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_socket_listen() — libmongoc 1.24.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.24.2/mongoc_socket_new.html b/libmongoc/1.24.2/mongoc_socket_new.html new file mode 100644 index 0000000000000000000000000000000000000000..15f349b2ceb0d6027a57a1c208bf6ccc470eb5b9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_new.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_socket_new() — libmongoc 1.24.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.24.2/mongoc_socket_recv.html b/libmongoc/1.24.2/mongoc_socket_recv.html new file mode 100644 index 0000000000000000000000000000000000000000..5834a3a45f18d1aaed20e35bd17d187472c3b03e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_recv.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_socket_recv() — libmongoc 1.24.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.24.2/mongoc_socket_send.html b/libmongoc/1.24.2/mongoc_socket_send.html new file mode 100644 index 0000000000000000000000000000000000000000..90ebe0c70f5e1baf23e7a6b31acca79746ad188e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_send.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_socket_send() — libmongoc 1.24.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.24.2/mongoc_socket_sendv.html b/libmongoc/1.24.2/mongoc_socket_sendv.html new file mode 100644 index 0000000000000000000000000000000000000000..f0088d21d1636043090dfa3858899eae3a155bd8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_sendv.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_socket_sendv() — libmongoc 1.24.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.24.2/mongoc_socket_setsockopt.html b/libmongoc/1.24.2/mongoc_socket_setsockopt.html new file mode 100644 index 0000000000000000000000000000000000000000..3f3d8fe651956cc9c04185a40c4ed47640c51a31 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_setsockopt.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_socket_setsockopt() — libmongoc 1.24.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.24.2/mongoc_socket_t.html b/libmongoc/1.24.2/mongoc_socket_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1a4ee878df2b68abdddc5050ea393e0035788577 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_socket_t.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_socket_t — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_ssl_opt_get_default.html b/libmongoc/1.24.2/mongoc_ssl_opt_get_default.html new file mode 100644 index 0000000000000000000000000000000000000000..fba96aa76dfbb4bafd0edfa4157508d748aba998 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_ssl_opt_get_default.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_ssl_opt_get_default() — libmongoc 1.24.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.24.2/mongoc_ssl_opt_t.html b/libmongoc/1.24.2/mongoc_ssl_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..0208943076a171b7c1b97a452a2f10c5eee94132 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_ssl_opt_t.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + mongoc_ssl_opt_t — libmongoc 1.24.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.24.2/mongoc_stream_buffered_new.html b/libmongoc/1.24.2/mongoc_stream_buffered_new.html new file mode 100644 index 0000000000000000000000000000000000000000..5cf4545d10c37ec3bf976843d1bfa3fd31cb014a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_buffered_new.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_stream_buffered_new() — libmongoc 1.24.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.24.2/mongoc_stream_buffered_t.html b/libmongoc/1.24.2/mongoc_stream_buffered_t.html new file mode 100644 index 0000000000000000000000000000000000000000..5ad2b5ef78fba2654ba42e023a7bd1e9c134afce --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_buffered_t.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_stream_buffered_t — libmongoc 1.24.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.24.2/mongoc_stream_close.html b/libmongoc/1.24.2/mongoc_stream_close.html new file mode 100644 index 0000000000000000000000000000000000000000..1913be37e9630a88ae3a3c69b6b364c8234f05b9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_close.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_stream_close() — libmongoc 1.24.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.24.2/mongoc_stream_cork.html b/libmongoc/1.24.2/mongoc_stream_cork.html new file mode 100644 index 0000000000000000000000000000000000000000..95561ab2bb11c50a4f19110ee2ff8fd4f2c4ac74 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_cork.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_stream_cork() — libmongoc 1.24.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.24.2/mongoc_stream_destroy.html b/libmongoc/1.24.2/mongoc_stream_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..6d325358d385c183ecf1af941ef81da1d271b517 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_destroy.html @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + mongoc_stream_destroy() — libmongoc 1.24.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.24.2/mongoc_stream_file_get_fd.html b/libmongoc/1.24.2/mongoc_stream_file_get_fd.html new file mode 100644 index 0000000000000000000000000000000000000000..a6ed7bfa9ad61d258bb48a464c0cdc20c6684ac5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_file_get_fd.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_stream_file_get_fd() — libmongoc 1.24.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.24.2/mongoc_stream_file_new.html b/libmongoc/1.24.2/mongoc_stream_file_new.html new file mode 100644 index 0000000000000000000000000000000000000000..9e3314ba20f374082e56972a1bad00acd3209cec --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_file_new.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_stream_file_new() — libmongoc 1.24.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.24.2/mongoc_stream_file_new_for_path.html b/libmongoc/1.24.2/mongoc_stream_file_new_for_path.html new file mode 100644 index 0000000000000000000000000000000000000000..51aca9fab55fac9183d2e7f33f360d2e434d31c8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_file_new_for_path.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_stream_file_new_for_path() — libmongoc 1.24.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.24.2/mongoc_stream_file_t.html b/libmongoc/1.24.2/mongoc_stream_file_t.html new file mode 100644 index 0000000000000000000000000000000000000000..765a51db05e2c7909caeebc6f89a4528bc373c27 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_file_t.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + mongoc_stream_file_t — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_stream_flush.html b/libmongoc/1.24.2/mongoc_stream_flush.html new file mode 100644 index 0000000000000000000000000000000000000000..d8cc3458a35e480fc0c8ee0d1aa0eff828a489c0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_flush.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_stream_flush() — libmongoc 1.24.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.24.2/mongoc_stream_get_base_stream.html b/libmongoc/1.24.2/mongoc_stream_get_base_stream.html new file mode 100644 index 0000000000000000000000000000000000000000..d7c377c5295259b5aa5db6541260efa5e88ae453 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_get_base_stream.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_stream_get_base_stream() — libmongoc 1.24.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.24.2/mongoc_stream_gridfs_new.html b/libmongoc/1.24.2/mongoc_stream_gridfs_new.html new file mode 100644 index 0000000000000000000000000000000000000000..b761fb7fd8c068edfbe8e61f896148c199bcfb24 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_gridfs_new.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_stream_gridfs_new() — libmongoc 1.24.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.24.2/mongoc_stream_read.html b/libmongoc/1.24.2/mongoc_stream_read.html new file mode 100644 index 0000000000000000000000000000000000000000..ee651e2d74bf78c85a287181a2bd4d4100781b76 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_read.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_stream_read() — libmongoc 1.24.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.24.2/mongoc_stream_readv.html b/libmongoc/1.24.2/mongoc_stream_readv.html new file mode 100644 index 0000000000000000000000000000000000000000..62474c16be3796213a0d1fb94a94e9aaf5c403b8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_readv.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + mongoc_stream_readv() — libmongoc 1.24.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.24.2/mongoc_stream_setsockopt.html b/libmongoc/1.24.2/mongoc_stream_setsockopt.html new file mode 100644 index 0000000000000000000000000000000000000000..d852990881b7501949292a31a92992af8745531b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_setsockopt.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_stream_setsockopt() — libmongoc 1.24.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.24.2/mongoc_stream_should_retry.html b/libmongoc/1.24.2/mongoc_stream_should_retry.html new file mode 100644 index 0000000000000000000000000000000000000000..4a02063eef50324c89435b4dcdcc4c6a67d6b4bc --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_should_retry.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_stream_should_retry() — libmongoc 1.24.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.24.2/mongoc_stream_socket_get_socket.html b/libmongoc/1.24.2/mongoc_stream_socket_get_socket.html new file mode 100644 index 0000000000000000000000000000000000000000..b4cf8876ceb4adff9eac8c0d400c381614302e62 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_socket_get_socket.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_stream_socket_get_socket() — libmongoc 1.24.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.24.2/mongoc_stream_socket_new.html b/libmongoc/1.24.2/mongoc_stream_socket_new.html new file mode 100644 index 0000000000000000000000000000000000000000..6a4c1a9f6dd2dcd55afd24897ed531a19b556a6d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_socket_new.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_stream_socket_new() — libmongoc 1.24.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.24.2/mongoc_stream_socket_t.html b/libmongoc/1.24.2/mongoc_stream_socket_t.html new file mode 100644 index 0000000000000000000000000000000000000000..1383eb2dcfbd52df1805dffa1f661b13956c2635 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_socket_t.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + mongoc_stream_socket_t — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_stream_t.html b/libmongoc/1.24.2/mongoc_stream_t.html new file mode 100644 index 0000000000000000000000000000000000000000..df201d314ea2064a223080f5f3ca7b5d1d419cd9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_t.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_stream_t — libmongoc 1.24.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.

    + +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_stream_timed_out.html b/libmongoc/1.24.2/mongoc_stream_timed_out.html new file mode 100644 index 0000000000000000000000000000000000000000..e10b1b1f9a0622445515bc45d893bd9d5abc7354 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_timed_out.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_stream_timed_out() — libmongoc 1.24.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.24.2/mongoc_stream_tls_t.html b/libmongoc/1.24.2/mongoc_stream_tls_t.html new file mode 100644 index 0000000000000000000000000000000000000000..d3568eb336b1ec7edaa3198c5eaddc38f94810f9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_tls_t.html @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + mongoc_stream_tls_t — libmongoc 1.24.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.24.2/mongoc_stream_uncork.html b/libmongoc/1.24.2/mongoc_stream_uncork.html new file mode 100644 index 0000000000000000000000000000000000000000..d00f309142fa3a76d5b4e094c721eb0e18dd5bd8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_uncork.html @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + mongoc_stream_uncork() — libmongoc 1.24.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.24.2/mongoc_stream_write.html b/libmongoc/1.24.2/mongoc_stream_write.html new file mode 100644 index 0000000000000000000000000000000000000000..0d168546046900f9b53a073a137bca532876d4dc --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_write.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_stream_write() — libmongoc 1.24.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.24.2/mongoc_stream_writev.html b/libmongoc/1.24.2/mongoc_stream_writev.html new file mode 100644 index 0000000000000000000000000000000000000000..723d55ceb220d4892cdab285ec7663087cafebec --- /dev/null +++ b/libmongoc/1.24.2/mongoc_stream_writev.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_stream_writev() — libmongoc 1.24.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.24.2/mongoc_topology_description_destroy.html b/libmongoc/1.24.2/mongoc_topology_description_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..2753854f6b84998bea4364718b0ada8762d7cde7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_topology_description_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_topology_description_destroy() — libmongoc 1.24.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.24.2/mongoc_topology_description_get_servers.html b/libmongoc/1.24.2/mongoc_topology_description_get_servers.html new file mode 100644 index 0000000000000000000000000000000000000000..9f9643bf69b3e580c65682103e9c761b33fa6e63 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_topology_description_get_servers.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_topology_description_get_servers() — libmongoc 1.24.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.24.2/mongoc_topology_description_has_readable_server.html b/libmongoc/1.24.2/mongoc_topology_description_has_readable_server.html new file mode 100644 index 0000000000000000000000000000000000000000..4bb767f70c53399c0352b4fdbfd54c61cbb0a1c7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_topology_description_has_readable_server.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_topology_description_has_readable_server() — libmongoc 1.24.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.24.2/mongoc_topology_description_has_writable_server.html b/libmongoc/1.24.2/mongoc_topology_description_has_writable_server.html new file mode 100644 index 0000000000000000000000000000000000000000..a9129c850fc69a4199ecb43721f0cc15837b683f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_topology_description_has_writable_server.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_topology_description_has_writable_server() — libmongoc 1.24.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.24.2/mongoc_topology_description_new_copy.html b/libmongoc/1.24.2/mongoc_topology_description_new_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..ecc36aec147de3c9909320c78158d7bc8a7aab58 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_topology_description_new_copy.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_topology_description_new_copy() — libmongoc 1.24.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.24.2/mongoc_topology_description_t.html b/libmongoc/1.24.2/mongoc_topology_description_t.html new file mode 100644 index 0000000000000000000000000000000000000000..42ae79996936d63c007e972172f8fb0a007c3fcf --- /dev/null +++ b/libmongoc/1.24.2/mongoc_topology_description_t.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_topology_description_t — libmongoc 1.24.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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_topology_description_type.html b/libmongoc/1.24.2/mongoc_topology_description_type.html new file mode 100644 index 0000000000000000000000000000000000000000..8d4cb003959b63e9e302cf2868a4034623e6641a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_topology_description_type.html @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + mongoc_topology_description_type() — libmongoc 1.24.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.24.2/mongoc_transaction_opt_t.html b/libmongoc/1.24.2/mongoc_transaction_opt_t.html new file mode 100644 index 0000000000000000000000000000000000000000..02971b14d89c1916030660eceafe5b089c4bd24a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opt_t.html @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + mongoc_transaction_opt_t — libmongoc 1.24.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;
    +}
    +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_transaction_opts_clone.html b/libmongoc/1.24.2/mongoc_transaction_opts_clone.html new file mode 100644 index 0000000000000000000000000000000000000000..7dfaa03812082cbca8e0c695d2baae8fd7a2b74f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_clone.html @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_clone() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_destroy.html b/libmongoc/1.24.2/mongoc_transaction_opts_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..f76e4fdd7fe571ec030c2aafbba1282d272ee469 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_destroy.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_destroy() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_get_max_commit_time_ms.html b/libmongoc/1.24.2/mongoc_transaction_opts_get_max_commit_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..bda14aa3769a72254653759e1a2e9af0bc154efa --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_get_max_commit_time_ms.html @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_max_commit_time_ms() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_get_read_concern.html b/libmongoc/1.24.2/mongoc_transaction_opts_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..7db97a8abd554013e71e58b4cc38635eb5c6eb3c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_get_read_concern.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_read_concern() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_get_read_prefs.html b/libmongoc/1.24.2/mongoc_transaction_opts_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..0678c2a49e30a71782e8c7279f1086c293348518 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_get_read_prefs.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_read_prefs() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_get_write_concern.html b/libmongoc/1.24.2/mongoc_transaction_opts_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..dad1ecd09b8fb50c74b093d7bf36e80f49f19716 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_get_write_concern.html @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_get_write_concern() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_new.html b/libmongoc/1.24.2/mongoc_transaction_opts_new.html new file mode 100644 index 0000000000000000000000000000000000000000..9d1cc56c7605b1a31637525b4f5d406ddc4b237a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_new.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_new() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_set_max_commit_time_ms.html b/libmongoc/1.24.2/mongoc_transaction_opts_set_max_commit_time_ms.html new file mode 100644 index 0000000000000000000000000000000000000000..39bd875cfe8085ebe97588b01cfbe44842911504 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_set_max_commit_time_ms.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_max_commit_time_ms() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_set_read_concern.html b/libmongoc/1.24.2/mongoc_transaction_opts_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..a303a09f6568b5acab518af6943de5a7e4e9786a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_set_read_concern.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_read_concern() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_set_read_prefs.html b/libmongoc/1.24.2/mongoc_transaction_opts_set_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..7942c03b12061e91fd414178583037c4c8294a46 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_set_read_prefs.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_read_prefs() — libmongoc 1.24.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.24.2/mongoc_transaction_opts_set_write_concern.html b/libmongoc/1.24.2/mongoc_transaction_opts_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..2dfd4ed2ac4f7173b068fb92978e9908b64bc9e2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_opts_set_write_concern.html @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + mongoc_transaction_opts_set_write_concern() — libmongoc 1.24.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.24.2/mongoc_transaction_state_t.html b/libmongoc/1.24.2/mongoc_transaction_state_t.html new file mode 100644 index 0000000000000000000000000000000000000000..da55cb6bb09be8812888eb8de66f0c82be982c84 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_transaction_state_t.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + mongoc_transaction_state_t — libmongoc 1.24.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_NONEThere is no transaction in progress.
    MONGOC_TRANSACTION_STARTINGA transaction has been started, but no operation has been sent to the server.
    MONGOC_TRANSACTION_IN_PROGRESSA transaction is in progress.
    MONGOC_TRANSACTION_COMMITTEDThe transaction was committed.
    MONGOC_TRANSACTION_ABORTEDThe transaction was aborted.
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_update_flags_t.html b/libmongoc/1.24.2/mongoc_update_flags_t.html new file mode 100644 index 0000000000000000000000000000000000000000..ff59fc3818bf5221605670f754ab956c03d766df --- /dev/null +++ b/libmongoc/1.24.2/mongoc_update_flags_t.html @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + mongoc_update_flags_t — libmongoc 1.24.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_NONENo update flags set.
    MONGOC_UPDATE_UPSERTIf an upsert should be performed.
    MONGOC_UPDATE_MULTI_UPDATEIf more than a single matching document should be updated. By default only the first document is updated.
    MONGOC_UPDATE_NO_VALIDATEDo 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.24.2/mongoc_uri_copy.html b/libmongoc/1.24.2/mongoc_uri_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..d8d19321cb108896da6cf68f417720e036785884 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_copy.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_copy() — libmongoc 1.24.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.24.2/mongoc_uri_destroy.html b/libmongoc/1.24.2/mongoc_uri_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..bbe267e673d6aacafa1e047d59812dfd0d0a01b9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_uri_destroy() — libmongoc 1.24.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.24.2/mongoc_uri_get_auth_mechanism.html b/libmongoc/1.24.2/mongoc_uri_get_auth_mechanism.html new file mode 100644 index 0000000000000000000000000000000000000000..630a6490b4fdc26035b2c26fac578b68ce952afa --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_auth_mechanism.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_uri_get_auth_mechanism() — libmongoc 1.24.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.24.2/mongoc_uri_get_auth_source.html b/libmongoc/1.24.2/mongoc_uri_get_auth_source.html new file mode 100644 index 0000000000000000000000000000000000000000..6e81df9e840655dc8856c53ee28396664484b7ac --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_auth_source.html @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + mongoc_uri_get_auth_source() — libmongoc 1.24.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.24.2/mongoc_uri_get_compressors.html b/libmongoc/1.24.2/mongoc_uri_get_compressors.html new file mode 100644 index 0000000000000000000000000000000000000000..3907b3de64a55ff77c4c3dcd4405255da42a786f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_compressors.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + mongoc_uri_get_compressors() — libmongoc 1.24.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.24.2/mongoc_uri_get_database.html b/libmongoc/1.24.2/mongoc_uri_get_database.html new file mode 100644 index 0000000000000000000000000000000000000000..ad3e0cb015db20b4cc564a974f5ac8a5ba967c7f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_database.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_database() — libmongoc 1.24.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.24.2/mongoc_uri_get_hosts.html b/libmongoc/1.24.2/mongoc_uri_get_hosts.html new file mode 100644 index 0000000000000000000000000000000000000000..1d2160df65f8132a52f848fad3755eb178a26a74 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_hosts.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_hosts() — libmongoc 1.24.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.24.2/mongoc_uri_get_mechanism_properties.html b/libmongoc/1.24.2/mongoc_uri_get_mechanism_properties.html new file mode 100644 index 0000000000000000000000000000000000000000..6ba0c2f70b1e8c9375e5cd18d2cbac38de0f218d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_mechanism_properties.html @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + mongoc_uri_get_mechanism_properties() — libmongoc 1.24.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.24.2/mongoc_uri_get_option_as_bool.html b/libmongoc/1.24.2/mongoc_uri_get_option_as_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..de6744d30b5f367d7c0fcee71ebf22bb4f9a604f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_option_as_bool.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_bool() — libmongoc 1.24.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.24.2/mongoc_uri_get_option_as_int32.html b/libmongoc/1.24.2/mongoc_uri_get_option_as_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..320cc5bff987c4406cec2f7f8910affd4257e53f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_option_as_int32.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_int32() — libmongoc 1.24.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.24.2/mongoc_uri_get_option_as_int64.html b/libmongoc/1.24.2/mongoc_uri_get_option_as_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..acdc36dfd554eb859379bb7746a4229d9c505e64 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_option_as_int64.html @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_int64() — libmongoc 1.24.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.24.2/mongoc_uri_get_option_as_utf8.html b/libmongoc/1.24.2/mongoc_uri_get_option_as_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..e1a3fae06bccb3eee0c122784ccbecb3b05f23ac --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_option_as_utf8.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_option_as_utf8() — libmongoc 1.24.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.24.2/mongoc_uri_get_options.html b/libmongoc/1.24.2/mongoc_uri_get_options.html new file mode 100644 index 0000000000000000000000000000000000000000..b65f3090736377ccfffeb9fc933384cf35dbce2f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_options.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_options() — libmongoc 1.24.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.24.2/mongoc_uri_get_password.html b/libmongoc/1.24.2/mongoc_uri_get_password.html new file mode 100644 index 0000000000000000000000000000000000000000..b5ac6dbe5a50b291d39089b0c964a914ab34c3d8 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_password.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_password() — libmongoc 1.24.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.24.2/mongoc_uri_get_read_concern.html b/libmongoc/1.24.2/mongoc_uri_get_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..5ab528a138b4f3a8e81c45d3253829240bd6c52c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_read_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_read_concern() — libmongoc 1.24.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.24.2/mongoc_uri_get_read_prefs.html b/libmongoc/1.24.2/mongoc_uri_get_read_prefs.html new file mode 100644 index 0000000000000000000000000000000000000000..30bd59236ef63ce658fb88ac829293a4602ce106 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_read_prefs.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_uri_get_read_prefs() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_read_prefs()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.2.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_uri_get_read_prefs_t() in new code.

    +
    +
    +
    +

    Synopsis

    +
    const bson_t *
    +mongoc_uri_get_read_prefs (const mongoc_uri_t *uri);
    +
    +
    +
    +
    +

    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.24.2/mongoc_uri_get_read_prefs_t.html b/libmongoc/1.24.2/mongoc_uri_get_read_prefs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..255aba360ef198b7435c9c837225a95e8330917e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_read_prefs_t.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_read_prefs_t() — libmongoc 1.24.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.24.2/mongoc_uri_get_replica_set.html b/libmongoc/1.24.2/mongoc_uri_get_replica_set.html new file mode 100644 index 0000000000000000000000000000000000000000..aba2610bf632951744530434efc82e4aefa2475d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_replica_set.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_replica_set() — libmongoc 1.24.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.24.2/mongoc_uri_get_service.html b/libmongoc/1.24.2/mongoc_uri_get_service.html new file mode 100644 index 0000000000000000000000000000000000000000..0b2ddd1f39f7510a98130290c338875579f47f56 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_service.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_uri_get_service() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_service()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.21.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_uri_get_srv_hostname() in new code.

    +
    +
    +
    +

    Synopsis

    +
    const char *
    +mongoc_uri_get_service (const mongoc_uri_t *uri)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_uri_get_srv_hostname);
    +
    +
    +
    +
    +

    Parameters

    + +

    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.24.2/mongoc_uri_get_srv_hostname.html b/libmongoc/1.24.2/mongoc_uri_get_srv_hostname.html new file mode 100644 index 0000000000000000000000000000000000000000..2bfed6f4ff191ab92d879564d986aa8b606b9514 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_srv_hostname.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_srv_hostname() — libmongoc 1.24.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.24.2/mongoc_uri_get_srv_service_name.html b/libmongoc/1.24.2/mongoc_uri_get_srv_service_name.html new file mode 100644 index 0000000000000000000000000000000000000000..354713541890e394a20a1c7f6fac74e250874956 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_srv_service_name.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_srv_service_name() — libmongoc 1.24.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.24.2/mongoc_uri_get_ssl.html b/libmongoc/1.24.2/mongoc_uri_get_ssl.html new file mode 100644 index 0000000000000000000000000000000000000000..0942f95d23e271ca3d93657bde3f84f5690ee57f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_ssl.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_uri_get_ssl() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_uri_get_ssl()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.15.0: This function is deprecated and should not be used in new code. See Manage Collection Indexes.

    +
    +
    +

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

    +

    Please use mongoc_uri_get_tls() in new code.

    +
    +

    Synopsis

    +
    bool
    +mongoc_uri_get_ssl (const mongoc_uri_t *uri)
    +   BSON_GNUC_DEPRECATED_FOR (mongoc_uri_get_tls);
    +
    +
    +
    +
    +

    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.24.2/mongoc_uri_get_string.html b/libmongoc/1.24.2/mongoc_uri_get_string.html new file mode 100644 index 0000000000000000000000000000000000000000..97d2a22a3c2766595f0b323bcbbf9845aa432915 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_string.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_string() — libmongoc 1.24.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.24.2/mongoc_uri_get_tls.html b/libmongoc/1.24.2/mongoc_uri_get_tls.html new file mode 100644 index 0000000000000000000000000000000000000000..4a307cc57337d8d1d58ae329c1b35a3ee02e9868 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_tls.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_tls() — libmongoc 1.24.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.24.2/mongoc_uri_get_username.html b/libmongoc/1.24.2/mongoc_uri_get_username.html new file mode 100644 index 0000000000000000000000000000000000000000..50c2a0d24c2d27098775007b8783f1747bad793d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_username.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_username() — libmongoc 1.24.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.24.2/mongoc_uri_get_write_concern.html b/libmongoc/1.24.2/mongoc_uri_get_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..ec69f150cba1cb4ee54c63c21cdccb6ea2513a5c --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_get_write_concern.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_get_write_concern() — libmongoc 1.24.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.24.2/mongoc_uri_has_option.html b/libmongoc/1.24.2/mongoc_uri_has_option.html new file mode 100644 index 0000000000000000000000000000000000000000..bd80dc3b1166f20031517da9eeae896e3d6d41a2 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_has_option.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_uri_has_option() — libmongoc 1.24.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.24.2/mongoc_uri_new.html b/libmongoc/1.24.2/mongoc_uri_new.html new file mode 100644 index 0000000000000000000000000000000000000000..a5e67190cb01e73af2f51211369ffcf4e4415982 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_new.html @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + mongoc_uri_new() — libmongoc 1.24.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.24.2/mongoc_uri_new_for_host_port.html b/libmongoc/1.24.2/mongoc_uri_new_for_host_port.html new file mode 100644 index 0000000000000000000000000000000000000000..3cd706c8aea2269ca4897ac4c99bc8968640f209 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_new_for_host_port.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_uri_new_for_host_port() — libmongoc 1.24.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.24.2/mongoc_uri_new_with_error.html b/libmongoc/1.24.2/mongoc_uri_new_with_error.html new file mode 100644 index 0000000000000000000000000000000000000000..ff3d9cb4fe0c570ab087ba0a0d8021d548564f28 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_new_with_error.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + mongoc_uri_new_with_error() — libmongoc 1.24.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.24.2/mongoc_uri_option_is_bool.html b/libmongoc/1.24.2/mongoc_uri_option_is_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..c881a059f07c320c9460278fa3ef06b45970fb7f --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_option_is_bool.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_bool() — libmongoc 1.24.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.24.2/mongoc_uri_option_is_int32.html b/libmongoc/1.24.2/mongoc_uri_option_is_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..759157c8364685afda90149114470d7d5be7e934 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_option_is_int32.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_int32() — libmongoc 1.24.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.24.2/mongoc_uri_option_is_int64.html b/libmongoc/1.24.2/mongoc_uri_option_is_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..076c12e402a0a0b2e1c4c31a4f76353cbc3b33db --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_option_is_int64.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_int64() — libmongoc 1.24.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.24.2/mongoc_uri_option_is_utf8.html b/libmongoc/1.24.2/mongoc_uri_option_is_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..5e949efdf9376ee9eba5239338bfcc691fe98a0a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_option_is_utf8.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_uri_option_is_utf8() — libmongoc 1.24.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.24.2/mongoc_uri_set_auth_mechanism.html b/libmongoc/1.24.2/mongoc_uri_set_auth_mechanism.html new file mode 100644 index 0000000000000000000000000000000000000000..e15bcaf6d07cd395d1064027b005b4f2e4486522 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_auth_mechanism.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_uri_set_auth_mechanism() — libmongoc 1.24.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.24.2/mongoc_uri_set_auth_source.html b/libmongoc/1.24.2/mongoc_uri_set_auth_source.html new file mode 100644 index 0000000000000000000000000000000000000000..f9e6e8e46358796cc577564874e3e483ff1c463b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_auth_source.html @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + mongoc_uri_set_auth_source() — libmongoc 1.24.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.24.2/mongoc_uri_set_compressors.html b/libmongoc/1.24.2/mongoc_uri_set_compressors.html new file mode 100644 index 0000000000000000000000000000000000000000..2cff9a16020010c3be307b15b2068b08d3a2382d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_compressors.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + mongoc_uri_set_compressors() — libmongoc 1.24.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.24.2/mongoc_uri_set_database.html b/libmongoc/1.24.2/mongoc_uri_set_database.html new file mode 100644 index 0000000000000000000000000000000000000000..06b99cb2567b1ba3ca18399998b816401d08683d --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_database.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_uri_set_database() — libmongoc 1.24.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.24.2/mongoc_uri_set_mechanism_properties.html b/libmongoc/1.24.2/mongoc_uri_set_mechanism_properties.html new file mode 100644 index 0000000000000000000000000000000000000000..36ec89b6a91efc79b9af8ea8855168abb968a319 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_mechanism_properties.html @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + mongoc_uri_set_mechanism_properties() — libmongoc 1.24.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.24.2/mongoc_uri_set_option_as_bool.html b/libmongoc/1.24.2/mongoc_uri_set_option_as_bool.html new file mode 100644 index 0000000000000000000000000000000000000000..ca62e90c2143d7126202ddb505d05f795f8aeaa5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_option_as_bool.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_bool() — libmongoc 1.24.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.24.2/mongoc_uri_set_option_as_int32.html b/libmongoc/1.24.2/mongoc_uri_set_option_as_int32.html new file mode 100644 index 0000000000000000000000000000000000000000..1fcdc2f245427102e2a747d4bedae0e8aaa35f2b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_option_as_int32.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_int32() — libmongoc 1.24.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.24.2/mongoc_uri_set_option_as_int64.html b/libmongoc/1.24.2/mongoc_uri_set_option_as_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..76d8e93d50b6cf22d21a2e793e9c8619933b21b0 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_option_as_int64.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_int64() — libmongoc 1.24.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.24.2/mongoc_uri_set_option_as_utf8.html b/libmongoc/1.24.2/mongoc_uri_set_option_as_utf8.html new file mode 100644 index 0000000000000000000000000000000000000000..93f7d0fd70e18820e68d25728a1d4b632311e650 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_option_as_utf8.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_uri_set_option_as_utf8() — libmongoc 1.24.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.24.2/mongoc_uri_set_password.html b/libmongoc/1.24.2/mongoc_uri_set_password.html new file mode 100644 index 0000000000000000000000000000000000000000..44fa9a179e1e72ef0f17df276d65dc3b6294a9ea --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_password.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_uri_set_password() — libmongoc 1.24.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.24.2/mongoc_uri_set_read_concern.html b/libmongoc/1.24.2/mongoc_uri_set_read_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..6d12d446c19c9fe3ff9a6cc3232d4cc3366793fc --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_read_concern.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_uri_set_read_concern() — libmongoc 1.24.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.24.2/mongoc_uri_set_read_prefs_t.html b/libmongoc/1.24.2/mongoc_uri_set_read_prefs_t.html new file mode 100644 index 0000000000000000000000000000000000000000..9025bb1f216f80661ae5f11b21566dd1792323a9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_read_prefs_t.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_uri_set_read_prefs_t() — libmongoc 1.24.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.24.2/mongoc_uri_set_username.html b/libmongoc/1.24.2/mongoc_uri_set_username.html new file mode 100644 index 0000000000000000000000000000000000000000..0f9ebc231fa07250ae3ab9f59306b6ae44891549 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_username.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_uri_set_username() — libmongoc 1.24.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.24.2/mongoc_uri_set_write_concern.html b/libmongoc/1.24.2/mongoc_uri_set_write_concern.html new file mode 100644 index 0000000000000000000000000000000000000000..1a0e17495f573ead68b75792021a57fe28e251a4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_set_write_concern.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_uri_set_write_concern() — libmongoc 1.24.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.24.2/mongoc_uri_t.html b/libmongoc/1.24.2/mongoc_uri_t.html new file mode 100644 index 0000000000000000000000000000000000000000..c0fa799215d79d0dba81727459510cefe5cdc9ef --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_t.html @@ -0,0 +1,664 @@ + + + + + + + + + + + + + + mongoc_uri_t — libmongoc 1.24.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

    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDefaultDescription
    MONGOC_URI_RETRYREADSretryreadstrueIf “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_RETRYWRITESretrywritestrue if driver built w/ TLSIf “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_APPNAMEappnameEmpty (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_TLStlsEmpty (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_COMPRESSORScompressorsEmpty (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_CONNECTTIMEOUTMSconnecttimeoutms10,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_SOCKETTIMEOUTMSsockettimeoutms300,000 ms (5 minutes)The time in milliseconds to attempt to send or receive on a socket before the attempt times out.
    MONGOC_URI_REPLICASETreplicasetEmpty (no replicaset)The name of the Replica Set that the driver should connect to.
    MONGOC_URI_ZLIBCOMPRESSIONLEVELzlibcompressionlevel-1When 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_LOADBALANCEDloadbalancedfalseIf true, this indicates the driver is connecting to a MongoDB cluster behind a load balancer.
    MONGOC_URI_SRVMAXHOSTSsrvmaxhosts0If 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

    + +++++ + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_AUTHMECHANISMauthmechanismSpecifies the mechanism to use when authenticating as the provided user. See Authentication for supported values.
    MONGOC_URI_AUTHMECHANISMPROPERTIESauthmechanismpropertiesCertain 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_AUTHSOURCEauthsourceThe 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

    + +++++ + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_CANONICALIZEHOSTNAMEcanonicalizehostnameUse the canonical hostname of the service, rather than its configured alias, when authenticating with Cyrus-SASL Kerberos.
    MONGOC_URI_GSSAPISERVICENAMEgssapiservicenameUse alternative service name. The default is mongodb.
    +
    +
    +
    +

    TLS Options

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_TLStls{true|false}, indicating if TLS must be used.
    MONGOC_URI_TLSCERTIFICATEKEYFILEtlscertificatekeyfilePath to PEM formatted Private Key, with its Public Certificate concatenated at the end.
    MONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORDtlscertificatekeypasswordThe password, if any, to use to unlock encrypted Private Key.
    MONGOC_URI_TLSCAFILEtlscafileOne, or a bundle of, Certificate Authorities whom should be considered to be trusted.
    MONGOC_URI_TLSALLOWINVALIDCERTIFICATEStlsallowinvalidcertificatesAccept and ignore certificate verification errors (e.g. untrusted issuer, expired, etc.)
    MONGOC_URI_TLSALLOWINVALIDHOSTNAMEStlsallowinvalidhostnamesIgnore hostname verification of the certificate (e.g. Man In The Middle, using valid certificate, but issued for another hostname)
    MONGOC_URI_TLSINSECUREtlsinsecure{true|false}, indicating if insecure TLS options should be used. Currently this implies MONGOC_URI_TLSALLOWINVALIDCERTIFICATES and MONGOC_URI_TLSALLOWINVALIDHOSTNAMES.
    MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECKtlsdisablecertificaterevocationcheck{true|false}, indicates if revocation checking (CRL / OCSP) should be disabled.
    MONGOC_URI_TLSDISABLEOCSPENDPOINTCHECKtlsdisableocspendpointcheck{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.

    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDeprecated ForKey
    MONGOC_URI_SSLsslMONGOC_URI_TLStls
    MONGOC_URI_SSLCLIENTCERTIFICATEKEYFILEsslclientcertificatekeyfileMONGOC_URI_TLSCERTIFICATEKEYFILEtlscertificatekeyfile
    MONGOC_URI_SSLCLIENTCERTIFICATEKEYPASSWORDsslclientcertificatekeypasswordMONGOC_URI_TLSCERTIFICATEKEYFILEPASSWORDtlscertificatekeypassword
    MONGOC_URI_SSLCERTIFICATEAUTHORITYFILEsslcertificateauthorityfileMONGOC_URI_TLSCAFILEtlscafile
    MONGOC_URI_SSLALLOWINVALIDCERTIFICATESsslallowinvalidcertificatesMONGOC_URI_TLSALLOWINVALIDCERTIFICATEStlsallowinvalidcertificates
    MONGOC_URI_SSLALLOWINVALIDHOSTNAMESsslallowinvalidhostnamesMONGOC_URI_TLSALLOWINVALIDHOSTNAMEStlsallowinvalidhostnames
    +
    +
    +

    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”.

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_HEARTBEATFREQUENCYMSheartbeatfrequencymsThe 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_SERVERSELECTIONTIMEOUTMSserverselectiontimeoutmsA timeout in milliseconds to block for server selection before throwing an exception. The default is 30,0000ms (30 seconds).
    MONGOC_URI_SERVERSELECTIONTRYONCEserverselectiontryonceIf “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_SOCKETCHECKINTERVALMSsocketcheckintervalmsOnly 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_DIRECTCONNECTIONdirectconnectionIf “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.

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_MAXPOOLSIZEmaxpoolsizeThe 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_MINPOOLSIZEminpoolsizeDeprecated. This option’s behavior does not match its name, and its actual behavior will likely hurt performance.
    MONGOC_URI_MAXIDLETIMEMSmaxidletimemsNot implemented.
    MONGOC_URI_WAITQUEUEMULTIPLEwaitqueuemultipleNot implemented.
    MONGOC_URI_WAITQUEUETIMEOUTMSwaitqueuetimeoutmsThe maximum time to wait for a client to become available from the pool.
    +
    +
    +

    Write Concern Options

    + +++++ + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_Ww

    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_WTIMEOUTMSwtimeoutmsThe 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_JOURNALjournal

    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

    + +++++ + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_READCONCERNLEVELreadconcernlevelThe 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. +
    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_READPREFERENCEreadpreference

    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_READPREFERENCETAGSreadpreferencetagsA representation of a tag set. See also Tag Sets.
    MONGOC_URI_LOCALTHRESHOLDMSlocalthresholdmsHow 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_MAXSTALENESSSECONDSmaxstalenesssecondsThe 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.

    + +++++ + + + + + + + + + + + + +
    ConstantKeyDescription
    MONGOC_URI_SAFEsafe{true|false} Same as w={1|0}
    +
    + +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_uri_unescape.html b/libmongoc/1.24.2/mongoc_uri_unescape.html new file mode 100644 index 0000000000000000000000000000000000000000..cbc7e11fc5769906d766110b9a59ffc80251b533 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_uri_unescape.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_uri_unescape() — libmongoc 1.24.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.24.2/mongoc_version.html b/libmongoc/1.24.2/mongoc_version.html new file mode 100644 index 0000000000000000000000000000000000000000..7307ff277fcb1f2d231f74ea473b81d40c2f090b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_version.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + Version Checks — libmongoc 1.24.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
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_write_concern_append.html b/libmongoc/1.24.2/mongoc_write_concern_append.html new file mode 100644 index 0000000000000000000000000000000000000000..4727fa0b3f4cb6cb1b36014f597ab4e1c9f71530 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_append.html @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + mongoc_write_concern_append() — libmongoc 1.24.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.24.2/mongoc_write_concern_copy.html b/libmongoc/1.24.2/mongoc_write_concern_copy.html new file mode 100644 index 0000000000000000000000000000000000000000..35d517c569b983692145d05e64294d3bc46d6292 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_copy.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_write_concern_copy() — libmongoc 1.24.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.24.2/mongoc_write_concern_destroy.html b/libmongoc/1.24.2/mongoc_write_concern_destroy.html new file mode 100644 index 0000000000000000000000000000000000000000..54301509079e3b5905d619ae407bd35c27af4cfa --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_destroy.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_write_concern_destroy() — libmongoc 1.24.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.24.2/mongoc_write_concern_get_fsync.html b/libmongoc/1.24.2/mongoc_write_concern_get_fsync.html new file mode 100644 index 0000000000000000000000000000000000000000..81ff50b85b243c12e4e2323be009df07c631ad9e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_get_fsync.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_fsync() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_get_fsync()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.4.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_write_concern_get_journal() in new code.

    +
    +
    +
    +

    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.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_write_concern_get_journal.html b/libmongoc/1.24.2/mongoc_write_concern_get_journal.html new file mode 100644 index 0000000000000000000000000000000000000000..1d460e6d51a5595ab781ad641843707d0b9fc4f4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_get_journal.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_journal() — libmongoc 1.24.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.24.2/mongoc_write_concern_get_w.html b/libmongoc/1.24.2/mongoc_write_concern_get_w.html new file mode 100644 index 0000000000000000000000000000000000000000..8c93fa3a37fded6eeebcd0be4860732433ba06f9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_get_w.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_w() — libmongoc 1.24.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.24.2/mongoc_write_concern_get_wmajority.html b/libmongoc/1.24.2/mongoc_write_concern_get_wmajority.html new file mode 100644 index 0000000000000000000000000000000000000000..3a1e0b023cc2dec052226359ebcbea99052953b9 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_get_wmajority.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wmajority() — libmongoc 1.24.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.24.2/mongoc_write_concern_get_wtag.html b/libmongoc/1.24.2/mongoc_write_concern_get_wtag.html new file mode 100644 index 0000000000000000000000000000000000000000..d855e822a331006407ce8a66803fcecbb9d979f5 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_get_wtag.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wtag() — libmongoc 1.24.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.24.2/mongoc_write_concern_get_wtimeout.html b/libmongoc/1.24.2/mongoc_write_concern_get_wtimeout.html new file mode 100644 index 0000000000000000000000000000000000000000..456430e3695c8e9d2ea85b273aa348518ab18e18 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_get_wtimeout.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wtimeout() — libmongoc 1.24.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.24.2/mongoc_write_concern_get_wtimeout_int64.html b/libmongoc/1.24.2/mongoc_write_concern_get_wtimeout_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..8e10a154ec765b74195f979911d4994d2c9de809 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_get_wtimeout_int64.html @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + mongoc_write_concern_get_wtimeout_int64() — libmongoc 1.24.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.24.2/mongoc_write_concern_is_acknowledged.html b/libmongoc/1.24.2/mongoc_write_concern_is_acknowledged.html new file mode 100644 index 0000000000000000000000000000000000000000..7f757c47a94bb68f328c2b579212f962ba9134f4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_is_acknowledged.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + mongoc_write_concern_is_acknowledged() — libmongoc 1.24.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.24.2/mongoc_write_concern_is_default.html b/libmongoc/1.24.2/mongoc_write_concern_is_default.html new file mode 100644 index 0000000000000000000000000000000000000000..ce529843f66bc3bcc7dc94c993391a6a1b5e93f4 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_is_default.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_write_concern_is_default() — libmongoc 1.24.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.24.2/mongoc_write_concern_is_valid.html b/libmongoc/1.24.2/mongoc_write_concern_is_valid.html new file mode 100644 index 0000000000000000000000000000000000000000..16d3f53a925bc995301fd7face49ab6096630f45 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_is_valid.html @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + mongoc_write_concern_is_valid() — libmongoc 1.24.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.24.2/mongoc_write_concern_journal_is_set.html b/libmongoc/1.24.2/mongoc_write_concern_journal_is_set.html new file mode 100644 index 0000000000000000000000000000000000000000..060d297407e71b8601b42faaf9f167db904bae4b --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_journal_is_set.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + mongoc_write_concern_journal_is_set() — libmongoc 1.24.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.24.2/mongoc_write_concern_new.html b/libmongoc/1.24.2/mongoc_write_concern_new.html new file mode 100644 index 0000000000000000000000000000000000000000..d89ebfbf118475e28da45d6f3fa749f1e3b55076 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_new.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + mongoc_write_concern_new() — libmongoc 1.24.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.24.2/mongoc_write_concern_set_fsync.html b/libmongoc/1.24.2/mongoc_write_concern_set_fsync.html new file mode 100644 index 0000000000000000000000000000000000000000..149aacdf47b78c9bcfef7cb11b289542107dba64 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_set_fsync.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_fsync() — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    mongoc_write_concern_set_fsync()

    +
    +

    Warning

    +
    +

    Deprecated since version 1.4.0: This function is deprecated and should not be used in new code.

    +

    Please use mongoc_write_concern_set_journal() in new code.

    +
    +
    +
    +

    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.

    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/mongoc_write_concern_set_journal.html b/libmongoc/1.24.2/mongoc_write_concern_set_journal.html new file mode 100644 index 0000000000000000000000000000000000000000..17071cb24864c6cfe2dd88d871f7b0280905964a --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_set_journal.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_journal() — libmongoc 1.24.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.24.2/mongoc_write_concern_set_w.html b/libmongoc/1.24.2/mongoc_write_concern_set_w.html new file mode 100644 index 0000000000000000000000000000000000000000..2cbac82895dac1cda6fd0a849669716c23997e2e --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_set_w.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_w() — libmongoc 1.24.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.24.2/mongoc_write_concern_set_wmajority.html b/libmongoc/1.24.2/mongoc_write_concern_set_wmajority.html new file mode 100644 index 0000000000000000000000000000000000000000..70bdb6aacd664980eaf4882b4c6ddad345a50a28 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_set_wmajority.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wmajority() — libmongoc 1.24.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.24.2/mongoc_write_concern_set_wtag.html b/libmongoc/1.24.2/mongoc_write_concern_set_wtag.html new file mode 100644 index 0000000000000000000000000000000000000000..1bf1978f8fe2cdccfc88e1cf6e3af8f374c7d457 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_set_wtag.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wtag() — libmongoc 1.24.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.24.2/mongoc_write_concern_set_wtimeout.html b/libmongoc/1.24.2/mongoc_write_concern_set_wtimeout.html new file mode 100644 index 0000000000000000000000000000000000000000..ed416cbc28274e4ed1172d11611c11932e452fb6 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_set_wtimeout.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wtimeout() — libmongoc 1.24.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.24.2/mongoc_write_concern_set_wtimeout_int64.html b/libmongoc/1.24.2/mongoc_write_concern_set_wtimeout_int64.html new file mode 100644 index 0000000000000000000000000000000000000000..670145f170407772c7b62fb1184183c118bcbad7 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_set_wtimeout_int64.html @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + mongoc_write_concern_set_wtimeout_int64() — libmongoc 1.24.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.24.2/mongoc_write_concern_t.html b/libmongoc/1.24.2/mongoc_write_concern_t.html new file mode 100644 index 0000000000000000000000000000000000000000..55b31d0036d6870184829224b34c54c9a3401216 --- /dev/null +++ b/libmongoc/1.24.2/mongoc_write_concern_t.html @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + mongoc_write_concern_t — libmongoc 1.24.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.
    nBlock 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.

    +
    + +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/objects.inv b/libmongoc/1.24.2/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..654d44bb678f684ff6ca20b9e34529777c8a1d0f Binary files /dev/null and b/libmongoc/1.24.2/objects.inv differ diff --git a/libmongoc/1.24.2/queryable-encryption.html b/libmongoc/1.24.2/queryable-encryption.html new file mode 100644 index 0000000000000000000000000000000000000000..7fe4ca637cc2574e1e86d34b30ab835190eefba2 --- /dev/null +++ b/libmongoc/1.24.2/queryable-encryption.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + Queryable Encryption — libmongoc 1.24.2 + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Queryable Encryption

    +

    Using Queryable Encryption requires MongoDB Server 7.0 or higher.

    +

    See the MongoDB Manual for Queryable Encryption for more +information about the feature.

    +

    API related to the “rangePreview” algorithm is still experimental and subject to breaking changes!

    +
    +

    Queryable Encryption in older MongoDB Server versions

    +

    MongoDB Server 6.0 introduced Queryable Encryption as a Public Technical +Preview. MongoDB Server 7.0 includes backwards breaking changes to the Queryable +Encryption protocol.

    +

    The backwards breaking changes are applied in the client protocol in +libmongocrypt 1.8.0. libmongoc 1.24.0 requires libmongocrypt 1.8.0 or newer. +libmongoc 1.24.0 no longer supports Queryable Encryption in MongoDB Server <7.0. +Using Queryable Encryption libmongoc 1.24.0 and higher requires MongoDB Server +>=7.0.

    +

    Using Queryable Encryption with libmongocrypt<1.8.0 on a MongoDB Server>=7.0, or +using libmongocrypt>=1.8.0 on a MongoDB Server<6.0 will result in a server error +when using the incompatible protocol.

    +
    +

    See also

    +
    +
    The MongoDB Manual for Queryable Encryption
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/libmongoc/1.24.2/search.html b/libmongoc/1.24.2/search.html new file mode 100644 index 0000000000000000000000000000000000000000..7d48488340df1ea9e880544824a8da311fad7219 --- /dev/null +++ b/libmongoc/1.24.2/search.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + Search — libmongoc 1.24.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.24.2/searchindex.js b/libmongoc/1.24.2/searchindex.js new file mode 100644 index 0000000000000000000000000000000000000000..27bc2b1d95ee6b28534d4e1506ca258a9627b49d --- /dev/null +++ b/libmongoc/1.24.2/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["advanced-connections","aggregate","api","application-performance-monitoring","authentication","basic-troubleshooting","bulk","client-side-field-level-encryption","configuring_tls","connection-pooling","cursors","debugging","distinct-mapreduce","errors","full_index","gridfs","guides","in-use-encryption","index","init-cleanup","installing","lifecycle","logging","manage-collection-indexes","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_connection_id_int64","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_connection_id_int64","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_connection_id_int64","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_create_encrypted_collection","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_expression","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_set_range_opts","mongoc_client_encryption_encrypt_opts_t","mongoc_client_encryption_encrypt_range_opts_destroy","mongoc_client_encryption_encrypt_range_opts_new","mongoc_client_encryption_encrypt_range_opts_set_max","mongoc_client_encryption_encrypt_range_opts_set_min","mongoc_client_encryption_encrypt_range_opts_set_precision","mongoc_client_encryption_encrypt_range_opts_set_sparsity","mongoc_client_encryption_encrypt_range_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_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_create_indexes_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_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","visual-studio-guide"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":1,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,sphinx:55},filenames:["advanced-connections.rst","aggregate.rst","api.rst","application-performance-monitoring.rst","authentication.rst","basic-troubleshooting.rst","bulk.rst","client-side-field-level-encryption.rst","configuring_tls.rst","connection-pooling.rst","cursors.rst","debugging.rst","distinct-mapreduce.rst","errors.rst","full_index.rst","gridfs.rst","guides.rst","in-use-encryption.rst","index.rst","init-cleanup.rst","installing.rst","lifecycle.rst","logging.rst","manage-collection-indexes.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_connection_id_int64.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_connection_id_int64.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_connection_id_int64.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_create_encrypted_collection.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_expression.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_set_range_opts.rst","mongoc_client_encryption_encrypt_opts_t.rst","mongoc_client_encryption_encrypt_range_opts_destroy.rst","mongoc_client_encryption_encrypt_range_opts_new.rst","mongoc_client_encryption_encrypt_range_opts_set_max.rst","mongoc_client_encryption_encrypt_range_opts_set_min.rst","mongoc_client_encryption_encrypt_range_opts_set_precision.rst","mongoc_client_encryption_encrypt_range_opts_set_sparsity.rst","mongoc_client_encryption_encrypt_range_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_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_create_indexes_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_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","visual-studio-guide.rst"],objects:{"":{mongoc_kms_credentials_provider_callback_fn:[208,0,1,"c.mongoc_kms_credentials_provider_callback_fn"]}},objnames:{"0":["c","type","C type"]},objtypes:{"0":"c:type"},terms:{"0000m":669,"000m":669,"05552b562c7a0b3143a729aaa0838e558dc49b25":24,"0x04":[169,170,179,188,200,212],"0x555556cd7310":11,"15m":669,"250m":[0,669],"255kb":424,"2fmongodb":[0,650],"2ftmp":[0,650],"40domain":[628,659],"40exampl":[4,650],"5372ab0a25164be923d10d50":10,"55ef43766cb5f36a3bae6ee4":696,"55ef549236fe322f9490e17b":696,"56562a99d13e6d86239c7b00":[408,409,410,412,413,414],"5a1442f3122d331c3c6757e1":11,"abstract":[22,151,366,394,414,450,462,473,487,506,521,572,594,669,694],"boolean":[120,121,146,157,265,317,343,492,642,644,651,687,688,696],"break":[181,182,185,186,189,190,192,193,194,195,196,197,198,251,272,473,607,695,696],"byte":[5,7,128,175,209,223,224,380,381,443,452,464,495,496,497,568,569,570,575,578,584,587,588,597,598,599],"case":[5,6,10,12,13,20,136,232,272,274,277,309,377,386,473,607,629,630,631,632,647,651,652,653,654,660,661,662,663,669],"catch":[273,694],"char":[0,1,3,6,7,10,12,22,23,24,28,42,44,53,126,160,163,164,165,166,169,170,171,174,185,187,189,199,201,207,212,213,220,221,222,223,224,226,235,247,251,253,254,272,273,274,277,286,288,291,307,308,312,313,317,319,327,331,332,342,350,366,367,373,379,380,381,382,386,390,394,398,399,408,409,410,411,412,413,414,418,426,427,429,430,431,440,441,444,451,457,458,460,467,472,473,474,475,481,484,487,502,505,520,533,535,545,564,574,582,606,607,623,624,626,628,629,630,631,632,634,638,639,640,641,643,645,647,648,649,650,651,652,653,654,655,656,657,658,660,661,662,663,664,667,670,679,691,696],"class":7,"const":[1,3,6,7,10,12,22,23,24,28,29,30,31,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,48,49,50,51,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,71,72,73,75,76,77,78,79,81,82,83,85,86,87,88,89,91,92,93,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,115,116,122,123,126,128,129,130,132,133,136,137,138,139,140,141,142,143,144,145,148,149,150,152,153,154,155,157,158,159,160,163,164,165,166,169,170,171,175,176,178,179,181,182,185,187,188,189,190,194,195,199,200,201,207,208,209,210,212,213,215,219,220,221,222,224,226,228,229,231,233,234,235,236,237,242,243,247,249,250,251,253,254,256,258,260,263,264,265,266,267,268,269,270,271,272,273,274,277,279,280,281,282,284,286,287,288,289,290,291,292,294,295,296,297,298,299,300,301,302,303,304,307,308,310,311,312,313,314,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,340,341,342,343,344,345,346,347,350,351,352,354,357,360,361,366,367,368,369,370,371,373,376,377,378,379,381,382,383,384,385,386,387,388,390,391,392,393,395,396,398,399,401,402,403,404,405,406,409,410,412,413,414,418,420,422,423,424,425,426,427,429,430,431,438,440,441,442,444,445,451,456,457,458,459,460,461,464,465,466,467,468,469,472,473,474,476,479,481,482,484,488,490,493,495,496,497,500,502,505,508,509,511,512,513,514,515,517,520,524,527,528,529,533,535,537,538,539,540,541,542,543,545,548,550,551,552,553,556,559,561,569,571,573,574,582,601,602,603,604,606,607,608,610,611,612,613,616,617,618,621,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,670,673,675,676,677,678,679,680,681,682,684,685,691,696],"default":[0,4,5,6,8,13,19,20,21,22,123,128,159,176,186,209,225,226,228,229,234,241,244,272,273,274,279,280,283,284,285,286,287,290,297,312,317,320,321,322,334,335,336,337,340,344,350,366,383,384,385,391,392,393,395,410,411,424,474,476,477,479,480,482,483,503,506,507,512,521,547,550,551,552,554,555,556,557,573,587,588,594,598,599,602,607,620,629,630,631,632,641,659,669,682,683,685,694,696],"enum":[12,22,24,397,486,494,507,522,523,534,619,620],"final":[1,3,10,20,171,358,697],"function":[1,4,5,9,10,11,12,15,19,21,22,24,36,48,60,95,96,97,98,99,100,101,102,103,104,105,106,127,132,133,135,136,138,140,142,144,148,149,150,152,153,154,155,158,159,162,163,164,165,166,171,208,219,223,224,226,227,232,240,241,242,243,244,245,246,247,248,250,252,253,254,256,260,265,272,274,277,278,279,280,282,283,284,285,287,288,289,290,291,292,293,294,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,315,316,317,318,323,324,326,327,328,329,330,331,332,333,334,338,340,341,342,343,344,345,346,349,350,352,357,358,359,360,361,363,364,365,367,368,369,370,371,373,375,376,377,378,380,381,383,385,386,387,388,389,390,391,392,393,395,396,399,409,411,412,413,422,423,432,433,434,437,449,452,463,465,466,467,468,469,474,477,480,483,485,499,505,508,509,540,545,556,558,559,560,561,562,563,566,568,571,575,577,578,579,580,582,584,585,586,587,588,589,592,597,598,599,602,603,606,616,617,618,628,630,636,639,642,648,650,662,672,675,687,688,689,690,691,692,693,696],"goto":[7,12,24,160,272,273,274,607,696],"import":[1,8,11,20,22,171,696],"int":[0,1,3,6,7,10,12,22,24,160,161,251,253,272,273,274,286,288,295,311,313,342,350,366,394,414,415,416,417,429,455,473,475,495,496,497,498,520,559,560,561,563,565,566,567,568,571,577,578,580,581,582,584,589,597,607,696],"long":[0,247,399,411,414,669,690],"new":[3,5,7,8,9,13,15,26,36,48,60,67,94,103,108,119,121,122,127,132,133,158,170,171,173,175,176,182,184,186,189,190,192,193,194,195,196,197,198,203,205,208,213,216,223,226,232,235,236,237,241,242,243,249,251,258,259,274,281,283,294,296,297,298,299,300,302,310,312,313,315,317,324,331,332,333,334,338,341,342,343,357,358,359,365,367,373,377,379,380,397,409,413,414,424,426,427,429,430,431,432,433,451,481,506,516,530,540,548,553,554,567,575,581,582,586,592,608,614,636,639,642,649,655,656,658,660,661,662,663,664,667,669,675,687,696,697],"null":[0,1,3,6,7,10,11,12,13,22,23,24,25,39,51,63,127,134,135,139,141,143,145,153,155,157,158,160,164,165,166,167,170,171,172,180,183,192,199,202,203,204,208,213,214,215,219,221,223,224,225,226,227,230,231,232,235,236,237,242,243,244,251,252,253,254,256,257,260,261,262,264,272,273,274,275,276,285,286,287,288,289,290,291,292,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,323,324,325,326,328,329,330,331,332,333,334,338,340,341,342,343,344,345,347,348,349,350,360,366,367,368,369,370,371,373,374,375,376,377,378,380,381,386,387,388,389,390,395,396,399,400,408,409,410,411,412,413,414,420,421,422,424,425,426,427,429,430,431,433,434,435,436,437,447,448,453,466,467,468,469,472,501,502,506,510,520,526,535,536,542,549,553,555,556,557,558,562,567,575,579,581,582,585,586,600,602,604,607,609,621,622,623,624,626,627,628,633,634,635,636,637,638,639,640,645,646,648,650,657,670,674,679,682,696],"public":[5,8,181,182,185,186,189,190,192,193,194,195,196,197,198,669,695],"return":[0,1,3,6,7,9,10,12,13,21,22,24,136,160,208,245,251,262,273,286,351,355,362,365,366,394,414,429,473,475,491,494,503,517,521,523,545,546,547,550,552,606,607,610,629,630,631,632,647,651,652,653,654,669,682,683,692,693,696],"short":[5,696],"st\u0155\u00ec\u00f1g":11,"static":[1,3,6,7,10,160,251,289,291,294,295,296,311,312,317,368,520,628,671,696],"switch":[696,697],"throw":[494,669],"transient":[219,223,224,253,272,287,289,294,295,296,311,312,315,316,317,328,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,607],"true":[0,3,4,6,7,8,10,11,12,24,120,121,123,139,141,143,144,145,152,153,154,155,159,160,161,164,165,166,168,169,170,178,179,181,182,200,201,208,212,213,232,239,246,247,248,249,251,253,254,256,257,260,261,271,272,274,275,276,277,278,281,287,288,289,291,292,297,300,301,302,303,304,308,309,312,313,314,317,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,344,345,349,350,358,361,363,364,367,368,370,371,376,386,387,388,389,390,395,396,398,399,401,408,409,410,411,412,413,414,419,420,422,428,430,431,435,437,448,453,454,459,472,474,490,491,499,503,505,515,517,521,533,550,552,555,557,574,590,595,602,603,628,642,644,647,650,651,652,653,654,659,660,661,662,663,669,672,675,676,678,682,683,696],"try":[12,13,17,24,272,448,607,662,669],"var":12,"void":[1,3,6,7,10,12,22,24,25,26,29,31,43,54,65,69,71,73,76,78,82,86,91,93,95,96,97,98,99,100,101,102,103,104,105,106,107,110,112,113,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,138,140,142,144,146,147,148,149,150,152,154,156,160,162,167,172,173,174,175,176,180,183,184,185,186,187,188,189,190,192,193,194,195,196,197,204,205,206,207,208,209,210,214,216,231,238,240,241,245,246,250,251,255,258,259,262,267,274,275,276,279,280,282,283,284,286,291,294,295,296,301,305,311,312,313,317,335,336,337,342,348,350,353,362,365,374,391,392,393,399,400,402,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,434,436,447,456,457,458,460,461,473,475,476,477,479,480,481,482,483,484,485,488,489,491,495,496,497,498,501,504,508,510,517,518,519,520,525,526,531,536,546,549,554,555,556,557,562,568,569,571,573,574,579,587,589,598,600,609,614,615,616,617,618,622,665,666,668,671,674,686,687,688,689,690,691,692,693,696],"while":[1,9,10,12,13,20,23,139,141,143,145,153,155,160,208,251,272,273,275,286,312,317,349,350,366,378,429,448,450,454,464,473,495,520,521,607,669,696],AWS:[18,176],Adding:697,And:[3,227,545,606],But:[15,21,669],DNS:[0,13,669],For:[0,4,5,9,11,13,19,20,22,23,160,171,194,195,196,198,219,224,253,279,280,284,288,289,294,295,296,306,307,311,316,317,325,328,331,345,359,360,368,373,375,378,381,387,396,473,474,503,506,517,651,652,653,654,662,669,670,683,694,696],Has:[258,259],Its:605,KMS:[127,128,130,170,171,176,208,209,210,213],NOT:[218,238,286,366,429,454,455,462,464,473],Not:[289,290,578,584,597,669],One:[6,8,20,253,288,296,455,669],Such:585,TLS:[4,5,13,14,16,18,20,130,210,250,282,283,367,574,590,594,596,642,644,697],That:[0,8,473,669],The:[0,1,3,4,5,6,7,8,9,10,11,12,13,15,17,18,20,21,22,23,28,29,30,32,33,34,35,36,37,38,41,42,43,44,45,46,47,48,49,50,53,54,55,56,57,58,59,60,61,62,65,66,67,68,69,71,72,73,76,77,79,82,83,86,87,88,89,91,92,93,107,108,109,110,112,113,115,116,118,120,121,122,123,126,127,128,129,130,135,136,138,139,148,149,151,158,159,160,161,163,164,165,166,168,169,170,171,174,175,176,178,179,181,182,185,188,190,192,193,194,195,196,197,198,199,200,201,207,208,209,210,212,213,218,219,220,221,222,223,224,226,227,228,229,232,234,239,240,241,244,246,247,248,250,253,254,258,259,272,274,275,276,277,278,279,280,282,283,284,286,287,288,289,290,291,292,294,295,296,297,298,300,301,302,303,304,309,311,315,316,318,323,324,325,326,328,329,330,331,332,333,335,336,337,338,341,342,344,345,346,350,352,359,360,361,362,363,364,365,367,368,369,370,371,373,376,377,378,387,388,391,392,393,395,396,398,399,411,413,415,416,417,422,424,426,427,429,430,431,442,452,455,464,466,473,474,475,487,494,495,498,505,506,507,512,521,523,532,534,535,537,540,541,546,551,553,556,560,565,567,568,569,570,582,587,588,589,594,598,599,616,617,618,619,620,628,629,630,631,632,647,651,652,653,654,655,656,658,660,661,662,663,664,667,669,671,690,694,695,696,697],Then:[317,696],There:[13,15,20,220,222,473,556,594,619,696],These:[0,1,6,13,397,474,486,494,522,523,619,620,669,694],Use:[1,4,7,12,13,14,16,18,21,35,47,59,118,119,120,121,122,123,124,125,126,128,129,130,131,149,168,206,207,209,210,218,219,227,239,253,254,256,258,259,260,273,274,285,288,294,296,312,316,328,329,338,345,358,359,360,363,378,387,388,396,424,432,452,464,494,537,540,547,554,669],Used:[27,177,191,198,211,217,492,494,532,534],Useful:[225,293,372],Using:[4,9,14,16,17,18,20,695],Will:[20,146,410,657],With:[7,312,317,694],__libmongoctestkeyvault:7,__line__:[399,408,409,410,411,412,413,414],_id:[1,3,6,10,12,13,160,188,272,273,274,287,296,317,323,325,326,334,342,344,395,408,409,410,412,413,414,442,555,607,696],_id_:[6,296],_load_resume_token:160,_mongoc_auto_encryption_opts_t:131,_mongoc_bulk_operation_t:151,_mongoc_change_stream_t:160,_mongoc_client_encryption_datakey_opts_t:177,_mongoc_client_encryption_encrypt_opts_t:191,_mongoc_client_encryption_encrypt_range_opts_t:198,_mongoc_client_encryption_opts_t:211,_mongoc_client_encryption_rewrap_many_datakey_result_t:217,_mongoc_client_encryption_t:218,_mongoc_client_pool_t:251,_mongoc_client_t:286,_mongoc_collection_t:339,_mongoc_cursor_t:366,_mongoc_database_t:394,_mongoc_gridfs_bucket_t:429,_mongoc_gridfs_file_list_t:450,_mongoc_gridfs_file_t:462,_mongoc_gridfs_t:473,_mongoc_index_model_t:301,_mongoc_server_description_t:544,_mongoc_session_opt_t:547,_mongoc_socket_t:572,_mongoc_stream_buffered_t:576,_mongoc_stream_file_t:583,_mongoc_stream_socket_t:593,_mongoc_stream_t:594,_mongoc_stream_tls_t:596,_mongoc_topology_description_t:605,_mongoc_transaction_opt_t:607,_mongoc_uri_t:669,_mongodb:669,_new:313,_previous_:[413,414],_remov:313,_save_resume_token:160,_simpl:696,_tcp:669,_win32:[10,487],aaaa:[0,669],aaaaaaaaaaaaaaaaaaaaaa:129,aaaaaaaaaaaaaaaaaaaaaaaaaaa:696,aarch64:20,abbbbc:378,abbrevi:1,abl:[7,414],abort:[13,257,262,271,272,274,399,411,414,419,555,557,619],about:[5,21,34,230,273,285,312,317,338,350,473,474,506,531,532,544,547,554,669,695,696],abov:[1,6,20,22,669,697],absolut:[8,123,561,569,570],accept:[8,160,171,241,351,558,630,631,659,669],access:[4,5,7,28,32,34,41,42,44,45,53,56,58,66,67,68,72,79,83,88,89,92,108,109,150,160,217,274,286,339,359,360,366,367,389,394,454,464,495,521,696],accesskeyid:[128,209],accommod:414,accord:[20,166,256,292,371],account:[5,253,254,288,328,329,345,387,388,396],accur:[294,295,296,311,324],acknowledg:[0,284,297,337,393,669,682,694],acmar:1,acquir:[21,273,285,547,554],across:19,action:[9,168,239,274,339,394],activ:[5,9,11,227],actual:[4,9,136,241,352,354,358,669,697],add:[0,3,6,11,12,13,94,103,166,169,219,224,253,254,272,273,274,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,408,409,410,411,412,413,414,424,508,561,607,696,697],add_execut:696,added:[0,10,11,20,323,325,326,367,408,409,410,411,412,413,429],adding:[11,148,150,151],addit:[7,9,10,18,123,139,141,143,145,153,155,160,166,169,219,224,253,254,286,287,288,289,292,295,296,298,300,301,303,304,308,309,311,312,316,325,326,328,329,332,333,341,342,344,345,350,358,359,360,366,368,371,376,378,381,387,388,395,396,399,424,426,427,430,431,661,669,697],addition:[5,20,160,291,521],addr:[559,561,565],address:[4,567,669],addressless:4,addrlen:[559,561,565],addtoset:1,adjust:[20,455],admin:[3,4,251,368,414,669,696],administr:7,advanc:[12,14,16,18,24,258,259,696],advantag:[6,20],advert:13,advertis:[7,122,129],ae_opt:130,aead_aes_256_cbc_hmac_sha_512:[129,185],af_inet:567,affect:[22,279,284],after:[6,10,13,19,21,28,32,34,41,42,44,45,53,56,58,66,67,68,72,79,83,88,89,92,108,109,148,150,151,158,160,162,238,246,250,253,255,272,273,276,277,282,285,287,288,297,298,325,332,342,344,350,354,364,365,391,392,393,395,399,409,412,413,422,426,427,430,431,450,473,474,485,491,494,505,547,554,555,556,557,563,574,579,582,616,617,618,626,628,633,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,687,688,689,690,691,692,693,696],afterward:[135,151,359,360],again:[13,272,556,607,669],against:[4,6,7,8,10,122,124,125,129,275,287,344,395,671,696],age:[399,408,410,411,412,413,414],agg:12,aggreg:[12,14,16,18,150,160,182,287,289,295,298,303,304,333,338,341,342,344,359,360,368,395,399,557],aggregation1:1,agre:[12,24],aid:[14,16,18],algorithm:[0,7,17,129,181,182,185,186,189,190,192,193,194,195,196,197,198,695],alia:669,alias:[438,451,456,462],aliv:0,all:[1,3,4,5,6,7,8,9,10,12,19,20,21,22,33,46,57,135,139,145,146,148,150,151,153,155,160,162,167,168,180,194,195,196,198,202,213,219,224,231,238,239,241,244,250,262,272,276,282,289,290,295,297,298,301,303,304,309,311,312,316,317,324,325,326,333,341,342,348,354,362,364,365,368,369,373,374,378,380,381,389,400,412,414,423,429,435,465,469,472,473,485,494,501,510,520,521,522,536,562,574,578,579,584,597,600,601,622,633,652,659,669,674,696,697],alloc:[5,11,19,135,156,162,220,222,225,231,235,236,237,242,243,274,285,287,289,290,293,297,298,312,315,316,317,344,346,348,368,369,372,373,377,378,379,395,407,423,424,432,433,449,465,466,467,468,469,474,485,500,504,509,516,524,542,558,564,575,581,582,586,592,601,604,621,628,648,649,650,670,673,686,696],allow:[0,3,6,7,8,11,15,149,160,296,363,473,487,494,495,506,521,531,532,558,594,597,620,669,694],allow_invalid_hostnam:[8,574],allowdiskus:317,allowpartialresult:317,allplansexecut:24,along:[127,208,250,274,277,282,294,296,302,330,474],alreadi:[5,13,20,208,227,272,277,486,620,655,656,660,661,662,663],also:[3,4,6,7,8,9,12,18,19,20,160,182,212,247,255,274,275,332,343,358,364,473,521,532,557,574,652,658,664,667,669,696,697],alter:[505,533,687,688,689,690,691,692,693],altern:[4,8,20,169,174,176,187,201,212,669,696],although:[7,364,365,411],alwai:[4,13,15,19,21,135,164,166,170,178,181,182,232,253,254,261,288,289,290,292,300,305,312,313,314,315,316,317,328,329,338,343,345,368,369,371,378,387,388,396,442,473,491],amazon:[4,176],amazonaw:176,among:[521,669,696],amount:[20,160,287,317,344,365,395,455],analysi:[7,121,181,182],ani:[0,5,6,7,8,12,13,19,21,24,104,111,123,124,125,145,150,153,155,160,162,166,206,208,241,246,253,254,260,264,267,272,273,275,276,278,282,285,286,287,288,289,292,294,296,298,303,304,313,317,323,325,326,328,329,333,341,342,344,345,363,364,368,371,387,388,395,396,399,414,420,422,425,426,427,430,431,434,436,442,447,448,459,473,474,477,480,483,485,499,506,511,514,520,521,541,547,554,556,574,584,607,642,644,657,669,672,696],anoth:[4,8,9,11,13,20,160,244,258,259,563,669],anyth:[20,410,506],apach:[12,24],api:[6,8,14,15,18,171,181,182,185,190,192,193,194,195,196,197,198,248,249,278,281,288,309,311,345,396,462,473,524,525,526,527,528,529,530,531,532,533,584,587,594,598,599,605,695,696],apm:[14,18],appear:[148,287,289,295,298,303,304,311,325,326,333,341,342,344,368,395,399],append:[160,260,274,287,301,344,395,409,474,499,655,656,660,661,662,663,672],appli:[7,17,122,124,125,129,153,155,163,164,168,186,189,190,194,195,196,197,219,223,224,239,253,254,287,288,289,291,294,295,296,311,312,315,316,317,328,329,341,342,344,345,365,368,369,370,377,378,380,381,387,388,395,396,422,423,465,466,467,468,469,494,521,669,694,695],applic:[4,5,7,9,10,12,13,14,15,17,18,20,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,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,123,149,160,227,238,241,246,247,256,265,276,277,279,283,284,311,312,333,337,341,342,359,360,362,363,364,365,393,506,521,544,602,603,605,669,694,696,697],applicationnam:669,appnam:[1,3,6,7,247,251,253,272,273,274,277,286,288,313,342,350,366,414,429,473,520,555,557,607,669,696],approach:20,appropri:[9,20,294,296,302,330,359,360,455,517,521,696],apt:20,arbitrari:[6,127,208,296,317,399,473,696],archiv:697,archlinux:20,aren:696,argc:[0,3,10,12,22,24,251,253,272,273,274,286,288,350,366,394,429,473,607,696],argument:[12,13,123,139,141,143,145,153,155,164,165,166,171,213,232,246,253,254,257,260,261,272,274,276,278,288,291,292,300,301,302,303,304,308,309,313,314,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,345,359,363,364,365,367,370,371,376,386,387,388,389,390,396,399,408,409,411,412,413,414,435,453,455,459,472,499,556,616,617,618,672,696],argv:[0,3,10,12,22,24,251,253,272,273,274,286,288,350,366,394,429,473,607,696],arm64:[5,20],arm:20,armor:8,arn:[4,176],around:[301,313,558,559,560,561,564,589],arrai:[1,6,12,13,123,153,155,171,174,199,221,231,289,301,303,304,323,324,325,326,333,340,341,342,368,380,381,452,464,546,601,696],array_it:12,arrayfilt:[153,155,341,342],arrayofint:11,arrayofstr:11,artifact:20,as_json:160,as_json_len:160,asan:5,ascend:[23,327],ascii:4,assert:[6,225,473],assign:148,assist:20,associ:[0,4,148,156,167,180,238,262,266,283,287,305,309,344,348,374,395,400,434,435,436,437,438,447,461,501,510,536,562,579,600,622,669,674],assum:[20,287,344,395,696],asynchron:9,atla:7,attach:[148,287,289,295,298,303,304,311,325,326,333,341,342,344,368,395,399],attack:8,attempt:[0,4,6,8,13,20,123,160,227,249,274,275,281,297,298,325,350,369,376,555,557,669,694],auth:5,authent:[0,5,6,12,13,14,18,20,24,168,227,239,408,623,624,628,655,656,658,659,664,667,697],authmechan:[4,623,628,650,655,659,669],authmechanismproperti:[4,628,659,669],author:[0,8,389,390,412,413,414,669],authsourc:[4,624,650,656,669],auto:[7,8,11,17,119,123,221],auto_encryption_opt:7,automat:[0,8,10,11,17,20,21,120,121,123,124,125,129,131,160,168,170,181,182,220,222,227,239,256,272,312,426,430,557,694],avaiabl:[287,344,395],avail:[1,3,4,5,6,8,13,19,20,36,37,48,49,60,61,123,158,159,240,252,296,318,408,429,506,520,521,570,602,603,657,669,696],avg:1,avg_city_pop:1,avoid:[0,20,21,273,285,311,547,554,580,669],awai:3,await:[75,81,85,284,337,393,694],awaitdata:[10,317,359,360,365],aws:[128,130,170,176,209,210],aws_access_key_id:4,aws_container_credentials_relative_uri:4,aws_secret_access_kei:4,aws_session_token:4,azur:[13,128,130,176,209,210],back:[123,167,227,238,245,433,669,696],background:[9,481,669],backlog:566,backward:[13,19,136,149,352,363,364,695],bad:13,bad_queri:350,badoper:350,badvalu:350,balanc:[13,39,51,63,227,669],bar:[6,289,312,317],base64:[128,129,209,696],base:[6,13,20,171,225,286,484,504,521,585,594,635,637,646,649,669,671,686,696],base_stream:575,basi:[12,24,251],basic:[14,18,284,296,337,393,450,473,669],basic_aggreg:12,bat:20,batch:[6,151,160,290,297,298,312,317,351,358,359,360,362,369],batch_siz:[163,290,312,362,369],batchsiz:[287,289,317,344,359,360,368,395],bcon_append:[130,210],bcon_bin:7,bcon_bool:[6,7,289,317,412,413,414,696],bcon_cod:12,bcon_date_tim:696,bcon_docu:7,bcon_doubl:[12,24],bcon_int32:[1,3,6,7,23,24,160,231,272,273,274,291,312,313,317,342,399,408,409,411,414,555,607,696],bcon_int64:[6,160,253,288,295,311,317,350],bcon_new:[1,3,6,7,12,23,24,160,231,253,272,273,274,288,289,291,295,296,311,312,313,317,342,350,368,399,408,409,410,411,412,413,414,520,555,607,696],bcon_oid:696,bcon_utf8:[6,12,24,253,288,289,296,312,317,410,414,520,696],bcrypt:697,becaus:[3,12,13,241,358],becom:[10,252,628,669,670],been:[3,5,20,21,124,125,158,227,238,244,264,265,267,271,273,285,312,347,348,358,437,448,491,498,503,505,506,511,514,523,547,554,561,563,595,619,628,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,679,683,687,688,689,690,691,692,693,694,696],befor:[0,4,6,19,20,21,22,94,103,149,159,162,169,212,246,247,248,250,253,254,273,274,282,285,287,288,289,295,296,305,311,312,317,329,331,332,344,345,358,363,364,388,395,396,429,473,474,477,480,483,485,486,499,547,554,574,587,598,599,626,669,672,675,676,678,680,681,687,688,690,692,693,696,697],began:13,begin:[9,13,19,27,52,84,96,101,162,166,219,224,253,254,288,289,292,295,296,297,298,300,301,303,304,308,309,311,312,316,317,325,326,328,329,332,333,341,342,345,346,368,371,376,378,381,387,388,396,399,474,485,505,574,669,687,688,689,690,691,692,693],begun:358,behav:171,behavior:[0,7,8,9,12,13,123,130,160,210,219,223,224,241,253,287,289,294,295,296,312,315,316,317,328,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,669],behind:[4,13,39,51,63,669],being:[20,213,454,464,474,669],below:[4,20,22,171,185,274,312,650,696],besid:[8,289],best:[8,433,521],better:[559,561,578,597],between:[0,4,350,558,559,561,572,669],bewar:487,beyond:[20,361,669],bin:697,binari:[11,128,129,169,170,178,179,181,188,200,209,212,696],bind:559,bit:[20,439,443,463,495,630,652,653,662,680,681,697],bitwis:[139,145,153,155,303,304,324,325,326,333,340,341,342,486,494,522,523,620],blast:494,block:[9,159,160,244,252,273,284,287,337,344,361,393,395,449,452,494,587,588,598,599,602,603,669,671,694],book:[413,414],bool:[6,7,11,12,24,75,81,85,120,121,139,141,143,144,145,146,152,153,154,155,157,159,160,161,164,165,166,168,169,170,178,179,181,182,200,201,208,212,213,231,232,239,246,247,248,249,251,253,254,256,257,260,261,265,271,272,273,274,275,276,277,278,281,288,291,292,297,299,300,301,302,303,304,306,307,308,309,310,313,314,317,323,324,325,326,328,329,330,331,332,333,334,338,340,341,342,343,345,349,350,357,358,361,363,364,367,370,371,375,376,386,387,388,389,390,396,398,399,401,408,409,410,411,412,413,414,419,420,422,428,429,430,431,435,437,448,453,454,459,472,474,481,490,493,499,503,505,515,525,531,533,550,552,555,557,574,590,595,602,603,607,628,629,642,644,647,651,652,653,654,655,656,657,658,659,660,661,662,663,664,667,672,675,676,678,682,683,684,685,687,688,696],born:696,both:[0,9,17,20,182,227,254,317,329,388,473,555,557,662,669],bound:496,branch:20,brew:20,brief:696,brows:696,bsd:[558,559,560,561,566,572],bson:[0,10,11,13,14,18,34,128,130,139,141,143,145,150,153,155,157,159,166,169,170,178,179,181,188,194,195,200,208,209,210,212,219,224,253,254,259,264,266,267,274,287,288,289,291,292,294,295,296,298,300,301,302,303,304,308,309,311,312,316,317,323,325,326,328,329,330,332,333,341,342,344,345,350,360,361,368,371,376,378,381,387,388,395,396,399,402,405,406,424,426,427,430,431,445,456,459,461,473,521,537,540,620,625,633,636,659,697],bson_append_array_begin:696,bson_append_array_end:696,bson_append_bool:[6,10],bson_append_date_tim:696,bson_append_document_begin:[10,378,473,696],bson_append_document_end:[10,378,473,696],bson_append_int32:[3,251,399,409,410,411,412,414,473,696],bson_append_int64:160,bson_append_oid:696,bson_append_regex:378,bson_append_timestamp:10,bson_append_utf8:[296,399,408,409,410,411,412,413,414,481,659,696],bson_append_valu:[7,160],bson_as_canonical_extended_json:[1,3,6,7,10,12,23,24,160,253,286,288,291,312,313,317,366,399,408,409,410,411,412,413,414,429,520,628,696],bson_as_json:[272,273,274,350,607,696],bson_as_relaxed_extended_json:[3,160,342],bson_assert:[7,10,12,24,342],bson_concat:160,bson_copi:274,bson_destroi:[1,3,6,7,10,12,23,24,135,160,164,166,169,179,182,200,231,232,251,253,254,261,272,273,274,286,288,289,291,292,295,296,300,303,304,311,312,313,314,317,325,326,328,329,333,338,341,342,343,345,350,366,368,371,378,381,387,388,396,399,408,409,410,411,412,413,414,429,473,481,520,607,659,696],bson_empti:160,bson_error_t:[1,3,6,7,10,12,13,24,31,78,135,139,141,143,145,153,155,157,160,164,165,166,168,169,170,171,178,179,181,182,200,201,202,203,208,212,213,223,224,226,227,231,232,237,239,243,249,251,253,254,256,257,260,261,272,273,274,275,281,285,286,288,289,290,291,292,294,295,296,299,300,301,302,303,304,306,307,308,309,310,311,312,313,314,315,316,317,323,324,325,326,328,329,330,331,332,333,334,338,340,341,342,343,345,349,350,366,367,368,369,370,371,373,375,376,377,378,380,381,386,387,388,389,390,396,399,408,409,410,411,412,413,414,420,422,424,425,426,427,428,429,430,431,435,437,448,453,459,466,467,468,472,473,481,520,555,607,650,696],bson_fre:[1,3,6,7,10,12,23,24,160,253,272,273,274,286,288,291,312,313,317,327,342,350,366,399,408,409,410,411,412,413,414,429,520,564,607,628,670,696],bson_get_monotonic_tim:[272,607],bson_gnuc_deprec:[232,241,299,300,310,338,343],bson_gnuc_deprecated_for:[36,48,60,132,133,223,294,296,297,302,312,315,324,334,357,359,377,380,465,466,639,642],bson_gnuc_printf:22,bson_gnuc_pur:[476,479,482,573],bson_gnuc_warn_unused_result:[26,119,163,171,173,184,199,203,205,215,216,219,220,221,222,223,224,225,226,227,230,231,235,236,237,242,243,244,252,256,287,289,290,293,297,298,312,315,316,317,327,344,346,368,369,372,373,377,378,379,380,381,395,407,423,424,425,426,427,432,433,449,465,466,467,468,469,500,504,509,516,524,530,542,548,553,558,564,567,575,581,582,586,592,601,604,608,621,648,650,670,673,686],bson_has_field:625,bson_host_name_max:475,bson_in_range_unsign:7,bson_init:[10,160,286,296,366,429,473,481],bson_init_stat:628,bson_initi:[3,6,7,10,12,160,251,272,378,381,399,408,409,410,411,412,413,414,520,555,557,607,659,696],bson_iter_doubl:12,bson_iter_holds_arrai:12,bson_iter_holds_doubl:12,bson_iter_holds_timestamp:10,bson_iter_init_find:[10,12,160,378],bson_iter_next:12,bson_iter_recurs:12,bson_iter_t:[10,12,160,378],bson_iter_timestamp:10,bson_iter_utf8:378,bson_iter_valu:160,bson_json_reader_destroi:[7,160],bson_json_reader_new_from_fil:[7,160],bson_json_reader_read:[7,160],bson_json_reader_t:[7,160,696],bson_mem_restore_vt:474,bson_mem_set_vt:474,bson_new:[6,7,130,210,253,272,273,274,288,607,696],bson_new_from_json:696,bson_oid_init:696,bson_oid_t:[39,51,63,69,73,93,110,113,116,323,325,326,696],bson_output_basenam:20,bson_stat:697,bson_strdup:[12,24],bson_strdup_printf:[12,24,630,631],bson_strfreev:[223,224,380,381],bson_t:[1,3,6,7,10,11,12,13,23,24,34,41,58,89,122,123,128,129,130,132,133,135,138,139,140,141,142,143,144,145,150,152,153,154,155,157,158,159,160,163,164,165,166,169,171,176,179,182,200,201,208,209,210,212,213,215,219,224,227,231,232,251,253,254,258,260,261,264,266,272,273,274,275,286,287,288,289,290,291,292,294,295,296,298,299,300,301,302,303,304,306,307,308,309,310,311,312,313,314,316,317,318,323,324,325,326,327,328,329,330,331,332,333,334,338,340,341,342,343,344,345,347,350,359,360,361,366,367,368,369,370,371,373,375,376,377,378,381,387,388,395,396,398,399,402,405,406,408,409,410,411,412,413,414,423,424,426,427,429,430,431,438,445,451,456,461,465,466,468,469,473,481,499,508,511,514,517,520,537,540,555,557,607,625,628,633,636,655,656,659,660,661,662,663,672,696],bson_type_int32:473,bson_type_utf8:7,bson_uint32_to_str:696,bson_validate_flags_t:[139,145,153,155,303,304,325,326,333,341,342],bson_value_copi:160,bson_value_destroi:[7,160,170,178,181,201,212],bson_value_t:[7,148,160,169,170,178,179,181,188,194,195,200,201,212,287,289,295,298,303,304,311,325,326,333,341,342,344,368,395,399,420,422,425,426,427,429,430,431,442,459,473],bsontyp:[7,129],bucket:[420,421,422,423,424,425,426,427,429,430,431],bucketnam:424,buf:[473,495,496,497,568,569,587,598,696],buffer:[0,6,283,358,496,497,568,569,570,575,576,578,580,584,587,594,597,598,632],buffer_s:575,buflen:[568,569],bug:[18,696],build:[0,1,4,8,17,18,24,149,227,253,256,288,289,313,359,360,363,368,481,669,697],builder:[400,407,408,409,410,411,412,413,414],buildinfo:3,built:[0,5,13,15,20,168,239,285,594,669],bulk1:6,bulk2:6,bulk3:6,bulk4:6,bulk5:6,bulk5_fail:6,bulk5_success:6,bulk6:6,bulk:[12,14,16,18,24,33,46,57,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,215,288,297,298,318,324,325,345,396],bulk_col:6,bump:[399,408,409,411,412,414],bundl:[8,20,669],bypass:[146,168,181,182,239,408,414],bypass_auto_encrypt:[7,120],bypass_query_analysi:121,bypassdocumentvalid:[289,325,326,333,341,342,368],ca1:[130,210],ca2:[130,210],ca_dir:[4,8,250,282,574],ca_fil:[4,8,250,282,574],cach:[0,4,20,158,160,669],cached_operation_tim:160,calc_release_vers:20,calcul:696,call:[5,6,7,9,10,12,13,19,21,22,95,96,97,98,99,100,101,102,103,104,105,106,127,132,133,135,136,138,139,140,141,142,143,144,145,148,149,150,151,152,153,154,155,158,159,162,163,166,167,170,171,178,181,182,208,215,219,224,232,238,240,241,244,245,246,247,248,250,251,252,253,254,255,264,272,273,274,277,279,280,282,284,285,287,288,289,290,292,293,294,295,296,297,298,301,308,309,311,312,315,316,317,327,328,329,332,344,345,346,352,361,362,363,364,365,366,367,368,369,371,372,376,377,378,381,387,388,391,392,393,395,396,399,401,409,412,413,422,426,427,430,431,456,457,458,460,461,474,477,480,483,485,491,503,505,521,547,554,555,556,562,563,565,567,579,616,617,618,648,669,683,687,688,689,690,691,692,693,696],callback:[3,25,26,27,28,32,34,41,42,44,45,53,56,58,66,67,68,72,79,83,88,89,92,95,96,97,98,99,100,101,102,103,104,105,106,108,109,127,208,246,274,275,276,283,544,605],caller:[7,119,135,170,171,178,181,182,580],came:[21,75,81,85,273,285,547,554],can:[0,1,4,5,6,7,8,9,10,11,12,13,19,20,21,22,24,150,159,160,166,170,174,182,196,219,224,227,244,246,247,248,250,253,254,272,274,285,286,287,288,289,290,292,295,296,298,300,301,303,304,308,309,311,312,315,316,317,323,325,326,328,329,332,333,339,341,342,344,345,359,361,364,367,368,369,371,376,378,381,387,388,394,395,396,399,408,414,422,425,426,427,430,431,451,454,464,465,468,469,473,475,486,494,495,504,505,506,515,517,521,532,556,557,569,570,607,616,617,618,630,631,650,660,661,662,663,669,671,686,687,688,689,690,691,692,693,694,696,697],cancel:[0,517,521,669],cannot:[7,13,22,247,255,274,324,350,365,491,557,655,656,657,658,659,664,667],canon:[7,327,669],canonicalize_host_nam:[4,628,659],canonicalizehostnam:669,cap:10,capabl:[1,11,523],captur:563,casefirst:[6,253,288,296,317],cast:3,cat:[12,24],categori:13,caus:[249,255,281,350,669],causal:[21,258,259,273,274,285,547,550,554,555,557,689],causal_consist:555,caution:[473,474],caveat:[473,521],cbs:3,cdriver:5,ce_opt:210,center:295,centerspher:295,cento:20,certain:[0,6,13,24,669,671],certainti:20,certif:[0,18,669],cflag:[3,10,12,24,251,253,272,273,274,286,288,366,474,607,696],challeng:4,chang:[3,4,8,70,98,104,111,156,157,158,160,181,182,185,186,189,190,192,193,194,195,196,197,198,249,281,287,312,344,362,364,365,395,455,456,457,458,460,461,522,669,695,696,697],changestream:160,charact:[4,199,221,424,670],check:[1,2,4,5,8,9,10,14,18,20,80,84,90,100,101,102,157,163,164,165,219,271,289,290,291,309,312,315,316,317,349,350,359,360,368,369,370,378,386,437,495,515,521,563,669,694,696],checklist:18,checkout:20,checksum:460,child2:696,child:[255,473,696],choic:[521,697],choos:[13,20,149,225,256,312,363,409,506,521,669,697],chose:697,chosen:669,chunk:[13,226,424,426,427,430,431,439,453,470,472],chunk_siz:[451,462],chunksizebyt:[424,426,427,430,431],ciphertext:[178,181],clang:[20,474],clariti:3,clean:[0,544,696],cleanup:[2,5,12,14,18,20,24,160,255,313,429],clear:[4,7,127,208,255,276,386,563,657],cleartext:367,click:[5,697],client:[0,1,3,4,5,6,9,10,12,13,14,17,18,24,35,47,59,122,124,125,129,139,145,147,153,155,157,160,163,164,165,166,167,168,185,206,213,218,219,220,221,222,223,224,225,226,228,229,230,231,232,233,234,238,239,241,244,245,247,248,249,250,251,252,253,254,255,256,262,265,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,297,298,303,304,309,313,325,326,333,336,339,341,342,350,358,359,360,366,368,383,385,392,394,414,429,473,474,481,506,512,518,520,532,537,539,540,543,555,556,557,574,607,620,625,657,669,694,695,696],client_encrypt:[7,169,170,178,179,180,181,182,200,201,202,212,213],client_encryption_opt:7,client_sess:[147,260,273,555,557],clientid:[128,209],clientsecret:[128,209],clock:[521,561,568,569,570,669],clone:[346,366],clonecollectionascap:[253,288],close:[3,13,21,74,114,241,273,285,422,430,431,494,547,554,560,568,577],closer:696,cloudkm:176,cluster:[3,7,39,51,63,227,258,286,517,521,669,696],cluster_tim:258,clustertim:[258,259,264,696],cmake:[0,4,5,8,17,19,20,697],cmake_install_prefix:[20,697],cmakelist:696,cmd:[3,253,288,291],cmk:176,cmpxchg:313,cng:8,coalesc:6,cobol:696,code:[3,6,7,12,13,19,20,22,24,36,48,60,132,133,166,219,223,224,232,253,254,260,262,272,274,288,289,292,294,295,296,297,298,299,300,301,302,303,304,308,309,310,311,312,314,315,316,317,323,324,325,326,328,329,332,333,334,338,341,342,343,345,350,357,359,368,371,376,377,378,380,381,387,388,396,397,398,399,424,466,467,468,481,487,499,540,547,549,554,607,628,636,639,642,672,675,687,696,697],codenam:350,coll:[7,23,126,129,160,207,342,344],coll_nam:696,collat:[141,143,145,153,155,166,253,254,288,289,292,295,296,301,303,304,308,309,311,317,328,329,333,341,342,345,368,371,376,387,388,396,481],collect:[1,3,6,7,10,12,13,14,16,18,24,122,124,125,126,129,135,160,168,170,171,179,194,195,196,197,198,200,201,202,207,213,220,222,226,239,254,272,273,274,279,284,286,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,350,358,359,360,366,368,373,376,377,378,379,380,381,386,388,391,392,393,399,408,409,410,411,412,413,414,423,424,474,481,506,520,521,555,557,607,642,694,696],collection1:289,collection2:289,collection_nam:[3,12,24,286,312,317,366],collectionnam:414,collis:20,collnam:[6,520],collscan:24,collstat:338,colon:521,color:696,com:[4,10,20,128,176,209,628,650,659,669],combin:[521,684],come:[5,6,22,296,350,521,594],comma:[0,521,627,657,669],command:[1,4,5,7,11,13,18,20,27,28,33,34,36,37,40,41,42,46,48,49,52,53,57,60,61,64,80,84,90,100,101,102,121,124,125,139,141,143,145,148,153,155,160,163,164,165,166,171,202,219,224,232,253,254,255,260,274,287,288,289,290,291,292,295,296,297,298,300,301,303,304,308,309,311,313,314,315,316,318,325,326,327,328,329,332,333,338,339,341,342,343,344,345,359,360,365,368,369,370,371,373,376,377,378,381,387,388,389,390,395,396,399,407,414,424,426,427,430,431,473,499,522,525,531,532,537,540,543,669,672,694],command_fail:3,command_opt:300,command_start:3,command_succeed:3,comment:[148,287,289,295,298,303,304,311,317,325,326,333,341,342,344,368,395,399],commit:[13,261,271,272,274,275,287,344,395,607,610,615,619,669],committransact:615,common:[0,8,12,14,16,18,366,696],common_oper:24,commun:[7,13,353],comparison:[141,143,145,153,155,166,253,254,288,289,292,295,296,301,303,304,308,309,311,328,329,333,341,342,345,368,371,376,387,388,396],compat:[4,8,13,19,136,149,294,296,302,330,352,359,360,363,364,368,506,521],compil:[0,4,5,8,10,12,20,22,24,250,282,415,416,417,474,671,696],complet:[0,9,10,13,20,22,90,97,102,272,274,283,358,359,360,426,427,669],compli:6,complianc:[12,24],compliant:[429,473],compon:[123,259,267],composit:1,compress:669,compressor:[0,625,657,669],comput:[4,444],concaten:[8,669],concern:[13,135,137,163,164,165,166,170,228,234,253,254,272,279,284,287,288,289,291,292,295,296,297,298,300,301,302,303,304,308,309,311,313,314,317,320,322,323,324,325,326,328,329,332,333,334,335,337,340,341,342,344,345,368,369,370,371,373,376,387,388,391,393,394,395,396,399,411,414,424,499,501,502,503,504,505,521,556,557,607,616,618,631,635,637,646,665,668,672,674,675,677,680,681,682,683,684,685,686,687,688,689,690,691,692,693],conclud:20,concurr:[9,473],condit:[12,24,671],config:[3,10,12,20,24,251,253,272,273,274,286,288,366,523,607],config_str:484,configur:[0,3,4,7,9,10,11,14,16,17,18,19,21,22,120,123,128,129,130,141,143,145,153,155,166,170,171,181,182,206,209,210,218,225,228,229,234,248,250,253,254,260,268,274,278,285,288,289,292,293,295,296,301,303,304,308,309,311,317,328,329,333,335,341,342,345,368,371,372,376,383,385,387,388,389,391,396,474,504,521,550,552,555,556,557,574,594,607,614,615,616,617,618,635,637,646,669,686,691,697],confirm:[8,9,20,669],conflict:13,conform:[3,15,213,473,605],conjunct:[474,580],connect:[1,3,4,5,8,12,13,14,16,18,20,24,36,37,39,48,49,51,60,61,63,70,98,104,111,123,225,227,231,235,240,250,251,277,282,286,287,336,344,350,366,392,395,473,474,506,521,532,534,537,540,544,561,574,602,603,605,630,650,658,694,697],connection_str:[3,251,253,272,273,274,286,288,366,607,696],connectionid:[36,37,48,49,60,61],connecttimeoutm:[586,630,669],consecut:6,consequ:[0,669],consid:[3,5,8,12,22,135,163,164,165,166,219,223,224,253,254,287,288,289,290,291,292,294,295,296,302,311,312,313,314,315,316,317,323,324,325,326,328,329,333,334,340,341,342,344,345,368,369,370,371,377,378,380,381,387,388,395,396,422,423,465,466,467,468,469,521,576,593,630,631,669,694,696],consider:20,consist:[15,17,21,150,258,259,273,274,285,289,298,303,304,333,341,342,368,399,515,547,550,554,555,557,657,689],consol:[11,697],constant:[0,8,12,150,289,298,303,304,333,341,342,368,399,619,669],constitut:175,constraint:[6,661],construct:[7,12,139,145,153,155,166,219,224,227,250,253,254,282,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,414,424,630,631,696],consult:[166,253,254,288,292,328,329,345,371,387,388,396,696],consum:[10,487,495],contact:[12,358],contain:[0,4,11,12,13,15,20,34,123,126,128,130,144,145,152,153,154,155,160,163,164,166,171,207,209,210,219,220,224,235,253,254,274,275,287,288,289,290,291,292,294,295,296,297,302,303,304,307,308,312,313,314,315,316,317,325,326,328,329,330,333,334,338,340,341,342,344,345,368,369,370,371,377,378,380,381,386,387,388,390,394,395,396,398,423,445,451,456,457,458,460,461,467,468,469,470,471,472,473,478,481,484,496,558,561,566,567,570,571,575,633,636,648,649,650,670,677,679,680,681,691],content:[11,186,293,420,422,433,440,457,621,628],content_typ:[451,457,462],contention_factor:186,context:[3,29,36,37,43,54,65,71,76,82,86,91,107,112,115,246,274,276],continu:[8,10,20,272,297,298,325,332,486,607],contract:283,contrast:[295,311],control:[8,20,495,669],conveni:[171,312,399,411,414,473,669,696],convert:[312,317,533],copi:[5,12,20,22,24,28,31,32,34,41,42,44,45,53,56,58,66,67,68,72,78,79,83,88,89,92,108,109,158,159,246,250,258,259,272,274,276,277,282,293,346,361,372,402,405,406,474,488,500,509,524,542,548,556,574,604,608,616,617,618,621,673],copyright:[12,24],core:[5,7],cork:597,correct:[4,279,284,337,393,629,630,631,632],correctli:662,correl:[33,35,46,47,57,59],correspond:[5,13,188,213,219,226,315,316,377,378,486,494,522,523,620,641],corrupt:13,could:[7,20,22,129,231,272,273,274,390,466,473,607],couldn:[6,12],count:[1,6,9,12,135,253,294,296,311,328,387,587,598],counter:[18,19,162,255,485],cover:[4,521],creat:[0,1,3,4,5,6,7,9,11,13,18,19,21,23,26,27,119,157,159,163,170,171,172,176,183,192,203,204,214,220,222,226,233,235,236,237,242,243,244,249,263,272,273,274,285,287,289,297,298,300,301,305,333,341,342,344,346,350,359,360,364,365,366,367,368,369,373,391,392,393,395,407,410,414,419,422,424,426,427,428,429,430,431,432,433,442,451,481,488,494,504,516,520,524,530,541,547,548,554,556,567,575,581,582,586,592,607,608,614,649,669,686,697],create_and_insert_doc:274,create_cmd:7,create_cmd_opt:7,create_schema:7,create_schema_fil:7,createindex:[300,301,327,481],createrol:[288,345,396],creation:[21,206,300,473,476,479,482,495],credenti:[13,127,208,658,669],critic:22,crl:[8,669],crl_file:[8,250,282,574],cross:18,crud:[18,288,339,345,396],crypt32:697,crypt_shar:[7,17,121,123,199,221],crypto:[8,285],cryptograph:[175,495],cryptographi:8,cryptsharedlibpath:123,cryptsharedlibrequir:123,csfle:[7,17],csharp:5,ctx:[274,275],ctx_t:274,current:[4,8,13,20,128,158,160,189,208,209,213,232,258,259,270,287,336,343,344,347,389,390,392,395,455,463,474,502,521,534,553,560,563,569,594,602,603,619,669],current_op_queri:368,currentop:[148,287,289,295,298,303,304,311,325,326,333,341,342,344,368,395,399],cursor:[1,5,12,13,14,16,18,23,159,163,164,219,255,273,286,287,289,290,312,315,316,317,342,344,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,368,369,377,378,395,411,429,494,520,523,557,696],custom:[6,19,160,162,175,176,256,283,286,485,521],custom_bson:20,custom_data:367,custom_mongoc:20,cygwin:20,cyru:[4,20,669],data:[7,11,12,13,18,24,28,32,34,41,42,44,45,53,56,58,66,67,68,72,79,83,88,89,92,108,109,126,128,129,156,158,159,171,174,175,176,187,188,207,208,209,213,251,273,274,287,344,358,367,395,422,430,431,433,453,472,474,494,496,498,584,590,628,659,669,694,696],data_len:7,databas:[3,4,6,12,24,44,126,163,164,165,166,168,171,207,219,220,222,223,224,225,226,239,251,253,254,272,274,279,284,288,292,328,329,331,332,345,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,414,424,506,521,607,626,658,669,694,696],databasenam:414,datacent:520,datakei:170,datakey_id:7,datakey_opt:7,date:446,db1:669,db2:[24,669],db_name:[163,164,165,166,225,253,254,288,396,696],dbadmin:[6,408],dbname:520,dbpath:24,dbson_output_basenam:20,dcmake_build_typ:20,dcmake_install_prefix:20,dcmake_prefix_path:20,debian:20,debug:[14,16,18,20,22,697],decimal128:[194,195,196,198],decis:13,declar:529,decrypt:[120,124,125,128,131,175,178,206,209],deep:[293,372,488,500,509,524,542,604,673],default_languag:481,default_txn_opt:[272,607],defin:[6,7,10,11,12,13,22,150,185,189,265,274,362,486,545,606,620,627,669,671,697],definit:[150,289,298,303,304,333,341,342,368,399],degrad:[253,328,387],degre:[495,696],delai:[0,669],deleg:4,delet:[5,132,133,141,150,179,288,302,303,304,330,339,345,396,397,420,429,522,669],deletedcount:[303,304],deliv:5,delta:455,demand:[3,9,127,208,696],demonstr:[7,10,12,13,253,272,288,398,696],denable_automatic_init_and_cleanup:[17,19,20],denable_client_side_encrypt:17,denable_debug_assert:11,denable_html_doc:20,denable_man_pag:20,denable_mongoc:20,denable_shm_count:5,denable_ssl:[250,282],denable_trac:[5,22],denot:13,depend:[0,3,7,17,18,20,21,495,669,697],deploy:[537,540],deprec:[4,15,36,48,60,132,133,223,232,241,294,296,297,299,300,302,310,312,315,324,334,338,343,357,359,377,380,397,465,466,481,525,532,540,636,639,642,675,687],deprecation_error:[525,527],deriv:[4,15,21,147,429],descend:[1,317,327,412,414],describ:[4,6,7,20,176,213,227,256,288,345,396,507,619,669],descript:[0,8,20,67,68,108,109,130,210,231,237,243,280,392,506,544,546,601],descriptor:[577,580,581,583],design:[13,126,199,207,221],desir:[139,145,153,155,303,304,325,326,333,339,341,342,561,575],despit:[3,272],destin:[194,195,196,197,198,422,569,570],destroi:[21,105,114,118,119,134,135,151,156,171,241,246,255,273,274,276,285,300,305,343,359,360,421,434,436,544,547,554,605,628,696],destruct:21,destructor:251,detail:[13,19,34,152,153,154,155,162,163,277,294,296,358,398,452,464,485,505,521,669,696],detect:[0,13,20,481],determin:[3,4,7,13,159,361,366,412,602,603,669],determinist:[7,129,185],dev:20,devel:20,develop:[5,7,22,241],devic:175,dialog:697,did:[5,273],didn:[410,414],died:696,differ:[4,20,171,194,195,196,197,227,312,350,487,495,521,696,697],direct:[7,24,287,344,395,521],directconnect:669,directli:[0,4,9,20,21,231,232,312,343,399,495,572,669],directori:[11,20,123,696,697],dirti:265,disabl:[5,7,8,21,121,273,285,311,521,547,554,555,669],discov:[3,9,669],discoveri:[3,545,606],disk:669,dispatch:[507,517],displai:[1,20],dispos:5,distinct:[14,16,18,36,37,48,49,60,61,166,227,253,254,288,289,292,317,328,329,345,368,371,387,388,396,557],distinguish:4,distribut:[8,12,20,24,669],dll:697,dmongoc_output_basenam:20,dnf:20,do_p:291,do_someth:[450,671],doc:[0,1,3,6,10,12,20,24,160,272,273,274,286,312,317,350,366,378,429,520,555,607,696],dochub:7,docsexamin:24,docstr:11,document:[1,3,4,7,10,12,13,17,18,21,23,34,122,123,128,130,132,133,135,138,139,140,141,142,143,144,145,146,150,152,153,154,155,157,159,160,164,166,169,170,171,176,179,200,201,202,208,209,210,212,213,219,220,222,224,253,254,257,260,261,262,264,266,271,272,273,274,285,287,288,289,290,291,292,294,295,296,298,300,301,302,303,304,308,309,311,312,313,314,315,316,317,323,324,325,326,328,329,330,332,333,334,340,341,342,343,344,345,347,350,351,358,359,360,361,362,364,365,366,368,369,370,371,373,376,377,378,381,387,388,395,396,399,402,405,406,408,410,412,413,414,423,424,426,427,429,430,431,445,474,481,486,499,511,517,521,522,523,537,540,547,554,557,607,614,620,625,633,636,669,672],doe:[0,4,5,7,13,15,19,20,25,122,129,134,152,153,154,155,160,162,164,165,167,169,172,180,183,192,200,201,204,212,214,219,223,224,241,253,262,274,285,287,289,291,293,294,295,296,305,309,311,312,315,316,317,325,328,344,348,358,368,370,374,377,378,380,381,387,395,399,400,409,412,413,421,422,423,434,436,447,465,466,467,468,469,473,485,501,510,526,536,549,555,562,579,586,600,602,603,609,622,636,669,674,689,694],doesn:[12,277,399,410,411,414],dog:[12,24],doing:6,domain:[6,10,13,22,309,350,466,467,468,567,639,640,669],don:[12,24,250,282,474],done:[4,10,24,272,273,274,607,696],dopenssl_root_dir:8,doubl:[11,12,194,195,196,198,478,495,496],down:[8,238,494,560,669],download:[15,20,422,425,429,697],driver:[0,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,22,24,40,52,64,70,74,80,84,90,94,95,96,97,98,99,100,101,102,103,104,105,106,111,114,117,123,129,136,149,162,227,248,250,251,256,265,277,278,282,284,285,312,317,337,352,354,359,360,363,393,399,411,414,442,473,474,485,495,521,532,534,537,540,544,594,602,603,605,630,631,658,664,667,669,671,694,696,697],driver_nam:474,driver_vers:474,drop:[0,1,3,19,20,23,288,308,309,331,332,345,358,376,396,435],drop_dup:481,drop_target_before_renam:[331,332],dropdup:481,due:[6,21,219,223,224,253,273,285,287,289,294,295,296,311,312,315,316,317,328,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,547,554,669],dump:[5,22],dup:6,duplic:[3,6,13,481,694],durat:[30,55,77,87,543],dure:[4,5,22,124,125,206,324,474,522,557],dynam:[123,697],e11000:6,each:[1,5,6,9,12,21,128,150,160,166,171,209,219,227,246,253,254,274,276,287,288,289,290,292,298,301,303,304,315,316,328,329,333,341,342,344,345,362,368,371,377,378,387,388,395,396,399,409,449,495,512,518,521,537,540,555,556,557,607,669,696,697],eagain:590,easier:669,easili:[5,160,594],edit:[3,4,697],effect:[6,8,149,171,258,259,363,364],egress:5,einval:455,either:[6,8,12,24,158,160,206,248,278,289,303,304,313,326,333,341,342,350,368,386,408,669],elaps:9,element:[153,155,171,323,326,341,342,452,464,546,570],elig:[521,669],els:[3,6,9,12,23,24,160,224,253,272,274,288,291,294,295,296,309,311,381,399,408,409,410,411,412,413,414,473,487,520,550,587,607,628,696],email:[128,209],emb:20,embed:[9,291],embeddeddocu:11,emit:[12,630,662],empti:[6,12,13,22,34,123,157,160,169,200,201,208,212,213,287,300,314,315,316,317,335,344,350,358,391,395,402,405,406,488,521,537,540,625,669,696],en_u:[6,253,288,296,317],enabl:[0,5,6,7,8,11,12,17,19,22,119,124,125,131,168,171,239,282,296,408,517,521,557,625,657,669,671],enable_icu:4,enable_sasl:4,enable_ssl:8,enablemajorityreadconcern:[253,288],enc:[171,199],enclos:669,encod:[0,4,128,209,458,467,472,670],encount:[4,13,287,311,344,395,587,590],encourag:15,encrypt:[8,13,14,16,18,118,119,120,121,122,123,124,125,126,128,129,130,131,168,170,171,175,176,181,182,185,186,187,188,189,190,192,193,194,195,196,197,198,199,206,207,209,210,213,218,221,239,309,373,376,669],encrypt_opt:7,encrypted_col:7,encrypted_db:7,encrypted_field:7,encrypted_fields_map:122,encrypted_str:129,encryptedfield:[7,122,171,194,195,196,197,198,309,373,376],end:[0,5,8,19,160,162,262,430,431,433,455,485,587,669,696],endif:[10,250,282,487,671],endpoint:[8,128,176,209,669],endsess:255,enforc:129,enough:[495,498],ensur:[4,5,7,8,20,231,246,250,258,259,276,283,359,360,515,696],enterpris:[4,7,168,239,253,288,697],entir:[5,8,272,274,435,607,621],entireti:[152,153,154,155],entri:[20,141,143,145,153,155,160,166,219,224,253,254,273,288,289,292,295,296,301,303,304,308,309,311,316,328,329,333,341,342,345,368,371,373,376,378,381,387,388,396,555],entropi:[496,497],environ:[5,7,18,495,697],epel:20,ephemer:361,epoch:446,equal:[1,161,189,309,512,518,669],equival:[213,533,560,582,669],err:[157,272,274,607],err_doc:160,errmsg:[3,6,350],errno:[22,455,559,560,561,563,565,566,567,568,569,570,571,577,578,581,582,584,587,588,589,597,598,599],error:[1,2,3,4,5,6,7,8,10,12,14,18,20,22,23,24,31,34,78,129,147,157,159,160,163,165,168,169,170,171,178,179,181,182,186,189,190,194,195,196,197,200,201,202,203,208,212,213,227,231,235,236,237,239,242,243,246,247,248,249,251,256,257,260,261,272,273,274,275,276,277,278,279,280,281,282,284,286,287,289,290,299,306,307,312,317,327,331,344,346,347,359,360,361,363,366,368,369,375,395,398,399,408,409,410,411,412,413,414,419,420,422,423,424,425,426,427,428,429,430,431,433,452,454,459,464,465,469,473,474,481,494,495,499,520,523,525,532,555,557,563,590,595,607,648,650,669,672,694,695,696],error_cod:[272,274,607],errorlabel:[13,272,607],escap:670,escaped_str:670,especi:[20,22],essenti:473,establish:[0,227,287,344,366,395,696],estim:[496,512,518,521],etc:[8,20,219,223,224,253,287,289,294,295,296,311,312,315,316,317,328,339,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,669],evalu:521,even:[8,10,135,170,178,181,182,232,274,289,290,291,297,312,315,316,317,358,368,369,370,378,408,414,486,574,689],event:[3,9,20,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,160,246,276,287,344,395],everi:[9,669],everyth:[1,6],exact:20,exactli:[19,162,485,669],examin:20,exampl:[0,4,5,6,7,9,10,11,13,14,16,18,19,22,23,129,130,135,162,176,210,219,262,298,300,301,303,304,308,309,316,318,325,326,327,332,333,341,358,359,360,376,398,399,424,474,475,485,503,517,547,554,651,652,653,654,655,656,658,664,667,670,683,694,696],example_col:342,exce:[424,662],exceed:241,except:[1,12,17,19,21,24,162,247,250,251,252,274,317,485,521,588,669,694],excess:241,exchang:590,exclud:[409,423],exclus:[8,160,187,188,287,312,344,395,555,557],exe:[20,696],execut:[3,6,9,17,18,19,40,52,64,84,95,101,124,125,132,133,135,140,141,142,143,144,145,148,150,151,152,153,154,155,163,165,166,215,253,254,272,288,289,290,291,292,294,295,296,297,298,311,312,315,316,317,318,328,329,343,345,346,350,352,354,359,363,366,368,369,371,377,378,387,388,396,411,423,466,468,469,555,689,697],executionstag:24,executionstat:24,executionsuccess:24,executiontimemilli:24,executiontimemillisestim:24,exhaust:[13,317,361,669],exist:[7,10,13,22,160,169,200,201,212,226,309,315,316,331,332,386,410,414,428,473,657],exit:[10,19,21,160,473,696],exit_cod:[12,160,272,273,274,607],exit_failur:[1,3,6,7,10,12,24,160,251,253,272,273,274,286,288,313,342,366,414,429,473,607,696],exit_statu:7,exit_success:[1,3,6,7,10,12,160,251,253,272,273,274,286,288,313,342,366,414,429,473,607,696],expand:[287,344,395,697],expect:[7,241,301,313,314,327],expens:[473,486],experiment:[181,182,185,186,189,190,192,193,194,195,196,197,198,695],expir:[4,8,13,244,568,569,669],expire_after_second:481,expire_at:[558,561,568,569,570],explain:[6,697],explicit:[17,121,147,170,178,181,186,189,190,194,195,196,197,199,426,430],explicitli:[4,7,24,312,317,335,391,492,506,521,685],explor:697,expos:[8,669],expr:[182,295],expr_out:182,express:[7,12,20,24,150,182,259,267,289,298,303,304,333,341,342,368,399],extend:[7,9,158,159],extens:[8,20,473,594],extern:[4,128,209],extra:[10,20,123,296,338,367,399,411,414,669],extract:[12,20,669],fact:7,factor:186,fail:[0,1,3,5,6,7,10,12,13,17,20,23,24,27,34,40,80,95,100,123,135,136,160,224,249,251,253,272,273,274,281,285,286,288,294,295,296,311,313,324,342,350,366,381,389,398,414,473,481,486,520,523,555,557,561,607,669,690,696],failov:[0,219,223,224,253,272,287,289,294,295,296,311,312,315,316,317,328,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,607,669],failur:[1,5,13,135,171,178,181,182,208,213,223,224,226,232,249,254,272,273,274,275,281,286,288,289,290,291,294,295,296,297,298,302,311,312,313,314,315,316,317,323,324,325,326,329,333,334,340,341,342,345,346,350,359,360,366,367,368,369,370,373,378,380,381,388,396,424,425,426,427,452,455,464,474,533,558,559,560,561,566,568,569,570,571,578,581,582,587,588,597,598,599,648,650,694,696],fake:350,fall:[123,669],fallback:[570,629,630,631,632],fals:[4,6,7,8,11,12,13,24,122,123,129,135,139,141,143,145,153,155,159,160,163,164,165,166,168,169,170,178,179,181,182,200,201,208,212,213,219,223,224,232,239,246,247,248,249,251,253,254,257,260,261,271,272,274,275,276,277,278,281,287,288,289,291,292,294,295,296,298,300,301,302,303,304,308,309,311,312,313,314,315,316,317,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,344,345,349,350,361,363,364,367,368,370,371,376,377,378,380,381,386,387,388,389,390,395,396,399,408,409,410,411,412,413,414,419,420,422,423,428,430,431,435,437,448,453,454,459,465,466,467,468,469,472,474,490,493,499,505,517,521,533,550,552,555,557,628,651,655,656,657,658,659,662,664,667,669,672,696],fam:414,fam_bypass:[408,414],fam_field:[409,414],fam_flag:[410,414],fam_opt:[399,411,414],fam_sort:[412,414],fam_upd:[413,414],famili:[475,495,567],fan:9,far:669,faster:494,fastest:[517,669],fclose:[7,160],fcntl:473,featur:[5,6,7,17,20,168,185,239,250,282,296,317,584,671,695,696],feb:4,fedora:20,fedoraproject:20,fetch:[6,137,219,231,233,315,316,319,320,321,322,347,353,354,358,377,378,380,381,382,384,413,414,438,439,440,441,442,443,444,445,446,448,511,513,514,529,570,585,601,623,624,626,627,628,633,634,635,636,637,638,642,643,644,645,646,675,676,677,678,696],few:6,fewer:20,fflush:584,field:[1,6,8,12,13,14,17,23,121,122,123,129,144,145,152,153,154,155,160,163,166,168,171,182,185,194,195,196,198,212,213,218,219,224,239,253,254,287,288,289,290,292,295,296,301,303,304,308,309,311,312,313,316,317,325,326,327,328,329,332,333,334,341,342,344,345,350,368,369,371,376,378,381,386,387,388,395,396,399,402,414,468,469,474,477,480,483,556,607,696],field_name_on:317,field_name_two:317,fieldnam:409,fieldpath:182,file:[4,7,8,11,12,13,20,24,123,160,225,226,420,422,423,424,425,426,427,429,430,431,432,433,435,436,437,438,439,440,441,442,443,444,445,446,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,577,580,581,582,583,586,587,696,697],file_copy_path:429,file_id:[420,422,425,426,427,429,430,431,473],file_stream:[160,429],filenam:[13,426,427,430,431,441,451,458,462,467,472,473],filepath:123,fill:[13,227,256,260,289,290,303,304,312,315,316,317,325,326,341,342,368,369,378,433,466,467,468],filter:[24,153,155,213,295,312,317,341,342,377,378,423,429,468,469,473,520,557,602],find:[8,12,20,24,33,46,57,124,125,202,213,313,314,317,339,350,352,359,360,363,378,399,400,407,408,409,410,411,412,413,414,423,465,467,468,469,494,557,669],find_and_modifi:[313,410,414],find_and_modify_opt:400,find_opt:[273,557],find_packag:696,find_queri:12,findandmodifi:[313,314,407,411,412,414],findicu:4,findon:1,fine:20,finish:[21,358,696],firewal:4,first:[0,1,3,6,9,12,20,21,24,123,135,160,164,166,219,220,222,224,246,247,248,250,253,254,288,289,291,292,295,296,297,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,365,366,368,370,371,376,378,381,387,388,396,399,412,466,467,468,474,506,521,522,556,557,607,620,669,696],firstbatch:[359,360],firstnam:[399,408,409,410,411,412,413,414],fit:[473,662],five:160,fix:13,flag:[8,20,163,289,290,294,296,302,312,323,324,330,340,369,397,403,414,474,492,527,528,568,582],flaw:13,flow:696,flush:584,follow:[0,1,4,5,7,8,10,12,13,17,20,22,24,119,123,128,129,130,150,160,171,176,182,209,210,253,254,272,277,288,289,291,295,298,303,304,317,328,329,333,341,342,345,368,387,388,396,399,473,521,534,669,671,696,697],foo:[6,11,289,312,317,520],footbal:[399,408,410,411,412,413,414],fopen:[7,160],for_writ:256,forc:584,foreach:12,fork:255,form:[1,12,13,24,130,182,210,301,327],format:[3,8,18,22,128,176,209,413,418,696],forward:[4,24,135],found:[0,5,12,13,160,256,309,317,323,326,350,378,466,467,468,523,696],four:696,fourth:6,fprintf:[1,3,6,7,10,12,24,160,224,251,253,273,286,288,291,294,295,296,309,311,312,313,317,342,350,366,378,381,399,408,409,410,411,412,413,414,429,473,520,555,557,696],framework:[12,14,16,18],free:[0,21,25,26,134,167,170,172,178,180,181,182,183,192,204,214,226,238,262,273,285,348,374,400,429,447,466,467,468,473,501,510,526,530,536,538,546,547,549,554,579,600,609,622,674],freebsd:20,freed:[28,32,34,39,41,42,44,45,51,53,56,58,63,66,67,68,72,79,83,88,89,92,108,109,137,158,163,166,169,170,171,173,179,184,193,199,200,201,203,205,212,215,216,220,221,222,223,224,225,227,228,229,230,231,233,234,235,236,237,242,243,253,254,256,261,263,272,285,287,288,289,290,292,293,297,298,303,304,312,313,314,315,316,317,319,320,321,322,325,326,327,328,329,333,338,341,342,344,345,346,347,350,368,369,371,372,377,378,379,380,381,382,383,384,385,387,388,395,396,407,423,424,432,433,438,440,441,442,444,445,449,465,469,470,471,474,500,504,509,511,514,516,524,535,542,548,553,554,556,564,567,573,575,581,582,592,601,604,608,614,616,617,618,621,623,624,625,626,627,632,633,634,635,636,637,638,643,645,646,649,670,673,679,686,696],freeli:20,friendlier:572,from:[1,4,5,6,7,8,9,10,11,12,13,15,17,18,21,23,24,36,37,48,49,60,61,75,81,85,122,123,129,147,158,159,160,164,166,167,175,206,212,219,224,227,238,240,241,244,245,247,250,251,252,253,254,255,258,259,263,272,273,274,277,279,280,282,284,285,286,287,288,289,292,294,296,298,300,301,303,304,305,308,309,311,312,316,317,320,322,325,326,328,329,332,333,336,337,339,341,342,344,345,350,354,358,359,360,361,363,365,366,368,369,371,373,376,378,381,387,388,390,392,393,394,395,396,398,399,420,422,423,424,425,430,431,433,452,453,455,462,472,486,494,495,503,517,521,522,523,529,547,554,556,557,574,575,580,586,587,607,636,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,683,694,697],frozen:[505,687,688,689,690,691,692,693],fseek:455,fsync:[675,687],fsync_:687,fulfil:[283,286],full:[0,23,313,314,343,422,494,669],fulldocu:[287,344,395],fulldocumentbeforechang:[287,344,395],fulli:[8,495],further:[8,274],futur:[13,19,181,182,185,190,192,193,194,195,196,197,198,279,280,284,317,399,411,414,506,669],futureopt:[399,411,414],fwrite:[7,160,473],gather:[464,487,570,588],gcc:[3,10,12,20,24,251,253,272,273,274,286,288,366,474,607,696],gcp:[13,128,130,176,209,210],gdbinit:11,gener:[1,8,12,13,18,171,175,208,253,255,309,323,325,326,328,387,426,427,430,431,462,473,495,496,497,498,521,539,578,594,597,694,696,697],geo:[476,478,481],geo_opt:481,geo_test:481,geowithin:295,get:[1,7,12,20,135,200,201,202,215,220,222,225,230,264,266,267,268,269,274,378,494,537,539,540,541,543,564,680,681,696],getenv:7,gethostnam:697,getlasterror:669,getmor:[5,33,46,57,160,253,328,365,387],getnameinfo:564,getpeernam:564,github:20,gitvers:24,give:[10,12,13,669,696],given:[5,12,123,171,179,199,200,201,213,221,251,255,274,283,286,302,303,304,313,327,330,359,360,373,389,441,455,474,533,602,669,696],glob:20,global:[19,162,280,297,336,392,485,521],goal:[408,409,410,412,413,414],going:22,good:361,good_queri:350,googleapi:[128,176,209],got:[23,160,291,399,408,409,410,411,412,413,414],got_str:23,govern:[12,24,669],grab:473,grace:696,grain:20,graph:5,great:[279,284,337,393,506,521,694],greater:[1,12,161,258,259,669],greatest:1,gridf:[2,13,14,18,226,419,420,422,424,425,426,427,428,429,430,431,432,433,434,435,438,439,441,442,443,444,445,446,449,450,451,454,456,457,462,464,465,466,467,468,469,470,471,472,473,586],gridfs_fil:473,gridfs_file_list:473,group:[1,369],grow:575,gssapi:[18,628,650,655,659],gssapiservicenam:669,gte:[1,6,182],guarante:[7,273,294,295,296,311,495,669,696,697],guid:[0,4,14,18,20,696],half:669,hand:350,handl:[6,13,19,160,162,274,289,290,297,298,312,315,316,317,339,346,368,369,378,394,424,473,485,520,572,648,650,669,694,696],handle_error:23,handler:[19,162,485],handshak:[5,227,277,474],happen:[20,274,287,344,395,486],hardwar:495,has:[0,1,3,8,9,10,13,21,124,125,149,157,158,171,179,200,201,227,231,244,253,264,265,267,271,273,274,277,285,289,294,296,328,334,342,347,348,349,350,354,358,359,360,363,364,368,387,437,448,491,498,503,505,506,511,523,535,547,554,561,563,574,590,595,602,603,619,633,634,636,637,645,646,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,679,683,687,688,689,690,691,692,693,694,696],hash:[4,696],hat:20,have:[5,6,9,11,12,13,20,124,125,145,153,155,168,219,227,238,239,250,277,282,312,315,316,324,325,360,377,378,399,408,409,412,413,427,431,442,474,503,514,541,555,628,661,669,683,688,689,690,696,697],haven:11,haystack_bucket_s:478,header:20,heartbeat:[3,75,80,81,84,85,90],heartbeat_failed_ev:3,heartbeat_started_ev:3,heartbeat_succeeded_ev:3,heartbeatfrequencym:[9,669],hedg:[511,517],hello:[9,36,37,48,49,60,61,75,80,81,84,85,90,100,101,102,277,474,521,537,540,541,543,669,696],hello_mongoc:696,help:[5,20,696,697],helper:[7,11,12,13,22,24,253,287,328,332,338,343,344,387,395,564,571,696],here:[3,10,12,20,171,287,317,344,395,521,572],hex:[5,7,22],hex_to_bin:7,higher:[0,18,227,256,359,360,695],highest:[166,253,254,288,289,292,317,328,329,345,368,371,387,388,396],him:[413,414],hint:[136,141,143,145,149,153,155,289,295,296,303,304,317,333,341,342,352,363,368,399,521],his:[399,408,409,410,411,412,414],histor:[312,669],hold:[1,11,26,251,530,544,669,696],home:20,homebrew:20,hopper:696,host01:0,host02:0,host03:0,host1:669,host2:669,host:[0,3,4,24,32,45,56,66,72,79,83,88,92,123,176,225,286,353,366,475,517,521,538,621,627,639,640,669,696],host_and_port:[3,12,24,231,475],hosta:9,hostb:9,hostn:669,hostnam:[0,4,8,649,669],how:[0,1,5,6,7,10,12,13,20,24,248,253,272,278,288,295,311,312,486,494,507,521,669,690,696,697],howev:[0,6,10,227,274,312,521,669,694,696],http:[7,12,13,20,24,251,696],human:13,hurt:[241,669],i686:20,iOS:8,iam:18,ibrahimov:[399,408,409,410,411,412,413,414],icu_root:4,idea:594,ident:[4,247,250,252,588],identifi:[39,51,63,123,149,170,174,176,185,187,188,363,533,539],identityplatformendpoint:[128,209],idl:[0,21,241,273,285,494,547,554],idleshutdowntimeoutsec:123,ids:3,ifdef:[10,250,282,487],ignor:[0,8,254,257,294,295,296,309,311,317,329,388,408,481,521,574,586,602,669,694],illustr:696,immedi:[12,123,252,350],impact:[168,239],implement:[160,286,288,311,345,396,429,466,473,578,584,585,597,669],impli:[8,12,24,669],in_opt:171,in_shutdown:[251,696],inact:494,inc:[6,12,24,273,399,408,409,411,414],includ:[0,1,3,4,5,6,7,8,10,12,13,15,18,20,22,24,136,149,160,166,176,182,219,224,231,238,246,251,253,254,272,273,274,276,286,288,289,290,291,292,294,295,296,301,308,309,311,312,313,315,316,317,323,325,326,328,329,332,342,345,350,352,359,363,366,367,368,369,371,374,376,378,381,387,388,390,394,396,398,409,426,427,429,430,431,435,450,468,469,472,473,478,481,484,487,520,544,547,572,574,579,585,607,636,658,669,671,695,697],incompat:695,inconsist:[13,19,572],increas:6,increment:[255,259,267],indefinit:669,independ:[9,21,556,607],index:[3,6,7,13,16,18,121,141,143,145,153,155,181,182,185,186,189,197,198,289,295,299,300,301,303,304,307,308,309,310,315,316,327,333,341,342,368,399,476,478,479,481,482,484,642],index_kei:7,index_model:7,index_nam:[23,307,308],index_opt:[7,300],indexfilterset:24,indic:[6,8,75,81,85,157,160,171,208,265,358,430,431,455,463,527,528,587,588,599,642,644,669,676,678,680,681,687,688,690,691,692,693,696],individu:[286,481,506,660,661,662,663],industri:8,info:[20,22,31,78],inform:[0,4,5,7,11,135,160,171,230,289,294,296,306,307,312,317,331,333,341,342,343,350,368,375,474,506,519,544,636,669,689,691,694,695,696],ingress:5,inherit:[166,219,224,253,254,272,279,284,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,339,341,342,345,368,371,376,378,381,387,388,391,392,393,394,396,399,424,556,607],initi:[2,4,13,14,18,20,106,117,123,135,162,166,170,171,178,181,182,227,232,253,254,261,274,277,283,288,289,290,291,292,295,300,311,312,313,314,315,316,317,328,329,333,338,343,345,359,360,366,368,369,370,371,377,378,387,388,396,402,405,406,473,474,477,480,483,485,487,489,541,575,628,647,669,696],inlin:12,input:[12,13,697],input_fil:473,insecur:[8,669],insensit:[629,630,631,632,647,651,652,653,654,660,661,662,663,669],insert:[3,5,7,9,10,12,13,24,138,139,145,153,155,160,170,181,220,222,253,272,274,288,298,323,324,325,326,334,339,342,345,396,410,429,486,555,607,669],insert_cmd:160,insert_data:[12,24],insert_opt:[272,274,555,607],insertedcount:[325,326],insid:[274,312],insofar:495,inspect:11,instal:[1,4,5,8,14,18,123,697],instanc:[0,1,12,24,226,228,229,234,274,429,436,470,471,473,520,635,637,646,669,696],instead:[4,7,122,129,160,167,232,241,252,253,279,280,282,284,294,296,312,317,328,334,338,343,359,387,465,466,494,505,630,687,688,689,690,691,692,693,696,697],instruct:[0,12,17,20,168,239,410,696,697],int32:[11,166,219,224,253,254,287,288,289,292,295,296,301,308,309,311,316,328,329,332,344,345,368,371,376,378,381,387,388,395,396,424,426,427,430,431,661,662],int32_t:[36,48,60,196,248,272,278,439,481,587,588,598,599,607,630,661,662,677,680,689,690,692],int64:[11,287,317,344,395,446,630,661,662],int64_t:[30,33,35,37,46,47,49,55,57,59,61,77,87,186,197,272,294,295,296,311,354,355,364,443,446,455,512,518,541,543,558,561,568,569,570,607,610,615,631,662,681,690,693,696],integ:[36,37,48,49,60,61,317,439,443,463,518,521,630,631,652,653,661,662,677,680,681],integr:[18,22,473],intend:[4,181,182,185,186,189,190,192,193,194,195,196,197,198,265,293,372,474,696],interact:696,interf:255,interfac:[164,370,414,450,487,521,558,559,561,594],intern:[22,202,255,274,277,332,494,574,628,632,696],interpret:[166,292,371,455,669],interv:[5,9,669],introduc:[4,13,254,329,388,695],introduct:[25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,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,246,276,544,602,603,605,696],invalid:[0,4,8,13,24,125,139,141,143,145,153,155,164,165,166,232,246,248,253,254,255,257,260,261,272,276,278,287,288,291,292,300,301,302,303,304,308,309,313,314,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,344,345,350,363,364,367,370,371,376,386,387,388,389,390,395,396,399,435,453,459,472,499,523,579,621,628,629,630,631,632,670,672,684],invis:312,invok:20,iov:[452,464,473,570,588,599],iov_bas:[473,487],iov_len:[473,487],iov_max:570,iovcnt:[452,464,570,588,599],iovec:487,irrespect:521,is_initi:481,iseof:24,isod:696,isol:[506,669],issu:[0,4,5,8,255,669,696],issuer:[8,669],item:[20,588,599],iter:[10,12,13,157,158,159,160,349,350,358,361,366,378,449,450,465,469,696],its:[6,8,9,12,13,15,20,21,22,24,74,99,105,114,158,160,166,219,224,226,241,251,253,254,255,262,273,285,288,289,292,293,295,296,301,305,308,309,311,316,317,328,329,332,345,358,368,371,372,376,378,381,387,388,396,420,453,473,537,540,547,554,628,659,669,696],itself:123,java:5,javascript:11,jira:5,join:238,journal:[669,676,685,688],json:[1,7,13,129,160,253,288,313,628],jsonschema:7,jsw:11,just:[12,473,506,520,669],k_f:171,keep:[0,5,7,20,241,561],keepal:0,kei:[3,4,6,7,8,12,13,17,21,23,122,124,125,126,128,129,130,144,145,152,153,154,155,169,170,171,174,175,176,179,187,188,200,201,202,206,207,209,210,212,213,218,253,288,296,299,300,301,310,327,481,517,521,625,669,694,696],kept:241,kerbero:[18,20,669,697],kerberosus:650,key_doc:[169,200,201,212],keyaltnam:[7,169,174,187,201,212],keyaltnames_count:174,keychain:8,keyid:[7,129,169,170,171,176,179,188,200,212,696],keylen:696,keynam:176,keyr:176,keyvault:7,keyvault_cli:[7,206],keyvault_col:7,keyvault_db:7,keyvault_namespac:7,keyvaultendpoint:176,keyvers:176,keyword:7,killcursor:[5,255],kind:[12,24,473],kinit:4,klistcredenti:4,kmip:[128,130,176,209,210],kms:176,kms_provid:[7,128,170,171,209],know:[4,13,323,325,326,486,494,620],knowledg:[602,603,605],known:[4,13,18,20,223,224,231,506,601,602,603,651,652,653,654,660,661,662,663,669],krb5cc_1000:4,krbtgt:4,label:[272,398],lack:669,lag:[521,669],lang_nam:696,languag:[9,12,18,24,149,150,227,256,289,298,303,304,333,341,342,359,360,363,368,399,594,696],language_overrid:481,larg:[33,46,57,297,298],larger:13,last:[1,258,259,274,318,437,494,521,541,563,669,696],last_tim:10,lasterrorobject:[408,409,410,412,413,414],lastnam:[399,408,409,410,411,412,413,414],lastwrited:521,later:[6,7,12,24,141,143,145,153,155,160,166,253,254,288,289,292,295,296,298,301,303,304,308,309,311,312,325,326,328,329,333,341,342,345,365,366,368,371,376,387,388,396,399,408,424,494,517,521,557],latitud:1,launch:[9,24],law:[12,24],lazi:366,lbson:696,lcustom_bson:20,lcustom_mongoc:20,ldap:[4,20],leak:[5,10],learn:697,least:[8,128,209,241,318,521,694],leav:[13,149,363,364],left:[160,669],legaci:[6,18,36,37,48,49,60,61,317],len:[7,11,175],length:[12,175,231,247,277,325,424,443,462,571,601,696],less:[22,512,518,669,696],let:[1,10,150,289,298,303,304,317,333,341,342,368,399],letter:1,level:[14,17,18,22,122,129,168,185,218,227,239,256,359,360,495,505,557,571,589,669],lib:[3,10,12,24,251,253,272,273,274,286,288,366,607,696,697],libbson:[13,14,18,696,697],libcustom_bson:20,libcustom_mongoc:20,libicu:4,libmongoc:[3,4,8,10,12,13,14,16,21,24,127,160,161,168,208,218,239,251,253,254,265,272,273,274,286,288,329,366,388,415,416,417,418,427,431,607,669,695],libmongocrypt:[13,17,123,695],librari:[13,14,17,18,19,121,123,199,221,671,696,697],libresolv:669,libsasl2:20,libssl:[8,20],licens:[12,24],lifecycl:[2,14,18],lifetim:[21,158,159,199,221,246,264,266,268,276,283,361,551,586,611,612,613],like:[0,1,3,4,5,8,9,11,12,13,19,20,241,253,258,289,312,317,328,365,368,378,387,411,418,457,473,474,558,559,561,630,631,669,696,697],limit:[1,9,12,24,163,244,274,290,294,295,296,302,311,312,317,330,360,362,364,369,669],line:[10,11,20,274,399,408,409,410,411,412,413,414,669,696],lineariz:506,linger:5,link:[4,8,18,20,32,45,56,66,72,79,83,88,92,475,627],linker:[20,697],linux:[5,8,20,572],list:[0,4,5,8,13,20,23,32,45,56,66,72,79,83,88,92,166,174,219,223,224,231,253,254,287,288,289,292,295,311,316,317,328,329,344,345,368,371,373,378,381,387,388,395,396,429,447,448,449,450,465,469,473,475,506,521,531,532,627,669,697],listcollect:[168,239,359,360,378,381],listdatabas:[219,224],listen:[0,160,287,344,395,566,669],listindex:316,listlocalsess:368,littl:22,live:[199,221],lldb_bson:11,lldbinit:11,lmongoc:696,load:[1,7,8,11,13,17,39,51,63,123,199,221,227,669],loadbalanc:[227,545,606,669],loc:1,local:[0,4,6,8,10,11,12,20,24,128,170,176,209,253,288,296,317,323,325,326,358,429,506,515,564,696],local_masterkei:7,local_masterkey_len:7,local_repli:274,localhost:[0,1,3,4,6,7,8,12,24,123,160,342,350,394,414,429,473,520,625,628,630,631,650,657,659,669,696],localthreshold:669,localthresholdm:669,locat:[1,20,123,135,139,141,143,157,159,164,165,166,176,223,224,226,227,232,237,243,253,254,256,257,260,261,272,274,275,288,291,292,294,295,296,299,300,301,302,303,304,306,307,308,309,310,311,312,313,314,315,323,324,325,326,328,329,330,331,332,333,334,338,340,341,342,343,345,349,350,361,367,370,371,373,375,376,377,380,381,386,387,388,389,390,396,435,437,448,453,466,467,468,472,481,650],locktimeout:13,log:[2,3,14,18,19,35,47,59,148,162,235,236,242,246,247,248,276,277,278,287,289,295,298,303,304,311,325,326,333,341,342,344,363,368,395,399,408,410,411,433,459,474,485,499,657,669,672,687,688,689,690,691,692,693,696],log_domain:22,log_func:22,log_level:22,logic:[3,13,160,166,253,254,256,260,266,274,287,288,292,328,329,344,345,371,387,388,395,396,521],login:[5,128,209],longer:[4,220,222,230,235,236,237,242,243,277,285,287,289,290,293,297,298,312,315,316,317,344,346,368,369,372,377,378,395,407,433,449,465,467,468,469,500,504,524,542,562,567,574,575,581,582,592,604,649,673,686,695],longest:669,longitud:1,look:[7,8,11,20,473,474,669,696],lookup:[124,125,206,287,344,395],loop:[350,669],loos:[587,598,599],lot:[12,24,494],low:[359,360,495],lower:[6,253,288,296,317,496],lte:[182,414],macbook:24,machin:[4,8,12,24],maco:5,macro:[506,657,671,696],made:[10,11,473,563],mai:[0,3,4,5,6,8,10,12,13,20,21,22,23,24,119,127,128,130,139,141,143,144,145,153,155,158,159,166,168,176,181,182,185,190,192,193,194,195,196,197,198,206,208,209,210,219,224,227,239,242,246,249,253,254,272,273,274,276,281,283,285,287,288,289,292,295,296,297,298,300,301,303,304,308,309,311,316,324,325,326,328,329,332,333,341,342,344,345,359,360,366,368,371,373,376,377,378,381,387,388,389,395,396,399,424,426,427,430,431,442,455,474,478,481,484,486,492,494,495,521,522,523,547,554,563,575,580,584,607,620,621,669,671,690,692,693],main:[0,1,3,5,6,7,10,12,19,21,22,24,160,251,253,272,273,274,286,288,313,342,350,366,394,414,429,473,520,607,696],mainli:136,maintain:[13,286],major:[161,170,253,279,284,287,288,337,344,393,395,506,669,671,678,690,694,696],make:[4,6,13,18,20,22,253,288,296,413,414,429,433,515,521,574,669,697],makefil:20,malici:[7,122,129],man:[8,13,669],manag:[4,5,14,16,17,18,128,130,170,176,209,210,274,286,291,299,300,301,308,310,316,327,370,481,642,696],mani:[0,13,295,311],manner:696,manual:[7,17,123,141,143,145,153,155,160,166,168,218,219,220,222,224,239,253,254,273,288,289,292,295,296,301,303,304,308,309,311,312,313,314,316,317,328,329,333,341,342,345,351,362,368,371,373,376,378,381,387,388,396,424,481,495,506,555,669,695],map:[7,12,122,129,130,210,587,598,599],map_reduce_advanc:12,map_reduce_bas:12,mapper:12,mapreduc:[14,16,18,253,254,328,329,387,388],mark:[7,8,265,505,687,688,689,690,691,692,693],marshal:450,master:[7,128,176,209,213],master_kei:213,masterkei:[171,176],match:[0,1,13,20,145,153,155,182,194,195,196,197,198,213,241,289,295,301,302,303,304,311,313,327,330,331,332,333,340,341,342,350,358,410,465,466,467,468,469,472,520,521,522,523,602,620,669,696],matchedcount:[333,341,342],matcher:377,materi:175,math:696,matic:696,matter:521,max:[1,13,160,194,195,196,198,290,312,317,424,566,610,615],max_await_time_m:365,max_commit_time_m:615,max_pool_s:240,max_staleness_second:518,max_tim:160,max_time_m:411,maxawaittimem:[159,160,287,317,344,360,395],maxidletimem:669,maximum:[159,168,194,239,240,241,287,295,311,317,344,351,362,364,365,369,395,411,521,669],maxpools:[244,669],maxscan:317,maxstalenesssecond:[512,518,669],maxtimem:[13,273,317,365,404],md5:[444,451,460,462],mean:[4,6,10,13,272,351,360,361,366,521,607,696],meant:[12,24,274,275,566],meanwhil:19,measur:543,mechan:[4,495],member:[0,3,13,231,521,669],memori:[5,10,19,162,274,291,370,474,485],memset:7,mere:6,merg:[289,368],messag:[0,1,3,5,6,7,10,11,12,13,22,23,24,35,47,59,148,160,168,224,231,239,248,251,253,272,273,274,286,287,288,289,291,294,295,296,298,303,304,309,311,312,313,317,325,326,333,341,342,344,350,366,368,378,381,395,399,408,409,410,411,412,413,414,429,433,473,520,555,557,607,669,696],metadata:[3,4,426,427,430,431,445,451,461,462,471],method:[4,6,7,238,249,251,255,274,281,311,473,669,697],micro:[161,671],microsecond:[30,55,77,87,541,568,569,570],microsoft:[14,16,18,20,558,559,561],microsoftonlin:[128,209],middl:[8,669],might:[0,4,12,13,208,358],migrat:[294,296,359],millisecond:[6,159,365,411,446,543,558,561,587,588,598,599,610,615,669,680,681,690,692,693],mimic:584,min:[1,195,196,198,317],min_byt:[452,587,588],min_pool_s:241,mind:561,ming64:20,minggw:20,mingw64:20,minheartbeatfrequencym:661,minim:9,minimum:[161,195,241,452,587,588,696],minor:[161,671],minpools:669,minut:[0,9,21,273,285,494,547,554,669],misconfigur:285,miss:[13,160,253,328,387],mistak:[254,329,388],mix:496,mkdir:[17,20,24],mktime:696,mode:[20,163,164,290,291,311,369,370,507,513,516,519,582,636,669],model:[301,473,587,598,599],moder:414,modif:454,modifi:[4,28,32,34,39,41,42,44,45,51,53,56,58,63,66,67,68,72,79,83,88,89,92,108,109,137,154,155,158,199,215,221,228,229,233,234,313,314,317,318,319,320,321,322,347,382,383,384,385,400,407,412,413,414,438,440,441,442,444,445,454,464,470,471,477,480,483,486,494,503,511,514,538,573,580,620,623,624,625,626,627,628,632,633,634,635,636,637,638,643,645,646,679,683,694],modifiedcount:[333,341,342],modul:[11,20],mongo:[0,1,4,10,11,13,17,20,231,253,269,288,494,544,545,603,669,696,697],mongo_uri:10,mongoc:[0,1,3,5,6,7,10,12,20,24,160,251,253,272,273,274,286,288,289,291,294,295,296,311,312,313,317,342,366,368,394,429,450,473,474,478,481,484,487,495,496,497,498,520,544,547,572,594,607,671,694,697],mongoc_aead_aes_256_cbc_hmac_sha_512_determinist:[7,185],mongoc_aead_aes_256_cbc_hmac_sha_512_random:185,mongoc_apm_callbacks_destroi:[3,14,26,27],mongoc_apm_callbacks_new:[3,14,27],mongoc_apm_callbacks_t:[3,14,18,25,26,95,96,97,98,99,100,101,102,103,104,105,106,246,276],mongoc_apm_command_failed_cb_t:95,mongoc_apm_command_failed_get_command_nam:[3,14,40],mongoc_apm_command_failed_get_context:[3,14,40],mongoc_apm_command_failed_get_dur:[14,40],mongoc_apm_command_failed_get_error:[3,14,40],mongoc_apm_command_failed_get_host:[14,40],mongoc_apm_command_failed_get_operation_id:[14,40],mongoc_apm_command_failed_get_repli:[14,40],mongoc_apm_command_failed_get_request_id:[14,40],mongoc_apm_command_failed_get_server_connection_id:[14,40],mongoc_apm_command_failed_get_server_connection_id_int64:[14,36,40],mongoc_apm_command_failed_get_server_id:[14,36,37,40],mongoc_apm_command_failed_get_service_id:[14,40],mongoc_apm_command_failed_t:[3,14,18,28,29,30,31,32,33,34,35,36,37,38,39,95],mongoc_apm_command_started_cb_t:96,mongoc_apm_command_started_get_command:[3,14,52],mongoc_apm_command_started_get_command_nam:[3,14,52],mongoc_apm_command_started_get_context:[3,14,52],mongoc_apm_command_started_get_database_nam:[14,52],mongoc_apm_command_started_get_host:[3,14,52],mongoc_apm_command_started_get_operation_id:[14,52],mongoc_apm_command_started_get_request_id:[14,52],mongoc_apm_command_started_get_server_connection_id:[14,52],mongoc_apm_command_started_get_server_connection_id_int64:[14,48,52],mongoc_apm_command_started_get_server_id:[14,48,49,52],mongoc_apm_command_started_get_service_id:[14,52],mongoc_apm_command_started_t:[3,14,18,41,42,43,44,45,46,47,48,49,50,51,96],mongoc_apm_command_succeeded_cb_t:97,mongoc_apm_command_succeeded_get_command_nam:[3,14,64],mongoc_apm_command_succeeded_get_context:[3,14,64],mongoc_apm_command_succeeded_get_dur:[14,64],mongoc_apm_command_succeeded_get_host:[14,64],mongoc_apm_command_succeeded_get_operation_id:[14,64],mongoc_apm_command_succeeded_get_repli:[3,14,64],mongoc_apm_command_succeeded_get_request_id:[14,64],mongoc_apm_command_succeeded_get_server_connection_id:[14,64],mongoc_apm_command_succeeded_get_server_connection_id_int64:[14,60,64],mongoc_apm_command_succeeded_get_server_id:[14,60,61,64],mongoc_apm_command_succeeded_get_service_id:[14,64],mongoc_apm_command_succeeded_t:[3,14,18,53,54,55,56,57,58,59,60,61,62,63,97],mongoc_apm_server_changed_cb_t:98,mongoc_apm_server_changed_get_context:[3,14,70],mongoc_apm_server_changed_get_host:[3,14,70],mongoc_apm_server_changed_get_new_descript:[3,14,70],mongoc_apm_server_changed_get_previous_descript:[3,14,70],mongoc_apm_server_changed_get_topology_id:[14,70],mongoc_apm_server_changed_t:[3,14,18,65,66,67,68,69,98],mongoc_apm_server_closed_cb_t:99,mongoc_apm_server_closed_get_context:[3,14,74],mongoc_apm_server_closed_get_host:[3,14,74],mongoc_apm_server_closed_get_topology_id:[14,74],mongoc_apm_server_closed_t:[3,14,18,71,72,73,99],mongoc_apm_server_heartbeat_failed_cb_t:100,mongoc_apm_server_heartbeat_failed_get_await:[14,80],mongoc_apm_server_heartbeat_failed_get_context:[3,14,80],mongoc_apm_server_heartbeat_failed_get_dur:[14,80],mongoc_apm_server_heartbeat_failed_get_error:[3,14,80],mongoc_apm_server_heartbeat_failed_get_host:[3,14,80],mongoc_apm_server_heartbeat_failed_t:[3,14,18,75,76,77,78,79,100],mongoc_apm_server_heartbeat_started_cb_t:101,mongoc_apm_server_heartbeat_started_get_await:[14,84],mongoc_apm_server_heartbeat_started_get_context:[3,14,84],mongoc_apm_server_heartbeat_started_get_host:[3,14,84],mongoc_apm_server_heartbeat_started_t:[3,14,18,81,82,83,101],mongoc_apm_server_heartbeat_succeeded_cb_t:102,mongoc_apm_server_heartbeat_succeeded_get_await:[14,90],mongoc_apm_server_heartbeat_succeeded_get_context:[3,14,90],mongoc_apm_server_heartbeat_succeeded_get_dur:[14,90],mongoc_apm_server_heartbeat_succeeded_get_host:[3,14,90],mongoc_apm_server_heartbeat_succeeded_get_repli:[3,14,90],mongoc_apm_server_heartbeat_succeeded_t:[3,14,18,85,86,87,88,89,102],mongoc_apm_server_opening_cb_t:103,mongoc_apm_server_opening_get_context:[3,14,94],mongoc_apm_server_opening_get_host:[3,14,94],mongoc_apm_server_opening_get_topology_id:[14,94],mongoc_apm_server_opening_t:[3,14,18,91,92,93,103],mongoc_apm_set_command_failed_cb:[3,14,27],mongoc_apm_set_command_started_cb:[3,14,27],mongoc_apm_set_command_succeeded_cb:[3,14,27],mongoc_apm_set_server_changed_cb:[3,14,27],mongoc_apm_set_server_closed_cb:[3,14,27],mongoc_apm_set_server_heartbeat_failed_cb:[3,14,27],mongoc_apm_set_server_heartbeat_started_cb:[3,14,27],mongoc_apm_set_server_heartbeat_succeeded_cb:[3,14,27],mongoc_apm_set_server_opening_cb:[3,14,27],mongoc_apm_set_topology_changed_cb:[3,14,27],mongoc_apm_set_topology_closed_cb:[3,14,27],mongoc_apm_set_topology_opening_cb:[3,14,27],mongoc_apm_topology_changed_cb_t:104,mongoc_apm_topology_changed_get_context:[3,14,111],mongoc_apm_topology_changed_get_new_descript:[3,14,111],mongoc_apm_topology_changed_get_previous_descript:[3,14,111],mongoc_apm_topology_changed_get_topology_id:[14,111],mongoc_apm_topology_changed_t:[3,14,18,104,107,108,109,110],mongoc_apm_topology_closed_cb_t:105,mongoc_apm_topology_closed_get_context:[3,14,114],mongoc_apm_topology_closed_get_topology_id:[14,114],mongoc_apm_topology_closed_t:[3,14,18,105,112,113],mongoc_apm_topology_opening_cb_t:106,mongoc_apm_topology_opening_get_context:[3,14,117],mongoc_apm_topology_opening_get_topology_id:[14,117],mongoc_apm_topology_opening_t:[3,14,18,106,115,116],mongoc_auto_encryption_opts_destroi:[7,14,119,131],mongoc_auto_encryption_opts_new:[7,14,118,130,131],mongoc_auto_encryption_opts_set_bypass_auto_encrypt:[7,14,119,131,168,181,182,239],mongoc_auto_encryption_opts_set_bypass_query_analysi:[14,131,181,182],mongoc_auto_encryption_opts_set_encrypted_fields_map:[14,17,129,131],mongoc_auto_encryption_opts_set_extra:[14,17,119,131],mongoc_auto_encryption_opts_set_keyvault_cli:[7,14,21,119,125,131],mongoc_auto_encryption_opts_set_keyvault_client_pool:[14,21,124,131],mongoc_auto_encryption_opts_set_keyvault_namespac:[7,14,119,131],mongoc_auto_encryption_opts_set_kms_credential_provider_callback:[14,131,208],mongoc_auto_encryption_opts_set_kms_provid:[7,14,119,131],mongoc_auto_encryption_opts_set_schema_map:[7,14,17,119,122,131],mongoc_auto_encryption_opts_set_tls_opt:[14,131],mongoc_auto_encryption_opts_t:[2,7,14,18,118,119,120,121,122,123,124,125,126,127,128,129,130,168,181,182,239],mongoc_bulk_operation_delet:[14,151],mongoc_bulk_operation_delete_on:[14,151],mongoc_bulk_operation_destroi:[6,12,14,24,151,297,298],mongoc_bulk_operation_execut:[6,12,13,14,24,132,133,136,138,139,140,141,142,143,144,145,149,151,152,153,154,155,297,298],mongoc_bulk_operation_get_hint:[14,135,151],mongoc_bulk_operation_get_write_concern:[14,151],mongoc_bulk_operation_insert:[6,12,14,24,145,151,297,298],mongoc_bulk_operation_insert_with_opt:[14,138,151],mongoc_bulk_operation_remov:[6,14,132,141,151],mongoc_bulk_operation_remove_many_with_opt:[14,132,133,140,142,143,145,151],mongoc_bulk_operation_remove_on:[6,14,133,140,143,151],mongoc_bulk_operation_remove_one_with_opt:[14,132,133,140,141,142,151],mongoc_bulk_operation_replace_on:[6,14,151],mongoc_bulk_operation_replace_one_with_opt:[6,14,144,151],mongoc_bulk_operation_set_bypass_document_valid:[6,14,151],mongoc_bulk_operation_set_client_sess:[14,151],mongoc_bulk_operation_set_com:[14,151],mongoc_bulk_operation_set_hint:[14,151],mongoc_bulk_operation_set_let:[14,151],mongoc_bulk_operation_t:[2,6,12,14,18,21,24,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,297,298],mongoc_bulk_operation_upd:[14,151,154,297,298],mongoc_bulk_operation_update_many_with_opt:[6,14,151,152,155],mongoc_bulk_operation_update_on:[14,151],mongoc_bulk_operation_update_one_with_opt:[6,14,151,152,153,154],mongoc_change_stream_destroi:[14,160,287,344,395],mongoc_change_stream_error_docu:[14,159,160,287,344,395],mongoc_change_stream_get_resume_token:[14,160,287,344,395],mongoc_change_stream_next:[13,14,158,160,287,344,395],mongoc_change_stream_t:[2,14,18,21,156,157,158,159,273,285,287,344,395,547,554],mongoc_check_vers:[14,671],mongoc_cleanup:[0,1,3,5,6,7,12,14,19,21,22,24,160,251,253,272,273,274,286,288,313,350,366,394,414,429,473,474,485,520,607,696],mongoc_client_command:[14,164,286,694],mongoc_client_command_simpl:[3,14,166,231,251,253,254,286,288,292,371,694,696],mongoc_client_command_simple_with_server_id:[14,286],mongoc_client_command_with_opt:[7,13,14,163,253,286],mongoc_client_decryption_decrypt:[14,181,182,218],mongoc_client_destroi:[0,1,3,6,7,10,12,14,21,24,160,225,235,236,237,253,272,273,274,286,288,309,313,342,350,366,394,414,429,473,520,607,696],mongoc_client_enable_auto_encrypt:[7,14,17,21,119,120,121,122,123,124,126,128,129,130,170,178,181,182,218,239,286],mongoc_client_encryption_add_key_alt_nam:[14,218],mongoc_client_encryption_create_datakei:[7,14,171,177,179,218],mongoc_client_encryption_create_encrypted_collect:[14,218],mongoc_client_encryption_datakey_opts_destroi:[7,14,173,177],mongoc_client_encryption_datakey_opts_new:[7,14,172,177],mongoc_client_encryption_datakey_opts_set_keyaltnam:[7,14,177,187],mongoc_client_encryption_datakey_opts_set_keymateri:[14,177],mongoc_client_encryption_datakey_opts_set_masterkei:[14,171,177],mongoc_client_encryption_datakey_opts_t:[2,7,14,18,170,172,173,174,175,176],mongoc_client_encryption_decrypt:[7,178],mongoc_client_encryption_delete_kei:[14,218],mongoc_client_encryption_destroi:[7,14,203,218],mongoc_client_encryption_encrypt:[7,14,170,178,191,198,218],mongoc_client_encryption_encrypt_express:[14,181,218],mongoc_client_encryption_encrypt_opts_destroi:[7,14,184,191],mongoc_client_encryption_encrypt_opts_new:[7,14,183,191],mongoc_client_encryption_encrypt_opts_set_algorithm:[7,14,17,186,189,190,191,194,195,196,197],mongoc_client_encryption_encrypt_opts_set_contention_factor:[14,191],mongoc_client_encryption_encrypt_opts_set_keyaltnam:[7,14,174,188,191],mongoc_client_encryption_encrypt_opts_set_keyid:[7,14,187,191],mongoc_client_encryption_encrypt_opts_set_query_typ:[14,191],mongoc_client_encryption_encrypt_opts_set_range_opt:[14,191,198],mongoc_client_encryption_encrypt_opts_t:[2,7,14,18,181,182,183,184,185,186,187,188,189,190,198],mongoc_client_encryption_encrypt_range_opts_destroi:[14,193,198],mongoc_client_encryption_encrypt_range_opts_new:[14,190,192,198],mongoc_client_encryption_encrypt_range_opts_set_max:[14,195,196,198],mongoc_client_encryption_encrypt_range_opts_set_min:[14,194,196,198],mongoc_client_encryption_encrypt_range_opts_set_precis:[14,194,195,198],mongoc_client_encryption_encrypt_range_opts_set_spars:[14,198],mongoc_client_encryption_encrypt_range_opts_t:[2,14,18,181,190,192,193,194,195,196,197],mongoc_client_encryption_get_crypt_shared_vers:[14,218,221],mongoc_client_encryption_get_kei:[14,218],mongoc_client_encryption_get_key_by_alt_nam:[14,218],mongoc_client_encryption_new:[7,14,206,207,209,211,218],mongoc_client_encryption_opts_destroi:[7,14,205,211],mongoc_client_encryption_opts_new:[7,14,204,210,211],mongoc_client_encryption_opts_set_keyvault_cli:[7,14,21,211,218],mongoc_client_encryption_opts_set_keyvault_namespac:[7,14,170,211],mongoc_client_encryption_opts_set_kms_credential_provider_callback:[14,127,211],mongoc_client_encryption_opts_set_kms_provid:[7,14,211],mongoc_client_encryption_opts_set_tls_opt:[14,211],mongoc_client_encryption_opts_t:[2,7,14,18,203,204,205,206,207,208,209,210],mongoc_client_encryption_remove_key_alt_nam:[14,218],mongoc_client_encryption_rewrap_many_datakei:[14,215,217,218],mongoc_client_encryption_rewrap_many_datakey_result_destroi:[14,216,217],mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result:[14,217],mongoc_client_encryption_rewrap_many_datakey_result_new:[14,214,217],mongoc_client_encryption_rewrap_many_datakey_result_t:[2,14,18,213,214,215,216],mongoc_client_encryption_t:[2,7,14,17,18,21,169,170,171,178,179,180,181,182,199,200,201,202,203,206,212,213],mongoc_client_find_databases_with_opt:[14,286,362,364,365],mongoc_client_get_collect:[1,3,6,7,10,14,160,273,286,309,313,342,350,366,481,520,555,557,696],mongoc_client_get_crypt_shared_vers:[14,199,286],mongoc_client_get_databas:[6,12,14,24,272,274,286,368,394,414,429,607,696],mongoc_client_get_database_nam:[14,286],mongoc_client_get_database_names_with_opt:[13,14,223,286],mongoc_client_get_default_databas:[14,286,658],mongoc_client_get_gridf:[14,286,473],mongoc_client_get_handshake_descript:[14,286],mongoc_client_get_read_concern:[14,286,503],mongoc_client_get_read_pref:[14,286],mongoc_client_get_server_descript:[14,227,286,537,540,544,546],mongoc_client_get_server_statu:[14,286],mongoc_client_get_uri:[14,286],mongoc_client_get_write_concern:[14,286,683],mongoc_client_new:[0,4,7,9,14,21,225,286,309,350,394,429,520,555,557,696],mongoc_client_new_from_uri:[0,1,3,6,8,10,12,14,21,24,160,235,253,272,273,274,286,288,313,342,366,414,473,607,657,696],mongoc_client_new_from_uri_with_error:[14,236,286],mongoc_client_pool_destroi:[14,21,242,243,251,696],mongoc_client_pool_enable_auto_encrypt:[14,17,21,125,168,170,218,251],mongoc_client_pool_max_s:[14,251],mongoc_client_pool_min_s:[14,251],mongoc_client_pool_new:[9,14,21,251,696],mongoc_client_pool_new_with_error:[14,242,251],mongoc_client_pool_pop:[9,14,21,238,246,247,248,250,251,252,474,669,696],mongoc_client_pool_push:[9,14,21,167,238,241,244,251,696],mongoc_client_pool_set_apm_callback:[3,14,27,29,43,54,65,71,76,82,86,91,107,112,115,251],mongoc_client_pool_set_appnam:[14,251],mongoc_client_pool_set_error_api:[13,14,251,278,696],mongoc_client_pool_set_server_api:[14,251],mongoc_client_pool_set_ssl_opt:[8,14,251,282,574,669],mongoc_client_pool_t:[2,9,14,17,18,21,125,167,206,238,239,240,241,242,243,244,245,246,247,248,249,250,252,277,279,280,282,284,286,474,574,669,696],mongoc_client_pool_try_pop:[14,250,251],mongoc_client_read_command_with_opt:[14,163,166,232,254,286,288,289,292,295,296,311,328,329,343,345,368,371,387,388,396,424,499],mongoc_client_read_write_command_with_opt:[14,163,286],mongoc_client_reset:[14,286],mongoc_client_select_serv:[14,166,219,224,227,253,254,286,288,289,292,295,296,301,308,309,311,316,317,328,329,332,345,368,371,376,378,381,387,388,396],mongoc_client_session_abort_transact:[14,258,259,261,262,263,264,265,266,267,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_advance_cluster_tim:[14,257,259,261,262,263,264,265,266,267,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_advance_operation_tim:[14,257,258,261,262,263,264,265,266,267,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_append:[14,166,219,224,253,254,272,273,274,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,555,557,607],mongoc_client_session_commit_transact:[13,14,257,258,259,262,263,264,265,266,267,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_destroi:[14,21,257,258,259,261,263,264,265,266,267,268,269,272,273,274,285,547,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_get_cli:[14,257,258,259,261,262,264,265,266,267,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_get_cluster_tim:[14,257,258,259,261,262,263,265,266,267,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_get_dirti:[14,273],mongoc_client_session_get_lsid:[14,257,258,259,261,262,263,264,265,267,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_get_operation_tim:[14,257,258,259,261,262,263,264,265,266,268,269,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_get_opt:[14,257,258,259,261,262,263,264,265,266,267,269,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_get_server_id:[14,257,258,259,261,262,263,264,265,266,267,268,272,273,285,548,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_get_transaction_st:[14,273],mongoc_client_session_in_transact:[14,273,553],mongoc_client_session_start_transact:[13,14,166,219,224,253,254,257,258,259,261,262,263,264,265,266,267,268,269,273,285,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,398,399,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_session_t:[2,14,18,21,147,166,219,224,253,254,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,274,275,285,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,547,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,617,618,689],mongoc_client_session_with_transact:[14,273,275],mongoc_client_session_with_transaction_cb_t:[2,14,18,274],mongoc_client_set_apm_callback:[3,14,27,29,43,54,65,71,76,82,86,91,107,112,115,286],mongoc_client_set_appnam:[14,247,286,696],mongoc_client_set_error_api:[1,3,6,10,12,13,14,24,253,272,273,274,286,288,309,313,342,350,366,414,473,520,555,557,607],mongoc_client_set_read_concern:[14,286,503],mongoc_client_set_read_pref:[14,286],mongoc_client_set_server_api:[14,286],mongoc_client_set_ssl_opt:[4,8,14,250,286,574,669],mongoc_client_set_stream_initi:[14,286],mongoc_client_set_write_concern:[14,286,683],mongoc_client_start_sess:[14,21,147,166,219,224,253,254,257,258,259,261,262,263,264,265,266,267,268,269,272,273,274,286,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,547,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,617,618],mongoc_client_t:[0,1,2,3,4,6,7,8,9,10,12,13,14,17,18,21,24,120,124,125,147,160,163,164,165,166,167,168,181,182,206,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,241,244,245,251,252,253,254,255,256,263,272,273,274,276,277,278,279,280,281,282,283,284,285,287,288,309,313,342,350,359,360,366,368,394,414,429,462,473,474,520,547,554,555,557,574,607,625,657,669,696],mongoc_client_watch:[14,160,286,344,395],mongoc_client_write_command_with_opt:[14,163,166,253,254,260,286,289,292,298,300,301,303,304,308,309,325,326,329,332,333,341,342,345,368,371,376,388,396,399,424,672],mongoc_collection_aggreg:[1,14,338,339,359,360,557],mongoc_collection_command:[14,291,339,694],mongoc_collection_command_simpl:[14,24,312,317,328,329,339,345,694],mongoc_collection_command_with_opt:[14,290,328,339],mongoc_collection_copi:[14,339],mongoc_collection_count:[14,295,296,339,696],mongoc_collection_count_docu:[14,294,296,311,339],mongoc_collection_count_with_opt:[13,14,295,339],mongoc_collection_create_bulk_oper:[14,339],mongoc_collection_create_bulk_operation_with_opt:[6,12,14,24,135,297,339],mongoc_collection_create_index:[13,14,339,481],mongoc_collection_create_index_with_opt:[14,339],mongoc_collection_create_indexes_with_opt:[7,14,23,339],mongoc_collection_delet:[14,339],mongoc_collection_delete_mani:[13,14,302,304,330,339,397],mongoc_collection_delete_on:[13,14,302,303,330,339,397,696],mongoc_collection_destroi:[1,3,6,7,10,12,14,24,160,220,272,273,274,286,293,309,313,339,342,350,366,379,414,481,520,607,696],mongoc_collection_drop:[3,7,14,339,342,414],mongoc_collection_drop_index:[14,339,694],mongoc_collection_drop_index_with_opt:[14,23,339],mongoc_collection_drop_with_opt:[14,306,307,339],mongoc_collection_ensure_index:[14,339],mongoc_collection_estimated_document_count:[14,294,295,296,339],mongoc_collection_find:[14,339,355,364,494],mongoc_collection_find_and_modifi:[14,339],mongoc_collection_find_and_modify_with_opt:[14,313,339,399,408,409,410,411,412,413,414],mongoc_collection_find_index:[14,339],mongoc_collection_find_indexes_with_opt:[14,23,315,339,362,364,365],mongoc_collection_find_with_opt:[10,12,13,14,273,286,312,339,342,350,360,365,366,411,423,450,468,469,520,557,696],mongoc_collection_get_last_error:[14,339],mongoc_collection_get_nam:[14,339],mongoc_collection_get_read_concern:[14,339],mongoc_collection_get_read_pref:[14,339],mongoc_collection_get_write_concern:[14,339],mongoc_collection_insert:[14,339],mongoc_collection_insert_bulk:[13,14,339],mongoc_collection_insert_mani:[3,14,323,324,326,339],mongoc_collection_insert_on:[3,7,13,14,160,272,274,288,323,325,334,339,342,345,396,555,607,696],mongoc_collection_keys_to_index_str:[14,23,339],mongoc_collection_read_command_with_opt:[14,290,339],mongoc_collection_read_write_command_with_opt:[14,290,339],mongoc_collection_remov:[14,339],mongoc_collection_renam:[14,339],mongoc_collection_rename_with_opt:[14,331,339],mongoc_collection_replace_on:[13,14,334,339,340,342],mongoc_collection_sav:[14,339],mongoc_collection_set_read_concern:[14,293,339],mongoc_collection_set_read_pref:[14,293,339],mongoc_collection_set_write_concern:[14,293,339],mongoc_collection_stat:[14,339],mongoc_collection_t:[1,2,3,6,7,10,12,14,18,21,24,160,171,220,272,273,274,286,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,328,329,330,331,332,333,334,335,336,337,338,340,341,342,343,344,345,350,366,373,379,394,399,408,409,410,411,412,413,414,470,471,520,555,557,607,696],mongoc_collection_upd:[14,339,413],mongoc_collection_update_mani:[13,14,333,339,340,342],mongoc_collection_update_on:[13,14,273,333,339,340,341,696],mongoc_collection_valid:[14,339],mongoc_collection_watch:[14,160,287,395],mongoc_collection_write_command_with_opt:[14,160,290,339],mongoc_crit:22,mongoc_cursor_clon:[14,366],mongoc_cursor_curr:[14,366],mongoc_cursor_destroi:[1,10,12,14,23,163,273,286,289,290,312,315,316,317,346,350,366,368,369,377,378,423,429,520,696],mongoc_cursor_error:[1,10,12,13,14,23,163,219,273,286,312,316,317,350,359,360,361,366,378,520],mongoc_cursor_error_docu:[14,157,163,289,290,312,315,316,317,349,366,368,369,378],mongoc_cursor_get_batch_s:[14,366],mongoc_cursor_get_hint:[14,366],mongoc_cursor_get_host:[14,366,475],mongoc_cursor_get_id:[14,366],mongoc_cursor_get_limit:[14,366],mongoc_cursor_get_max_await_time_m:[14,366],mongoc_cursor_is_al:[14,366],mongoc_cursor_mor:[10,14,357,366],mongoc_cursor_new_from_command_repli:[14,366],mongoc_cursor_new_from_command_reply_with_opt:[14,359,366],mongoc_cursor_next:[1,10,12,13,14,23,159,163,273,286,289,290,312,315,316,317,342,346,350,358,364,365,366,368,369,377,378,429,520,696],mongoc_cursor_set_batch_s:[14,219,315,316,365,366,377,378],mongoc_cursor_set_hint:[14,352,366],mongoc_cursor_set_limit:[14,219,315,316,355,366,377,378],mongoc_cursor_set_max_await_time_m:[10,14,219,315,316,356,366,377,378],mongoc_cursor_t:[1,2,10,12,14,18,21,23,163,202,219,273,285,286,289,290,305,312,315,316,317,342,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,368,369,377,378,423,429,450,520,547,554,696],mongoc_database_add_us:[14,394],mongoc_database_aggreg:[14,394],mongoc_database_command:[12,14,370,394,694],mongoc_database_command_simpl:[12,14,387,388,394,396,694],mongoc_database_command_with_opt:[13,14,369,387,394],mongoc_database_copi:[14,394],mongoc_database_create_collect:[6,14,171,272,274,394,414,607],mongoc_database_destroi:[6,12,14,24,222,225,272,274,368,372,394,414,429,607,696],mongoc_database_drop:[14,394],mongoc_database_drop_with_opt:[14,375,394],mongoc_database_find_collect:[14,394],mongoc_database_find_collections_with_opt:[14,362,364,365,377,394],mongoc_database_get_collect:[12,14,24,272,274,391,392,393,394,607],mongoc_database_get_collection_nam:[14,394],mongoc_database_get_collection_names_with_opt:[14,378,380,394],mongoc_database_get_nam:[14,225,394],mongoc_database_get_read_concern:[14,394],mongoc_database_get_read_pref:[14,394],mongoc_database_get_write_concern:[14,394],mongoc_database_has_collect:[14,394],mongoc_database_read_command_with_opt:[12,14,369,394],mongoc_database_read_write_command_with_opt:[14,369,394],mongoc_database_remove_all_us:[14,394],mongoc_database_remove_us:[14,394],mongoc_database_set_read_concern:[14,372,394],mongoc_database_set_read_pref:[14,372,394],mongoc_database_set_write_concern:[14,372,394],mongoc_database_t:[2,6,12,14,18,21,24,171,222,225,272,274,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,395,396,414,424,429,607,696],mongoc_database_watch:[14,160,287,344,394],mongoc_database_write_command_with_opt:[14,369,394],mongoc_debug:22,mongoc_delete_flags_t:[2,14,18,302],mongoc_delete_non:397,mongoc_delete_single_remov:[302,397],mongoc_disable_shm:5,mongoc_enable_ssl:[250,282],mongoc_encrypt_algorithm_index:185,mongoc_encrypt_algorithm_rangepreview:185,mongoc_encrypt_algorithm_unindex:185,mongoc_encrypt_query_type_equ:189,mongoc_encrypt_query_type_rangepreview:189,mongoc_encryption_example_1:7,mongoc_encryption_example_2:7,mongoc_encryption_example_3:7,mongoc_encryption_example_4:7,mongoc_error:[22,231,272,274,473,607],mongoc_error_api_version_2:[13,248,278,557],mongoc_error_api_version_legaci:[13,248,278],mongoc_error_azur:13,mongoc_error_bson:13,mongoc_error_bson_invalid:13,mongoc_error_change_stream_no_resume_token:13,mongoc_error_cli:13,mongoc_error_client_authent:13,mongoc_error_client_in_exhaust:13,mongoc_error_client_invalid_encryption_arg:13,mongoc_error_client_invalid_encryption_st:13,mongoc_error_client_invalid_load_balanc:13,mongoc_error_client_no_acceptable_p:13,mongoc_error_client_session_failur:13,mongoc_error_client_side_encrypt:13,mongoc_error_client_too_big:13,mongoc_error_collect:13,mongoc_error_collection_delete_fail:13,mongoc_error_collection_insert_fail:13,mongoc_error_collection_update_fail:13,mongoc_error_command:[6,13],mongoc_error_command_invalid_arg:13,mongoc_error_cursor:13,mongoc_error_cursor_invalid_cursor:13,mongoc_error_duplicate_kei:13,mongoc_error_gcp:13,mongoc_error_gridf:13,mongoc_error_gridfs_bucket_file_not_found:13,mongoc_error_gridfs_bucket_stream:13,mongoc_error_gridfs_chunk_miss:13,mongoc_error_gridfs_corrupt:13,mongoc_error_gridfs_invalid_filenam:13,mongoc_error_gridfs_protocol_error:13,mongoc_error_has_label:[13,14,272,607],mongoc_error_kms_server_bad_json:13,mongoc_error_kms_server_http:13,mongoc_error_max_time_ms_expir:13,mongoc_error_namespac:13,mongoc_error_namespace_invalid:13,mongoc_error_protocol:13,mongoc_error_protocol_bad_wire_vers:13,mongoc_error_protocol_invalid_repli:13,mongoc_error_queri:13,mongoc_error_query_failur:[13,309],mongoc_error_sasl:13,mongoc_error_scram:13,mongoc_error_scram_protocol_error:13,mongoc_error_serv:[10,13,309],mongoc_error_server_select:[13,669],mongoc_error_server_selection_failur:13,mongoc_error_server_selection_invalid_id:13,mongoc_error_stream:13,mongoc_error_stream_connect:13,mongoc_error_stream_name_resolut:13,mongoc_error_stream_socket:13,mongoc_error_transact:13,mongoc_error_transaction_invalid:13,mongoc_error_write_concern:[6,13],mongoc_export:189,mongoc_find_and_modify_flags_t:[403,410],mongoc_find_and_modify_non:410,mongoc_find_and_modify_opts_append:[14,314,411,414],mongoc_find_and_modify_opts_destroi:[14,399,407,408,409,410,411,412,413,414],mongoc_find_and_modify_opts_get_bypass_document_valid:[14,414],mongoc_find_and_modify_opts_get_field:[14,414],mongoc_find_and_modify_opts_get_flag:[14,414],mongoc_find_and_modify_opts_get_max_time_m:[14,414],mongoc_find_and_modify_opts_get_sort:[14,414],mongoc_find_and_modify_opts_get_upd:[14,414],mongoc_find_and_modify_opts_new:[14,399,408,409,410,411,412,413,414],mongoc_find_and_modify_opts_set_bypass_document_valid:[14,401,414],mongoc_find_and_modify_opts_set_field:[14,402,414],mongoc_find_and_modify_opts_set_flag:[14,403,409,413,414],mongoc_find_and_modify_opts_set_max_time_m:[14,399,404,414],mongoc_find_and_modify_opts_set_sort:[14,405,414],mongoc_find_and_modify_opts_set_upd:[14,399,406,408,409,410,411,412,414],mongoc_find_and_modify_opts_t:[2,14,18,314,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],mongoc_find_and_modify_remov:410,mongoc_find_and_modify_return_new:[409,410,413,414],mongoc_find_and_modify_upsert:[410,414],mongoc_get_major_vers:[14,671],mongoc_get_micro_vers:[14,671],mongoc_get_minor_vers:[14,671],mongoc_get_vers:[14,671],mongoc_gridf:473,mongoc_gridfs_bucket_abort_upload:[14,429],mongoc_gridfs_bucket_delete_by_id:[14,429],mongoc_gridfs_bucket_destroi:[14,424,429],mongoc_gridfs_bucket_download_to_stream:[14,429],mongoc_gridfs_bucket_find:[14,429],mongoc_gridfs_bucket_new:[14,429],mongoc_gridfs_bucket_open_download_stream:[14,428,429],mongoc_gridfs_bucket_open_upload_stream:[14,419,427,428,429],mongoc_gridfs_bucket_open_upload_stream_with_id:[14,419,426,428,429],mongoc_gridfs_bucket_stream_error:[14,425,426,427,429],mongoc_gridfs_bucket_t:[2,14,15,18,21,420,421,422,423,424,425,426,427,430,431,473],mongoc_gridfs_bucket_upload_from_stream:[13,14,429,431],mongoc_gridfs_bucket_upload_from_stream_with_id:[14,429,430],mongoc_gridfs_create_fil:[14,473,586],mongoc_gridfs_create_file_from_stream:[14,473,586],mongoc_gridfs_destroi:[14,226,473],mongoc_gridfs_drop:[14,473],mongoc_gridfs_file_destroi:[14,432,433,449,450,462,466,467,468,473],mongoc_gridfs_file_error:[14,452,454,462,464,473],mongoc_gridfs_file_get_alias:[14,462],mongoc_gridfs_file_get_chunk_s:[14,462],mongoc_gridfs_file_get_content_typ:[14,462],mongoc_gridfs_file_get_filenam:[14,462,473],mongoc_gridfs_file_get_id:[14,462],mongoc_gridfs_file_get_length:[14,462],mongoc_gridfs_file_get_md5:[14,462],mongoc_gridfs_file_get_metadata:[14,462],mongoc_gridfs_file_get_upload_d:[14,462],mongoc_gridfs_file_list_destroi:[14,450,465,469,473],mongoc_gridfs_file_list_error:[14,450],mongoc_gridfs_file_list_next:[14,450,473],mongoc_gridfs_file_list_t:[2,14,18,21,447,448,449,462,465,469,473],mongoc_gridfs_file_opt_t:[2,14,18,432,433,462,473],mongoc_gridfs_file_readv:[14,462],mongoc_gridfs_file_remov:[14,462],mongoc_gridfs_file_sav:[13,14,456,457,458,460,461,462,473],mongoc_gridfs_file_seek:[14,462],mongoc_gridfs_file_set_alias:[14,462],mongoc_gridfs_file_set_content_typ:[14,462],mongoc_gridfs_file_set_filenam:[14,462],mongoc_gridfs_file_set_id:[13,14,462,473],mongoc_gridfs_file_set_md5:[14,462],mongoc_gridfs_file_set_metadata:[14,462],mongoc_gridfs_file_t:[2,14,15,18,21,432,433,436,437,438,439,440,441,442,443,444,445,446,449,450,451,452,453,454,455,456,457,458,459,460,461,463,464,466,467,468,473,586],mongoc_gridfs_file_tel:[14,462],mongoc_gridfs_file_writev:[14,432,462],mongoc_gridfs_find:[14,450,473],mongoc_gridfs_find_on:[14,473],mongoc_gridfs_find_one_by_filenam:[14,473],mongoc_gridfs_find_one_with_opt:[14,466,473],mongoc_gridfs_find_with_opt:[14,465,473],mongoc_gridfs_get_chunk:[14,473],mongoc_gridfs_get_fil:[14,473],mongoc_gridfs_remove_by_filenam:[13,14,473],mongoc_gridfs_t:[2,14,15,18,21,226,429,432,433,434,435,462,465,466,467,468,469,470,471,472],mongoc_handshake_appname_max:[247,277],mongoc_handshake_data_append:[14,286],mongoc_host_list_t:[2,14,18,32,45,56,66,72,79,83,88,92,286,353,538,627],mongoc_index_model_destroi:[7,301],mongoc_index_model_new:[7,23,301],mongoc_index_model_t:[7,23],mongoc_index_opt_geo_get_default:[14,478],mongoc_index_opt_geo_init:[14,478,481],mongoc_index_opt_geo_t:[2,14,18,476,477,481,484],mongoc_index_opt_get_default:[14,481],mongoc_index_opt_init:[14,481],mongoc_index_opt_storage_t:[481,484],mongoc_index_opt_t:[2,14,18,299,300,310,478,479,480,484],mongoc_index_opt_wt_get_default:[14,484],mongoc_index_opt_wt_init:[14,484],mongoc_index_opt_wt_t:[2,14,18,478,481,482,483],mongoc_info:22,mongoc_init:[0,1,3,5,6,7,10,12,14,19,21,22,24,160,162,251,253,272,273,274,286,288,313,350,366,394,414,429,473,474,520,607,696],mongoc_insert_continue_on_error:486,mongoc_insert_flags_t:[2,14,18,323,324],mongoc_insert_no_valid:486,mongoc_insert_non:486,mongoc_iovec_t:[2,14,18,452,464,473,570,588,599],mongoc_kms_credentials_provider_callback_fn:[127,208],mongoc_log:22,mongoc_log_default_handl:22,mongoc_log_domain:22,mongoc_log_func_t:22,mongoc_log_level_crit:22,mongoc_log_level_debug:22,mongoc_log_level_error:22,mongoc_log_level_info:22,mongoc_log_level_messag:22,mongoc_log_level_str:22,mongoc_log_level_t:22,mongoc_log_level_trac:22,mongoc_log_level_warn:22,mongoc_log_set_handl:[19,22,162,485],mongoc_log_trace_dis:22,mongoc_log_trace_en:22,mongoc_major_vers:[415,671],mongoc_messag:22,mongoc_micro_vers:[416,671],mongoc_minor_vers:[417,671],mongoc_no_max_stal:[512,518,521],mongoc_optional_copi:[14,492],mongoc_optional_init:[14,492],mongoc_optional_is_set:[14,491,492],mongoc_optional_set_valu:[14,492],mongoc_optional_t:[2,14,18,488,489,490,491,493,527,528],mongoc_optional_valu:[14,492],mongoc_output_basenam:20,mongoc_query_await_data:[494,523],mongoc_query_exhaust:[289,494],mongoc_query_flags_t:[2,14,18,163,289,290,294,296,312,369],mongoc_query_no_cursor_timeout:494,mongoc_query_non:[1,12,289,294,296,312,494,557,696],mongoc_query_oplog_replai:494,mongoc_query_parti:494,mongoc_query_secondary_ok:494,mongoc_query_tailable_cursor:494,mongoc_rand:[2,14,18],mongoc_rand_add:[14,495],mongoc_rand_se:[14,495],mongoc_rand_statu:[14,495],mongoc_read_concern_append:[14,166,253,254,288,289,292,295,296,311,317,328,329,368,371,381,387,388,424,506],mongoc_read_concern_copi:[14,506],mongoc_read_concern_destroi:[14,253,272,288,381,500,504,506,607],mongoc_read_concern_get_level:[14,506],mongoc_read_concern_is_default:[14,506],mongoc_read_concern_level_avail:506,mongoc_read_concern_level_lineariz:506,mongoc_read_concern_level_loc:[279,506],mongoc_read_concern_level_major:[253,288,381,506],mongoc_read_concern_level_snapshot:506,mongoc_read_concern_new:[14,253,272,288,317,381,506,607],mongoc_read_concern_set_level:[14,253,272,288,317,381,506,607],mongoc_read_concern_t:[2,14,18,166,228,253,254,272,279,288,289,292,294,295,296,311,317,320,328,329,335,368,371,381,383,387,388,391,424,499,500,501,502,503,504,505,607,611,616,635,665],mongoc_read_mode_t:[2,14,18,513,516,519],mongoc_read_nearest:[507,521],mongoc_read_prefs_add_tag:[14,521],mongoc_read_prefs_copi:[14,521],mongoc_read_prefs_destroi:[3,12,14,253,273,288,509,516,520,521],mongoc_read_prefs_get_hedg:[14,521],mongoc_read_prefs_get_max_staleness_second:[14,521],mongoc_read_prefs_get_mod:[14,521],mongoc_read_prefs_get_tag:[14,521],mongoc_read_prefs_is_valid:[14,521],mongoc_read_prefs_new:[3,12,14,253,273,288,317,520,521],mongoc_read_prefs_set_hedg:[14,521],mongoc_read_prefs_set_max_staleness_second:[14,521],mongoc_read_prefs_set_mod:[14,521],mongoc_read_prefs_set_tag:[14,521],mongoc_read_prefs_t:[2,3,12,13,14,18,163,164,165,166,229,232,253,254,256,273,280,286,288,289,290,291,292,294,295,296,311,312,317,321,328,329,336,338,368,369,370,371,384,387,388,392,424,508,509,510,511,512,513,514,515,516,517,518,519,520,602,612,617,637,666],mongoc_read_primari:[163,164,290,291,336,369,370,392,507,521],mongoc_read_primary_pref:[507,521],mongoc_read_secondari:[3,12,253,273,288,317,507,520,521],mongoc_read_secondary_pref:[507,521],mongoc_remove_flags_t:[2,14,18,330],mongoc_remove_non:522,mongoc_remove_single_remov:[330,522],mongoc_reply_await_cap:523,mongoc_reply_cursor_not_found:523,mongoc_reply_flags_t:[2,14,18],mongoc_reply_non:523,mongoc_reply_query_failur:523,mongoc_reply_shard_config_stal:523,mongoc_server_api_copi:[14,532],mongoc_server_api_deprecation_error:[14,532],mongoc_server_api_destroi:[14,524,530,532],mongoc_server_api_get_deprecation_error:[14,532],mongoc_server_api_get_strict:[14,532],mongoc_server_api_get_vers:[14,532],mongoc_server_api_new:[14,532],mongoc_server_api_strict:[14,311,532],mongoc_server_api_t:[2,14,18,249,281,492,524,525,526,527,528,529,530,531],mongoc_server_api_v1:534,mongoc_server_api_version_from_str:[14,534],mongoc_server_api_version_t:[2,14,18,529,530,532,533,535],mongoc_server_api_version_to_str:[14,534],mongoc_server_description_destroi:[14,227,230,256,542,544],mongoc_server_description_hello_respons:[14,540,544],mongoc_server_description_host:[3,14,231,544],mongoc_server_description_id:[14,166,219,224,253,254,288,289,292,295,296,301,308,309,311,316,317,328,329,332,345,368,371,376,378,381,387,388,396,544],mongoc_server_description_ismast:[14,544],mongoc_server_description_last_update_tim:[14,544],mongoc_server_description_new_copi:[14,544],mongoc_server_description_round_trip_tim:[14,544],mongoc_server_description_t:[2,3,14,18,67,68,74,94,99,103,227,230,231,256,536,537,538,539,540,541,542,543,545,546,601],mongoc_server_description_typ:[3,14,227,544],mongoc_server_descriptions_destroy_al:[3,14,231,544,601],mongoc_session_opt_t:[2,14,18,21,268,272,273,285,548,549,550,551,552,554,555,556,557,607],mongoc_session_opts_clon:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,547,549,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_destroi:[14,21,257,258,259,261,262,263,264,265,266,267,268,269,272,273,285,547,548,550,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_get_causal_consist:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,547,548,549,551,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_get_default_transaction_opt:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,547,548,549,550,552,553,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_get_snapshot:[14,547],mongoc_session_opts_get_transaction_opt:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,547,548,549,550,551,552,554,555,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_new:[14,21,257,258,259,261,262,263,264,265,266,267,268,269,272,273,285,547,548,549,550,551,552,553,555,556,557,607,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_set_causal_consist:[14,21,257,258,259,261,262,263,264,265,266,267,268,269,272,273,285,547,548,549,550,551,552,553,554,556,557,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_set_default_transaction_opt:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,547,548,549,550,551,552,553,554,555,557,607,608,609,610,611,612,613,614,615,616,617,618],mongoc_session_opts_set_snapshot:[14,547,552,555],mongoc_shar:696,mongoc_smallest_max_staleness_second:521,mongoc_socket_accept:[14,572],mongoc_socket_bind:[14,572],mongoc_socket_clos:[14,572],mongoc_socket_connect:[14,572],mongoc_socket_destroi:[14,558,567,572],mongoc_socket_errno:[14,560,572],mongoc_socket_getnameinfo:[14,572],mongoc_socket_getsocknam:[14,572],mongoc_socket_listen:[14,572],mongoc_socket_new:[14,572],mongoc_socket_recv:[14,572],mongoc_socket_send:[14,572],mongoc_socket_sendv:[14,572],mongoc_socket_setsockopt:[14,572],mongoc_socket_t:[2,14,18,558,559,560,561,562,563,564,565,566,567,568,569,570,571,591,592],mongoc_socklen_t:[559,561,565,571,589],mongoc_ssl_opt_get_default:[14,574],mongoc_ssl_opt_t:[2,4,14,18,250,282,573],mongoc_stat:[696,697],mongoc_stream_buffered_new:[14,576,578,594,597],mongoc_stream_buffered_t:[2,14,18,575,585,594],mongoc_stream_clos:[14,422,426,427,429,430,431,594],mongoc_stream_cork:[14,594,597],mongoc_stream_destroi:[14,429,473,575,576,577,581,582,592,594],mongoc_stream_file_get_fd:[14,583],mongoc_stream_file_new:[14,422,430,431,583],mongoc_stream_file_new_for_path:[14,422,429,430,431,473,583],mongoc_stream_file_t:[2,14,18,580,581,582,594],mongoc_stream_flush:[14,594],mongoc_stream_get_base_stream:[14,594],mongoc_stream_gridfs_new:[14,462,473],mongoc_stream_initiator_t:[283,286],mongoc_stream_read:[14,430,431,588,594,598],mongoc_stream_readv:[14,473,586,587,594,598],mongoc_stream_setsockopt:[14,594],mongoc_stream_should_retri:[14,594],mongoc_stream_socket_get_socket:[14,593],mongoc_stream_socket_new:[14,593],mongoc_stream_socket_t:[2,14,18,591,592,594],mongoc_stream_t:[2,14,15,18,21,283,286,419,422,425,426,427,428,429,430,431,433,473,487,575,576,577,578,579,581,582,583,584,585,586,587,588,589,590,592,593,595,596,597,598,599],mongoc_stream_timed_out:[14,594],mongoc_stream_tls_t:[2,14,18,585,594],mongoc_stream_uncork:[14,578,594],mongoc_stream_writ:[14,587,588,594],mongoc_stream_writev:[14,586,587,588,594,598],mongoc_topology_description_destroi:[14,604,605],mongoc_topology_description_get_serv:[3,14,605],mongoc_topology_description_has_readable_serv:[3,14,605],mongoc_topology_description_has_writable_serv:[3,14,605],mongoc_topology_description_new_copi:[14,605],mongoc_topology_description_t:[2,3,14,18,105,106,108,109,114,117,600,601,602,603,604,606],mongoc_topology_description_typ:[3,14,605],mongoc_transaction_abort:619,mongoc_transaction_commit:619,mongoc_transaction_in_progress:619,mongoc_transaction_non:619,mongoc_transaction_opt_t:[2,14,18,166,219,224,253,254,272,274,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,551,553,556,608,609,610,611,612,613,614,615,616,617,618],mongoc_transaction_opts_clon:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,609,610,611,612,613,614,615,616,617,618],mongoc_transaction_opts_destroi:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,610,611,612,613,614,615,616,617,618],mongoc_transaction_opts_get_max_commit_time_m:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,611,612,613,614,615,616,617,618],mongoc_transaction_opts_get_read_concern:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,612,613,614,615,616,617,618],mongoc_transaction_opts_get_read_pref:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,613,614,615,616,617,618],mongoc_transaction_opts_get_write_concern:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,614,615,616,617,618],mongoc_transaction_opts_new:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,615,616,617,618],mongoc_transaction_opts_set_max_commit_time_m:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,616,617,618],mongoc_transaction_opts_set_read_concern:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,617,618],mongoc_transaction_opts_set_read_pref:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,618],mongoc_transaction_opts_set_write_concern:[14,257,258,259,261,262,263,264,265,266,267,268,269,272,285,548,549,550,551,552,553,554,555,556,557,607,608,609,610,611,612,613,614,615,616,617],mongoc_transaction_start:619,mongoc_transaction_state_t:[2,14,18,270],mongoc_update_flags_t:[2,14,18,340],mongoc_update_multi_upd:[340,620],mongoc_update_no_valid:620,mongoc_update_non:620,mongoc_update_upsert:620,mongoc_uri_appnam:669,mongoc_uri_authmechan:669,mongoc_uri_authmechanismproperti:669,mongoc_uri_authsourc:669,mongoc_uri_canonicalizehostnam:669,mongoc_uri_compressor:669,mongoc_uri_connecttimeoutm:669,mongoc_uri_copi:[14,669],mongoc_uri_destroi:[1,3,6,10,12,14,24,160,251,253,272,273,274,286,288,313,342,366,414,473,607,621,649,669,696],mongoc_uri_directconnect:669,mongoc_uri_get_auth_mechan:[4,14,624,628,655,656,659,669],mongoc_uri_get_auth_sourc:[4,14,623,628,655,656,659,669],mongoc_uri_get_compressor:[14,669],mongoc_uri_get_databas:[14,669],mongoc_uri_get_host:[14,475,669],mongoc_uri_get_mechanism_properti:[4,14,623,624,655,656,659,669],mongoc_uri_get_opt:[14,669],mongoc_uri_get_option_as_bool:[14,669],mongoc_uri_get_option_as_int32:[14,631,669],mongoc_uri_get_option_as_int64:[14,630,669],mongoc_uri_get_option_as_utf8:[14,669],mongoc_uri_get_password:[14,669],mongoc_uri_get_read_concern:[14,669],mongoc_uri_get_read_pref:[14,669],mongoc_uri_get_read_prefs_t:[14,636,669],mongoc_uri_get_replica_set:[14,669],mongoc_uri_get_servic:[14,669],mongoc_uri_get_srv_hostnam:[14,639,669],mongoc_uri_get_srv_service_nam:[14,669],mongoc_uri_get_ssl:[14,669],mongoc_uri_get_str:[14,669],mongoc_uri_get_tl:[14,642,669],mongoc_uri_get_usernam:[14,669],mongoc_uri_get_write_concern:[14,669],mongoc_uri_gssapiservicenam:669,mongoc_uri_has_opt:[14,669],mongoc_uri_heartbeatfrequencym:669,mongoc_uri_journ:669,mongoc_uri_loadbalanc:669,mongoc_uri_localthresholdm:669,mongoc_uri_maxidletimem:669,mongoc_uri_maxpools:669,mongoc_uri_maxstalenesssecond:669,mongoc_uri_minpools:669,mongoc_uri_new:[0,4,8,9,14,625,628,657,659,669],mongoc_uri_new_for_host_port:[14,669],mongoc_uri_new_with_error:[1,3,6,10,12,14,24,160,251,253,272,273,274,286,288,313,342,366,414,473,607,648,669,696],mongoc_uri_option_is_bool:[14,669],mongoc_uri_option_is_int32:[14,653,669],mongoc_uri_option_is_int64:[14,652,662,669],mongoc_uri_option_is_utf8:[14,669],mongoc_uri_readconcernlevel:669,mongoc_uri_readprefer:669,mongoc_uri_readpreferencetag:669,mongoc_uri_replicaset:669,mongoc_uri_retryread:669,mongoc_uri_retrywrit:669,mongoc_uri_saf:669,mongoc_uri_serverselectiontimeoutm:669,mongoc_uri_serverselectiontryonc:669,mongoc_uri_set_auth_mechan:[4,14,623,624,628,656,659,669],mongoc_uri_set_auth_sourc:[4,14,623,624,628,655,659,669],mongoc_uri_set_compressor:[14,669],mongoc_uri_set_databas:[14,669],mongoc_uri_set_mechanism_properti:[4,14,623,624,628,655,656,669],mongoc_uri_set_option_as_bool:[8,14,669],mongoc_uri_set_option_as_int32:[14,662,669],mongoc_uri_set_option_as_int64:[14,661,669],mongoc_uri_set_option_as_utf8:[0,8,14,669],mongoc_uri_set_password:[14,669],mongoc_uri_set_read_concern:[14,669],mongoc_uri_set_read_prefs_t:[14,669],mongoc_uri_set_usernam:[14,669],mongoc_uri_set_write_concern:[14,669],mongoc_uri_socketcheckintervalm:669,mongoc_uri_sockettimeoutm:669,mongoc_uri_srvmaxhost:669,mongoc_uri_ssl:669,mongoc_uri_sslallowinvalidcertif:669,mongoc_uri_sslallowinvalidhostnam:669,mongoc_uri_sslcertificateauthorityfil:669,mongoc_uri_sslclientcertificatekeyfil:669,mongoc_uri_sslclientcertificatekeypassword:669,mongoc_uri_t:[0,1,2,3,4,6,8,9,10,12,14,18,24,160,219,223,224,233,236,237,242,243,251,253,272,273,274,286,287,288,289,294,295,296,311,312,313,315,316,317,328,342,344,366,368,377,378,380,381,387,395,414,422,423,465,466,467,468,469,473,607,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,655,656,657,658,659,660,661,662,663,664,665,666,667,668,696],mongoc_uri_tl:[8,669],mongoc_uri_tlsallowinvalidcertif:[8,669],mongoc_uri_tlsallowinvalidhostnam:[8,669],mongoc_uri_tlscafil:[8,130,210,669],mongoc_uri_tlscertificatekeyfil:[0,8,130,210,669],mongoc_uri_tlscertificatekeyfilepassword:[8,130,210,669],mongoc_uri_tlsdisablecertificaterevocationcheck:[8,669],mongoc_uri_tlsdisableocspendpointcheck:[8,669],mongoc_uri_tlsinsecur:[8,669],mongoc_uri_unescap:[14,669],mongoc_uri_w:669,mongoc_uri_waitqueuemultipl:669,mongoc_uri_waitqueuetimeoutm:669,mongoc_uri_wtimeoutm:669,mongoc_uri_zlibcompressionlevel:669,mongoc_version_:671,mongoc_version_hex:671,mongoc_warn:[22,648,657],mongoc_write_concern_append:[6,7,14,160,166,253,254,288,289,292,298,300,301,303,304,308,309,325,326,329,332,333,341,342,345,368,371,376,388,396,399,411,414,424,694],mongoc_write_concern_copi:[14,694],mongoc_write_concern_destroi:[6,7,14,160,253,272,288,399,411,414,607,673,686,694],mongoc_write_concern_get_fsync:[14,694],mongoc_write_concern_get_journ:[14,675,694],mongoc_write_concern_get_w:[14,694],mongoc_write_concern_get_wmajor:[14,694],mongoc_write_concern_get_wtag:[14,694],mongoc_write_concern_get_wtimeout:[14,692,694],mongoc_write_concern_get_wtimeout_int64:[14,680,693,694],mongoc_write_concern_is_acknowledg:[14,694],mongoc_write_concern_is_default:[14,694],mongoc_write_concern_is_valid:[14,694],mongoc_write_concern_journal_is_set:[14,694],mongoc_write_concern_new:[6,7,14,160,253,272,288,289,399,411,414,607,694],mongoc_write_concern_set_fsync:[14,694],mongoc_write_concern_set_journ:[14,687,694],mongoc_write_concern_set_w:[6,14,289,399,411,414,555,694],mongoc_write_concern_set_wmajor:[7,14,160,253,272,288,607,694],mongoc_write_concern_set_wtag:[14,694],mongoc_write_concern_set_wtimeout:[14,680,694],mongoc_write_concern_set_wtimeout_int64:[6,14,681,690,692,694],mongoc_write_concern_t:[2,6,7,14,18,137,160,166,234,253,254,272,284,286,288,289,292,297,298,300,301,302,303,304,308,309,313,322,323,324,325,326,329,330,332,333,334,337,340,341,342,345,368,371,376,384,385,388,393,396,399,411,414,424,555,607,613,618,646,668,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693],mongoc_write_concern_w_default:[284,297,318,337,393,694],mongoc_write_concern_w_errors_ignor:694,mongoc_write_concern_w_major:[677,694],mongoc_write_concern_w_unacknowledg:694,mongocli:7,mongocryptd:[7,17,121,123],mongocryptdbypassspawn:123,mongocryptdspawnarg:123,mongocryptdspawnpath:123,mongocryptduri:123,mongod:[0,1,3,4,12,24,520,544,669],mongodb:[1,3,5,6,7,8,9,10,12,13,14,15,17,18,19,22,23,24,27,39,40,51,52,63,64,95,96,97,123,141,143,145,148,153,154,155,160,162,166,168,171,218,219,220,222,223,224,225,227,231,235,239,250,251,253,254,272,273,274,279,280,282,284,286,287,288,289,292,293,294,295,296,298,300,301,303,304,308,309,311,312,313,314,316,317,325,326,328,329,332,333,336,337,339,341,342,343,344,345,346,350,351,353,359,360,362,365,366,368,371,373,376,378,381,386,387,388,392,393,394,395,396,399,408,414,424,429,433,452,453,454,462,472,473,475,481,485,486,494,495,503,506,507,517,519,520,521,522,532,534,537,540,555,557,574,586,602,603,605,607,620,625,627,628,630,631,639,640,641,647,650,651,652,653,654,657,659,665,666,668,669,671,683,691,694,697],mongodbus:4,mongoimport:1,monitor:[5,9,14,18,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,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,227,246,276,474,544,545,602,603,605,606],monoton:[561,568,569,570],month:696,more:[0,4,5,7,9,10,11,22,122,129,152,153,154,155,160,213,289,294,296,306,307,312,317,331,333,341,342,343,358,359,360,366,368,375,410,474,506,519,558,590,620,657,669,689,691,694,695,696],most:[8,20,247,277,287,303,304,312,339,341,342,344,395,521,532,537,540,697],mous:[12,24],move:455,mql:[150,289,298,303,304,333,341,342,368,399],msg:5,msys2_shel:20,msys64:20,much:[0,5,17],multi:[9,13,21,167,206,251,257,261,262,271,272,273,285,286,547,554,607,614,669],multipl:[0,20,21,151,240,241,244,245,252,274,340,342,412,475,494,521,669],munin:5,must:[0,1,4,6,7,8,9,11,12,13,19,21,24,26,119,124,125,128,135,147,151,152,153,154,155,162,166,169,170,171,173,174,178,179,181,182,184,193,194,195,196,197,198,199,200,201,203,205,206,208,209,212,213,215,216,218,221,226,227,230,231,238,244,246,247,248,250,251,253,254,256,261,272,273,285,287,288,289,290,292,295,297,300,303,304,312,313,314,315,316,317,318,323,325,326,328,329,333,338,341,342,343,344,345,359,360,361,368,369,371,377,378,387,388,395,396,408,423,424,429,452,466,467,468,474,485,521,524,530,538,544,547,548,553,554,586,601,605,608,614,628,669,687,688,690,691,696,697],mutex:[22,251,696],mutual:[160,187,188,287,344,395,555,557],my_capped_collect:[253,288],my_collect:[253,288],my_logg:22,my_r:[9,654],my_servic:659,myca:4,mycert:4,mycertpassword:4,mycol:696,mydb:[4,650,696],mypass:650,myreplset:[0,10,650],myshard01:0,myuser:650,myvalu:[630,631],n_document:[324,325],n_model:301,n_new_sd:3,n_prev_sd:3,n_written:160,nagio:5,nagl:0,name:[0,1,3,4,13,20,23,24,28,42,44,53,126,130,136,149,150,163,164,165,166,169,171,174,176,187,201,207,210,212,220,222,225,226,247,253,254,277,288,289,298,303,304,307,308,312,319,331,332,333,341,342,352,363,367,368,373,378,379,380,381,382,386,390,396,399,424,426,427,430,431,473,474,481,564,565,571,629,630,631,632,639,640,641,647,651,652,653,654,658,659,660,661,662,663,669,696],name_filt:378,namespac:[7,24,122,129,226,424],namespaceexist:[272,274,607],nat:4,nativ:[0,4,18],navig:5,ndoc:[12,24],nearest:[521,669],nearspher:295,necessari:[3,6,7,9,20,273,283,312,544],need:[0,4,6,9,20,21,127,159,171,208,220,222,274,287,312,344,395,456,457,458,460,461,574,590,669,690,696],needtim:24,needyield:24,neg:[168,186,196,197,239,317,364,455,587,588,598,599],negoti:[4,366],neither:158,nest:1,net:[4,176],network:[4,5,6,10,13,22,34,153,155,164,165,166,219,223,224,232,253,254,257,261,272,287,288,289,291,292,294,295,296,300,301,302,303,304,308,309,311,312,313,314,315,316,317,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,344,345,350,366,367,368,370,371,376,377,378,380,381,386,387,388,389,390,395,396,422,423,433,435,453,465,466,467,468,469,472,567,590,595,607,669,694],never:[4,10,287,289,290,312,315,316,317,344,350,368,369,378,395,669],new_db:[331,332],new_nam:[331,332],new_sd:3,new_td:3,new_valu:696,newer:[8,11,15,20,317,671,695],newli:[7,170,220,222,225,231,235,236,237,242,243,274,285,287,289,290,293,297,298,312,315,316,317,344,346,368,369,372,373,377,378,379,395,407,423,424,432,433,449,465,466,467,468,469,500,504,509,516,524,542,558,564,575,581,582,586,592,601,604,621,648,649,650,670,673,686],next:[6,8,9,12,18,159,358,361,449,475,669,694],next_doc:342,nfail:3,nindexeswa:3,ninja:20,ninsert:[6,253,288],nmatch:6,nmodifi:6,noconfirm:20,nocursortimeout:317,node:[0,3,286,520,521,678,690,694],non:[4,8,9,186,196,197,274,294,296,303,304,317,323,325,326,327,341,342,359,360,429,466,556,588,594,599,607,630,631,669],none:[4,13,145,153,155,225,317,502,669],nonexist:[272,274,607],nor:158,normal:[6,9,20,253,272,274,288,296,317,494,607],notabl:227,notat:696,note:[0,1,4,6,8,12,19,20,22,162,181,186,189,247,359,365,368,411,413,414,433,485,521,586,636],noth:[25,134,167,172,180,183,192,204,214,262,305,348,374,400,421,434,436,447,501,510,526,536,549,562,579,600,609,622,674],notherdoc:11,notic:696,notif:[3,26,27,40,52,64,70,74,80,84,90,94,95,96,97,98,99,100,101,102,103,104,105,106,111,114,117,246,276,287,344,395],now:[4,6,7,12,20,24,136,149,272,274,352,363,505,607,687,688,689,690,691,692,693,697],nremov:6,nrepli:350,nreturn:24,nsucceed:3,num:[495,496,497],number:[1,5,6,12,33,35,46,47,57,59,136,149,150,174,176,240,241,244,287,289,290,294,295,296,298,301,303,304,311,312,324,333,341,342,344,351,352,354,362,363,364,366,368,369,395,399,452,464,495,496,497,498,522,534,546,568,569,570,587,588,594,598,599,669,696],numberdoubl:696,numberint:11,numberlong:[11,696],nupsert:6,o_creat:429,o_rdonli:[429,473],o_rdwr:429,oauth2:[128,209],obei:[254,329,388],object:[2,7,9,14,15,18,127,129,171,199,208,238,274,313,314,361,394,473,506,521,538,694,696],objectid:[11,442,696,697],observ:[70,98,104,111],obsolet:300,obtain:[4,7,12,20,23,24,122,129,160,166,167,199,206,219,221,224,227,238,253,254,288,289,292,295,296,301,308,309,311,316,317,328,329,332,345,368,371,376,378,381,387,388,396,696],occur:[6,10,13,20,22,145,153,155,157,171,208,253,287,289,290,312,313,315,316,317,328,332,344,349,350,366,368,369,378,387,395,428,448,454,459,495,669],occurr:12,ocsp:[8,669],off:[5,8,17,19,20,160,287,344,395],offer:696,offici:[557,696],oid:[10,408,409,410,412,413,414,696],old:[7,13,136,149,312,317,352,363,408,414],old_valu:696,older:[15,309,317],oldest:[412,414],omit:[0,159,254,288,289,317,329,345,388,396,574],onc:[4,7,9,12,17,19,20,21,135,151,160,162,219,223,224,238,246,247,248,249,250,253,281,287,289,294,295,296,311,312,315,316,317,328,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,474,485,491,521,574,669],one:[0,1,5,6,9,11,13,17,20,21,128,160,171,182,209,227,238,244,251,252,253,273,285,286,288,296,303,304,326,327,333,341,342,362,410,428,454,455,462,464,486,521,545,547,554,556,606,657,669,696],onli:[0,4,5,6,7,8,9,10,17,20,21,28,32,34,41,42,44,45,53,56,58,66,67,68,72,79,83,88,89,92,108,109,120,124,125,129,132,133,135,140,141,142,143,144,145,148,149,151,152,153,154,155,160,167,168,181,182,185,186,189,190,192,193,194,195,196,197,198,199,218,221,225,227,238,239,246,247,248,250,251,256,258,259,264,266,268,273,279,284,285,286,287,289,295,317,340,343,344,358,359,360,363,365,366,368,378,395,408,429,454,462,464,473,494,506,512,515,518,520,521,522,547,551,554,557,560,574,587,598,599,602,611,612,613,620,632,660,661,662,663,669,671,696,697],onlin:8,onto:[167,238,251,696],op_delet:6,op_insert:6,op_queri:[312,317],op_upd:6,opaqu:[136,149,151,165,230,286,352,359,363,539,605],opcod:6,open:[3,5,9,10,20,94,117,160,425,426,427,429,560,582,590,697],openssl:20,openssl_root:8,oper:[1,3,5,9,12,13,14,16,18,21,24,33,46,57,95,96,97,123,132,133,135,136,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,160,163,164,165,166,168,171,215,219,223,224,227,239,253,256,258,259,264,267,272,273,274,275,279,280,284,285,287,289,290,291,292,294,295,296,297,298,311,312,315,316,317,318,320,321,322,325,328,332,335,336,337,339,344,350,352,363,366,368,369,370,371,377,378,380,381,387,391,392,393,395,397,398,399,411,412,414,420,422,423,424,430,431,437,465,466,467,468,469,474,486,494,505,517,521,522,547,554,555,557,569,580,619,620,669,675,687,688,689,690,691,692,693,694,697],operationtim:[160,258,259,267,696],oplog:10,oplogreplai:317,opportun:556,opt:[6,7,10,23,118,120,121,122,123,124,125,126,127,128,129,130,135,139,141,143,145,153,155,160,166,168,170,171,172,174,175,176,181,182,183,185,186,187,188,189,190,203,204,206,207,208,209,210,219,224,227,239,250,253,254,260,272,273,274,282,285,287,288,289,292,295,296,298,299,300,301,303,304,308,309,310,311,314,316,317,325,326,328,329,332,333,341,342,344,345,359,360,368,371,373,376,378,381,387,388,395,396,399,401,402,403,404,405,406,408,409,410,411,412,413,414,423,424,426,427,430,431,432,433,468,469,473,477,480,481,483,489,490,491,493,499,548,549,550,551,552,555,556,557,607,608,609,610,611,612,613,615,616,617,618,669],opt_masterkei:171,optim:[9,20,160],option:[4,5,6,7,9,13,18,21,119,123,124,125,127,128,130,131,135,139,141,143,145,153,155,157,158,159,160,163,164,165,166,169,170,176,177,179,185,187,188,191,198,200,201,202,208,209,210,211,212,213,219,223,224,226,227,231,232,237,243,244,246,250,253,254,256,257,260,261,272,273,274,275,276,282,285,286,287,288,289,290,291,292,294,295,296,297,298,299,300,301,302,303,304,306,307,308,309,310,311,312,313,314,315,316,323,324,325,326,328,329,330,331,332,333,334,338,340,341,342,343,344,345,349,350,359,360,365,366,367,368,369,370,371,373,375,376,377,378,380,381,386,387,388,389,390,395,396,408,409,410,411,412,413,414,423,424,426,427,430,431,432,433,435,437,448,451,453,466,467,468,469,472,473,474,476,478,479,481,482,484,492,499,503,532,548,551,553,556,573,574,582,607,608,610,611,612,613,628,629,630,631,632,633,641,642,644,647,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,667,668,672,683,684,685,696,697],option_kei:669,option_valu:669,optlen:[571,589],optnam:[571,589],optval:[571,589],order:[0,1,3,4,21,135,141,143,145,153,155,166,253,254,288,289,292,295,296,297,298,301,303,304,308,309,311,312,313,317,325,328,329,333,341,342,345,368,371,376,387,388,396,412,468,469,487,521,555,696],orderbi:312,org:[7,12,20,24],origin:[13,123,320,322],other:[0,4,7,12,13,19,20,21,24,123,129,162,238,258,259,272,277,288,295,297,298,312,317,323,325,326,327,345,350,367,390,396,442,474,485,495,506,521,594,607,628,659,669,682,694,696],otherwis:[12,21,22,141,143,145,153,155,159,163,164,166,169,170,178,179,181,182,200,201,202,203,212,213,215,239,252,253,254,256,264,271,274,277,288,289,290,291,292,294,295,296,301,303,304,308,309,311,313,328,329,333,334,336,341,342,345,349,350,361,368,369,370,371,376,387,388,392,396,408,409,410,411,412,413,419,420,422,424,428,430,431,437,448,454,455,474,490,498,505,521,553,563,565,567,575,577,581,582,584,586,589,602,624,633,634,635,636,637,641,645,646,648,650,655,656,660,661,662,663,669,679],our:[0,5,12,274,313,696],out:[6,9,12,13,20,139,141,143,145,153,155,208,227,256,260,273,274,289,290,303,304,312,315,316,317,325,326,341,342,353,368,369,378,466,467,468,494,533,628,669],out_collect:12,out_collection_nam:12,out_opt:171,outcollect:12,outfil:7,outgo:121,outliv:[21,124,125,206,218,429],output:[3,10,12,20,148,171,208,254,287,289,295,298,303,304,311,313,314,325,326,329,333,341,342,344,368,388,395,399,408,409,410,412,413,414,628],outsid:[5,630],outstand:521,over:[4,6,12,20,157,287,344,395],overal:[3,6,104,111],overhead:22,overrid:[22,166,219,224,250,253,254,272,282,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,426,427,430,431,556,607,669],overridden:[8,166,253,254,288,289,292,317,328,329,339,345,368,371,387,388,394,396,556,607],overs:13,oversight:311,overwrit:[8,657],overwritten:488,own:[5,9,12,22,24,160,429,470,471,473,537,538,540,635,637,646,696],ownership:[586,592],packag:[18,696],packet:[0,5,22,494],pacman:20,pad:[475,478,481,484,574],page:[0,21,313,314,317,696],pain:22,pair:[12,521,669,696],parallel:[0,6,517,521,669],param:[208,274],paramet:[0,13,544,605,669],parent:[255,339,394],pars:[1,3,6,7,10,12,18,24,160,166,251,253,272,273,274,286,288,292,313,342,366,371,414,473,607,650,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,696],parsedqueri:24,part:[4,32,45,56,66,72,79,83,88,92,132,133,140,141,142,143,144,145,146,148,150,152,153,154,155,181,182,185,190,192,193,194,195,196,197,198,277,474,475,521,669,675],parti:7,partial:[8,494],partial_filter_express:481,partialfilterexpress:7,particip:[555,689],particular:[20,289,394,473,495,696],partit:10,pass:[0,3,4,6,12,13,24,27,29,43,54,65,71,76,82,86,91,107,112,115,123,127,128,135,139,141,143,145,153,155,158,160,172,183,192,204,208,209,214,227,246,256,272,273,274,275,276,283,289,294,296,301,302,303,304,306,307,317,325,326,330,331,338,341,342,359,360,364,375,413,421,474,499,556,582,586,589,597,607,650,657,669,672,696],password:[0,4,8,12,24,367,628,634,659,664,667,669],past:575,path:[0,4,8,11,15,17,20,123,582,669,697],paus:669,payload:[181,182],pedant:474,pem:[0,4,8,130,210,669],pem_fil:[4,8,250,282,574],pem_pwd:[4,8,250,282,574],peopl:697,per:[1,9,351,362,521,694],perfectli:13,perform:[4,6,7,9,10,14,18,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60,61,62,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,120,138,139,152,154,168,178,181,227,239,241,246,251,253,274,276,293,294,296,297,313,324,328,340,341,342,372,387,389,390,391,392,393,424,452,464,486,494,500,515,542,544,561,568,570,576,580,587,588,598,599,602,603,604,605,620,669,671,673,675,687,696,697],perhap:594,period:[494,537,540],permiss:[12,24],permit:411,perror:429,persist:[160,456,457,458,460,461],phd:696,phongo:474,php:9,physic:584,pid:5,pin:[13,269],ping:[231,251,291,696],pipe:1,pipelin:[1,6,160,287,289,338,340,341,342,344,359,360,368,395,557],pipeline_queri:289,pkg:[3,10,12,20,24,251,253,272,273,274,286,288,366,607],place:[20,312,655,656,660,661,662,663,669,696],plai:[408,414],plain:[18,457],plan:[312,317],plannervers:24,platform:[5,8,18,19,474,487,558,559,561,582,696,697],player:[399,408,410,411,412,413,414],pleas:[5,20,36,48,60,132,133,223,280,297,302,315,324,334,336,357,359,377,380,392,397,507,540,636,639,642,675,687,696],point:[158,160,171,199,208,221,250,282,287,344,366,395,541,557,628],pointer:[3,29,43,54,65,71,76,82,86,91,107,112,115,127,175,199,208,221,246,260,267,276,283,313,325,350,455,476,479,482,499,503,533,594,632,672,683],polici:20,poll:9,pool:[5,14,16,18,125,167,168,238,239,240,241,244,245,246,247,248,249,250,251,252,255,262,273,278,279,280,282,284,285,286,537,539,540,547,554,574,696],pop:[1,282],popul:[208,237,243,303,304,325,326,333,341,342,533,650],port1:669,port2:669,port:[0,3,12,24,176,475,538,649,669,696],portabl:[19,487,558,559,561,572],portion:[251,626,634,645,696],portn:669,posit:[36,37,48,49,60,61,244,408,410,412,413,414,455,463,518,521,689,690,692,693],possibl:[0,5,6,8,10,15,20,158,283,291,365,411,428,694],possibleprimari:545,potenti:[8,20,135,253,328,358,387,452,669],power8:20,ppc64le:20,practic:[1,7,8,12,473],pre:[418,444],preced:[6,8],precis:[194,195,196,198],predic:[141,143,145,153,155,289,295,303,304,333,341,342,368,399],pref:[3,7,256,286,350,366,515,602,666],prefer:[13,15,163,164,166,227,229,253,254,256,272,280,287,289,291,292,294,296,312,317,321,328,329,336,344,363,368,369,370,371,384,387,388,392,394,395,424,473,504,507,508,509,510,511,513,514,517,518,519,520,521,530,556,602,607,617,636,637,666,686,697],prefix:[11,226,424,473,669],prepar:[253,288],preprocess:4,preprocessor:[671,697],presenc:669,present:[0,4,8,20,641,647],preserv:[13,158,293,372],preset:691,pretti:[408,414],prev_sd:3,prev_td:3,prevent:[7,123,255,494,578],preview:695,previou:[3,9,68,109,255,358,555],previous:[6,359,401,505,597,657,687,688,689,690,691,692,693],prid64:[294,295,296,311,631,696],primari:[3,9,13,166,176,253,256,272,273,280,288,289,292,317,328,336,368,371,387,392,473,521,603,607,669],primarypref:[521,669],primit:[19,162,485,495],princip:4,principl:694,print:[3,11,13,22,312,313,317,350,696],print_all_docu:[10,312],print_bson:10,print_count:[295,311],print_one_docu:7,print_pipelin:1,print_query_count:[294,296],print_r:[12,24],print_ten_docu:317,printbson:11,printf:[1,3,6,7,10,12,23,24,160,224,231,253,272,274,288,291,294,295,296,309,311,312,313,317,342,378,381,399,408,409,410,411,412,413,414,429,473,520,607,628,696],prior:[238,287,289,295,317,344,368,395],prioriti:[0,166,253,254,288,289,292,317,328,329,345,368,371,387,388,396],privat:[8,594,669,696],privatekei:[128,209],privileg:[168,239],prng:[495,498],pro:24,probabl:[251,696],probe:0,problem:[5,473],problemat:19,proce:[123,697],process:[1,5,10,17,19,20,22,121,123,162,255,297,454,464,485,541,560,573],produc:[1,13,20,628],product:[5,20],profess:[399,408,410,411,412,413,414],profil:[148,287,289,295,298,303,304,311,325,326,333,341,342,344,368,395,399,669,696],program:[3,5,9,12,18,19,20,21,24,162,251,279,280,282,284,289,290,297,298,312,315,316,317,327,346,368,369,378,485,495,648,650],programm:696,progress:[13,135,257,261,262,271,272,590,619],prohibit:[21,148,150,166,176,253,254,273,285,288,289,292,317,328,329,345,368,371,387,388,396,547,554],project:[5,14,16,18,20,317],projectid:176,prompt:[11,20],proof:[4,19],prop:[628,659],propag:[132,133,135,138,139,140,141,142,143,144,145,152,153,155,164,166,223,224,226,232,253,254,288,291,292,294,295,296,297,298,300,301,302,303,304,308,309,310,311,313,314,315,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,345,349,350,370,371,373,376,377,380,381,386,387,388,389,390,396,435,437,448,453,466,467,468,472,690,694],properli:[4,312],properti:[4,7,129,628,659,697],protect:[7,122,129],protocol:[4,5,8,35,47,59,312,366,486,494,522,523,567,620,669,695],prove:696,provid:[0,1,4,5,6,8,12,13,15,20,22,24,122,127,128,129,130,139,145,151,153,155,165,170,171,175,176,208,209,210,213,218,235,236,237,242,243,272,274,275,286,287,289,300,301,302,303,304,308,309,325,326,330,332,333,339,341,342,344,359,366,368,373,376,394,395,429,450,462,473,475,495,521,523,532,559,561,572,581,592,594,623,624,625,626,633,635,638,645,646,649,669,696,697],pseudo:495,pthread:[251,696],pthread_creat:[251,696],pthread_join:[251,696],pthread_mutex_init:[251,696],pthread_mutex_lock:[251,696],pthread_mutex_t:[251,696],pthread_mutex_unlock:[251,696],pthread_t:[251,696],publicli:1,pull:[494,495],purpos:697,push:[1,167,238,241,669],put:9,python:[11,20],queri:[1,4,5,6,7,10,12,13,33,46,57,124,125,141,143,145,153,155,163,181,182,189,198,223,224,232,251,253,273,286,288,289,294,295,296,302,303,304,311,312,313,314,317,330,333,340,341,342,346,350,354,358,364,365,366,368,399,408,409,410,411,412,413,414,423,450,465,466,468,469,473,494,523,669,696],query_collect:10,query_don:12,query_opt:557,query_typ:189,queryabl:[14,17,129,168,171,181,182,185,190,192,193,194,195,196,197,198,218,239,309,373,376],queryplann:24,queu:135,queue:[132,133,138,139,140,141,142,143,144,145,152,153,154,155],quick:669,quit:473,r_ok:160,rack1:520,rack2:520,rack:[520,521],ran:697,random:[7,175,185,495,496,497,498],randomli:669,rang:[181,182,185,186,189,190,192,193,194,195,196,197,198,359,360,630,662],range_opt:[190,192,194,195,196,197],rangeopt:198,rangepreview:[181,182,185,186,189,190,194,195,196,197,198,695],rather:[4,9,20,494,495,669],raw:[160,166,253,254,287,288,292,328,329,344,345,371,387,388,395,396],reach:[274,561,570,669],read:[1,7,12,13,15,159,160,163,164,165,166,219,223,224,227,228,229,253,254,256,272,273,279,280,286,287,288,289,290,291,292,294,295,296,311,312,315,316,317,320,321,328,329,335,336,344,345,350,358,361,363,366,368,369,370,371,377,378,380,381,384,387,388,391,392,394,395,396,422,423,424,425,430,431,433,452,465,466,467,468,469,473,499,501,502,503,504,505,507,508,509,510,511,512,513,514,515,517,518,519,520,552,555,556,557,568,580,586,587,588,602,607,616,617,630,635,636,637,665,666],read_concern:[253,272,279,288,335,391,499,500,501,502,503,505,607,616],read_mod:516,read_pref:[12,163,164,165,166,232,253,254,280,288,289,290,291,292,294,295,296,311,312,317,328,329,336,368,369,370,371,387,388,392,424,508,509,510,511,512,513,514,515,517,518,519,520,602,617],readabl:[13,602],readconcern:[166,253,254,288,289,292,295,296,311,317,328,329,335,368,371,387,388,391,424,502,503,505,506,669],readconcernlevel:669,reader:[7,160,473],readi:11,readm:20,readprefer:669,readpreferencetag:[521,669],readv:462,reason:[171,297,298,364,669],receipt:694,receiv:[3,5,6,8,9,13,27,28,31,32,34,41,42,44,45,53,56,58,66,67,68,69,72,73,78,79,83,88,89,92,93,95,96,97,98,99,100,101,102,103,104,105,106,108,109,110,113,116,160,231,246,261,267,274,275,276,287,317,344,395,420,422,425,426,427,428,430,431,544,568,601,605,669,694],recent:[8,20,241,537,540],recommend:[0,4,7,8,15,20,160,286,311],record:[0,312,366,669],recreat:160,recv:568,red:[20,696],redhat:20,reduc:[6,12,22,168,239],refer:[7,14,18,123,127,208,268,294,296,317,537,538,540,544,605,669,696],referenc:[0,20,434],reflect:273,refresh:[21,273,285,547,554],regardless:[5,6,253,328,387,560],regex:11,region:176,regist:[22,246,276,437,448,511,514,696],regul:8,regular:[358,450],reiniti:[19,162,485],rejectedplan:24,rel:[123,455],relat:[0,3,13,19,208,473,499,672,695],releas:[19,135,162,164,167,180,181,182,185,190,192,193,194,195,196,197,198,232,238,348,374,447,485,558,562,579,669,694,696],relev:171,reli:[7,20,122,129,312,669],reliabl:[13,272],relwithdebinfo:20,remain:[0,1,10,246,250,276,277,282,283,399,409,412,413,474,492,574,586,628],rememb:697,remov:[6,9,22,74,99,140,141,142,143,144,145,152,153,154,155,212,303,304,313,317,330,389,390,410,453,472,522,669,694,696,697],renam:[331,332],repeat:[366,669],repeatedli:669,replac:[6,123,144,145,150,171,283,286,295,333,659,697],repli:[0,3,5,6,7,12,13,23,24,34,58,89,135,157,160,164,165,166,179,232,253,254,261,272,273,274,275,288,289,290,291,292,295,300,301,303,304,311,312,313,314,315,316,317,325,326,328,329,333,338,341,342,343,345,350,359,360,368,369,370,371,378,387,388,396,398,399,408,409,410,411,412,413,414,494,523,555,607,696],replic:[6,521,669],replica:[3,10,12,13,219,223,224,231,253,280,286,287,288,289,294,295,296,311,312,315,316,317,328,336,344,368,377,378,380,381,387,392,395,422,423,465,466,467,468,469,473,494,521,602,694,696],replicaset:[0,3,9,10,160,231,520,638,650,654,669],replicasetnoprimari:[3,606],replicasetwithprimari:[3,606],replset:[253,288],reply_json:[272,607],report:[2,4,6,14,18,139,141,143,145,153,155,248,278,696],repositori:11,repres:[23,126,270,287,289,301,344,368,395,424,426,427,430,431,520,521,533,605,696],represent:[219,315,316,377,378,418,534,535,669],reproduc:5,request:[5,8,20,35,47,59,176,208,251,287,289,300,308,309,317,344,362,368,395,435,520,669,696],requir:[0,4,7,8,11,12,17,20,24,33,46,57,119,141,143,145,153,155,161,166,168,171,176,182,197,227,239,250,253,254,274,282,287,288,289,292,295,296,298,301,303,304,308,309,311,313,325,326,328,329,333,341,342,344,345,362,366,368,371,376,387,388,395,396,399,424,474,495,669,695,696,697],required_major:161,required_micro:161,required_minor:161,requiretl:[0,4],res:[12,24,429],res_nsearch:669,res_search:669,rescan:669,resembl:669,reset:346,resolv:[0,123,350,669],resort:521,resourc:[4,19,162,167,172,176,180,183,192,204,214,238,255,262,305,348,374,400,434,436,447,485,501,510,536,562,579,600,622,674],respect:[8,241,669,696],respond:[8,9,13,309,669],respons:[4,8,9,12,13,19,36,37,48,49,60,61,160,162,163,164,165,227,246,274,276,283,291,350,359,360,369,370,485,521,537,540,669,694],rest:696,restart:160,restor:[6,22,408],restorest:24,result:[0,1,4,6,7,8,10,12,33,46,57,129,159,160,164,166,168,178,179,181,182,200,201,202,213,214,215,217,219,223,224,228,229,232,234,239,253,254,274,287,288,289,290,291,292,297,298,303,304,312,313,314,315,316,317,318,325,326,328,329,333,338,341,342,344,345,346,354,358,362,364,365,366,368,369,370,371,377,378,387,388,395,396,410,455,465,466,467,468,469,474,494,517,521,555,556,557,565,567,607,648,650,669,695,696],resum:[13,158,287,344,395,494],resume_token:160,resume_token_doc:160,resume_token_path:160,resumeaft:[158,160,287,344,395],ret:[6,7,12,24,251,696],retain:361,retri:[12,219,223,224,253,272,274,287,289,294,295,296,311,312,315,316,317,328,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,607,669],retriev:[4,7,10,124,125,136,163,228,229,234,244,247,250,251,286,287,294,296,338,344,351,352,354,356,364,366,383,385,395,425,426,427,428,448,452,454,464,471,494,560,565,569,591,696],retry_transact:[272,607],retryabl:[12,163,164,165,166,219,223,224,253,287,289,290,291,292,294,295,296,311,312,315,316,317,328,344,368,369,370,371,377,378,380,381,387,395,422,423,465,466,467,468,469,590],retryread:[219,223,224,253,287,289,294,295,296,311,312,315,316,317,328,344,368,377,378,380,381,387,395,422,423,465,466,467,468,469,669],retrywrit:669,returnkei:317,retval:[274,696],revers:[21,696],revoc:[8,669],revok:8,rewrap:213,rfc:[0,4,8,669],rhel:20,rich:11,right:[506,694,697],robust:10,robustli:10,role:[6,367,408],root:8,roughli:[9,669],round:[6,351,358,362,543,669],rout:[286,473],routin:697,rp_tag:520,rpath:123,rs0:160,rsarbit:545,rsghost:545,rsother:545,rsprimari:[3,545],rssecondari:[3,545],rule:[6,19,129,408],run:[0,4,6,10,20,163,164,165,166,232,253,254,274,275,283,287,288,300,338,343,344,350,368,395,396,495,517,521,532,537,540,669,696,697],run_queri:350,run_query_with_read_prefs_tag:520,runpath:123,runtim:[5,11,495],s390x:20,safe:[3,9,11,218,219,223,224,238,240,241,244,245,251,252,253,274,286,287,289,294,295,296,309,311,312,315,316,317,328,332,344,366,368,377,378,380,381,387,395,422,423,429,454,462,464,465,466,467,468,469,473,580,669,696],safeti:[22,696],said:473,sake:[136,149,272,352,363,506,607],same:[0,1,4,7,13,17,20,136,147,158,208,218,250,287,294,296,344,360,395,413,429,473,495,521,557,560,669,690,692,693],sampl:[10,12,20,24,696],sasl:[13,18,20,669],sasl_error:13,saslprep:4,satisfi:[6,317,365,515,691],save:[7,334,454,473,486],savest:24,scan:[9,669],scandata:343,scanner:669,scatter:[452,487],scenario:286,schannel:8,schema:[6,7,122,129,171,289,325,326,333,341,342,368,408],schema_map:[7,129],schema_str:7,schema_string_len:7,scheme:[627,639,640],school:696,scope:[11,20,28,32,34,41,42,44,45,53,56,58,66,67,68,72,79,83,88,89,92,108,109],scram:[13,18,655],script:11,sdam:[544,605],sds:[231,546],search:[123,669],second:[0,1,3,6,9,20,24,160,272,274,521,607,669],secondari:[3,9,12,273,494,512,518,521,669],secondaryok:669,secondarypref:[521,669],secret:4,secretaccesskei:[128,209],section:[20,627,696],secur32:697,secur:[4,7,122,129,175,495],see:[0,1,4,5,6,7,8,9,10,11,12,13,17,19,20,22,23,24,122,130,135,141,143,145,152,153,154,155,160,162,166,168,170,171,185,210,219,223,224,239,248,251,253,254,260,262,263,272,273,274,278,280,286,287,288,289,292,294,295,296,298,299,300,301,303,304,306,307,308,309,310,311,312,313,314,315,316,317,318,325,326,327,328,329,331,332,333,336,341,342,343,344,345,349,350,351,357,358,362,365,368,371,373,375,376,377,378,380,381,386,387,388,392,395,396,398,399,422,423,424,429,437,465,466,467,468,469,473,481,485,499,505,506,507,519,544,547,549,550,551,552,553,554,555,557,605,607,610,611,612,613,642,669,672,689,691,694,695,696],seed:[0,495,497,498],seek:[15,462],seek_cur:455,seek_end:455,seek_set:455,seen:650,segfault:5,segment:5,select:[4,9,20,141,142,143,144,145,152,153,154,155,227,256,412,512,518,521,697],selector:[6,132,133,140,141,142,143,144,145,152,153,154,155,273,296,302,303,304,330,333,340,341,342,522],semant:[584,587,598,599],send:[0,6,7,13,24,80,100,129,166,176,253,254,255,288,289,292,328,329,345,368,371,387,388,396,474,569,570,669],sendmsg:570,sens:[515,521],sensit:7,sent:[4,5,6,40,52,64,70,74,80,84,90,94,111,114,117,277,295,312,335,391,399,474,506,521,532,557,569,570,619],separ:[0,1,20,21,24,124,125,312,317,521,627,657,669],sequenc:[13,21,273,274,275,285,547,554,670,696],serial:6,server:[3,4,5,6,9,13,20,24,32,34,35,36,37,38,45,47,48,49,50,56,59,60,61,62,66,70,72,74,79,80,83,84,88,90,92,94,98,99,100,101,102,103,104,105,111,114,122,129,135,136,149,153,154,155,157,160,163,164,165,166,219,220,222,223,224,227,230,231,232,251,253,254,256,257,261,266,269,274,275,277,282,285,286,287,288,289,290,291,292,293,294,295,296,300,301,302,303,304,308,309,311,312,313,314,315,316,317,323,324,325,326,328,329,330,332,333,334,335,336,338,340,341,342,343,344,345,346,348,350,351,352,354,358,359,360,362,363,365,367,368,369,370,371,376,377,378,381,386,387,388,389,390,391,392,395,396,399,411,433,435,452,453,454,472,474,475,481,486,494,521,523,530,532,534,536,537,538,539,540,541,543,544,545,546,557,566,601,602,603,605,606,619,620,680,681,690,691,692,693,694,696],server_chang:3,server_changed_ev:3,server_clos:3,server_closed_ev:3,server_heartbeat_fail:3,server_heartbeat_start:3,server_heartbeat_succeed:3,server_id:[149,165,227,230,359,363],server_open:3,server_opening_ev:3,serverid:[13,166,219,224,253,254,288,289,292,295,296,301,308,309,311,316,317,328,329,332,345,360,368,371,376,378,381,387,388,396],serverinfo:24,serverselectiontimeoutm:669,serverselectiontryonc:[350,669],serverstatu:232,servic:[4,13,39,51,63,128,130,170,176,209,210,641,659,669],service_nam:[4,628,659],session:[3,4,11,13,147,166,219,224,253,254,255,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,285,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,547,548,550,551,552,553,554,555,556,557,607,619],session_opt:[272,555,557,607],sessionid:[13,166,219,224,253,254,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,360,368,371,376,378,381,387,388,396,399,423],set:[3,4,7,8,10,11,12,20,21,27,119,121,123,124,125,126,127,135,139,141,143,145,147,153,155,157,159,160,164,165,166,168,169,170,171,174,175,176,177,178,179,181,182,186,189,190,191,194,195,196,197,198,200,201,202,203,206,207,208,211,212,213,215,219,223,224,226,231,232,239,240,241,246,247,248,249,250,253,254,257,261,272,274,275,276,277,278,279,280,281,282,284,285,286,287,288,289,291,292,294,295,296,298,300,301,302,303,304,308,309,311,312,313,314,315,316,317,323,324,325,326,328,329,330,332,333,334,335,336,337,338,340,341,342,343,344,345,349,350,355,356,358,359,360,361,364,365,367,368,370,371,373,376,377,378,380,381,386,387,388,389,390,391,392,393,395,396,399,402,403,404,405,406,414,419,420,422,423,426,427,428,430,431,435,437,448,451,453,455,456,457,458,459,460,461,465,466,467,468,469,472,473,474,486,490,491,492,493,494,502,503,505,506,517,518,519,520,523,525,527,528,531,532,555,556,557,559,560,561,565,566,567,568,569,570,571,574,577,578,581,582,584,587,588,589,597,598,599,602,607,620,628,629,630,631,632,655,656,657,658,659,660,661,662,663,664,665,666,667,668,675,677,678,679,683,685,687,688,689,690,691,692,693,694,696,697],set_:339,setsockopt:[571,589],setter:[556,607],sever:[4,20,160,462,696],sha:[13,18,655],shall:[226,240,283,294,296,297,298,302,305,312,323,326,330,333,334,340,346,358,361,367,432,433,434,449,466,508,509,575,577,578,579,580,582,584,585,586,587,597,598,599],shallow:574,shard:[286,494,517,521,523,606,669,696],share:[0,5,7,9,17,20,123,669,696],shell:[1,10,20,24,696],shim:594,should:[0,1,7,8,9,10,13,19,20,21,28,32,34,36,39,41,42,44,45,48,51,53,56,58,60,63,66,67,68,72,79,83,88,89,92,108,109,123,124,125,129,132,133,137,144,152,153,154,155,158,160,162,163,164,167,171,218,220,222,223,224,225,226,228,229,232,233,234,235,236,237,238,241,242,243,255,263,274,275,283,285,286,289,290,291,293,294,295,296,297,298,299,300,302,310,311,312,313,315,316,317,318,319,320,321,322,324,327,330,334,338,341,342,343,346,347,357,359,368,369,372,377,378,379,380,381,382,383,384,385,397,407,408,424,429,432,433,438,440,441,442,444,445,449,457,462,465,469,470,471,473,474,477,480,481,483,485,487,500,504,507,509,511,514,516,521,535,540,542,558,561,562,564,565,567,573,575,576,580,581,582,592,593,604,620,621,623,624,625,626,627,628,633,634,635,636,637,638,639,642,643,644,645,646,649,669,670,673,675,676,678,679,680,681,686,687,690,692,693,696],show:[5,7,11,160,312,350],show_serv:231,showdiskloc:312,showexpandedev:[287,344,395],shown:3,showrecordid:[312,317],shut:[238,560],shutdown:[19,560],sibl:301,side:[14,17,35,47,59,122,129,139,145,153,155,157,168,185,213,218,239,266,289,290,303,304,312,315,316,317,325,326,333,341,342,348,350,358,366,367,368,369,378,411,620],sign:[364,439,443,446,680,681],signal:669,signatur:696,significantli:22,silent:481,similar:[4,20,157,159,287,294,296,344,395,566,694,696],similarli:171,simpl:[0,12,696],simpli:[0,5,12,20,274,294,296,302,312,330,358,696],simplifi:[164,274,291,370],sinc:[4,6,9,36,48,60,132,133,160,223,232,241,251,273,294,296,297,299,300,302,310,312,315,324,334,338,343,357,358,359,377,380,397,446,465,466,481,540,541,636,639,642,669,675,687],singl:[6,12,124,125,133,138,139,142,143,144,145,151,154,155,167,168,206,231,286,302,325,330,340,361,474,606,620,669,696],singlebatch:317,situat:[19,521,669],sixth:6,size:[9,13,168,239,241,253,288,312,351,362,424,426,427,430,431,439,565,566,575],size_t:[3,7,160,231,301,325,452,464,546,568,569,570,575,587,588,598,599,601,696],sizeof:[7,160,473,696],skip:[139,145,153,155,160,163,289,290,294,295,296,303,304,311,312,317,325,326,333,341,342,360,368,369],slash:123,sleep:[10,251,696],slow:669,slower:669,slowest:669,small:0,smaller:22,smallest:669,smoot:1,snappi:[0,625,657,669],snapshot:[272,317,506,552,555,557,607],snippet:[20,696],so_keepal:0,sock:[0,558,559,561,562,563,564,565,566,568,569,570,571,650],sock_stream:567,sockaddr:[559,561,565],socket:[5,9,286,367,389,390,487,558,559,560,561,562,563,564,565,566,567,568,572,578,589,592,593,597,669,690,692,693,697],socketcheckintervalm:669,sockettimeoutm:[586,669],sockopt:571,softwar:[12,24],solari:572,sole:[21,32,45,56,66,72,79,83,88,92],solut:697,some:[0,8,12,13,17,19,21,22,24,162,273,285,317,359,360,365,399,411,414,473,485,486,494,495,547,554,650,661,669],someth:[0,3,12,20,24,251,418,457,474,696],soon:[0,9],sort:[1,6,253,288,296,312,313,317,405,414,468,469,473],sourc:[1,11,13,20,166,253,254,272,274,288,289,292,317,328,329,345,368,371,387,388,396,430,431,488,607],source_file_path:429,space:584,spars:481,sparsiti:[197,198],spawn:[7,17,123],spec:[3,6,256,313,429,473,545,606],special:[126,207,288,345,396,669],specif:[0,4,7,12,13,15,20,24,152,153,154,155,163,164,165,166,176,185,213,219,224,253,254,265,288,289,292,295,296,301,308,309,311,316,317,327,328,329,332,345,368,371,376,378,381,387,388,396,398,429,473,481,484,521,563,605,669,696],specifi:[0,1,3,4,5,7,8,9,12,20,128,135,141,143,145,148,149,153,155,158,159,165,198,209,225,230,244,287,289,294,295,296,298,303,304,309,311,312,313,321,322,325,326,333,336,341,342,344,363,368,395,399,411,412,414,426,427,430,431,432,433,440,446,467,473,486,492,494,495,496,506,516,521,522,532,534,634,642,644,669,690,694],sphinx:20,srv:[627,639,640,641],srvmaxhost:669,srvservicenam:641,ssize_t:[160,452,464,473,568,569,570,587,588,598,599],ssl:[0,19,162,250,282,485,573,574],ssl_opt:4,sslallowinvalidcertif:669,sslallowinvalidhostnam:669,sslcertificateauthorityfil:669,sslclientcertificatekeyfil:669,sslclientcertificatekeypassword:669,sspi:4,stabl:311,stack:[274,291,628],stage:[24,160,289,338,368],stale:[512,518,523],standalon:[0,545,603,669,696],standard:[20,296,327,583,669],stapl:[8,669],start:[0,3,4,6,8,11,12,13,18,20,21,52,84,96,152,153,154,155,158,253,271,272,273,274,275,285,287,288,344,368,395,455,547,551,553,554,555,556,557,607,619],startaft:[158,160,287,344,395],startatoperationtim:[160,287,344,395],startup:495,stat:[3,5],state:[13,19,20,162,270,485,602,603,619],statist:[5,338],stats_t:3,statu:[8,13,70,80,84,90,98,100,101,102,232,498,605],stdafx:697,stderr:[1,3,5,6,7,10,12,22,24,160,224,251,253,273,286,288,291,294,295,296,309,311,312,313,317,342,350,366,378,381,399,408,409,410,411,412,413,414,429,473,520,555,557,657,696],stdio:[1,3,6,7,10,12,24,251,253,272,273,274,286,288,291,294,295,296,311,312,313,317,366,429,473,607,696],stdlib:[7,10,253,274,286,288,366,429,473],stdout:[5,10,22,273,286,366,473,696],step:[4,12,18,20],stepdown:13,stick:521,still:[0,227,300,408,414,521,630,631,669,695],stop:[74,99,105,114,135,297],storag:171,storage_opt:481,store:[0,4,7,8,160,165,232,295,300,311,338,370,474,492,565,696],str:[1,6,7,10,12,24,273,274,286,291,312,313,317,350,366,399,408,409,410,411,412,413,414,429,457,458,460,520,696],straight:327,straightforward:15,strcmp:[225,473],stream:[5,13,33,46,57,156,157,158,159,160,283,287,344,395,419,422,425,426,427,428,429,430,431,433,473,494,568,576,577,578,579,580,584,585,586,587,588,589,590,591,592,593,595,596,597,598,599],strerror:22,strict:[7,311,528,531,532],striker:[399,408,410,411,412,413,414],string:[0,1,4,7,8,9,11,12,13,24,28,42,44,53,123,128,129,130,141,143,145,153,155,170,174,176,187,199,209,210,221,223,224,235,250,274,277,282,287,289,295,303,304,307,308,309,317,319,327,333,341,342,344,368,380,381,382,386,390,395,399,418,424,440,441,444,457,458,460,467,472,474,506,521,533,534,535,545,564,606,623,624,626,632,634,638,639,640,641,643,645,648,649,650,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,679,691,696],stringif:327,strlen:7,strncmp:[12,24],strong:495,strongli:4,struct:[3,8,21,26,119,131,151,160,177,191,198,211,217,218,231,250,251,273,274,282,285,286,293,301,339,366,372,394,429,450,451,462,473,475,478,481,484,487,492,505,530,531,544,546,547,548,554,559,561,565,572,574,576,583,593,594,596,601,605,607,608,616,617,618,669,687,688,689,690,691,692,693,696],structur:[10,11,13,134,167,180,238,251,374,379,394,400,407,434,451,462,477,478,480,481,483,484,487,501,567,572,574,579,627,674,696],strv:[224,381],studio:[14,16,18],style:[123,450,581,583,650],subclass:[576,583,593,596],subdocu:[303,304,326,333,341,342,696],subject:[4,181,182,185,186,189,190,192,193,194,195,196,197,198,695],submit:[18,151,313],subsequ:[20,241,258,259,287,344,395,557],subset:[7,409,567],substitut:123,subsystem:[13,487],subtyp:[7,128,129,169,170,178,179,181,188,200,209,212,696],succe:[0,5,6,13,27,272,313,386,607,669],succeed:[3,64,90,420,422,430,431,696],success:[0,3,5,11,135,136,139,141,143,145,153,155,164,165,166,168,169,170,171,178,179,181,182,200,201,202,203,208,212,213,215,226,232,239,246,253,254,260,272,275,276,278,285,288,291,292,300,301,302,303,304,308,313,314,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,345,363,364,370,371,373,376,387,388,389,390,396,399,408,409,410,411,412,413,414,419,435,453,454,455,459,467,468,472,499,533,558,559,560,561,565,566,567,568,570,571,575,577,578,584,586,587,588,589,597,598,599,607,648,650,669,672,675,676,678,687,688,690,691,696],successfulli:[1,5,20,23,64,227,249,274,277,281,309,350,367,408,409,410,411,412,413,474,481,660,661,662,663,669,696],sudo:20,suffer:[521,669],suffici:[20,495],suffix:[0,424],suit:433,suitabl:[149,227,256,350,363,520,669],sum:[1,12],supersed:[138,140,142,144,152,154,163,290,323,330,340,369,429],suppli:[7,13,122,129,186,261,283],support:[0,4,5,6,7,13,15,17,18,128,130,141,143,145,148,153,155,168,189,198,209,210,239,285,287,289,290,295,301,303,304,317,333,341,342,343,344,368,395,399,411,414,423,473,521,669,695],suppress:22,sure:574,symbol:[311,459,474,697],synchron:160,synonym:694,syntax:[1,7,312,317],synthes:[359,360,452],sysadmin:5,system:[0,3,8,20,22,123,473,474,495,561,568,569,570,594,697],syu:20,tabl:[253,254,288,289,317,328,329,345,368,387,388,396],tag:[12,20,24,508,514,520,636,669,691],tagset:520,tail:10,tail_collect:10,tailabl:[317,358,359,360,365],take:[6,8,9,253,254,260,274,288,312,328,329,345,387,388,396,399,411,414,499,532,588,669,672],talk:408,talli:[409,412,414],tar:20,target:[17,20,166,219,224,253,254,288,289,292,295,296,301,308,309,311,313,314,316,317,328,329,332,345,368,371,376,378,381,387,388,396,521,582,696],target_link_librari:696,task:[4,14,16,18],tcp:[0,283],tcp_keepcnt:0,tcp_keepidl:0,tcp_keepintvl:0,tcp_nodelai:0,technic:[669,695],tell:[13,462,694,696],temporari:[4,272,544,605,607],ten:317,tenantid:[128,209],term:[136,149,352,363],termin:[9,199,221,223,224,380,381],test:[1,3,6,7,10,12,13,20,24,253,273,286,288,313,366,394,398,429,473,481,555,557,669,682,684,685,696],testasdf:6,text:[4,457],textual:[141,143,145,153,155,166,253,254,288,289,292,295,296,301,303,304,308,309,311,328,329,333,341,342,345,368,371,376,387,388,396],than:[0,1,4,7,9,12,13,20,122,129,160,161,258,259,277,308,317,327,474,494,495,506,512,518,572,620,669,696],thei:[4,5,6,9,10,12,21,127,208,241,250,255,273,282,339,394,486,487,494,495,522,523,620,669,694,696],them:[8,20,231,473,474,499,574,672,696,697],therefor:[13,19,346,474,487,574,586,669],thi:[1,3,4,5,6,7,8,9,10,11,12,13,19,20,21,22,24,28,29,30,31,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,48,50,51,53,54,55,56,57,58,59,60,62,63,65,66,67,68,69,71,72,73,75,76,77,78,79,81,82,83,85,86,87,88,89,91,92,93,107,108,109,110,112,113,115,116,119,123,124,125,132,133,135,136,138,140,141,142,143,144,145,146,148,149,150,152,153,154,155,158,159,160,162,163,164,165,166,171,182,185,187,188,190,192,193,194,195,196,197,198,206,208,219,223,224,227,232,238,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,258,259,260,263,265,266,268,269,270,271,272,274,275,277,278,279,280,281,282,283,284,285,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,321,323,324,325,326,327,328,329,330,331,332,333,334,337,338,339,340,341,342,343,344,345,346,349,350,352,354,357,358,359,360,361,362,363,364,365,367,368,369,370,371,373,375,376,377,378,380,381,383,385,386,387,388,389,390,391,392,393,394,395,396,399,407,408,409,412,413,422,423,424,425,426,427,430,431,432,433,434,437,449,451,452,456,457,458,460,461,462,463,465,466,467,468,469,470,471,473,474,477,478,480,481,483,484,485,486,492,494,495,499,504,505,506,507,508,509,515,517,525,531,538,540,541,543,545,550,551,552,553,556,558,559,560,561,562,563,564,565,566,567,568,570,571,572,573,574,575,577,578,579,580,582,584,585,586,588,589,592,595,597,602,603,606,607,616,617,618,620,626,627,628,630,632,635,636,637,639,640,642,644,646,648,650,652,658,664,667,669,671,672,675,677,682,684,685,686,687,688,689,690,691,692,693,694,696,697],thin:[306,307,313,331,375],thing:[5,12,24],think:5,third:[3,6],those:[8,10,12,20,253,288,328,345,387,396,512,518],though:[20,300,408,414,587,598,599],thread:[9,18,19,21,22,124,125,162,167,168,206,238,251,273,285,454,464,474,485,547,554,563,669],three:1,threshold:669,through:[0,4,8,12,15,20,124,125,249,250,282,283,296,314,365,367,370,411,487,696],throughout:20,throughput:6,thu:226,ticket:4,tightli:473,time:[0,3,6,9,10,13,20,21,160,246,258,259,273,274,276,283,285,286,287,317,344,365,395,411,462,486,494,521,541,543,547,554,557,568,569,570,610,615,669,696],timemilli:12,timeout:[5,9,10,13,21,135,159,163,164,165,166,244,254,273,274,285,288,291,292,302,313,314,323,324,325,326,329,333,334,340,341,342,345,350,365,369,370,371,388,396,547,554,558,561,569,570,586,587,588,595,598,599,615,630,631,669,680,681,690,692,693,694],timeout_msec:[452,464,587,588,598,599],timeoutm:669,timestamp:[10,11,22,160,258,259,267,287,344,395,696],tlocal:[12,24],tls:[0,8,574,594,650,651,669],tls_opt:[130,210],tlsallowconnectionswithoutcertif:0,tlsallowinvalidcertif:[8,669],tlsallowinvalidhostnam:[8,669],tlscafil:[0,4,8,130,210,669],tlscertificatekeyfil:[0,4,8,130,210,669],tlscertificatekeyfilepassword:[130,210],tlscertificatekeypassword:[8,669],tlsclientcertificatekeyfil:8,tlsclientcertificatekeypassword:8,tlsdisablecertificaterevocationcheck:[8,669],tlsdisableocspendpointcheck:[8,669],tlsinsecur:[8,669],tlsmode:[0,4],tm_mdai:696,tm_mon:696,tm_year:696,tmp:[0,4,24],to_encrypt:7,to_insert:[7,160,342],to_str:342,tocollect:[253,288],todo:0,togeth:[6,424,486,494,522,523,620],token:[4,13,158,160],told:358,too:[13,247,317,399,411,414],tool:[5,7,20],toolchain:20,top:[11,450,521,594,669],topic:696,topolog:[3,9,69,73,93,104,105,110,111,113,114,116,117,230,231,600,601,602,603,606,669],topology_chang:3,topology_changed_ev:3,topology_clos:3,topology_closed_ev:3,topology_id:[69,73,93,110,113,116],topology_open:3,topology_opening_ev:3,total:[5,9,12,244,669],total_pop:1,totaldocsexamin:24,totalkeysexamin:24,trace:[5,19,162,485],track:[5,354,492,696],tradit:312,traffic:366,trail:123,transact:[13,21,166,219,224,253,254,257,261,262,270,271,272,273,274,275,285,288,289,292,295,296,298,300,301,303,304,308,309,311,316,317,325,326,328,329,332,333,341,342,345,368,371,376,378,381,387,388,396,399,547,551,553,554,556,557,607,608,610,611,612,613,614,615,616,617,618,619],transfer:[5,586,592],transienttransactionerror:[272,398,607],translat:4,transpar:[317,696],transport:[283,286,584],tri:[0,13,291,669],trick:[7,129],trip:[6,351,358,362,543,669],troubleshoot:[14,18,696],truncat:474,trust:[0,8,669],trust_dir:4,tune:[478,481,484],turn:594,tutori:[0,4,6,14,18,288,345,396,697],two:[1,3,6,7,9,11,15,17,20,24,253,272,288,521,607,697],twod_bits_precis:[478,481],twod_location_max:[478,481],twod_location_min:[478,481],twod_sphere_vers:478,txn:274,txn_opt:[272,556,607],txt:[669,696],type:[0,5,6,20,21,151,181,189,196,208,227,286,317,323,325,326,440,442,457,459,473,521,532,545,567,605,606,629,630,631,632,651,652,653,654,660,661,662,663,669,696],typedef:[3,22,95,96,97,98,99,100,101,102,103,104,105,106,131,151,160,177,191,198,208,211,217,218,251,274,275,286,301,339,366,394,397,429,450,451,462,473,475,478,481,484,486,487,494,507,522,523,544,547,572,574,576,583,593,594,596,605,607,619,620,669],typic:[312,567,694],u_long:487,ubuntu:20,uint16_t:[475,649],uint32_t:[6,7,10,38,50,62,135,136,149,163,165,174,175,227,230,240,241,259,267,269,290,312,324,351,352,356,359,362,363,365,369,404,411,451,452,464,539,696],uint64_t:[365,411,463],uint8_t:[7,175,478,696],ultim:5,unacknowledg:[21,147,215,260,273,285,314,547,554,555,682,689,694],unalt:[293,372],unauthor:7,unavail:[3,521,669],unawar:696,unblock:9,unchang:364,undef:22,undefin:669,under:[12,24],undergo:4,underli:[159,253,286,289,294,296,312,328,361,368,387,439,440,444,449,455,464,466,474,568,575,576,577,578,580,582,584,585,591,597],underneath:567,undesir:12,unencrypt:[7,129],unencrypted_cli:7,unencrypted_col:7,unescap:670,unexpect:669,unfinish:517,unfortun:3,unindex:185,uniniti:[135,169,170,179,200,201,212,261,274,295,303,304,311,313,325,326,333,338,341,342,402,405,406,628],uniqu:[5,6,7,13,174,481,521,697],unistd:160,unit:1,unix:[4,8,446,558,559,561,581,583,594,669],unknown:[0,3,13,350,366,473,545,606],unknowntransactioncommitresult:[272,398,607],unless:[0,8,12,24,135,289,335,368,391,574],unlik:[171,287,344,395],unlimit:669,unlock:[8,669],unmodifi:317,unnecessari:669,unrecogn:309,unrecover:[272,607],unreli:358,unset:[123,149,194,195,196,198,287,344,363,395,491,492,630,631,659],unsign:[224,251,381,463,566,696],unspecifi:669,until:[6,9,13,136,138,139,159,231,244,274,352,354,361,366,430,431,433,632,669,694],untrust:[8,669],unus:[163,227,254,329,388,452,464],unwrap:291,upcom:20,updat:[5,6,9,10,13,127,150,152,153,154,155,158,208,273,274,287,288,313,314,332,333,334,339,340,341,342,344,345,395,396,399,406,408,409,410,411,412,414,537,540,541,620,655,656,660,661,662,663,669,697],update_opt:273,updatedexist:[408,409,410,412,413,414],updatelookup:[287,344,395],upgrad:[15,311],upload:[15,419,429,430,431,446],upload_d:462,upon:[11,135,171,219,220,222,223,224,226,253,274,280,287,289,291,294,295,296,311,312,315,316,317,328,344,368,370,373,377,378,380,381,387,395,422,423,437,465,466,467,468,469,558,581,582,587,593,598,599],upsert:[6,144,145,152,153,154,155,313,333,334,341,342,410,414,620],upsertedcount:333,upsertedid:[333,341,342],uri:[0,1,3,6,9,10,12,24,123,160,219,223,224,225,231,235,236,237,242,243,244,251,253,272,273,274,279,280,284,286,287,288,289,294,295,296,311,312,313,315,316,317,328,342,344,366,368,377,378,380,381,387,395,414,422,423,465,466,467,468,469,473,475,503,574,586,607,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,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,683,696],uri_str:[1,3,6,160,235,251,253,272,273,274,286,288,313,342,350,366,414,429,473,607,648,650,696],url:[0,4],usabl:9,usag:[10,12,24,327,429,473],use:[0,1,4,7,8,9,10,12,13,17,19,20,21,22,23,24,36,48,60,121,123,124,125,130,132,133,141,143,145,147,149,153,155,160,162,165,166,168,171,181,182,185,186,187,188,189,190,192,193,194,195,196,197,198,206,210,213,219,220,222,223,224,225,235,236,237,238,242,243,244,249,253,254,256,260,265,272,273,278,280,281,282,285,286,287,288,289,290,292,293,295,296,297,298,300,301,302,303,304,308,309,311,312,315,316,317,321,324,325,326,328,329,332,333,334,335,336,337,341,342,344,345,346,357,359,363,368,369,371,372,376,377,378,380,381,383,384,385,387,388,391,392,393,395,396,397,398,399,407,413,414,424,426,427,430,431,433,449,465,466,467,468,469,473,474,485,487,500,504,505,521,524,532,534,540,542,547,554,567,574,575,579,581,582,587,588,592,594,598,604,636,639,642,644,649,669,673,675,686,687,690,694,696,697],used:[0,4,5,7,8,9,17,20,21,36,48,60,119,128,132,133,135,136,137,170,171,174,175,176,209,218,223,227,232,233,241,251,255,264,267,273,283,285,286,287,294,296,297,299,300,301,302,308,309,310,312,313,315,320,322,324,332,334,338,343,344,352,354,357,359,360,364,366,373,376,377,380,395,397,407,414,422,424,429,430,431,439,451,462,473,474,478,481,484,492,495,505,517,518,520,540,547,554,557,570,574,575,580,636,639,642,644,669,671,675,687,688,689,690,691,692,693,696,697],useful:[20,22,121,136,265,339,358,364,394,499,563,620,669,671,672],user:[0,4,6,7,12,15,20,24,127,160,168,208,239,274,275,283,289,290,296,312,315,316,317,367,368,369,377,378,389,390,408,412,414,495,504,584,628,650,659,669,686,696],user_data:[22,283,286],userdata:[127,208],usernam:[0,4,12,24,367,390,645,664,667,669],uses:[0,1,4,8,9,13,21,123,136,163,164,287,290,291,296,338,344,352,354,362,369,370,395,442,570,586,602,603,630,631,684,685,694,696,697],using:[0,4,5,6,7,8,12,13,18,20,21,123,160,165,171,176,235,236,237,242,243,273,285,287,289,311,332,344,395,430,431,474,481,505,516,521,532,547,554,561,562,568,569,570,581,592,648,669,687,688,689,690,691,692,693,695,696],usr:[20,696],usual:[495,697],utcdatetim:11,utf8:[663,670],utf:[287,344,395,424,458,467,472,655,656,657,658,664,667,670],util:[20,218],uuid:[169,170,179,188,200,212],v_binari:7,v_int32:473,v_utf8:7,val:12,valid:[4,7,8,28,32,34,41,42,44,45,53,56,58,66,67,68,72,79,83,88,89,92,108,109,129,135,139,141,143,145,146,151,153,155,158,159,171,185,199,221,246,250,264,266,268,276,277,282,283,289,294,296,302,303,304,325,326,330,333,341,342,343,361,368,399,408,409,412,413,414,474,486,515,517,533,551,574,586,611,612,613,620,632,650,651,652,653,654,655,656,657,658,659,664,667,669],validationact:414,validationlevel:414,valu:[0,1,4,7,8,11,12,22,122,129,136,158,166,169,171,178,181,185,186,189,194,195,196,197,198,200,208,212,219,224,244,249,253,254,274,281,287,288,289,292,295,296,301,308,309,311,316,317,328,329,332,344,345,355,356,368,371,376,378,381,387,388,395,396,399,404,408,409,410,412,413,414,415,416,417,430,431,473,474,475,477,480,481,483,488,489,490,491,492,493,517,521,527,528,534,553,555,571,574,586,588,599,629,630,631,632,641,655,656,657,658,660,661,662,663,669,677,680,681,689,690,692,693,694,696],value1:[182,669],value2:[182,669],value_typ:[7,160,473],variabl:[4,5,7,11,563],variant:696,varieti:20,variou:[0,22,166,253,254,288,289,292,297,298,317,328,329,345,368,371,387,388,396,451,487,572,671],vassar:696,vast:696,vault:[7,21,124,125,126,170,176,179,200,201,202,207,213,218],vcxproj:20,vector:[223,224,570,588,599],veri:4,verif:669,verifi:[1,8,696],version:[2,7,8,12,14,18,19,20,24,36,48,60,121,122,127,132,133,161,166,171,176,182,186,189,190,192,193,194,195,196,197,198,199,208,221,223,232,241,248,249,253,254,278,281,287,288,291,292,294,296,297,299,300,302,309,310,311,312,313,315,317,324,328,329,334,338,343,344,345,357,359,360,371,377,380,387,388,395,396,397,413,414,418,465,466,474,481,505,506,525,529,530,531,532,533,535,540,557,574,636,639,642,675,687,688,689,690,691,692,693,696],version_curr:20,via:[5,18,21,132,133,135,138,139,140,141,142,143,144,145,152,153,155,164,166,170,218,223,224,226,232,253,254,288,291,292,294,295,296,300,301,302,303,304,308,309,310,311,313,314,315,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,345,349,350,371,373,376,377,380,381,386,387,388,389,390,396,435,437,448,453,466,467,468,472,696],view:[9,168,239,537,540],violat:13,virtual:4,vista:20,visual:[14,16,18],wai:[4,9,10,13,20,171,521,620,696],wait:[6,9,273,287,317,344,365,395,495,587,598,669,680,681,690,692,693],waitqueuemultipl:669,waitqueuetimeoutm:[9,244,669],wake:669,wall:[10,12,24,474,521,669],want:[0,5,12,225,251,293,302,330,372,494,671,696,697],warn:[22,235,272,607,630,657,662,687,688,689,690,691,692,693],warranti:[12,24],watch:[5,158,160],weak_cert_valid:[4,8,574],websit:[280,294,296,336,392,506,507,519,669,694],weight:481,well:[7,9,10,13,348,495,669],were:[3,21,158,171,521,569,574,625,627,696],wget:20,what:[4,12,13,20,22,241,429,694],whatev:283,when:[0,4,5,6,7,8,9,10,13,15,20,21,22,27,40,52,64,70,74,80,84,90,94,111,114,117,123,127,149,157,159,163,171,176,186,189,190,194,195,196,197,208,213,220,222,225,227,235,236,237,242,243,244,254,255,256,272,274,282,285,286,287,289,290,291,293,295,297,298,312,315,316,317,329,333,341,342,344,346,352,354,359,360,363,368,369,372,377,378,388,395,407,408,415,416,417,433,449,451,465,467,468,469,472,474,475,487,494,500,504,506,521,524,541,542,544,556,562,565,567,570,575,581,582,587,592,604,607,620,630,649,662,669,673,686,689,694,695,696,697],whenavail:[287,344,395],whenc:455,whenev:[95,96,97,98,99,100,101,102,103,104,105,106,669],where:[1,6,7,13,19,122,129,160,219,253,288,295],whether:[5,13,75,81,85,256,265,271,309,398,490,492,521,525,527,528,531,669,685],which:[0,3,6,7,8,11,12,13,19,20,24,39,51,63,119,124,125,129,135,141,142,143,144,145,149,152,153,154,155,158,160,162,163,165,167,168,171,208,225,226,227,239,240,241,250,251,263,268,274,282,287,289,300,317,319,324,341,342,343,344,350,360,363,366,368,369,382,395,409,412,422,430,431,440,441,468,469,473,474,485,492,521,532,534,538,555,556,568,607,623,624,625,626,633,634,638,643,645,669,679,689,697],whichev:[0,669],whole:[272,473,607],whom:[8,669],whose:[152,153,154,155,512,518,669],why:34,wide:160,win32:697,win64:20,window:[4,558,559,560,561,572,696],winningplan:24,wire:[4,5,35,47,59,312,366,486,494,522,523,620,669],wiredtig:[482,484],wish:[20,361],with_transact:274,within:[0,9,13,20,21,171,273,274,275,285,366,386,463,477,480,483,492,547,554,669],without:[0,5,7,8,12,20,24,121,123,160,166,253,254,255,274,288,292,321,328,329,345,367,371,387,388,396,473,669],wmajor:[677,678],won:521,word:682,work:[0,20,24,123,578,583,593,596,597,696],worker:[251,696],workload:7,world:696,worth:473,would:[19,20,162,212,312,455,485,505,669,670,677,687,688,689,690,691,692,693],wrap:[0,149,171,227,256,265,286,301,359,360,363,366,473,474,585,589,594],wrapper:[306,307,313,331,375,558,559,560,561,564,589,594],writabl:603,write:[7,12,13,14,16,18,21,24,135,137,138,147,148,149,151,160,163,164,165,166,170,208,215,227,234,251,253,254,256,260,272,273,284,285,289,291,292,297,298,300,301,302,303,304,308,309,313,314,317,318,322,323,324,325,326,328,329,332,333,334,337,340,341,342,359,360,363,368,369,370,371,373,376,387,388,393,394,399,411,414,422,424,426,427,430,431,432,433,464,473,487,521,547,554,555,556,557,570,578,580,584,586,598,599,607,618,631,646,668,672,674,675,676,677,678,680,681,682,683,684,685,686,687,688,689,690,691,692,693,696],write_concern:[6,253,272,284,288,289,297,302,318,323,324,330,334,337,340,393,607,618,672,673,674,675,676,677,678,679,680,681,682,683,684,685,687,688,689,690,691,692,693],writeconcern:[166,253,254,288,289,292,298,300,301,303,304,308,309,325,326,329,332,333,341,342,345,368,371,376,388,396,399,424],writeconcernerror:[6,303,304,325,326,333,341,342],writeerror:[3,6,303,304,325,326,333,341,342],writeresult:[253,288],writev:[462,599],written:[5,20,171,312,426,427,464,598,599,678],wrong:[13,474],ws2_32:697,wtag:679,wtimeout:[6,272,607,690],wtimeout_msec:[690,692,693],wtimeoutm:[253,288,631,653,669],www:[12,24],x509:4,x509_derived_usernam:4,x86:20,x86_64:20,xcode:20,xzf:20,yale:696,year:696,yet:[6,358],you:[1,3,4,5,10,11,12,13,19,20,21,22,24,26,162,166,219,224,225,226,251,253,254,286,288,289,292,293,295,296,297,298,300,301,302,303,304,308,309,311,312,316,317,323,325,326,328,329,330,332,333,341,342,345,361,368,371,372,376,378,381,387,388,396,399,456,457,458,460,461,465,466,467,468,469,473,485,486,487,494,495,503,506,521,530,538,555,561,562,569,620,669,671,683,689,690,694,696,697],your:[3,4,5,8,9,11,13,18,19,20,21,22,162,286,323,325,326,473,485,486,495,521,561,620,669,691,697],yourself:19,yum:20,zero:[6,136,213,290,294,296,351,352,354,359,360,362,630,631,669,689,690,692,693],zipcod:1,zlatan:[399,408,409,410,411,412,413,414],zlib:[0,625,657,669],zlibcompressionlevel:[652,669],zseri:20,zstd:[0,625,657,669]},titles:["Advanced Connections","Aggregation Framework Examples","API Reference","Application Performance Monitoring (APM)","Authentication","Basic Troubleshooting","Bulk Write Operations","Client-Side Field Level Encryption","Configuring TLS","Connection Pooling","Cursors","Aids for Debugging","\u201cdistinct\u201d and \u201cmapReduce\u201d","Error Reporting","Index","GridFS","Guides","In-Use Encryption","libmongoc","Initialization and cleanup","Installing the MongoDB C Driver (libmongoc) and BSON library (libbson)","Object Lifecycle","Logging","Manage Collection Indexes","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_connection_id_int64()","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_connection_id_int64()","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_connection_id_int64()","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_create_encrypted_collection()","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_expression()","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_set_range_opts()","mongoc_client_encryption_encrypt_opts_t","mongoc_client_encryption_encrypt_range_opts_destroy()","mongoc_client_encryption_encrypt_range_opts_new()","mongoc_client_encryption_encrypt_range_opts_set_max()","mongoc_client_encryption_encrypt_range_opts_set_min()","mongoc_client_encryption_encrypt_range_opts_set_precision()","mongoc_client_encryption_encrypt_range_opts_set_sparsity()","mongoc_client_encryption_encrypt_range_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_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_create_indexes_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_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","Queryable Encryption","Tutorial","Using libmongoc in a Microsoft Visual Studio project"],titleterms:{"function":[3,13,27,40,52,64,70,74,80,84,90,94,111,114,117,131,151,160,177,191,198,211,217,218,251,273,286,295,339,366,394,414,429,450,451,462,473,478,481,484,492,495,506,521,532,534,544,547,572,574,583,593,594,605,607,669,694],"return":[26,28,29,30,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,48,49,50,51,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,71,72,73,75,76,77,79,81,82,83,85,86,87,88,89,91,92,93,107,108,109,110,112,113,115,116,119,135,137,139,141,143,145,153,155,157,158,159,161,163,164,165,166,168,169,170,171,173,178,179,181,182,184,193,199,200,201,202,203,205,212,213,215,216,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,239,242,243,244,246,247,248,249,252,253,254,256,257,260,261,263,264,265,266,268,269,270,271,272,274,275,276,277,278,281,285,287,288,289,290,291,292,293,294,295,296,297,298,300,301,302,303,304,308,309,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,332,333,334,338,340,341,342,343,344,345,346,347,349,350,357,358,359,360,361,363,364,367,368,369,370,371,372,373,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,395,396,398,399,401,403,404,407,408,409,410,411,412,413,415,416,417,418,419,420,422,423,424,425,426,427,428,430,431,432,433,435,437,438,439,440,441,442,443,444,445,446,448,449,452,453,454,455,459,463,464,465,466,467,468,469,470,471,472,474,476,479,482,490,493,498,499,500,502,504,505,509,511,513,514,515,516,524,527,528,529,530,533,535,537,538,540,541,542,548,551,553,554,558,559,560,561,563,564,565,566,567,568,569,570,571,573,575,577,578,580,581,582,584,585,586,587,588,589,590,591,592,595,597,598,599,601,602,603,604,608,611,612,613,614,621,623,624,625,626,627,628,633,634,635,636,637,638,639,640,641,642,643,644,645,646,648,649,650,655,656,657,658,659,660,661,662,663,664,667,670,672,673,675,676,677,678,679,680,681,686],"static":697,AWS:4,ECS:4,TLS:[0,8,669],The:[312,317],Use:[17,696],Using:[696,697],addit:[0,20],address:0,advanc:0,aggreg:1,aid:11,also:227,analysi:17,api:[2,13,17,534],apm:3,append:[399,696],applic:3,assert:11,authent:[4,8,669],automat:[7,19],avail:[250,282],averag:1,basic:[4,5,12,288,345,396,696],bcon:696,behavior:[227,311],bson:[20,696],bucket:21,bug:5,build:20,bulk:6,bypass:6,bypassdocumentvalid:408,certif:[4,8],channel:8,check:671,checklist:5,citi:1,cleanup:19,client:[7,8,21,227],clone:20,cluster:0,cmake:696,code:1,collat:6,collect:[21,23],command:[3,12,24,312,317,696],common:24,complic:12,compon:20,compress:0,concern:[6,339,506,669,694],config:696,configur:[8,20],connect:[0,9,669,696],content:696,count:[295,696],counter:5,creat:696,creation:171,credenti:4,crud:696,cursor:10,custom:22,darwin:8,data:[0,1],databas:21,deal:20,debug:11,decrypt:7,delet:696,deprec:[19,295,317,669,694],descript:[13,136,137,146,148,149,150,162,163,175,176,223,227,255,260,265,289,291,293,294,295,296,297,298,300,301,302,303,304,305,306,307,308,309,311,312,313,314,317,318,319,320,321,322,323,324,325,326,327,330,331,332,333,334,335,336,337,338,340,341,342,343,346,347,348,349,350,351,352,353,354,355,356,358,359,360,361,362,363,364,365,368,369,372,373,375,376,377,380,399,400,402,405,406,408,409,410,411,412,413,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,477,478,480,481,483,484,485,486,494,495,496,497,498,499,500,501,502,503,505,507,508,509,510,511,512,513,514,515,516,517,518,519,520,522,523,536,537,538,539,540,541,542,543,545,558,559,560,561,562,563,564,565,566,567,568,569,570,571,574,576,600,604,606,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,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,690,691,692,693],destroi:10,disabl:22,discoveri:669,distinct:12,document:[6,20,696],domain:0,driver:20,ec2:4,encrypt:[7,17,21,695],enforc:7,entropi:495,environ:[4,20],error:[13,132,133,135,138,139,140,141,142,143,144,145,152,153,155,164,166,219,223,224,226,232,253,254,285,288,291,292,294,295,296,297,298,300,301,302,303,304,308,309,310,311,313,314,315,316,323,324,325,326,328,329,330,332,333,334,338,340,341,342,343,345,349,350,367,370,371,373,376,377,378,380,381,386,387,388,389,390,396,435,437,448,453,455,466,467,468,472],exampl:[1,3,12,24,160,166,224,225,251,253,254,260,272,273,274,286,288,289,291,292,294,295,296,311,312,313,314,317,328,329,342,345,350,366,368,371,378,381,387,388,394,396,414,429,450,473,481,499,520,549,555,557,607,625,628,650,657,659,669,672],execut:[20,696],explain:[24,312,317],explicit:7,failur:[10,20],featur:19,field:[7,409],find:[312,696],findandmodifi:399,flag:[410,486,494,522,523,619,620],format:669,framework:1,from:[0,20,295,696],further:6,gdb:11,gener:20,git:20,gridf:[15,21],gssapi:4,guid:16,handl:10,handler:22,header:696,hedg:521,iam:4,includ:696,index:[14,23],initi:19,insert:[6,696],instal:[17,20,696],integr:20,introduct:18,ipv4:[0,669],ipv6:[0,669],json:696,kerbero:4,label:13,legaci:[4,669],level:[7,506,694],libbson:20,libmongoc:[18,20,696,697],librari:[8,20],libressl:8,libtl:8,lifecycl:[21,158,159,218,361,429,473,544],link:[696,697],lldb:11,local:7,log:22,maco:[8,20],macro:22,make:696,manag:[20,23],manual:696,mapreduc:12,max:521,maxtimem:411,mechan:669,microsoft:[696,697],migrat:295,million:1,mingw:20,mix:6,mode:[9,521],mongoc:696,mongoc_apm_callbacks_destroi:25,mongoc_apm_callbacks_new:26,mongoc_apm_callbacks_t:27,mongoc_apm_command_failed_get_command_nam:28,mongoc_apm_command_failed_get_context:29,mongoc_apm_command_failed_get_dur:30,mongoc_apm_command_failed_get_error:31,mongoc_apm_command_failed_get_host:32,mongoc_apm_command_failed_get_operation_id:33,mongoc_apm_command_failed_get_repli:34,mongoc_apm_command_failed_get_request_id:35,mongoc_apm_command_failed_get_server_connection_id:36,mongoc_apm_command_failed_get_server_connection_id_int64:37,mongoc_apm_command_failed_get_server_id:38,mongoc_apm_command_failed_get_service_id:39,mongoc_apm_command_failed_t:40,mongoc_apm_command_started_get_command:41,mongoc_apm_command_started_get_command_nam:42,mongoc_apm_command_started_get_context:43,mongoc_apm_command_started_get_database_nam:44,mongoc_apm_command_started_get_host:45,mongoc_apm_command_started_get_operation_id:46,mongoc_apm_command_started_get_request_id:47,mongoc_apm_command_started_get_server_connection_id:48,mongoc_apm_command_started_get_server_connection_id_int64:49,mongoc_apm_command_started_get_server_id:50,mongoc_apm_command_started_get_service_id:51,mongoc_apm_command_started_t:52,mongoc_apm_command_succeeded_get_command_nam:53,mongoc_apm_command_succeeded_get_context:54,mongoc_apm_command_succeeded_get_dur:55,mongoc_apm_command_succeeded_get_host:56,mongoc_apm_command_succeeded_get_operation_id:57,mongoc_apm_command_succeeded_get_repli:58,mongoc_apm_command_succeeded_get_request_id:59,mongoc_apm_command_succeeded_get_server_connection_id:60,mongoc_apm_command_succeeded_get_server_connection_id_int64:61,mongoc_apm_command_succeeded_get_server_id:62,mongoc_apm_command_succeeded_get_service_id:63,mongoc_apm_command_succeeded_t:64,mongoc_apm_server_changed_get_context:65,mongoc_apm_server_changed_get_host:66,mongoc_apm_server_changed_get_new_descript:67,mongoc_apm_server_changed_get_previous_descript:68,mongoc_apm_server_changed_get_topology_id:69,mongoc_apm_server_changed_t:70,mongoc_apm_server_closed_get_context:71,mongoc_apm_server_closed_get_host:72,mongoc_apm_server_closed_get_topology_id:73,mongoc_apm_server_closed_t:74,mongoc_apm_server_heartbeat_failed_get_await:75,mongoc_apm_server_heartbeat_failed_get_context:76,mongoc_apm_server_heartbeat_failed_get_dur:77,mongoc_apm_server_heartbeat_failed_get_error:78,mongoc_apm_server_heartbeat_failed_get_host:79,mongoc_apm_server_heartbeat_failed_t:80,mongoc_apm_server_heartbeat_started_get_await:81,mongoc_apm_server_heartbeat_started_get_context:82,mongoc_apm_server_heartbeat_started_get_host:83,mongoc_apm_server_heartbeat_started_t:84,mongoc_apm_server_heartbeat_succeeded_get_await:85,mongoc_apm_server_heartbeat_succeeded_get_context:86,mongoc_apm_server_heartbeat_succeeded_get_dur:87,mongoc_apm_server_heartbeat_succeeded_get_host:88,mongoc_apm_server_heartbeat_succeeded_get_repli:89,mongoc_apm_server_heartbeat_succeeded_t:90,mongoc_apm_server_opening_get_context:91,mongoc_apm_server_opening_get_host:92,mongoc_apm_server_opening_get_topology_id:93,mongoc_apm_server_opening_t:94,mongoc_apm_set_command_failed_cb:95,mongoc_apm_set_command_started_cb:96,mongoc_apm_set_command_succeeded_cb:97,mongoc_apm_set_server_changed_cb:98,mongoc_apm_set_server_closed_cb:99,mongoc_apm_set_server_heartbeat_failed_cb:100,mongoc_apm_set_server_heartbeat_started_cb:101,mongoc_apm_set_server_heartbeat_succeeded_cb:102,mongoc_apm_set_server_opening_cb:103,mongoc_apm_set_topology_changed_cb:104,mongoc_apm_set_topology_closed_cb:105,mongoc_apm_set_topology_opening_cb:106,mongoc_apm_topology_changed_get_context:107,mongoc_apm_topology_changed_get_new_descript:108,mongoc_apm_topology_changed_get_previous_descript:109,mongoc_apm_topology_changed_get_topology_id:110,mongoc_apm_topology_changed_t:111,mongoc_apm_topology_closed_get_context:112,mongoc_apm_topology_closed_get_topology_id:113,mongoc_apm_topology_closed_t:114,mongoc_apm_topology_opening_get_context:115,mongoc_apm_topology_opening_get_topology_id:116,mongoc_apm_topology_opening_t:117,mongoc_auto_encryption_opts_destroi:118,mongoc_auto_encryption_opts_new:119,mongoc_auto_encryption_opts_set_bypass_auto_encrypt:120,mongoc_auto_encryption_opts_set_bypass_query_analysi:121,mongoc_auto_encryption_opts_set_encrypted_fields_map:122,mongoc_auto_encryption_opts_set_extra:123,mongoc_auto_encryption_opts_set_keyvault_cli:124,mongoc_auto_encryption_opts_set_keyvault_client_pool:125,mongoc_auto_encryption_opts_set_keyvault_namespac:126,mongoc_auto_encryption_opts_set_kms_credential_provider_callback:127,mongoc_auto_encryption_opts_set_kms_provid:128,mongoc_auto_encryption_opts_set_schema_map:129,mongoc_auto_encryption_opts_set_tls_opt:130,mongoc_auto_encryption_opts_t:131,mongoc_bulk_operation_delet:132,mongoc_bulk_operation_delete_on:133,mongoc_bulk_operation_destroi:134,mongoc_bulk_operation_execut:135,mongoc_bulk_operation_get_hint:136,mongoc_bulk_operation_get_write_concern:137,mongoc_bulk_operation_insert:138,mongoc_bulk_operation_insert_with_opt:139,mongoc_bulk_operation_remov:140,mongoc_bulk_operation_remove_many_with_opt:141,mongoc_bulk_operation_remove_on:142,mongoc_bulk_operation_remove_one_with_opt:143,mongoc_bulk_operation_replace_on:144,mongoc_bulk_operation_replace_one_with_opt:145,mongoc_bulk_operation_set_bypass_document_valid:146,mongoc_bulk_operation_set_client_sess:147,mongoc_bulk_operation_set_com:148,mongoc_bulk_operation_set_hint:149,mongoc_bulk_operation_set_let:150,mongoc_bulk_operation_t:151,mongoc_bulk_operation_upd:152,mongoc_bulk_operation_update_many_with_opt:153,mongoc_bulk_operation_update_on:154,mongoc_bulk_operation_update_one_with_opt:155,mongoc_change_stream_destroi:156,mongoc_change_stream_error_docu:157,mongoc_change_stream_get_resume_token:158,mongoc_change_stream_next:159,mongoc_change_stream_t:160,mongoc_check_vers:161,mongoc_cleanup:162,mongoc_client_command:163,mongoc_client_command_simpl:164,mongoc_client_command_simple_with_server_id:165,mongoc_client_command_with_opt:166,mongoc_client_decryption_decrypt:178,mongoc_client_destroi:167,mongoc_client_enable_auto_encrypt:168,mongoc_client_encryption_add_key_alt_nam:169,mongoc_client_encryption_create_datakei:170,mongoc_client_encryption_create_encrypted_collect:171,mongoc_client_encryption_datakey_opts_destroi:172,mongoc_client_encryption_datakey_opts_new:173,mongoc_client_encryption_datakey_opts_set_keyaltnam:174,mongoc_client_encryption_datakey_opts_set_keymateri:175,mongoc_client_encryption_datakey_opts_set_masterkei:176,mongoc_client_encryption_datakey_opts_t:177,mongoc_client_encryption_delete_kei:179,mongoc_client_encryption_destroi:180,mongoc_client_encryption_encrypt:181,mongoc_client_encryption_encrypt_express:182,mongoc_client_encryption_encrypt_opts_destroi:183,mongoc_client_encryption_encrypt_opts_new:184,mongoc_client_encryption_encrypt_opts_set_algorithm:185,mongoc_client_encryption_encrypt_opts_set_contention_factor:186,mongoc_client_encryption_encrypt_opts_set_keyaltnam:187,mongoc_client_encryption_encrypt_opts_set_keyid:188,mongoc_client_encryption_encrypt_opts_set_query_typ:189,mongoc_client_encryption_encrypt_opts_set_range_opt:190,mongoc_client_encryption_encrypt_opts_t:191,mongoc_client_encryption_encrypt_range_opts_destroi:192,mongoc_client_encryption_encrypt_range_opts_new:193,mongoc_client_encryption_encrypt_range_opts_set_max:194,mongoc_client_encryption_encrypt_range_opts_set_min:195,mongoc_client_encryption_encrypt_range_opts_set_precis:196,mongoc_client_encryption_encrypt_range_opts_set_spars:197,mongoc_client_encryption_encrypt_range_opts_t:198,mongoc_client_encryption_get_crypt_shared_vers:199,mongoc_client_encryption_get_kei:[200,202],mongoc_client_encryption_get_key_by_alt_nam:201,mongoc_client_encryption_new:203,mongoc_client_encryption_opts_destroi:204,mongoc_client_encryption_opts_new:205,mongoc_client_encryption_opts_set_keyvault_cli:206,mongoc_client_encryption_opts_set_keyvault_namespac:207,mongoc_client_encryption_opts_set_kms_credential_provider_callback:208,mongoc_client_encryption_opts_set_kms_provid:209,mongoc_client_encryption_opts_set_tls_opt:210,mongoc_client_encryption_opts_t:211,mongoc_client_encryption_remove_key_alt_nam:212,mongoc_client_encryption_rewrap_many_datakei:213,mongoc_client_encryption_rewrap_many_datakey_result_destroi:214,mongoc_client_encryption_rewrap_many_datakey_result_get_bulk_write_result:215,mongoc_client_encryption_rewrap_many_datakey_result_new:216,mongoc_client_encryption_rewrap_many_datakey_result_t:217,mongoc_client_encryption_t:218,mongoc_client_find_databases_with_opt:219,mongoc_client_get_collect:220,mongoc_client_get_crypt_shared_vers:221,mongoc_client_get_databas:222,mongoc_client_get_database_nam:223,mongoc_client_get_database_names_with_opt:224,mongoc_client_get_default_databas:225,mongoc_client_get_gridf:226,mongoc_client_get_handshake_descript:227,mongoc_client_get_read_concern:228,mongoc_client_get_read_pref:229,mongoc_client_get_server_descript:[230,231],mongoc_client_get_server_statu:232,mongoc_client_get_uri:233,mongoc_client_get_write_concern:234,mongoc_client_new:235,mongoc_client_new_from_uri:236,mongoc_client_new_from_uri_with_error:237,mongoc_client_pool_destroi:238,mongoc_client_pool_enable_auto_encrypt:239,mongoc_client_pool_max_s:240,mongoc_client_pool_min_s:241,mongoc_client_pool_new:242,mongoc_client_pool_new_with_error:243,mongoc_client_pool_pop:244,mongoc_client_pool_push:245,mongoc_client_pool_set_apm_callback:246,mongoc_client_pool_set_appnam:247,mongoc_client_pool_set_error_api:248,mongoc_client_pool_set_server_api:249,mongoc_client_pool_set_ssl_opt:250,mongoc_client_pool_t:251,mongoc_client_pool_try_pop:252,mongoc_client_read_command_with_opt:253,mongoc_client_read_write_command_with_opt:254,mongoc_client_reset:255,mongoc_client_select_serv:256,mongoc_client_session_abort_transact:257,mongoc_client_session_advance_cluster_tim:258,mongoc_client_session_advance_operation_tim:259,mongoc_client_session_append:260,mongoc_client_session_commit_transact:261,mongoc_client_session_destroi:262,mongoc_client_session_get_cli:263,mongoc_client_session_get_cluster_tim:264,mongoc_client_session_get_dirti:265,mongoc_client_session_get_lsid:266,mongoc_client_session_get_operation_tim:267,mongoc_client_session_get_opt:268,mongoc_client_session_get_server_id:269,mongoc_client_session_get_transaction_st:270,mongoc_client_session_in_transact:271,mongoc_client_session_start_transact:272,mongoc_client_session_t:273,mongoc_client_session_with_transact:274,mongoc_client_session_with_transaction_cb_t:275,mongoc_client_set_apm_callback:276,mongoc_client_set_appnam:277,mongoc_client_set_error_api:278,mongoc_client_set_read_concern:279,mongoc_client_set_read_pref:280,mongoc_client_set_server_api:281,mongoc_client_set_ssl_opt:282,mongoc_client_set_stream_initi:283,mongoc_client_set_write_concern:284,mongoc_client_start_sess:285,mongoc_client_t:286,mongoc_client_watch:287,mongoc_client_write_command_with_opt:288,mongoc_collection_aggreg:289,mongoc_collection_command:290,mongoc_collection_command_simpl:291,mongoc_collection_command_with_opt:292,mongoc_collection_copi:293,mongoc_collection_count:294,mongoc_collection_count_docu:295,mongoc_collection_count_with_opt:296,mongoc_collection_create_bulk_oper:297,mongoc_collection_create_bulk_operation_with_opt:298,mongoc_collection_create_index:299,mongoc_collection_create_index_with_opt:300,mongoc_collection_create_indexes_with_opt:301,mongoc_collection_delet:302,mongoc_collection_delete_mani:303,mongoc_collection_delete_on:304,mongoc_collection_destroi:305,mongoc_collection_drop:306,mongoc_collection_drop_index:307,mongoc_collection_drop_index_with_opt:308,mongoc_collection_drop_with_opt:309,mongoc_collection_ensure_index:310,mongoc_collection_estimated_document_count:311,mongoc_collection_find:312,mongoc_collection_find_and_modifi:313,mongoc_collection_find_and_modify_with_opt:314,mongoc_collection_find_index:315,mongoc_collection_find_indexes_with_opt:316,mongoc_collection_find_with_opt:317,mongoc_collection_get_last_error:318,mongoc_collection_get_nam:319,mongoc_collection_get_read_concern:320,mongoc_collection_get_read_pref:321,mongoc_collection_get_write_concern:322,mongoc_collection_insert:323,mongoc_collection_insert_bulk:324,mongoc_collection_insert_mani:325,mongoc_collection_insert_on:326,mongoc_collection_keys_to_index_str:327,mongoc_collection_read_command_with_opt:328,mongoc_collection_read_write_command_with_opt:329,mongoc_collection_remov:330,mongoc_collection_renam:331,mongoc_collection_rename_with_opt:332,mongoc_collection_replace_on:333,mongoc_collection_sav:334,mongoc_collection_set_read_concern:335,mongoc_collection_set_read_pref:336,mongoc_collection_set_write_concern:337,mongoc_collection_stat:338,mongoc_collection_t:339,mongoc_collection_upd:340,mongoc_collection_update_mani:341,mongoc_collection_update_on:342,mongoc_collection_valid:343,mongoc_collection_watch:344,mongoc_collection_write_command_with_opt:345,mongoc_cursor_clon:346,mongoc_cursor_curr:347,mongoc_cursor_destroi:348,mongoc_cursor_error:349,mongoc_cursor_error_docu:350,mongoc_cursor_get_batch_s:351,mongoc_cursor_get_hint:352,mongoc_cursor_get_host:353,mongoc_cursor_get_id:354,mongoc_cursor_get_limit:355,mongoc_cursor_get_max_await_time_m:356,mongoc_cursor_is_al:357,mongoc_cursor_mor:358,mongoc_cursor_new_from_command_repli:359,mongoc_cursor_new_from_command_reply_with_opt:360,mongoc_cursor_next:361,mongoc_cursor_set_batch_s:362,mongoc_cursor_set_hint:363,mongoc_cursor_set_limit:364,mongoc_cursor_set_max_await_time_m:365,mongoc_cursor_t:366,mongoc_database_add_us:367,mongoc_database_aggreg:368,mongoc_database_command:369,mongoc_database_command_simpl:370,mongoc_database_command_with_opt:371,mongoc_database_copi:372,mongoc_database_create_collect:373,mongoc_database_destroi:374,mongoc_database_drop:375,mongoc_database_drop_with_opt:376,mongoc_database_find_collect:377,mongoc_database_find_collections_with_opt:378,mongoc_database_get_collect:379,mongoc_database_get_collection_nam:380,mongoc_database_get_collection_names_with_opt:381,mongoc_database_get_nam:382,mongoc_database_get_read_concern:383,mongoc_database_get_read_pref:384,mongoc_database_get_write_concern:385,mongoc_database_has_collect:386,mongoc_database_read_command_with_opt:387,mongoc_database_read_write_command_with_opt:388,mongoc_database_remove_all_us:389,mongoc_database_remove_us:390,mongoc_database_set_read_concern:391,mongoc_database_set_read_pref:392,mongoc_database_set_write_concern:393,mongoc_database_t:394,mongoc_database_watch:395,mongoc_database_write_command_with_opt:396,mongoc_delete_flags_t:397,mongoc_error_has_label:398,mongoc_find_and_modify_opts_append:399,mongoc_find_and_modify_opts_destroi:400,mongoc_find_and_modify_opts_get_bypass_document_valid:401,mongoc_find_and_modify_opts_get_field:402,mongoc_find_and_modify_opts_get_flag:403,mongoc_find_and_modify_opts_get_max_time_m:404,mongoc_find_and_modify_opts_get_sort:405,mongoc_find_and_modify_opts_get_upd:406,mongoc_find_and_modify_opts_new:407,mongoc_find_and_modify_opts_set_bypass_document_valid:408,mongoc_find_and_modify_opts_set_field:409,mongoc_find_and_modify_opts_set_flag:410,mongoc_find_and_modify_opts_set_max_time_m:411,mongoc_find_and_modify_opts_set_sort:412,mongoc_find_and_modify_opts_set_upd:413,mongoc_find_and_modify_opts_t:414,mongoc_get_major_vers:415,mongoc_get_micro_vers:416,mongoc_get_minor_vers:417,mongoc_get_vers:418,mongoc_gridfs_bucket_abort_upload:419,mongoc_gridfs_bucket_delete_by_id:420,mongoc_gridfs_bucket_destroi:421,mongoc_gridfs_bucket_download_to_stream:422,mongoc_gridfs_bucket_find:423,mongoc_gridfs_bucket_new:424,mongoc_gridfs_bucket_open_download_stream:425,mongoc_gridfs_bucket_open_upload_stream:426,mongoc_gridfs_bucket_open_upload_stream_with_id:427,mongoc_gridfs_bucket_stream_error:428,mongoc_gridfs_bucket_t:429,mongoc_gridfs_bucket_upload_from_stream:430,mongoc_gridfs_bucket_upload_from_stream_with_id:431,mongoc_gridfs_create_fil:432,mongoc_gridfs_create_file_from_stream:433,mongoc_gridfs_destroi:434,mongoc_gridfs_drop:435,mongoc_gridfs_file_destroi:436,mongoc_gridfs_file_error:437,mongoc_gridfs_file_get_alias:438,mongoc_gridfs_file_get_chunk_s:439,mongoc_gridfs_file_get_content_typ:440,mongoc_gridfs_file_get_filenam:441,mongoc_gridfs_file_get_id:442,mongoc_gridfs_file_get_length:443,mongoc_gridfs_file_get_md5:444,mongoc_gridfs_file_get_metadata:445,mongoc_gridfs_file_get_upload_d:446,mongoc_gridfs_file_list_destroi:447,mongoc_gridfs_file_list_error:448,mongoc_gridfs_file_list_next:449,mongoc_gridfs_file_list_t:450,mongoc_gridfs_file_opt_t:451,mongoc_gridfs_file_readv:452,mongoc_gridfs_file_remov:453,mongoc_gridfs_file_sav:454,mongoc_gridfs_file_seek:455,mongoc_gridfs_file_set_alias:456,mongoc_gridfs_file_set_content_typ:457,mongoc_gridfs_file_set_filenam:458,mongoc_gridfs_file_set_id:459,mongoc_gridfs_file_set_md5:460,mongoc_gridfs_file_set_metadata:461,mongoc_gridfs_file_t:462,mongoc_gridfs_file_tel:463,mongoc_gridfs_file_writev:464,mongoc_gridfs_find:465,mongoc_gridfs_find_on:466,mongoc_gridfs_find_one_by_filenam:467,mongoc_gridfs_find_one_with_opt:468,mongoc_gridfs_find_with_opt:469,mongoc_gridfs_get_chunk:470,mongoc_gridfs_get_fil:471,mongoc_gridfs_remove_by_filenam:472,mongoc_gridfs_t:473,mongoc_handshake_data_append:474,mongoc_host_list_t:475,mongoc_index_model_t:301,mongoc_index_opt_geo_get_default:476,mongoc_index_opt_geo_init:477,mongoc_index_opt_geo_t:478,mongoc_index_opt_get_default:479,mongoc_index_opt_init:480,mongoc_index_opt_t:481,mongoc_index_opt_wt_get_default:482,mongoc_index_opt_wt_init:483,mongoc_index_opt_wt_t:484,mongoc_init:485,mongoc_insert_flags_t:486,mongoc_iovec_t:487,mongoc_optional_copi:488,mongoc_optional_init:489,mongoc_optional_is_set:490,mongoc_optional_set_valu:491,mongoc_optional_t:492,mongoc_optional_valu:493,mongoc_query_flags_t:494,mongoc_rand:495,mongoc_rand_add:496,mongoc_rand_se:497,mongoc_rand_statu:498,mongoc_read_concern_append:499,mongoc_read_concern_copi:500,mongoc_read_concern_destroi:501,mongoc_read_concern_get_level:502,mongoc_read_concern_is_default:503,mongoc_read_concern_new:504,mongoc_read_concern_set_level:505,mongoc_read_concern_t:506,mongoc_read_mode_t:507,mongoc_read_prefs_add_tag:508,mongoc_read_prefs_copi:509,mongoc_read_prefs_destroi:510,mongoc_read_prefs_get_hedg:511,mongoc_read_prefs_get_max_staleness_second:512,mongoc_read_prefs_get_mod:513,mongoc_read_prefs_get_tag:514,mongoc_read_prefs_is_valid:515,mongoc_read_prefs_new:516,mongoc_read_prefs_set_hedg:517,mongoc_read_prefs_set_max_staleness_second:518,mongoc_read_prefs_set_mod:519,mongoc_read_prefs_set_tag:520,mongoc_read_prefs_t:521,mongoc_remove_flags_t:522,mongoc_reply_flags_t:523,mongoc_server_api_copi:524,mongoc_server_api_deprecation_error:525,mongoc_server_api_destroi:526,mongoc_server_api_get_deprecation_error:527,mongoc_server_api_get_strict:528,mongoc_server_api_get_vers:529,mongoc_server_api_new:530,mongoc_server_api_strict:531,mongoc_server_api_t:532,mongoc_server_api_version_from_str:533,mongoc_server_api_version_t:534,mongoc_server_api_version_to_str:535,mongoc_server_description_destroi:536,mongoc_server_description_hello_respons:537,mongoc_server_description_host:538,mongoc_server_description_id:539,mongoc_server_description_ismast:540,mongoc_server_description_last_update_tim:541,mongoc_server_description_new_copi:542,mongoc_server_description_round_trip_tim:543,mongoc_server_description_t:544,mongoc_server_description_typ:545,mongoc_server_descriptions_destroy_al:546,mongoc_session_opt_t:547,mongoc_session_opts_clon:548,mongoc_session_opts_destroi:549,mongoc_session_opts_get_causal_consist:550,mongoc_session_opts_get_default_transaction_opt:551,mongoc_session_opts_get_snapshot:552,mongoc_session_opts_get_transaction_opt:553,mongoc_session_opts_new:554,mongoc_session_opts_set_causal_consist:555,mongoc_session_opts_set_default_transaction_opt:556,mongoc_session_opts_set_snapshot:557,mongoc_socket_accept:558,mongoc_socket_bind:559,mongoc_socket_clos:560,mongoc_socket_connect:561,mongoc_socket_destroi:562,mongoc_socket_errno:563,mongoc_socket_getnameinfo:564,mongoc_socket_getsocknam:565,mongoc_socket_listen:566,mongoc_socket_new:567,mongoc_socket_recv:568,mongoc_socket_send:569,mongoc_socket_sendv:570,mongoc_socket_setsockopt:571,mongoc_socket_t:572,mongoc_ssl_opt_get_default:573,mongoc_ssl_opt_t:[8,574],mongoc_stream_buffered_new:575,mongoc_stream_buffered_t:576,mongoc_stream_clos:577,mongoc_stream_cork:578,mongoc_stream_destroi:579,mongoc_stream_file_get_fd:580,mongoc_stream_file_new:581,mongoc_stream_file_new_for_path:582,mongoc_stream_file_t:583,mongoc_stream_flush:584,mongoc_stream_get_base_stream:585,mongoc_stream_gridfs_new:586,mongoc_stream_read:587,mongoc_stream_readv:588,mongoc_stream_setsockopt:589,mongoc_stream_should_retri:590,mongoc_stream_socket_get_socket:591,mongoc_stream_socket_new:592,mongoc_stream_socket_t:593,mongoc_stream_t:594,mongoc_stream_timed_out:595,mongoc_stream_tls_t:596,mongoc_stream_uncork:597,mongoc_stream_writ:598,mongoc_stream_writev:599,mongoc_topology_description_destroi:600,mongoc_topology_description_get_serv:601,mongoc_topology_description_has_readable_serv:602,mongoc_topology_description_has_writable_serv:603,mongoc_topology_description_new_copi:604,mongoc_topology_description_t:605,mongoc_topology_description_typ:606,mongoc_transaction_opt_t:607,mongoc_transaction_opts_clon:608,mongoc_transaction_opts_destroi:609,mongoc_transaction_opts_get_max_commit_time_m:610,mongoc_transaction_opts_get_read_concern:611,mongoc_transaction_opts_get_read_pref:612,mongoc_transaction_opts_get_write_concern:613,mongoc_transaction_opts_new:614,mongoc_transaction_opts_set_max_commit_time_m:615,mongoc_transaction_opts_set_read_concern:616,mongoc_transaction_opts_set_read_pref:617,mongoc_transaction_opts_set_write_concern:618,mongoc_transaction_state_t:619,mongoc_update_flags_t:620,mongoc_uri_copi:621,mongoc_uri_destroi:622,mongoc_uri_get_auth_mechan:623,mongoc_uri_get_auth_sourc:624,mongoc_uri_get_compressor:625,mongoc_uri_get_databas:626,mongoc_uri_get_host:627,mongoc_uri_get_mechanism_properti:628,mongoc_uri_get_opt:633,mongoc_uri_get_option_as_bool:629,mongoc_uri_get_option_as_int32:630,mongoc_uri_get_option_as_int64:631,mongoc_uri_get_option_as_utf8:632,mongoc_uri_get_password:634,mongoc_uri_get_read_concern:635,mongoc_uri_get_read_pref:636,mongoc_uri_get_read_prefs_t:637,mongoc_uri_get_replica_set:638,mongoc_uri_get_servic:639,mongoc_uri_get_srv_hostnam:640,mongoc_uri_get_srv_service_nam:641,mongoc_uri_get_ssl:642,mongoc_uri_get_str:643,mongoc_uri_get_tl:644,mongoc_uri_get_usernam:645,mongoc_uri_get_write_concern:646,mongoc_uri_has_opt:647,mongoc_uri_new:648,mongoc_uri_new_for_host_port:649,mongoc_uri_new_with_error:650,mongoc_uri_option_is_bool:651,mongoc_uri_option_is_int32:652,mongoc_uri_option_is_int64:653,mongoc_uri_option_is_utf8:654,mongoc_uri_set_auth_mechan:655,mongoc_uri_set_auth_sourc:656,mongoc_uri_set_compressor:657,mongoc_uri_set_databas:658,mongoc_uri_set_mechanism_properti:659,mongoc_uri_set_option_as_bool:660,mongoc_uri_set_option_as_int32:661,mongoc_uri_set_option_as_int64:662,mongoc_uri_set_option_as_utf8:663,mongoc_uri_set_password:664,mongoc_uri_set_read_concern:665,mongoc_uri_set_read_prefs_t:666,mongoc_uri_set_usernam:667,mongoc_uri_set_write_concern:668,mongoc_uri_t:669,mongoc_uri_unescap:670,mongoc_write_concern_append:672,mongoc_write_concern_copi:673,mongoc_write_concern_destroi:674,mongoc_write_concern_get_fsync:675,mongoc_write_concern_get_journ:676,mongoc_write_concern_get_w:677,mongoc_write_concern_get_wmajor:678,mongoc_write_concern_get_wtag:679,mongoc_write_concern_get_wtimeout:680,mongoc_write_concern_get_wtimeout_int64:681,mongoc_write_concern_is_acknowledg:682,mongoc_write_concern_is_default:683,mongoc_write_concern_is_valid:684,mongoc_write_concern_journal_is_set:685,mongoc_write_concern_new:686,mongoc_write_concern_set_fsync:687,mongoc_write_concern_set_journ:688,mongoc_write_concern_set_w:689,mongoc_write_concern_set_wmajor:690,mongoc_write_concern_set_wtag:691,mongoc_write_concern_set_wtimeout:692,mongoc_write_concern_set_wtimeout_int64:693,mongoc_write_concern_t:694,mongodb:[0,4,20,695,696],monitor:[3,669],more:12,msys2:20,nativ:8,next:[696,697],object:21,older:695,openssl:8,oper:[6,288,345,396,696],option:[0,8,20,171,317,399,669],order:6,other:289,over:[0,1],packag:20,paramet:[28,29,30,31,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,48,49,50,51,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,71,72,73,75,76,77,78,79,81,82,83,85,86,87,88,89,91,92,93,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,115,116,118,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,157,158,159,161,163,164,165,166,167,168,169,170,171,172,174,175,176,178,179,180,181,182,183,185,186,187,188,189,190,192,194,195,196,197,199,200,201,202,203,204,206,207,208,209,210,212,213,214,215,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,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,274,275,276,277,278,279,280,281,282,283,284,285,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,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,367,368,369,370,371,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,391,392,393,395,396,398,399,400,401,402,403,404,405,406,408,409,410,411,412,413,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,452,453,454,455,456,457,458,459,460,461,463,464,465,466,467,468,469,470,471,472,474,477,480,483,488,489,490,491,493,496,497,499,500,501,502,503,505,508,509,510,511,512,513,514,515,516,517,518,519,520,524,525,527,528,529,531,533,535,536,537,538,539,540,541,542,543,545,546,548,549,550,551,552,553,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,575,577,578,579,580,581,582,584,585,586,587,588,589,590,591,592,595,597,598,599,600,601,602,603,604,606,608,609,610,611,612,613,615,616,617,618,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,670,672,673,674,675,676,677,678,679,680,681,682,683,684,685,687,688,689,690,691,692,693],path:696,perform:[3,5],pkg:696,plain:4,platform:20,pool:[9,21,669],popul:1,prefer:[339,669],prepar:20,prerequisit:20,program:696,project:[696,697],properti:669,provid:7,queri:17,queryabl:695,read:[6,339,506,521,669],refer:2,relat:[21,462],releas:20,replica:[0,669],report:[5,13],repositori:20,requir:1,resum:160,rule:7,run:[12,24,671],safeti:[218,240,241,244,245,246,247,248,250,252,286,366,429,462,473],sasl:4,scram:4,sdam:3,secur:8,see:227,select:669,server:[0,7,8,10,669,695],session:21,set:[0,1,6,13,408,409,410,411,412,413,521,669],setup:[12,24],sha:4,shard:0,side:[7,10,21],singl:[9,227],socket:0,sort:412,specifi:696,srv:669,ssl:669,stale:521,start:[160,696],state:1,statu:495,step:[696,697],stream:[286,594],studio:[20,696,697],submit:5,support:[8,20,534],synopsi:[19,22,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,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694],tag:521,tailabl:10,tarbal:20,task:24,thread:[218,227,240,241,244,245,246,247,248,250,252,286,366,429,462,473,696],time:671,trace:22,transienttransactionerror:13,transport:8,troubleshoot:5,tutori:696,type:594,unacknowledg:6,uninstal:20,unix:[0,20],unknowntransactioncommitresult:13,unord:6,updat:[413,696],uri:[4,8],using:1,valid:6,valu:[486,494,522,523,619,620],verif:8,version:[13,534,671,695],via:4,visual:[20,696,697],w64:20,window:[8,20],write:[6,288,339,345,396,669,694],your:696,zip:1}}) \ No newline at end of file diff --git a/libmongoc/1.24.2/tutorial.html b/libmongoc/1.24.2/tutorial.html new file mode 100644 index 0000000000000000000000000000000000000000..cc87146c086ed7009befa93cdcbf8b82616702b9 --- /dev/null +++ b/libmongoc/1.24.2/tutorial.html @@ -0,0 +1,1105 @@ + + + + + + + + + + + + + + Tutorial — libmongoc 1.24.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
    +>
    +
    +
    +
    + + +
    +

    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. The _simple variants return booleans indicating success or failure.

    +

    This example executes the ping command against the database “mydb”.

    +
    #include <bson/bson.h>
    +#include <mongoc/mongoc.h>
    +#include <stdio.h>
    +
    +int
    +main (int argc, char *argv[])
    +{
    +   mongoc_client_t *client;
    +   bson_error_t error;
    +   bson_t *command;
    +   bson_t reply;
    +   char *str;
    +
    +   mongoc_init ();
    +
    +   client = mongoc_client_new (
    +      "mongodb://localhost:27017/?appname=executing-example");
    +
    +   command = BCON_NEW ("ping", BCON_INT32 (1));
    +   if (mongoc_client_command_simple (
    +          client, "mydb", 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_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
    +{ "ok" : { "$numberDouble" : "1.0" }, "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1682609211, "i" : 1 } }, "signature" : { "hash" : { "$binary" : { "base64" : "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", "subType" : "00" } }, "keyId" : { "$numberLong" : "0" } } }, "operationTime" : { "$timestamp" : { "t" : 1682609211, "i" : 1 } } }
    +
    +
    +

    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
    +{ "ok" : { "$numberDouble" : "1.0" }, "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1682609211, "i" : 1 } }, "signature" : { "hash" : { "$binary" : { "base64" : "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", "subType" : "00" } }, "keyId" : { "$numberLong" : "0" } } }, "operationTime" : { "$timestamp" : { "t" : 1682609211, "i" : 1 } } }
    +
    +
    +
    +
    +

    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.24.2/visual-studio-guide.html b/libmongoc/1.24.2/visual-studio-guide.html new file mode 100644 index 0000000000000000000000000000000000000000..88865dfde68e83f988a70850435ed783efd40508 --- /dev/null +++ b/libmongoc/1.24.2/visual-studio-guide.html @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + Using libmongoc in a Microsoft Visual Studio project — libmongoc 1.24.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 6577e70e27c00ad26010ff973dc6f2d5d7b362e0..db3c2d90eb65d7de854ebea94cb777e9c1f8e46e 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.24.1', - LANGUAGE: 'en', + VERSION: '1.24.2', + LANGUAGE: 'None', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: false, diff --git a/libmongoc/_static/searchtools.js b/libmongoc/_static/searchtools.js index 024ac7c430a70907a6715006dc263b4f6d1976ba..41b8336776442fbc64332ffbd3d2c1ddd8b3b9c2 100644 --- a/libmongoc/_static/searchtools.js +++ b/libmongoc/_static/searchtools.js @@ -227,11 +227,105 @@ 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) { - return query.split(/\s+/); + 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; } + + /** * Search Module */ @@ -323,7 +417,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 3e940eb72468c14f7fe72a2d080252241ff949c3..0b4c970ea2c7b506f928cbe70c316cd3fee29fe4 120000 --- a/libmongoc/current +++ b/libmongoc/current @@ -1 +1 @@ -1.24.1 \ No newline at end of file +1.24.2 \ No newline at end of file diff --git a/libmongoc/index.html b/libmongoc/index.html index e4367fa3cdc46e947e20fab7503b14d56ec99311..f8c6c1df89502985853d7db6d056f3d598a05094 100644 --- a/libmongoc/index.html +++ b/libmongoc/index.html @@ -1,10 +1,11 @@ - + - + - - + + - libmongoc Releases — MongoDB C Driver 1.24.1 + libmongoc Releases — MongoDB C Driver 1.24.2 - - - - - + @@ -52,7 +49,7 @@
  • previous |
  • - +
    @@ -60,110 +57,111 @@
    -
    -

    libmongoc Releases

    -

    Latest Release (1.24.1)

    +
    +

    libmongoc Releases

    +

    Latest Release (1.24.2)

    Current Development (master)

    -
    +
    @@ -172,7 +170,7 @@ diff --git a/objects.inv b/objects.inv index 4159186c0594a4ed726cfd2ebc755090d9386e8b..8254d5574acc9d50d62a7701250f5333a9954cf9 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/search.html b/search.html index c999aa8588b9f818790e75b3e02d87405b5ebb13..7bba6d2a69f056452b38440a73233d734a4cc57d 100644 --- a/search.html +++ b/search.html @@ -1,9 +1,11 @@ - + - + - + + - Search — MongoDB C Driver 1.24.1 + Search — MongoDB C Driver 1.24.2 - - - - - +