Logo Search packages:      
Sourcecode: ceph version File versions  Download package

MDiscoverReply Class Reference

#include <MDiscoverReply.h>

Inheritance diagram for MDiscoverReply:

List of all members.


Detailed Description

MDiscoverReply - return new replicas (of inodes, dirs, dentries)

we group returned items by (dir, dentry, inode). each item in each set shares an index (it's "depth").

we can start and end with any type. no_base_dir = true if the first group has an inode but no dir no_base_dentry = true if the first group has an inode but no dentry they are false if there is no returned data, ie the first group is empty.

we also return errors: error_flag_dn(string) - the specified dentry dne error_flag_dir - the last item wasn't a dir, so we couldn't continue.

and sometimes, dir_auth_hint - where we think the dir auth is

depth() gives us the number of depth units/indices for which we have information. this INCLUDES those for which we have errors but no data.

see MDCache::handle_discover, handle_discover_reply.

so basically, we get

dir den ino i x 0 x x x 1 or x x 0 x x x 1 or x x x 0 x x x 1 ...and trail off however we want.

Definition at line 69 of file MDiscoverReply.h.


Public Types

enum  { DIR, DENTRY, INODE }

Public Member Functions

void calc_data_crc ()
void calc_front_crc ()
void calc_header_crc ()
void claim_data (bufferlist &bl)
void clear_data ()
void clear_payload ()
virtual void decode_payload ()
bool empty_payload ()
void encode ()
void encode_payload ()
Message * get ()
frag_t get_base_dir_frag ()
inodeno_t get_base_ino ()
Connection * get_connection ()
bufferlist & get_data ()
off_t get_data_len ()
int get_dir_auth_hint ()
uint64_t get_dispatch_throttle_size ()
string & get_error_dentry ()
ceph_msg_footer & get_footer ()
ceph_msg_header & get_header ()
bufferlist & get_middle ()
entity_name_t get_orig_source ()
entity_addr_t get_orig_source_addr ()
entity_inst_t get_orig_source_inst ()
bufferlist & get_payload ()
unsigned get_priority ()
utime_t get_recv_stamp ()
unsigned get_seq ()
entity_name_t get_source ()
entity_addr_t get_source_addr ()
entity_inst_t get_source_inst ()
int get_starts_with ()
Throttle * get_throttler ()
uint64_t get_tid ()
int get_type ()
const char * get_type_name ()
bool get_wanted_base_dir ()
inodeno_t get_wanted_ino ()
snapid_t get_wanted_snapid ()
bool get_wanted_xlocked ()
bool is_empty ()
bool is_flag_error_dir ()
bool is_flag_error_dn ()
bool is_flag_error_ino ()
bool is_unsolicited ()
void mark_unsolicited ()
 MDiscoverReply (dirfrag_t df)
 MDiscoverReply (MDiscover *dis)
void print (ostream &out)
void put ()
void set_connection (Connection *c)
void set_data (const bufferlist &d)
void set_dir_auth_hint (int a)
void set_dispatch_throttle_size (uint64_t s)
void set_error_dentry (const string &dn)
void set_flag_error_dir ()
void set_flag_error_dn (const string &dn)
void set_flag_error_ino ()
void set_footer (const ceph_msg_footer &e)
void set_header (const ceph_msg_header &e)
void set_middle (bufferlist &bl)
void set_payload (bufferlist &bl)
void set_priority (__s16 p)
void set_recv_stamp (utime_t t)
void set_seq (unsigned s)
void set_throttler (Throttle *t)
void set_tid (uint64_t t)
void set_type (int t)

Public Attributes

atomic_t nref
__u8 starts_with
bufferlist trace

Protected Attributes

Connection * connection
bufferlist data
uint64_t dispatch_throttle_size
ceph_msg_footer footer
ceph_msg_header header
bufferlist middle
bufferlist payload
utime_t recv_stamp
Throttle * throttler

Private Attributes

frag_t base_dir_frag
inodeno_t base_ino
__s32 dir_auth_hint
string error_dentry
bool flag_error_dir
bool flag_error_dn
bool flag_error_ino
bool unsolicited
bool wanted_base_dir
inodeno_t wanted_ino
snapid_t wanted_snapid
bool wanted_xlocked

Friends

class Messenger

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index