X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Finclude%2Fobject.h;fp=src%2Fceph%2Fsrc%2Finclude%2Fobject.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=50aa3fee240ec6a90d66e2a6923bcc95bd8a42f4;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/include/object.h b/src/ceph/src/include/object.h deleted file mode 100644 index 50aa3fe..0000000 --- a/src/ceph/src/include/object.h +++ /dev/null @@ -1,208 +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) 2004-2006 Sage Weil - * - * 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_OBJECT_H -#define CEPH_OBJECT_H - -#include -#include - -#include -#include -using namespace std; - -#include "include/unordered_map.h" - -#include "hash.h" -#include "encoding.h" -#include "ceph_hash.h" -#include "cmp.h" - -struct object_t { - string name; - - object_t() {} - // cppcheck-suppress noExplicitConstructor - object_t(const char *s) : name(s) {} - // cppcheck-suppress noExplicitConstructor - object_t(const string& s) : name(s) {} - - void swap(object_t& o) { - name.swap(o.name); - } - void clear() { - name.clear(); - } - - void encode(bufferlist &bl) const { - ::encode(name, bl); - } - void decode(bufferlist::iterator &bl) { - ::decode(name, bl); - } -}; -WRITE_CLASS_ENCODER(object_t) - -inline bool operator==(const object_t& l, const object_t& r) { - return l.name == r.name; -} -inline bool operator!=(const object_t& l, const object_t& r) { - return l.name != r.name; -} -inline bool operator>(const object_t& l, const object_t& r) { - return l.name > r.name; -} -inline bool operator<(const object_t& l, const object_t& r) { - return l.name < r.name; -} -inline bool operator>=(const object_t& l, const object_t& r) { - return l.name >= r.name; -} -inline bool operator<=(const object_t& l, const object_t& r) { - return l.name <= r.name; -} -inline ostream& operator<<(ostream& out, const object_t& o) { - return out << o.name; -} - -namespace std { - template<> struct hash { - size_t operator()(const object_t& r) const { - //static hash H; - //return H(r.name); - return ceph_str_hash_linux(r.name.c_str(), r.name.length()); - } - }; -} // namespace std - - -struct file_object_t { - uint64_t ino, bno; - mutable char buf[34]; - - file_object_t(uint64_t i=0, uint64_t b=0) : ino(i), bno(b) { - buf[0] = 0; - } - - const char *c_str() const { - if (!buf[0]) - snprintf(buf, sizeof(buf), "%llx.%08llx", (long long unsigned)ino, (long long unsigned)bno); - return buf; - } - - operator object_t() { - return object_t(c_str()); - } -}; - - -// --------------------------- -// snaps - -struct snapid_t { - uint64_t val; - // cppcheck-suppress noExplicitConstructor - snapid_t(uint64_t v=0) : val(v) {} - snapid_t operator+=(snapid_t o) { val += o.val; return *this; } - snapid_t operator++() { ++val; return *this; } - operator uint64_t() const { return val; } -}; - -inline void encode(snapid_t i, bufferlist &bl) { encode(i.val, bl); } -inline void decode(snapid_t &i, bufferlist::iterator &p) { decode(i.val, p); } - -template<> -struct denc_traits { - static constexpr bool supported = true; - static constexpr bool featured = false; - static constexpr bool bounded = true; - static constexpr bool need_contiguous = true; - static void bound_encode(const snapid_t& o, size_t& p) { - denc(o.val, p); - } - static void encode(const snapid_t &o, buffer::list::contiguous_appender& p) { - denc(o.val, p); - } - static void decode(snapid_t& o, buffer::ptr::iterator &p) { - denc(o.val, p); - } -}; - -inline ostream& operator<<(ostream& out, const snapid_t& s) { - if (s == CEPH_NOSNAP) - return out << "head"; - else if (s == CEPH_SNAPDIR) - return out << "snapdir"; - else - return out << hex << s.val << dec; -} - - -struct sobject_t { - object_t oid; - snapid_t snap; - - sobject_t() : snap(0) {} - sobject_t(object_t o, snapid_t s) : oid(o), snap(s) {} - - void swap(sobject_t& o) { - oid.swap(o.oid); - snapid_t t = snap; - snap = o.snap; - o.snap = t; - } - - void encode(bufferlist& bl) const { - ::encode(oid, bl); - ::encode(snap, bl); - } - void decode(bufferlist::iterator& bl) { - ::decode(oid, bl); - ::decode(snap, bl); - } -}; -WRITE_CLASS_ENCODER(sobject_t) - -inline bool operator==(const sobject_t &l, const sobject_t &r) { - return l.oid == r.oid && l.snap == r.snap; -} -inline bool operator!=(const sobject_t &l, const sobject_t &r) { - return l.oid != r.oid || l.snap != r.snap; -} -inline bool operator>(const sobject_t &l, const sobject_t &r) { - return l.oid > r.oid || (l.oid == r.oid && l.snap > r.snap); -} -inline bool operator<(const sobject_t &l, const sobject_t &r) { - return l.oid < r.oid || (l.oid == r.oid && l.snap < r.snap); -} -inline bool operator>=(const sobject_t &l, const sobject_t &r) { - return l.oid > r.oid || (l.oid == r.oid && l.snap >= r.snap); -} -inline bool operator<=(const sobject_t &l, const sobject_t &r) { - return l.oid < r.oid || (l.oid == r.oid && l.snap <= r.snap); -} -inline ostream& operator<<(ostream& out, const sobject_t &o) { - return out << o.oid << "/" << o.snap; -} -namespace std { - template<> struct hash { - size_t operator()(const sobject_t &r) const { - static hash H; - static rjhash I; - return H(r.oid) ^ I(r.snap); - } - }; -} // namespace std - -#endif