/* | |
* xmpl_perf_client_impl.h | |
*/ | |
#ifndef PERF_CLIENT_IMPL_H | |
#define PERF_CLIENT_IMPL_H | |
#include "xmpl_perf_client.h" | |
#include "etch_transport.h" | |
unsigned short CLASSID_PERFCLIENTBASE_IMPL; | |
typedef struct perf_remote_server perf_remote_server; | |
/** | |
* perf_client_impl | |
* your custom implementation of perf_base_client. add methods here | |
* to provide implementations of messages from the client, if any. | |
*/ | |
typedef struct perf_client_impl | |
{ | |
unsigned int hashkey; | |
unsigned short obj_type; | |
unsigned short class_id; | |
struct objmask* vtab; | |
int (*destroy)(void*); | |
void*(*clone) (void*); | |
obj_gethashkey get_hashkey; | |
struct objmask* parent; | |
etchresult* result; | |
unsigned int refcount; | |
unsigned int length; | |
unsigned char is_null; | |
unsigned char is_copy; | |
unsigned char is_static; | |
unsigned char reserved; | |
i_perf_client* perf_client_base; /* owned */ | |
i_perf* iperf; /* not owned */ | |
perf_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 perf_client_impl* */ | |
etch_session_control _session_control; | |
etch_session_notify _session_notify; | |
etch_session_query _session_query; | |
/* - - - - - - - - - - - - | |
* base service virtuals | |
* - - - - - - - - - - - - | |
*/ | |
perf_add add; | |
perf_sum sum; | |
perf_report report; | |
perf_dist dist; | |
perf_add2 add2; | |
perf_report2 report2; | |
/* - - - - - - - - - - - - | |
* base service data | |
* - - - - - - - - - - - - | |
*/ | |
perf_point* point; /* owned by base */ | |
/* - - - - - - - - - - - - - | |
* custom instance data | |
* - - - - - - - - - - - - - | |
*/ | |
char* exampleobj; | |
} perf_client_impl; | |
/* constructor */ | |
perf_client_impl* new_perf_client_impl (perf_remote_server*); | |
#endif /* PERF_CLIENT_IMPL_H */ | |