blob: d264a6b3b3150a80b6abf56d6d44f2ecfc28c575 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// A utility for testing locally the retrieval of system session events.
#include <iostream>
#include "base/logging.h"
#include "base/strings/stringprintf.h"
#include "base/time/time.h"
#include "components/metrics/system_session_analyzer_win.h"
namespace {
using metrics::SystemSessionAnalyzer;
class SystemSessionEventFetcher : public SystemSessionAnalyzer {
public:
explicit SystemSessionEventFetcher() : SystemSessionAnalyzer(0) {}
using SystemSessionAnalyzer::FetchEvents;
};
} // namespace
int main(int argc, char** argv) {
SystemSessionEventFetcher fetcher;
std::vector<SystemSessionEventFetcher::EventInfo> events;
// Retrieve events for the last 5 sessions. We expect our own sessions start
// event, and then 2 events per each preceding session for 11 total.
if (!fetcher.FetchEvents(11U, &events)) {
std::cerr << "Failed to fetch events." << std::endl;
return 1;
}
// Print the event ids and times.
for (const SystemSessionEventFetcher::EventInfo& event : events) {
base::Time::Exploded exploded = {};
event.event_time.LocalExplode(&exploded);
std::string time = base::StringPrintf(
"%d/%d/%d %d:%02d:%02d", exploded.month, exploded.day_of_month,
exploded.year, exploded.hour, exploded.minute, exploded.second);
std::cout << "Event: " << event.event_id << " (" << time << ")"
<< std::endl;
}
return 0;
}