12345678910111213141516171819202122232425262728293031323334353637 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef TOOLS_ANDROID_FORWARDER2_PIPE_NOTIFIER_H_
- #define TOOLS_ANDROID_FORWARDER2_PIPE_NOTIFIER_H_
- #include "base/macros.h"
- namespace forwarder2 {
- // Helper class used to create a unix pipe that sends notifications to the
- // |receiver_fd_| file descriptor when called |Notify()|. This should be used
- // by the main thread to notify other threads that it must exit.
- // The |receiver_fd_| can be put into a fd_set and used in a select together
- // with a socket waiting to accept or read.
- class PipeNotifier {
- public:
- PipeNotifier();
- ~PipeNotifier();
- bool Notify();
- int receiver_fd() const { return receiver_fd_; }
- void Reset();
- private:
- int sender_fd_;
- int receiver_fd_;
- DISALLOW_COPY_AND_ASSIGN(PipeNotifier);
- };
- } // namespace forwarder
- #endif // TOOLS_ANDROID_FORWARDER2_PIPE_NOTIFIER_H_
|