| // This file automatically generated by: |
| // Apache Etch 1.4.0 (LOCAL-0) / cpp 1.4.0 (LOCAL-0) |
| // Fri Apr 04 11:35:36 CEST 2014 |
| // This file is automatically created for your convenience and will not be |
| // overwritten once it exists! Please edit this file as necessary to implement |
| // your service logic. |
| |
| #include "common/EtchTypes.h" |
| #include "support/EtchRuntime.h" |
| #include "RemoteHelloWorldServer.h" |
| #include "MainHelloWorldClient.h" |
| #include "ImplHelloWorldClient.h" |
| #include "transport/EtchTransportData.h" |
| |
| |
| #ifdef BUILD_CHECK_MEMORY |
| #include "vld.h" |
| #endif |
| |
| using namespace org_apache_etch_examples_helloworld_HelloWorld; |
| |
| HelloWorldClient* MainHelloWorldClientFactory::newHelloWorldClient(RemoteHelloWorldServer* server) |
| { |
| return new ImplHelloWorldClient(server); |
| } |
| |
| /** |
| * Main program for HelloWorldClient. |
| * |
| * @param args command line arguments. |
| * @throws Exception |
| */ |
| capu::int32_t main(int argc, const char* argv[]) |
| { |
| EtchRuntime* runtime = new EtchRuntime(); |
| runtime->start(); |
| |
| // TODO Change to correct URI |
| EtchString uri("tcp://127.0.0.1:4001"); |
| |
| MainHelloWorldClientFactory mc; |
| |
| status_t result; |
| RemoteHelloWorldServer *remote = NULL; |
| result = HelloWorldHelper::newServer(runtime, uri, NULL, mc, remote); |
| if (result != ETCH_OK) { |
| //TODO Handle error |
| } |
| |
| // Connect to the service |
| result = remote->transportControl(new EtchString(EtchTransportData::START_AND_WAIT_UP()), new EtchInt32(4000)); |
| if (result != ETCH_OK) { |
| //TODO Handle error |
| } |
| |
| HelloWorld::userPtr myUser = new HelloWorld::user(new EtchInt32(1),new EtchString("World")); |
| HelloWorldServer::say_helloAsyncResultPtr say_helloResult = remote->say_hello(myUser); |
| if(say_helloResult->hasException()) { |
| capu::SmartPointer<EtchException> exception = say_helloResult->getException(); |
| printf("say_hello FAILED: exception=%s \n", exception->getErrorMessage().c_str()); |
| } |
| if(say_helloResult->hasResult()) { |
| capu::SmartPointer<EtchString> result = say_helloResult->getResult(); |
| printf("say_hello OK: result=%s\n", result->c_str()); |
| } |
| |
| // Disconnect from the service |
| remote->transportControl(new EtchString(EtchTransportData::STOP_AND_WAIT_DOWN()), new EtchInt32(4000)); |
| |
| //waiting |
| printf("\n\npress any key to close client\n"); |
| getchar(); |
| |
| //delete remote |
| delete remote; |
| |
| //delete runtime |
| result = runtime->shutdown(); |
| if (result != ETCH_OK) { |
| //TODO Handle error |
| } |
| |
| delete runtime; |
| |
| return 0; |
| } |
| |