You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ja...@apache.org on 2005/03/09 04:23:56 UTC

cvs commit: ws-axis/c/tests/auto_build/testcases/client/cpp Enumeration_TTestClient.cpp ComplexTypeAll_TTestClient.cpp

jamejose    2005/03/08 19:23:56

  Added:       c/tests/auto_build/testcases/client/cpp
                        Enumeration_TTestClient.cpp
                        ComplexTypeAll_TTestClient.cpp
  Log:
  
  
  Revision  Changes    Path
  1.1                  ws-axis/c/tests/auto_build/testcases/client/cpp/Enumeration_TTestClient.cpp
  
  Index: Enumeration_TTestClient.cpp
  ===================================================================
  
  /* This program will create 10 Threads and each thread will invoke Enumeration Service 
     @Author James
  */
  
  #include "EnumerationWS.hpp"
  #include <axis/AxisException.hpp>
  //#include <exception>
  #include <ctype.h>
  #include <iostream>
  #include <stdlib.h>
  #include <axis/Axis.hpp>
  /* Defining platform specific constants  */
  #ifdef WIN32
          #include <windows.h>
          #define RETTYPE DWORD WINAPI
          #define ARGTYPE LPVOID
  #else
          #include <pthread.h>
          #include <unistd.h>
          #define RETTYPE void*
          #define ARGTYPE void*
  #endif
  
  
  //#define MACRO_NUM_THREADS 10
  //int NUM_THREADS = MACRO_NUM_THREADS;
  #define NUM_THREADS 10
  
  
  /* In windows the entry point function return type is DWORD WINAPI
     In linux it is void *                                          */
  RETTYPE ThreadFunc(ARGTYPE Param)
  {
          /*Type casting the url to char * */
          char *p=(char *)Param;
          char endpoint[256];
          const char* url="http://puppet.in.ibm.com:9060/ComplexTypeAll/services/Service";
          if(p!=NULL)
               url=p;
          try
          {
                  sprintf(endpoint, "%s", url);				
  				EnumerationWS *ws;
  				Type1* input = NULL;
  				Type1* result = NULL;
  				ws = new EnumerationWS(endpoint, APTHTTP1_1);				
  				input = new Type1();
  				input->enum_string="one";
  				input->att_enum_string="one";
  				input->enum_int=ENUMTYPEINT_0;
  				input->att_enum_int=ENUMTYPEINT_1;
  				input->att_enum_kind="CHEQUE";
  				result = ws->getInput(input);
  				if ( result == NULL ) {
  					cout << "  result = NULL" << endl;
  				} else {
  					cout << result->att_enum_int;
  				}
  					
  				//free(p);
  				//free(url);
  				delete ws;
  				delete input;
  				delete result;
  
          }
          catch(AxisException& e)
          {
              cout << "Exception : " << e.what() << endl;
          }
          catch(exception& e)
          {
              cout << "Unknown exception has occured" << endl;
          }
          catch(...)
          {
              cout << "Unknown exception has occured" << endl;
          }
                  #ifndef WIN32
                          pthread_exit(0);
                  #endif
          return 0;
  }
  
  
  
  
  int main(int argc, char *argv[])
  {
      Axis::initialize(false);
  	try{
  		 int i;
  		 #ifdef WIN32
  			/*Windows specific code comes here */
  			HANDLE hThread[NUM_THREADS];
  			for(i=0;i<NUM_THREADS;i++){
  					DWORD dwThreadId;
  					//LPVOID dwThrdParam = LPVOID(argv[1]);
  					hThread[i] = CreateThread(
  											NULL,                        // no security attributes
  											0,                           // use default stack size
  											ThreadFunc,                  // thread function
  											LPVOID(argv[1]),             // argument to thread function
  											0,   
  										&dwThreadId);              // returns the thread identifier
  
  			if (hThread[i] == NULL)
  			{
  			cout<<"Thread creation Failed";
  			}
  			}
  			/* Waiting for threads to terminate */
  			WaitForMultipleObjects(NUM_THREADS,hThread,true, INFINITE);
  			for(i=0;i<NUM_THREADS;i++)
  					CloseHandle( hThread[i] );
  
  		#else	
  			pthread_t thread[NUM_THREADS];
  			pthread_attr_t attr;
  			int rc, t, status = 0;
  		//   Initialize and set thread detached attribute
  			pthread_attr_init(&attr);
  			pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
  			for (t = 0; t < NUM_THREADS; t++)
  			{
  			/*Creating threads */
  				rc = pthread_create(&thread[t], &attr, ThreadFunc,(void *)argv[1]);
  				if (rc)
  				{
  					cout<<"Thread Creation Failed";
  				}
  			}
  		//Free attribute and wait for the other threads
  		pthread_attr_destroy(&attr);
  		/* Wait for the threads to terminate  */
  		for(t=0;t<NUM_THREADS;t++){
  			rc = pthread_join(thread[t], (void **)&status);
  				if (rc)
  				{
  					cout<<"ERROR from pthread_join()"<<endl;
  				}
  		}
  	#endif
    }catch(exception &e){
             cout<< e.what();
    }
    cout<<endl<<"----------------------------------TEST COMPLETE--------------------------------"<<endl;
  }
  
  
  
  
  1.1                  ws-axis/c/tests/auto_build/testcases/client/cpp/ComplexTypeAll_TTestClient.cpp
  
  Index: ComplexTypeAll_TTestClient.cpp
  ===================================================================
  
  /* This program will create 10 Threads and each thread will invoke ComplexTypeAll Service 
     @Author James
  */
  
  #include "operations.hpp"
  #include <axis/AxisException.hpp>
  //#include <exception>
  #include <ctype.h>
  #include <iostream>
  #include <stdlib.h>
  #include <axis/Axis.hpp>
  /* Defining platform specific constants  */
  #ifdef WIN32
          #include <windows.h>
          #define RETTYPE DWORD WINAPI
          #define ARGTYPE LPVOID
  #else
          #include <pthread.h>
          #include <unistd.h>
          #define RETTYPE void*
          #define ARGTYPE void*
  #endif
  
  
  //#define MACRO_NUM_THREADS 10
  //int NUM_THREADS = MACRO_NUM_THREADS;
  #define NUM_THREADS 10
  
  
  /* In windows the entry point function return type is DWORD WINAPI
     In linux it is void *                                          */
  RETTYPE ThreadFunc(ARGTYPE Param)
  {
          /*Type casting the url to char * */
          char *p=(char *)Param;
          char endpoint[256];
          const char* url="http://puppet.in.ibm.com:9060/ComplexTypeAll/services/Service";
          if(p!=NULL)
               url=p;
          int iResult;
          try
          {
                  sprintf(endpoint, "%s", url);
  				operations *ws=new operations(endpoint, APTHTTP1_1);
  				aRecord* input = new aRecord();
  				input->field1 = "Hello World!";
  				input->field2 = "I'm still here!";
  				input->field3 = "Now I go!";
  				xsd__boolean result = (xsd__boolean)0;
  				result = ws->myOperation(input);
  				cout << result;
  				free(ws);
  				free(input);
  
          }
          catch(AxisException& e)
          {
              cout << "Exception : " << e.what() << endl;
          }
          catch(exception& e)
          {
              cout << "Unknown exception has occured" << endl;
          }
          catch(...)
          {
              cout << "Unknown exception has occured" << endl;
          }
                  #ifndef WIN32
                          pthread_exit(0);
                  #endif
          return 0;
  }
  
  
  
  
  int main(int argc, char *argv[])
  {
      Axis::initialize(false);
  	try{
  		 int i;
  		 #ifdef WIN32
  			/*Windows specific code comes here */
  			HANDLE hThread[NUM_THREADS];
  			for(i=0;i<NUM_THREADS;i++){
  					DWORD dwThreadId;
  					//LPVOID dwThrdParam = LPVOID(argv[1]);
  					hThread[i] = CreateThread(
  											NULL,                        // no security attributes
  											0,                           // use default stack size
  											ThreadFunc,                  // thread function
  											LPVOID(argv[1]),             // argument to thread function
  											0,   
  										&dwThreadId);              // returns the thread identifier
  
  			if (hThread[i] == NULL)
  			{
  			cout<<"Thread creation Failed";
  			}
  			}
  			/* Waiting for threads to terminate */
  			WaitForMultipleObjects(NUM_THREADS,hThread,true, INFINITE);
  			for(i=0;i<NUM_THREADS;i++)
  					CloseHandle( hThread[i] );
  
  		#else	
  			pthread_t thread[NUM_THREADS];
  			pthread_attr_t attr;
  			int rc, t, status = 0;
  		//   Initialize and set thread detached attribute
  			pthread_attr_init(&attr);
  			pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
  			for (t = 0; t < NUM_THREADS; t++)
  			{
  			/*Creating threads */
  				rc = pthread_create(&thread[t], &attr, ThreadFunc,(void *)argv[1]);
  				if (rc)
  				{
  					cout<<"Thread Creation Failed";
  				}
  			}
  		//Free attribute and wait for the other threads
  		pthread_attr_destroy(&attr);
  		/* Wait for the threads to terminate  */
  		for(t=0;t<NUM_THREADS;t++){
  			rc = pthread_join(thread[t], (void **)&status);
  				if (rc)
  				{
  					cout<<"ERROR from pthread_join()"<<endl;
  				}
  		}
  	#endif
    }catch(exception &e){
             cout<< e.what();
    }
    cout<<endl<<"----------------------------------TEST COMPLETE--------------------------------"<<endl;
  }