blob: c07677a53ac7e814b0a12550ca1b223b72405f9a [file] [log] [blame]
// Copyright 2017 The Android Open Source Project
//
// This software is licensed under the terms of the GNU General Public
// License version 2, as published by the Free Software Foundation, and
// may be copied, distributed, and modified under those terms.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
#pragma once
#include "android/base/files/StdioStream.h"
#include "android/metrics/MetricsWriter.h"
#include <memory>
namespace android {
namespace metrics {
//
// TextMetricsWriter - a MetricsWriter implementation that serializes
// incoming messages as text and prints them to FILE* supplied at creation.
//
class TextMetricsWriter final
: public MetricsWriter,
public std::enable_shared_from_this<TextMetricsWriter> {
public:
using Ptr = std::shared_ptr<TextMetricsWriter>;
using WPtr = std::weak_ptr<TextMetricsWriter>;
static Ptr create(base::StdioStream&& outStream);
void write(const android_studio::AndroidStudioEvent& asEvent,
wireless_android_play_playlog::LogEvent* logEvent) override;
private:
TextMetricsWriter(base::StdioStream&& outStream);
base::StdioStream mOutStream;
};
} // namespace metrics
} // namespace android