Files
sdk/runtime/bin/dbg_connection_linux.h
T
ager@google.com 87a43bef60 Implement debugger connection on Windows.
This is a slightly cleaned up version of the code that Devon
created.

All of eventhandler and socket in bin is designed for async
communication only. Therefore, it does not make much sense
to use it for something as simple as this. I have put the
sync send and receive operations into DebuggerConnectionImpl
instead of attempting to use the async Socket::Read and
Socket::Write.

R=devoncarew@google.com,sgjesse@google.com,hausner@google.com
BUG=

Review URL: https://codereview.chromium.org//11642019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16336 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-19 18:42:19 +00:00

32 lines
926 B
C++

// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef BIN_DBG_CONNECTION_LINUX_H_
#define BIN_DBG_CONNECTION_LINUX_H_
#include <arpa/inet.h>
#include <netdb.h>
#include <sys/socket.h>
class DebuggerConnectionImpl {
public:
static void StartHandler(int port_number);
static intptr_t Send(intptr_t socket, const char* buf, int len);
static intptr_t Receive(intptr_t socket, char* buf, int len);
private:
static void SetupPollQueue();
static void HandleEvent(struct epoll_event* event);
static void Handler(uword args);
// File descriptors for pipes used to communicate with the debugger thread.
static int wakeup_fds_[2];
// File descriptor for the polling queue.
static int epoll_fd_;
};
#endif // BIN_DBG_CONNECTION_LINUX_H_