syncmlfw/ds/dsutils/dbcaps/src/NSmlDbMeta.cpp
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/ds/dsutils/dbcaps/src/NSmlDbMeta.cpp	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,400 @@
+/*
+* Copyright (c) 2002-2004 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:  Source for CNSmlDbMeta class
+*
+*/
+
+
+// INCLUDE FILES
+#include <badesca.h>
+
+#include <nsmldebug.h>
+#include "nsmldbcaps.h"
+#include "smldevinfdtd.h"
+#include "smlmetinfdtd.h"
+#include "smldevinftags.h"
+
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// AddPCDataL
+// -----------------------------------------------------------------------------
+//
+CXMLElement* AddPCDataL( SmlPcdataListPtr_t* aList )
+	{
+	SmlPcdataListPtr_t itemL = new (ELeave) SmlPcdataList_t();
+	CleanupStack::PushL(itemL);
+	itemL->data = new (ELeave) SmlPcdata_t();
+	GenericListAddL(aList, itemL);
+	CleanupStack::Pop(); // itemL
+	return itemL->data;
+	}
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::NewL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CNSmlDbMeta* CNSmlDbMeta::NewL()
+	{
+	//_DBG_FILE("CNSmlDbMeta::NewL(): begin");
+	CNSmlDbMeta* self = CNSmlDbMeta::NewLC();
+	CleanupStack::Pop(); // self
+	//_DBG_FILE("CNSmlDbMeta::NewL(): end");
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::NewLC
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CNSmlDbMeta* CNSmlDbMeta::NewLC()
+	{
+	//_DBG_FILE("CNSmlDbMeta::NewLC(): begin");
+	CNSmlDbMeta* self = new (ELeave) CNSmlDbMeta();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	//_DBG_FILE("CNSmlDbMeta::NewLC(): end");
+	return self;
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::CNSmlDbMeta
+// -----------------------------------------------------------------------------
+//
+CNSmlDbMeta::CNSmlDbMeta()
+	{
+	//_DBG_FILE("CNSmlDbMeta::CNSmlDbMeta(): begin");
+	//_DBG_FILE("CNSmlDbMeta::CNSmlDbMeta(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CNSmlDbMeta::ConstructL()
+	{
+	//_DBG_FILE("CNSmlDbMeta::ConstructL(): begin");
+	//_DBG_FILE("CNSmlDbMeta::ConstructL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::~CNSmlDbMeta
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CNSmlDbMeta::~CNSmlDbMeta()
+	{
+	//_DBG_FILE("CNSmlDbMeta::~CNSmlDbMeta(): begin");
+	delete iMetInf;
+	//_DBG_FILE("CNSmlDbMeta::~CNSmlDbMeta(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::MetInfL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C sml_metinf_metinf_s* CNSmlDbMeta::MetInfL() const
+	{
+	//_DBG_FILE("CNSmlDbMeta::MetInf(): begin");
+	//_DBG_FILE("CNSmlDbMeta::MetInf(): end");
+	sml_metinf_metinf_s* temp = iMetInf;
+	iMetInf = 0;
+	return temp;
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::Clear
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::Clear()
+	{
+	//_DBG_FILE("CNSmlDbMeta::Clear(): begin");
+	delete iMetInf;
+	iMetInf = 0;
+	//_DBG_FILE("CNSmlDbMeta::Clear(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::CreateHandlerL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CNSmlDbMetaHandler* CNSmlDbMeta::CreateHandlerL() const
+	{
+	//_DBG_FILE("CNSmlDbMeta::CreateHandlerL(): begin");
+	//_DBG_FILE("CNSmlDbMeta::CreateHandlerL(): end");
+	return new (ELeave) CNSmlDbMetaHandler(iMetInf);
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetFormatL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetFormatL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetFormatL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->format )
+		{
+		iMetInf->format = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->format->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetFormatL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetTypeL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetTypeL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetTypeL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->type )
+		{
+		iMetInf->type = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->type->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetTypeL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetMarkL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetMarkL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetMarkL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->mark )
+		{
+		iMetInf->mark = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->mark->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetMarkL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetSizeL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetSizeL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetSizeL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->size )
+		{
+		iMetInf->size = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->size->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetSizeL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetNextNonceL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetNextNonceL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetNextNonceL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->nextnonce )
+		{
+		iMetInf->nextnonce = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->nextnonce->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetNextNonceL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetVersionL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetVersionL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetVersionL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->version )
+		{
+		iMetInf->version = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->version->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetVersionL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetMaxMsgSizeL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetMaxMsgSizeL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetMaxMsgSizeL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->maxmsgsize )
+		{
+		iMetInf->maxmsgsize = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->maxmsgsize->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetMaxMsgSizeL(): end");
+	}
+	
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetMaxObjSizeL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetMaxObjSizeL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetMaxObjSizeL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->maxobjsize )
+		{
+		iMetInf->maxobjsize = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->maxobjsize->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetMaxObjSizeL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetMemSharedL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetMemSharedL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetMemSharedL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->mem )
+		{
+		iMetInf->mem = new (ELeave) sml_metinf_mem_s();
+		}
+	if( !iMetInf->mem->shared )
+		{
+		iMetInf->mem->shared = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->mem->shared->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetMemSharedL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetMemFreeMemL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetMemFreeMemL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetMemFreeMemL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->mem )
+		{
+		iMetInf->mem = new (ELeave) sml_metinf_mem_s();
+		}
+	if( !iMetInf->mem->free )
+		{
+		iMetInf->mem->free = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->mem->free->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetMemFreeMemL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetMemFreeIDL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetMemFreeIDL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetMemFreeIDL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->mem )
+		{
+		iMetInf->mem = new (ELeave) sml_metinf_mem_s();
+		}
+	if( !iMetInf->mem->freeid )
+		{
+		iMetInf->mem->freeid = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->mem->freeid->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetMemFreeIDL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetAnchorNextL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetAnchorNextL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetAnchorNextL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->anchor )
+		{
+		iMetInf->anchor = new (ELeave) sml_metinf_anchor_s();
+		}
+	if( !iMetInf->anchor->next )
+		{
+		iMetInf->anchor->next = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->anchor->next->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetAnchorNextL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetAnchorLastL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetAnchorLastL( const TDesC8& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetAnchorLastL(): begin");
+	MakeSureMetInfExistsL();
+	if( !iMetInf->anchor )
+		{
+		iMetInf->anchor = new (ELeave) sml_metinf_anchor_s();
+		}
+	if( !iMetInf->anchor->last )
+		{
+		iMetInf->anchor->last = new (ELeave) SmlPcdata_t();
+		}
+	iMetInf->anchor->last->SetDataL(aValue);
+	//_DBG_FILE("CNSmlDbMeta::SetAnchorLastL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::SetEmiL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CNSmlDbMeta::SetEmiL( const CDesC8Array& aValue )
+	{
+	//_DBG_FILE("CNSmlDbMeta::SetVersionL(): begin");
+	MakeSureMetInfExistsL();
+	for( TInt i = 0; i < aValue.MdcaCount(); i++ )
+		{
+		CXMLElement* e = AddPCDataL(&iMetInf->emi);
+		e->SetDataL(aValue[i]);
+		}
+	//_DBG_FILE("CNSmlDbMeta::SetVersionL(): end");
+	}
+
+// -----------------------------------------------------------------------------
+// CNSmlDbMeta::MakeSureMetInfExistsL
+// -----------------------------------------------------------------------------
+//
+void CNSmlDbMeta::MakeSureMetInfExistsL()
+	{
+	//_DBG_FILE("CNSmlDbMeta::MakeSureMetInfExistsL(): begin");
+	if( !iMetInf )
+		{
+		iMetInf = new (ELeave) sml_metinf_metinf_s();
+		}
+	//_DBG_FILE("CNSmlDbMeta::MakeSureMetInfExistsL(): end");
+	}
+
+//  End of File