X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Flibrados%2FIoCtxImpl.h;fp=src%2Fceph%2Fsrc%2Flibrados%2FIoCtxImpl.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=b769fcd178cb821c9e1b5fe5aa985cfb7b9dbfdb;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/librados/IoCtxImpl.h b/src/ceph/src/librados/IoCtxImpl.h deleted file mode 100644 index b769fcd..0000000 --- a/src/ceph/src/librados/IoCtxImpl.h +++ /dev/null @@ -1,302 +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-2012 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_LIBRADOS_IOCTXIMPL_H -#define CEPH_LIBRADOS_IOCTXIMPL_H - -#include - -#include "common/Cond.h" -#include "common/Mutex.h" -#include "common/snap_types.h" -#include "common/zipkin_trace.h" -#include "include/types.h" -#include "include/rados/librados.h" -#include "include/rados/librados.hpp" -#include "include/xlist.h" -#include "osd/osd_types.h" -#include "osdc/Objecter.h" - -class RadosClient; - -struct librados::IoCtxImpl { - std::atomic ref_cnt = { 0 }; - RadosClient *client; - int64_t poolid; - snapid_t snap_seq; - ::SnapContext snapc; - uint64_t assert_ver; - version_t last_objver; - uint32_t notify_timeout; - object_locator_t oloc; - - Mutex aio_write_list_lock; - ceph_tid_t aio_write_seq; - Cond aio_write_cond; - xlist aio_write_list; - map > aio_write_waiters; - - Objecter *objecter; - - IoCtxImpl(); - IoCtxImpl(RadosClient *c, Objecter *objecter, - int64_t poolid, snapid_t s); - - void dup(const IoCtxImpl& rhs) { - // Copy everything except the ref count - client = rhs.client; - poolid = rhs.poolid; - snap_seq = rhs.snap_seq; - snapc = rhs.snapc; - assert_ver = rhs.assert_ver; - last_objver = rhs.last_objver; - notify_timeout = rhs.notify_timeout; - oloc = rhs.oloc; - objecter = rhs.objecter; - } - - void set_snap_read(snapid_t s); - int set_snap_write_context(snapid_t seq, vector& snaps); - - void get() { - ref_cnt++; - } - - void put() { - if (--ref_cnt == 0) - delete this; - } - - void queue_aio_write(struct AioCompletionImpl *c); - void complete_aio_write(struct AioCompletionImpl *c); - void flush_aio_writes_async(AioCompletionImpl *c); - void flush_aio_writes(); - - int64_t get_id() { - return poolid; - } - - string get_cached_pool_name(); - - int get_object_hash_position(const std::string& oid, uint32_t *hash_position); - int get_object_pg_hash_position(const std::string& oid, uint32_t *pg_hash_position); - - ::ObjectOperation *prepare_assert_ops(::ObjectOperation *op); - - // snaps - int snap_list(vector *snaps); - int snap_lookup(const char *name, uint64_t *snapid); - int snap_get_name(uint64_t snapid, std::string *s); - int snap_get_stamp(uint64_t snapid, time_t *t); - int snap_create(const char* snapname); - int selfmanaged_snap_create(uint64_t *snapid); - void aio_selfmanaged_snap_create(uint64_t *snapid, AioCompletionImpl *c); - int snap_remove(const char* snapname); - int rollback(const object_t& oid, const char *snapName); - int selfmanaged_snap_remove(uint64_t snapid); - void aio_selfmanaged_snap_remove(uint64_t snapid, AioCompletionImpl *c); - int selfmanaged_snap_rollback_object(const object_t& oid, - ::SnapContext& snapc, uint64_t snapid); - - // io - int nlist(Objecter::NListContext *context, int max_entries); - uint32_t nlist_seek(Objecter::NListContext *context, uint32_t pos); - uint32_t nlist_seek(Objecter::NListContext *context, const rados_object_list_cursor& cursor); - rados_object_list_cursor nlist_get_cursor(Objecter::NListContext *context); - void object_list_slice( - const hobject_t start, - const hobject_t finish, - const size_t n, - const size_t m, - hobject_t *split_start, - hobject_t *split_finish); - - int create(const object_t& oid, bool exclusive); - int write(const object_t& oid, bufferlist& bl, size_t len, uint64_t off); - int append(const object_t& oid, bufferlist& bl, size_t len); - int write_full(const object_t& oid, bufferlist& bl); - int writesame(const object_t& oid, bufferlist& bl, - size_t write_len, uint64_t offset); - int read(const object_t& oid, bufferlist& bl, size_t len, uint64_t off); - int mapext(const object_t& oid, uint64_t off, size_t len, - std::map& m); - int sparse_read(const object_t& oid, std::map& m, - bufferlist& bl, size_t len, uint64_t off); - int checksum(const object_t& oid, uint8_t type, const bufferlist &init_value, - size_t len, uint64_t off, size_t chunk_size, bufferlist *pbl); - int remove(const object_t& oid); - int remove(const object_t& oid, int flags); - int stat(const object_t& oid, uint64_t *psize, time_t *pmtime); - int stat2(const object_t& oid, uint64_t *psize, struct timespec *pts); - int trunc(const object_t& oid, uint64_t size); - int cmpext(const object_t& oid, uint64_t off, bufferlist& cmp_bl); - - int tmap_update(const object_t& oid, bufferlist& cmdbl); - int tmap_put(const object_t& oid, bufferlist& bl); - int tmap_get(const object_t& oid, bufferlist& bl); - int tmap_to_omap(const object_t& oid, bool nullok=false); - - int exec(const object_t& oid, const char *cls, const char *method, bufferlist& inbl, bufferlist& outbl); - - int getxattr(const object_t& oid, const char *name, bufferlist& bl); - int setxattr(const object_t& oid, const char *name, bufferlist& bl); - int getxattrs(const object_t& oid, map& attrset); - int rmxattr(const object_t& oid, const char *name); - - int operate(const object_t& oid, ::ObjectOperation *o, ceph::real_time *pmtime, int flags=0); - int operate_read(const object_t& oid, ::ObjectOperation *o, bufferlist *pbl, int flags=0); - int aio_operate(const object_t& oid, ::ObjectOperation *o, - AioCompletionImpl *c, const SnapContext& snap_context, - int flags, const blkin_trace_info *trace_info = nullptr); - int aio_operate_read(const object_t& oid, ::ObjectOperation *o, - AioCompletionImpl *c, int flags, bufferlist *pbl, const blkin_trace_info *trace_info = nullptr); - - struct C_aio_stat_Ack : public Context { - librados::AioCompletionImpl *c; - time_t *pmtime; - ceph::real_time mtime; - C_aio_stat_Ack(AioCompletionImpl *_c, time_t *pm); - void finish(int r) override; - }; - - struct C_aio_stat2_Ack : public Context { - librados::AioCompletionImpl *c; - struct timespec *pts; - ceph::real_time mtime; - C_aio_stat2_Ack(AioCompletionImpl *_c, struct timespec *pts); - void finish(int r) override; - }; - - struct C_aio_Complete : public Context { -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) - object_t oid; -#endif - AioCompletionImpl *c; - explicit C_aio_Complete(AioCompletionImpl *_c); - void finish(int r) override; - }; - - int aio_read(const object_t oid, AioCompletionImpl *c, - bufferlist *pbl, size_t len, uint64_t off, uint64_t snapid, - const blkin_trace_info *info = nullptr); - int aio_read(object_t oid, AioCompletionImpl *c, - char *buf, size_t len, uint64_t off, uint64_t snapid, - const blkin_trace_info *info = nullptr); - int aio_sparse_read(const object_t oid, AioCompletionImpl *c, - std::map *m, bufferlist *data_bl, - size_t len, uint64_t off, uint64_t snapid); - int aio_cmpext(const object_t& oid, AioCompletionImpl *c, uint64_t off, - bufferlist& cmp_bl); - int aio_cmpext(const object_t& oid, AioCompletionImpl *c, - const char *cmp_buf, size_t cmp_len, uint64_t off); - int aio_write(const object_t &oid, AioCompletionImpl *c, - const bufferlist& bl, size_t len, uint64_t off, - const blkin_trace_info *info = nullptr); - int aio_append(const object_t &oid, AioCompletionImpl *c, - const bufferlist& bl, size_t len); - int aio_write_full(const object_t &oid, AioCompletionImpl *c, - const bufferlist& bl); - int aio_writesame(const object_t &oid, AioCompletionImpl *c, - const bufferlist& bl, size_t write_len, uint64_t off); - int aio_remove(const object_t &oid, AioCompletionImpl *c, int flags=0); - int aio_exec(const object_t& oid, AioCompletionImpl *c, const char *cls, - const char *method, bufferlist& inbl, bufferlist *outbl); - int aio_exec(const object_t& oid, AioCompletionImpl *c, const char *cls, - const char *method, bufferlist& inbl, char *buf, size_t out_len); - int aio_stat(const object_t& oid, AioCompletionImpl *c, uint64_t *psize, time_t *pmtime); - int aio_stat2(const object_t& oid, AioCompletionImpl *c, uint64_t *psize, struct timespec *pts); - int aio_getxattr(const object_t& oid, AioCompletionImpl *c, - const char *name, bufferlist& bl); - int aio_setxattr(const object_t& oid, AioCompletionImpl *c, - const char *name, bufferlist& bl); - int aio_getxattrs(const object_t& oid, AioCompletionImpl *c, - map& attrset); - int aio_rmxattr(const object_t& oid, AioCompletionImpl *c, - const char *name); - int aio_cancel(AioCompletionImpl *c); - - int pool_change_auid(unsigned long long auid); - int pool_change_auid_async(unsigned long long auid, PoolAsyncCompletionImpl *c); - - int hit_set_list(uint32_t hash, AioCompletionImpl *c, - std::list< std::pair > *pls); - int hit_set_get(uint32_t hash, AioCompletionImpl *c, time_t stamp, - bufferlist *pbl); - - int get_inconsistent_objects(const pg_t& pg, - const librados::object_id_t& start_after, - uint64_t max_to_get, - AioCompletionImpl *c, - std::vector* objects, - uint32_t* interval); - - int get_inconsistent_snapsets(const pg_t& pg, - const librados::object_id_t& start_after, - uint64_t max_to_get, - AioCompletionImpl *c, - std::vector* snapsets, - uint32_t* interval); - - void set_sync_op_version(version_t ver); - int watch(const object_t& oid, uint64_t *cookie, librados::WatchCtx *ctx, - librados::WatchCtx2 *ctx2, bool internal = false); - int watch(const object_t& oid, uint64_t *cookie, librados::WatchCtx *ctx, - librados::WatchCtx2 *ctx2, uint32_t timeout, bool internal = false); - int aio_watch(const object_t& oid, AioCompletionImpl *c, uint64_t *cookie, - librados::WatchCtx *ctx, librados::WatchCtx2 *ctx2, - bool internal = false); - int aio_watch(const object_t& oid, AioCompletionImpl *c, uint64_t *cookie, - librados::WatchCtx *ctx, librados::WatchCtx2 *ctx2, - uint32_t timeout, bool internal = false); - int watch_check(uint64_t cookie); - int unwatch(uint64_t cookie); - int aio_unwatch(uint64_t cookie, AioCompletionImpl *c); - int notify(const object_t& oid, bufferlist& bl, uint64_t timeout_ms, - bufferlist *preplybl, char **preply_buf, size_t *preply_buf_len); - int notify_ack(const object_t& oid, uint64_t notify_id, uint64_t cookie, - bufferlist& bl); - int aio_notify(const object_t& oid, AioCompletionImpl *c, bufferlist& bl, - uint64_t timeout_ms, bufferlist *preplybl, char **preply_buf, - size_t *preply_buf_len); - - int set_alloc_hint(const object_t& oid, - uint64_t expected_object_size, - uint64_t expected_write_size, - uint32_t flags); - - version_t last_version(); - void set_assert_version(uint64_t ver); - void set_notify_timeout(uint32_t timeout); - - int cache_pin(const object_t& oid); - int cache_unpin(const object_t& oid); - - int application_enable(const std::string& app_name, bool force); - void application_enable_async(const std::string& app_name, bool force, - PoolAsyncCompletionImpl *c); - int application_list(std::set *app_names); - int application_metadata_get(const std::string& app_name, - const std::string &key, - std::string* value); - int application_metadata_set(const std::string& app_name, - const std::string &key, - const std::string& value); - int application_metadata_remove(const std::string& app_name, - const std::string &key); - int application_metadata_list(const std::string& app_name, - std::map *values); - -}; - -#endif