38 size_t decode_remain = m_event->payload_len;
39 const uint8_t *decode_ptr = m_event->payload;
42 const char *name =
decode_vstr(&decode_ptr, &decode_remain);
43 bool create_intermediate =
decode_bool(&decode_ptr, &decode_remain);
46 std::vector<Attribute> init_attrs;
47 uint32_t attr_count =
decode_i32(&decode_ptr, &decode_remain);
48 init_attrs.reserve(attr_count);
50 while (attr_count--) {
53 init_attrs.push_back(attr);
56 if (create_intermediate)
57 m_master->mkdirs(&cb, m_session_id, name, init_attrs);
59 m_master->mkdir(&cb, m_session_id, name, init_attrs);
63 cb.
error(e.
code(),
"Encoding problem with MKDIR message");
char * decode_vstr(const uint8_t **bufp, size_t *remainp)
Decode a vstr (vint64, data, null).
uint32_t decode_i32(const uint8_t **bufp, size_t *remainp)
Decode a 32-bit integer in little-endian order.
bool decode_bool(const uint8_t **bufp, size_t *remainp)
Decodes a boolean value from the given buffer.
const char * name
Name of extended attribute.
virtual void run()
Carries out the request.
Logging routines and macros.
Compatibility Macros for C/C++.
Functions to serialize/deserialize primitives to/from a memory buffer.
This class is used to generate and deliver standard responses back to a client.
virtual int error(int error, const String &msg)
Sends a standard error response back to the client.
const void * value
Pointer to attribute value.
This is a generic exception class for Hypertable.
Holds extended attribute and value.
Declarations for ResponseCallback.
Error codes, Exception handling, error logging.
uint32_t value_len
Length of attribute value.
int code() const
Returns the error code.