linklayerprotocols/pppnif/SVJCOMP/VJ.CPP
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/pppnif/SVJCOMP/VJ.CPP	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,111 @@
+// Copyright (c) 1997-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:
+//
+
+#include <networking/vj.h>
+
+
+// Force export of non-mangled name
+extern "C"
+    {
+
+EXPORT_C CVJCompFactory* NewVJCompFactoryL(void)
+	{
+	return new (ELeave) CVJFactory;
+	}
+
+	}
+	
+//
+// CVJFactory definitions
+//
+
+CVJFactory::CVJFactory()
+	{}
+
+void CVJFactory::InstallL()
+	{}
+
+CVJCompressorIf* CVJFactory::NewVJCompressorL( TInt aSlots, TInt aCompressConnId)
+/**
+Create and construct a new CVJCompressor object.
+
+@param aSlots Maximum number of VJ connections
+@param aCompressConnId Whether to compress the connection number 
+
+@return New CVJCompressor object
+*/
+	{
+	CVJCompressor* Comp = new (ELeave) CVJCompressor();
+
+	CleanupStack::PushL(TCleanupItem(CNifFactory::Cleanup, Comp));
+	Comp->ConstructL(this, aSlots, aCompressConnId);
+	CleanupStack::Pop();
+
+	return Comp;
+	}
+
+CVJDeCompressorIf* CVJFactory::NewVJDeCompressorL( TInt aSlots )
+/**
+Create and construct a new CVJDeCompressor object.
+
+@param aSlots Value of the highest VJ connection number to be received
+
+@return New CVJDeCompressor object
+*/
+	{
+	CVJDeCompressor* DeComp = new (ELeave) CVJDeCompressor();
+
+	CleanupStack::PushL(TCleanupItem(CNifFactory::Cleanup, DeComp));
+	DeComp->ConstructL(this, aSlots);
+	CleanupStack::Pop();
+
+	return DeComp;
+	}
+
+//
+// TVJCompHdr definitions
+//
+
+TVJCompHdr::TVJCompHdr()
+	:
+	iNextPtr(NULL), iConnectionId(0)
+	{
+	    // Ignore lint "not initialized" warning about iIPHeader and iTCPHeader
+	}
+
+void TVJCompHdr::StoreTCPIPHeader(ThdrIP* aHeader)
+/**
+Stores the TCP/IP header.
+
+@param aHeader TCP/IP packet header
+*/
+	{
+	iIPHeader = *aHeader;
+	iTCPHeader = *(ThdrTCP::NetPtr(aHeader));
+	iTCPHeader.NetSetChecksum(0);
+	MarkValid();
+	}
+
+void TVJCompHdr::RetrieveTCPIPHeader(ThdrIP* aIPHeader, ThdrTCP* aTCPHeader)
+/**
+Retrieves the TCP/IP header.
+
+@param aIPHeader Returns the IP packet header
+@param aTCPHeader Returns the TCP packet header
+*/
+	{
+	*aIPHeader = iIPHeader;
+	*aTCPHeader = iTCPHeader;
+	}