
// 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_SERVER_IMPL_H
#define EXAMPLE_SERVER_IMPL_H

#include "example_server.h"
#include "etch_transport.h"

#ifdef __cplusplus
extern "C" {
#endif

extern unsigned short CLASSID_EXAMPLE_SERVER_IMPL;

//typedef struct example_remote_client example_remote_client;

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

    i_example_server* example_server_base; /* owned */
    i_example* iexample; /* not owned */
    struct example_remote_client* client; /* not owned */

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

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

} example_server_impl;

/* constructor */
example_server_impl* new_example_server_impl (struct example_remote_client*);

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

#endif /* EXAMPLE_SERVER_IMPL_H */
