
// This file automatically generated by:
//   Apache Etch 1.2.0-incubating (LOCAL-0) / c 1.2.0-incubating (LOCAL-0)
//   Mon Mar 28 14:18:57 CEST 2011
// This file is automatically created and should not be edited!

#include "example_client_impl.h"
#include "example_valufact.h"
#include "etch_url.h"
#include "etch_arrayval.h"
#include "etch_binary_tdo.h"
#include "etch_exception.h"
#include "etch_general.h"
#include "etch_log.h"
#include "etch_map.h"
#include <stdio.h>
#include "examplemixin_interface.h"
#include "examplemixin_valufact.h"

unsigned short CLASSID_EXAMPLE_CLIENT_IMPL;	
	
	
char* EXAMPLE_ETCHCIMP = "CIMP";

/* generated signatures */
int destroy_example_client_implx(void*);
example_client_impl* init_example_client_impl(struct example_remote_server*, etch_object_destructor);


/* - - - - - - - -    
 * instantiation
 * - - - - - - - -   
 */
void* example_say_hello_oneway_client_impl(void* thisx, etch_string* who);
void* example_say_hello_mixin_oneway_client_impl(void* thisx, etch_string* who);

/**
 * new_example_client_impl()
 * example_client_impl constructor.
 * add your custom initialization and virtual method overrides here.
 */
example_client_impl* new_example_client_impl(struct example_remote_server* server) 
{
    example_client_impl* pclient  /* allocate object */
        = init_example_client_impl(server, destroy_example_client_implx);	
    i_example_client* pclient_base = pclient->example_client_base;
    /* add virtual method overrides, if any, here */
    etchmap_insertxw(pclient_base->virtuals, example_valufact_get_static()->str_example_say_hello_oneway_client, example_say_hello_oneway_client_impl, FALSE);
    etchmap_insertxw(pclient_base->virtuals, examplemixin_valufact_get_static()->str_examplemixin_say_hello_mixin_oneway_client, example_say_hello_mixin_oneway_client_impl, FALSE);

    return pclient;
}


/**
 * destroy_example_client_implx()
 * destructor for any user allocated memory.
 * this code is invoked by the private perf_client_impl destructor,
 * via perf_client.destroyex(). add code here to destroy any memory you  
 * may have allocated for your custom perf_client implementation.
 */
int destroy_example_client_implx(void* data)
{
    /*
      example_client_impl* thisx = (example_client_impl*)data;
     */

    return 0;
}

/* - - - - - - - - - - - - - - - - - - -
 * session interface method overrides
 * - - - - - - - - - - - - - - - - - - -
 */

 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * implementations of example_client messages from server, if any 
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 */
void* example_say_hello_oneway_client_impl(void* thisx, etch_string* who)
{
    printf("Client: oneway received\n");
    etch_object_destroy(who);
    return NULL;
}

void* example_say_hello_mixin_oneway_client_impl(void* thisx, etch_string* who)
{
    printf("Client-Mixin: oneway received\n");
    etch_object_destroy(who);
    return NULL;
}
