~ubuntu-branches/ubuntu/quantal/ceph/quantal

« back to all changes in this revision

Viewing changes to src/librbd/cls_rbd_client.h

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2012-07-16 09:56:24 UTC
  • mfrom: (0.3.11)
  • mto: This revision was merged to the branch mainline in revision 17.
  • Revision ID: package-import@ubuntu.com-20120716095624-azr2w4hbhei1rxmx
Tags: upstream-0.48
ImportĀ upstreamĀ versionĀ 0.48

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
 
2
// vim: ts=8 sw=2 smarttab
 
3
 
 
4
#ifndef CEPH_LIBRBD_CLS_RBD_CLIENT_H
 
5
#define CEPH_LIBRBD_CLS_RBD_CLIENT_H
 
6
 
 
7
#include "common/snap_types.h"
 
8
#include "include/rados.h"
 
9
#include "include/rados/librados.hpp"
 
10
#include "include/types.h"
 
11
 
 
12
#include <string>
 
13
#include <vector>
 
14
 
 
15
namespace librbd {
 
16
  namespace cls_client {
 
17
 
 
18
    // high-level interface to the header
 
19
    int get_immutable_metadata(librados::IoCtx *ioctx, const std::string &oid,
 
20
                               std::string *object_prefix, uint8_t *order);
 
21
    int get_mutable_metadata(librados::IoCtx *ioctx, const std::string &oid,
 
22
                             uint64_t *size, uint64_t *features,
 
23
                             uint64_t *incompatible_features,
 
24
                             ::SnapContext *snapc);
 
25
 
 
26
    // low-level interface (mainly for testing)
 
27
    int create_image(librados::IoCtx *ioctx, const std::string &oid,
 
28
                     uint64_t size, uint8_t order, uint64_t features,
 
29
                     const std::string &object_prefix);
 
30
    int get_features(librados::IoCtx *ioctx, const std::string &oid,
 
31
                     uint64_t snap_id, uint64_t *features);
 
32
    int get_object_prefix(librados::IoCtx *ioctx, const std::string &oid,
 
33
                          std::string *object_prefix);
 
34
    int get_size(librados::IoCtx *ioctx, const std::string &oid,
 
35
                 uint64_t snap_id, uint64_t *size, uint8_t *order);
 
36
    int set_size(librados::IoCtx *ioctx, const std::string &oid,
 
37
                 uint64_t size);
 
38
    int snapshot_add(librados::IoCtx *ioctx, const std::string &oid,
 
39
                     uint64_t snap_id, const std::string &snap_name);
 
40
    int snapshot_remove(librados::IoCtx *ioctx, const std::string &oid,
 
41
                        uint64_t snap_id);
 
42
    int get_snapcontext(librados::IoCtx *ioctx, const std::string &oid,
 
43
                        ::SnapContext *snapc);
 
44
    int snapshot_list(librados::IoCtx *ioctx, const std::string &oid,
 
45
                      const std::vector<snapid_t> &ids,
 
46
                      std::vector<string> *names,
 
47
                      std::vector<uint64_t> *sizes,
 
48
                      std::vector<uint64_t> *features);
 
49
    int assign_bid(librados::IoCtx *ioctx, const std::string &oid,
 
50
                   uint64_t *id);
 
51
 
 
52
 
 
53
    // class operations on the old format, kept for
 
54
    // backwards compatability
 
55
    int old_snapshot_add(librados::IoCtx *ioctx, const std::string &oid,
 
56
                         uint64_t snap_id, const std::string &snap_name);
 
57
    int old_snapshot_remove(librados::IoCtx *ioctx, const std::string &oid,
 
58
                            const std::string &snap_name);
 
59
    int old_snapshot_list(librados::IoCtx *ioctx, const std::string &oid,
 
60
                          std::vector<string> *names,
 
61
                          std::vector<uint64_t> *sizes,
 
62
                          ::SnapContext *snapc);
 
63
  } // namespace cls_client
 
64
} // namespace librbd
 
65
#endif // CEPH_LIBRBD_CLS_RBD_CLIENT_H