39 size_t decode_remain = m_event->payload_len;
40 const uint8_t *decode_ptr = m_event->payload;
42 std::vector<Attribute> attrs;
50 cb.
error(e.
code(),
"Error handling Hyperspace open");
54 if (version != Protocol::Version) {
56 "Hyperspace client/server version mismatch");
61 uint32_t flags =
decode_i32(&decode_ptr, &decode_remain);
62 uint32_t event_mask =
decode_i32(&decode_ptr, &decode_remain);
63 const char *name =
decode_vstr(&decode_ptr, &decode_remain);
64 uint32_t attr_count =
decode_i32(&decode_ptr, &decode_remain);
66 while (attr_count--) {
69 attrs.push_back(attr);
71 m_master->open(&cb, m_session_id, name, flags, event_mask, attrs);
79 cb.
error(e.
code(),
"Error handling Hyperspace open");
char * decode_vstr(const uint8_t **bufp, size_t *remainp)
Decode a vstr (vint64, data, null).
Declarations for Protocol.
uint32_t decode_i32(const uint8_t **bufp, size_t *remainp)
Decode a 32-bit integer in little-endian order.
const char * name
Name of extended attribute.
Logging routines and macros.
Compatibility Macros for C/C++.
Functions to serialize/deserialize primitives to/from a memory buffer.
virtual void run()
Carries out the request.
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.