1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef REMOTING_CLIENT_SERVER_LOG_ENTRY_CLIENT_H_
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define REMOTING_CLIENT_SERVER_LOG_ENTRY_CLIENT_H_
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/time/time.h"
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "remoting/protocol/connection_to_host.h"
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "remoting/protocol/errors.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace remoting {
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ChromotingStats;
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ServerLogEntry;
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Constructs a log entry for a session state change.
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<ServerLogEntry> MakeLogEntryForSessionStateChange(
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    protocol::ConnectionToHost::State state,
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    protocol::ErrorCode error);
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Constructs a log entry for reporting statistics.
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<ServerLogEntry> MakeLogEntryForStatistics(
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    ChromotingStats* statistics);
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Constructs a log entry for reporting session ID is old.
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<ServerLogEntry> MakeLogEntryForSessionIdOld(
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const std::string& session_id);
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Constructs a log entry for reporting session ID is old.
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<ServerLogEntry> MakeLogEntryForSessionIdNew(
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const std::string& session_id);
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AddClientFieldsToLogEntry(ServerLogEntry* entry);
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AddSessionIdToLogEntry(ServerLogEntry* entry, const std::string& id);
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AddSessionDurationToLogEntry(ServerLogEntry* entry,
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                  base::TimeDelta duration);
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace remoting
40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif  // REMOTING_CLIENT_SERVER_LOG_ENTRY_CLIENT_H_
42