From: Mike B. <mi...@ze...> - 2010-12-06 02:07:42
|
On Sun, 5 Dec 2010 23:54:23 -0200 Gustavo Sverzut Barbieri <bar...@pr...> wrote: > Since ur breaking API, add void*data to callbacks, otherwise u make > bindings harder if not impossible. > > On Sunday, December 5, 2010, Enlightenment SVN > <no-...@en...> wrote: > > Log: > > api break: send return value of calls to client callbacks when set > > typedef Eina_Error (*Azy_Client_Return_Cb)(Azy_Client *cli, Azy_Content > > *ret_content, void *ret); > > > > > > Author: discomfitor > > Date: 2010-12-05 17:45:29 -0800 (Sun, 05 Dec 2010) > > New Revision: 55306 > > Trac: http://trac.enlightenment.org/e/changeset/55306 > > > > Modified: > > trunk/PROTO/azy/src/include/Azy.h > > trunk/PROTO/azy/src/lib/azy_client_events.c > > trunk/PROTO/azy/src/tests/client.c trunk/PROTO/azy/src/tests/stress_client.c > > > > Modified: trunk/PROTO/azy/src/include/Azy.h > > =================================================================== > > --- trunk/PROTO/azy/src/include/Azy.h 2010-12-06 01:37:43 UTC (rev 55305) > > +++ trunk/PROTO/azy/src/include/Azy.h 2010-12-06 01:45:29 UTC (rev 55306) > > @@ -204,7 +204,7 @@ > > * Function must return AZY_ERROR_NONE (0) on success, else > > * an error number. > > */ > > -typedef Eina_Error (*Azy_Client_Return_Cb)(Azy_Client *, Azy_Content *); > > +typedef Eina_Error (*Azy_Client_Return_Cb)(Azy_Client *cli, Azy_Content > > *ret_content, void *ret); /** }@ */ > > #ifdef __cplusplus > > extern "C" { > > > > Modified: trunk/PROTO/azy/src/lib/azy_client_events.c > > =================================================================== > > --- trunk/PROTO/azy/src/lib/azy_client_events.c 2010-12-06 01:37:43 UTC > > (rev 55305) +++ trunk/PROTO/azy/src/lib/azy_client_events.c 2010-12-06 > > 01:45:29 UTC (rev 55306) @@ -116,7 +116,7 @@ > > if (cb) > > { > > Eina_Error ret; > > - ret = cb(client, content); > > + ret = cb(client, content, content->ret); > > > > ecore_event_add(AZY_CLIENT_RESULT, &ret, > > (Ecore_End_Cb)_azy_event_handler_fake_free, NULL); > > eina_hash_del_by_key(client->callbacks, &content->id); > > > > Modified: trunk/PROTO/azy/src/tests/client.c > > =================================================================== > > --- trunk/PROTO/azy/src/tests/client.c 2010-12-06 01:37:43 UTC (rev 55305) > > +++ trunk/PROTO/azy/src/tests/client.c 2010-12-06 01:45:29 UTC (rev 55306) > > @@ -36,7 +36,7 @@ > > } > > > > static Eina_Error > > -_T_Test1_getBigArray_ret(Azy_Client *client, Azy_Content *content) > > +_T_Test1_getBigArray_ret(Azy_Client *client, Azy_Content *content, void *r) > > { > > Eina_List *ret; > > > > @@ -47,7 +47,7 @@ > > ecore_main_loop_quit(); > > return azy_content_error_code_get(content); > > } > > - ret = azy_content_return_get(content); > > + ret = r; > > > > if (ret) > > printf("%i list entries\n", eina_list_count(ret)); > > @@ -56,7 +56,7 @@ > > } > > > > static Eina_Error > > -_T_Test1_putBigArray_ret(Azy_Client *client __UNUSED__, Azy_Content > > *content) +_T_Test1_putBigArray_ret(Azy_Client *client __UNUSED__, > > Azy_Content *content, void *r) { > > Eina_Bool ret; > > > > @@ -68,13 +68,13 @@ > > return azy_content_error_code_get(content); > > } > > > > - ret = (intptr_t)azy_content_return_get(content); > > + ret = (intptr_t)r; > > printf("%s: Success? %s!\n", __PRETTY_FUNCTION__, ret ? "YES" : "NO"); > > return AZY_ERROR_NONE; > > } > > > > static Eina_Error > > -_T_Test1_getAll_ret(Azy_Client *client __UNUSED__, Azy_Content *content) > > +_T_Test1_getAll_ret(Azy_Client *client __UNUSED__, Azy_Content *content, > > void *r) { > > T_AllTypes *ret; > > > > @@ -86,13 +86,13 @@ > > return azy_content_error_code_get(content); > > } > > > > - ret = azy_content_return_get(content); > > + ret = r; > > printf("%s: Success? %s!\n", __PRETTY_FUNCTION__, ret ? "YES" : "NO"); > > return AZY_ERROR_NONE; > > } > > > > static Eina_Error > > -_T_Test1_getAllArrays_ret(Azy_Client *client __UNUSED__, Azy_Content > > *content) +_T_Test1_getAllArrays_ret(Azy_Client *client __UNUSED__, > > Azy_Content *content, void *r) { > > T_AllArrays *ret; > > > > @@ -104,13 +104,13 @@ > > return azy_content_error_code_get(content); > > } > > > > - ret = azy_content_return_get(content); > > + ret = r; > > printf("%s: Success? %s!\n", __PRETTY_FUNCTION__, ret ? "YES" : "NO"); > > return AZY_ERROR_NONE; > > } > > > > static Eina_Error > > -_T_Test2_auth_ret(Azy_Client *client __UNUSED__, Azy_Content *content) > > +_T_Test2_auth_ret(Azy_Client *client __UNUSED__, Azy_Content *content, > > void *r) { > > Eina_Bool ret; > > > > @@ -122,13 +122,13 @@ > > return azy_content_error_code_get(content); > > } > > > > - ret = (intptr_t)azy_content_return_get(content); > > + ret = (intptr_t)r; > > printf("%s: Success? %s!\n", __PRETTY_FUNCTION__, ret ? "YES" : "NO"); > > return AZY_ERROR_NONE; > > } > > > > static Eina_Error > > -_T_Test1_undefined_ret(Azy_Client *client __UNUSED__, Azy_Content *content) > > +_T_Test1_undefined_ret(Azy_Client *client __UNUSED__, Azy_Content > > *content, void *r __UNUSED__) { > > if (azy_content_error_is_set(content)) > > printf("Error encountered: %s\n", > > azy_content_error_message_get(content)); > > > > Modified: trunk/PROTO/azy/src/tests/stress_client.c > > =================================================================== > > --- trunk/PROTO/azy/src/tests/stress_client.c 2010-12-06 01:37:43 UTC > > (rev 55305) +++ trunk/PROTO/azy/src/tests/stress_client.c 2010-12-06 > > 01:45:29 UTC (rev 55306) @@ -35,7 +35,7 @@ > > > > #ifdef HAVE_MYSQL > > static Eina_Error > > -T_SQL_test_ret(Azy_Client *client __UNUSED__, Azy_Content *content) > > +ret_(Azy_Client *client __UNUSED__, int type __UNUSED__, Azy_Content > > *content) { > > > > static int x; > > @@ -55,7 +55,7 @@ > > #else > > > > static Eina_Error > > -T_Test1_getAll_ret(Azy_Client *client __UNUSED__, Azy_Content *content) > > +ret_(Azy_Client *client __UNUSED__, int type __UNUSED__, Azy_Content > > *content) { > > static int x; > > T_AllTypes *ret; > > @@ -102,12 +102,10 @@ > > ret = T_SQL_test(ev, err, NULL); > > if (check_err(err) || (!ret)) > > goto error; > > - azy_client_callback_set(ev, ret, T_SQL_test_ret); > > #else > > ret = T_Test1_getAll(ev, err, NULL); > > if (check_err(err) || (!ret)) > > goto error; > > - azy_client_callback_set(ev, ret, T_Test1_getAll_ret); > > #endif > > } > > azy_content_free(err); > > @@ -158,7 +156,8 @@ > > > > ecore_job_add(spawn, NULL); > > ecore_event_handler_add(AZY_CLIENT_CONNECTED, > > (Ecore_Event_Handler_Cb)connected, NULL); > > - ecore_event_handler_add(AZY_CLIENT_CONNECTED, > > (Ecore_Event_Handler_Cb)disconnected, NULL); > > + ecore_event_handler_add(AZY_CLIENT_RETURN, > > (Ecore_Event_Handler_Cb)ret_, NULL); > > + ecore_event_handler_add(AZY_CLIENT_DISCONNECTED, > > (Ecore_Event_Handler_Cb)disconnected, NULL); ecore_main_loop_begin(); > > > > EINA_LIST_FREE(clients, cli) > > > > > > ------------------------------------------------------------------------------ > > What happens now with your Lotus Notes apps - do you make another costly > > upgrade, or settle for being marooned without product support? Time to move > > off Lotus Notes and onto the cloud with Force.com, apps are easier to build, > > use, and manage than apps on traditional platforms. Sign up for the Lotus > > Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d > > _______________________________________________ > > enlightenment-svn mailing list > > enl...@li... > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > > void *data exists already, just not in this context. azy_client_call is never meant to be used directly. -- Mike Blumenkrantz Zentific: We run the three-legged race individually. |