diff --git a/sdk/src/event/async_timer/BUILD b/sdk/src/event/async_timer/BUILD new file mode 100644 index 0000000000..50e72656d7 --- /dev/null +++ b/sdk/src/event/async_timer/BUILD @@ -0,0 +1,26 @@ +# Copyright 2020, OpenTelemetry Authors +# +# 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. + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "dispatcher", + srcs = glob(["**/*.cc"]), + hdrs = glob(["**/*.h"]), + include_prefix = "src/event/async_timer", + deps = [ + "//sdk:headers", + ], +) + diff --git a/sdk/src/event/async_timer/dispatcher.cc b/sdk/src/event/async_timer/dispatcher.cc new file mode 100644 index 0000000000..65392bfa2b --- /dev/null +++ b/sdk/src/event/async_timer/dispatcher.cc @@ -0,0 +1,23 @@ +#include "src/event/async_timer/dispatcher.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace event +{ +namespace async_timer +{ +std::unique_ptr Dispatcher::CreateTimer(TimerCallback callback) noexcept +{ + (void)callback; + return nullptr; +} + +void Dispatcher::Exit() noexcept {} + +void Dispatcher::Run() noexcept {} +} // namespace async_timer +} // namespace event +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE + diff --git a/sdk/src/event/async_timer/dispatcher.h b/sdk/src/event/async_timer/dispatcher.h new file mode 100644 index 0000000000..d7e8f2c136 --- /dev/null +++ b/sdk/src/event/async_timer/dispatcher.h @@ -0,0 +1,34 @@ +#pragma once + +#include + +#include "opentelemetry/sdk/event/dispatcher.h" +#include "opentelemetry/version.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace event +{ +namespace async_timer +{ +class Dispatcher final : public event::Dispatcher +{ +public: + using EventIterator = + std::map::const_iterator; + + // event::Dispatcher + std::unique_ptr CreateTimer(TimerCallback callback) noexcept override; + + void Exit() noexcept override; + + void Run() noexcept override; + +private: + std::map events_; +}; +} // namespace async_timer +} // namespace event +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/src/event/async_timer/timer.cc b/sdk/src/event/async_timer/timer.cc new file mode 100644 index 0000000000..0104cd94c4 --- /dev/null +++ b/sdk/src/event/async_timer/timer.cc @@ -0,0 +1,21 @@ +#include "src/event/async_timer/timer.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace event +{ +namespace async_timer +{ +Timer::Timer(Dispatcher::EventIterator iterator) noexcept : iterator_{iterator} {} + +void Timer::EnableTimer(std::chrono::microseconds timeout) noexcept +{ + (void)timeout; +} + +void Timer::DisableTimer() noexcept {} +} // namespace async_timer +} // namespace event +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/src/event/async_timer/timer.h b/sdk/src/event/async_timer/timer.h new file mode 100644 index 0000000000..6e96c42157 --- /dev/null +++ b/sdk/src/event/async_timer/timer.h @@ -0,0 +1,27 @@ +#pragma once + +#include "opentelemetry/sdk/event/timer.h" +#include "opentelemetry/version.h" + +#include "src/event/async_timer/dispatcher.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace event +{ +namespace async_timer { +class Timer final : event::Timer { + public: + explicit Timer(Dispatcher::EventIterator iterator) noexcept; + + void EnableTimer(std::chrono::microseconds timeout) noexcept override; + + void DisableTimer() noexcept override; + private: + Dispatcher::EventIterator iterator_; +}; +} // namespace async_timer +} // namespace event +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE diff --git a/sdk/src/event/libevent/timer.h b/sdk/src/event/libevent/timer.h index 720aa251a0..ed221fbe87 100644 --- a/sdk/src/event/libevent/timer.h +++ b/sdk/src/event/libevent/timer.h @@ -21,6 +21,7 @@ class Timer final : public event::Timer Timer(EventBase &event_base, Callback callback) noexcept; + // event::Timer void EnableTimer(std::chrono::microseconds timeout) noexcept override; void DisableTimer() noexcept override;