Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

acsutilArgUnpack.h

Go to the documentation of this file.
00001 // 00002 // Define entry for server for VxWorks 00003 // The server should be called as "server_entry (int argc, char * argv[])" 00004 // in the source file 00005 #define server_entry \ 00006 server_i (int, ASYS_TCHAR *[]); \ 00007 int \ 00008 server (char * inputString) \ 00009 { \ 00010 int argc; \ 00011 char * argv[100]; \ 00012 argv[0] = "server"; \ 00013 argc = argUnpack(inputString, argv); \ 00014 ACE_MAIN_OBJECT_MANAGER return server_i (argc, argv); \ 00015 } \ 00016 int \ 00017 server_i 00018 00019 // 00020 // Define entry for client for VxWorks 00021 // The client should be called as "client_entry (int argc, char * argv[])" 00022 // in the source file 00023 #define client_entry \ 00024 client_i (int, ASYS_TCHAR *[]); \ 00025 int \ 00026 client (char * inputString) \ 00027 { \ 00028 int argc; \ 00029 char * argv[100]; \ 00030 argv[0] = "client"; \ 00031 argc = argUnpack(inputString, argv); \ 00032 ACE_MAIN_OBJECT_MANAGER return client_i (argc, argv); \ 00033 } \ 00034 int \ 00035 client_i 00036 00037 // 00038 // Define entry for driver for VxWorks 00039 // The driver should be called as "driver_entry (int argc, char * argv[])" 00040 // in the source file 00041 #define driver_entry \ 00042 driver_i (int, ASYS_TCHAR *[]); \ 00043 int \ 00044 driver (char * inputString) \ 00045 { \ 00046 int argc; \ 00047 char * argv[100]; \ 00048 argv[0] = "driver"; \ 00049 argc = argUnpack(inputString, argv); \ 00050 ACE_MAIN_OBJECT_MANAGER return driver_i (argc, argv); \ 00051 } \ 00052 int \ 00053 driver_i 00054 00055 // 00056 // Routine for unpacking entry string into argc, argv structure 00057 int argUnpack (char * inputString, char * argv []) 00058 { 00059 char * s ; 00060 char * ppLast; 00061 int i = 1; 00062 00063 if (inputString != 0) 00064 { 00065 s = strtok_r (inputString, " ", &ppLast); 00066 if (s != NULL) 00067 { 00068 argv[i] = s; 00069 i++; 00070 } 00071 while (s != NULL) 00072 { 00073 s = strtok_r (0, " ", &ppLast); 00074 if (s != NULL) 00075 { 00076 argv[i] = s; 00077 i++; 00078 } 00079 } 00080 } 00081 return i; 00082 }

Generated on Thu Apr 30 02:30:49 2009 for ACS C++ API by doxygen 1.3.8