blob: b943caa3253dfc06243a2d0f1a45cd8725816ed6 [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
// This file automatically generated by:
// Apache Etch 1.1.0-incubating (LOCAL-0) / c 1.1.0-incubating (LOCAL-0)
// Fri Aug 28 15:58:20 CEST 2009
// This file is automatically created and should not be edited!
/*
* helloworld_client_main.c
*/
#include "helloworld_client_main.h"
#include "etch_objecttypes.h"
#include "etch_runtime.h"
#include "etch_arrayval.h"
#include "etch_nativearray.h"
#include "etch_binary_tdo.h"
#include "etch_general.h"
/**
* new_helloworld_client().
* callback constructor for client implementation object.
* this callback address is passed to start_helloworld_client() in [main].
* @param server the remote server.
* @remarks this callback must be supplied, i.e. its functionality cannot be
* defaulted, since the client implementation constructor new_helloworld_client_impl()
* is not known to start_helloworld_client().
*/
static i_helloworld_client* helloworld_client_create(void* factory_thisx, helloworld_remote_server* server)
{
helloworld_client_impl* client = new_helloworld_client_impl(server);
return client? client->helloworld_client_base:NULL;
}
/**
* main()
*/
int main(int argc, char* argv[])
{
etch_status_t etch_status = ETCH_SUCCESS;
helloworld_remote_server* remote = NULL;
int result = -1, is_waitkey = TRUE, waitupms = 4000;
helloworld_user* user = new_helloworld_user();
etch_string* answer = NULL;
wchar_t* uri = L"tcp://127.0.0.1:4004";
etch_config_t* config = NULL;
etch_config_create(&config);
// set properties or read file
etch_status = etch_runtime_initialize(config);
if(etch_status != ETCH_SUCCESS) {
// error
return 1;
}
etch_status = helloworld_helper_remote_server_create(&remote, uri, NULL, helloworld_client_create);
if(etch_status != ETCH_SUCCESS) {
// error
}
etch_status = helloworld_helper_remote_server_start_wait(remote, waitupms);
if(etch_status != ETCH_SUCCESS) {
// error
}
//add your implementation here
user->name = new_stringw(L"Testuser");
answer = remote->say_hello(remote,user);
if(answer && ! is_etch_exception(answer)){
wprintf(L"Server said: %s\n", answer->v.valw);
}else{
wprintf(L"Remote call failed, is the server running?\n");
}
// wait until key press
waitkey();
etch_status = helloworld_helper_remote_server_stop_wait(remote, waitupms);
if(etch_status != ETCH_SUCCESS) {
// error
}
etch_status = helloworld_helper_remote_server_destroy(remote);
if(etch_status != ETCH_SUCCESS) {
// error
}
etch_config_destroy(config);
return 0;
}