javaextensions/wma/mms/pushplugin/src/mmsserverconnectionfactory.cpp
changeset 78 71ad690e91f5
parent 21 2a9601315dfc
--- a/javaextensions/wma/mms/pushplugin/src/mmsserverconnectionfactory.cpp	Fri Sep 17 16:44:34 2010 +0300
+++ b/javaextensions/wma/mms/pushplugin/src/mmsserverconnectionfactory.cpp	Mon Oct 04 11:29:25 2010 +0300
@@ -90,6 +90,40 @@
     JELOG2(EWMA);
 }
 
+ServerConnection&
+MmsServerConnectionFactory::createPushServerConn(const std::wstring& aUri,
+        const std::wstring& aFilter,
+        ConnectionListener* aListener,
+        PendingConnectionListener* aPendingConnListener)
+{
+    JELOG2(EWMA);
+    ScopedLock lockObj(mMutex);
+
+    SrvConnContainerIter_t iter = mServerConnections.find(aUri);
+    if (iter != mServerConnections.end())
+    {
+        if ((SrvConnContainerData::NORMAL == iter->second.connType()))
+        {
+            LOG(EWMA,EInfo,"Clearing Unregister flag");
+            MmsServerConnection* serverConn = 0;
+            serverConn = reinterpret_cast<MmsServerConnection*>(iter->second.getConn());
+            serverConn->clearUnregister();
+        }
+    }
+    return ServerConnectionFactoryBase::createPushServerConn(aUri,aFilter,
+                                           aListener,aPendingConnListener);
+}
+
+void MmsServerConnectionFactory::deletePushConnection(const std::wstring& aUri)
+{
+    JELOG2(EWMA);
+    LOG1(EWMA,EInfo,"MmsServerConnection on ID %S", aUri.c_str());
+    MmsServerConnection* serverConn = 0;
+    serverConn = reinterpret_cast<MmsServerConnection*>(getPushConnection(aUri));
+    if (0 != serverConn)
+       serverConn->setUnregister();
+    ServerConnectionFactoryBase::deletePushConnection(aUri);
+}
 /**
  *
  */