// 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 "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 )
{
TInt ret=KErrNone;
TRAPD(err,ret=iContentSession.SearchL(aArray, aMimeType, ETrue));
if(err==KErrNone)
return ret;
else
return err;
}
TInt CRefTestAgentContent::GetAttribute(TInt aAttribute, TInt& aValue, const TDesC& aUniqueId)
{
return iContentSession.GetAttribute(aUniqueId, aAttribute, aValue);
}
TInt CRefTestAgentContent::GetAttributeSet(RAttributeSet& aAttributeSet, const TDesC& aUniqueId)
{
TInt ret=KErrNone;
TRAPD(err,ret=iContentSession.GetAttributeSetL(aUniqueId, aAttributeSet));
if(err==KErrNone)
return ret;
else
return err;
}
TInt CRefTestAgentContent::GetStringAttribute(TInt aAttribute, TDes& aValue, const TDesC& aUniqueId)
{
return iContentSession.GetStringAttribute(aUniqueId, aAttribute, aValue);
}
TInt CRefTestAgentContent::GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, const TDesC& aUniqueId)
{
TInt ret=KErrNone;
TRAPD(err,ret=iContentSession.GetStringAttributeSetL(aUniqueId, aStringAttributeSet));
if(err==KErrNone)
return ret;
else
return err;
}
TInt CRefTestAgentContent::AgentSpecificCommand(TInt /*aCommand*/, const TDesC8& /*aInputBuffer*/, TDes8& /*aOutputBuffer*/)
{
return KErrCANotSupported;
}
void CRefTestAgentContent::AgentSpecificCommand(TInt aCommand, const TDesC8& aInputBuffer, TDes8& aOutputBuffer, TRequestStatus& aStatus)
{
TRequestStatus *ptr = &aStatus;
User::RequestComplete(ptr, AgentSpecificCommand(aCommand, aInputBuffer, aOutputBuffer));
}
void CRefTestAgentContent::NotifyStatusChange(TEventMask , TRequestStatus& aStatus, const TDesC& )
{
TRequestStatus *ptr = &aStatus;
User::RequestComplete(ptr, KErrCANotSupported);
}
TInt CRefTestAgentContent::CancelNotifyStatusChange(TRequestStatus& , const TDesC& )
{
return KErrCANotSupported;
}
void CRefTestAgentContent::RequestRights(TRequestStatus& aStatus , const TDesC& )
{
TRequestStatus *ptr = &aStatus;
User::RequestComplete(ptr, KErrCANotSupported);
}
TInt CRefTestAgentContent::CancelRequestRights(TRequestStatus& , const TDesC& )
{
return KErrCANotSupported;
}
void CRefTestAgentContent::DisplayInfoL(TDisplayInfo , const TDesC& )
{
User::Leave(KErrCANotSupported);
}
TInt CRefTestAgentContent::SetProperty(TAgentProperty /*aProperty*/, TInt /*aValue*/)
{
return KErrNone;
}