#ifndef REMOTING_HOST_IT2ME_HOST_USER_INTERFACE_H_
#define REMOTING_HOST_IT2ME_HOST_USER_INTERFACE_H_
#include <string>
#include "base/basictypes.h"
#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "remoting/host/host_user_interface.h"
namespace remoting {
class ContinueWindow;
class It2MeHostUserInterface : public HostUserInterface {
public:
It2MeHostUserInterface(ChromotingHostContext* context);
virtual ~It2MeHostUserInterface();
virtual void Start(ChromotingHost* host,
const base::Closure& disconnect_callback) OVERRIDE;
virtual void OnClientAuthenticated(const std::string& jid) OVERRIDE;
protected:
virtual void ProcessOnClientAuthenticated(
const std::string& username) OVERRIDE;
virtual void ProcessOnClientDisconnected() OVERRIDE;
private:
class TimerTask;
friend class ChromotingHostTest;
void StartForTest(
ChromotingHost* host,
const base::Closure& disconnect_callback,
scoped_ptr<DisconnectWindow> disconnect_window,
scoped_ptr<ContinueWindow> continue_window,
scoped_ptr<LocalInputMonitor> local_input_monitor);
void ContinueSession(bool continue_session);
void OnContinueWindowTimer();
void OnShutdownHostTimer();
void ShowContinueWindow(bool show);
void StartContinueWindowTimer(bool start);
scoped_ptr<ContinueWindow> continue_window_;
base::WeakPtrFactory<It2MeHostUserInterface> timer_weak_factory_;
DISALLOW_COPY_AND_ASSIGN(It2MeHostUserInterface);
};
}
#endif