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