diff -r 000000000000 -r b497e44ab2fc syncmlfw/ds/dsutils/dbcaps/src/NSmlDbMeta.cpp --- /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 + +#include +#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