// 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_