X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/53b27422d140022594fc241cca91c3183be57bca..48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff:/iOS/Pods/Realm/include/core/realm/metrics/metrics.hpp diff --git a/iOS/Pods/Realm/include/core/realm/metrics/metrics.hpp b/iOS/Pods/Realm/include/core/realm/metrics/metrics.hpp new file mode 100644 index 0000000..73e8d59 --- /dev/null +++ b/iOS/Pods/Realm/include/core/realm/metrics/metrics.hpp @@ -0,0 +1,82 @@ +/************************************************************************* + * + * Copyright 2016 Realm 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. + * + **************************************************************************/ + +#ifndef REALM_METRICS_HPP +#define REALM_METRICS_HPP + +#include +#include + +#include +#include +#include + +namespace realm { + +class Group; + +namespace metrics { + +#if REALM_METRICS + +class Metrics { +public: + Metrics(); + ~Metrics() noexcept; + size_t num_query_metrics() const; + size_t num_transaction_metrics() const; + + void add_query(QueryInfo info); + void add_transaction(TransactionInfo info); + + void start_read_transaction(); + void start_write_transaction(); + void end_read_transaction(size_t total_size, size_t free_space, size_t num_objects, size_t num_versions); + void end_write_transaction(size_t total_size, size_t free_space, size_t num_objects, size_t num_versions); + static std::unique_ptr report_fsync_time(const Group& g); + static std::unique_ptr report_write_time(const Group& g); + + using QueryInfoList = std::vector; + using TransactionInfoList = std::vector; + + // Get the list of metric objects tracked since the last take + std::unique_ptr take_queries(); + std::unique_ptr take_transactions(); +private: + std::unique_ptr m_query_info; + std::unique_ptr m_transaction_info; + + std::unique_ptr m_pending_read; + std::unique_ptr m_pending_write; +}; + + +#else + +class Metrics +{ +}; + +#endif // REALM_METRICS + +} // namespace metrics +} // namespace realm + + + +#endif // REALM_METRICS_HPP