/*
* Copyright (c) 2007-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:
* Information shared between the Streaming Reference Agent client and server implementations.
*
*/
/**
@file
@internalComponent
@released
*/
#ifndef SRACOMMON_H_
#define SRACOMMON_H_
#include <e32base.h>
#include <e32std.h>
#include <e32cmn.h>
#include <e32ver.h>
#include <e32uid.h>
#include <s32mem.h>
#include <stringpool.h>
#ifdef INTERNALLY_ENABLE_UPWARD_DEPENDENCY
#include <sdpdocument.h>
#include <sdpmediafield.h>
#include <sdpattributefield.h>
#include <sdpcodecstringpool.h>
#include <sdpfmtattributefield.h>
#include <sdpcodecstringconstants.h>
#endif
#include <caf/streaming/streamcaftypes.h>
#include <caf/streaming/keyassociation.h>
#include <caf/streaming/keystreamsink.h>
#include <caf/caferr.h>
_LIT(KSraName, "StreamingReferenceAgent"); ///< Identifies Streaming Reference Agent server.
const TInt KSraVerMajor = 1; ///< Streaming Reference Agent version major component.
const TInt KSraVerMinor = 0; ///< Streaming Reference Agent version minor component.
const TInt KSraVerBuild = 0; ///< Streaming Reference Agent version build component.
inline TVersion SraVersion();
/**
Executable which hosts the Streaming Reference Agent. Required to launch the process.
@see KUidStreamingTReferenceAgent
*/
_LIT(KSraImageName, "sraserver.exe");
/**
Hosting the executable's secure ID. Required to launch the process.
@see KStreamingReferenceAgentImageName
*/
const TUid KUidStreamingReferenceAgent = {0x10285A1C};
inline TUidType SraImageFullUid();
/**
Delay in microseconds before the Streaming Reference Agent server is shut down, after
the last remaining session has been closed.
*/
const TInt KSraShutdownPeriod = 2 * 1000 * 1000;
enum TSraFunction
/**
Functions supported by the Streaming Reference Agent session.
*/
{
EGetAttribute=0, ///< Gets an attribute.
EGetStringAttributeSize, ///< Gets the size of a string attribute.
EGetStringAttributeData, ///< Gets the data of a string attribute.
EGetPostDeliveryRights, ///< Gets the handle of a post-acqusition rights object file and the size of the mime type data.
ESendKeyStream, ///< Sends a key stream (an encrypted short-term key).
ESetKeyStreamSink, ///< Sends a key stream sink to the test agent server.
ESetSdpKeyStream, ///< Sends an SDP key stream field object to the streaming reference agent server.
ESetSdpDocument, ///< Sends an SDP document object to the streaming reference agent server.
ESetIpSecAssoc ///< Sends an IPSec association to the streaming reference agent server.
};
/** The file extension of the rights object files. */
_LIT(KRoFileExtension,".dr");
/**
Streaming Reference Agent clients are panicked with this category when invalid
input to the server is detected.
*/
_LIT(KSraClientPanicCat, "SRA-Client");
enum TSraClientPanic
/**
Reasons why the SRA server might panic its clients.
*/
{
ESraClientBadDesc = 0, ///< Client provided a bad descriptor as an IPC argument.
ESraNotSupported, ///< The service requested by the client is not supported.
ESraOutofRange ///< The requested attribute is out of the defined attributes range.
};
void PanicClient(const RMessagePtr2& aMessage, TSraClientPanic aReason);
enum TSraServerPanic
/**
The server is panicked with these reasons when it detects an invalid state.
*/
{
EOutstandingSessions = 0, ///< Server object destroyed with outstanding sessions.
};
void PanicServer(TSraServerPanic aPanic);
#include "sracommon.inl"
#endif /*SRACOMMON_H_*/