//===-- Communication.h -----------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_CORE_COMMUNICATION_H #define LLDB_CORE_COMMUNICATION_H #include "lldb/Utility/Timeout.h" #include "lldb/lldb-defines.h" #include "lldb/lldb-enumerations.h" #include "lldb/lldb-forward.h" #include "lldb/lldb-types.h" #include <mutex> #include <string> namespace lldb_private { class Connection; class ConstString; class Status; /// \class Communication Communication.h "lldb/Core/Communication.h" An /// abstract communications class. /// /// Communication is an class that handles data communication between two data /// sources. It uses a Connection class to do the real communication. This /// approach has a couple of advantages: it allows a single instance of this /// class to be used even though its connection can change. Connections could /// negotiate for different connections based on abilities like starting with /// Bluetooth and negotiating up to WiFi if available. /// /// When using this class, all reads and writes happen synchronously on the /// calling thread. There is also a ThreadedCommunication class that supports /// multi-threaded mode. class Communication { … }; } // namespace lldb_private #endif // LLDB_CORE_COMMUNICATION_H