From c205201320f80d9e25e554566da5b7f11203f871 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Mon, 2 Mar 2009 15:48:45 +0000 Subject: Ticket #732: - Added new Symbian specific API in PJLIB, pj_symbianos_set_connection_status(), to let PJLIB knows the connection status. - Added connection status checks before Symbian socket operations. - Added loop limiter in Symbian busy_sleep() to avoid the possibility of infinite loop. - Added sample of connection monitor in Symbian sample application (ua.cpp). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2481 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib/src/pj/os_core_symbian.cpp | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'pjlib/src/pj/os_core_symbian.cpp') diff --git a/pjlib/src/pj/os_core_symbian.cpp b/pjlib/src/pj/os_core_symbian.cpp index 5fbf3d47..983ce88a 100644 --- a/pjlib/src/pj/os_core_symbian.cpp +++ b/pjlib/src/pj/os_core_symbian.cpp @@ -151,7 +151,8 @@ TInt CPjTimeoutTimer::RunError(TInt aError) // PjSymbianOS::PjSymbianOS() -: isSocketServInitialized_(false), isResolverInitialized_(false), +: isConnectionUp_(false), + isSocketServInitialized_(false), isResolverInitialized_(false), console_(NULL), selectTimeoutTimer_(NULL), appSocketServ_(NULL), appConnection_(NULL), appHostResolver_(NULL), appHostResolver6_(NULL) @@ -229,6 +230,8 @@ TInt PjSymbianOS::Initialize() isResolverInitialized_ = true; } + isConnectionUp_ = true; + return KErrNone; on_error: @@ -239,6 +242,8 @@ on_error: // Shutdown void PjSymbianOS::Shutdown() { + isConnectionUp_ = false; + if (isResolverInitialized_) { hostResolver_.Close(); #if defined(PJ_HAS_IPV6) && PJ_HAS_IPV6!=0 @@ -252,15 +257,16 @@ void PjSymbianOS::Shutdown() isSocketServInitialized_ = false; } - if (console_) { - delete console_; - console_ = NULL; - } + delete console_; + console_ = NULL; - if (selectTimeoutTimer_) { - delete selectTimeoutTimer_; - selectTimeoutTimer_ = NULL; - } + delete selectTimeoutTimer_; + selectTimeoutTimer_ = NULL; + + appSocketServ_ = NULL; + appConnection_ = NULL; + appHostResolver_ = NULL; + appHostResolver6_ = NULL; } // Convert to Unicode @@ -306,6 +312,13 @@ PJ_DEF(pj_status_t) pj_symbianos_set_params(pj_symbianos_params *prm) } +/* Set connection status */ +PJ_DEF(void) pj_symbianos_set_connection_status(pj_bool_t up) +{ + PjSymbianOS::Instance()->SetConnectionStatus(up != 0); +} + + /* * pj_init(void). * Init PJLIB! -- cgit v1.2.3