*** empty log message ***
This commit is contained in:
@@ -19,6 +19,11 @@
|
||||
#define COC_NETTMO 5
|
||||
#define COC_RESTMO 60
|
||||
|
||||
#define ARG_CHAR 1
|
||||
#define ARG_INT 2
|
||||
#define ARG_FLT 3
|
||||
#define ARG_ARR 4
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocConnect(CocConn *conn) {
|
||||
@@ -185,7 +190,7 @@ void CocReset(CocConn *conn) {
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocPushArg(CocConn *conn, const char *name, void *value, int type) {
|
||||
int CocPushArg(CocConn *conn, const char *name, void *value, int type, int size) {
|
||||
StrBuf *buf;
|
||||
int n;
|
||||
|
||||
@@ -196,6 +201,7 @@ int CocPushArg(CocConn *conn, const char *name, void *value, int type) {
|
||||
if (n>=sizeof(conn->args)) ERR_MSG("too many return arguments");
|
||||
conn->args[n].adr=value;
|
||||
conn->args[n].type=type;
|
||||
conn->args[n].size=size;
|
||||
conn->args[n].cmd=buf->buf + buf->wrpos;
|
||||
conn->nargs=n+1;
|
||||
if (value==NULL) {
|
||||
@@ -212,7 +218,7 @@ int CocPushArg(CocConn *conn, const char *name, void *value, int type) {
|
||||
int CocPutStr(CocConn *conn, const char *name, const char *value) {
|
||||
StrBuf *buf;
|
||||
|
||||
ERR_I(CocPushArg(conn, name, NULL, 4));
|
||||
ERR_I(CocPushArg(conn, name, NULL, ARG_CHAR, 0));
|
||||
ERR_I(StrPut(&conn->cmdbuf, value, COC_SEP));
|
||||
return(0);
|
||||
OnError: return(-1);
|
||||
@@ -222,7 +228,7 @@ int CocPutStr(CocConn *conn, const char *name, const char *value) {
|
||||
|
||||
int CocPutFloat(CocConn *conn, const char *name, float value) {
|
||||
|
||||
ERR_I(CocPushArg(conn, name, NULL, COC_FLT));
|
||||
ERR_I(CocPushArg(conn, name, NULL, ARG_FLT, 0));
|
||||
ERR_I(StrPutFloat(&conn->cmdbuf, value, COC_SEP));
|
||||
return(0);
|
||||
OnError: return(-1);
|
||||
@@ -230,9 +236,19 @@ int CocPutFloat(CocConn *conn, const char *name, float value) {
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocPutArray(CocConn *conn, const char *name, float *value, int value_size) {
|
||||
|
||||
ERR_I(CocPushArg(conn, name, NULL, ARG_ARR, 0));
|
||||
ERR_I(StrPutArray(&conn->cmdbuf, value, value_size));
|
||||
return(0);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocPutInt(CocConn *conn, const char *name, int value) {
|
||||
|
||||
ERR_I(CocPushArg(conn, name, NULL, COC_INT));
|
||||
ERR_I(CocPushArg(conn, name, NULL, ARG_INT, 0));
|
||||
ERR_I(StrPutInt(&conn->cmdbuf, value, COC_SEP));
|
||||
return(0);
|
||||
OnError: return(-1);
|
||||
@@ -242,21 +258,28 @@ int CocPutInt(CocConn *conn, const char *name, int value) {
|
||||
|
||||
int CocGetStr(CocConn *conn, const char *name, char *value, int value_len) {
|
||||
|
||||
return(CocPushArg(conn, name, value, value_len));
|
||||
return(CocPushArg(conn, name, value, ARG_CHAR, value_len));
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocGetFloat(CocConn *conn, const char *name, float *value) {
|
||||
|
||||
return(CocPushArg(conn, name, value, COC_FLT));
|
||||
return(CocPushArg(conn, name, value, ARG_FLT, 0));
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocGetInt(CocConn *conn, const char *name, int *value) {
|
||||
|
||||
return(CocPushArg(conn, name, value, COC_INT));
|
||||
return(CocPushArg(conn, name, value, ARG_INT, 0));
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocGetArray(CocConn *conn, const char *name, float *value, int value_size) {
|
||||
|
||||
return(CocPushArg(conn, name, value, ARG_ARR, value_size));
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -310,16 +333,19 @@ int CocDoIt(CocConn *conn, char *res, int res_len) {
|
||||
} else {
|
||||
str_ncat(res, a->cmd, res_len);
|
||||
str_ncat(res, "=", res_len);
|
||||
if (a->type==COC_INT) {
|
||||
if (a->type==ARG_INT) {
|
||||
ERR_I(StrGetInt(buf, (int *)a->adr, COC_SEP));
|
||||
} else if (a->type==COC_FLT) {
|
||||
} else if (a->type==ARG_FLT) {
|
||||
ERR_I(StrGetFloat(buf, (float *)a->adr, COC_SEP));
|
||||
} else if (a->type>1) {
|
||||
ERR_P(StrNGet(buf, (char *)a->adr, a->type, COC_SEP));
|
||||
} else if (a->type==ARG_ARR) {
|
||||
ERR_I(StrGetArray(buf, (float *)a->adr, a->size));
|
||||
resp="<array>";
|
||||
} else if (a->type==ARG_CHAR) {
|
||||
ERR_P(StrNGet(buf, (char *)a->adr, a->size, COC_SEP));
|
||||
} else {
|
||||
ERR_MSG("unknown type");
|
||||
}
|
||||
a->type=0;
|
||||
a->type=0; /* done */
|
||||
}
|
||||
}
|
||||
str_ncat(res, resp, res_len);
|
||||
|
||||
Reference in New Issue
Block a user