diff --git a/cpp/core/BUILD b/cpp/core/BUILD index 9fa892fb..12456f0b 100644 --- a/cpp/core/BUILD +++ b/cpp/core/BUILD @@ -28,6 +28,7 @@ cc_library( ], deps = [ ":core_types", + ":event_logger", "//absl/strings", "//absl/time", "//absl/types:span", @@ -66,6 +67,16 @@ cc_library( ], ) +cc_library( + name = "event_logger", + hdrs = [ + "event_logger.h", + ], + deps = [ + "//logs/proto/location/nearby:nearby_client_log_cc_proto", + ], +) + cc_test( name = "core_test", size = "small", diff --git a/cpp/core/event_logger.h b/cpp/core/event_logger.h new file mode 100644 index 00000000..763eb1e3 --- /dev/null +++ b/cpp/core/event_logger.h @@ -0,0 +1,41 @@ +// Copyright 2020 Google LLC +// +// 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 +// +// https://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 CORE_EVENT_LOGGER_H_ +#define CORE_EVENT_LOGGER_H_ + +#include "logs/proto/location/nearby/nearby_client_log.proto.h" + +namespace location { +namespace nearby { +namespace connections { +namespace analytics { + +// Allows callers to log |ConnectionsLog| collected at Nearby Connections +// library. Callers need to implement the API if they want to collect this log. +class EventLogger { + public: + virtual ~EventLogger() = default; + + // Logs |ConnectionsLog| details. Might block to do I/O, e.g. upload + // synchronously to some metrics server. + virtual void Log(const logs::ConnectionsLog& connections_log) = 0; +}; + +} // namespace analytics +} // namespace connections +} // namespace nearby +} // namespace location + +#endif // CORE_EVENT_LOGGER_H_