Hi Denis, On 27/04/2011 05:25, Denis Kenzior wrote: > Hi Guillaume, > > On 04/22/2011 07:06 AM, Guillaume Zajac wrote: >> --- >> include/emulator.h | 10 +++++++ >> src/emulator.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++----- >> 2 files changed, 78 insertions(+), 7 deletions(-) >> >> diff --git a/include/emulator.h b/include/emulator.h >> index 5cd894b..29abf55 100644 >> --- a/include/emulator.h >> +++ b/include/emulator.h >> @@ -105,6 +105,16 @@ enum ofono_emulator_request_type ofono_emulator_request_get_type( >> void ofono_emulator_set_indicator(struct ofono_emulator *em, >> const char *name, int value); >> >> +typedef void (*network_request)(struct ofono_error *, int *, >> + const char **, const char **, >> + const char **, const char **); >> +typedef void (*network_release)(void); >> + >> +void ofono_emulator_add_network_request_cb(struct ofono_emulator *em, >> + network_request cb); >> +void ofono_emulator_add_network_release_cb(struct ofono_emulator *em, >> + network_release cb); >> + > I really don't like this, you're re-inventing the wheel here. We > already solved this pattern a while ago ;) I suggest you look at > include/gprs-provision.h and examples/provision.c In looking the example, I should create some emulator network drivers to get settings and release the network like: struct emulator_network{ ... } struct emulator_network_provision_driver{ char *name; (void)(*get_settings)(struct emulator_network **out_en); (void)(*release)(void); } and un/register drivers into emulator.c >> #ifdef __cplusplus >> } >> #endif > Regards, > -Denis > Kind regards, Guillaume