diff options
Diffstat (limited to 'include/nativehelper/ScopedFd.h')
| -rw-r--r-- | include/nativehelper/ScopedFd.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/nativehelper/ScopedFd.h b/include/nativehelper/ScopedFd.h index d14e62b..b144aae 100644 --- a/include/nativehelper/ScopedFd.h +++ b/include/nativehelper/ScopedFd.h @@ -23,15 +23,22 @@ // A smart pointer that closes the given fd on going out of scope. // Use this when the fd is incidental to the purpose of your function, // but needs to be cleaned up on exit. -class ScopedFd { +class ScopedFd final { public: explicit ScopedFd(int fd) : fd_(fd) { } + ScopedFd() : ScopedFd(-1) {} ~ScopedFd() { reset(); } + ScopedFd(ScopedFd&& other) : fd_(other.release()) {} + ScopedFd& operator = (ScopedFd&& s) { + reset(s.release()); + return *this; + } + int get() const { return fd_; } |
