contentmgmt/referencedrmagent/RefTestAgent/RefTestAgent/Reftestagentcontent.cpp
changeset 8 35751d3474b7
child 15 da2ae96f639b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentmgmt/referencedrmagent/RefTestAgent/RefTestAgent/Reftestagentcontent.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -0,0 +1,194 @@
+/*
+* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 <caf/caf.h>
+#include "Reftestagentcontent.h"
+#include "rtacontent.h"
+
+using namespace ContentAccess;
+
+CRefTestAgentContent* CRefTestAgentContent::NewL(const TDesC& aURI, TContentShareMode aShareMode)
+	{
+	CRefTestAgentContent* self = NewLC(aURI, aShareMode);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CRefTestAgentContent* CRefTestAgentContent::NewLC(const TDesC& aURI, TContentShareMode aShareMode)
+	{
+	CRefTestAgentContent* self=new(ELeave) CRefTestAgentContent();
+	CleanupStack::PushL(self);
+	self->ConstructL(aURI, aShareMode);
+	return self;
+	}
+
+CRefTestAgentContent* CRefTestAgentContent::NewL(RFile& aFile)
+	{
+	CRefTestAgentContent* self = NewLC(aFile);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CRefTestAgentContent* CRefTestAgentContent::NewLC(RFile& aFile)
+	{
+	CRefTestAgentContent* self=new(ELeave) CRefTestAgentContent();
+	CleanupStack::PushL(self);
+	self->ConstructL(aFile);
+	return self;
+	}
+
+
+CRefTestAgentContent::CRefTestAgentContent() 
+	{
+	}
+
+CRefTestAgentContent::~CRefTestAgentContent()
+	{
+	iContentSession.Close();
+	}
+  
+void CRefTestAgentContent::ConstructL(const TDesC& aURI, TContentShareMode aShareMode)
+	{
+	// default share mode of EFileShareReadersOnly
+	TUint mode = EFileStream | EFileRead;
+
+	if(aShareMode == EContentShareReadWrite)
+		{
+		mode |= EFileShareReadersOrWriters;
+		}
+	else if (aShareMode == EContentShareExclusive)
+		{
+		mode |= EFileShareExclusive;
+		}
+	else
+		{
+		mode |= EFileShareReadersOnly;
+		}
+
+	// open server session
+	User::LeaveIfError(iContentSession.Open(aURI, mode));
+	}
+
+void CRefTestAgentContent::ConstructL(RFile& aFile)
+	{
+	RFile file;
+	User::LeaveIfError(file.Duplicate(aFile));	
+	CleanupClosePushL(file);
+	// open server session
+	User::LeaveIfError(iContentSession.Open(file));
+	
+	// can now close our file handle, server owns it now
+	CleanupStack::PopAndDestroy(&file);
+	}
+
+TInt CRefTestAgentContent::OpenContainer(const TDesC& aUniqueId)
+	{
+	return iContentSession.OpenContainer(aUniqueId);
+	}
+
+TInt CRefTestAgentContent::CloseContainer()
+	{
+	return iContentSession.CloseContainer();
+	}
+
+void CRefTestAgentContent::GetEmbeddedObjectsL(RStreamablePtrArray<CEmbeddedObject>& aArray)
+	{
+	iContentSession.GetEmbeddedObjectsL(aArray);
+	}
+
+void CRefTestAgentContent::GetEmbeddedObjectsL(RStreamablePtrArray<CEmbeddedObject>& aArray, TEmbeddedType aType)
+	{
+	iContentSession.GetEmbeddedObjectsL(aArray, aType);  
+	}
+
+TInt CRefTestAgentContent::Search(RStreamablePtrArray<CEmbeddedObject>& aArray, const TDesC8& aMimeType, TBool )
+	{
+	return iContentSession.Search(aArray, aMimeType, ETrue); 
+	}
+
+TInt CRefTestAgentContent::GetAttribute(TInt aAttribute, TInt& aValue, const TDesC& aUniqueId)
+	{
+	return iContentSession.GetAttribute(aUniqueId, aAttribute, aValue);
+	}
+
+TInt CRefTestAgentContent::GetAttributeSet(RAttributeSet& aAttributeSet, const TDesC& aUniqueId)
+	{
+	return iContentSession.GetAttributeSet(aUniqueId, aAttributeSet);
+	}
+
+TInt CRefTestAgentContent::GetStringAttribute(TInt aAttribute, TDes& aValue, const TDesC& aUniqueId)
+	{
+	return iContentSession.GetStringAttribute(aUniqueId, aAttribute, aValue);
+	}
+
+TInt CRefTestAgentContent::GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, const TDesC& aUniqueId)
+	{
+	return iContentSession.GetStringAttributeSet(aUniqueId, aStringAttributeSet);
+	}
+
+TInt CRefTestAgentContent::AgentSpecificCommand(TInt aCommand, const TDesC8& aInputBuffer, TDes8& aOutputBuffer)
+	{
+	return iContentSession.AgentSpecificCommand(aCommand, aInputBuffer, aOutputBuffer);
+	}
+
+void CRefTestAgentContent::AgentSpecificCommand(TInt aCommand, const TDesC8& aInputBuffer, TDes8& aOutputBuffer, TRequestStatus& aStatus)
+	{
+	TInt err = AgentSpecificCommand(aCommand, aInputBuffer, aOutputBuffer);
+	TRequestStatus* status = &aStatus;
+	User::RequestComplete(status, err);
+	}
+
+void CRefTestAgentContent::NotifyStatusChange(TEventMask aEventMask, TRequestStatus& aStatus, const TDesC& aUniqueId)
+	{
+	TRAPD(err, iContentSession.NotifyStatusChangeL(aEventMask, aUniqueId));
+	TRequestStatus* status = &aStatus;
+	User::RequestComplete(status, err);
+	}
+
+TInt CRefTestAgentContent::CancelNotifyStatusChange(TRequestStatus& aStatus, const TDesC& aUniqueId)
+	{
+	TInt err = iContentSession.CancelNotifyStatusChange(aUniqueId);
+	TRequestStatus* status = &aStatus;
+	User::RequestComplete(status, err);
+	return err;
+	}
+
+void CRefTestAgentContent::RequestRights(TRequestStatus& aStatus , const TDesC& aUniqueId)
+	{
+	TRAPD(err, iContentSession.RequestRightsL(aUniqueId));
+	TRequestStatus* status = &aStatus;
+	User::RequestComplete(status, err);
+	}
+
+TInt CRefTestAgentContent::CancelRequestRights(TRequestStatus& aStatus, const TDesC& aUniqueId)
+	{
+	TInt err = iContentSession.CancelRequestRights(aUniqueId);
+	TRequestStatus* status = &aStatus;
+	User::RequestComplete(status, err);
+	return err;
+	}
+
+void CRefTestAgentContent::DisplayInfoL(TDisplayInfo aInfo, const TDesC& aUniqueId)
+	{
+	iContentSession.DisplayInfoL(aInfo, aUniqueId);
+	}
+
+TInt CRefTestAgentContent::SetProperty(TAgentProperty aProperty, TInt aValue)
+	{
+	return iContentSession.SetProperty(aProperty, aValue); 
+	}