diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2009-03-02 15:48:45 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2009-03-02 15:48:45 +0000 |
commit | c205201320f80d9e25e554566da5b7f11203f871 (patch) | |
tree | 9c36ccb99099beae87670633c72e63358c95df80 /pjlib/src/pj/os_core_symbian.cpp | |
parent | 33e9dc9f2613a86b0fcfea7d669d1b83934d45fd (diff) |
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
Diffstat (limited to 'pjlib/src/pj/os_core_symbian.cpp')
-rw-r--r-- | pjlib/src/pj/os_core_symbian.cpp | 31 |
1 files changed, 22 insertions, 9 deletions
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! |