• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

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 Jan 12 2012 23:13:50 for ACS-10.0 C++ API by  doxygen 1.7.0