19#ifndef CPPREALM_BRIDGE_QUERY_HPP
20#define CPPREALM_BRIDGE_QUERY_HPP
22#include <cpprealm/internal/bridge/col_key.hpp>
23#include <cpprealm/internal/bridge/obj.hpp>
24#include <cpprealm/internal/bridge/utils.hpp>
37namespace realm::internal::bridge {
51 subexpr(std::unique_ptr<Subexpr> other);
53 query equal(
const std::optional<int64_t>& rhs)
const;
54 query not_equal(
const std::optional<int64_t>& rhs)
const;
55 query greater(
const std::optional<int64_t>& rhs)
const;
56 query less(
const std::optional<int64_t>& rhs)
const;
57 query greater_equal(
const std::optional<int64_t>& rhs)
const;
58 query less_equal(
const std::optional<int64_t>& rhs)
const;
60 query equal(
const std::optional<bool>& rhs)
const;
61 query not_equal(
const std::optional<bool>& rhs)
const;
63 query equal(
const std::optional<double>& rhs)
const;
64 query not_equal(
const std::optional<double>& rhs)
const;
65 query greater(
const std::optional<double>& rhs)
const;
66 query less(
const std::optional<double>& rhs)
const;
67 query greater_equal(
const std::optional<double>& rhs)
const;
68 query less_equal(
const std::optional<double>& rhs)
const;
70 query equal(
const std::optional<binary>& rhs)
const;
71 query not_equal(
const std::optional<binary>& rhs)
const;
73 query equal(
const std::optional<timestamp>& rhs)
const;
74 query not_equal(
const std::optional<timestamp>& rhs)
const;
75 query greater(
const std::optional<timestamp>& rhs)
const;
76 query less(
const std::optional<timestamp>& rhs)
const;
77 query greater_equal(
const std::optional<timestamp>& rhs)
const;
78 query less_equal(
const std::optional<timestamp>& rhs)
const;
80 query equal(
const std::optional<std::string>& rhs)
const;
81 query not_equal(
const std::optional<std::string>& rhs)
const;
82 query contains(
const std::optional<std::string>& rhs,
bool case_sensitive =
true)
const;
84 query equal(
const std::optional<internal::bridge::uuid>& rhs)
const;
85 query not_equal(
const std::optional<internal::bridge::uuid>& rhs)
const;
87 query equal(
const std::optional<internal::bridge::object_id>& rhs)
const;
88 query not_equal(
const std::optional<internal::bridge::object_id>& rhs)
const;
90 query equal(
const std::optional<internal::bridge::decimal128>& rhs)
const;
91 query not_equal(
const std::optional<internal::bridge::decimal128>& rhs)
const;
92 query greater(
const std::optional<internal::bridge::decimal128>& rhs)
const;
93 query less(
const std::optional<internal::bridge::decimal128>& rhs)
const;
94 query greater_equal(
const std::optional<internal::bridge::decimal128>& rhs)
const;
95 query less_equal(
const std::optional<internal::bridge::decimal128>& rhs)
const;
100 query equal(
const std::optional<obj>&)
const;
101 query not_equal(
const std::optional<obj>&)
const;
104 std::shared_ptr<Subexpr> m_subexpr;
128 std::shared_ptr<LinkChain> m_link_chain;
144 operator Query()
const;
153 query& greater_equal(
col_key column_key, int64_t value);
156 query& between(
col_key column_key, int64_t from, int64_t to);
165 query& between(
col_key column_key,
double from,
double to);
200 query& equal(
col_key column_key, std::string_view value,
bool case_sensitive =
true);
201 query& not_equal(
col_key column_key, std::string_view value,
bool case_sensitive =
true);
202 query& begins_with(
col_key column_key,
const std::string& value,
bool case_sensitive =
true);
203 query& ends_with(
col_key column_key,
const std::string& value,
bool case_sensitive =
true);
204 query& contains(
col_key column_key, std::string_view value,
bool case_sensitive =
true);
205 query& like(
col_key column_key,
const std::string& value,
bool case_sensitive =
true);
235 query& dictionary_has_value_for_key_equals(
col_key column_key,
const std::string& key,
const mixed& value);
236 query& dictionary_has_value_for_key_not_equals(
col_key column_key,
const std::string& key,
const mixed& value);
237 query& dictionary_has_value_for_key_greater_than(
col_key column_key,
const std::string& key,
const mixed& value);
238 query& dictionary_has_value_for_key_less_than(
col_key column_key,
const std::string& key,
const mixed& value);
239 query& dictionary_has_value_for_key_greater_than_equals(
col_key column_key,
const std::string& key,
const mixed& value);
240 query& dictionary_has_value_for_key_less_than_equals(
col_key column_key,
const std::string& key,
const mixed& value);
241 query& dictionary_contains_string_for_key(
col_key column_key,
const std::string& key,
const std::string& value);
242 query& dictionary_contains_key(
col_key column_key,
const std::string& key);
243 subexpr dictionary_link_subexpr(
col_key column_key,
col_key link_column_key,
const std::string& key);
246 static query falsepredicate();
248 std::string description()
const;
250 inline Query* get_query();
251#ifdef CPPREALM_HAVE_GENERATED_BRIDGE_TYPES
252 storage::Query m_query[1];
254 std::shared_ptr<Query> m_query;
Definition: binary.hpp:30
Definition: col_key.hpp:28
Definition: decimal128.hpp:30
Definition: query.hpp:107
Definition: object_id.hpp:31
Definition: query.hpp:131
Definition: timestamp.hpp:30