Program Listing for File async_instruments.h

Return to documentation for file (/home/docs/checkouts/readthedocs.org/user_builds/opentelemetry-cpp/checkouts/latest/api/include/opentelemetry/metrics/async_instruments.h)

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/metrics/observer_result.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace metrics
{

using ObservableCallbackPtr = void (*)(ObserverResult, void *);

class ObservableInstrument
{
public:
  ObservableInstrument()          = default;
  virtual ~ObservableInstrument() = default;

  virtual void AddCallback(ObservableCallbackPtr, void *state) noexcept = 0;

  virtual void RemoveCallback(ObservableCallbackPtr, void *state) noexcept = 0;
};

}  // namespace metrics
OPENTELEMETRY_END_NAMESPACE