| Index: base/mac/scoped_cffiledescriptorref.h
|
| diff --git a/base/mac/scoped_cffiledescriptorref.h b/base/mac/scoped_cffiledescriptorref.h
|
| index 00b2f682c7b222d748114bed24402dc2b3005a17..923a159c768652c06b7ff01e3d608582ae517f30 100644
|
| --- a/base/mac/scoped_cffiledescriptorref.h
|
| +++ b/base/mac/scoped_cffiledescriptorref.h
|
| @@ -7,67 +7,31 @@
|
|
|
| #include <CoreFoundation/CoreFoundation.h>
|
|
|
| -#include "base/compiler_specific.h"
|
| -#include "base/macros.h"
|
| +#include "base/scoped_generic.h"
|
|
|
| namespace base {
|
| namespace mac {
|
|
|
| +namespace internal {
|
| +
|
| +struct ScopedCFFileDescriptorRefTraits {
|
| + static CFFileDescriptorRef InvalidValue() { return nullptr; }
|
| + static void Free(CFFileDescriptorRef ref) {
|
| + CFFileDescriptorInvalidate(ref);
|
| + CFRelease(ref);
|
| + }
|
| +};
|
| +
|
| +} // namespace internal
|
| +
|
| // ScopedCFFileDescriptorRef is designed after ScopedCFTypeRef<>. On
|
| // destruction, it will invalidate the file descriptor.
|
| // ScopedCFFileDescriptorRef (unlike ScopedCFTypeRef<>) does not support RETAIN
|
| // semantics, copying, or assignment, as doing so would increase the chances
|
| // that a file descriptor is invalidated while still in use.
|
| -class ScopedCFFileDescriptorRef {
|
| - public:
|
| - explicit ScopedCFFileDescriptorRef(CFFileDescriptorRef fdref = NULL)
|
| - : fdref_(fdref) {
|
| - }
|
| -
|
| - ~ScopedCFFileDescriptorRef() {
|
| - if (fdref_) {
|
| - CFFileDescriptorInvalidate(fdref_);
|
| - CFRelease(fdref_);
|
| - }
|
| - }
|
| -
|
| - void reset(CFFileDescriptorRef fdref = NULL) {
|
| - if (fdref_ == fdref)
|
| - return;
|
| - if (fdref_) {
|
| - CFFileDescriptorInvalidate(fdref_);
|
| - CFRelease(fdref_);
|
| - }
|
| - fdref_ = fdref;
|
| - }
|
| -
|
| - bool operator==(CFFileDescriptorRef that) const {
|
| - return fdref_ == that;
|
| - }
|
| -
|
| - bool operator!=(CFFileDescriptorRef that) const {
|
| - return fdref_ != that;
|
| - }
|
| -
|
| - operator CFFileDescriptorRef() const {
|
| - return fdref_;
|
| - }
|
| -
|
| - CFFileDescriptorRef get() const {
|
| - return fdref_;
|
| - }
|
| -
|
| - CFFileDescriptorRef release() WARN_UNUSED_RESULT {
|
| - CFFileDescriptorRef temp = fdref_;
|
| - fdref_ = NULL;
|
| - return temp;
|
| - }
|
| -
|
| - private:
|
| - CFFileDescriptorRef fdref_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedCFFileDescriptorRef);
|
| -};
|
| +using ScopedCFFileDescriptorRef =
|
| + ScopedGeneric<CFFileDescriptorRef,
|
| + internal::ScopedCFFileDescriptorRefTraits>;
|
|
|
| } // namespace mac
|
| } // namespace base
|
|
|