Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / messages / MClientQuota.h
1 #ifndef CEPH_MCLIENTQUOTA_H
2 #define CEPH_MCLIENTQUOTA_H
3
4 #include "msg/Message.h"
5
6 struct MClientQuota : public Message {
7   inodeno_t ino;
8   nest_info_t rstat;
9   quota_info_t quota;
10
11   MClientQuota() :
12     Message(CEPH_MSG_CLIENT_QUOTA),
13     ino(0)
14   {
15     memset(&rstat, 0, sizeof(rstat));
16     memset(&quota, 0, sizeof(quota));
17   }
18 private:
19   ~MClientQuota() override {}
20
21 public:
22   const char *get_type_name() const override { return "client_quota"; }
23   void print(ostream& out) const override {
24     out << "client_quota(";
25     out << " [" << ino << "] ";
26     out << rstat;
27     out << ")";
28   }
29
30   void encode_payload(uint64_t features) override {
31     ::encode(ino, payload);
32     ::encode(rstat.rctime, payload);
33     ::encode(rstat.rbytes, payload);
34     ::encode(rstat.rfiles, payload);
35     ::encode(rstat.rsubdirs, payload);
36     ::encode(quota, payload);
37   }
38   void decode_payload() override {
39     bufferlist::iterator p = payload.begin();
40     ::decode(ino, p);
41     ::decode(rstat.rctime, p);
42     ::decode(rstat.rbytes, p);
43     ::decode(rstat.rfiles, p);
44     ::decode(rstat.rsubdirs, p);
45     ::decode(quota, p);
46     assert(p.end());
47   }
48 };
49
50 #endif