diff options
author | Remko Tronçon <git@el-tramo.be> | 2013-08-16 21:11:56 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2013-08-17 09:32:03 (GMT) |
commit | 92ffd5b909badeafabbf73b73a6946a5440c8be5 (patch) | |
tree | a33a6086ace038c63751403ae29573ae161846b2 /Sluift/sluift.cpp | |
parent | ac6ff12e174b832326c6d89784d4c5e53044eecf (diff) | |
download | swift-contrib-92ffd5b909badeafabbf73b73a6946a5440c8be5.zip swift-contrib-92ffd5b909badeafabbf73b73a6946a5440c8be5.tar.bz2 |
Fix building sluift as .dll on Mac OS X.
Change-Id: Ia8043d66ef676048e7fe1d0347b65e8d64aa3bd5
Diffstat (limited to 'Sluift/sluift.cpp')
-rw-r--r-- | Sluift/sluift.cpp | 114 |
1 files changed, 8 insertions, 106 deletions
diff --git a/Sluift/sluift.cpp b/Sluift/sluift.cpp index 0a653bb..397d7f3 100644 --- a/Sluift/sluift.cpp +++ b/Sluift/sluift.cpp @@ -1,4 +1,4 @@ /* - * Copyright (c) 2011 Remko Tronçon + * Copyright (c) 2011-2013 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. @@ -18,7 +18,7 @@ #include "Watchdog.h" -#include "SluiftException.h" #include "ResponseSink.h" #include "Lua/Value.h" +#include "ClientHelpers.h" using namespace Swift; @@ -43,5 +43,5 @@ static BoostNetworkFactories networkFactories(&eventLoop); class SluiftClient { public: - SluiftClient(const JID& jid, const std::string& password) : tracer(NULL) { + SluiftClient(const JID& jid, const std::string& password, lua_State* L) : L(L), tracer(NULL) { client = new Client(jid, password, &networkFactories); client->setAlwaysTrustCertificates(); @@ -86,5 +86,5 @@ class SluiftClient { if (watchdog.getTimedOut()) { client->disconnect(); - throw SluiftException("Timeout while connecting"); + luaL_error(L, "Timeout while connecting"); } } @@ -184,9 +184,10 @@ class SluiftClient { void handleDisconnected(const boost::optional<ClientError>& error) { if (error) { - throw SluiftException(*error); + luaL_error(L, getClientErrorString(*error).c_str()); } } private: + lua_State* L; Client* client; ClientOptions options; @@ -206,5 +207,4 @@ static inline SluiftClient* getClient(lua_State* L) { static int sluift_client_connect(lua_State *L) { - try { SluiftClient* client = getClient(L); std::string host; @@ -221,28 +221,14 @@ static int sluift_client_connect(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_async_connect(lua_State *L) { - try { getClient(L)->connect(); return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_wait_connected(lua_State *L) { - try { getClient(L)->waitConnected(); return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_is_connected(lua_State *L) { @@ -252,15 +238,9 @@ static int sluift_client_is_connected(lua_State *L) { static int sluift_client_disconnect(lua_State *L) { - try { getClient(L)->disconnect(); return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_set_version(lua_State *L) { - try { eventLoop.runOnce(); @@ -278,11 +258,6 @@ static int sluift_client_set_version(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_get_contacts(lua_State *L) { - try { eventLoop.runOnce(); @@ -309,11 +284,6 @@ static int sluift_client_get_contacts(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_get_version(lua_State *L) { - try { SluiftClient* client = getClient(L); int timeout = -1; @@ -359,11 +329,6 @@ static int sluift_client_get_version(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_send_message(lua_State *L) { - try { eventLoop.runOnce(); @@ -372,11 +337,6 @@ static int sluift_client_send_message(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_send_presence(lua_State *L) { - try { eventLoop.runOnce(); @@ -385,11 +345,6 @@ static int sluift_client_send_presence(lua_State *L) { return 0; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_get(lua_State *L) { - try { SluiftClient* client = getClient(L); JID jid; @@ -418,11 +373,6 @@ static int sluift_client_get(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_set(lua_State *L) { - try { SluiftClient* client = getClient(L); JID jid; @@ -451,11 +401,6 @@ static int sluift_client_set(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_send(lua_State *L) { - try { eventLoop.runOnce(); @@ -464,8 +409,4 @@ static int sluift_client_send(lua_State *L) { return 0; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_set_options(lua_State* L) { @@ -510,5 +451,4 @@ static void pushEvent(lua_State* L, Stanza::ref event) { static int sluift_client_for_event(lua_State *L) { - try { eventLoop.runOnce(); @@ -541,11 +481,6 @@ static int sluift_client_for_event(lua_State *L) { } } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_get_next_event(lua_State *L) { - try { eventLoop.runOnce(); @@ -558,12 +493,7 @@ static int sluift_client_get_next_event(lua_State *L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_add_contact(lua_State* L) { - try { eventLoop.runOnce(); SluiftClient* client = getClient(L); @@ -622,11 +552,6 @@ static int sluift_client_add_contact(lua_State* L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_remove_contact(lua_State* L) { - try { eventLoop.runOnce(); SluiftClient* client = getClient(L); @@ -645,11 +570,6 @@ static int sluift_client_remove_contact(lua_State* L) { return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_confirm_subscription(lua_State* L) { - try { eventLoop.runOnce(); SluiftClient* client = getClient(L); @@ -658,11 +578,6 @@ static int sluift_client_confirm_subscription(lua_State* L) { return 0; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_cancel_subscription(lua_State* L) { - try { eventLoop.runOnce(); SluiftClient* client = getClient(L); @@ -671,8 +586,4 @@ static int sluift_client_cancel_subscription(lua_State* L) { return 0; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_client_gc (lua_State *L) { @@ -712,5 +623,5 @@ static const luaL_reg sluift_client_functions[] = { static int sluift_new_client(lua_State *L) { - try { + luaL_checkstring(L, 1); JID jid(std::string(luaL_checkstring(L, 1))); std::string password(luaL_checkstring(L, 2)); @@ -720,11 +631,7 @@ static int sluift_new_client(lua_State *L) { lua_setmetatable(L, -2); - *client = new SluiftClient(jid, password); + *client = new SluiftClient(jid, password, L); return 1; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_jid_to_bare(lua_State *L) { @@ -753,5 +660,4 @@ static int sluift_jid_resource(lua_State *L) { static int sluift_sleep(lua_State *L) { - try { eventLoop.runOnce(); @@ -764,8 +670,4 @@ static int sluift_sleep(lua_State *L) { return 0; } - catch (const SluiftException& e) { - return luaL_error(L, e.getReason().c_str()); - } -} static int sluift_index(lua_State *L) { |