--- mqtt/src/pubmqtt.c 2011/11/25 15:29:30 1.1.2.8 +++ mqtt/src/pubmqtt.c 2011/11/28 10:17:12 1.1.2.9 @@ -295,3 +295,43 @@ mqtt_rtlm_delete_topic(sl_config *cfg, sqlite3 *sql, c return ret; } + +/* + * mqtt_rtlm_read_topic() Get topic + * + * @cfg = loaded config + * @sql = SQL handle + * @topic = topic + * return: -1 error, 0 not found or >0 topics rows + */ +int +mqtt_rtlm_read_topic(sl_config *cfg, sqlite3 *sql, const char *topic) +{ + int colz, ret = 0; + char *str, szStmt[BUFSIZ] = { 0 }; + sqlite3_stmt *stmt; + register int i; + + if (!cfg || !sql) + return -1; + + str = (char*) cfg_GetAttribute(cfg, CFG("mqtt_pub"), CFG("tbl_topics")); + if (!str) { + mqtt_rtlm_log("Error:: not found topics table name"); + return -1; + } + snprintf(szStmt, sizeof szStmt, "SELECT Retain, Topic, Value FROM %s WHERE Topic LIKE '%s';", + str, topic); + + if (sqlite3_prepare_v2(sql, szStmt, strlen(szStmt), &stmt, NULL)) { + MQTT_RTLM_LOG(sql); + return -1; + } + while (sqlite3_step(stmt) == SQLITE_ROW && (colz = sqlite3_column_count(stmt))) { + for (i = 0; i < colz; i++) { + } + } + sqlite3_finalize(stmt); + + return ret; +}