| // Copyright 2015 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Internal implementation of brillo::Any class. |
| |
| #ifndef LIBBRILLO_BRILLO_UNITTEST_UTILS_H_ |
| #define LIBBRILLO_BRILLO_UNITTEST_UTILS_H_ |
| |
| namespace brillo { |
| |
| // Helper class to create and close a unidirectional pipe. The file descriptors |
| // will be closed on destruction, unless set to -1. |
| class ScopedPipe { |
| public: |
| // The internal pipe size. |
| static const int kPipeSize; |
| |
| ScopedPipe(); |
| ~ScopedPipe(); |
| |
| // The reader and writer end of the pipe. |
| int reader{-1}; |
| int writer{-1}; |
| }; |
| |
| // Helper class to create and close a bi-directional pair of sockets. The |
| // sockets will be closed on destruction, unless set to -1. |
| class ScopedSocketPair { |
| public: |
| ScopedSocketPair(); |
| ~ScopedSocketPair(); |
| |
| // The left and right sockets are bi-directional connected and |
| // indistinguishable file descriptor. We named them left/right for easier |
| // reading. |
| int left{-1}; |
| int right{-1}; |
| }; |
| |
| } // namespace brillo |
| |
| #endif // LIBBRILLO_BRILLO_UNITTEST_UTILS_H_ |