1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_CHANNEL_H_ 6 #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_CHANNEL_H_ 7 8 #include "base/files/scoped_file.h" 9 #include "base/macros.h" 10 11 namespace sandbox { 12 13 namespace syscall_broker { 14 15 // A small class to create a pipe-like communication channel. It is based on a 16 // SOCK_SEQPACKET unix socket, which is connection-based and guaranteed to 17 // preserve message boundaries. 18 class BrokerChannel { 19 public: 20 typedef base::ScopedFD EndPoint; 21 static void CreatePair(EndPoint* reader, EndPoint* writer); 22 23 private: 24 DISALLOW_IMPLICIT_CONSTRUCTORS(BrokerChannel); 25 }; 26 27 } // namespace syscall_broker 28 29 } // namespace sandbox 30 31 #endif // SANDBOX_LINUX_SYSCALL_BROKER_BROKER_CHANNEL_H_ 32