index 7aae68dde622a0ebe7835c796a46c216838b7de8..833762d76a3644a9237c19ccb9c29f9a26e36f51 100644 (file)
*/
SDB_CONNECTION_TIMESERIES,
+ /*
+ * SDB_CONNECTION_STORE:
+ * Execute the 'STORE' command in the server. The message body shall
+ * include the type of the object to be stored, the timestamp of the last
+ * update, and a list of fields describing the object depending on the
+ * object type. Object types are encoded as 32bit integers in network
+ * byte-order where attribute types are bitwise ORed with the appropriate
+ * parent object type. Timestamps are encoded as 64bit integers in network
+ * byte-order. Fields are null-terminated strings.
+ *
+ * 0 32 64
+ * +---------------+---------------+
+ * | STORE | length |
+ * +---------------+---------------+
+ * | object type | last_update.. |
+ * +---------------+---------------+
+ * | ... | fields |
+ * +---------------+ |
+ * | ... |
+ *
+ * Fields:
+ *
+ * HOST: name
+ * SERVICE: hostname, name
+ * METRIC: hostname, name, [store type, store id]
+ * ATTRIBUTE: [hostname], parent object name, key, <value>
+ *
+ * Values are encoded as their type (32bit integer in network byte-order),
+ * and their content as implemented by sdb_proto_marshal_data.
+ */
+ SDB_CONNECTION_STORE = 50,
+
+ /* Only used internally: */
+ SDB_CONNECTION_STORE_HOST,
+ SDB_CONNECTION_STORE_SERVICE,
+ SDB_CONNECTION_STORE_METRIC,
+ SDB_CONNECTION_STORE_ATTRIBUTE,
+
/*
* Command subcomponents.
*/
SDB_CONNECTION_EXPR,
} sdb_conn_state_t;
+#define SDB_CONN_MSGTYPE_TO_STRING(t) \
+ (((t) == SDB_CONNECTION_IDLE) ? "IDLE" \
+ : ((t) == SDB_CONNECTION_PING) ? "PING" \
+ : ((t) == SDB_CONNECTION_STARTUP) ? "STARTUP" \
+ : ((t) == SDB_CONNECTION_QUERY) ? "QUERY" \
+ : ((t) == SDB_CONNECTION_FETCH) ? "FETCH" \
+ : ((t) == SDB_CONNECTION_LIST) ? "LIST" \
+ : ((t) == SDB_CONNECTION_LOOKUP) ? "LOOKUP" \
+ : ((t) == SDB_CONNECTION_TIMESERIES) ? "TIMESERIES" \
+ : ((t) == SDB_CONNECTION_STORE) ? "STORE" \
+ : "UNKNOWN")
+
#ifdef __cplusplus
} /* extern "C" */
#endif