Phosphor
stats_callback.h
1 /* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /*
3  * Copyright 2017 Couchbase, Inc
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #pragma once
19 
20 #include <gsl_p/span.h>
21 
22 namespace phosphor {
23 
46 public:
53  template <size_t N, typename T>
54  void operator()(const char (&s)[N], T&& value) {
55  this->operator()(gsl_p::make_span(s), std::forward<T>(value));
56  }
57 
58  virtual void operator()(gsl_p::cstring_span key,
59  gsl_p::cstring_span value) = 0;
60  virtual void operator()(gsl_p::cstring_span key, bool value) = 0;
61  virtual void operator()(gsl_p::cstring_span key, size_t value) = 0;
62  virtual void operator()(gsl_p::cstring_span key, ssize_t value) = 0;
63  virtual void operator()(gsl_p::cstring_span key, double value) = 0;
64 };
65 
66 }
void operator()(const char(&s)[N], T &&value)
Definition: stats_callback.h:54
Definition: span.h:29
Definition: category_registry.h:32
Definition: stats_callback.h:45
constexpr span< T > make_span(T(&s)[N])
Definition: span.h:87