summaryrefslogtreecommitdiff
path: root/pjlib/src/pj/os_core_symbian.cpp
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-10-26 05:25:35 +0000
committerBenny Prijono <bennylp@teluu.com>2007-10-26 05:25:35 +0000
commitdbeb703e133db47a744bec62a7c990f7ef0750d5 (patch)
tree35f5c062a4fdcfb2f52ef7028dd1cef803606375 /pjlib/src/pj/os_core_symbian.cpp
parent5ed4dadd94be8e20c9b33f89772c135d992473d2 (diff)
Ticket #403: Ability to specify RConnection instance etc in PJLIB Symbian
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1525 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/src/pj/os_core_symbian.cpp')
-rw-r--r--pjlib/src/pj/os_core_symbian.cpp34
1 files changed, 30 insertions, 4 deletions
diff --git a/pjlib/src/pj/os_core_symbian.cpp b/pjlib/src/pj/os_core_symbian.cpp
index f13365a5..8f96ce09 100644
--- a/pjlib/src/pj/os_core_symbian.cpp
+++ b/pjlib/src/pj/os_core_symbian.cpp
@@ -153,10 +153,19 @@ TInt CPjTimeoutTimer::RunError(TInt aError)
PjSymbianOS::PjSymbianOS()
: isSocketServInitialized_(false), isResolverInitialized_(false),
- console_(NULL), selectTimeoutTimer_(NULL)
+ console_(NULL), selectTimeoutTimer_(NULL),
+ appSocketServ_(NULL), appConnection_(NULL), appHostResolver_(NULL)
{
}
+// Set parameters
+void PjSymbianOS::SetParameters(pj_symbianos_params *params)
+{
+ appSocketServ_ = (RSocketServ*) params->rsocketserv;
+ appConnection_ = (RConnection*) params->rconnection;
+ appHostResolver_ = (RHostResolver*) params->rhostresolver;
+}
+
// Get PjSymbianOS instance
PjSymbianOS *PjSymbianOS::Instance()
{
@@ -179,7 +188,10 @@ TInt PjSymbianOS::Initialize()
return err;
#endif
- if (!isSocketServInitialized_) {
+ /* Only create RSocketServ if application doesn't specify it
+ * in the parameters
+ */
+ if (!isSocketServInitialized_ && appSocketServ_ == NULL) {
err = socketServ_.Connect();
if (err != KErrNone)
goto on_error;
@@ -187,8 +199,13 @@ TInt PjSymbianOS::Initialize()
isSocketServInitialized_ = true;
}
- if (!isResolverInitialized_) {
- err = hostResolver_.Open(SocketServ(), KAfInet, KSockStream);
+ if (!isResolverInitialized_ && appHostResolver_ == NULL) {
+ if (Connection())
+ err = hostResolver_.Open(SocketServ(), KAfInet, KSockStream,
+ *Connection());
+ else
+ err = hostResolver_.Open(SocketServ(), KAfInet, KSockStream);
+
if (err != KErrNone)
goto on_error;
@@ -260,6 +277,15 @@ PJ_DEF(pj_uint32_t) pj_getpid(void)
}
+/* Set Symbian specific parameters */
+PJ_DEF(pj_status_t) pj_symbianos_set_params(pj_symbianos_params *prm)
+{
+ PJ_ASSERT_RETURN(prm != NULL, PJ_EINVAL);
+ PjSymbianOS::Instance()->SetParameters(prm);
+ return PJ_SUCCESS;
+}
+
+
/*
* pj_init(void).
* Init PJLIB!