blob: 7d134ce693fa694db54e46dc3884ea2a32162cd8 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMECAST_METRICS_CAST_EVENT_BUILDER_IMPL_H_
#define CHROMECAST_METRICS_CAST_EVENT_BUILDER_IMPL_H_
#include <memory>
#include <string>
#include <vector>
#include "chromecast/metrics/cast_event_builder.h"
namespace chromecast {
class CastEventBuilderImpl : public CastEventBuilder {
public:
CastEventBuilderImpl();
CastEventBuilderImpl(const CastEventBuilderImpl&) = delete;
CastEventBuilderImpl& operator=(const CastEventBuilderImpl&) = delete;
~CastEventBuilderImpl() override;
// CastEventBuilder implementation
std::string GetName() override;
CastEventBuilder& SetName(const std::string& name) override;
CastEventBuilder& SetTime(const base::TimeTicks& time) override;
CastEventBuilder& SetTimezoneId(const std::string& timezone_id) override;
CastEventBuilder& SetAppId(const std::string& app_id) override;
CastEventBuilder& SetRemoteAppId(const std::string& remote_app_id) override;
CastEventBuilder& SetSessionId(const std::string& session_id) override;
CastEventBuilder& SetSdkVersion(const std::string& sdk_version) override;
CastEventBuilder& SetMplVersion(const std::string& mpl_version) override;
CastEventBuilder& SetConnectionInfo(
const std::string& transport_connection_id,
const std::string& virtual_connection_id) override;
CastEventBuilder& SetGroupUuid(const std::string& group_uuid) override;
CastEventBuilder& SetExtraValue(int64_t extra_value) override;
CastEventBuilder& SetConversationKey(
const std::string& conversation_key) override;
CastEventBuilder& SetRequestId(int32_t request_id) override;
CastEventBuilder& SetEventId(const std::string& event_id) override;
CastEventBuilder& SetAoghRequestId(const std::string& request_id) override;
CastEventBuilder& SetAoghLocalDeviceId(int64_t local_id) override;
CastEventBuilder& SetAoghAgentId(const std::string& agent_id) override;
CastEventBuilder& SetAoghStandardAgentId(
const std::string& standard_agent_id) override;
CastEventBuilder& SetUiVersion(const std::string& ui_version) override;
CastEventBuilder& SetAuditReport(const std::string& audit_report) override;
CastEventBuilder& SetDuoCoreVersion(int64_t version) override;
CastEventBuilder& SetHotwordModelId(const std::string& model_id) override;
CastEventBuilder& SetDiscoveryAppSubtype(const std::string& app_id) override;
CastEventBuilder& SetDiscoveryNamespaceSubtype(
const std::string& namespace_hash) override;
CastEventBuilder& SetDiscoverySender(
const net::IPAddressBytes& sender_ip) override;
CastEventBuilder& SetDiscoveryUnicastFlag(bool uses_unicast) override;
CastEventBuilder& SetFeatureVector(
const std::vector<float>& features) override;
CastEventBuilder& AddMetadata(const std::string& name,
int64_t value) override;
CastEventBuilder& SetLaunchFrom(LaunchFrom launch_from) override;
CastEventBuilder& MergeFrom(
const ::metrics::CastLogsProto_CastEventProto* event_proto) override;
::metrics::CastLogsProto_CastEventProto* Build() override;
private:
std::unique_ptr<::metrics::CastLogsProto_CastEventProto> event_proto_;
std::string unhashed_event_name_;
};
} // namespace chromecast
#endif // CHROMECAST_METRICS_CAST_EVENT_BUILDER_IMPL_H_