提交 804b5812 编写于 作者: weixin_48148422's avatar weixin_48148422

TBASE-917: update subscription example

上级 192ad4df
......@@ -3,21 +3,22 @@
ROOT=./
TARGET=exe
LFLAGS = '-Wl,-rpath,/usr/local/taos/driver' -ltaos -lpthread -lm -lrt
CFLAGS = -O3 -g -Wall -Wno-deprecated -fPIC -Wno-unused-result -Wconversion -Wno-char-subscripts -D_REENTRANT -Wno-format -D_REENTRANT -DLINUX -msse4.2 -Wno-unused-function -D_M_X64 -std=gnu99
LFLAGS = '-Wl,-rpath,/usr/local/taos/driver/' -ltaos -lpthread -lm -lrt
CFLAGS = -O3 -g -Wall -Wno-deprecated -fPIC -Wno-unused-result -Wconversion -Wno-char-subscripts -D_REENTRANT -Wno-format -D_REENTRANT -DLINUX -msse4.2 -Wno-unused-function -D_M_X64 \
-I/usr/local/taos/include -std=gnu99
all: $(TARGET)
exe:
gcc $(CFLAGS) ./asyncdemo.c -o $(ROOT)/asyncdemo $(LFLAGS)
gcc $(CFLAGS) ./demo.c -o $(ROOT)/demo $(LFLAGS)
gcc $(CFLAGS) ./stream.c -o $(ROOT)/stream $(LFLAGS)
gcc $(CFLAGS) ./subscribe.c -o $(ROOT)/subscribe $(LFLAGS)
gcc $(CFLAGS) ./asyncdemo.c -o $(ROOT)/asyncdemo $(LFLAGS)
gcc $(CFLAGS) ./demo.c -o $(ROOT)/demo $(LFLAGS)
gcc $(CFLAGS) ./prepare.c -o $(ROOT)/prepare $(LFLAGS)
gcc $(CFLAGS) ./stream.c -o $(ROOT)/stream $(LFLAGS)
gcc $(CFLAGS) ./subscribe.c -o $(ROOT)subscribe $(LFLAGS)
clean:
rm $(ROOT)asyncdemo
rm $(ROOT)demo
rm $(ROOT)stream
rm $(ROOT)subscribe
\ No newline at end of file
rm $(ROOT)/asyncdemo
rm $(ROOT)/demo
rm $(ROOT)/prepare
rm $(ROOT)/stream
rm $(ROOT)/subscribe
......@@ -6,38 +6,76 @@
#include <string.h>
#include <taos.h> // include TDengine header file
void print_result(TAOS_RES* res) {
TAOS_ROW row;
int num_fields = taos_num_fields(res);
TAOS_FIELD* fields = taos_fetch_fields(res);
while ((row = taos_fetch_row(res))) {
char temp[256];
taos_print_row(temp, row, fields, num_fields);
puts(temp);
}
}
void subscribe_callback(TAOS_SUB* tsub, TAOS_RES *res, void* param, int code) {
print_result(res);
}
int main(int argc, char *argv[]) {
const char* host = "127.0.0.1";
const char* user = "root";
const char* passwd = "taosdata";
int async = 1;
TAOS_SUB* tsub = NULL;
for (int i = 1; i < argc; i++) {
if (strncmp(argv[i], "-h=", 3) == 0) {
host = argv[i] + 3;
continue;
}
if (strncmp(argv[i], "-u=", 3) == 0) {
user = argv[i] + 3;
continue;
}
if (strncmp(argv[i], "-p=", 3) == 0) {
passwd = argv[i] + 3;
continue;
}
if (strncmp(argv[i], "-m=", 3) == 0) {
async = strcmp(argv[i] + 3, "sync");
continue;
}
}
// init TAOS
taos_init();
TAOS* taos = taos_connect(argv[1], "root", "taosdata", "test", 0);
TAOS* taos = taos_connect(host, user, passwd, "test", 0);
if (taos == NULL) {
printf("failed to connect to db, reason:%s\n", taos_errstr(taos));
exit(1);
}
TAOS_SUB* tsub = taos_subscribe(taos, "select * from meters;", NULL, NULL, 0);
if ( tsub == NULL ) {
if (async) {
tsub = taos_subscribe(taos, "select * from meters;", subscribe_callback, NULL, 1000);
} else {
tsub = taos_subscribe(taos, "select * from meters;", NULL, NULL, 0);
}
if (tsub == NULL) {
printf("failed to create subscription.\n");
exit(0);
}
for( int i = 0; i < 3; i++ ) {
if (async) {
getchar();
} else while(1) {
TAOS_RES* res = taos_consume(tsub);
TAOS_ROW row;
int rows = 0;
int num_fields = taos_subfields_count(tsub);
TAOS_FIELD *fields = taos_fetch_fields(res);
char temp[256];
// fetch the records row by row
while ((row = taos_fetch_row(res))) {
rows++;
taos_print_row(temp, row, fields, num_fields);
printf("%s\n", temp);
}
printf("\n");
print_result(res);
getchar();
}
taos_unsubscribe(tsub);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册