/* * Set key/value */ int RemoteDBSetKeyValue(int db,tKey key,tValue value) { char Buf[MAX_BUF_LEN] = "\0"; int BufSize = MAX_BUF_LEN; int ret = FormatData2(Buf,&BufSize,SET_CMD,(char*)key.str,key.len,value.str,value.len); if(ret == -1) { return -1; } SendData(db,Buf,BufSize); BufSize = MAX_BUF_LEN; if(RecvData(db,Buf,&BufSize) == 0) { fprintf(stderr,"Connection Error,%s:%d\n",__FILE__,__LINE__); return -1; } int cmd = -1; int DataNum = -1; char Data1[MAX_BUF_LEN] = "\0"; int Data1Size = MAX_BUF_LEN; char Data2[MAX_BUF_LEN] = "\0"; int Data2Size = MAX_BUF_LEN; ParseData(Buf,BufSize,&cmd,&DataNum,Data1,&Data1Size,Data2,&Data2Size); if(cmd != SET_RSP || DataNum != 0) { fprintf(stderr,"Remote DBSetKeyValue Error,%s:%d\n", __FILE__,__LINE__); return -1; } return 0; }
/* * Set key/value */ int DBSetKeyValue(tDatabase db,tKey key,tValue value) { debug("SET_CMD:%d -> %s\n",key,value.str); char Buf[MAX_BUF_LEN] = "\0"; int BufSize = MAX_BUF_LEN; int ret = FormatData2(Buf,&BufSize,SET_CMD,(char*)&key,sizeof(tKey),value.str,value.len); if(ret == -1) { return -1; } SendData(*(tServiceHandler*)db,Buf,BufSize); BufSize = MAX_BUF_LEN; if(RecvData(*(tServiceHandler*)db,Buf,&BufSize) == 0) { fprintf(stderr,"Connection Error,%s:%d\n",__FILE__,__LINE__); return -1; } int cmd = -1; int DataNum = -1; char Data1[MAX_BUF_LEN] = "\0"; int Data1Size = MAX_BUF_LEN; char Data2[MAX_BUF_LEN] = "\0"; int Data2Size = MAX_BUF_LEN; ParseData(Buf,BufSize,&cmd,&DataNum,Data1,&Data1Size,Data2,&Data2Size); if(cmd != SET_RSP || DataNum != 0) { fprintf(stderr,"Remote DBSetKeyValue Error,%s:%d\n", __FILE__,__LINE__); return -1; } return 0; }
int main() { char Buf[MAX_BUF_LEN] = "\0"; char *str = "hello world!"; FormatData(Buf,MAX_BUF_LEN,CLOSE_CMD); int cmd = -1; int DataNum = -1; char Data1[MAX_BUF_LEN] = "\0"; int Data1Size = MAX_BUF_LEN; char Data2[MAX_BUF_LEN] = "\0"; int Data2Size = MAX_BUF_LEN; ParseData(Buf,MAX_BUF_LEN,&cmd,&DataNum,Data1,&Data1Size,Data2,&Data2Size); if(cmd == CLOSE_CMD && DataNum == 0) { printf("Test Zero Data Result: Pass\n"); } FormatData1(Buf,MAX_BUF_LEN,OPEN_CMD,str,strlen(str)); ParseData(Buf,MAX_BUF_LEN,&cmd,&DataNum,Data1,&Data1Size,Data2,&Data2Size); if(cmd == OPEN_CMD && DataNum == 1 && Data1Size == strlen(str) && strcmp(Data1,str) == 0) { printf("%s\n",Data1); printf("Test One Data Result: Pass\n"); } FormatData2(Buf,MAX_BUF_LEN,SET_CMD,str,strlen(str),str,strlen(str)); ParseData(Buf,MAX_BUF_LEN,&cmd,&DataNum,Data1,&Data1Size,Data2,&Data2Size); if(cmd == SET_CMD && DataNum == 2 && Data1Size == strlen(str) && Data2Size == strlen(str) && strcmp(Data1,str) == 0 && strcmp(Data2,str) == 0) { printf("%s\n",Data1); printf("%s\n",Data2); printf("Test Two Data Result: Pass\n"); } return 0; }