diff options
author | Glen Chung <kuchung@microsoft.com> | 2023-05-26 13:33:57 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-05-26 13:36:03 (GMT) |
commit | 3381e6bd5cbfa1694f07c97a19747adda10b06f2 (patch) | |
tree | a99c177695b41b4f6576f74a7a59a7721de96687 /Utilities/cmcppdap/src/socket.h | |
parent | bd58bc7817e9546cb6726a52657f54b1cde59b0c (diff) | |
parent | 1daeefc37856c209718b406dcb86d44519393dd1 (diff) | |
download | CMake-3381e6bd5cbfa1694f07c97a19747adda10b06f2.zip CMake-3381e6bd5cbfa1694f07c97a19747adda10b06f2.tar.gz CMake-3381e6bd5cbfa1694f07c97a19747adda10b06f2.tar.bz2 |
Merge branch 'upstream-cppdap' into import-cppdap
* upstream-cppdap:
cppdap 2023-05-26 (03cc1867)
Diffstat (limited to 'Utilities/cmcppdap/src/socket.h')
-rw-r--r-- | Utilities/cmcppdap/src/socket.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Utilities/cmcppdap/src/socket.h b/Utilities/cmcppdap/src/socket.h new file mode 100644 index 0000000..ec5b0df --- /dev/null +++ b/Utilities/cmcppdap/src/socket.h @@ -0,0 +1,47 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef dap_socket_h +#define dap_socket_h + +#include "dap/io.h" + +#include <atomic> +#include <memory> + +namespace dap { + +class Socket { + public: + class Shared; + + // connect() connects to the given TCP address and port. + // If timeoutMillis is non-zero and no connection was made before + // timeoutMillis milliseconds, then nullptr is returned. + static std::shared_ptr<ReaderWriter> connect(const char* address, + const char* port, + uint32_t timeoutMillis); + + Socket(const char* address, const char* port); + bool isOpen() const; + std::shared_ptr<ReaderWriter> accept() const; + void close() const; + + private: + std::shared_ptr<Shared> shared; +}; + +} // namespace dap + +#endif // dap_socket_h |