1 // Copyright 2016 The Fuchsia 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 LIB_ZX_EVENTPAIR_H_
6 #define LIB_ZX_EVENTPAIR_H_
7 
8 #include <lib/zx/handle.h>
9 #include <lib/zx/object.h>
10 
11 namespace zx {
12 
13 class eventpair : public object<eventpair> {
14 public:
15     static constexpr zx_obj_type_t TYPE = ZX_OBJ_TYPE_EVENTPAIR;
16 
17     constexpr eventpair() = default;
18 
eventpair(zx_handle_t value)19     explicit eventpair(zx_handle_t value) : object(value) {}
20 
eventpair(handle && h)21     explicit eventpair(handle&& h) : object(h.release()) {}
22 
eventpair(eventpair && other)23     eventpair(eventpair&& other) : object(other.release()) {}
24 
25     eventpair& operator=(eventpair&& other) {
26         reset(other.release());
27         return *this;
28     }
29 
30     static zx_status_t create(uint32_t options, eventpair* endpoint0,
31                               eventpair* endpoint1);
32 };
33 
34 using unowned_eventpair = unowned<eventpair>;
35 
36 } // namespace zx
37 
38 #endif  // LIB_ZX_EVENTPAIR_H_
39