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_HOST_SERVER_LOG_ENTRY_HOST_H_
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define REMOTING_HOST_SERVER_LOG_ENTRY_HOST_H_
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "remoting/host/host_exit_codes.h"
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "remoting/host/host_status_sender.h"
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "remoting/protocol/transport.h"
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace remoting {
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ServerLogEntry;
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Constructs a log entry for a session state change.
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Currently this is either connection or disconnection.
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<ServerLogEntry> MakeLogEntryForSessionStateChange(
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    bool connected);
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Constructs a log entry for a heartbeat.
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<ServerLogEntry> MakeLogEntryForHeartbeat();
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Constructs a log entry for a host status message.
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<ServerLogEntry> MakeLogEntryForHostStatus(
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    HostStatusSender::HostStatus host_status, HostExitCodes exit_code);
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Adds fields describing the host to this log entry.
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AddHostFieldsToLogEntry(ServerLogEntry* entry);
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Adds a field describing connection type (direct/stun/relay).
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void AddConnectionTypeToLogEntry(ServerLogEntry* entry,
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                                 protocol::TransportRoute::RouteType type);
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace remoting
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif  // REMOTING_HOST_SERVER_LOG_ENTRY_HOST_H_
38