1 // Copyright 2015 The Chromium OS 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 // Internal implementation of brillo::Any class. 6 7 #ifndef LIBBRILLO_BRILLO_UNITTEST_UTILS_H_ 8 #define LIBBRILLO_BRILLO_UNITTEST_UTILS_H_ 9 10 namespace brillo { 11 12 // Helper class to create and close a unidirectional pipe. The file descriptors 13 // will be closed on destruction, unless set to -1. 14 class ScopedPipe { 15 public: 16 // The internal pipe size. 17 static const int kPipeSize; 18 19 ScopedPipe(); 20 ~ScopedPipe(); 21 22 // The reader and writer end of the pipe. 23 int reader{-1}; 24 int writer{-1}; 25 }; 26 27 // Helper class to create and close a bi-directional pair of sockets. The 28 // sockets will be closed on destruction, unless set to -1. 29 class ScopedSocketPair { 30 public: 31 ScopedSocketPair(); 32 ~ScopedSocketPair(); 33 34 // The left and right sockets are bi-directional connected and 35 // indistinguishable file descriptor. We named them left/right for easier 36 // reading. 37 int left{-1}; 38 int right{-1}; 39 }; 40 41 } // namespace brillo 42 43 #endif // LIBBRILLO_BRILLO_UNITTEST_UTILS_H_ 44