diff options
Diffstat (limited to 'remoting/client/simple_client.cc')
-rw-r--r-- | remoting/client/simple_client.cc | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/remoting/client/simple_client.cc b/remoting/client/simple_client.cc deleted file mode 100644 index d1dd6e2..0000000 --- a/remoting/client/simple_client.cc +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright (c) 2010 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 simple client implements a minimal Chromoting client and shows -// network traffic for debugging. - -#include <iostream> -#include <list> - -#include "base/at_exit.h" -#include "base/message_loop.h" -#include "base/stl_util-inl.h" - -#include "base/waitable_event.h" -#include "media/base/data_buffer.h" -#include "remoting/base/protocol_decoder.h" -#include "remoting/client/client_util.h" -#include "remoting/client/jingle_host_connection.h" -#include "remoting/jingle_glue/jingle_client.h" -#include "remoting/jingle_glue/jingle_thread.h" - -using remoting::BeginUpdateStreamMessage; -using remoting::EndUpdateStreamMessage; -using remoting::HostConnection; -using remoting::HostMessage; -using remoting::HostMessageList; -using remoting::InitClientMessage; -using remoting::JingleClient; -using remoting::JingleHostConnection; -using remoting::JingleThread; -using remoting::ProtocolDecoder; -using remoting::UpdateStreamPacketMessage; - -class SimpleHostEventCallback : public HostConnection::HostEventCallback { - public: - explicit SimpleHostEventCallback(MessageLoop* loop, - base::WaitableEvent* client_done) - : main_loop_(loop), client_done_(client_done) { - } - - virtual void HandleMessages(HostConnection* conn, - HostMessageList* messages) { - HostMessageList list; - messages->swap(list); - for (size_t i = 0; i < list.size(); ++i) { - HostMessage* msg = list[i]; - if (msg->has_init_client()) { - HandleInitClientMessage(msg); - } else if (msg->has_begin_update_stream()) { - HandleBeginUpdateStreamMessage(msg); - } else if (msg->has_update_stream_packet()) { - HandleUpdateStreamPacketMessage(msg); - } else if (msg->has_end_update_stream()) { - HandleEndUpdateStreamMessage(msg); - } - } - STLDeleteElements<HostMessageList>(&list); - } - - virtual void OnConnectionOpened(HostConnection* conn) { - std::cout << "Connection establised." << std::endl; - } - - virtual void OnConnectionClosed(HostConnection* conn) { - std::cout << "Connection closed." << std::endl; - client_done_->Signal(); - } - - virtual void OnConnectionFailed(HostConnection* conn) { - std::cout << "Conection failed." << std::endl; - client_done_->Signal(); - } - - private: - void HandleInitClientMessage(HostMessage* host_msg) { - const InitClientMessage& msg = host_msg->init_client(); - std::cout << "InitClient (" << msg.width() - << ", " << msg.height() << ")" << std::endl; - } - - void HandleBeginUpdateStreamMessage(HostMessage* host_msg) { - const BeginUpdateStreamMessage& msg = host_msg->begin_update_stream(); - std::cout << msg.GetTypeName() << std::endl; - } - - void HandleUpdateStreamPacketMessage(HostMessage* host_msg) { - const UpdateStreamPacketMessage& msg = host_msg->update_stream_packet(); - if (!msg.has_begin_rect()) - return; - - std::cout << "UpdateStreamPacket (" << msg.begin_rect().x() - << ", " << msg.begin_rect().y() << ") [" - << msg.begin_rect().width() << " x " - << msg.begin_rect().height() << "]" - << std::endl; - } - - void HandleEndUpdateStreamMessage(HostMessage* host_msg) { - const EndUpdateStreamMessage& msg = host_msg->end_update_stream(); - std::cout << msg.GetTypeName() << std::endl; - } - - // JingleClient::Callback interface. - void OnStateChange(JingleClient* client, JingleClient::State state) { - if (state == JingleClient::CONNECTED) { - LOG(INFO) << "Connected as: " << client->GetFullJid(); - } else if (state == JingleClient::CLOSED) { - LOG(INFO) << "Connection closed."; - } - } - - MessageLoop* main_loop_; - base::WaitableEvent* client_done_; - - DISALLOW_COPY_AND_ASSIGN(SimpleHostEventCallback); -}; - -int main(int argc, char** argv) { - base::AtExitManager exit_manager; - std::string host_jid; - std::string username; - std::string auth_token; - - if (!remoting::GetLoginInfo(argc, argv, &host_jid, &username, &auth_token)) { - std::cerr << "Cannot get valid login info." << std::endl; - return 1; - } - - // Start up a thread to run everything. - JingleThread network_thread; - network_thread.Start(); - - base::WaitableEvent client_done(false, false); - SimpleHostEventCallback handler(network_thread.message_loop(), &client_done); - JingleHostConnection connection(&network_thread); - connection.Connect(username, auth_token, host_jid, &handler); - - // Wait until the mainloop has been signaled to exit. - client_done.Wait(); - - connection.Disconnect(); - network_thread.message_loop()->PostTask(FROM_HERE, - new MessageLoop::QuitTask()); - network_thread.Stop(); - - return 0; -} |