00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00023 #include <stdio.h>
00024 #include <stddef.h>
00025 #include <stdlib.h>
00026 #include <string.h>
00027 #include <sys/types.h>
00028 #include <sys/socket.h>
00029 #include <netinet/in.h>
00030 #include <arpa/inet.h>
00031 #include <unistd.h>
00032
00033 #include "eripc.h"
00034 #include "eripcclient.h"
00035 #include "eripcsetup.h"
00036 #include "eripcparser.h"
00037
00038
00039 int stGotoPage(erClientChannel_t channel, int page)
00040 {
00041 erIpcCmd_t cmd;
00042
00043 strcpy(cmd.name, "stGotoPage");
00044 cmd.cc = (int) ccStGotoPage;
00045 cmd.nArg = 1;
00046 sprintf(cmd.arg[0], "%d", page);
00047
00048 return erIpcSndCommand(channel, &cmd);
00049 }
00050
00051
00052
00053
00054
00055 int stParseCommand(char *szCommand, erIpcCmd_t * pCmd)
00056 {
00057 int i;
00058 char *pChar;
00059 char szToken[TB_MAXCHARONLINE];
00060 int nReqArgs = 0;
00061
00062 pCmd->cc = (int) ccStUndefined;
00063 for (i = 0; i < TB_N_ARG; i++)
00064 {
00065 strcpy(pCmd->arg[i], "");
00066 }
00067
00068
00069 pChar = szCommand;
00070 i = 0;
00071 while (*pChar != '\0')
00072 {
00073 szToken[i] = '\0';
00074 if (*pChar == ',')
00075 {
00076 pChar++;
00077 break;
00078 }
00079 szToken[i] = *pChar++;
00080 i++;
00081 szToken[i] = '\0';
00082 }
00083
00084
00085
00086
00087
00088 if (!strcmp(szToken, "stGotoPage") || !strcmp(szToken, "0"))
00089 {
00090 strcpy(pCmd->name, szToken);
00091 pCmd->cc = (int) ccStGotoPage;
00092 nReqArgs = 1;
00093 pCmd->nArg = 1;
00094 }
00095 else
00096 {
00097 strcpy(pCmd->name, "Undefined");
00098 pCmd->cc = (int) ccStUndefined;
00099 fprintf(stderr, "%s: Command %s \n", __FUNCTION__, szToken);
00100 fprintf(stderr, "Error parsing (%s). Command undefined\n", szCommand);
00101 pCmd->nArg = -1;
00102 return -1;
00103 }
00104
00105 if (nReqArgs > 0)
00106 {
00107 erIpcGetArgs(pChar, pCmd, nReqArgs);
00108 }
00109 return 0;
00110 }
00111
00112