summaryrefslogtreecommitdiff
path: root/pjlib/src/pj/os_core_symbian.cpp
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-03-02 15:48:45 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-03-02 15:48:45 +0000
commitc205201320f80d9e25e554566da5b7f11203f871 (patch)
tree9c36ccb99099beae87670633c72e63358c95df80 /pjlib/src/pj/os_core_symbian.cpp
parent33e9dc9f2613a86b0fcfea7d669d1b83934d45fd (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.cpp31
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!