
// 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!

#ifndef EXAMPLE_CLIENT_IMPL_H
#define EXAMPLE_CLIENT_IMPL_H

#include "example_client.h"
#include "etch_transport.h"

#ifdef __cplusplus
extern "C" {
#endif

extern unsigned short CLASSID_EXAMPLE_CLIENT_IMPL;

//typedef struct example_remote_server example_remote_server;

/**
 * example_client_impl
 * your custom implementation of example_client. add methods here 
 * to provide implementations of messages from the client, if any.
 */
typedef struct example_client_impl
{
    etch_object object;  

    i_example_client* example_client_base; /* owned */
    i_example* iexample; /* not owned */
    struct example_remote_server* server; /* not owned */

    int (*destroyex) (void*);  /* user memory destructor */

    /* - - - - - - - - - - - -
     * objsession
     * - - - - - - - - - - - -
     */
    i_objsession* iobjsession;  /* owned by base */
    /* note that iobjsession->thisx is set to this example_client_impl* */
    etch_session_control _session_control;
    etch_session_notify  _session_notify;
    etch_session_query   _session_query;

} example_client_impl;

/* constructor */
example_client_impl* new_example_client_impl (struct example_remote_server*);

#ifdef __cplusplus
} //extern "C"
#endif

#endif /* EXAMPLE_CLIENT_IMPL_H */
