X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Finclude%2Falloc_ptr.h;fp=src%2Fceph%2Fsrc%2Finclude%2Falloc_ptr.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=258c5833845a81b08d5848e4777c861883e14e92;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/include/alloc_ptr.h b/src/ceph/src/include/alloc_ptr.h deleted file mode 100644 index 258c583..0000000 --- a/src/ceph/src/include/alloc_ptr.h +++ /dev/null @@ -1,91 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2017 Red Hat, Inc. - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#ifndef CEPH_ALLOC_PTR_H -#define CEPH_ALLOC_PTR_H - -#include - -template -class alloc_ptr -{ -public: - typedef typename std::pointer_traits< std::unique_ptr >::pointer pointer; - typedef typename std::pointer_traits< std::unique_ptr >::element_type element_type; - - alloc_ptr() : ptr() {} - - template - alloc_ptr(U&& u) : ptr(std::forward(u)) {} - - alloc_ptr(alloc_ptr&& rhs) : ptr(std::move(rhs.ptr)) {} - alloc_ptr(const alloc_ptr& rhs) = delete; - alloc_ptr& operator=(const alloc_ptr&& rhs) { - ptr = rhs.ptr; - } - alloc_ptr& operator=(const alloc_ptr& rhs) { - ptr = rhs.ptr; - } - - void swap (alloc_ptr& rhs) { - ptr.swap(rhs.ptr); - } - element_type* release() { - return ptr.release(); - } - void reset(element_type *p = nullptr) { - ptr.reset(p); - } - element_type* get() const { - if (!ptr) - ptr.reset(new element_type); - return ptr.get(); - } - element_type& operator*() const { - if (!ptr) - ptr.reset(new element_type); - return *ptr; - } - element_type* operator->() const { - if (!ptr) - ptr.reset(new element_type); - return ptr.get(); - } - operator bool() const { - return !!ptr; - } - - friend bool operator< (const alloc_ptr& lhs, const alloc_ptr& rhs) { - return std::less(*lhs, *rhs); - } - friend bool operator<=(const alloc_ptr& lhs, const alloc_ptr& rhs) { - return std::less_equal(*lhs, *rhs); - } - friend bool operator> (const alloc_ptr& lhs, const alloc_ptr& rhs) { - return std::greater(*lhs, *rhs); - } - friend bool operator>=(const alloc_ptr& lhs, const alloc_ptr& rhs) { - return std::greater_equal(*lhs, *rhs); - } - friend bool operator==(const alloc_ptr& lhs, const alloc_ptr& rhs) { - return *lhs == *rhs; - } - friend bool operator!=(const alloc_ptr& lhs, const alloc_ptr& rhs) { - return *lhs != *rhs; - } -private: - mutable std::unique_ptr ptr; -}; - -#endif