libmongocrypt
Loading...
Searching...
No Matches
mc-fle2-find-range-payload-private-v2.h
1/*
2 * Copyright 2022-present MongoDB, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef MC_FLE2_FIND_RANGE_PAYLOAD_PRIVATE_V2_H
18#define MC_FLE2_FIND_RANGE_PAYLOAD_PRIVATE_V2_H
19
20#include "mongocrypt-buffer-private.h"
21#include "mongocrypt-private.h"
22#include "mongocrypt.h"
23
24#include "mc-array-private.h"
25#include "mc-fle2-range-operator-private.h"
26
30typedef struct {
31 mc_array_t edgeFindTokenSetArray; // g
32 int64_t maxContentionCounter; // cm
34
50typedef struct {
51 struct {
53 bool set;
54 } payload;
55
56 // payloadId Id of payload - must be paired with another payload.
57 int32_t payloadId;
58 // firstOperator represents the first query operator for which this payload
59 // was generated.
60 mc_FLE2RangeOperator_t firstOperator;
61 // secondOperator represents the second query operator for which this payload
62 // was generated. Only populated for two-sided ranges. It is 0 if unset.
63 mc_FLE2RangeOperator_t secondOperator;
65
76typedef struct {
77 _mongocrypt_buffer_t edcDerivedToken; // d
78 _mongocrypt_buffer_t escDerivedToken; // s
79 _mongocrypt_buffer_t serverDerivedFromDataToken; // l
81
82void mc_FLE2FindRangePayloadV2_init(mc_FLE2FindRangePayloadV2_t *payload);
83
84bool mc_FLE2FindRangePayloadV2_serialize(const mc_FLE2FindRangePayloadV2_t *payload, bson_t *out);
85
86void mc_FLE2FindRangePayloadV2_cleanup(mc_FLE2FindRangePayloadV2_t *payload);
87
88#endif /* MC_FLE2_FIND_RANGE_PAYLOAD_PRIVATE_V2_H */
Definition: mc-fle2-find-range-payload-private-v2.h:76
Definition: mc-fle2-find-range-payload-private-v2.h:30
Definition: mc-fle2-find-range-payload-private-v2.h:50