mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/sipclientstub/src/CSIPRequestElements.cpp
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/sipclientstub/src/CSIPRequestElements.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,237 @@
+/*
+* Copyright (c) 2007 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:
+*
+*/
+
+
+#include "siprequestelements.h"
+#include "sipmessageelements.h"
+#include "sipfromheader.h"
+#include "siptoheader.h"
+#include "sipstrings.h"
+#include "sipstrconsts.h"
+#include "_sipcodecdefs.h"
+
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::NewL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CSIPRequestElements* CSIPRequestElements::NewL(CUri8* aRemoteUri)
+	{
+    CSIPRequestElements* self = CSIPRequestElements::NewLC(aRemoteUri);
+    CleanupStack::Pop (self);
+    return self;
+	}	
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::NewLC
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CSIPRequestElements* CSIPRequestElements::NewLC(CUri8* aRemoteUri)
+	{
+	CSIPRequestElements* self = new(ELeave)CSIPRequestElements;
+    CleanupStack::PushL (self);
+    self->ConstructL (aRemoteUri);
+    return self;
+	}
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::CSIPRequestElements
+// -----------------------------------------------------------------------------
+//
+CSIPRequestElements::CSIPRequestElements() 
+	{
+	}
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CSIPRequestElements::ConstructL(CUri8* aRemoteUri)
+	{
+	__ASSERT_ALWAYS (aRemoteUri != 0, User::Leave(KErrArgument));
+
+	iMessageElements = CSIPMessageElements::NewL();
+    SetRemoteUriL(aRemoteUri);
+	}
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::~CSIPRequestElements
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CSIPRequestElements::~CSIPRequestElements() 
+	{
+    delete iRemoteURI;
+    iMethod.Close();
+	delete iMessageElements;
+	}
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::SetToHeaderL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CSIPRequestElements::SetToHeaderL(CSIPToHeader* aTo)
+    {
+    iMessageElements->SetToL(aTo);
+    }
+			
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::ToHeader
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const CSIPToHeader* CSIPRequestElements::ToHeader() const  
+    {
+    return iMessageElements->To();
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::SetFromHeaderL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CSIPRequestElements::SetFromHeaderL(CSIPFromHeader* aFrom)
+    {
+    iMessageElements->SetFromL(aFrom);
+    }
+			
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::FromHeader
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const CSIPFromHeader* CSIPRequestElements::FromHeader() const
+    {
+    return iMessageElements->From();
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::CSeqHeader
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const CSIPCSeqHeader* CSIPRequestElements::CSeqHeader() const
+    {
+    return iMessageElements->CSeq();
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::SetRemoteURIL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CSIPRequestElements::SetRemoteUriL(CUri8* aRemoteUri)
+    {
+	__ASSERT_ALWAYS (aRemoteUri != 0, User::Leave(KErrArgument));
+
+    delete iRemoteURI;
+    iRemoteURI = aRemoteUri;
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::RemoteURI
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const CUri8& CSIPRequestElements::RemoteUri() const
+    {
+    return *(iRemoteURI);
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::SetMethodL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CSIPRequestElements::SetMethodL(RStringF aMethod)
+    {
+	__ASSERT_ALWAYS (aMethod.DesC().Length() > 0, User::Leave(KErrArgument));
+
+	iMethod.Close();
+	iMethod = aMethod.Copy();
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::Method
+// -----------------------------------------------------------------------------
+//
+EXPORT_C RStringF CSIPRequestElements::Method() const
+    {
+    return iMethod;
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::MessageElements
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const CSIPMessageElements& CSIPRequestElements::MessageElements() const
+    {
+    return *iMessageElements;
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::MessageElements
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CSIPMessageElements& CSIPRequestElements::MessageElements()
+    {
+    return *iMessageElements;
+    }
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::InternalizeL
+// -----------------------------------------------------------------------------
+//
+CSIPRequestElements* CSIPRequestElements::InternalizeL(RReadStream& aReadStream)
+	{
+	CSIPRequestElements* self = new(ELeave)CSIPRequestElements;
+    CleanupStack::PushL(self);
+    self->DoInternalizeL(aReadStream);
+	CleanupStack::Pop(self);
+    return self;
+	}
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::DoInternalizeL
+// -----------------------------------------------------------------------------
+//
+void CSIPRequestElements::DoInternalizeL(RReadStream& aReadStream)
+	{
+    // For incoming requests the method is always present
+/*	TUint32 methodLength = aReadStream.ReadUint32L();
+    if (methodLength > 0)
+        {
+	    HBufC8* methodBuf = HBufC8::NewLC(methodLength);
+	    TPtr8 methodPtr(methodBuf->Des());
+	    aReadStream.ReadL(methodPtr,methodLength);
+	    iMethod = SIPStrings::Pool().OpenFStringL(methodPtr);
+	    CleanupStack::PopAndDestroy(methodBuf);
+        }
+    aReadStream.ReadUint8L(); // remote-URI always present
+    iRemoteURI = CURIContainer::InternalizeL(aReadStream);
+    iMessageElements = CSIPMessageElements::InternalizeL(aReadStream);
+*/	}
+
+// -----------------------------------------------------------------------------
+// CSIPRequestElements::ExternalizeL
+// -----------------------------------------------------------------------------
+//
+void CSIPRequestElements::ExternalizeL(RWriteStream& aWriteStream) const
+	{
+/*	TPtrC8 method(iMethod.DesC());
+    // For outgoing requests in some cases the method is filled in ServerCore
+    if (method.Length() > 0)
+        {
+        aWriteStream.WriteUint32L(method.Length());
+	    aWriteStream.WriteL(method);
+        }
+    aWriteStream.WriteUint8L(1); // remote-URI always present
+    iRemoteURI->ExternalizeL(aWriteStream);
+    iMessageElements->ExternalizeL(aWriteStream);
+*/	}