1/*
2 * Copyright 2013-present Facebook, 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/*
18 * This file contains explicit instantiations of stats template types.
19 *
20 * This allows most users to avoid having to include the template definition
21 * header files.
22 */
23
24#include <folly/stats/Histogram.h>
25#include <folly/stats/Histogram-defs.h>
26
27#if !FOLLY_MSVC_USE_WORKAROUND_FOR_C5037
28namespace folly {
29
30template class Histogram<int64_t>;
31template class detail::HistogramBuckets<int64_t, Histogram<int64_t>::Bucket>;
32
33// Histogram::getPercentileBucketIdx(), Histogram::getPercentileEstimate()
34// and Histogram::computeTotalCount()
35// are implemented using template methods. Instantiate the default versions of
36// these methods too, so anyone using them won't also need to explicitly
37// include Histogram-defs.h
38template size_t detail::HistogramBuckets<int64_t, Histogram<int64_t>::Bucket>::
39 getPercentileBucketIdx<Histogram<int64_t>::CountFromBucket>(
40 double pct,
41 Histogram<int64_t>::CountFromBucket countFromBucket,
42 double* lowPct,
43 double* highPct) const;
44template int64_t detail::HistogramBuckets<int64_t, Histogram<int64_t>::Bucket>::
45 getPercentileEstimate<
46 Histogram<int64_t>::CountFromBucket,
47 Histogram<int64_t>::AvgFromBucket>(
48 double pct,
49 Histogram<int64_t>::CountFromBucket countFromBucket,
50 Histogram<int64_t>::AvgFromBucket avgFromBucket) const;
51template uint64_t
52detail::HistogramBuckets<int64_t, Histogram<int64_t>::Bucket>::
53 computeTotalCount<Histogram<int64_t>::CountFromBucket>(
54 Histogram<int64_t>::CountFromBucket countFromBucket) const;
55
56} // namespace folly
57#endif
58