--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/server/src/ncddependencyinfo.cpp Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2006-2008 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: CNcdDependencyInfo
+*
+*/
+
+
+#include <s32strm.h>
+
+#include "ncddependencyinfo.h"
+#include "ncdnodeidentifier.h"
+#include "catalogsutils.h"
+
+
+CNcdDependencyInfo* CNcdDependencyInfo::NewL( const TDesC& aName,
+ const TDesC& aVersion,
+ const TDesC& aUid,
+ CNcdNodeIdentifier* aIdentifier )
+ {
+ CNcdDependencyInfo* self =
+ CNcdDependencyInfo::NewLC( aName, aVersion, aUid, aIdentifier );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+CNcdDependencyInfo* CNcdDependencyInfo::NewLC( const TDesC& aName,
+ const TDesC& aVersion,
+ const TDesC& aUid,
+ CNcdNodeIdentifier* aIdentifier )
+ {
+ CleanupStack::PushL( aIdentifier );
+ CNcdDependencyInfo* self =
+ new( ELeave ) CNcdDependencyInfo( aIdentifier );
+ CleanupStack::Pop( aIdentifier );
+ CleanupStack::PushL( self );
+ self->ConstructL( aName, aVersion, aUid );
+ return self;
+ }
+
+void CNcdDependencyInfo::ConstructL( const TDesC& aName,
+ const TDesC& aVersion,
+ const TDesC& aUid )
+ {
+ DLTRACEIN((""));
+
+ TInt uid( 0 );
+
+ // Error is ignored on purpose, if the given text doesn't contain
+ // a hex int then uid is set a 0
+ TRAP_IGNORE( uid = DesHexToIntL( aUid ) );
+ DLTRACE(( _L("aUid: %S was converted to %x"), &aUid, uid ));
+ iUid.iUid = uid;
+
+ iName = aName.AllocL();
+ iVersion = aVersion.AllocL();
+ }
+
+
+CNcdDependencyInfo* CNcdDependencyInfo::NewL( const TDesC& aName,
+ const TDesC& aVersion,
+ TUid aUid,
+ CNcdNodeIdentifier* aIdentifier )
+ {
+ CNcdDependencyInfo* self =
+ CNcdDependencyInfo::NewLC( aName, aVersion, aUid, aIdentifier );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+CNcdDependencyInfo* CNcdDependencyInfo::NewLC( const TDesC& aName,
+ const TDesC& aVersion,
+ TUid aUid,
+ CNcdNodeIdentifier* aIdentifier )
+ {
+ CleanupStack::PushL( aIdentifier );
+ CNcdDependencyInfo* self =
+ new( ELeave ) CNcdDependencyInfo( aIdentifier );
+ CleanupStack::Pop( aIdentifier );
+ CleanupStack::PushL( self );
+ self->ConstructL( aName, aVersion, aUid );
+ return self;
+ }
+
+void CNcdDependencyInfo::ConstructL( const TDesC& aName,
+ const TDesC& aVersion,
+ TUid aUid )
+ {
+ DLTRACEIN(("aUid: %x", aUid.iUid));
+
+ iUid.iUid = aUid.iUid;
+
+ iName = aName.AllocL();
+ iVersion = aVersion.AllocL();
+ }
+
+
+CNcdDependencyInfo* CNcdDependencyInfo::NewL( RReadStream& aReadStream )
+ {
+ CNcdDependencyInfo* self =
+ CNcdDependencyInfo::NewLC( aReadStream );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+CNcdDependencyInfo* CNcdDependencyInfo::NewLC( RReadStream& aReadStream )
+ {
+ CNcdDependencyInfo* self =
+ new( ELeave ) CNcdDependencyInfo( NULL );
+ CleanupStack::PushL( self );
+ self->ConstructL( aReadStream );
+ return self;
+ }
+
+void CNcdDependencyInfo::ConstructL( RReadStream& aReadStream )
+ {
+ InternalizeL( aReadStream );
+ }
+
+
+CNcdDependencyInfo::CNcdDependencyInfo( CNcdNodeIdentifier* aIdentifier ):
+ CBase(),
+ iIdentifier( aIdentifier ),
+ iDependencyState( ENcdDependencyMissing )
+ {
+
+ }
+
+CNcdDependencyInfo::~CNcdDependencyInfo()
+ {
+ delete iName;
+ delete iVersion;
+ delete iIdentifier;
+ }
+
+
+const TDesC& CNcdDependencyInfo::Name() const
+ {
+ return *iName;
+ }
+
+const TDesC& CNcdDependencyInfo::Version() const
+ {
+ return *iVersion;
+ }
+
+TUid CNcdDependencyInfo::Uid() const
+ {
+ return iUid;
+ }
+
+
+const CNcdNodeIdentifier* CNcdDependencyInfo::Identifier() const
+ {
+ return iIdentifier;
+ }
+
+
+void CNcdDependencyInfo::SetDependencyState( TNcdDependencyState aState )
+ {
+ DLTRACEIN(("aState: %d", aState));
+ iDependencyState = aState;
+ }
+
+
+TNcdDependencyState CNcdDependencyInfo::DependencyState() const
+ {
+ DLTRACEIN(("Current state: %d", iDependencyState));
+ return iDependencyState;
+ }
+
+
+void CNcdDependencyInfo::InternalizeL( RReadStream& aReadStream )
+ {
+ DLTRACEIN((""));
+ InternalizeDesL( iName, aReadStream );
+ InternalizeDesL( iVersion, aReadStream );
+ iUid.iUid = aReadStream.ReadInt32L();
+ delete iIdentifier;
+ iIdentifier = NULL;
+
+ if ( aReadStream.ReadInt8L() )
+ {
+ iIdentifier = CNcdNodeIdentifier::NewL( aReadStream );
+ }
+
+ iDependencyState = static_cast<TNcdDependencyState>(
+ aReadStream.ReadInt32L() );
+ }
+
+
+void CNcdDependencyInfo::ExternalizeL( RWriteStream& aWriteStream ) const
+ {
+ DLTRACEIN((""));
+ ExternalizeDesL( Name(), aWriteStream );
+ ExternalizeDesL( Version(), aWriteStream );
+ aWriteStream.WriteInt32L( Uid().iUid );
+ if ( Identifier() == NULL )
+ {
+ aWriteStream.WriteInt8L( EFalse );
+ }
+ else
+ {
+ aWriteStream.WriteInt8L( ETrue );
+ Identifier()->ExternalizeL( aWriteStream );
+ }
+ aWriteStream.WriteInt32L( iDependencyState );
+ }