// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_SYNC_SOCKET_H_ #define BASE_SYNC_SOCKET_H_ // A socket abstraction used for sending and receiving plain // data. Because the receiving is blocking, they can be used to perform // rudimentary cross-process synchronization with low latency. #include <stddef.h> #include "base/base_export.h" #include "base/containers/span.h" #include "base/files/platform_file.h" #include "base/synchronization/waitable_event.h" #include "base/time/time.h" #include "build/build_config.h" #if BUILDFLAG(IS_WIN) #include <windows.h> #endif #include <sys/types.h> namespace base { class BASE_EXPORT SyncSocket { … }; // Derives from SyncSocket and adds support for shutting down the socket from // another thread while a blocking Receive or Send is being done from the // thread that owns the socket. class BASE_EXPORT CancelableSyncSocket : public SyncSocket { … }; } // namespace base #endif // BASE_SYNC_SOCKET_H_