Realm C++ SDK Versão C++ v2.2.0

timestamp.hpp

1
2//
3// Autores 2024 Realm Inc.
4//
5// Licenciado sob a Licença Apache, Versão 2.0 (a "Licença");
6// você não pode usar este arquivo, exceto em conformidade com a Licença.
7// Você pode obter uma cópia da Licença em
8//
9// http://www.apache.org/license/LICENSE-2.0
10//
11// A menos que exigido pela lei aplicável ou acordado por escrito, o software
12// distribuído sob a Licença é distribuído "Como está",
13// sem garantias ou condições de qualquer tipo, Express ou implícitas.
14// Consulte a Licença para obter as permissões específicas de domínio do idioma e
15// limitações da Licença.
16//
18
19#ifndef CPPREALM_BRIDGE_TIMESTAMP_HPP
20#define CPPREALM_BRIDGE_TIMESTAMP_HPP
21
22#include <chrono>
23#include <cprealm/internal/bridge/utils.hpp>
24
25namespace Realm {
26 classe Timestamp;
27}
28
29namespace realm::internal::bridge {
30 estrutura, estrutura timestamp {
31 timestamp() = padrão;
32 carimbo de data/hora( carimbo de data/ horaconst e outros) = padrão;
33 timestamp& operator=(const timestamp& other) = default;
34 timestamp(timestamp&& other) = default;
35 timestamp& operator=(timestamp&& other) = default;
36 ~timestamp() = default;
37 carimbo de data/hora ( carimbo de data/hora const &); //NOLINT(google-explicit-constructor)
38 operador Timestamp() const; //NOLINT(google-explicit-constructor)
39 operador std::chrono::time_point()<std::chrono::system_clock> const; //NOLINT(google-explicit-constructor)
40 carimbo de data/hora (int64_t segundos, int32_t nanossegundos);
41 registro de data e hora(const std::chrono::time_point<std::chrono::system_clock>& tp); //NOLINT(google-explicit-constructor)
42 [[nodiscard]] int64_t get_seconds() const noexceto;
43 [[nodiscard]] int32_t get_nanosseconds() const noexceto;
44 [[nodiscard]] std::chrono::time_point<std::chrono::system_lock, std::chrono::system_lock::duration>
45 get_time_point() const {
46 int64_t native_nano = get_seconds() * nanossegundos_per_segundo + get_nanossegundos();
47 auto duration = std::chrono::duration_cast<std::chrono::system_clock::duration>(std::chrono::duration<int64_t, std::nano>{native_nano});
48 return std::chrono::time_point<std::chrono::system_lock,
49 std::chrono::system_lock::duração>(duração);
50 }
51 privado:
52 estático constexpr int32_t nanossegundos_per_second = 1000000000;
53 int64_t m_seconds = 0;
54 int32_t m_nanossegundos = 0;
55 amigo bool operator ==(const timestamp&, const timestamp&);
56 amigo operador debool !=( carimbo dedata/horaconst &, carimbo de data/horaconst &);
57 amigo operador de bool >(carimbo dedata/horaconst &, carimbo de data/horaconst &);
58 amigo operador de bool <( carimbo de data/horaconst &,carimbo de data/horaconst &);
59 amigo operador de bool >=( timestampconst &,timestampconst &);
60 amigo operador de bool <=(const timestamp&, const timestamp&);
61 };
62
63 bool operator ==(const timestamp&, const timestamp&);
64 operador debool !=( carimbo dedata/horaconst &, carimbo de data/horaconst &);
65 operador de bool >(carimbo dedata/horaconst &, carimbo de data/horaconst &);
66 operador de bool <( carimbo de data/horaconst &,carimbo de data/horaconst &);
67 operador de bool >=( timestampconst &,timestampconst &);
68 operador de bool <=(const timestamp&, const timestamp&);
69}
70
71#endif //CPREALM_BRIDGE_TIMESTAMP_HPP
Definição: timestamp.hpp:30