mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-02 23:27:16 +00:00
Move Connection and IOObject interfaces to Utility module
Summary: These interfaces have no dependencies, so it makes sense for them to be in the lowest level modules, to make sure that other parts of the codebase can use them without introducing loops. The only exception here is the Connection::CreateDefaultConnection method, which I've moved to Host, as it instantiates concrete implementations, and that's where the implementations live. Reviewers: jingham, zturner Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D34400 llvm-svn: 306391
This commit is contained in:
parent
0e74a134f8
commit
4ccd99541b
@ -10,8 +10,8 @@
|
||||
#ifndef liblldb_File_h_
|
||||
#define liblldb_File_h_
|
||||
|
||||
#include "lldb/Host/IOObject.h"
|
||||
#include "lldb/Host/PosixApi.h"
|
||||
#include "lldb/Utility/IOObject.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
|
@ -238,6 +238,9 @@ public:
|
||||
uint32_t line_no);
|
||||
|
||||
static size_t GetEnvironment(StringList &env);
|
||||
|
||||
static std::unique_ptr<Connection>
|
||||
CreateDefaultConnection(llvm::StringRef url);
|
||||
};
|
||||
|
||||
} // namespace lldb_private
|
||||
|
@ -10,12 +10,10 @@
|
||||
#ifndef lldb_Host_posix_MainLoopBase_h_
|
||||
#define lldb_Host_posix_MainLoopBase_h_
|
||||
|
||||
#include <functional>
|
||||
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
|
||||
#include "lldb/Host/IOObject.h"
|
||||
#include "lldb/Utility/IOObject.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include <functional>
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
@ -15,9 +15,9 @@
|
||||
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
#include "lldb/Host/IOObject.h"
|
||||
#include "lldb/Host/Predicate.h"
|
||||
#include "lldb/Host/SocketAddress.h"
|
||||
#include "lldb/Utility/IOObject.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
|
@ -19,10 +19,10 @@
|
||||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/Connection.h"
|
||||
#include "lldb/Host/IOObject.h"
|
||||
#include "lldb/Host/Pipe.h"
|
||||
#include "lldb/Host/Predicate.h"
|
||||
#include "lldb/Utility/Connection.h"
|
||||
#include "lldb/Utility/IOObject.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#ifndef liblldb_Host_windows_ConnectionGenericFileWindows_h_
|
||||
#define liblldb_Host_windows_ConnectionGenericFileWindows_h_
|
||||
|
||||
#include "lldb/Core/Connection.h"
|
||||
#include "lldb/Host/Connection.h"
|
||||
#include "lldb/Host/windows/windows.h"
|
||||
#include "lldb/lldb-types.h"
|
||||
|
||||
|
@ -31,7 +31,7 @@ template <typename Ratio> class Timeout;
|
||||
namespace lldb_private {
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
/// @class Connection Connection.h "lldb/Core/Connection.h"
|
||||
/// @class Connection Connection.h "lldb/Utility/Connection.h"
|
||||
/// @brief A communication connection class.
|
||||
///
|
||||
/// A class that implements that actual communication functions for
|
||||
@ -48,7 +48,7 @@ public:
|
||||
//------------------------------------------------------------------
|
||||
/// Default constructor
|
||||
//------------------------------------------------------------------
|
||||
Connection();
|
||||
Connection() = default;
|
||||
|
||||
//------------------------------------------------------------------
|
||||
/// Virtual destructor since this class gets subclassed and handed
|
||||
@ -56,8 +56,6 @@ public:
|
||||
//------------------------------------------------------------------
|
||||
virtual ~Connection();
|
||||
|
||||
static Connection *CreateDefaultConnection(const char *url);
|
||||
|
||||
//------------------------------------------------------------------
|
||||
/// Connect using the connect string \a url.
|
||||
///
|
@ -32,7 +32,7 @@ public:
|
||||
|
||||
IOObject(FDType type, bool should_close)
|
||||
: m_fd_type(type), m_should_close_fd(should_close) {}
|
||||
virtual ~IOObject() {}
|
||||
virtual ~IOObject();
|
||||
|
||||
virtual Status Read(void *buf, size_t &num_bytes) = 0;
|
||||
virtual Status Write(const void *buf, size_t &num_bytes) = 0;
|
||||
@ -51,6 +51,6 @@ protected:
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(IOObject);
|
||||
};
|
||||
}
|
||||
} // namespace lldb_private
|
||||
|
||||
#endif
|
@ -11,6 +11,7 @@
|
||||
#include "lldb/API/SBBroadcaster.h"
|
||||
#include "lldb/Core/Communication.h"
|
||||
#include "lldb/Host/ConnectionFileDescriptor.h"
|
||||
#include "lldb/Host/Host.h"
|
||||
#include "lldb/Utility/Log.h"
|
||||
|
||||
using namespace lldb;
|
||||
@ -51,7 +52,7 @@ void SBCommunication::SetCloseOnEOF(bool b) {
|
||||
ConnectionStatus SBCommunication::Connect(const char *url) {
|
||||
if (m_opaque) {
|
||||
if (!m_opaque->HasConnection())
|
||||
m_opaque->SetConnection(Connection::CreateDefaultConnection(url));
|
||||
m_opaque->SetConnection(Host::CreateDefaultConnection(url).release());
|
||||
return m_opaque->Connect(url, NULL);
|
||||
}
|
||||
return eConnectionStatusNoConnection;
|
||||
|
@ -7,7 +7,6 @@ add_lldb_library(lldbCore
|
||||
ArchSpec.cpp
|
||||
Broadcaster.cpp
|
||||
Communication.cpp
|
||||
Connection.cpp
|
||||
Debugger.cpp
|
||||
Disassembler.cpp
|
||||
DumpDataExtractor.cpp
|
||||
|
@ -9,11 +9,11 @@
|
||||
|
||||
#include "lldb/Core/Communication.h"
|
||||
|
||||
#include "lldb/Core/Connection.h"
|
||||
#include "lldb/Core/Event.h"
|
||||
#include "lldb/Core/Listener.h"
|
||||
#include "lldb/Host/HostThread.h"
|
||||
#include "lldb/Host/ThreadLauncher.h"
|
||||
#include "lldb/Utility/Connection.h"
|
||||
#include "lldb/Utility/ConstString.h" // for ConstString
|
||||
#include "lldb/Utility/Log.h"
|
||||
#include "lldb/Utility/Logging.h" // for LogIfAnyCategoriesSet, LIBLLDB...
|
||||
|
@ -1,32 +0,0 @@
|
||||
//===-- Connection.cpp ------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "lldb/Core/Connection.h"
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include "lldb/Host/windows/ConnectionGenericFileWindows.h"
|
||||
#endif
|
||||
|
||||
#include "lldb/Host/ConnectionFileDescriptor.h"
|
||||
|
||||
#include <string.h> // for strstr
|
||||
|
||||
using namespace lldb_private;
|
||||
|
||||
Connection::Connection() {}
|
||||
|
||||
Connection::~Connection() {}
|
||||
|
||||
Connection *Connection::CreateDefaultConnection(const char *url) {
|
||||
#if defined(_WIN32)
|
||||
if (strstr(url, "file://") == url)
|
||||
return new ConnectionGenericFile();
|
||||
#endif
|
||||
return new ConnectionFileDescriptor();
|
||||
}
|
@ -13,7 +13,6 @@ add_host_subdirectory(common
|
||||
common/HostNativeThreadBase.cpp
|
||||
common/HostProcess.cpp
|
||||
common/HostThread.cpp
|
||||
common/IOObject.cpp
|
||||
common/LockFileBase.cpp
|
||||
common/MainLoop.cpp
|
||||
common/MonitoringProcessLauncher.cpp
|
||||
|
@ -58,6 +58,7 @@
|
||||
#include "lldb/Host/Predicate.h"
|
||||
#include "lldb/Host/ProcessLauncher.h"
|
||||
#include "lldb/Host/ThreadLauncher.h"
|
||||
#include "lldb/Host/posix/ConnectionFileDescriptorPosix.h"
|
||||
#include "lldb/Target/FileAction.h"
|
||||
#include "lldb/Target/ProcessLaunchInfo.h"
|
||||
#include "lldb/Target/UnixSignals.h"
|
||||
@ -73,6 +74,7 @@
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include "lldb/Host/windows/ConnectionGenericFileWindows.h"
|
||||
#include "lldb/Host/windows/ProcessLauncherWindows.h"
|
||||
#else
|
||||
#include "lldb/Host/posix/ProcessLauncherPosixFork.h"
|
||||
@ -624,6 +626,14 @@ const UnixSignalsSP &Host::GetUnixSignals() {
|
||||
return s_unix_signals_sp;
|
||||
}
|
||||
|
||||
std::unique_ptr<Connection> Host::CreateDefaultConnection(llvm::StringRef url) {
|
||||
#if defined(_WIN32)
|
||||
if (url.startswith("file://"))
|
||||
return std::unique_ptr<Connection>(new ConnectionGenericFile());
|
||||
#endif
|
||||
return std::unique_ptr<Connection>(new ConnectionFileDescriptor());
|
||||
}
|
||||
|
||||
#if defined(LLVM_ON_UNIX)
|
||||
WaitStatus WaitStatus::Decode(int wstatus) {
|
||||
if (WIFEXITED(wstatus))
|
||||
|
@ -16,10 +16,10 @@
|
||||
|
||||
#include "lldb/Host/posix/ConnectionFileDescriptorPosix.h"
|
||||
#include "lldb/Host/Config.h"
|
||||
#include "lldb/Host/IOObject.h"
|
||||
#include "lldb/Host/Socket.h"
|
||||
#include "lldb/Host/SocketAddress.h"
|
||||
#include "lldb/Utility/SelectHelper.h"
|
||||
#include "lldb/Utility/Timeout.h"
|
||||
|
||||
// C Includes
|
||||
#include <errno.h>
|
||||
@ -42,7 +42,6 @@
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
#endif
|
||||
// Project includes
|
||||
#include "lldb/Core/Communication.h"
|
||||
#include "lldb/Core/Timer.h"
|
||||
#include "lldb/Host/Host.h"
|
||||
#include "lldb/Host/Socket.h"
|
||||
|
@ -1,5 +1,6 @@
|
||||
add_lldb_library(lldbUtility
|
||||
Baton.cpp
|
||||
Connection.cpp
|
||||
ConstString.cpp
|
||||
DataBufferHeap.cpp
|
||||
DataBufferLLVM.cpp
|
||||
@ -8,6 +9,7 @@ add_lldb_library(lldbUtility
|
||||
FastDemangle.cpp
|
||||
FileSpec.cpp
|
||||
History.cpp
|
||||
IOObject.cpp
|
||||
JSON.cpp
|
||||
LLDBAssert.cpp
|
||||
Log.cpp
|
||||
|
14
lldb/source/Utility/Connection.cpp
Normal file
14
lldb/source/Utility/Connection.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
//===-- Connection.cpp ------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "lldb/Utility/Connection.h"
|
||||
|
||||
using namespace lldb_private;
|
||||
|
||||
Connection::~Connection() = default;
|
@ -7,8 +7,9 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "lldb/Host/IOObject.h"
|
||||
#include "lldb/Utility/IOObject.h"
|
||||
|
||||
using namespace lldb_private;
|
||||
|
||||
const IOObject::WaitableHandle IOObject::kInvalidHandleValue = -1;
|
||||
IOObject::~IOObject() = default;
|
@ -9,8 +9,8 @@
|
||||
#ifndef lldb_server_Acceptor_h_
|
||||
#define lldb_server_Acceptor_h_
|
||||
|
||||
#include "lldb/Core/Connection.h"
|
||||
#include "lldb/Host/Socket.h"
|
||||
#include "lldb/Utility/Connection.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
|
||||
#include <functional>
|
||||
|
Loading…
x
Reference in New Issue
Block a user