sipproviderplugins/sipprovider/sipconnectionplugins/src/SIPParamsAndEvents.cpp
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sipproviderplugins/sipprovider/sipconnectionplugins/src/SIPParamsAndEvents.cpp	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,175 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// SIPSCPR_subconparams.cpp
+// SIP extension parameters definition
+// 
+//
+
+/**
+ @file
+ @publishedAll
+*/
+
+#include <ecom/ecom.h>
+#include <comms-infras/metatypearray.h>
+#include <comms-infras/metatypevariablelen.h>
+//#include <ecom/implementationproxy.h>
+#include <comms-infras/metabuffer.h>
+#include <cs_subconevents.h>
+
+#include "SIP_subconparams.h"
+#include "SIP_subconevents.h"
+
+//-=========================================================
+// Data/functions required for instantiating ECOM Plugin
+//-=========================================================
+  /* const TImplementationProxy ImplementationTable[] =
+   	{
+  	IMPLEMENTATION_PROXY_ENTRY(KSubConSIPParametersUid, CSIPSubConnExtensionParamsFactory::NewL),
+  	IMPLEMENTATION_PROXY_ENTRY(KSubConSIPEventsUid, CSIPSubConnExtensionEventsFactory::NewL)
+   	};
+   
+   
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+   {
+   aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+   return ImplementationTable;
+   }
+   */
+
+//-=========================================================
+// SIP Extension Events & Paramemeters follow
+//-=========================================================
+
+START_ATTRIBUTE_TABLE( CSubConSIPResponseEvent, KSubConSIPEventsUid, KSubConSIPResponseEventType )
+	REGISTER_ATTRIBUTE( CSubConSIPResponseEvent, iResponse, TMetaNumber)
+END_ATTRIBUTE_TABLE()
+
+START_ATTRIBUTE_TABLE( CSubConSIPAuthenticationRequiredEvent, KSubConSIPEventsUid, KSubConSIPAuthenticationRequiredEventType )
+	REGISTER_ATTRIBUTE( CSubConSIPAuthenticationRequiredEvent, iRealm, TMetaBuf8)
+END_ATTRIBUTE_TABLE()
+
+START_ATTRIBUTE_TABLE( CSubConSIPNotificationEvent, KSubConSIPEventsUid, KSubConSIPNotificationEventType )
+	REGISTER_ATTRIBUTE( CSubConSIPNotificationEvent, iNotification, TMetaBuf8)
+END_ATTRIBUTE_TABLE()
+
+START_ATTRIBUTE_TABLE( CSubConSIPInviteParamSet, KSubConSIPParametersUid, KSubConSIPInviteParamsType )
+	REGISTER_ATTRIBUTE( CSubConSIPInviteParamSet, iReqUri, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPInviteParamSet, iFrom, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPInviteParamSet, iTo, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPInviteParamSet, iContact, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPInviteParamSet, iContentType, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPInviteParamSet, iContentSubType, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPInviteParamSet, iContent, TMetaBuf8 )
+END_ATTRIBUTE_TABLE()
+
+START_ATTRIBUTE_TABLE( CSubConSIPSubscribeParamSet, KSubConSIPParametersUid, KSubConSIPSubscribeParamsType )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iReqUri, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iFrom, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iTo, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iContact, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iEventType, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iAcceptType, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iAcceptSubType, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iExpires, TMeta<TInt> )
+	REGISTER_ATTRIBUTE( CSubConSIPSubscribeParamSet, iAutoRefresh, TMeta<TBool> )		
+END_ATTRIBUTE_TABLE()
+
+START_ATTRIBUTE_TABLE( CSubConSIPAuthenticateParamSet, KSubConSIPParametersUid, KSubConSIPAuthenticateParamsType )
+	REGISTER_ATTRIBUTE( CSubConSIPAuthenticateParamSet, iUserName, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPAuthenticateParamSet, iPassword, TMetaBuf8 )
+	REGISTER_ATTRIBUTE( CSubConSIPAuthenticateParamSet, iRealm, TMetaBuf8 )	
+END_ATTRIBUTE_TABLE()
+
+
+CSubConExtensionParameterSet* CSIPSubConnExtensionParamsFactory::NewL(TAny* aConstructionParameters)
+	{
+	TInt32 type = reinterpret_cast<TInt32>(aConstructionParameters);
+	switch (type)
+		{
+	case KSubConSIPInviteParamsType:
+		return new (ELeave) CSubConSIPInviteParamSet;
+	case KSubConSIPSubscribeParamsType:
+		return new (ELeave) CSubConSIPSubscribeParamSet;
+	case KSubConSIPAuthenticateParamsType:
+		return new (ELeave) CSubConSIPAuthenticateParamSet;
+	default:
+		User::Leave(KErrNotFound);
+		}
+	return NULL;
+	}
+
+CSubConSIPInviteParamSet::~CSubConSIPInviteParamSet()	
+	{
+	// Cleanup the Memory associated with it
+	iReqUri.Close();
+	iFrom.Close();
+	iTo.Close();
+	iContact.Close();
+	iContentType.Close();
+	iContentSubType.Close();
+	iContent.Close();
+	}
+	
+CSubConSIPSubscribeParamSet::~CSubConSIPSubscribeParamSet()
+	{
+	// Cleanup the Memory associated with it
+	iReqUri.Close();
+	iFrom.Close();
+	iTo.Close();
+	iContact.Close();
+	iEventType.Close();
+	iAcceptType.Close();
+	iAcceptSubType.Close();
+	}
+	
+CSubConSIPAuthenticateParamSet::~CSubConSIPAuthenticateParamSet()
+    {
+	iUserName.Close();
+	iPassword.Close();
+	iRealm.Close();	        
+    }
+
+
+CSubConNotificationEvent* CSIPSubConnExtensionEventsFactory::NewL(TAny* aConstructionParameters)
+	{
+	TInt32 type = reinterpret_cast<TInt32>(aConstructionParameters);
+	switch (type)
+		{
+		case KSubConSIPResponseEventType:
+		    return new (ELeave) CSubConSIPResponseEvent;
+		case KSubConSIPAuthenticationRequiredEventType:
+		    return new (ELeave) CSubConSIPAuthenticationRequiredEvent;
+		case KSubConSIPNotificationEventType:
+			return new (ELeave) CSubConSIPNotificationEvent;
+	default:
+		User::Leave(KErrNotFound);
+		}
+	return NULL;
+	}
+
+CSubConSIPResponseEvent::~CSubConSIPResponseEvent()
+	{
+	}
+
+CSubConSIPAuthenticationRequiredEvent::~CSubConSIPAuthenticationRequiredEvent()
+    {
+    iRealm.Close();
+    }
+
+CSubConSIPNotificationEvent::~CSubConSIPNotificationEvent()
+	{
+	iNotification.Close();
+	}