upnpcontentdirectoryglobals.h File Reference

const TInt KMaxIntegerLen

const TIntKMaxIntegerLen

const TInt KMaxIDResLength

const TIntKMaxIDResLength

const TInt KMaxLongIntegerLen

const TIntKMaxLongIntegerLen

const TInt KMaxBoolLen

const TIntKMaxBoolLen

const TInt KColNameMaxLenth

const TIntKColNameMaxLenth

const TInt KDefaultGranularity

const TIntKDefaultGranularity

const TInt KRespBufGranularity

const TIntKRespBufGranularity

const TInt KMinDiskSpace

const TIntKMinDiskSpace

const TInt KDownloadContId

const TIntKDownloadContId

const TInt KAvailableNestedLevels

const TIntKAvailableNestedLevels

const TInt KMaxUpnpLongStringLen

const TIntKMaxUpnpLongStringLen

const TInt KMaxUpnpStringLen

const TIntKMaxUpnpStringLen

const TInt KCommitEveryNum

const TIntKCommitEveryNum

const TInt KOnlyOnePair

const TIntKOnlyOnePair

const TInt KExtensionLength

const TIntKExtensionLength

const TInt KThumbnailWidth

const TIntKThumbnailWidth

const TInt KThumbnailHeight

const TIntKThumbnailHeight

const TInt KDefaultThumbnailSize

const TIntKDefaultThumbnailSize

const TInt KHttpGetStarted

const TIntKHttpGetStarted

const TInt KHttpPostStarted

const TIntKHttpPostStarted

const TInt KThumbnailDirLen

const TIntKThumbnailDirLen

const TInt KCompactWeight

const TIntKCompactWeight

const TInt KDeleteWeight

const TIntKDeleteWeight

const TInt KExecuteWeight

const TIntKExecuteWeight

const TInt KCharSize

const TIntKCharSize

const TInt KAutoDestroyTimeLimit

const TIntKAutoDestroyTimeLimit

const TInt KMapKeyMaxLength

const TIntKMapKeyMaxLength

const TInt KRandomMax

const TIntKRandomMax

const TInt KRandomMin

const TIntKRandomMin

const TInt KRandomRangeLength

const TIntKRandomRangeLength

const TInt KMaxSlashAmount

const TIntKMaxSlashAmount

const TInt KCharLen

const TIntKCharLen

const TLitC< sizeof(L"z:objects.xml")/2 > KObjectsXmlFileName

const TLitC< sizeof(L"z:objects.xml")/2 >KObjectsXmlFileName[static]

const TLitC< sizeof(L"C:")/2 > KDefaultMediaDrive

const TLitC< sizeof(L"C:")/2 >KDefaultMediaDrive[static]

const TLitC< sizeof(L"Media")/2 > KMediaPath

const TLitC< sizeof(L"Media")/2 >KMediaPath[static]

const TLitC< sizeof(L"Download")/2 > KDownloadPath

const TLitC< sizeof(L"Download")/2 >KDownloadPath[static]

const TLitC8< sizeof("Media")> KMediaPath8

const TLitC8< sizeof("Media")>KMediaPath8[static]

const TLitC< sizeof(L"Thumbnail")/2 > KThumbnailPath

const TLitC< sizeof(L"Thumbnail")/2 >KThumbnailPath[static]

const TLitC< sizeof(L"/Thumbnail/")/2 > KSearchThumbnailPathPattern

const TLitC< sizeof(L"/Thumbnail/")/2 >KSearchThumbnailPathPattern[static]

const TLitC< sizeof(L"Media/Thumbnail")/2 > KMediaThumbnailPath

const TLitC< sizeof(L"Media/Thumbnail")/2 >KMediaThumbnailPath[static]

const TLitC< sizeof(L"\\")/2 > KMainDir

const TLitC< sizeof(L"\\")/2 >KMainDir[static]

const TLitC< sizeof(L"\\")/2 > KDiskPathElSep

const TLitC< sizeof(L"\\")/2 >KDiskPathElSep[static]

const TLitC< sizeof(L"/")/2 > KSlash

const TLitC< sizeof(L"/")/2 >KSlash[static]

const TLitC< sizeof(L".jpeg")/2 > KDefaultThumbExtension

const TLitC< sizeof(L".jpeg")/2 >KDefaultThumbExtension[static]

const TLitC< sizeof(L"Thumbnail\\")/2 > KThumbDirectory11

const TLitC< sizeof(L"Thumbnail\\")/2 >KThumbDirectory11[static]

const TLitC8< sizeof("image/jpeg")> KThumbMimeType

const TLitC8< sizeof("image/jpeg")>KThumbMimeType[static]

const TLitC< sizeof(L"data\\Download\\Media\\")/2 > KDefaultUploadDir

const TLitC< sizeof(L"data\\Download\\Media\\")/2 >KDefaultUploadDir[static]

const TLitC< sizeof(L"thumbnail\\")/2 > KThumbnailSubDir

const TLitC< sizeof(L"thumbnail\\")/2 >KThumbnailSubDir[static]

const TLitC< sizeof(L";")/2 > KSemicolon

const TLitC< sizeof(L";")/2 >KSemicolon[static]

const TLitC8< sizeof(";")> KSemicolon8

const TLitC8< sizeof(";")>KSemicolon8[static]

const TLitC< sizeof(L":")/2 > KCol

const TLitC< sizeof(L":")/2 >KCol[static]

const TLitC< sizeof(L",")/2 > KCommaStr

const TLitC< sizeof(L",")/2 >KCommaStr[static]

const TLitC8< sizeof(",")> KCommaStr8

const TLitC8< sizeof(",")>KCommaStr8[static]

const TLitC< sizeof(L"false")/2 > KFalseString

const TLitC< sizeof(L"false")/2 >KFalseString[static]

const TLitC8< sizeof("false")> KFalseString8

const TLitC8< sizeof("false")>KFalseString8[static]

const TLitC< sizeof(L"0")/2 > KFalseValue

const TLitC< sizeof(L"0")/2 >KFalseValue[static]

const TLitC8< sizeof("0")> KFalseValue8

const TLitC8< sizeof("0")>KFalseValue8[static]

const TLitC< sizeof(L"*")/2 KAsterisk

const TLitC< sizeof(L"*")/2KAsterisk[static]

const TLitC8< sizeof("*") KAsterisk8

const TLitC8< sizeof("*")KAsterisk8[static]

const TLitC< sizeof(L"@")/2 > KAtStr

const TLitC< sizeof(L"@")/2 >KAtStr[static]

const TLitC8< sizeof("@")> KAtStr8

const TLitC8< sizeof("@")>KAtStr8[static]

const TLitC8< sizeof("#")> KHash8

const TLitC8< sizeof("#")>KHash8[static]

const TLitC8< sizeof("%23")> KHashASCII8

const TLitC8< sizeof("%23")>KHashASCII8[static]

const TLitC< sizeof(L"-1")/2 > KMinusOne

const TLitC< sizeof(L"-1")/2 >KMinusOne[static]

const TLitC8< sizeof("-1")> KMinusOne8

const TLitC8< sizeof("-1")>KMinusOne8[static]

const TLitC< sizeof(L".")/2 > KDot

const TLitC< sizeof(L".")/2 >KDot[static]

const TLitC8< sizeof(".")> KDot8

const TLitC8< sizeof(".")>KDot8[static]

const TLitC< sizeof(L".")/2 > KPathSeparator

const TLitC< sizeof(L".")/2 >KPathSeparator[static]

const TLitC8< sizeof(".")> KPathSeparator8

const TLitC8< sizeof(".")>KPathSeparator8[static]

const TLitC< sizeof(L"'")/2 > KQuot

const TLitC< sizeof(L"'")/2 >KQuot[static]

const TLitC< sizeof(L"_")/2 > KUndersc

const TLitC< sizeof(L"_")/2 >KUndersc[static]

const TLitC< sizeof(L"true")/2 > KTrueString

const TLitC< sizeof(L"true")/2 >KTrueString[static]

const TLitC8< sizeof("true")> KTrueString8

const TLitC8< sizeof("true")>KTrueString8[static]

const TLitC< sizeof(L"1")/2 > KTrueValue

const TLitC< sizeof(L"1")/2 >KTrueValue[static]

const TLitC8< sizeof("1")> KTrueValue8

const TLitC8< sizeof("1")>KTrueValue8[static]

const TLitC< sizeof(L"")/2 > KNullString

const TLitC< sizeof(L"")/2 >KNullString[static]

const TLitC< sizeof(L" ")/2 > KSpc

const TLitC< sizeof(L" ")/2 >KSpc[static]

const TLitC8< sizeof("\r\n")> KNewLine

const TLitC8< sizeof("\r\n")>KNewLine[static]

const TLitC8< sizeof("\n")> KLF8

const TLitC8< sizeof("\n")>KLF8[static]

const TLitC8< sizeof(" ")> KTwoSpaces

const TLitC8< sizeof(" ")>KTwoSpaces[static]

const TLitC8< sizeof("")> KNullString8

const TLitC8< sizeof("")>KNullString8[static]

const TLitC8< sizeof("DLNA.ORG_AnyContainer")> KAnyContainerIndicator8

const TLitC8< sizeof("DLNA.ORG_AnyContainer")>KAnyContainerIndicator8[static]

const TLitC< sizeof(L"DLNA.ORG_AnyContainer")/2 > KAnyContainerIndicator

const TLitC< sizeof(L"DLNA.ORG_AnyContainer")/2 >KAnyContainerIndicator[static]

const TInt KAnyContainerId

const TIntKAnyContainerId

const TLitC8< sizeof("z")> KForbiddenDrivez

const TLitC8< sizeof("z")>KForbiddenDrivez[static]

const TLitC8< sizeof("Z")> KForbiddenDriveZ

const TLitC8< sizeof("Z")>KForbiddenDriveZ[static]

const TLitC8< sizeof("/?/private*") KForbiddenPrivatePattern

const TLitC8< sizeof("/?/private*")KForbiddenPrivatePattern[static]

const TLitC< sizeof(L"object")/2 > KObjectTableName

const TLitC< sizeof(L"object")/2 >KObjectTableName[static]

const TLitC8< sizeof("object")> KObjectTableName8

const TLitC8< sizeof("object")>KObjectTableName8[static]

const TLitC< sizeof(L"id")/2 > KObjIdColName

const TLitC< sizeof(L"id")/2 >KObjIdColName[static]

const TLitC< sizeof(L"parentID")/2 > KObjParentIdColName

const TLitC< sizeof(L"parentID")/2 >KObjParentIdColName[static]

const TLitC< sizeof(L"title")/2 > KObjTiltleColName

const TLitC< sizeof(L"title")/2 >KObjTiltleColName[static]

const TLitC8< sizeof("title")> KObjTiltleColName8

const TLitC8< sizeof("title")>KObjTiltleColName8[static]

const TLitC< sizeof(L"class")/2 > KObjClassColName

const TLitC< sizeof(L"class")/2 >KObjClassColName[static]

const TLitC8< sizeof("class")> KObjClassColName8

const TLitC8< sizeof("class")>KObjClassColName8[static]

const TLitC< sizeof(L"restricted")/2 > KObjRestrictedColName

const TLitC< sizeof(L"restricted")/2 >KObjRestrictedColName[static]

const TLitC< sizeof(L"searchable")/2 > KObjSearchableColName

const TLitC< sizeof(L"searchable")/2 >KObjSearchableColName[static]

const TLitC< sizeof(L"refID")/2 > KObjRefIdColName

const TLitC< sizeof(L"refID")/2 >KObjRefIdColName[static]

const TLitC< sizeof(L"path")/2 > KObjPathColName

const TLitC< sizeof(L"path")/2 >KObjPathColName[static]

const TLitC< sizeof(L"obj_id_index")/2 > KObjIdIndexName

const TLitC< sizeof(L"obj_id_index")/2 >KObjIdIndexName[static]

const TLitC< sizeof(L"ref_id_index")/2 > KRefIdIndexName

const TLitC< sizeof(L"ref_id_index")/2 >KRefIdIndexName[static]

const TLitC< sizeof(L"element")/2 > KElementTableName

const TLitC< sizeof(L"element")/2 >KElementTableName[static]

const TLitC8< sizeof("element")> KElementTableName8

const TLitC8< sizeof("element")>KElementTableName8[static]

const TLitC< sizeof(L"elm_id")/2 > KElmIdColName

const TLitC< sizeof(L"elm_id")/2 >KElmIdColName[static]

const TLitC< sizeof(L"elm_name")/2 > KElmNameColName

const TLitC< sizeof(L"elm_name")/2 >KElmNameColName[static]

const TLitC< sizeof(L"elm_has_attribute")/2 > KElmHasAttrColName

const TLitC< sizeof(L"elm_has_attribute")/2 >KElmHasAttrColName[static]

const TLitC< sizeof(L"elm_obj_id")/2 > KElmObjIdColName

const TLitC< sizeof(L"elm_obj_id")/2 >KElmObjIdColName[static]

const TLitC< sizeof(L"elm_value")/2 > KElmValueColName

const TLitC< sizeof(L"elm_value")/2 >KElmValueColName[static]

const TLitC< sizeof(L"elm_is_required")/2 > KElmIsRequiredColName

const TLitC< sizeof(L"elm_is_required")/2 >KElmIsRequiredColName[static]

const TLitC< sizeof(L"elm_id_index")/2 > KElmIdIndexName

const TLitC< sizeof(L"elm_id_index")/2 >KElmIdIndexName[static]

const TLitC< sizeof(L"elm_obj_id_index")/2 > KElmObjIdIndexName

const TLitC< sizeof(L"elm_obj_id_index")/2 >KElmObjIdIndexName[static]

const TLitC< sizeof(L"attribute")/2 > KAttributeTableName

const TLitC< sizeof(L"attribute")/2 >KAttributeTableName[static]

const TLitC8< sizeof("attribute")> KAttributeTableName8

const TLitC8< sizeof("attribute")>KAttributeTableName8[static]

const TLitC< sizeof(L"atr_id")/2 > KAtrIdColName

const TLitC< sizeof(L"atr_id")/2 >KAtrIdColName[static]

const TLitC< sizeof(L"atr_name")/2 > KAtrNameColName

const TLitC< sizeof(L"atr_name")/2 >KAtrNameColName[static]

const TLitC< sizeof(L"atr_elm_id")/2 > KAtrElmIdColName

const TLitC< sizeof(L"atr_elm_id")/2 >KAtrElmIdColName[static]

const TLitC< sizeof(L"atr_elm_id")/2 > KAtrObjIdColName

const TLitC< sizeof(L"atr_elm_id")/2 >KAtrObjIdColName[static]

const TLitC< sizeof(L"atr_value")/2 > KAtrValueColName

const TLitC< sizeof(L"atr_value")/2 >KAtrValueColName[static]

const TLitC< sizeof(L"atr_is_required")/2 > KAtrIsRequiredColName

const TLitC< sizeof(L"atr_is_required")/2 >KAtrIsRequiredColName[static]

const TLitC< sizeof(L"atr_id_index")/2 > KAtrIdIndexName

const TLitC< sizeof(L"atr_id_index")/2 >KAtrIdIndexName[static]

const TLitC< sizeof(L"atr_elm_id_index")/2 > KAtrElmIdIndexName

const TLitC< sizeof(L"atr_elm_id_index")/2 >KAtrElmIdIndexName[static]

const TLitC< sizeof(L"atr_id_obj")/2 > KAtrIdObjColName

const TLitC< sizeof(L"atr_id_obj")/2 >KAtrIdObjColName[static]

const TLitC< sizeof(L"resources")/2 > KResourcesTableName

const TLitC< sizeof(L"resources")/2 >KResourcesTableName[static]

const TLitC< sizeof(L"rsc_id")/2 > KRscIdColName

const TLitC< sizeof(L"rsc_id")/2 >KRscIdColName[static]

const TLitC< sizeof(L"rsc_path")/2 > KRscPathColName

const TLitC< sizeof(L"rsc_path")/2 >KRscPathColName[static]

const TLitC< sizeof(L"rsc_readonly")/2 > KRscReadonlyColName

const TLitC< sizeof(L"rsc_readonly")/2 >KRscReadonlyColName[static]

const TLitC< sizeof(L"rsc_thumbnail")/2 > KRscThumbnailColName

const TLitC< sizeof(L"rsc_thumbnail")/2 >KRscThumbnailColName[static]

const TLitC< sizeof(L"rsc_id_obj_index")/2 > KRscIdObjIndexName

const TLitC< sizeof(L"rsc_id_obj_index")/2 >KRscIdObjIndexName[static]

const TLitC< sizeof(L"rsc_id_index")/2 > KRscIdIndexName

const TLitC< sizeof(L"rsc_id_index")/2 >KRscIdIndexName[static]

const TLitC< sizeof(L"rsc_id_obj")/2 > KRscIdObjColName

const TLitC< sizeof(L"rsc_id_obj")/2 >KRscIdObjColName[static]

const TLitC< sizeof(L"sequences")/2 > KSequencesTableName

const TLitC< sizeof(L"sequences")/2 >KSequencesTableName[static]

const TLitC< sizeof(L"seq_col_name")/2 > KSeqColNameColName

const TLitC< sizeof(L"seq_col_name")/2 >KSeqColNameColName[static]

const TLitC< sizeof(L"seq_next_key")/2 > KSeqNextKeyColName

const TLitC< sizeof(L"seq_next_key")/2 >KSeqNextKeyColName[static]

const TLitC< sizeof(L"seq_col_name_index")/2 > KSeqColNameIndexName

const TLitC< sizeof(L"seq_col_name_index")/2 >KSeqColNameIndexName[static]

const TLitC< sizeof(L"uriId")/2 > KImportUriId

const TLitC< sizeof(L"uriId")/2 >KImportUriId[static]

const TLitC8< sizeof("uriId")> KImportUriId8

const TLitC8< sizeof("uriId")>KImportUriId8[static]

const TLitC< sizeof(L"c:AVMediaServerStore")/2 > KDatabaseFileName

const TLitC< sizeof(L"c:AVMediaServerStore")/2 >KDatabaseFileName[static]

const TLitC8< sizeof("object.container")> KContainerClass8

const TLitC8< sizeof("object.container")>KContainerClass8[static]

const TLitC< sizeof(L"object.item")/2 > KItemClass

const TLitC< sizeof(L"object.item")/2 >KItemClass[static]

const TLitC8< sizeof("class")> KClassTagName

const TLitC8< sizeof("class")>KClassTagName[static]

const TLitC8< sizeof("title")> KTitleTagName

const TLitC8< sizeof("title")>KTitleTagName[static]

const TLitC< sizeof(L"upnp:class")/2 > KClassTagNameWithNs

const TLitC< sizeof(L"upnp:class")/2 >KClassTagNameWithNs[static]

const TLitC8< sizeof("upnp:class")> KClassTagNameWithNs8

const TLitC8< sizeof("upnp:class")>KClassTagNameWithNs8[static]

const TLitC< sizeof(L"dc:title")/2 > KTitleTagNameWithNs

const TLitC< sizeof(L"dc:title")/2 >KTitleTagNameWithNs[static]

const TLitC8< sizeof("dc:title")> KTitleTagNameWithNs8

const TLitC8< sizeof("dc:title")>KTitleTagNameWithNs8[static]

const TLitC< sizeof(L"res")/2 > KResStr

const TLitC< sizeof(L"res")/2 >KResStr[static]

const TLitC8< sizeof("&quot;http-get:*:") KMimeBegin

const TLitC8< sizeof("&quot;http-get:*:")KMimeBegin[static]

const TLitC8< sizeof(":*&quot;") KMimeEnd

const TLitC8< sizeof(":*&quot;")KMimeEnd[static]

const TLitC8< sizeof("imageItem")> KItemTypeImage

const TLitC8< sizeof("imageItem")>KItemTypeImage[static]

const TLitC8< sizeof("audioItem")> KItemTypeAudio

const TLitC8< sizeof("audioItem")>KItemTypeAudio[static]

const TLitC8< sizeof("videoItem")> KItemTypeVideo

const TLitC8< sizeof("videoItem")>KItemTypeVideo[static]

const TLitC8< sizeof("http:const static TLitC8<sizeof( "< xmrcc:** > *" )-1, "< xmrcc:*class MUpnpThumbnailCreatorObserver{public:virtual void NotifyThumbnailResultL(CUpnpThumbnailCreator *aThCreator, TInt aResult)=0;};class CUpnpThumbnailCreator:public CActive{public:enum TPhase{EDecode, EEncode, EScaling, ESleep, EDecodeObject};static CUpnpThumbnailCreator *NewLC(MUpnpThumbnailCreatorObserver *aObserver);~CUpnpThumbnailCreator();void CreateL(const TDesC &aSourceFile, const TDesC &aThumbName);TFileName GetFileName();TPtrC GetFileExt();TFileName GetPath();TSize GetSize(const TDesC &aSourceFile);private:void ConstructL();CUpnpThumbnailCreator(MUpnpThumbnailCreatorObserver *aObserver);void EncodeAndConvertL();void RunL();TInt RunError(TInt aErr);void DoCancel();void CalculateSize(TSize &aLoadSize);TInt DivisionCeil(const TInt aVal, const TInt aDiv);private:MUpnpThumbnailCreatorObserver *iObserver;RFs iFs;CImageDecoder *iDecoder;CImageEncoder *iEncoder;CBitmapScaler *iScaler;CFbsBitmap *iBitmap;TSize iSize;TParse iParse;TBuf< KExtensionLength > iExtension;TPhase iPhase;TFileName iFileName;TPath iPath;TUid iImageType;TSize iOldSize;TFrameInfo iInfo;};#32"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcdsettings.h"1#define C_CUPNPCDSETTINGS_Hclass CUpnpDevice;class MUpnpThumbnailCreatorObserver;class MUpnpContentDirectoryEventObserver;class MUpnpTransferInterface;struct TUpnpCdSettings{CUpnpDevice *iDevice;const TDesC &iDownloadDir;const TDesC &iThumbnailDir;const TDesC &iDescriptionPath;MUpnpThumbnailCreatorObserver *iThmbObs;TBool iCreateThumbnail;TInt iMaxRequestCount;MUpnpContentDirectoryEventObserver *iEventObserver;const TDesC &iObjectsXmlPath;MUpnpTransferInterface *iTransfer;};#33"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferobserver.h"1#define C_CUPNPTRANSFEROBSERVER_Hclass MUpnpTransferObserver{public:virtual void TransferCompletedL(TInt akey, TInt aResultCode)=0;virtual void TransferProgress(TInt akey, TInt aBytes, TInt aTotalBytes)=0;};#34"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/epoc32/include/platform/mw/upnphttpservertransactioncreator.h"1#define UPNPHTTPSERVERTRANSACTIONCREATOR_H_class CUpnpHttpServerTransaction;class TDesC8;class TInetAddr;class MUpnpHttpServerTransactionCreator{public:virtual void NewTransactionL(const TDesC8 &aMethod, const TDesC8 &aUri, const TInetAddr &aSender, CUpnpHttpServerTransaction *&aTrans)=0;};#35"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/epoc32/include/platform/mw/upnphttpserverobserver.h"1#define C_MUPNPHTTPSERVEROBSERVER_Hclass CUpnpHttpMessage;class MUpnpHttpServerObserver{public:virtual void HttpEventLD(CUpnpHttpMessage *aMessage)=0;};#36"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2class CUpnpElementFactory;class TUpnpContainerUpdateId;class CUpnpFileTransferTimerObserver;class CUpnpObject;class CUpnpItem;class CUpnpContentDirectoryDb;class CProtocolInfo;class CUpnpMetadataStorage;class CUpnpAutoDestroyObjectList;class MUpnpContentDirectoryEventObserver;class CUpnpFileTransferEvent;class MUpnpCdsSender;class CUpnpStateHandler;class CUpnpTransferUploader;class CUpnpMimeMapper;class CUpnpTransferController;class MUpnpTransferInterface;class CUpnpDlnaFilter;class CUpnpHttpServerSession;class CUpnpSecurityManager;static const TInt KMaxImportExportTransfers=3;const static TLitC8< sizeof("ContentDirectory:1")> KContentDirectoryType={sizeof("ContentDirectory:1")-1,"ContentDirectory:1"};class CUpnpContentDirectory:public CUpnpServiceImplementation, public MUpnpContentDirectoryDataFinder, public MUpnpThumbnailCreatorObserver, public MUpnpTransferObserver, public MUpnpHttpServerTransactionCreator, public MUpnpHttpServerObserver{public:static CUpnpContentDirectory *NewL(TUpnpCdSettings aSettings, CUpnpMetadataStorage *aMetadataStorage, MUpnpTransferInterface *aTransfer);virtual ~CUpnpContentDirectory();IMPORT_C void SetSender(MUpnpCdsSender *aSender);public:CUpnpStateHandler *CUpnpContentDirectory::StateHandler();void AutoDestroyEventL(TInt aObjId, TBool aDeleteObj);void ActionReceivedLD(CUpnpAction *aAction);IMPORT_C void UnknownHttpEventReceivedL(CUpnpHttpMessage &aHttpMsg);void AddressChangeL();void StateVariableEvented(const TDesC8 &aVariableName);TInt CheckImportUriL(const TDesC8 &aImportUri);void InsertRealIpAndPortL(TDes8 &aString);HBufC8 *InsertIpAndPortPlaceholderL(const TDesC8 &aString);CUpnpDlnaProtocolInfo *GetProtocolInfoByImportUriL(const TDesC8 &aImportUri);TInt GetProtocolInfoL(const TDesC8 &aContentUri, CUpnpDlnaProtocolInfo *&aProtocolInfo);void GetTitleForUriL(TInt aObjectId, TPtr &aValue);TInt FindSharedFolderL(const TDesC &aUrlPath, const TDesC &aFileName, HBufC *&aSystemPath);const TPtrC MediaRealDir();void SetDownloadDirectoryL(const TDesC &aDownloadDir);void SetThumbnailDirectoryL(const TDesC &aDownloadDir);TInetAddr GetAddress();IMPORT_C void SendActionL(CUpnpAction *aAction, TUpnpErrorCode aError);IMPORT_C void SendMessageL(CUpnpHttpMessage *aMessage);CUpnpAutoDestroyObjectList *GetAutoDestroyObjectList();IMPORT_C void HttpTransferEventReceivedL(CUpnpHttpMessage &aHttpMsg);void NotifyTransferFailL(TInt aSessionId, TInt aStatusCode);void NotifyTransferStoppedL(TInt aSessionId, CUpnpFileTransfer::TTransferType aType);void HttpGetStartedSoapNotifyL(TInt aSessionId);void HttpPostStartedL(TInt aSessionId);TCurrentAction ExecutedAction();void SetExecutedAction(TCurrentAction aAction);void HttpResponseReceivedL(TInt aSessionId, TInt aStatusCode);MUpnpContentDirectoryEventObserver *EventObserver();public:void TransferCompleteL(TInt aResId, TInt aObjId);void TransferProgress(TInt aId, TInt aBytes, TInt aTotalBytes);void TransferStartL(const TDesC8 &aImpUri);void RemoveFileTransferFromTransferIDsStateVariableL(TInt aTransferID);void AddFileTransferToTransferIDsStateVariableL(TInt aTransferID);TBool IsDrmFileL(const TDesC &aFileName);TBool IsDrmFileL(const TDesC8 &aFileName);TInt CreateResTagL(TInt aSessionId, TDesC8 &aFilePath, TInt aImportNumber, TBool aOnlyThumbnail=EFalse);void NotifyOutgoingTransferL(TInt aSessionId);CUpnpContentDirectoryDb *ContentDirectoryDb();MUpnpTransferInterface *TransferHandler();public:virtual void TransferCompletedL(TInt akey, TInt aResultCode);public:IMPORT_C virtual void NewTransactionL(const TDesC8 &aMethod, const TDesC8 &aUri, const TInetAddr &aSender, CUpnpHttpServerTransaction *&aResultTrans);private:virtual void HttpEventLD(CUpnpHttpMessage *aMessage);private:void PrepareAutoDestroyObjectL(TXmlEngElement aObject, TInt aObjId);HBufC8 *GetIpAndPortDes8L();void SetResSizeL(TXmlEngAttr aSize, const TDesC &aFilePath);void AddImportUriToElL(TXmlEngElement aElement);HBufC8 *BuildImportUriLC();HBufC8 *BuildImportUriShorterLC();TBool IsThumbnailAvailableL(const TDesC &aFile);TBool IsThumbnailAvailableL(const TDesC8 &aFile);void CreateThumbnailL(const TDesC &aSrcFile, TInt aObjId);void AddNewResTagL(TXmlEngElement aObjEl);HBufC *CreateNameForThumbnailL(const TDesC &aFileName);void HandleLocalResourcesL(TXmlEngElement aRes, TInt aObjectId);HBufC8 *BuildContentUriL(const TDesC &aFileExt, TInt aObjectId);TInt DoActionReceivedL(CUpnpAction *aAction);HBufC8 *SerializeObjectsListL(const RArray< RXmlEngDocument > &aObjs);void DeleteOldResourcesL(RXmlEngDocument &aObj, const TDesC8 &aImportUri, const TDesC &aNewFile);HBufC8 *GetImportUriLC(CUpnpHttpMessage *aMessage);HBufC *BuildThumbnailUrlPathL(const TDesC &aFilename, const TDesC &aNextKey);HBufC8 *GetMimeTypeLC(const TDesC8 &aFilename);void RemoveThCreatorAndObjectIdLD(CUpnpThumbnailCreator *aThCreator);TInt GetObjectIdFromThCreator(CUpnpThumbnailCreator *aThCreator);HBufC8 *CreateAddressValueLC();CUpnpDlnaProtocolInfo *CreateProtocolInfoFromMimeL(const TDesC8 &aMimeType, TInt aAddInfo);HBufC *GetFileNameL(TInt aObjId);HBufC *GetFileNameWithoutPathL(TInt aObjId);HBufC *CreateFileNameL(const TDesC16 &aFileName);HBufC8 *GetItemTypeFromMimeTypeLC(const TDesC8 &aMimeType);void CheckItemTypeForObjectL(RXmlEngDocument &obj, const TDesC8 &aMimeType);RXmlEngDocument XmlFragmentL(const TDesC8 &aBuffer);void BrowseElementL(HBufC8 *&aResp, TXmlEngElement &aSen);TInt ContainerUpdateId(const TDesC8 &aContainerID);TUpnpErrorCode AddToMetaDbL(RXmlEngDocument &aFragment, TInt aContainer, TInt *aId, TBool aIsLocal);TUpnpErrorCode PrepareCreateOperationL(RXmlEngDocument &aFragment, RArray< TXmlEngAttr > &aImportUris, RArray< TXmlEngElement > &aRess, TBool &aLocal, TBool &aCreateThumbnailRes, TInt &aNextKey);void ConstructCreateResultsetL(CUpnpAction *&aAction, RXmlEngDocument aElement, TInt aId);TUpnpErrorCode CreateObjectL(CUpnpAction *&aAction);TUpnpErrorCode BrowseL(CUpnpAction *&aAction);TUpnpErrorCode DestroyObjectL(CUpnpAction *&aAction);TUpnpErrorCode CreateReferenceL(CUpnpAction *&aAction);TUpnpErrorCode GetSearchCapabilitiesL(CUpnpAction *&aAction);TUpnpErrorCode GetSortCapabilitiesL(CUpnpAction *&aAction);TUpnpErrorCode GetSystemUpdateIdL(CUpnpAction *&aAction);TUpnpErrorCode ImportResourceL(CUpnpAction *&aAction);TUpnpErrorCode ExportResourceL(CUpnpAction *&aAction);TUpnpErrorCode StopTransferResourceL(CUpnpAction *&aAction);TUpnpErrorCode GetTransferProgressL(CUpnpAction *&aAction);TUpnpErrorCode DeleteResourceL(CUpnpAction *&aAction);HBufC8 *ChangeFileNameWithExtensionL(TDesC8 &aFilePath, const TDesC8 &aMimeType);TInt CreateResTagInternalL(TInt aSessionId, TDesC8 &aFilePath, HBufC8 *aImportUri, TBool aOnlyThumbnail);TInt CreateResTagInternalWithDBRecoveryL(TInt aSessionId, TDesC8 &aFilePath, HBufC8 *aImportUri, TBool aOnlyThumbnail=EFalse);private:void DoSendActionL(CUpnpAction *aAction, TUpnpErrorCode aError);void DoSendMessageL(CUpnpHttpMessage *aMessage);TBool IsValidUrlPath(const TDesC &aUrlPath);HBufC8 *ProtocolInfoFromMimeL(const TDesC8 &aMimeType, TInt aAddInfo, TBool aOpRangeParam, TBool aCiParam=EFalse);HBufC8 *ProtocolInfoFromMimeL(const TDesC8 &aMimeType, TXmlEngElement &aResEl);void NotifyThumbnailResultL(CUpnpThumbnailCreator *aThCreator, TInt aResult);CUpnpThumbnailCreator *CreateThumbnailCreatorL(TInt aObjectId);TBool IsObjectExistL(TInt aObjectId);TBool ValidateObjectL(TInt aObjectId);TInt HandleDbError(TInt aError);TBool IsDbOrDiskProblemL(CUpnpAction *aAction);TBool DataBaseHasBeenRecoveredL(TInt aError);TBool IsDbCreated();TPtrC8 UpdateImportUriL(const TDesC8 &aImportUri);private:CUpnpContentDirectory(CUpnpDevice &aDevice, MUpnpThumbnailCreatorObserver *aThmbObs, MUpnpTransferInterface *aTransfer);void ConstructL(TUpnpCdSettings aSettings, CUpnpMetadataStorage *aMetadataStorage);void ConstructHttpL();private:RArray< TInt > iThObjectIds;RPointerArray< CUpnpThumbnailCreator > iThumbnailCreators;TInt iNextFreeID;CUpnpElementFactory *iElementdb;CUpnpContentDirectoryDb *iContentDirectoryDb;RFs iFs;HBufC *iDownloadDir;HBufC *iThumbDir;TInt iBitmapServerConnection;TBool iEcomUsed;MUpnpThumbnailCreatorObserver *iThmbObs;CUpnpAutoDestroyObjectList *iAutoDestroyObjects;MUpnpContentDirectoryEventObserver *iEventObserver;TBool iCreateThumbnails;TInt iMaxRequestCount;TCurrentAction iCurrentAction;RXmlEngDOMImplementation iDOMImpl;MUpnpCdsSender *iSender;CUpnpMimeMapper *iMimeToExtMap;HBufC *iObjectsXmlPath;CUpnpStateHandler *iStateHandler;CUpnpTransferController *iTransferController;MUpnpTransferInterface *iTransferHandler;CUpnpDlnaFilter *iDlnaFilter;CUpnpHttpServerSession *iHttpServerSession;CUpnpSecurityManager *iSecurityManager;};#32"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpstring.h"1#define C_UPNPSTRING_Hconst static TLitC8< sizeof("&")> KEt={sizeof("&")-1,"&"};const static TLitC8< sizeof("&amp;")> KEtAmp={sizeof("&amp;")-1,"&amp;"};const static TLitC8< sizeof("&lt;")> KEtlt={sizeof("&lt;")-1,"&lt;"};const static TLitC8< sizeof("&gt;")> KEtgt={sizeof("&gt;")-1,"&gt;"};const static TLitC8< sizeof("'")> KApostrophe={sizeof("'")-1,"'"};const static TLitC8< sizeof("&apos;")> KEtApos={sizeof("&apos;")-1,"&apos;"};const static TLitC8< sizeof("&quot;")> KEtQuot={sizeof("&quot;")-1,"&quot;"};const static TLitC8< sizeof("%20")> KCSpace={sizeof("%20")-1,"%20"};const TInt KUrlCharNoLen=3;const TInt KOneCharLen=1;namespace UpnpString{IMPORT_C TBool IsColon(const TUint8 &aChar);IMPORT_C HBufC8 *FromUnicodeL(const TDesC &aBuffer);IMPORT_C HBufC16 *ToUnicodeL(const TDesC8 &aBuffer);IMPORT_C HBufC8 *CurrentDateLC();HBufC8 *GetDateLC(const TTime &aTime);const TDesC8 &GetWeekday(const TTime &aDate);const TDesC8 &GetMonth(const TDateTime &aDate);IMPORT_C void CutToPiecesL(TPtrC8 aPtr, TChar aDelim, RPointerArray< TPtrC8 > &aArray);IMPORT_C TPtrC8 Trim(TPtrC8 aPtr, TBool aQuotations=EFalse);IMPORT_C HBufC8 *TrimLC(const TDesC8 &aBuf, TBool aQuotations);IMPORT_C HBufC8 *ValueFromCsvL(const TDesC8 &aCSV, TInt aPlace);IMPORT_C HBufC8 *AddValueToCsvL(const TDesC8 &aCSV, const TDesC8 &aValue);IMPORT_C HBufC8 *RemoveFromCsvLC(const TDesC8 &aCSV, const TDesC8 &aValue);IMPORT_C void CsvToRPointerArrayL(const TDesC8 &aCSV, RPointerArray< TPtrC8 > &aArray);IMPORT_C HBufC8 *RPointerArrayToCsvLC(RPointerArray< TPtrC8 > &aArray);IMPORT_C void AppendStringL(CBufFlat &aString, const TDesC8 &aString2);IMPORT_C void AppendStringL(HBufC8 *&aString, const TDesC8 &aString2);IMPORT_C TInt StringToInt(const TDesC8 &aStr, TInt *aInt);IMPORT_C void StringReplaceL(const TDesC8 &aOrginal, HBufC8 *&aResult, const TDesC8 &aTrg, const TDesC8 &aReplacement);IMPORT_C HBufC8 *StringReplaceL(const TDesC8 &aStr, const TDesC8 &aTrg, const TDesC8 &aReplacement);IMPORT_C void StringReplaceInPlaceL(TDes8 &aString, const TDesC8 &aTrg, const TDesC8 &aReplacement);IMPORT_C HBufC8 *EncodeXmlStringL(HBufC8 *&aBuf);IMPORT_C HBufC8 *EncodeXmlStringL(const TDesC8 &aBuf);IMPORT_C HBufC8 *DecodeXmlStringL(HBufC8 *&aBuf);IMPORT_C HBufC8 *DecodeXmlStringL(const TDesC8 &aBuf);IMPORT_C HBufC8 *InetToStringL(const TInetAddr &aAddress);IMPORT_C void ReplaceHttpCharactersL(TDes &aString);IMPORT_C void ReplaceHttpCharacters(TDes8 &aString);}#35"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpargument.h"1#define C_CUPNPARGUMENT_Henum{EIn, EOut};class CUpnpSoapMessage;class CUpnpService;class CUpnpArgument:public CBase{public:static CUpnpArgument *NewL(CUpnpService &aParentService);static CUpnpArgument *NewL(CUpnpArgument &aArgument, CUpnpService &aParentService);virtual ~CUpnpArgument();public:IMPORT_C TArgumentType Type();IMPORT_C TInt Direction() const ;IMPORT_C TDesC8 &RelatedStateVariable();IMPORT_C TDesC8 &Name();IMPORT_C TDesC8 &Value();IMPORT_C void SetValueL(const TDesC8 &aValue);void SetDirectionL(TInt aDirection);void SetNameL(const TDesC8 &aDirection);void SetRelatedStateVarL(const TDesC8 &aRelatedStateVar);void ConstructL();void SetType(TInt aType);private:CUpnpArgument(CUpnpService &aParentService);void ConstructL(CUpnpArgument &aArgument);void DeleteAndNullValue();void CheckErrorL(TInt aError, const TDesC8 &aValue);private:HBufC8 *iName;HBufC8 *iRelatedStateVariable;TInt iDirection;HBufC8 *iValue;TInt iType;CUpnpService &iParentService;};#36"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnphttpmessagefactory.h"1#define C_RUPNPHTTPMESSAGEFACTORY_Hclass RUpnpHttpMessageFactory{public:IMPORT_C static CUpnpHttpMessage *HttpGetL(TInetAddr &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpGetL(TInetAddr &aDestination, const TDesC8 &aHeadPath, const TDesC8 &aTailPath);IMPORT_C static CUpnpHttpMessage *HttpGetL(const TDesC8 &aUrl);IMPORT_C static CUpnpHttpMessage *HttpGetL(const TDesC8 &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpHeadL(const TDesC8 &aUrl);IMPORT_C static CUpnpHttpMessage *HttpHeadL(const TDesC8 &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpHeadL(TInetAddr &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpPostL(const TDesC8 &aUrl);IMPORT_C static CUpnpHttpMessage *HttpPostL(const TDesC8 &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpPostL(const TInetAddr &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpResponseOkL(CUpnpHttpMessage *aMessage);IMPORT_C static CUpnpHttpMessage *HttpResponseOkL(const TInetAddr &aDestination);IMPORT_C static CUpnpHttpMessage *Http11ResponseL(CUpnpHttpMessage *aMessage, TInt aStatus);IMPORT_C static CUpnpHttpMessage *Http11ResponseL(const TInetAddr &aDestination, TInt aStatus);IMPORT_C static CUpnpHttpMessage *HttpResponseErrorL(CUpnpHttpMessage *aMessage, TInt aError);IMPORT_C static CUpnpHttpMessage *HttpResponseErrorL(const TInetAddr &aAddr, TInt aError);IMPORT_C static CUpnpHttpMessage *UpnpResponseErrorL(CUpnpHttpMessage *aMessage, TUpnpErrorCode aError);IMPORT_C static CUpnpHttpMessage *UpnpResponseErrorL(const TInetAddr &aDestination, TUpnpErrorCode aError);private:static void SetHostHeaderL(CUpnpHttpMessage *aMessage, const TInetAddr &aDestination);};#37"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpdevice.h"1#define C_CUPNPDEVICE_H#1"X:/epoc32/include/platform/mw/upnpdescriptionproperty.h"1#define C_CUPNPDESCRIPTIONPROPERTY_H class TUpnpDevice;class TUpnpService;class CUpnpIcon;class CUpnpDescriptionProperty:public CBase{public:static CUpnpDescriptionProperty *NewL(const TDesC8 &aName, const TDesC8 &aValue);static CUpnpDescriptionProperty *NewL();CUpnpDescriptionProperty();~CUpnpDescriptionProperty();void ConstructL(const TDesC8 &aName, const TDesC8 &aValue);void SetNameL(const TDesC8 &aName);void SetValueL(const TDesC8 &aValue);const TDesC8 &Name();const TDesC8 &Value();private:HBufC8 *iName;HBufC8 *iValue;};#27"X:/epoc32/include/platform/mw/upnpdevice.h"2class TUpnpDevice;class TUpnpService;class CUpnpIcon;class CUpnpDescriptionProperty;const TInt KDefaultDescriptionUrlPort=80;class CUpnpDevice:public CBase{public:enum TUpnpDeviceNetwork{EUnknown=0, ELocalDevice, EHomeNetwork, ERemoteDevice};public:IMPORT_C static CUpnpDevice *NewL(const TUpnpDevice *aDevice, const RPointerArray< TUpnpService > &aServices);virtual ~CUpnpDevice();public:IMPORT_C const TPtrC8 DeviceType();IMPORT_C const TPtrC8 DescriptionProperty(const TDesC8 &aPropertyName);IMPORT_C CDesC8Array &ServiceTypesL();IMPORT_C const TPtrC8 ServiceId(const TDesC8 &aServiceType);IMPORT_C const TPtrC8 ServiceDescriptionUrl(const TDesC8 &aServiceType);IMPORT_C RPointerArray< CUpnpService > &ServiceList();IMPORT_C RPointerArray< CUpnpDevice > &DeviceList();IMPORT_C void GetAllDevices(RPointerArray< CUpnpDevice > &aDevices);IMPORT_C RPointerArray< CUpnpIcon > &Icons();IMPORT_C TBool Alive() const ;IMPORT_C void SetAlive(TBool aAlive);IMPORT_C TBool Expired() const ;IMPORT_C void SetExpired(TBool aAlive);IMPORT_C TBool Local() const ;IMPORT_C void SetLocal(TBool aLocal);IMPORT_C TBool Remote() const ;IMPORT_C TUpnpDeviceNetwork DeviceNetwork() const ;IMPORT_C void SetDeviceNetwork(TUpnpDeviceNetwork aNetworkType);IMPORT_C const TPtrC8 Uuid();void SetUuidL(const TDesC8 &aUUID);void AddDeviceL(CUpnpDevice *device);IMPORT_C const TDesC8 &DescriptionUrl() const ;void SetDescriptionUrlL(const TDesC8 &aDescriptionUrl);IMPORT_C const TPtrC8 DescriptionUrlPath() const ;IMPORT_C TInetAddr DescriptionUrlAddressL() const ;IMPORT_C TInt DescriptionUrlPort() const ;void AttachServiceL(CUpnpService *aService);IMPORT_C void SetAddress(const TInetAddr &aAddr);IMPORT_C virtual TInetAddr Address();IMPORT_C void WaitServiceDescriptionL(TInt aSessionId);IMPORT_C TInt WaitServiceDescriptionCount();IMPORT_C TInt WaitServiceDescriptionSessionId(TInt aIndex);IMPORT_C void WaitServiceDescriptionRemoveSessionId(TInt aIndex);enum TServiceAdd{ENotServiceAdded, EServiceAdded, EAllServicesAdded};TServiceAdd ServiceDescriptionReceiveState() const {return iServiceDescriptionReceiveState;}IMPORT_C void WaitIconL(TInt aSessionId);IMPORT_C TServiceAdd AddServiceL(TInt aSessionId, CUpnpService *aService);enum TIconAdd{ENotIconAdded, EIconAdded, EAllIconsAdded};TIconAdd IconReceiveState() const {return iIconReceiveState;}IMPORT_C TIconAdd AddIcon(TInt aSessionId);IMPORT_C HBufC8 *ConcatWithUrlBaseL(const TDesC8 &aUrl);IMPORT_C TPtrC8 GetProperty(const TDesC8 &aProperty);void SetTypeL(const TDesC8 &aType);void AddDevicePropertyL(CUpnpDescriptionProperty *aDeviceProperty);IMPORT_C void AddIconL(CUpnpIcon *aIcon);IMPORT_C CDesC8Array &ServiceIdL();IMPORT_C CUpnpDevice *CloneL();void DetachService(CUpnpService *aService);public:static TPtrC8 RemoveIpAddress(const TDesC8 &aAddress);void SetRootDevice(TBool aIsRoot);CUpnpDevice();private:void ConstructL(const TUpnpDevice *aDevice, const RPointerArray< TUpnpService > &aServices);static CUpnpDevice *NewL(const TDesC8 &aDescription);TInt ChangeIconSessionIdL(const TInt aOldSessionId, const TInt aNewSessionId);TInt CheckIconSessionIdExist(const TInt aSessionId);public:IMPORT_C const TPtrC8 UrlBase();IMPORT_C const TPtrC8 PresentationUrl();IMPORT_C void SetUrlBaseL(const TDesC8 &aUrlBase);IMPORT_C TBool IsEmbeddDevice();void Init();void CleanupServiceArray();protected:TInt64 iTimeValue;RArray< TInt > iIconSessionIds;RArray< TInt > iServiceDescriptionSessionIds;RPointerArray< CUpnpIcon > iIcons;RPointerArray< CUpnpDevice > iDeviceList;RPointerArray< CUpnpService > iServiceList;TServiceAdd iServiceDescriptionReceiveState;TIconAdd iIconReceiveState;CDesC8ArrayFlat *iServiceTypes;TBool iAlive;TBool iExpired;TBool iIsAllIconsArrived;TUpnpDeviceNetwork iNetworkType;HBufC8 *iDescriptionURL;HBufC8 *iDeviceType;HBufC8 *iDomain;HBufC8 *iUUID;HBufC8 *iClockSeq;TInetAddr iAddress;TInt iHandle;TBool iIsRootDevice;HBufC *iDeviceDescription;RPointerArray< CUpnpDescriptionProperty > iProperties;HBufC8 *iUrlBase;CDesC8ArrayFlat *iServicesId;};#39"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpfileutils.h"1#define C_UPNPFILEUTILS_Hconst static TLitC8< sizeof("text/html")> KHtml={sizeof("text/html")-1,"text/html"};const static TLitC8< sizeof("text/xml")> KXml={sizeof("text/xml")-1,"text/xml"};const static TLitC8< sizeof("text/plain")> KTxt={sizeof("text/plain")-1,"text/plain"};const static TLitC8< sizeof("image/jpeg")> KJpg={sizeof("image/jpeg")-1,"image/jpeg"};const static TLitC8< sizeof("image/gif")> KGif={sizeof("image/gif")-1,"image/gif"};const static TLitC8< sizeof("image/png")> KPng={sizeof("image/png")-1,"image/png"};const static TLitC8< sizeof("video/mpeg")> KMpeg={sizeof("video/mpeg")-1,"video/mpeg"};const static TLitC8< sizeof("video/x-msvideo")> KAvi={sizeof("video/x-msvideo")-1,"video/x-msvideo"};const static TLitC8< sizeof("audio/mpeg")> KMp3={sizeof("audio/mpeg")-1,"audio/mpeg"};const static TLitC16< sizeof(L".HTML")/2 > KHtml16={sizeof(L".HTML")/2-1, L".HTML"};const static TLitC16< sizeof(L".XML")/2 > KXml16={sizeof(L".XML")/2-1, L".XML"};const static TLitC16< sizeof(L".TXT")/2 > KTxt16={sizeof(L".TXT")/2-1, L".TXT"};const static TLitC16< sizeof(L".JPEG")/2 > KJpeg16={sizeof(L".JPEG")/2-1, L".JPEG"};const static TLitC16< sizeof(L".JPG")/2 > KJpg16={sizeof(L".JPG")/2-1, L".JPG"};const static TLitC16< sizeof(L".GIF")/2 > KGif16={sizeof(L".GIF")/2-1, L".GIF"};const static TLitC16< sizeof(L".PNG")/2 > KPng16={sizeof(L".PNG")/2-1, L".PNG"};const static TLitC16< sizeof(L".MPEG")/2 > KMpeg16={sizeof(L".MPEG")/2-1, L".MPEG"};const static TLitC16< sizeof(L".MPG")/2 > KMpg16={sizeof(L".MPG")/2-1, L".MPG"};const static TLitC16< sizeof(L".AVI")/2 > KAvi16={sizeof(L".AVI")/2-1, L".AVI"};const static TLitC16< sizeof(L".MP3")/2 > KMp316={sizeof(L".MP3")/2-1, L".MP3"};const TInt KIPNumMax=255;const TInt KIPNumMin=1;namespace UpnpFileUtil{IMPORT_C HBufC8 *ReadFileL(const TDesC16 &aFilename);IMPORT_C HBufC8 *GetMimeTypeForFileL(const TDesC16 &aFilename);HBufC8 *GetMimeTypeByExtensionL(const TDesC16 &aFilename);IMPORT_C TPtrC8 ExtractUrlPath(const TDesC8 &aUrl, TPtrC8 &aFilename, TPtrC8 &aScheme, TInt &aParseError);TBool ExtractUrlPathHost(const TDesC8 &aUrl, TInt &aParseError);TInt ExtractNumFromIP(TPtrC8 ippart);TInt DriveNumberFromPath(const TDesC16 &aPath, RFs &aFs);IMPORT_C TPtrC8 ExtractUrlPath(const TDesC8 &aUrl, TPtrC8 &aFilename, TInt &aParseError);IMPORT_C TPtrC8 ExtractUrlPath(const TDesC8 &aUrl, TInt &aParseError);IMPORT_C HBufC8 *SwitchToBackSlashL(const TDesC8 &aUrl);IMPORT_C HBufC *SwitchToBackSlashL(const TDesC &aUrl);IMPORT_C TBool CheckDiskSpaceShortL(const TDesC16 &aPath, TInt aSize, RFs &aFs);IMPORT_C TBool CheckDiskSpaceShortL(TDriveNumber aDriveNumber, TInt aSize);IMPORT_C TInt ParseUri(const TDesC8 &aUrl);}#40"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpcommonupnplits.h"1#define C_UPNPCOMMONUPNPLITS_H const TInt KLongInfoSize=1000;const TInt KMaxInfoSize=20;const static TLitC8< sizeof("=\"")> Keq={sizeof("=\"")-1,"=\""};const static TLitC8< sizeof("false")> Kfalse={sizeof("false")-1,"false"};const static TLitC8< sizeof("true")> Ktrue={sizeof("true")-1,"true"};const static TLitC8< sizeof(")")> KClosingBracket={sizeof(")")-1,")"};const static TLitC8< sizeof("\")")> KClosingBracketWithQuotation={sizeof("\")")-1,"\")"};const static TLitC8< sizeof(":")> KColon={sizeof(":")-1,":"};const static TLitC8< sizeof(",")> KComma={sizeof(",")-1,","};const static TLitC8< sizeof("")> KEmptyString={sizeof("")-1,""};const static TLitC8< sizeof("<")> KKorp={sizeof("<")-1,"<"};const static TLitC8< sizeof("</")> KKorpSlash={sizeof("</")-1,"</"};const static TLitC8< sizeof("ObjectID")> KObjectID={sizeof("ObjectID")-1,"ObjectID"};const static TLitC8< sizeof("1")> KOne={sizeof("1")-1,"1"};const static TLitC8< sizeof("%i")> KOneNumber={sizeof("%i")-1,"%i"};const static TLitC8< sizeof("%i")> KOneNumber8={sizeof("%i")-1,"%i"};const static TLitC8< sizeof("\r\n")> KPlainLineFeed={sizeof("\r\n")-1,"\r\n"};const static TLitC8< sizeof(">")> KProk={sizeof(">")-1,">"};const static TLitC8< sizeof(":const static TLitC8<sizeof( "" )> KSpace ={sizeof( "" )-1, "" };const static TLitC8<sizeof( "" )> KSpace8 ={sizeof( "" )-1, "" };const static TLitC8<sizeof( "\"")> KQuotation={sizeof("\"")-1,"\""};const static TLitC8< sizeof("\" ")> KQuotationWithSpace={sizeof("\" ")-1,"\" "};const static TLitC8< sizeof("0")> KZero={sizeof("0")-1,"0"};const static TLitC16< sizeof(L"\\")/2 > KBackSlash={sizeof(L"\\")/2-1, L"\\"};const static TLitC16< sizeof(L" ")/2 > KSpace16={sizeof(L" ")/2-1, L" "};const static TLitC16< sizeof(L"\\")/2 > KDoubleBackSlash={sizeof(L"\\")/2-1, L"\\"};const static TLitC< sizeof(L"UPnP messagehandler Panic")/2 > KMessagehandlerPanic={sizeof(L"UPnP messagehandler Panic")/2-1, L"UPnP messagehandler Panic"};const static TLitC8< sizeof(" ")> KEmptyMessage={sizeof(" ")-1," "};const static TLitC8< sizeof(" ")> KMulticastPacket={sizeof(" ")-1," "};const static TLitC16< sizeof(L"LANBearer")/2 > KLanBearer={sizeof(L"LANBearer")/2-1, L"LANBearer"};const static TLitC< sizeof(L"MessageHandler")/2 > KMessageHandlerFilename={sizeof(L"MessageHandler")/2-1, L"MessageHandler"};const static TLitC8< sizeof("Here is an ERROR!")> KErrorHere={sizeof("Here is an ERROR!")-1,"Here is an ERROR!"};const static TLitC8< sizeof("Sent %d/%d")> Servedbytes={sizeof("Sent %d/%d")-1,"Sent %d/%d"};const static TLitC8< sizeof("Served %d bytes")> NBytesServed={sizeof("Served %d bytes")-1,"Served %d bytes"};const static TLitC8< sizeof("RunL(), error %d")> KRunL={sizeof("RunL(), error %d")-1,"RunL(), error %d"};const static TLitC8< sizeof("DISPATCHERENGINE *** Sending of http message fails!")> KSendFail={sizeof("DISPATCHERENGINE *** Sending of http message fails!")-1,"DISPATCHERENGINE *** Sending of http message fails!"};const static TLitC8< sizeof("SERVICE *** Leave during service description parsing: ")> KPanic={sizeof("SERVICE *** Leave during service description parsing: ")-1,"SERVICE *** Leave during service description parsing: "};const static TLitC8< sizeof("index.html")> KIndexHtml={sizeof("index.html")-1,"index.html"};const static TLitC16< sizeof(L"index.html")/2 > KIndexHtml16={sizeof(L"index.html")/2-1, L"index.html"};const static TLitC8< sizeof("index.xml")> KIndexXml={sizeof("index.xml")-1,"index.xml"};const static TLitC16< sizeof(L"index.xml")/2 > KIndexXml16={sizeof(L"index.xml")/2-1, L"index.xml"};const static TLitC8< sizeof("A_ARG_TYPE_ProtocolInfo")> KArgTypeProtocolInfo={sizeof("A_ARG_TYPE_ProtocolInfo")-1,"A_ARG_TYPE_ProtocolInfo"};const static TLitC8< sizeof("A_ARG_TYPE_AVTransportID")> KAvtransId={sizeof("A_ARG_TYPE_AVTransportID")-1,"A_ARG_TYPE_AVTransportID"};const static TLitC8< sizeof("A_ARG_TYPE_ConnectionManager")> KConMan={sizeof("A_ARG_TYPE_ConnectionManager")-1,"A_ARG_TYPE_ConnectionManager"};const static TLitC8< sizeof("A_ARG_TYPE_ConnectionID")> KConId={sizeof("A_ARG_TYPE_ConnectionID")-1,"A_ARG_TYPE_ConnectionID"};const static TLitC8< sizeof("A_ARG_TYPE_ConnectionStatus")> KConStat={sizeof("A_ARG_TYPE_ConnectionStatus")-1,"A_ARG_TYPE_ConnectionStatus"};const static TLitC8< sizeof("A_ARG_TYPE_Direction")> KDirection={sizeof("A_ARG_TYPE_Direction")-1,"A_ARG_TYPE_Direction"};const static TLitC8< sizeof("A_ARG_TYPE_ProtocolInfo")> KProtInf={sizeof("A_ARG_TYPE_ProtocolInfo")-1,"A_ARG_TYPE_ProtocolInfo"};const static TLitC8< sizeof("A_ARG_TYPE_RcsID")> KRcsId={sizeof("A_ARG_TYPE_RcsID")-1,"A_ARG_TYPE_RcsID"};const static TLitC8< sizeof("ConnectionIDs")> KConnectionIDs={sizeof("ConnectionIDs")-1,"ConnectionIDs"};const static TLitC8< sizeof("CurrentConnectionIDs")> KCurConId={sizeof("CurrentConnectionIDs")-1,"CurrentConnectionIDs"};const static TLitC8< sizeof("GetProtocolInfo")> KGetProtInfo={sizeof("GetProtocolInfo")-1,"GetProtocolInfo"};const static TLitC8< sizeof("GetCurrentConnectionIDs")> KGetCurConIds={sizeof("GetCurrentConnectionIDs")-1,"GetCurrentConnectionIDs"};const static TLitC8< sizeof("GetCurrentConnectionInfo")> KGetCurConInfo={sizeof("GetCurrentConnectionInfo")-1,"GetCurrentConnectionInfo"};const static TLitC8< sizeof("Sink")> KSink={sizeof("Sink")-1,"Sink"};const static TLitC8< sizeof("SinkProtocolInfo")> KSinkInf={sizeof("SinkProtocolInfo")-1,"SinkProtocolInfo"};const static TLitC8< sizeof("Source")> KSource={sizeof("Source")-1,"Source"};const static TLitC8< sizeof("SourceProtocolInfo")> KSourceInf={sizeof("SourceProtocolInfo")-1,"SourceProtocolInfo"};const static TLitC8< sizeof("http-get:*:*:*")> KSupportedProtocols={sizeof("http-get:*:*:*")-1,"http-get:*:*:*"};const static TLitC8< sizeof("NULL")> KNull={sizeof("NULL")-1,"NULL"};const static TLitC8< sizeof("output")> KOutput={sizeof("output")-1,"output"};const static TLitC8< sizeof("OK")> KOk={sizeof("OK")-1,"OK"};const static TLitC8< sizeof("RcsID")> KTypeRcsID={sizeof("RcsID")-1,"RcsID"};const static TLitC8< sizeof("AVTransportID")> KTypeAVTransportID={sizeof("AVTransportID")-1,"AVTransportID"};const static TLitC8< sizeof("ProtocolInfo")> KTypeProtocolInfo={sizeof("ProtocolInfo")-1,"ProtocolInfo"};const static TLitC8< sizeof("PeerConnectionManager")> KTypePeerConnectionManager={sizeof("PeerConnectionManager")-1,"PeerConnectionManager"};const static TLitC8< sizeof("PeerConnectionID")> KTypePeerConnectionID={sizeof("PeerConnectionID")-1,"PeerConnectionID"};const static TLitC8< sizeof("Direction")> KTypeDirection={sizeof("Direction")-1,"Direction"};const static TLitC8< sizeof("Status")> KTypeStatus={sizeof("Status")-1,"Status"};const static TLitC8< sizeof("ConnectionID")> KArgument={sizeof("ConnectionID")-1,"ConnectionID"};const static TLitC8< sizeof("PrepareForConnection")> KPrepareForConnection={sizeof("PrepareForConnection")-1,"PrepareForConnection"};const static TLitC8< sizeof("ConnectionComplete")> KConnectionComplete={sizeof("ConnectionComplete")-1,"ConnectionComplete"};const static TLitC8< sizeof("controlURL")> KControlUrl={sizeof("controlURL")-1,"controlURL"};const static TLitC8< sizeof("device")> KDevice={sizeof("device")-1,"device"};const static TLitC8< sizeof("deviceType")> KDeviceType={sizeof("deviceType")-1,"deviceType"};const static TLitC8< sizeof("deviceList")> KDeviceList={sizeof("deviceList")-1,"deviceList"};const static TLitC8< sizeof(".xml")> KDotXml={sizeof(".xml")-1,".xml"};const static TLitC8< sizeof("friendlyName")> KFriendlyName={sizeof("friendlyName")-1,"friendlyName"};const static TLitC8< sizeof("http:const static TLitC8<sizeof( "icon" )> KIcon ={sizeof( "icon" )-1, "icon" };const static TLitC8<sizeof( "iconList" )> KIconList ={sizeof( "iconList" )-1, "iconList" };const static TLitC8<sizeof( "-" )> KLine ={sizeof( "-" )-1, "-" };const static TLitC8<sizeof( "%08x" )> KMask8 ={sizeof( "%08x" )-1, "%08x" };const static TLitC8<sizeof( "manufacturer" )> KManufacturer ={sizeof( "manufacturer" )-1, "manufacturer" };const static TLitC8<sizeof( "manufacturerURL" )> KManufacturerUrl ={sizeof( "manufacturerURL" )-1, "manufacturerURL" };const static TLitC8<sizeof( "modelDescription" )> KModelDescription ={sizeof( "modelDescription" )-1, "modelDescription" };const static TLitC8<sizeof( "modelName" )> KModelName ={sizeof( "modelName" )-1, "modelName" };const static TLitC8<sizeof( "modelNumber" )> KModelNumber ={sizeof( "modelNumber" )-1, "modelNumber" };const static TLitC8<sizeof( "modelURL" )> KModelUrl ={sizeof( "modelURL" )-1, "modelURL" };const static TLitC8<sizeof( ":" )> KSepar ={sizeof( ":" )-1, ":" };const static TLitC8<sizeof( "serialNumber" )> KSerialNumber ={sizeof( "serialNumber" )-1, "serialNumber" };const static TLitC8<sizeof( "service" )> KService ={sizeof( "service" )-1, "service" };const static TLitC8<sizeof( "serviceList" )> KServiceList ={sizeof( "serviceList" )-1, "serviceList" };const static TLitC8<sizeof( "serviceId" )> KServiceId ={sizeof( "serviceId" )-1, "serviceId" };const static TLitC8<sizeof( "serviceType" )> KServiceType ={sizeof( "serviceType" )-1, "serviceType" };const static TLitC8<sizeof( "service:" )> KServiceUrn ={sizeof( "service:" )-1, "service:" };const static TLitC8<sizeof( "SCPDURL" )> KServiceDescriptionUrl ={sizeof( "SCPDURL" )-1, "SCPDURL" };const static TLitC8<sizeof( "eventSubURL" )> KSubscriptionUrl ={sizeof( "eventSubURL" )-1, "eventSubURL" };const static TLitC8<sizeof( ":device:" )> KDeviceSearch ={sizeof( ":device:" )-1, ":device:" };const static TLitC8<sizeof( "\r" )> KR ={sizeof( "\r" )-1, "\r" };const static TLitC8<sizeof( "/" )> KSlash8 ={sizeof( "/" )-1, "/" };const static TLitC8<sizeof( "UDN" )> KUdn ={sizeof( "UDN" )-1, "UDN" };const static TLitC8<sizeof( "uuid:" )> KUuid ={sizeof( "uuid:" )-1, "uuid:" };const static TLitC8<sizeof( "presentationURL" )> KPresentationUrl ={sizeof( "presentationURL" )-1, "presentationURL" };const static TLitC8<sizeof( "URLBase" )> KUrlBase ={sizeof( "URLBase" )-1, "URLBase" };const static TLitC8<sizeof( "NoHeader" )> KNoHeader ={sizeof( "NoHeader" )-1, "NoHeader" };const static TLitC8<sizeof( "80" )> KDefaultHostPort ={sizeof( "80" )-1, "80" };const static TLitC8<sizeof( "uuid:" )> KSidPrefix ={sizeof( "uuid:" )-1, "uuid:" };const static TLitC8<sizeof( "Second-" )> KTimeoutPrefix ={sizeof( "Second-" )-1, "Second-" };const static TLitC8<sizeof( "path" )> KPath ={sizeof( "path" )-1, "path" }; const static TLitC8<sizeof( "GET" )> KGet ={sizeof( "GET" )-1, "GET" };const static TLitC8<sizeof( "Second-" )> KSeconds ={sizeof( "Second-" )-1, "Second-" };const static TLitC8<sizeof( "image/png" )> KMimePng ={sizeof( "image/png" )-1, "image/png" };const static TLitC8<sizeof( "image/jpeg" )> KMimeJpeg ={sizeof( "image/jpeg" )-1, "image/jpeg" };const static TLitC8<sizeof( "C:\\System\\Data\\UPnP\\" )> KUpnpPath ={sizeof( "C:\\System\\Data\\UPnP\\" )-1, "C:\\System\\Data\\UPnP\\" };const static TLitC8<sizeof( "<" )> KLessThan8 ={sizeof( "<" )-1, "<" }; const static TLitC8<sizeof( ">" )> KGreaterThan8 ={sizeof( ">" )-1, ">" }; const static TLitC<sizeof(L"c:" )/2> KMediaDriveLetter ={sizeof(L"c:" )/2-1,L"c:" }; # 41 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontainerupdateid.h" 1#define C_CUPNPCONTAINERUPDATEID_Hclass TUpnpContainerUpdateId{public: TUpnpContainerUpdateId();public: HBufC8* iContainerId; TInt iUpdateId;}; # 42 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectorydb.h" 1#define C_CUPNPCONTENTDIRECTORYDB_H# 1 "X:/epoc32/include/d32dbms.h" 1#define __D32DBMS_H__class RFs;class CDbObject;class CDbRowConstraint;class CDbCursor;class CDbDatabase;class CDbIncremental;class CDbNotifier;class TDbColumn;class TDbColumnC;class TDbCol;class CDbColSet;class TDbColSetIter;class TDbKeyCol;class CDbKey;class TDbBookmark;class TDbQuery;class RDbHandleBase;template<class T> class RDbHandle;class RDbRowConstraint;class RDbRowSet;class RDbColReadStream;class RDbColWriteStream;class TDbWindow;class RDbView;template<class T> class TUnion;class TDbLookupKey;class TDbSeekKey;template<TInt S> class TDbSeekMultiKey;class RDbTable;class CDbNames;class RDbDatabase;class RDbIncremental;class RDbUpdate;class RDbNotifier;class RDbs;class RDbNamedDatabase;class RDbStoreDatabase;const TInt KDbMaxName=0x40;const TInt KDbMaxColName=KDbMaxName;typedef TBuf<KDbMaxName> TDbName;typedef TBufC<KDbMaxName> TDbNameC;typedef TBuf<KDbMaxColName> TDbColName;typedef TBufC<KDbMaxColName> TDbColNameC;typedef TInt TDbColNo;const TDbColNo KDbNullColNo=0;const TInt KDbUndefinedCount=-1;const TInt KDbUndefinedLength=-1;const TInt KDbDefaultTextColLength=50;enum TDbColType { EDbColBit, EDbColInt8, EDbColUint8, EDbColInt16, EDbColUint16, EDbColInt32, EDbColUint32, EDbColInt64, EDbColReal32, EDbColReal64, EDbColDateTime, EDbColText8, EDbColText16, EDbColBinary, EDbColLongText8, EDbColLongText16, EDbColLongBinary, EDbColText=EDbColText16, EDbColLongText=EDbColLongText16 };enum TDbTextComparison { EDbCompareNormal, EDbCompareFolded, EDbCompareCollated };class TDbCol { friend class CDbColSet;public: enum {ENotNull=0x01,EAutoIncrement=0x02};public: inline TDbCol() {} inline TDbCol(const TDbCol&); inline TDbCol& operator=(const TDbCol&); IMPORT_C TDbCol(const TDesC& aName,TDbColType aType); IMPORT_C TDbCol(const TDesC& aName,TDbColType aType,TInt aMaxLength); static inline TBool IsLong(TDbColType aType);private: inline TDbCol(const TDesC& aName);public: TDbColType iType; TInt iMaxLength; TUint iAttributes; TDbColNameC iName; };class CDbColSet : public CBase { friend class TDbColSetIter;public: IMPORT_C CDbColSet(); IMPORT_C static CDbColSet* NewL(); IMPORT_C static CDbColSet* NewLC(); IMPORT_C ~CDbColSet(); inline const TDbCol& operator[](TDbColNo aCol) const; IMPORT_C const TDbCol* Col(const TDesC& aColName) const; IMPORT_C TDbColNo ColNo(const TDesC& aColName) const; inline TInt Count() const; inline void Clear(); IMPORT_C CDbColSet& AddL(const TDbCol& aCol); IMPORT_C void Remove(const TDesC& aColName);private: CArrayPakFlat<TDbCol> iColumns; };class TDbColSetIter {public: IMPORT_C TDbColSetIter(const CDbColSet& aColSet); inline operator TAny* () const; inline const TDbCol& operator*() const; inline const TDbCol* operator->) const; IMPORT_C TDbColSetIter& operator++(); inline TDbColSetIter operator++(TInt); inline TDbColNo Col() const;private: const TDbCol* iColumn; TInt iIndex; const CArrayPakFlat<TDbCol>* iArray; };class TDbKeyCol {public: enum TOrder { EAsc, EDesc };public: inline TDbKeyCol() {} inline TDbKeyCol(const TDbKeyCol&); inline TDbKeyCol& operator=(const TDbKeyCol&); IMPORT_C TDbKeyCol(const TDesC& aName,TOrder anOrder=EAsc); IMPORT_C TDbKeyCol(const TDesC& aName,TInt aLength,TOrder anOrder=EAsc);public: TOrder iOrder; TInt iLength; TDbColNameC iName; };class CDbKey : public CBase {public: enum {EUnique=0x01,EPrimary=0x02};public: IMPORT_C CDbKey(); IMPORT_C static CDbKey* NewL(); IMPORT_C static CDbKey* NewLC(); IMPORT_C ~CDbKey(); IMPORT_C CDbKey& AddL(const TDbKeyCol& aKeyCol); IMPORT_C void Remove(const TDesC& aColName); IMPORT_C void Clear(); inline TInt Count() const; inline const TDbKeyCol& operator[](TInt aCol) const; inline void MakeUnique(); inline TBool IsUnique() const; inline void SetComparison(TDbTextComparison aComparison); inline TDbTextComparison Comparison() const; inline void MakePrimary(); inline TBool IsPrimary() const;private: CArrayPakFlat<TDbKeyCol> iKeys; TDbTextComparison iComparison; TInt iAttributes; };class TDbBookmark { friend class RDbRowSet;public: struct TMark { enum {ESize=8}; TUint32 iMark[ESize]; };private: TMark iMark; };class TDbQuery {public: inline TDbQuery(const TDesC& aQuery,TDbTextComparison aComparison=EDbCompareNormal); inline const TDesC& Query() const; inline TDbTextComparison Comparison() const;private: const TDesC& iQuery; TDbTextComparison iComparison; };class RDbHandleBase {public: inline RDbHandleBase(); void Close();protected: inline void Set(CDbObject* aObject); CDbObject& Object() const;protected: CDbObject* iObject; };template <class T>class RDbHandle : public RDbHandleBase {public: inline T* operator=(T* aT); inline T* operator->) const; inline T& operator*() const; inline T* operator()() const; };class RDbRowConstraint { friend class RDbRowSet;public: IMPORT_C TInt Open(const RDbRowSet& aView,TDbQuery aCriteria); IMPORT_C void Close();private: RDbHandle<CDbRowConstraint> iConstraint; };class RDbRowSet { friend class RDbRowConstraint; friend class RDbColReadStream; friend class RDbColWriteStream;public: enum TPosition { EFirst, ENext, EPrevious, ELast, EBeginning, EEnd }; enum TAccess { EUpdatable, EReadOnly, EInsertOnly }; enum TDirection { EForwards, EBackwards }; enum TAccuracy { EEnsure, EQuick };public: IMPORT_C void Close(); IMPORT_C void Reset(); IMPORT_C CDbColSet* ColSetL() const; IMPORT_C TInt ColCount() const; IMPORT_C TDbColType ColType(TDbColNo aCol) const; IMPORT_C TDbCol ColDef(TDbColNo aCol) const; IMPORT_C TBool AtRow() const; IMPORT_C TBool AtBeginning() const; IMPORT_C TBool AtEnd() const; IMPORT_C TInt CountL(TAccuracy anAccuracy=EEnsure) const; IMPORT_C TBool IsEmptyL() const; IMPORT_C TBool GotoL(TPosition aPosition); inline void BeginningL(); inline void EndL(); inline TBool FirstL(); inline TBool LastL(); inline TBool NextL(); inline TBool PreviousL(); IMPORT_C TDbBookmark Bookmark() const; IMPORT_C void GotoL(const TDbBookmark& aMark); IMPORT_C TBool MatchL(const RDbRowConstraint& aConstraint); IMPORT_C TInt FindL(TDirection aDirection,TDbQuery aCriteria); IMPORT_C void GetL(); IMPORT_C void InsertL(); IMPORT_C void InsertCopyL(); IMPORT_C void UpdateL(); IMPORT_C void PutL(); IMPORT_C void Cancel(); IMPORT_C void DeleteL(); inline TBool IsColNull(TDbColNo aCol) const; IMPORT_C TInt ColSize(TDbColNo aCol) const; IMPORT_C TInt ColLength(TDbColNo aCol) const; IMPORT_C TInt8 ColInt8(TDbColNo aCol) const; IMPORT_C TInt16 ColInt16(TDbColNo aCol) const; IMPORT_C TInt32 ColInt32(TDbColNo aCol) const; IMPORT_C TInt64 ColInt64(TDbColNo aCol) const; inline TInt ColInt(TDbColNo aCol) const; IMPORT_C TUint8 ColUint8(TDbColNo aCol) const; IMPORT_C TUint16 ColUint16(TDbColNo aCol) const; IMPORT_C TUint32 ColUint32(TDbColNo aCol) const; inline TUint ColUint(TDbColNo aCol) const; IMPORT_C TReal32 ColReal32(TDbColNo aCol) const __SOFTFP; IMPORT_C TReal64 ColReal64(TDbColNo aCol) const __SOFTFP; inline TReal ColReal(TDbColNo aCol) const; IMPORT_C TTime ColTime(TDbColNo aCol) const; IMPORT_C TPtrC8 ColDes8(TDbColNo aCol) const; IMPORT_C TPtrC16 ColDes16(TDbColNo aCol) const; IMPORT_C TPtrC ColDes(TDbColNo aCol) const; IMPORT_C void SetColNullL(TDbColNo aCol); inline void SetColL(TDbColNo aCol,TInt aValue); IMPORT_C void SetColL(TDbColNo aCol,TInt32 aValue); IMPORT_C void SetColL(TDbColNo aCol,TInt64 aValue); inline void SetColL(TDbColNo aCol,TUint aValue); IMPORT_C void SetColL(TDbColNo aCol,TUint32 aValue); IMPORT_C void SetColL(TDbColNo aCol,TReal32 aValue) __SOFTFP; IMPORT_C void SetColL(TDbColNo aCol,TReal64 aValue) __SOFTFP; IMPORT_C void SetColL(TDbColNo aCol,TTime aValue); IMPORT_C void SetColL(TDbColNo aCol,const TDesC8& aValue); IMPORT_C void SetColL(TDbColNo aCol,const TDesC16& aValue);private: inline MStreamBuf* ColSourceL(TDbColNo aCol) const; inline MStreamBuf* ColSinkL(TDbColNo aCol); CDbCursor& CheckCol(TDbColNo aCol) const; TDbColumnC ColumnC(TDbColNo aCol,TDbColType aType) const; TDbColumn Column(TDbColNo aCol,TDbColType aType);protected: RDbHandle<CDbCursor> iCursor; };class RDbColReadStream : public RReadStream {public: IMPORT_C void OpenL(const RDbRowSet& aView,TDbColNo aCol); IMPORT_C void OpenLC(const RDbRowSet& aView,TDbColNo aCol); };class RDbColWriteStream : public RWriteStream {public: inline RDbColWriteStream() {} inline RDbColWriteStream(const MExternalizer<TStreamRef> &anExternalizer); IMPORT_C void OpenL(RDbRowSet& aView,TDbColNo aCol); IMPORT_C void OpenLC(RDbRowSet& aView,TDbColNo aCol); };class TDbWindow {public: enum TUnlimited { EUnlimited=KMaxTInt }; enum {ENone=0};public: inline TDbWindow(); inline TDbWindow(TUnlimited); IMPORT_C TDbWindow(TInt aForeSlots,TInt aRearSlots); inline TInt Size() const; inline TInt PreferredPos() const;private: TInt iSize; TInt iPreferredPos; };#define KDbUnlimitedWindowclass RDbView : public RDbRowSet {public: IMPORT_C TInt Prepare(RDbDatabase& aDatabase,const TDbQuery& aQuery,TAccess anAccess=EUpdatable); IMPORT_C TInt Prepare(RDbDatabase& aDatabase,const TDbQuery& aQuery,const TDbWindow& aWindow); IMPORT_C TInt Prepare(RDbDatabase& aDatabase,const TDbQuery& aQuery,const TDbWindow& aWindow,TAccess anAccess); IMPORT_C TInt EvaluateAll(); IMPORT_C TInt Evaluate(); IMPORT_C void Evaluate(TRequestStatus& aStatus); IMPORT_C TBool Unevaluated() const; };template <class T>class TUnion {public: inline operator const T&() const; inline const T& operator()() const; inline T& operator()(); inline void Set(const T& aT);private: TUint8 iRep[sizeof(T)]; };class TDbLookupKey {public: struct SColumn { union { TInt32 iInt32; TUint32 iUint32; TUnion<TInt64> iInt64; TReal32 iReal32; TReal64 iReal64; TUnion<TTime> iTime; struct {const TText8* iPtr;TInt iLength;} iDes8; struct {const TText16* iPtr;TInt iLength;} iDes16; }; TDbColType iType; };public: inline TDbLookupKey(); inline TInt Count() const; inline const SColumn* First() const; void Add(TInt aKey); void Add(TUint aKey); void Add(TInt64 aKey); void Add(TReal32 aKey) __SOFTFP; void Add(TReal64 aKey) __SOFTFP; void Add(TTime aKey); void Add(const TDesC8& aKey); void Add(const TDesC16& aKey);private: SColumn& NextKey();private: TInt iCount; SColumn iKey[1]; };class TDbSeekKey { friend class RDbTable;public: inline TDbSeekKey(); inline TDbSeekKey(TInt aKey); inline TDbSeekKey(TUint aKey); inline TDbSeekKey(TInt64 aKey); inline TDbSeekKey(TReal32 aKey); inline TDbSeekKey(TReal64 aKey); inline TDbSeekKey(TTime aKey); inline TDbSeekKey(const TDesC8& aKey); inline TDbSeekKey(const TDesC16& aKey); IMPORT_C TDbSeekKey& Add(TInt aKey); IMPORT_C TDbSeekKey& Add(TUint aKey); IMPORT_C TDbSeekKey& Add(TInt64 aKey); IMPORT_C TDbSeekKey& Add(TReal32 aKey) __SOFTFP; IMPORT_C TDbSeekKey& Add(TReal64 aKey) __SOFTFP; IMPORT_C TDbSeekKey& Add(TTime aKey); IMPORT_C TDbSeekKey& Add(const TDesC8& aKey); IMPORT_C TDbSeekKey& Add(const TDesC16& aKey);private: TDbLookupKey& Check();protected: inline TDbSeekKey(TInt aKeys,TInt);private: TInt iMaxKeys; TDbLookupKey iKey; };template<TInt S>class TDbSeekMultiKey : public TDbSeekKey {public: inline TDbSeekMultiKey();private: TDbLookupKey::SColumn iExtraKeys[S-1]; };class RDbTable : public RDbRowSet {public: enum TComparison { ELessThan, ELessEqual, EEqualTo, EGreaterEqual, EGreaterThan };public: IMPORT_C TInt Open(RDbDatabase& aDatabase,const TDesC& aName,TAccess anAccess=EUpdatable); inline TInt SetIndex(const TDesC& anIndex); inline TInt SetNoIndex(); IMPORT_C TBool SeekL(const TDbSeekKey& aKey,TComparison aComparison=EEqualTo);private: IMPORT_C TInt SetIndex(const TDesC* anIndex); };class CDbNames : public CBase {private: inline CDbNames();public: static CDbNames* NewLC(); ~CDbNames(); inline TInt Count() const; inline const TDesC& operator[](TInt anIndex) const; IMPORT_C void AddL(const TDesC& aName);private: CArrayPakFlat<TDbNameC> iList; };typedef CDbNames CDbTableNames,CDbIndexNames,CDbDatabaseNames;const TInt KDbMaxStrLen = 256;typedef TBufC<KDbMaxStrLen> TDbStringC;class CDbStrings : public CBase {private: inline CDbStrings();public: static CDbStrings* NewLC(); virtual ~CDbStrings(); inline TInt Count() const; inline const TDesC& operator[](TInt aIndex) const; void AddL(const TDesC& aStr);private: CArrayPakFlat<TDbStringC> iList; };class RDbDatabase { friend class RDbView; friend class RDbTable; friend class RDbIncremental; friend class RDbUpdate; friend class RDbNotifier;public: struct TSize {TInt iSize;TInt iUsage;};public: IMPORT_C void Close(); IMPORT_C TInt Destroy(); IMPORT_C TBool IsDamaged() const; IMPORT_C TInt Recover(); IMPORT_C TInt UpdateStats(); IMPORT_C TSize Size() const; IMPORT_C TInt Compact(); IMPORT_C TInt Begin(); IMPORT_C TInt Commit(); IMPORT_C void Rollback(); IMPORT_C TBool InTransaction() const; inline TInt CreateTable(const TDesC& aName,const CDbColSet& aDef); inline TInt CreateTable(const TDesC& aName,const CDbColSet& aDef,const CDbKey& aPrimaryKey); IMPORT_C TInt DropTable(const TDesC& aName); IMPORT_C TInt AlterTable(const TDesC& aName,const CDbColSet& aNewDef); IMPORT_C TInt CreateIndex(const TDesC& aName,const TDesC& aTable,const CDbKey& aKey); IMPORT_C TInt DropIndex(const TDesC& aName,const TDesC& aTable); IMPORT_C TInt Execute(const TDesC& aSql,TDbTextComparison aComparison=EDbCompareNormal); IMPORT_C CDbTableNames* TableNamesL() const; IMPORT_C CDbColSet* ColSetL(const TDesC& aName) const; IMPORT_C CDbIndexNames* IndexNamesL(const TDesC& aTable) const; IMPORT_C CDbKey* KeyL(const TDesC& aName,const TDesC& aTable) const;private: IMPORT_C TInt CreateTable(const TDesC& aName,const CDbColSet& aColSet,const CDbKey* aPrimaryKey);protected: RDbHandle<CDbDatabase> iDatabase; };class RDbIncremental {public: IMPORT_C void Close(); IMPORT_C TInt Next(TInt& aStep); IMPORT_C void Next(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus); IMPORT_C TInt Recover(RDbDatabase& aDatabase,TInt& aStep); IMPORT_C TInt Compact(RDbDatabase& aDatabase,TInt& aStep); IMPORT_C TInt DropTable(RDbDatabase& aDatabase,const TDesC& aTable,TInt& aStep); IMPORT_C TInt AlterTable(RDbDatabase& aDatabase,const TDesC& aTable,const CDbColSet& aNewDef,TInt& aStep); IMPORT_C TInt CreateIndex(RDbDatabase& aDatabase,const TDesC& aName,const TDesC& aTable,const CDbKey& aKey,TInt& aStep); IMPORT_C TInt DropIndex(RDbDatabase& aDatabase,const TDesC& aName,const TDesC& aTable,TInt& aStep); inline TInt Execute(RDbDatabase& aDatabase,const TDesC& aSql,TInt& aStep); IMPORT_C TInt Execute(RDbDatabase& aDatabase,const TDesC& aSql,TDbTextComparison aComparison,TInt& aStep); IMPORT_C TInt UpdateStats(RDbDatabase& aDatabase,TInt& aStep);private: RDbHandle<CDbIncremental> iState; };class RDbUpdate {public: IMPORT_C TInt Execute(RDbDatabase& aDatabase,const TDesC& aSql,TDbTextComparison aComparison=EDbCompareNormal); IMPORT_C void Close(); IMPORT_C TInt Next(); IMPORT_C void Next(TRequestStatus& aStatus); IMPORT_C TInt RowCount() const;private: RDbHandle<CDbIncremental> iUpdate; TPckgBuf<TInt> iRows; };class RDbNotifier {public: enum TEvent { EClose, EUnlock, ECommit, ERollback, ERecover };public: IMPORT_C TInt Open(RDbDatabase& aDatabase); IMPORT_C void Close(); IMPORT_C void NotifyUnlock(TRequestStatus& aStatus); IMPORT_C void NotifyChange(TRequestStatus& aStatus); IMPORT_C void Cancel();private: RDbHandle<CDbNotifier> iNotifier; };class RDbs : public RSessionBase {public: typedef enum {EReadPolicy, EWritePolicy, ESchemaPolicy} TPolicyType;public: IMPORT_C static TVersion Version(); IMPORT_C TInt Connect(); IMPORT_C CDbDatabaseNames* DatabaseNamesL(TDriveNumber aDrive, TUid aPolicyUid); IMPORT_C TInt CopyDatabase(const TDesC& aSrcDbName, const TDesC& aDestDbName, TUid aPolicyUid); IMPORT_C TInt DeleteDatabase(const TDesC& aDbName, TUid aPolicyUid); IMPORT_C TInt GetDatabasePolicy(TUid aPolicyUid, TPolicyType aPolicyType, TSecurityPolicy& aDbPolicy); IMPORT_C TInt GetTablePolicy(TUid aPolicyUid, const TDesC& aTableName, TPolicyType aPolicyType, TSecurityPolicy& aTablePolicy); IMPORT_C TInt GetTablePolicies(TUid aPolicyUid, const TDesC& aTableName, TPolicyType aPolicyType, TSecurityPolicy& aDbPolicy, TSecurityPolicy& aTablePolicy); IMPORT_C void ResourceMark(); IMPORT_C void ResourceCheck(); IMPORT_C TInt ResourceCount(); IMPORT_C void SetHeapFailure(TInt aTAllocFail,TInt aRate); IMPORT_C TInt ReserveDriveSpace(TInt aDriveNo, TInt aSpace); IMPORT_C void FreeReservedSpace(TInt aDriveNo); IMPORT_C TInt GetReserveAccess(TInt aDriveNo); IMPORT_C TInt ReleaseReserveAccess(TInt aDriveNo); IMPORT_C TInt GetBackupPath(TSecureId aRequesterSid, const TDesC& aDbName, TUid aDbPolicyUid, TDes& aBackupPath); IMPORT_C CDbStrings* BackupPathsL(TSecureId aRequesterSid, TUid aDbPolicyUid);private: TInt DoConnect(); TInt SessionMessage(TInt aFunction); TInt GetPolicy(TUid aPolicyUid, const TDesC& aTableName, TUint aMask, TSecurityPolicy& aPolicy); };class RDbNamedDatabase : public RDbDatabase {public: enum TAccess { EReadWrite, EReadOnly };public: IMPORT_C TInt Create(RDbs& aDbs, const TDesC& aDatabase, const TDesC& aFormat); IMPORT_C TInt Create(RFs& aFs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC()); IMPORT_C TInt Replace(RFs& aFs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC()); IMPORT_C TInt Open(RFs& aFs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC(),TAccess aMode=EReadWrite); IMPORT_C TInt Open(RDbs& aDbs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC()); };class RDbStoreDatabase : public RDbDatabase {public: IMPORT_C TStreamId CreateL(CStreamStore* aStore); IMPORT_C void OpenL(CStreamStore* aStore,TStreamId anId); IMPORT_C static void CompressL(CStreamStore& aStore,TStreamId aId); IMPORT_C static void DecompressL(CStreamStore& aStore,TStreamId aId); };# 1 "X:/epoc32/include/d32dbms.inl" 1inline TDbCol::TDbCol(const TDesC &aName) : iName(aName) { }inline TDbCol::TDbCol(const TDbCol& aSrcCol) : iType(aSrcCol.iType), iMaxLength(aSrcCol.iMaxLength), iAttributes(aSrcCol.iAttributes), iName(static_cast <const TDesC&>aSrcCol.iName)) { } inline TDbCol& TDbCol::operator=(const TDbCol& aSrcCol) { iType = aSrcCol.iType; iMaxLength = aSrcCol.iMaxLength; iAttributes = aSrcCol.iAttributes; iName = static_cast <const TDesC&>aSrcCol.iName); return *this; }inline TBool TDbCol::IsLong(TDbColType aType) { return aType>=EDbColLongText8; }inline TInt CDbColSet::Count() const { return iColumns.Count(); }inline void CDbColSet::Clear() { iColumns.Reset(); }inline const TDbCol& CDbColSet::operator[](TDbColNo aCol) const { return iColumns[aCol-1]; }inline TDbColSetIter::operator TAny* () const { return (const_cast< TDbCol* > iColumn )); }inline const TDbCol& TDbColSetIter::operator*() const { ; return *iColumn; }inline const TDbCol* TDbColSetIter::operator->) const { ; return iColumn; }inline TDbColNo TDbColSetIter::Col() const { ; return iIndex+1; }inline TDbColSetIter TDbColSetIter::operator++(TInt) { TDbColSetIter tmp(*this); ++(*this); return tmp; }inline TDbKeyCol::TDbKeyCol(const TDbKeyCol& aSrcKeyCol) : iOrder(aSrcKeyCol.iOrder), iLength(aSrcKeyCol.iLength), iName(static_cast <const TDesC&>aSrcKeyCol.iName)) { } inline TDbKeyCol& TDbKeyCol::operator=(const TDbKeyCol& aSrcKeyCol) { iOrder = aSrcKeyCol.iOrder; iLength = aSrcKeyCol.iLength; iName = static_cast <const TDesC&>aSrcKeyCol.iName); return *this; }inline TInt CDbKey::Count() const { return iKeys.Count(); }inline const TDbKeyCol& CDbKey::operator[](TInt aCol) const { return iKeys[aCol]; }inline void CDbKey::MakeUnique() { iAttributes|=EUnique; }inline TBool CDbKey::IsUnique() const { return iAttributes&EUnique; }inline TBool CDbKey::IsPrimary() const { return iAttributes&EPrimary; }inline void CDbKey::SetComparison(TDbTextComparison aComparison) { iComparison=aComparison; }inline TDbTextComparison CDbKey::Comparison() const { return iComparison; }inline void CDbKey::MakePrimary() { iAttributes|=EPrimary; }inline TDbQuery::TDbQuery(const TDesC& aQuery,TDbTextComparison aComparison): iQuery(aQuery), iComparison(aComparison) { }inline const TDesC& TDbQuery::Query() const { return iQuery; }inline TDbTextComparison TDbQuery::Comparison() const { return iComparison; }inline RDbHandleBase::RDbHandleBase(): iObject(0) { }inline void RDbRowSet::BeginningL() { GotoL(EBeginning); }inline void RDbRowSet::EndL() { GotoL(EEnd); }inline TBool RDbRowSet::FirstL() { return GotoL(EFirst); }inline TBool RDbRowSet::LastL() { return GotoL(ELast); }inline TBool RDbRowSet::NextL() { return GotoL(ENext); }inline TBool RDbRowSet::PreviousL() { return GotoL(EPrevious); }inline TBool RDbRowSet::IsColNull(TDbColNo aCol) const { return ColSize(aCol)==0; }inline TInt RDbRowSet::ColInt(TDbColNo aCol) const { return ColInt32(aCol); }inline TUint RDbRowSet::ColUint(TDbColNo aCol) const { return ColUint32(aCol); }inline TReal RDbRowSet::ColReal(TDbColNo aCol) const { return ColReal64(aCol); }inline void RDbRowSet::SetColL(TDbColNo aCol,TInt aValue) { SetColL(aCol, TInt32(aValue)); }inline void RDbRowSet::SetColL(TDbColNo aCol,TUint aValue) { SetColL(aCol,TUint32(aValue)); }inline TDbWindow::TDbWindow(): iSize(ENone) { }inline TDbWindow::TDbWindow(TUnlimited): iSize(EUnlimited) { }inline TInt TDbWindow::Size() const { return iSize; }inline TInt TDbWindow::PreferredPos() const { return iPreferredPos; }template <class T>inline TUnion<T>::operator const T&() const { return *(const T*)&iRep[0]; }template <class T>inline const T& TUnion<T>::operator()() const { return *(const T*)&iRep[0]; }template <class T>inline T& TUnion<T>::operator()() { return *(T*)&iRep[0]; }template <class T>inline void TUnion<T>::Set(const T& aT) { new(&iRep[0]) T(aT); }inline TDbLookupKey::TDbLookupKey(): iCount(0) { }inline TInt TDbLookupKey::Count() const { return iCount; }inline const TDbLookupKey::SColumn* TDbLookupKey::First() const { return &iKey[0]; }inline TDbSeekKey::TDbSeekKey(): iMaxKeys(1) { }inline TDbSeekKey::TDbSeekKey(TInt aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TUint aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TInt64 aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TReal32 aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TReal64 aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TTime aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(const TDesC8& aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(const TDesC16& aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TInt aKeys,TInt): iMaxKeys(aKeys) { }template <TInt S>inline TDbSeekMultiKey<S>::TDbSeekMultiKey(): TDbSeekKey(S,0) { }inline TInt RDbTable::SetIndex(const TDesC& anIndex) { return SetIndex(&anIndex); }inline TInt RDbTable::SetNoIndex() { return SetIndex(0); }inline RDbColWriteStream::RDbColWriteStream(const MExternalizer<TStreamRef> &anExternalizer): RWriteStream(anExternalizer) { }inline TInt CDbNames::Count() const { return iList.Count(); }inline const TDesC& CDbNames::operator[](TInt anIndex) const { return iList[anIndex]; }inline TInt RDbDatabase::CreateTable(const TDesC& aName,const CDbColSet& aColSet) { return CreateTable(aName,aColSet,NULL); }inline TInt RDbDatabase::CreateTable(const TDesC& aName,const CDbColSet& aColSet,const CDbKey& aPrimaryKey) { return CreateTable(aName,aColSet,&aPrimaryKey); }inline TInt RDbIncremental::Execute(RDbDatabase& aDatabase,const TDesC& aSql,TInt& aStep) { return Execute(aDatabase,aSql,EDbCompareNormal,aStep); }inline TInt CDbStrings::Count() const { return iList.Count(); }inline const TDesC& CDbStrings::operator[](TInt aIndex) const { return iList[aIndex]; }# 1485 "X:/epoc32/include/d32dbms.h" 2# 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectorydb.h" 2# 1 "X:/epoc32/include/flogger.h" 1#define __FLOGGER_H__const TInt KLogBufferSize=150;class FLogger {public: class TSignal { friend class FLogger; public: inline TSignal() {} inline TInt Set(const TDesC& aCommand); inline TSignal(TRequestStatus& aStatus); inline TPtrC Command() const; private: TRequestStatus* iStatus; TThreadId iId; };public: static TInt Start(); IMPORT_C static TInt Run(TSignal& aSignal);private: static TInt Init(); };enum TFileLoggingMode { EFileLoggingModeUnknown =0, EFileLoggingModeAppend, EFileLoggingModeOverwrite, EFileLoggingModeAppendRaw, EFileLoggingModeOverwriteRaw };class TLogFormatter16Overflow :public TDes16Overflow {public: virtual void Overflow(TDes16& aDes); };class TLogFormatter8Overflow :public TDes8Overflow {public: virtual void Overflow(TDes8& aDes); };class TLogFormatter {public: TLogFormatter(); void SetDateAndTime(TBool aUseDate,TBool aUseTime); TInt FormatTextToWritableBuffer(TDes8& aBuf, const TDesC16& aText) const; TInt FormatTextToWritableBuffer(TDes8& aBuf, const TDesC8& aText) const; TInt ConvertToWritableBuffer(TDes8& aBuf, TRefByValue<const TDesC16> aFmt, VA_LIST& aList); TInt ConvertToWritableBuffer(TDes8& aBuf, TRefByValue<const TDesC8> aFmt, VA_LIST& aList);private: void GetDateAndTimeL(TDes& aDate, TDes& aTime) const; void WriteL(TDes8& aTrg, const TDesC16& aSrc) const; void WriteL(TDes8& aTrg, const TDesC8& aSrc) const;private: TBool iUseDate; TBool iUseTime; TLogFormatter16Overflow iOverflow16; TLogFormatter8Overflow iOverflow8; };class TLogFile {public: TLogFile(); TLogFile(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode); TBool operator==(const TLogFile& aLogFile) const; void Set(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode); inline TBool Valid() const; inline TFileName Directory() const; inline TFileName Name() const; inline TFileLoggingMode Mode() const; inline void SetValid(TBool aValid);private: TBool iValid; TFileName iDirectory; TFileName iName; TFileLoggingMode iMode; };# 1 "X:/epoc32/include/flogger.inl" 1#define __FLOGGER_INL__inline FLogger::TSignal::TSignal(TRequestStatus& aStatus) :iStatus(&aStatus),iId(RThread().Id()) { aStatus=KRequestPending; }inline TPtrC FLogger::TSignal::Command() const { return TPtrC((const TText*)this,sizeof(*this)/sizeof(TText)); }inline TInt FLogger::TSignal::Set(const TDesC& aCommand) { if (aCommand.Size()!=sizeof(*this)) return KErrGeneral; return (Mem::Copy(this,aCommand.Ptr(),sizeof(*this)),KErrNone); }inline TBool TLogFile::Valid() const { return iValid; }inline TFileName TLogFile::Directory() const { return iDirectory; } inline TFileName TLogFile::Name() const { return iName; }inline TFileLoggingMode TLogFile::Mode() const { return iMode; } inline void TLogFile::SetValid(TBool aValid) { iValid=aValid; }# 156 "X:/epoc32/include/flogger.h" 2class RFileLogger : public RSessionBase {public: IMPORT_C RFileLogger(); IMPORT_C ~RFileLogger(); IMPORT_C TVersion Version() const; IMPORT_C TInt Connect(); IMPORT_C void SetDateAndTime(TBool aUseDate,TBool aUseTime); IMPORT_C void CreateLog(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode); IMPORT_C void CloseLog(); IMPORT_C void Write(const TDesC16& aText); IMPORT_C void WriteFormat(TRefByValue<const TDesC16> aFmt,...); IMPORT_C void WriteFormat(TRefByValue<const TDesC16> aFmt, VA_LIST& aList); IMPORT_C void Write(const TDesC8& aText); IMPORT_C void WriteFormat(TRefByValue<const TDesC8> aFmt,...); IMPORT_C void WriteFormat(TRefByValue<const TDesC8> aFmt, VA_LIST& aList); IMPORT_C void HexDump(const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen); IMPORT_C static void Write(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, const TDesC16& aText); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC16> aFmt,...); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC16> aFmt, VA_LIST& aList); IMPORT_C static void Write(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, const TDesC8& aText); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC8> aFmt,...); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC8> aFmt, VA_LIST& aList); IMPORT_C static void HexDump(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen); IMPORT_C TInt LastError() const; IMPORT_C TBool LogValid() const; IMPORT_C TBool LogSTI() const;private: TInt DoConnect(); void DoWrite(const TDesC8& aBuf); void DoStaticWrite(const TDesC8& aBuf); void DoWriteFormat(TRefByValue<const TDesC16> aFmt, VA_LIST& aList); void DoWriteFormat(TRefByValue<const TDesC8> aFmt, VA_LIST& aList); static void DoStaticWriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC16> aFmt, VA_LIST& aList); static void DoStaticWriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC8> aFmt, VA_LIST& aList); void DoHexDump(const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen);private: TLogFormatter iFormatter; TLogFile iLogFile; TInt iLastError; TBool iLogSTI; };# 27 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectorydb.h" 2class CUpnpElementBean;class CUpnpFilterElement;class CUpnpAttributeBean;class CUpnpObjectBean;class CUpnpDlnaProtocolInfo;class CUpnpShareMapBean;class CUpnpResourcesBean;class CUpnpMetadataStorage;class CUpnpContentDirectoryDb : public CBase{ public: static CUpnpContentDirectoryDb* NewLC(CUpnpMetadataStorage* aMetadataStorage); static CUpnpContentDirectoryDb* NewL(CUpnpMetadataStorage* aMetadataStorage); ~CUpnpContentDirectoryDb(); public: TUpnpErrorCode CheckObjectRestrictionL(TInt aObjId); TUpnpErrorCode InsertObjectL( RXmlEngDocument& aFragment, TInt aContainer, TInt* aId); TUpnpErrorCode GetObjectL( TInt aObjectID, RXmlEngDocument& aDoc, const TDesC8& aFilterString); TInt ReferedObjectIdL( TInt aObjectId ); TUpnpErrorCode GetObjectListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode DeleteObjectL(TInt aObjId,RArray<TInt>& aRefList, TBool aDeleteResource=ETrue); TUpnpErrorCode UpdateObjectL(TInt aObjId, RXmlEngDocument& aFragment); void DeleteResourceL(const TDesC8& aResVal, RArray<TInt>& aContIds); TUpnpErrorCode GetObjectByAttrL(RXmlEngDocument& aDoc, TInt* aObjId, const TDesC8& aAttrName, const TDesC8& aAttrVal); TUpnpErrorCode CheckParentRestrictionL(TInt aObjId); TInt GetObjIdByAttrL(const TDesC8& aAttrName, const TDesC8& aAttrVal); TInt GetObjIdByAttrLikeL(const TDesC8& aAttrName, const TDesC8& aAttrVal); RXmlEngDocument PrepareDidlDocumentL(); TInt GetProtocolInfoL(const TDesC8& aContentUri, CUpnpDlnaProtocolInfo*& aProtocolInfo); void GetObjectListL(const RArray<TInt>& aIds, const TDesC8& aFilter, RArray<RXmlEngDocument>& aObjs); TBool CanBeNestedL(TInt aObjId); void AddResourceL(CUpnpResourcesBean* aResBean, TInt aObjId); void DeleteResourceByResIdL(TInt64 aResId, TBool aDeleteFile = ETrue); void DeleteResourceByObjIdL(TInt aObjId, TBool aDeleteFile = ETrue); void NewMediaDirectoryL(const TDesC& aOldDir); CUpnpResourcesBean* GetResourceL(TInt64 aResId); CUpnpAttributeBean* GetAttrByNameL(TInt aElmId, const TDesC8& aAttrName, HBufC8*& aAttrVal); CUpnpAttributeBean* GetAttrByValueL(const TDesC8& aAttrName, const TDesC8& aAttrVal); HBufC8* GetProtocolInfoByImportUriL(const TDesC8& aImportUri); TInt GetKeyForUriL(); TInt GetObjectIdByElementValueLikeL(const TDesC8& aElmName, const TDesC8& aElmValue); TInt GetParentIdL(TInt aObjectId); TInt GetObjectIdL(); HBufC8* GetObjectTitleL(TInt aId); void CheckDatabaseL(); TInt HandleDbError( TInt aError ); TInt RecreateDatabaseFile(); TBool IsDbCreated(); private: CUpnpObjectBean* GetObjBeanLC(TInt aObjId); void GetObjectsByResourceL(RArray<TInt>& aIds, const TDesC& aResVal); TInt GetElmIdByNameAndValL(const TDesC& aElmName, const TDesC& aElmValue); void GetAttrValueByNameL(TInt aElmId, const TDesC8& aAttrName, HBufC8*& aAttrVal); void DeleteResourcesL(TInt aObjId); void DoDeleteResourceL(const TDesC8& aResVal, RArray<TInt>& aContIds); void SetChildCountL(TXmlEngElement aElement, TInt aId); void AddAllPropertiesL(TXmlEngElement aElement, CUpnpObjectBean* aObjBean); void AddAttributeL( TXmlEngElement aElement, const TDesC8& aAttrName, TInt aElementId, TInt aObjectId ); TUpnpErrorCode AddRequestedPropertiesL(TInt aObjectID,TXmlEngElement aElement, const RPointerArray<CUpnpFilterElement>& aFilterElements); void AddElementL(TXmlEngElement aElement, TInt aObjectID, const CUpnpFilterElement* aReqElement); TUpnpErrorCode AddRequiredPropertyL(TXmlEngElement aElement, TInt aObjId, CUpnpFilterElement* aFilterElement); void ParseFilterStringL(const TDesC8& aFilter, RPointerArray<CUpnpFilterElement>& aList); TUpnpErrorCode DoGetObjectL(TInt aObjectID, RXmlEngDocument& aDoc, TBool aAll); TUpnpErrorCode InsertElementL(const TXmlEngElement& aElementel, TInt aObjId); TUpnpErrorCode DoUpdateObjectL(TInt aObjId, TXmlEngElement aFragment); TUpnpErrorCode InsertUpdatedL(TInt aObjId, TXmlEngElement& aElement); TInt SetObjectIdL(TXmlEngElement& aElement); TUpnpErrorCode DoInsertObjectL( TXmlEngElement& aElement, TInt aContainerId, TInt* aId); TUpnpErrorCode InsertAttributesL(const TXmlEngElement aElement, TInt aElmId,TInt aObjId); TBool IsAttrRequiredL(const TXmlEngAttr& aAttr, RArray<TXmlEngAttr>& aMarkers); CUpnpContentDirectoryDb(CUpnpMetadataStorage* aMetadataStorage); void ConstructL(); void ConstructDbL(const TFileName& aDatabaseFileName); void OpenDbL( const TFileName& aDatabaseFileName ); void AddElementsL( TInt aObjectID, TXmlEngElement aObjectElement, TBool aAll ); void AddAttributesL( TInt aElementID, TInt aObjectID, TXmlEngElement& aElement, TBool aAll ); private: CUpnpMetadataStorage* iMetadataStorage; RXmlEngDOMImplementation iDOMImpl; };# 43 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpfiletransfertimerobserver.h" 1#define C_CUPNPFILETRANSFERTIMEROBSERVER_Hclass CUpnpContentDirectory;class MUpnpContentDirectoryEventObserver;class CUpnpFileTransferTimerObserver;const TInt KFileTransferStorageTime = 30000000;class MUpnpFileTransferTimerObserver {public: virtual void TransferEvent( CUpnpFileTransferTimerObserver* aTimer ) = 0; };class CUpnpFileTransferTimerObserver : public CBase, public MUpnpNotifyTimerObserver{public: static CUpnpFileTransferTimerObserver* NewLC( MUpnpFileTransferTimerObserver* aCd, TInt aTransferId); virtual ~CUpnpFileTransferTimerObserver();private: CUpnpFileTransferTimerObserver( MUpnpFileTransferTimerObserver* aCd, TInt aTransferId ); void ConstructL();public: void TimerEventL( CUpnpNotifyTimer* aTimer ); TInt TransferId(); private: MUpnpFileTransferTimerObserver* iCd; CUpnpNotifyTimer* iEventTimer; TInt iTransferId; }; # 44 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnperror.h" 1#define C_TUPNPERROR_Hclass TUpnpError{public: TUpnpError(TInt aErrCode); operator TUpnpErrorCode(); private: TUpnpErrorCode iUpnpErrCode;}; # 45 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/inc/upnpcustomlog.h" 1#define C_UPNPCUSTOMLOG_H #define UPNP_LOGconst static TLitC<sizeof(L"upnp" )/2> KLogFolder ={sizeof(L"upnp" )/2-1,L"upnp" };const TInt KMaxLogLen = 256; #define LOGT(A)#define LOGS(A)#define LOGS1(A,B)#define LOGS2(A,B,C)#define LOGM#define ACTIONSEND(A)#define ACTIONRECV(A,B)#define LOGTH(H,A)#define LOGSH(H,A)#define LOGS1H(H,A,B)#define LOGS2H(H,A,B,C)#define LOGCD(A,B,C,D)#define LOGSQL(A,B,C,D)#define LOGTIME#define LOG(x)#define LOG8(x)#define LOG16(x)#define LOG_FUNC_NAME# 46 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.h" 1#define UPNPRESOURCESBEAN_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptablebean.h" 1#define C_CUPNPTABLEBEAN_Hclass CUpnpTableBean : public CBase{ public: static const TInt KUndef = -1; protected: virtual ~CUpnpTableBean(); CUpnpTableBean(); HBufC8* ReadLongTextColL(const RDbRowSet& aRowSet, const TInt aColNo);}; # 23 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.h" 2class CUpnpElement;class CUpnpResourcesBean: public CUpnpTableBean { public: static CUpnpResourcesBean* NewLC(); static CUpnpResourcesBean* NewL(const RDbRowSet& aRowSet); static CUpnpResourcesBean* NewLC(const RDbRowSet& aRowSet); virtual ~CUpnpResourcesBean(); public: void SetL(const RDbRowSet& aRowSet); void SetId(TInt64 aId); void SetObjectId(TInt aObjectId); void SetPathL(const TDesC& aPath); void SetPathL(const TDesC8& aPath); void SetIsReadonly(TBool aIsReadonly); void SetIsThumbnail(TBool aIsThumbnail); TInt64 Id() const; TInt ObjectId() const; TDesC& Path() const; TInt IsReadonly() const; TInt IsThumbnail() const; private: CUpnpResourcesBean(); void ConstructL(); private: TInt64 iId; TInt iObjectId; HBufC* iPath; TInt iIsReadonly; TInt iIsThumbnail;};# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.inl" 1inline void CUpnpResourcesBean::SetId(TInt64 aId){ iId = aId;}inline void CUpnpResourcesBean::SetObjectId(TInt aObjectId){ iObjectId = aObjectId;}inline void CUpnpResourcesBean::SetIsReadonly(TBool aIsReadonly){ iIsReadonly = aIsReadonly;}inline void CUpnpResourcesBean::SetIsThumbnail(TBool aIsThumbnail){ iIsThumbnail = aIsThumbnail;}inline TInt64 CUpnpResourcesBean::Id() const{ return iId;}inline TInt CUpnpResourcesBean::ObjectId() const{ return iObjectId;}inline TDesC& CUpnpResourcesBean::Path() const{ return *iPath;}inline TInt CUpnpResourcesBean::IsReadonly() const{ return iIsReadonly;}inline TInt CUpnpResourcesBean::IsThumbnail() const{ return iIsThumbnail;}# 158 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.h" 2# 49 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcdutils.h" 1#define CDUTILS_Hclass UpnpCdUtils{ public: static void ValidateFilePath(TDes8& aPath); static void ValidateFilePath(TDes& aPath); static void ValidateSrcUriL(TDesC8& aPath,TDesC8& aIp); static void RemoveWhiteSpacesL(TDes8& aString); static TBool IsWhiteString(const TDesC8& aString); static TXmlEngElement GetObjectElementL(RXmlEngDocument& aFragment); static TBool HasRefIdL( RXmlEngDocument& aFragment ); static HBufC8* EncodeXmlStringL(const TDesC8& aString); static HBufC* Des8ToDesL(const TDesC8& aString); static HBufC* Des8ToDesLC(const TDesC8& aString); static HBufC8* DesToDes8LC(const TDesC& aString); static TInt64 ResIdFromUriL(const TDesC8& aUri); static TPtrC8 ResIdFromUriDesL(const TDesC8& aUri); static void SetObjectIdL(TXmlEngElement aElement, TInt aId); static void SetObjectRefIdL(TXmlEngElement aElement, TInt aRefId); static void SetObjectParentIdL(TXmlEngElement aElement, TInt aParentId); static void SetRestrictedFieldL( TXmlEngElement aElement, TBool aRestrictedFlag ); static void SetContainerIdL(TXmlEngElement aElement, TInt aParentId); static HBufC8* BuildImportUriLC(TInt aResId); static HBufC8* BuildImportUriShorterLC(TInt64 aResId); static HBufC8* BuildContentUriL(TInt aResId, const TDesC& aFileExten, TDesC8& aObjectId); static HBufC8* UpnpCdUtils::RandomizeL(TInt aRange); static TBool IsElementRequiredL(TXmlEngElement aElement); static void ReplaceTrueFalse(HBufC8* aBuf); static HBufC8* GetElmNameWithNsL(TXmlEngElement aElement); static HBufC* EscapeAposL(const TDesC& aValue); static TBool ValidateDateL( TPtrC8 aValue ); static TInt StringToTUint(const TDesC8& aStr, TUint* aInt); static TBool AreDigitsInSpecificRange(const TDesC8& aInput, TInt aNumber, TBool aExactDigitsNumber, TUint32 aRange); static TBool ValidateDurationValue(const TDesC8& aInput); static void SplitStringByDelimeter(TLex8& aLexeme, TChar aDelimeter); static void Skip(TLex8& aLexer, TInt aValue); static TInt StringToInteger(const TDesC8& aStr, TInt* aInt); private: enum TPlaces { EYear = 4, EMonth = 7, EDay = 10, EHour = 13, EMinute = 16, ESecond = 19, EZone1 = 20, EHourOffset1 = 22, EMiliSecond = 23, EZone2 = 24, ETimeOffset1 = 25, EHourOffset2 = 26, ETimeOffset2 = 29 }; UpnpCdUtils();}; # 50 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmetadatastorage.h" 1#define UPNPMETADATASTORAGE_Hclass CUpnpObjectBean;class CUpnpElementBean;class CUpnpAttributeBean;class CUpnpResourcesBean;class CUpnpMetadataStorage : public CBase{public: static CUpnpMetadataStorage* NewL(const TDesC& aDatabaseFileName); static CUpnpMetadataStorage* NewLC(const TDesC& aDatabaseFileName); virtual ~CUpnpMetadataStorage();public: TBool IsContainerL(TInt aObjId); void DeleteResourcesL(RArray<TInt>& aObjList); void AddResourceL(CUpnpResourcesBean* aResBean, TInt aObjId); TUpnpErrorCode DoDeleteObjectL(TInt aObjId, TBool aDeleteResource, TBool aDeleteRef=ETrue ); void InsertIntoAttributeTableL(TInt aElmId, CUpnpAttributeBean* aAtrBn, TInt aObjId, TInt aAtrId); TInt InsertIntoElementTableL(TInt aObjId, CUpnpElementBean* aElmBn, TInt aElmId); TInt InsertIntoObjectTableL(TInt aContainer, CUpnpObjectBean* aObjBn); RDbView GetObjViewL(TInt aObjId); void BeginTransactionL(); void CommitTransactionL(); void RollbackTransactionL(); RDbView GetElementsViewL(TInt aObjectID, TBool aAll); RDbView GetAttributesViewL(TInt aElementID, TBool aAll); RDbView GetAttributesViewByObjectIdL( TInt aObjectID, TBool aAll ); TInt GetElmIdForAttrL(const TDesC8& aAttrName, const TDesC8& aAttrVal); TInt GetElmIdForAttrLikeL(const TDesC8& aAttrName, const TDesC8& aAttrVal); void DeleteResElL(const TDesC& aResVal, TInt ObjId); RDbView GetViewOfObjectListForResL(const TDesC& aResVal); RDbView GetViewOfElmIdByNameAndValL(const TDesC& aElmName, const TDesC& aElmValue); RDbView GetAttrViewL(const TDesC8& aAttrName, const TDesC8& aAttrVal); RDbView GetAttrViewL(TInt aElmId, const TDesC8& aAttrName); RDbView GetAttrViewByObjectIdL(TInt aBjectId, const TDesC8& aAttrName); RDbView PrepareViewL(const TDesC& aSqlQuery); RDbView GetEvaluatedViewL(const TDesC& aSqlQuery); HBufC8* GetObjectPathL(TInt aObjId); HBufC8* GetObjectTitleL(TInt aObjId); void ExecuteL(const TDesC& aSqlCommand); CUpnpResourcesBean* GetResourceL(TInt64 aResId); void DeleteResourceByObjIdL(TInt aObjId, TBool aDeleteFile=ETrue); void DeleteResourceByResIdL(TInt64 aResId, TBool aDeleteFile=ETrue); void DeleteObjectsL(TInt aObjId); void DeleteElementsL(TInt aObjId); void DeleteAttributesL(TInt aObjId); void DeleteReferencesL(TInt aObjId,RArray<TInt>& aRefList); TInt DoDeleteObjectL(TInt aObjId,RArray<TInt>& aRefList, RArray<TInt>& aResList, TBool aDeleteResource, TBool aLocal, TBool aDeleteRef = ETrue ); TUpnpErrorCode CheckParentRestrictionL(TInt aObjId); TUpnpErrorCode DeleteObjectL(TInt aObjId,RArray<TInt>& aRefList, TBool aDeleteResource, TBool aLocal = EFalse, TBool aDeleteRef = ETrue ); HBufC8* GetColDesValFromRowSetL(RDbRowSet aRowset, TDbColNo aColNo); TInt GetChildCountL(TInt aObjId); TInt GetParentIdL(TInt aObjId); TInt GetObjIdForElmIdL(TInt aId); TInt ReferedObjectIdL( TInt aObjectId ); TInt GetNextKeyL(const TDesC8& aName); TInt GetNextKeyL(const TDesC8& aName, TInt aAmount); TInt NextKeyL(const TDesC8& aName); void InsertObjectIntoObjectTableL(const TXmlEngElement& aElement); void InsertAttributeL(const TXmlEngAttr aAttr, TInt aElmId, TBool aIsRequired, TInt aObjId); TInt InsertElementL(const TXmlEngElement& aElementel, TInt aObjId); RDbView GetElementViewL(TInt aObjId, const TDesC8& aElName); TUpnpErrorCode AddMainTagAttrL(TXmlEngElement aElement, TInt aId, const TDesC8& aName); TUpnpErrorCode GetObjectListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode GetItemListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode GetContainerListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode CheckObjectRestrictionL(TInt aObjId); TInt RecoverDatabase(); void RecreateDatabaseFileL(); void CheckDatabaseL(); TInt HandleDbError( TInt aError ); TBool IsDbCreated(); private: CUpnpMetadataStorage(); void ConstructL(const TDesC& aDatabaseFileName);private: void CompactDbL(); TInt AddSubObjectsL(TInt aObjId, RArray<TInt>& aObjList, RArray<TInt>& aResList, TBool aLocal); void CompareDbColSetsL( CDbColSet *aColSet1, CDbColSet *aColSet2 ); void DeleteFileL(const TDesC& aPath); HBufC8* CreatePathValL(const TXmlEngElement& aElement); HBufC8* CreatePathValL(TInt aParentId); void OpenDbL( const TFileName& aDatabaseFileName ); void DbChangedL(TInt aWeight);private: RFs iFsSession; RDbStoreDatabase iDatabase; TBool iIsOpen; CFileStore* iFileStore; TInt iCompactCounter;}; # 51 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpautodestroyobjectlist.h" 1#define C_CUPNPAUTODESTROYOBJECTLIST_Hclass CUpnpAutoDestroyObject;class CUpnpAutoDestroyObjectList: public CBase{public: static CUpnpAutoDestroyObjectList* NewL(); static CUpnpAutoDestroyObjectList* NewLC(); virtual ~CUpnpAutoDestroyObjectList();public: void AppendL(const CUpnpAutoDestroyObject* aObj); void RemoveAndDestroyL(TInt aIndex); TInt FindObjIndexByObjId(TInt aObjId); TInt FindObjIndexByResId(TInt aResId); CUpnpAutoDestroyObject* operator[](TInt aIndex); void TransferFailL(TInt aResId); TInt Count();private: CUpnpAutoDestroyObjectList(); void ConstructL();private:private: RPointerArray<CUpnpAutoDestroyObject> iArray;}; # 52 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpautodestroyobject.h" 1#define C_CUPNPAUTODESTROYOBJECT_Hclass CUpnpContentDirectory;class CUpnpNotifyTimer;class CUpnpAutoDestroyObject: public CBase, public MUpnpNotifyTimerObserver{public: static CUpnpAutoDestroyObject* NewL(CUpnpContentDirectory* aCd, TInt aObjId, TInt aResId ); static CUpnpAutoDestroyObject* NewLC(CUpnpContentDirectory* aCd, TInt aObjId, TInt aResId ); virtual ~CUpnpAutoDestroyObject();public: virtual void TimerEventL(CUpnpNotifyTimer* aTimer); TInt GetResId(); TInt GetObjId(); void SetTransferStartedL(TBool aVal); void RenewTimerL(); private: CUpnpAutoDestroyObject(CUpnpContentDirectory* aCd, TInt aObjId, TInt aResId); void ConstructL();private: CUpnpContentDirectory* iCd; CUpnpNotifyTimer* iEventTimer; TInt iResId; TInt iObjectId; TBool iTransferStarted; TBool iTimeElapsed;}; # 53 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectoryeventobserver.h" 1#define C_CUPNPCONTENTDIRECTORYEVENTOBSERVER_Hclass CUpnpFileTransferEvent;class MUpnpContentDirectoryEventObserver {public: virtual void FileTransferEvent(CUpnpFileTransferEvent *aMessage) = 0; };# 54 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpfiletransferevent.h" 1#define C_CUPNPFILETRANSFEREVENT_H# 1 "X:/epoc32/include/s32mem.h" 1#define __S32MEM_H__class TMemBuf : public TStreamBuf {public: IMPORT_C TMemBuf(); IMPORT_C void Set(TUint8* aPtr,TUint8* anEnd,TInt aMode=ERead|EWrite);protected: IMPORT_C TInt UnderflowL(TInt aMaxLength); IMPORT_C void OverflowL(); IMPORT_C TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);private: inline TUint8* Base() const; inline TUint8* End() const;private: TUint8* iBase; };class TDesBuf : public TStreamBuf {public: IMPORT_C TDesBuf(); IMPORT_C void Set(TDes8& aDes,TInt aMode=ERead|EWrite);protected: IMPORT_C TInt UnderflowL(TInt aMaxLength); IMPORT_C void OverflowL(); IMPORT_C void DoSynchL(); IMPORT_C TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);private: inline TDes8& Des() const; inline TUint8* Base() const; void Consolidate();private: TDes8* iDes; };class TBufBuf : public TStreamBuf {public: enum {ETruncate=0x10,EInsert=0x20};public: IMPORT_C TBufBuf(); IMPORT_C void Set(CBufBase& aBuf,TInt aPos,TInt aMode=ERead|EWrite);protected: IMPORT_C TInt UnderflowL(TInt aMaxLength); IMPORT_C void OverflowL(); IMPORT_C void DoSynchL(); IMPORT_C void DoWriteL(const TAny* aPtr,TInt aLength); IMPORT_C TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);private: inline CBufBase& Buf() const; void Consolidate(); void SetPos(TMark aMark,TInt aPos); inline void SetPos(TRead,TInt aPos); inline void SetPos(TWrite,TInt aPos); TInt Pos(TMark aMark) const; inline TInt Pos(TRead) const; inline TInt Pos(TWrite) const; inline TInt MovePos(TRead,TInt anOffset); inline TInt MovePos(TWrite,TInt anOffset); inline TInt Mark(TRead) const; inline TInt Mark(TWrite) const;private: CBufBase* iBuf; TInt iRPos; TInt iWPos; TInt iMode; };class RMemReadStream : public RReadStream {public: RMemReadStream() {} IMPORT_C RMemReadStream(const TAny* aPtr,TInt aLength); IMPORT_C void Open(const TAny* aPtr,TInt aLength);private: TMemBuf iSource; };class RMemWriteStream : public RWriteStream {public: RMemWriteStream() {} inline RMemWriteStream(const MExternalizer<TStreamRef>& anExter); IMPORT_C RMemWriteStream(TAny* aPtr,TInt aMaxLength); IMPORT_C void Open(TAny* aPtr,TInt aMaxLength);private: TMemBuf iSink; };class RDesReadStream : public RReadStream {public: RDesReadStream() {} IMPORT_C RDesReadStream(const TDesC8& aDes); IMPORT_C void Open(const TDesC8& aDes);private: TMemBuf iSource; };class RDesWriteStream : public RWriteStream {public: RDesWriteStream() {} inline RDesWriteStream(const MExternalizer<TStreamRef>& anExter); IMPORT_C RDesWriteStream(TDes8& aDes); IMPORT_C void Open(TDes8& aDes);private: TDesBuf iSink; };class RBufReadStream : public RReadStream {public: RBufReadStream() {} IMPORT_C RBufReadStream(const CBufBase& aBuf,TInt aPos=0); IMPORT_C void Open(const CBufBase& aBuf,TInt aPos=0);private: TBufBuf iSource; };class RBufWriteStream : public RWriteStream {public: RBufWriteStream() {} inline RBufWriteStream(const MExternalizer<TStreamRef>& anExter); IMPORT_C RBufWriteStream(CBufBase& aBuf,TInt aPos=0); IMPORT_C void Open(CBufBase& aBuf,TInt aPos=0); IMPORT_C void Truncate(CBufBase& aBuf,TInt aPos=0); IMPORT_C void Insert(CBufBase& aBuf,TInt aPos); inline void Append(CBufBase& aBuf);private: TBufBuf iSink; };class CBufStore : public CStreamStore {public: IMPORT_C static CBufStore* NewL(TInt anExpandSize); IMPORT_C static CBufStore* NewLC(TInt anExpandSize); IMPORT_C CBufStore(TInt anExpandSize); IMPORT_C ~CBufStore();protected: IMPORT_C TStreamId DoExtendL(); IMPORT_C void DoDeleteL(TStreamId anId); IMPORT_C MStreamBuf* DoReadL(TStreamId anId) const; IMPORT_C MStreamBuf* DoCreateL(TStreamId& anId); IMPORT_C MStreamBuf* DoWriteL(TStreamId anId); IMPORT_C MStreamBuf* DoReplaceL(TStreamId anId);private: CBufSeg& BufL(TStreamId anId) const;private: CArrayFixFlat<CBufSeg*> iBufArray; TInt iExpandSize; };# 1 "X:/epoc32/include/s32mem.inl" 1inline RMemWriteStream::RMemWriteStream(const MExternalizer<TStreamRef>& anExter) : RWriteStream(anExter) {}inline RDesWriteStream::RDesWriteStream(const MExternalizer<TStreamRef>& anExter) : RWriteStream(anExter) {}inline RBufWriteStream::RBufWriteStream(const MExternalizer<TStreamRef>& anExter) : RWriteStream(anExter) {}inline void RBufWriteStream::Append(CBufBase& aBuf) {Insert(aBuf,aBuf.Size());}# 351 "X:/epoc32/include/s32mem.h" 2# 24 "X:/epoc32/include/platform/mw/upnpfiletransferevent.h" 2# 1 "X:/epoc32/include/platform/mw/upnpmediaserverevent.h" 1#define C_CUPNPMEDIASERVEREVENT_Hclass CUpnpMediaServerEvent : public CBase{public: CUpnpMediaServerEvent(TInt aType); virtual ~CUpnpMediaServerEvent(); TInt GetEventType(); virtual void InternalizeL( RReadStream& aStream ) = 0; virtual void ExternalizeL( RWriteStream& aStream ) const = 0;protected: TInt iEventType;};# 25 "X:/epoc32/include/platform/mw/upnpfiletransferevent.h" 2class CUpnpMediaServerEvent;class CUpnpFileTransferEvent : public CUpnpMediaServerEvent{public: enum TProgressState { EStarted, ECompleted, EFailed, EStopped }; enum TDirection { EIncoming, EOutgoing, }; public: IMPORT_C static CUpnpFileTransferEvent* NewL(); IMPORT_C static CUpnpFileTransferEvent* NewLC(); virtual ~CUpnpFileTransferEvent(); IMPORT_C TProgressState ProgressState(); IMPORT_C void SetProgressState( TProgressState aState ); IMPORT_C TDirection Direction(); IMPORT_C void SetDirection( TDirection aState ); IMPORT_C TInt TransferId(); IMPORT_C void SetTransferId( TInt aTransferId ); IMPORT_C TInt ContentDirectoryObjectId(); IMPORT_C void SetContentDirectoryObjectId( TInt aObjectId ); IMPORT_C TDesC& FilePath(); IMPORT_C void SetFilePathL(const TDesC& aFile); IMPORT_C TInt ErrorCode(); IMPORT_C void SetErrorCode( TInt aError ); IMPORT_C CUpnpFileTransferEvent* CloneL(); IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; IMPORT_C void InternalizeL( RReadStream& aStream ); private: void ConstructL(); CUpnpFileTransferEvent(); private: TInt iProgress; TInt iDirection; TInt iContentDirectoryObjectId; HBufC* iFilePath; TInt iTransferId; TInt iErrorCode;};# 55 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/inc/upnpprotocolinfolocal.h" 1#define C_CUPNPPROTOCOLINFOLOCAL_H const static TLitC8<sizeof( "1" )> KOneChar ={sizeof( "1" )-1, "1" }; const static TLitC8<sizeof( "0" )> KZeroChar ={sizeof( "0" )-1, "0" }; const static TLitC8<sizeof( "http-get" )> KDEFAULT_1ST_PARAM ={sizeof( "http-get" )-1, "http-get" }; const static TLitC8<sizeof( "*" )> KDEFAULT_STAR_PARAM ={sizeof( "*" )-1, "*" }; const char KDlnaDelimeter = ';'; const char KDlnaTokenizer = '='; const char KDlnaAllStar = '*'; const TInt KMAX_INT_LENGTH_STRING = 8 ; const TInt KDLNA_FLAGS_NUMBER = 4; const TInt K32BIT = 32; const TInt KDLNA_FLAGS_QUANTITY = KDLNA_FLAGS_NUMBER * K32BIT; const static TLitC8<sizeof( "*" )> KAllValues ={sizeof( "*" )-1, "*" }; const static TLitC8<sizeof( "DLNA.ORG_PN" )> KDLNA_PN ={sizeof( "DLNA.ORG_PN" )-1, "DLNA.ORG_PN" }; const static TLitC8<sizeof( "DLNA.ORG_OP" )> KDLNA_OP ={sizeof( "DLNA.ORG_OP" )-1, "DLNA.ORG_OP" }; const static TLitC8<sizeof( "DLNA.ORG_PS" )> KDLNA_PS ={sizeof( "DLNA.ORG_PS" )-1, "DLNA.ORG_PS" }; const static TLitC8<sizeof( "DLNA.ORG_CI" )> KDLNA_CI ={sizeof( "DLNA.ORG_CI" )-1, "DLNA.ORG_CI" }; const static TLitC8<sizeof( "DLNA.ORG_FLAGS" )> KDLNA_FLAGS ={sizeof( "DLNA.ORG_FLAGS" )-1, "DLNA.ORG_FLAGS" }; const char KDLNA_BOOLEAN_FALSE = '0'; const char KDLNA_BOOLEAN_TRUE = '1'; enum ADDITIONAL_INFO { NO_DLNA_DATA = -1, NO_ADDITIONAL_INFO = 0, JPEG_SM = 1, JPEG_MED, JPEG_LRG, JPEG_TN, JPEG_SM_ICO, JPEG_LRG_ICO, PNG_TN, PNG_SM_ICO, PNG_LRG_ICO, PNG_LRG, MP3, }; const static TLitC8<sizeof( "image/jpeg" )> KMT_IMAGE_JPEG ={sizeof( "image/jpeg" )-1, "image/jpeg" }; const static TLitC8<sizeof( "image/png" )> KMT_IMAGE_PNG ={sizeof( "image/png" )-1, "image/png" }; const static TLitC8<sizeof( "image/gif" )> KMT_IMAGE_GIF ={sizeof( "image/gif" )-1, "image/gif" }; const static TLitC8<sizeof( "image/bmp" )> KMT_IMAGE_BMP ={sizeof( "image/bmp" )-1, "image/bmp" }; const static TLitC8<sizeof( "audio/mpeg" )> KMT_AUDIO_MP3 ={sizeof( "audio/mpeg" )-1, "audio/mpeg" }; const static TLitC8<sizeof( "text/plain" )> KMT_TEXT_PLAIN ={sizeof( "text/plain" )-1, "text/plain" }; const static TLitC8<sizeof( "image" )> KMimeImage ={sizeof( "image" )-1, "image" }; const static TLitC8<sizeof( "audio" )> KMimeAudio ={sizeof( "audio" )-1, "audio" }; const static TLitC8<sizeof( "video" )> KMimeVideo ={sizeof( "video" )-1, "video" }; const static TLitC8<sizeof( "*DLNA.ORG_OP=??*" )> KDEFAULT_FOURTH_FIELD_OP_PATTERN ={sizeof( "*DLNA.ORG_OP=??*" )-1, "*DLNA.ORG_OP=??*" }; const static TLitC8<sizeof( "*DLNA.ORG_FLAGS=????????????????????????????????*" )> KDEFAULT_FOURTH_FIELD_AVIMAGE_PATTERN ={sizeof( "*DLNA.ORG_FLAGS=????????????????????????????????*" )-1, "*DLNA.ORG_FLAGS=????????????????????????????????*" }; class CUpnpProtocolInfoLocal: public CUpnpDlnaProtocolInfo{ private: CUpnpProtocolInfoLocal(); public: virtual ~CUpnpProtocolInfoLocal(); IMPORT_C static CUpnpProtocolInfoLocal* NewL(const TDesC8& aInputString); IMPORT_C static CUpnpProtocolInfoLocal* NewL(const TDesC8& aMimeType, TInt aAdditionalInfo); IMPORT_C static CUpnpProtocolInfoLocal* NewL(const TDesC8& aMimeType, const TDesC8& aDlnaPn); private: void ConstructL(const TDesC8& aInputString); void ConstructFromDlnaPnL(const TDesC8& aMimeType, const TDesC8& aDlnaPn); void ConstructL(const TDesC8& aMimeType, TInt aAdditionalInfo); private: void ChooseDlnaL(const TDesC8& aMimeType, TInt aAdditionalInfo); void DefaultValuesL(); void FillAccordingToAddInfoL(TInt aAdditionalInfo); void FillAccordingToMimeL(const TDesC8& aMimeType); void ZeroParameters(); void SetDefaultFourthField(); virtual void GetFourthParameterInternalL(TDes8& aBuffer); };# 57 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpxmlcontentfilter.h" 1# 1 "X:/epoc32/include/xmlengnodefilter.h" 1# 23 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpxmlcontentfilter.h" 2class CUpnpXmlContentFilter : public CBase, MXmlEngNodeFilter {public: virtual TXmlEngNodeFilterResult AcceptNode(TXmlEngNode aNode); public: static HBufC8* SerializeLC(RXmlEngDocument& aDoc, TXmlEngElement& aElement ); };# 58 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpstatehandler.h" 1#define C_CUPNPSTATEHANDLER_Hclass TUpnpContainerUpdateId;class CUpnpContentDirectory;class CUpnpStateHandler : public CBase { public: CUpnpStateHandler ( ); ~CUpnpStateHandler (); public: static CUpnpStateHandler* NewL(CUpnpContentDirectory* aCd); void ConstructL(CUpnpContentDirectory* aCd); TInt IncreaseSystemUpdateIdL(); void IncreaseContainerUpdateIdL( const TDesC8& aContainerID ); RArray<TUpnpContainerUpdateId>& ContainerUpdateIds( ); TInt ContainerUpdateId( const TDesC8& aContainerID ); void StateVariableEvented(const TDesC8& aVariableName); TBool IsEnable(); private: RArray<TUpnpContainerUpdateId> iContainerUpdateIds; TUint iSystemUpdateId; RArray<TUpnpContainerUpdateId> iCurrentContainerUpdateIds; TBool iContainerUpdateIdsEvented; CUpnpContentDirectory* iCd; }; # 59 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferuploader.h" 1#define C_CUPNPTRANSFERUPLOADER_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferbase.h" 1#define C_CUPNPTRANSFERBASE_H# 1 "X:/epoc32/include/platform/mw/httptransferobserver.h" 1#define C_MHTTPTRANSFEROBSERVER_Hclass MHttpTransferObserver {public: virtual void TransferProgress( TAny* aKey, TInt aBytes, TInt aTotalBytes )=0; virtual void ReadyForTransferL( TAny* aKey )=0; virtual void TransferCompleted( TAny* aKey, TInt aStatus )=0; };# 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferbase.h" 2class CUpnpContentDirectory;class CHttpTransferBase;class MUpnpTransferObserver;const TInt KDefaultAccessPoint = 11;const TInt KDefaultBuffer = 64000;const TInt KNumOfConcurrentTransactions = 2;class CUpnpTransferBase: public CBase , public MHttpTransferObserver{public: virtual ~CUpnpTransferBase(); virtual void ReadyForTransferL( TAny* aKey); virtual void TransferProgress( TAny* aKey, TInt aBytes, TInt aTotalBytes ); virtual void TransferCompleted( TAny* aKey, TInt aStatus ); public: void CreateAndQueueHttpFileL( const TDesC8& aUri, const TDesC& aTargetPath, TInt aKey ); void SetHeaderL( TInt aKey, const TDesC8& aFieldName, const TDesC8& aFieldValue ); void TrackProgess(TInt aKey, TBool aSwitchOn); virtual void CancelTransfer( TInt aKey); protected: CUpnpTransferBase( MUpnpTransferObserver* aCd ); TInt MapStatus( TInt aErrorCode ); protected: MUpnpTransferObserver* iObserver; CHttpTransferBase* iHttpTransferBase; };# 23 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferuploader.h" 2class CHttpUploader;class CUpnpTransferUploader: public CUpnpTransferBase{public: static CUpnpTransferUploader* NewLC( MUpnpTransferObserver* aCd ); static CUpnpTransferUploader* NewL( MUpnpTransferObserver* aCd ); virtual ~CUpnpTransferUploader(); public: void UploadFileL(TInt aKey); void DownloadFileL(const TDesC8& aUri, const TDesC& aTargetPath, TInt aKey); void UploadFileL( const TDesC8& aUri,const TDesC& aTargetPath, const TDesC8& aContentType, TInt aKey); private: CUpnpTransferUploader( MUpnpTransferObserver* aCd ); void ConstructL(); private: };# 60 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmimemapper.h" 1#define UPNPMIMEMAPPER_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmap.h" 1#define UPNPMAP_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmapelement.h" 1#define UPNPMAPELEMENT_Hclass CUpnpElement;class CUpnpObject;class CUri8;class CUpnpMapElement: public CBase {public: static CUpnpMapElement* NewLC(const TDesC8& aKey, TAny* aValue); static CUpnpMapElement* NewL(const TDesC8& aKey, TAny* aValue); virtual ~CUpnpMapElement();public: const TDesC8& Key(); TAny* Value(); CUpnpMapElement* Next(); void SetNext(CUpnpMapElement* aNext);private: CUpnpMapElement(TAny* iItem); void ConstructL(const TDesC8& aKey); private: HBufC8* iKey; TAny* iValue; CUpnpMapElement* iNext;}; # 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmap.h" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmapbase.h" 1#define UPNPMAPBASE_Hclass CUpnpMapBase: public CBase{public: void PutL(const TDesC8& aKey, TAny* aValue); TAny* Get(const TDesC8& aKey); TAny* Remove(const TDesC8& aKey); virtual void Clear() = 0;protected: CUpnpMapBase(); void ConstructL();protected: CUpnpMapElement* iFirst; };# 26 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmap.h" 2template<class T>class CUpnpMap : public CUpnpMapBase{public: virtual ~CUpnpMap(); void PutL(const TDesC8& aKey, T* aValue); const T* Get(const TDesC8& aKey); T* Remove(const TDesC8& aKey); void Clear();public: CUpnpMap();};template<class T>CUpnpMap<T>::CUpnpMap(){}template<class T>const T* CUpnpMap<T>::Get(const TDesC8& aKey){ return static_cast<T*> CUpnpMapBase::Get(aKey) );}template<class T>void CUpnpMap<T>::PutL(const TDesC8& aKey, T* aValue){ CUpnpMapBase::PutL(aKey, aValue);}template<class T>CUpnpMap<T>::~CUpnpMap(){ Clear();}template<class T>void CUpnpMap<T>::Clear(){ while(iFirst) { CUpnpMapElement* next = iFirst->Next(); delete static_cast<T*> iFirst->Value() ); delete iFirst; iFirst = next; }}# 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmimemapper.h" 2const static TLitC8<sizeof( "jpg" )> KExtensionJpg ={sizeof( "jpg" )-1, "jpg" };const static TLitC8<sizeof( "png" )> KExtensionPng ={sizeof( "png" )-1, "png" };const static TLitC8<sizeof( "txt" )> KExtensionTxt ={sizeof( "txt" )-1, "txt" };const static TLitC8<sizeof( "mp3" )> KExtensionMp3 ={sizeof( "mp3" )-1, "mp3" };const static TLitC8<sizeof( "gif" )> KExtensionGif ={sizeof( "gif" )-1, "gif" };const static TLitC8<sizeof( "bmp" )> KExtensionBmp ={sizeof( "bmp" )-1, "bmp" };const static TLitC<sizeof(L".wav" )/2> KExtensionWav ={sizeof(L".wav" )/2-1,L".wav" };const static TLitC<sizeof(L".aac" )/2> KExtensionAac ={sizeof(L".aac" )/2-1,L".aac" };const static TLitC8<sizeof( "application/xhtml+xml" )> KXHtmlMime ={sizeof( "application/xhtml+xml" )-1, "application/xhtml+xml" }; const static TLitC<sizeof(L".xhtml" )/2> KXHtmlExt ={sizeof(L".xhtml" )/2-1,L".xhtml" }; const static TLitC8<sizeof( "text/html" )> KHtmlMime ={sizeof( "text/html" )-1, "text/html" }; const static TLitC<sizeof(L".html" )/2> KHtmlExt ={sizeof(L".html" )/2-1,L".html" };const static TLitC8<sizeof( "text/xml" )> KXmlMime1 ={sizeof( "text/xml" )-1, "text/xml" }; const static TLitC8<sizeof( "application/xml" )> KXmlMime2 ={sizeof( "application/xml" )-1, "application/xml" };const static TLitC8<sizeof( "application/x-xml" )> KXmlMime3 ={sizeof( "application/x-xml" )-1, "application/x-xml" }; const static TLitC<sizeof(L".xml" )/2> KXmlExt ={sizeof(L".xml" )/2-1,L".xml" };const static TLitC8<sizeof( "text/plain" )> KTxtMime ={sizeof( "text/plain" )-1, "text/plain" };const static TLitC8<sizeof( "application/txt" )> KTxtMime2 ={sizeof( "application/txt" )-1, "application/txt" };const static TLitC8<sizeof( "browser/internal" )> KTxtMime3 ={sizeof( "browser/internal" )-1, "browser/internal" };const static TLitC8<sizeof( "text/anytext" )> KTxtMime4 ={sizeof( "text/anytext" )-1, "text/anytext" };const static TLitC8<sizeof( "widetext/plain" )> KTxtMime5 ={sizeof( "widetext/plain" )-1, "widetext/plain" };const static TLitC8<sizeof( "widetext/paragraph" )> KTxtMime6 ={sizeof( "widetext/paragraph" )-1, "widetext/paragraph" }; const static TLitC<sizeof(L".txt" )/2> KTxtExt ={sizeof(L".txt" )/2-1,L".txt" };const static TLitC8<sizeof( "image/jpeg" )> KJpegMime ={sizeof( "image/jpeg" )-1, "image/jpeg" }; const static TLitC<sizeof(L".jpeg" )/2> KJpegExt ={sizeof(L".jpeg" )/2-1,L".jpeg" };const static TLitC8<sizeof( "image/jpg" )> KJpegMime2 ={sizeof( "image/jpg" )-1, "image/jpg" };const static TLitC8<sizeof( "image/jpe_" )> KJpegMime3 ={sizeof( "image/jpe_" )-1, "image/jpe_" };const static TLitC8<sizeof( "image/pjpeg" )> KJpegMime4 ={sizeof( "image/pjpeg" )-1, "image/pjpeg" }; const static TLitC8<sizeof( "image/vnd.swiftview-jpeg" )> KJpegMime5 ={sizeof( "image/vnd.swiftview-jpeg" )-1, "image/vnd.swiftview-jpeg" }; const static TLitC8<sizeof( "image/jpeg" )> KJpgMime ={sizeof( "image/jpeg" )-1, "image/jpeg" }; const static TLitC<sizeof(L".jpg" )/2> KJpgExt ={sizeof(L".jpg" )/2-1,L".jpg" };const static TLitC8<sizeof( "image/jpg" )> KJpgMime2 ={sizeof( "image/jpg" )-1, "image/jpg" }; const static TLitC8<sizeof( "image/jpe_" )> KJpgMime3 ={sizeof( "image/jpe_" )-1, "image/jpe_" }; const static TLitC8<sizeof( "image/pjpeg" )> KJpgMime4 ={sizeof( "image/pjpeg" )-1, "image/pjpeg" }; const static TLitC8<sizeof( "image/vnd.swiftview-jpeg" )> KJpgMime5 ={sizeof( "image/vnd.swiftview-jpeg" )-1, "image/vnd.swiftview-jpeg" }; const static TLitC8<sizeof( "image/gif" )> KGifMime ={sizeof( "image/gif" )-1, "image/gif" }; const static TLitC<sizeof(L".gif" )/2> KGifExt ={sizeof(L".gif" )/2-1,L".gif" };const static TLitC8<sizeof( "image/x-xbitmap" )> KGifMime2 ={sizeof( "image/x-xbitmap" )-1, "image/x-xbitmap" }; const static TLitC8<sizeof( "image/gi_" )> KGifMime3 ={sizeof( "image/gi_" )-1, "image/gi_" }; const static TLitC8<sizeof( "image/png" )> KPngMime ={sizeof( "image/png" )-1, "image/png" }; const static TLitC<sizeof(L".png" )/2> KPngExt ={sizeof(L".png" )/2-1,L".png" };const static TLitC8<sizeof( "application/png" )> KPngMime2 ={sizeof( "application/png" )-1, "application/png" }; const static TLitC8<sizeof( "application/x-png" )> KPngMime3 ={sizeof( "application/x-png" )-1, "application/x-png" }; const static TLitC8<sizeof( "video/mpeg" )> KMpgMime1 ={sizeof( "video/mpeg" )-1, "video/mpeg" }; const static TLitC<sizeof(L".mpg" )/2> KMpgExt1 ={sizeof(L".mpg" )/2-1,L".mpg" };const static TLitC8<sizeof( "video/mpg" )> KMpgMime2 ={sizeof( "video/mpg" )-1, "video/mpg" }; const static TLitC8<sizeof( "video/x-mpg" )> KMpgMime3 ={sizeof( "video/x-mpg" )-1, "video/x-mpg" }; const static TLitC8<sizeof( "video/mpeg2" )> KMpgMime4 ={sizeof( "video/mpeg2" )-1, "video/mpeg2" }; const static TLitC8<sizeof( "application/x-pn-mpg" )> KMpgMime5 ={sizeof( "application/x-pn-mpg" )-1, "application/x-pn-mpg" }; const static TLitC8<sizeof( "video/x-mpeg" )> KMpgMime6 ={sizeof( "video/x-mpeg" )-1, "video/x-mpeg" }; const static TLitC8<sizeof( "video/x-mpeg2a" )> KMpgMime7 ={sizeof( "video/x-mpeg2a" )-1, "video/x-mpeg2a" }; const static TLitC8<sizeof( "audio/mpeg" )> KMpgMime8 ={sizeof( "audio/mpeg" )-1, "audio/mpeg" }; const static TLitC8<sizeof( "audio/x-mpeg" )> KMpgMime9 ={sizeof( "audio/x-mpeg" )-1, "audio/x-mpeg" }; const static TLitC8<sizeof( "image/mpg" )> KMpgMime10 ={sizeof( "image/mpg" )-1, "image/mpg" }; const static TLitC8<sizeof( "video/mpeg4" )> KMpeg4Mime ={sizeof( "video/mpeg4" )-1, "video/mpeg4" }; const static TLitC<sizeof(L".mpeg4" )/2> KMpeg4Ext ={sizeof(L".mpeg4" )/2-1,L".mpeg4" };const static TLitC8<sizeof( "video/mp4" )> KMp4Mime ={sizeof( "video/mp4" )-1, "video/mp4" }; const static TLitC<sizeof(L".mp4" )/2> KMp4Ext ={sizeof(L".mp4" )/2-1,L".mp4" };const static TLitC8<sizeof( "video/mp4v-es" )> KMp4Mime2 ={sizeof( "video/mp4v-es" )-1, "video/mp4v-es" }; const static TLitC8<sizeof( "audio/mp4" )> KMp4Mime3 ={sizeof( "audio/mp4" )-1, "audio/mp4" }; const static TLitC8<sizeof( "video/avi" )> KAviMime1 ={sizeof( "video/avi" )-1, "video/avi" };const static TLitC8<sizeof( "video/msvideo" )> KAviMime2 ={sizeof( "video/msvideo" )-1, "video/msvideo" };const static TLitC8<sizeof( "video/x-msvideo" )> KAviMime3 ={sizeof( "video/x-msvideo" )-1, "video/x-msvideo" }; const static TLitC<sizeof(L".avi" )/2> KAviExt ={sizeof(L".avi" )/2-1,L".avi" };const static TLitC8<sizeof( "image/avi" )> KAviMime4 ={sizeof( "image/avi" )-1, "image/avi" }; const static TLitC8<sizeof( "video/xmpg2" )> KAviMime5 ={sizeof( "video/xmpg2" )-1, "video/xmpg2" }; const static TLitC8<sizeof( "application/x-troff-msvideo" )> KAviMime6 ={sizeof( "application/x-troff-msvideo" )-1, "application/x-troff-msvideo" }; const static TLitC8<sizeof( "audio/aiff" )> KAviMime7 ={sizeof( "audio/aiff" )-1, "audio/aiff" }; const static TLitC8<sizeof( "audio/avi" )> KAviMime8 ={sizeof( "audio/avi" )-1, "audio/avi" }; const static TLitC8<sizeof( "audio/x-mpeg-3" )> KMp3Mime1 ={sizeof( "audio/x-mpeg-3" )-1, "audio/x-mpeg-3" };const static TLitC8<sizeof( "audio/mpeg3" )> KMp3Mime2 ={sizeof( "audio/mpeg3" )-1, "audio/mpeg3" }; const static TLitC<sizeof(L".mp3" )/2> KMp3Ext ={sizeof(L".mp3" )/2-1,L".mp3" };const static TLitC8<sizeof( "audio/mpeg" )> KMp3Mime3 ={sizeof( "audio/mpeg" )-1, "audio/mpeg" }; const static TLitC8<sizeof( "audio/x-mpeg" )> KMp3Mime4 ={sizeof( "audio/x-mpeg" )-1, "audio/x-mpeg" }; const static TLitC8<sizeof( "audio/mp3" )> KMp3Mime5 ={sizeof( "audio/mp3" )-1, "audio/mp3" }; const static TLitC8<sizeof( "audio/x-mp3" )> KMp3Mime6 ={sizeof( "audio/x-mp3" )-1, "audio/x-mp3" }; const static TLitC8<sizeof( "audio/x-mpeg3" )> KMp3Mime7 ={sizeof( "audio/x-mpeg3" )-1, "audio/x-mpeg3" }; const static TLitC8<sizeof( "audio/mpg" )> KMp3Mime8 ={sizeof( "audio/mpg" )-1, "audio/mpg" }; const static TLitC8<sizeof( "audio/x-mpg" )> KMp3Mime9 ={sizeof( "audio/x-mpg" )-1, "audio/x-mpg" }; const static TLitC8<sizeof( "audio/x-mpegaudio" )> KMp3Mime10 ={sizeof( "audio/x-mpegaudio" )-1, "audio/x-mpegaudio" }; const static TLitC8<sizeof( "audio/aac" )> KAacMime ={sizeof( "audio/aac" )-1, "audio/aac" }; const static TLitC<sizeof(L".aac" )/2> KAacExt ={sizeof(L".aac" )/2-1,L".aac" };const static TLitC8<sizeof( "audio/x-ms-wma" )> KWmaMime ={sizeof( "audio/x-ms-wma" )-1, "audio/x-ms-wma" }; const static TLitC<sizeof(L".wma" )/2> KWmaExt ={sizeof(L".wma" )/2-1,L".wma" };const static TLitC8<sizeof( "video/x-ms-asf" )> KWmaMime2 ={sizeof( "video/x-ms-asf" )-1, "video/x-ms-asf" }; const static TLitC8<sizeof( "image/bmp" )> KBmpMime ={sizeof( "image/bmp" )-1, "image/bmp" }; const static TLitC<sizeof(L".bmp" )/2> KBmpExt ={sizeof(L".bmp" )/2-1,L".bmp" };const static TLitC8<sizeof( "image/x-bmp" )> KBmpMime2 ={sizeof( "image/x-bmp" )-1, "image/x-bmp" }; const static TLitC8<sizeof( "image/x-bitmap" )> KBmpMime3 ={sizeof( "image/x-bitmap" )-1, "image/x-bitmap" }; const static TLitC8<sizeof( "image/x-xbitmap" )> KBmpMime4 ={sizeof( "image/x-xbitmap" )-1, "image/x-xbitmap" }; const static TLitC8<sizeof( "image/x-ms-bmp" )> KBmpMime5 ={sizeof( "image/x-ms-bmp" )-1, "image/x-ms-bmp" }; const static TLitC8<sizeof( "application/bmp" )> KBmpMime6 ={sizeof( "application/bmp" )-1, "application/bmp" }; const static TLitC8<sizeof( "application/x-bmp" )> KBmpMime7 ={sizeof( "application/x-bmp" )-1, "application/x-bmp" }; const static TLitC8<sizeof( "application/x-win-bitmap" )> KBmpMime8 ={sizeof( "application/x-win-bitmap" )-1, "application/x-win-bitmap" }; const static TLitC8<sizeof( "application/preview" )> KBmpMime9 ={sizeof( "application/preview" )-1, "application/preview" }; const static TLitC8<sizeof( "audio/L16" )> KAudioL16 ={sizeof( "audio/L16" )-1, "audio/L16" };const static TLitC8<sizeof( "audio/vnd.dlna.adts" )> KAudioVnd ={sizeof( "audio/vnd.dlna.adts" )-1, "audio/vnd.dlna.adts" };const static TLitC8<sizeof( "audio/3gpp" )> KAudio3gpp ={sizeof( "audio/3gpp" )-1, "audio/3gpp" }; const static TLitC8<sizeof( "video/3gpp" )> KVideo3gpp ={sizeof( "video/3gpp" )-1, "video/3gpp" }; const static TLitC<sizeof(L".3gp" )/2> K3gpExt ={sizeof(L".3gp" )/2-1,L".3gp" };const static TLitC8<sizeof( "audio/AMR" )> KAudioAMR ={sizeof( "audio/AMR" )-1, "audio/AMR" }; const static TLitC<sizeof(L".amr" )/2> KAmrExt ={sizeof(L".amr" )/2-1,L".amr" };const static TLitC8<sizeof( "audio/wav" )> KAudioWav ={sizeof( "audio/wav" )-1, "audio/wav" };const static TLitC8<sizeof( "video/x-ms-wmv" )> KVideoWmv ={sizeof( "video/x-ms-wmv" )-1, "video/x-ms-wmv" }; const static TLitC<sizeof(L".wmv" )/2> KWmvExt ={sizeof(L".wmv" )/2-1,L".wmv" };const static TLitC8<sizeof( "video/x-ms-avi" )> KVideoAvi ={sizeof( "video/x-ms-avi" )-1, "video/x-ms-avi" };const static TLitC8<sizeof( "application/vnd.rn-realmedia" )> KRealMedia ={sizeof( "application/vnd.rn-realmedia" )-1, "application/vnd.rn-realmedia" }; const static TLitC<sizeof(L".rm" )/2> KRmExt ={sizeof(L".rm" )/2-1,L".rm" };const static TLitC8<sizeof( "audio/vnd.rn-realaudio" )> KRealAudio ={sizeof( "audio/vnd.rn-realaudio" )-1, "audio/vnd.rn-realaudio" }; const static TLitC<sizeof(L".ra" )/2> KRealAudioExt ={sizeof(L".ra" )/2-1,L".ra" };const static TLitC8<sizeof( "audio/x-pn-realaudio-plugin" )> KPmRealAudioPlugin ={sizeof( "audio/x-pn-realaudio-plugin" )-1, "audio/x-pn-realaudio-plugin" }; const static TLitC<sizeof(L".rpm" )/2> KPmRealAudioPluginExt ={sizeof(L".rpm" )/2-1,L".rpm" };const static TLitC8<sizeof( "audio/x-pn-realaudio" )> KPmRealAudio ={sizeof( "audio/x-pn-realaudio" )-1, "audio/x-pn-realaudio" }; const static TLitC<sizeof(L".ra" )/2> KPmRealAudioExt ={sizeof(L".ra" )/2-1,L".ra" };const static TLitC8<sizeof( "video/vnd.rn-realvideo" )> KRealVideo ={sizeof( "video/vnd.rn-realvideo" )-1, "video/vnd.rn-realvideo" }; const static TLitC<sizeof(L".rv" )/2> KRealVideoExt ={sizeof(L".rv" )/2-1,L".rv" };class CUpnpMimeMapper: public CBase {public: static CUpnpMimeMapper* NewL(); virtual ~CUpnpMimeMapper();public: void AddMimeMapElL( const TDesC8& aKey, const TDesC& aVal ); void InitMimeToExtensionMapL(); HBufC8* GetExtensionL( const TDesC8& aMimeType ); const HBufC* Get( const TDesC8& aKey );private: CUpnpMimeMapper(); void ConstructL(); private: CUpnpMap<HBufC>* iMimeToExtMap; }; # 61 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransfercontroller.h" 1#define C_CUPNPTRANSFERCONTROLLER_Hclass CUpnpContentDirectory;class CUpnpFileTransferEvent;class CUpnpHttpMessage;class CUpnpTransferController: public CBase, public MUpnpFileTransferTimerObserver{public: static CUpnpTransferController* NewL( CUpnpContentDirectory* aCd ); virtual ~CUpnpTransferController(); void HttpResponseReceivedL( TInt aSessionId, TInt aStatusCode); TUpnpErrorCode StopTransferResourceL( TInt aId ); TInt Transfer( TInt aTransferId ); TBool IsMaxImportExportTransfers(); CUpnpFileTransferEvent* RemoveTransferLC( TInt aTransferId ); CUpnpFileTransferEvent* TransferL( TInt aTransferId ); void TransferEvent( CUpnpFileTransferTimerObserver* aTimer ); void AddIncomingTransferInternalL(CUpnpHttpMessage* aHttpMsg); void TransferFailL(CUpnpHttpMessage* aHttpMsg); void NotifyTransferFailL(CUpnpHttpMessage* aHttpMsg); private: CUpnpTransferController( CUpnpContentDirectory* aCd ); void ConstructL(); public: RPointerArray<CUpnpFileTransfer> iFileTransfers; RPointerArray<CUpnpFileTransferTimerObserver> iStatusTimers; private: CUpnpContentDirectory* iContentDirectory; }; # 62 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferinterface.h" 1#define C_CUPNPTRANSERINTERFACE_Hclass MUpnpTransferInterface { public: virtual void UploadFileL( TInt aKey, const TDesC8& aUri, const TDesC& aTargetPath, const TDesC8& aContentType ) = 0; virtual void DownloadFileL( TInt aKey, const TDesC8& aUri, const TDesC& aTargetPath ) = 0; virtual void TrackUploadProgress( TInt aKey, TBool aSwitchOn )=0; virtual void TrackDownloadProgress( TInt aKey, TBool aSwitchOn )=0; virtual void CancelUpload( TInt aKey ) = 0; virtual void CancelDownload( TInt aKey ) = 0; }; # 63 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/dlna/upnpdlnafilter.h" 1#define UPNPDLNAFILTER_H class MUpnpContentDirectoryDataFinder;class CUpnpHttpMessage;class CUpnpDlnaProtocolInfo;class CUpnpSecurityManager;class CUpnpHttpFileServeTransaction;class CUpnpHttpFileReceiveTransaction;class CUpnpDlnaFilterHeaders;class TUpnpDlnaCorelation;class CUpnpDlnaFilter : public CBase, public MUpnpHttpServerTransactionCreator {public: ~CUpnpDlnaFilter(); static CUpnpDlnaFilter* NewL( MUpnpContentDirectoryDataFinder* aFinder, CUpnpSecurityManager* aSecurityManager ); static CUpnpDlnaFilter* NewLC( MUpnpContentDirectoryDataFinder* aFinder, CUpnpSecurityManager* aSecurityManager ); virtual void NewTransactionL( const TDesC8& aMethod, const TDesC8& aUri, const TInetAddr& aSender, CUpnpHttpServerTransaction*& aResultTrans ); void FormatPathL( CUpnpHttpFileServeTransaction *aTransaction, TDes &aPath ); TInt PrepareHeaderL( CUpnpHttpFileServeTransaction &aTransaction ); TInt CheckDLNAPostCorrelationsL(CUpnpHttpFileReceiveTransaction& aTransaction); HBufC* DetermineDownloadPathL(CUpnpHttpFileReceiveTransaction& aTransaction); CUpnpSecurityManager* SecurityManager(); RFs& FileSession(); TInt AuthorizeRequestL( const TDesC& aFileName, const TInetAddr& aSender );public: CUpnpDlnaFilter( MUpnpContentDirectoryDataFinder* aFinder, CUpnpSecurityManager* aSecurityManager ); void ConstructL();private: HBufC8* CUpnpDlnaFilter::ThirdFieldFromCdL( const TDesC8& aContentUri ); void GetMediaFileNameL( TInt aObjectId, TPtr& aFileName ); TInt FindSharedFolderDBL(const TDesC8& aUrlPath, const TDesC8& aFileName, HBufC8*& aSystemPath); TInt CheckImportUriL( TDesC8& aImportUri ); TInt CheckDLNACorrelationsL( CUpnpHttpFileServeTransaction& aTransaction ); TInt GetContentTypeL( CUpnpHttpFileServeTransaction &aTransaction, HBufC8*& aMime, const TDesC16& aFilename ); CUpnpDlnaProtocolInfo* ProtocolInfoL( const TDesC8& aContentUri ); void AddHeaderIfNotEmptyL( const TDesC8& aHeaderName, CUpnpHttpFileServeTransaction& aTransaction ); HBufC* MakeFileNameUniqueL( const TDesC& aFilename, RFs& aFs ); HBufC* PreparePostfixToMakeFileUniqueL( const TDesC& aFilename, RFs& aFs ); HBufC* PrepareBaseFileNameL( const TDesC& aFilename, RFs& aFs ); TInt CheckCorelationL( CUpnpHttpFileServeTransaction& aTransaction, TUpnpDlnaCorelation& aDlnaCorelation ); TInt CheckTransferModeL( CUpnpHttpFileServeTransaction& aTransaction, TUpnpDlnaCorelation& aDlnaCorelation ); TInt AppendCorelationHeadersL( CUpnpHttpFileServeTransaction& aTransaction, TUpnpDlnaCorelation& aDlnaCorelation, TDesC8& aTransferMode ); protected: MUpnpContentDirectoryDataFinder* iCdDataFinder; CUpnpSecurityManager* iSecurityManager; CUpnpDlnaProtocolInfo* iProtocolInfo; RFs iFs; };# 64 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnphttpserversession.h" 1#define UPNPHTTPSERVERSESSION_Hclass CUpnpHttpServerRuntime;class MUpnpHttpServerObserver;class CUpnpHttpMessage;const TInt KUpnpHttpServerRandomPort = 0;class CUpnpHttpServerSession : public CBase {public: IMPORT_C static CUpnpHttpServerSession* NewL( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); ~CUpnpHttpServerSession(); IMPORT_C void StartL( const TInt aPort = KUpnpHttpServerRandomPort ); IMPORT_C void Stop(); IMPORT_C void GetAddress( TInetAddr& aAddr ); IMPORT_C CUpnpHttpServerRuntime& DefaultRuntime(); static CUpnpHttpServerSession* NewLC( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); IMPORT_C TSockAddr* HWAddressL(); IMPORT_C TInt SendMessageL( CUpnpHttpMessage* aMessage ); private: CUpnpHttpServerSession(); void ConstructL( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver );private: CUpnpHttpServerRuntime* iServerRuntime; };# 65 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnphttpserverruntime.h" 1#define UPNPHTTPSERVERRUNTIME_Hclass MUpnpHttpServerTransactionCreator;class CUpnpHttpServer;class MUpnpHttpServerObserver;class CUpnpHttpServerRuntime : public CBase {public: IMPORT_C void SetCreator( MUpnpHttpServerTransactionCreator& aCreator ); static CUpnpHttpServerRuntime* NewL( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); static CUpnpHttpServerRuntime* NewLC( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); ~CUpnpHttpServerRuntime(); CUpnpHttpServer& HttpServer(); void DeleteServer(); void StartServerL( const TInt aPort ); private: CUpnpHttpServerRuntime( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); void ConstructL(); void GetIapAndStartServerL(); void OpenSocketServerL(); void CloseSocketServer(); private: RSocketServ iSocketServ; CUpnpHttpServer* iHttpServer; MUpnpHttpServerObserver& iObserver; MUpnpHttpServerTransactionCreator* iTransactionCreator; TBool iIsSocketOpened; };# 66 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpsettings.h" 1#define C_CUPNPSETTING_Hconst TUid KHnCRUidUPnPStack = { 0x2000F881 }; const TUid KCRUidUPnPStack = { 0x101F9784 };class CRepository;class CUpnpSettings: public CBase {public: static const TUint KUPnPStackIapId = 1; static const TUint KUPnPStackCustomizedUserAgent = 2; static const TUint KUPnPStackFileBufferSize = 3; static const TUint KUPnPStackCustomizedServerHeader = 4; static const TUint KUPnPStackMSearchConfig = 5; public: IMPORT_C static CUpnpSettings* NewL(TUid aRepositoryUid); virtual ~CUpnpSettings();public: IMPORT_C TInt Set(TUint aId, TInt& aValue); IMPORT_C TInt Get(TUint aId, TInt& aValue); IMPORT_C static TInt GetIapL(); IMPORT_C TInt Set(TUint aId, const TDesC& aValue); IMPORT_C TInt SetL(TUint aId, const TDesC8& aValue); IMPORT_C TInt Get(TUint aId, TDes& aValue); IMPORT_C HBufC8* GetL(TUint aId); IMPORT_C static HBufC8* GetUserAgentL(); IMPORT_C static TInt GetFileBufferSizeL(); IMPORT_C static HBufC8* GetServerHeaderL(); static HBufC8* GetMSearchConfigurationL();private: void ConstructL(TUid aRepositoryId);private: CRepository* iRepository; };# 67 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpdeviceimplementationbase.h" 1#define C_CUPNPDEVICEIMPLEMENTATIONBASE_H# 1 "X:/epoc32/include/platform/mw/upnpdiscoveryobserver.h" 1#define C_MUpnpDiscoveryObserver_Hclass CUpnpDevice;class MUpnpDiscoveryObserver{public: virtual const TDesC8 & Path() = 0; virtual void DeviceFoundL( CUpnpDevice& aDevice ) = 0; virtual void DeviceLostL( CUpnpDevice& aDevice ) = 0;};# 26 "X:/epoc32/include/platform/mw/upnpdeviceimplementationbase.h" 2class TUpnpDevice;class TUpnpService;class CUpnpIcon;class CUpnpDesciptionProperty;class CUpnpDeviceDescriptionStore;class CUpnpHttpServerTransactionHandler;class MUpnpDeviceDescriptionProvider;class CUpnpDeviceImplementationBase : public CUpnpDevice { public: IMPORT_C virtual ~CUpnpDeviceImplementationBase(); virtual void StartL( const TInt aPort = KRandomPort ) = 0; virtual void StopL() = 0; IMPORT_C void SetDescriptionPropertyL( const TDesC8& aPropertyName, const TDesC8& aPropertyValue ); IMPORT_C void RemoveDescriptionPropertyL( const TDesC8& aPropertyName ); IMPORT_C void RemoveIconL( const TDesC8& aUrl); IMPORT_C void RemoveIconsL(); IMPORT_C void AddIconL( const CUpnpIcon& aIcon ); void UpdateIconL( const CUpnpIcon& aIcon ); HBufC8* GenerateUuidL(); void CreateDispatcherL(); CUpnpDeviceImplementationBase(); IMPORT_C virtual TInetAddr Address(); void AttachServiceL( CUpnpService *aService ); void SetDispatcher( CUpnpDispatcher* aDispatcher ); IMPORT_C void StartIPFilteringL(); IMPORT_C void StopIPFiltering(); MUpnpDeviceDescriptionProvider& DescritptionProvider(); protected: void StartHttpServerL( const TInt aPort ); void StopHttpServer(); void CheckUuidGenL( const TDesC16& aFileName ); CUpnpDispatcher* Dispatcher(); void BaseConstructL( const TDesC8& aDeviceDescriptioUri, CUpnpDeviceDescriptionStore& aDescriptionStore, MUpnpDeviceDescriptionProvider& aProvider ); void GenerateUdnsL( CUpnpDeviceImplementationBase* aDevice ); void RegisterEmbeddedDevices(); void UnregisterEmbeddedDevicesL(); void SaveDescriptionStoreL();protected: CUpnpDispatcher* iDispatcher; HBufC8* iPath; CUpnpHttpServerTransactionHandler* iServerTransactionHandler; CUpnpDeviceDescriptionStore* iDescriptionStore; MUpnpDeviceDescriptionProvider* iDescriptionProvider; };# 68 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpsecuritymanager.h" 1#define C_CUPNPSECURITYMANAGER_Hconst TUid KCUpnpSecurityManagerUid = {0x101F977E}; const TUid KCUpnpSecurityManagerUidRemote = {0x2001137B}; class CUpnpAction;class CUpnpHttpMessage;class CUpnpSecurityManager : public CBase{public: IMPORT_C static CUpnpSecurityManager* NewL(const TDesC8& aType); IMPORT_C static CUpnpSecurityManager* NewInstanceFromUpnpSettingsL(); IMPORT_C virtual ~CUpnpSecurityManager(); virtual TInt AuthorizeMessage(CUpnpHttpMessage* aMessage, TFileName& aRequestedFile) = 0; virtual TInt AuthorizeAction(CUpnpAction* aAction) = 0; private: TUid iDtor_ID_Key; };# 69 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpmediaserversettings.h" 1#define C_CUPNPMEDIASERVERSETTINGS_Hconst TUid KHnCRUidMediaServer = { 0x2000f87f }; const TUid KCRUidMediaServer = { 0x101F978F };class CRepository;namespace UpnpMediaServerSettings { const static TLitC8<sizeof( "friendlyName" )> KFriendlyName ={sizeof( "friendlyName" )-1, "friendlyName" };const static TLitC8<sizeof( "modelURL" )> KModelUrl ={sizeof( "modelURL" )-1, "modelURL" };const static TLitC8<sizeof( "modelDescription" )> KModelDescription ={sizeof( "modelDescription" )-1, "modelDescription" };const static TLitC8<sizeof( "modelNumber" )> KModelNumber ={sizeof( "modelNumber" )-1, "modelNumber" };const static TLitC8<sizeof( "serialNumber" )> KSerialNumber ={sizeof( "serialNumber" )-1, "serialNumber" };const static TLitC8<sizeof( "presentationURL" )> KPresentationUrl ={sizeof( "presentationURL" )-1, "presentationURL" };const static TLitC8<sizeof( "modelName" )> KModelName ={sizeof( "modelName" )-1, "modelName" };const static TLitC8<sizeof( "manufacturer" )> KManufacturer ={sizeof( "manufacturer" )-1, "manufacturer" };const static TLitC8<sizeof( "manufacturerURL" )> KManufacturerUrl ={sizeof( "manufacturerURL" )-1, "manufacturerURL" };enum TMediaServerKeys { EFriendlyName = 1, EUploadDirectory = 2, ESupportedMedia = 3, ESecurityManager = 4, EModelUrl = 5, EModelDescription = 6, EModelNumber = 7, ESerialNumber = 8, EPresentationUrl = 9, EModelName = 10, EManufacturer = 11, EManufacturerUrl = 12, EUpnpMediaServerThumbnails = 13, KUpnpMediaServerBrowseLimit = 14 };}class MUpnpSettingObserver {public: virtual void SettingChangedL() = 0; }; class CUpnpMediaServerSettings : public CActive {public: IMPORT_C static CUpnpMediaServerSettings* NewL(); virtual ~CUpnpMediaServerSettings();public: IMPORT_C TInt Set(TUint aId, const TInt& aValue); IMPORT_C TInt Set(TUint aId, const TDesC& aValue); IMPORT_C TInt SetL(TUint aId, const TDesC8& aValue); IMPORT_C TInt Get(TUint aId, TInt& aValue); IMPORT_C TInt Get(TUint aId, TDes& aValue); IMPORT_C HBufC8* GetL(TUint aId); IMPORT_C TInt Subscribe(TUint aId, MUpnpSettingObserver* aObserver); private: CUpnpMediaServerSettings(); void ConstructL(TUid aRepositoryId); void RunL(); TInt RunError( TInt aErr ); void DoCancel(); private: CRepository* iRepository; MUpnpSettingObserver* iObserver; };# 70 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2using namespace UpnpPaths;using namespace UpnpDlnaProtocolInfo;void DestroyRArray( TAny* aArray );void RPointerArrayTPtrC8( TAny* aArray ) { RPointerArray<TPtrC8>* array = reinterpret_cast<RPointerArray<TPtrC8>*>aArray); array->ResetAndDestroy( ); }CUpnpContentDirectory::CUpnpContentDirectory( CUpnpDevice& aDevice, MUpnpThumbnailCreatorObserver* aThmbObs, MUpnpTransferInterface* aTransfer ) : CUpnpServiceImplementation(aDevice), iThmbObs(aThmbObs), iTransferHandler(aTransfer) { SetExecutedAction( EUndefinedAction ); }CUpnpContentDirectory::~CUpnpContentDirectory() { delete iDownloadDir; delete iThumbDir; delete iElementdb; delete iTransferController; delete iMimeToExtMap; delete iContentDirectoryDb; iThObjectIds.Close( ); iThumbnailCreators.ResetAndDestroy( ); iDOMImpl.Close( ); if ( iBitmapServerConnection == KErrNone ) RFbsSession::Disconnect( ); iFs.Close( ); if ( iEcomUsed ) { REComSession::FinalClose( ); } delete iAutoDestroyObjects; delete iStateHandler; if ( iHttpServerSession ) { iHttpServerSession-> Stop

const TLitC8< sizeof("http:const static TLitC8<sizeof( "< xmrcc:** > *" )-1, "< xmrcc:*class MUpnpThumbnailCreatorObserver{public:virtual void NotifyThumbnailResultL(CUpnpThumbnailCreator *aThCreator, TInt aResult)=0;};class CUpnpThumbnailCreator:public CActive{public:enum TPhase{EDecode, EEncode, EScaling, ESleep, EDecodeObject};static CUpnpThumbnailCreator *NewLC(MUpnpThumbnailCreatorObserver *aObserver);~CUpnpThumbnailCreator();void CreateL(const TDesC &aSourceFile, const TDesC &aThumbName);TFileName GetFileName();TPtrC GetFileExt();TFileName GetPath();TSize GetSize(const TDesC &aSourceFile);private:void ConstructL();CUpnpThumbnailCreator(MUpnpThumbnailCreatorObserver *aObserver);void EncodeAndConvertL();void RunL();TInt RunError(TInt aErr);void DoCancel();void CalculateSize(TSize &aLoadSize);TInt DivisionCeil(const TInt aVal, const TInt aDiv);private:MUpnpThumbnailCreatorObserver *iObserver;RFs iFs;CImageDecoder *iDecoder;CImageEncoder *iEncoder;CBitmapScaler *iScaler;CFbsBitmap *iBitmap;TSize iSize;TParse iParse;TBuf< KExtensionLength > iExtension;TPhase iPhase;TFileName iFileName;TPath iPath;TUid iImageType;TSize iOldSize;TFrameInfo iInfo;};#32"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcdsettings.h"1#define C_CUPNPCDSETTINGS_Hclass CUpnpDevice;class MUpnpThumbnailCreatorObserver;class MUpnpContentDirectoryEventObserver;class MUpnpTransferInterface;struct TUpnpCdSettings{CUpnpDevice *iDevice;const TDesC &iDownloadDir;const TDesC &iThumbnailDir;const TDesC &iDescriptionPath;MUpnpThumbnailCreatorObserver *iThmbObs;TBool iCreateThumbnail;TInt iMaxRequestCount;MUpnpContentDirectoryEventObserver *iEventObserver;const TDesC &iObjectsXmlPath;MUpnpTransferInterface *iTransfer;};#33"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferobserver.h"1#define C_CUPNPTRANSFEROBSERVER_Hclass MUpnpTransferObserver{public:virtual void TransferCompletedL(TInt akey, TInt aResultCode)=0;virtual void TransferProgress(TInt akey, TInt aBytes, TInt aTotalBytes)=0;};#34"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/epoc32/include/platform/mw/upnphttpservertransactioncreator.h"1#define UPNPHTTPSERVERTRANSACTIONCREATOR_H_class CUpnpHttpServerTransaction;class TDesC8;class TInetAddr;class MUpnpHttpServerTransactionCreator{public:virtual void NewTransactionL(const TDesC8 &aMethod, const TDesC8 &aUri, const TInetAddr &aSender, CUpnpHttpServerTransaction *&aTrans)=0;};#35"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2#1"X:/epoc32/include/platform/mw/upnphttpserverobserver.h"1#define C_MUPNPHTTPSERVEROBSERVER_Hclass CUpnpHttpMessage;class MUpnpHttpServerObserver{public:virtual void HttpEventLD(CUpnpHttpMessage *aMessage)=0;};#36"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectory.h"2class CUpnpElementFactory;class TUpnpContainerUpdateId;class CUpnpFileTransferTimerObserver;class CUpnpObject;class CUpnpItem;class CUpnpContentDirectoryDb;class CProtocolInfo;class CUpnpMetadataStorage;class CUpnpAutoDestroyObjectList;class MUpnpContentDirectoryEventObserver;class CUpnpFileTransferEvent;class MUpnpCdsSender;class CUpnpStateHandler;class CUpnpTransferUploader;class CUpnpMimeMapper;class CUpnpTransferController;class MUpnpTransferInterface;class CUpnpDlnaFilter;class CUpnpHttpServerSession;class CUpnpSecurityManager;static const TInt KMaxImportExportTransfers=3;const static TLitC8< sizeof("ContentDirectory:1")> KContentDirectoryType={sizeof("ContentDirectory:1")-1,"ContentDirectory:1"};class CUpnpContentDirectory:public CUpnpServiceImplementation, public MUpnpContentDirectoryDataFinder, public MUpnpThumbnailCreatorObserver, public MUpnpTransferObserver, public MUpnpHttpServerTransactionCreator, public MUpnpHttpServerObserver{public:static CUpnpContentDirectory *NewL(TUpnpCdSettings aSettings, CUpnpMetadataStorage *aMetadataStorage, MUpnpTransferInterface *aTransfer);virtual ~CUpnpContentDirectory();IMPORT_C void SetSender(MUpnpCdsSender *aSender);public:CUpnpStateHandler *CUpnpContentDirectory::StateHandler();void AutoDestroyEventL(TInt aObjId, TBool aDeleteObj);void ActionReceivedLD(CUpnpAction *aAction);IMPORT_C void UnknownHttpEventReceivedL(CUpnpHttpMessage &aHttpMsg);void AddressChangeL();void StateVariableEvented(const TDesC8 &aVariableName);TInt CheckImportUriL(const TDesC8 &aImportUri);void InsertRealIpAndPortL(TDes8 &aString);HBufC8 *InsertIpAndPortPlaceholderL(const TDesC8 &aString);CUpnpDlnaProtocolInfo *GetProtocolInfoByImportUriL(const TDesC8 &aImportUri);TInt GetProtocolInfoL(const TDesC8 &aContentUri, CUpnpDlnaProtocolInfo *&aProtocolInfo);void GetTitleForUriL(TInt aObjectId, TPtr &aValue);TInt FindSharedFolderL(const TDesC &aUrlPath, const TDesC &aFileName, HBufC *&aSystemPath);const TPtrC MediaRealDir();void SetDownloadDirectoryL(const TDesC &aDownloadDir);void SetThumbnailDirectoryL(const TDesC &aDownloadDir);TInetAddr GetAddress();IMPORT_C void SendActionL(CUpnpAction *aAction, TUpnpErrorCode aError);IMPORT_C void SendMessageL(CUpnpHttpMessage *aMessage);CUpnpAutoDestroyObjectList *GetAutoDestroyObjectList();IMPORT_C void HttpTransferEventReceivedL(CUpnpHttpMessage &aHttpMsg);void NotifyTransferFailL(TInt aSessionId, TInt aStatusCode);void NotifyTransferStoppedL(TInt aSessionId, CUpnpFileTransfer::TTransferType aType);void HttpGetStartedSoapNotifyL(TInt aSessionId);void HttpPostStartedL(TInt aSessionId);TCurrentAction ExecutedAction();void SetExecutedAction(TCurrentAction aAction);void HttpResponseReceivedL(TInt aSessionId, TInt aStatusCode);MUpnpContentDirectoryEventObserver *EventObserver();public:void TransferCompleteL(TInt aResId, TInt aObjId);void TransferProgress(TInt aId, TInt aBytes, TInt aTotalBytes);void TransferStartL(const TDesC8 &aImpUri);void RemoveFileTransferFromTransferIDsStateVariableL(TInt aTransferID);void AddFileTransferToTransferIDsStateVariableL(TInt aTransferID);TBool IsDrmFileL(const TDesC &aFileName);TBool IsDrmFileL(const TDesC8 &aFileName);TInt CreateResTagL(TInt aSessionId, TDesC8 &aFilePath, TInt aImportNumber, TBool aOnlyThumbnail=EFalse);void NotifyOutgoingTransferL(TInt aSessionId);CUpnpContentDirectoryDb *ContentDirectoryDb();MUpnpTransferInterface *TransferHandler();public:virtual void TransferCompletedL(TInt akey, TInt aResultCode);public:IMPORT_C virtual void NewTransactionL(const TDesC8 &aMethod, const TDesC8 &aUri, const TInetAddr &aSender, CUpnpHttpServerTransaction *&aResultTrans);private:virtual void HttpEventLD(CUpnpHttpMessage *aMessage);private:void PrepareAutoDestroyObjectL(TXmlEngElement aObject, TInt aObjId);HBufC8 *GetIpAndPortDes8L();void SetResSizeL(TXmlEngAttr aSize, const TDesC &aFilePath);void AddImportUriToElL(TXmlEngElement aElement);HBufC8 *BuildImportUriLC();HBufC8 *BuildImportUriShorterLC();TBool IsThumbnailAvailableL(const TDesC &aFile);TBool IsThumbnailAvailableL(const TDesC8 &aFile);void CreateThumbnailL(const TDesC &aSrcFile, TInt aObjId);void AddNewResTagL(TXmlEngElement aObjEl);HBufC *CreateNameForThumbnailL(const TDesC &aFileName);void HandleLocalResourcesL(TXmlEngElement aRes, TInt aObjectId);HBufC8 *BuildContentUriL(const TDesC &aFileExt, TInt aObjectId);TInt DoActionReceivedL(CUpnpAction *aAction);HBufC8 *SerializeObjectsListL(const RArray< RXmlEngDocument > &aObjs);void DeleteOldResourcesL(RXmlEngDocument &aObj, const TDesC8 &aImportUri, const TDesC &aNewFile);HBufC8 *GetImportUriLC(CUpnpHttpMessage *aMessage);HBufC *BuildThumbnailUrlPathL(const TDesC &aFilename, const TDesC &aNextKey);HBufC8 *GetMimeTypeLC(const TDesC8 &aFilename);void RemoveThCreatorAndObjectIdLD(CUpnpThumbnailCreator *aThCreator);TInt GetObjectIdFromThCreator(CUpnpThumbnailCreator *aThCreator);HBufC8 *CreateAddressValueLC();CUpnpDlnaProtocolInfo *CreateProtocolInfoFromMimeL(const TDesC8 &aMimeType, TInt aAddInfo);HBufC *GetFileNameL(TInt aObjId);HBufC *GetFileNameWithoutPathL(TInt aObjId);HBufC *CreateFileNameL(const TDesC16 &aFileName);HBufC8 *GetItemTypeFromMimeTypeLC(const TDesC8 &aMimeType);void CheckItemTypeForObjectL(RXmlEngDocument &obj, const TDesC8 &aMimeType);RXmlEngDocument XmlFragmentL(const TDesC8 &aBuffer);void BrowseElementL(HBufC8 *&aResp, TXmlEngElement &aSen);TInt ContainerUpdateId(const TDesC8 &aContainerID);TUpnpErrorCode AddToMetaDbL(RXmlEngDocument &aFragment, TInt aContainer, TInt *aId, TBool aIsLocal);TUpnpErrorCode PrepareCreateOperationL(RXmlEngDocument &aFragment, RArray< TXmlEngAttr > &aImportUris, RArray< TXmlEngElement > &aRess, TBool &aLocal, TBool &aCreateThumbnailRes, TInt &aNextKey);void ConstructCreateResultsetL(CUpnpAction *&aAction, RXmlEngDocument aElement, TInt aId);TUpnpErrorCode CreateObjectL(CUpnpAction *&aAction);TUpnpErrorCode BrowseL(CUpnpAction *&aAction);TUpnpErrorCode DestroyObjectL(CUpnpAction *&aAction);TUpnpErrorCode CreateReferenceL(CUpnpAction *&aAction);TUpnpErrorCode GetSearchCapabilitiesL(CUpnpAction *&aAction);TUpnpErrorCode GetSortCapabilitiesL(CUpnpAction *&aAction);TUpnpErrorCode GetSystemUpdateIdL(CUpnpAction *&aAction);TUpnpErrorCode ImportResourceL(CUpnpAction *&aAction);TUpnpErrorCode ExportResourceL(CUpnpAction *&aAction);TUpnpErrorCode StopTransferResourceL(CUpnpAction *&aAction);TUpnpErrorCode GetTransferProgressL(CUpnpAction *&aAction);TUpnpErrorCode DeleteResourceL(CUpnpAction *&aAction);HBufC8 *ChangeFileNameWithExtensionL(TDesC8 &aFilePath, const TDesC8 &aMimeType);TInt CreateResTagInternalL(TInt aSessionId, TDesC8 &aFilePath, HBufC8 *aImportUri, TBool aOnlyThumbnail);TInt CreateResTagInternalWithDBRecoveryL(TInt aSessionId, TDesC8 &aFilePath, HBufC8 *aImportUri, TBool aOnlyThumbnail=EFalse);private:void DoSendActionL(CUpnpAction *aAction, TUpnpErrorCode aError);void DoSendMessageL(CUpnpHttpMessage *aMessage);TBool IsValidUrlPath(const TDesC &aUrlPath);HBufC8 *ProtocolInfoFromMimeL(const TDesC8 &aMimeType, TInt aAddInfo, TBool aOpRangeParam, TBool aCiParam=EFalse);HBufC8 *ProtocolInfoFromMimeL(const TDesC8 &aMimeType, TXmlEngElement &aResEl);void NotifyThumbnailResultL(CUpnpThumbnailCreator *aThCreator, TInt aResult);CUpnpThumbnailCreator *CreateThumbnailCreatorL(TInt aObjectId);TBool IsObjectExistL(TInt aObjectId);TBool ValidateObjectL(TInt aObjectId);TInt HandleDbError(TInt aError);TBool IsDbOrDiskProblemL(CUpnpAction *aAction);TBool DataBaseHasBeenRecoveredL(TInt aError);TBool IsDbCreated();TPtrC8 UpdateImportUriL(const TDesC8 &aImportUri);private:CUpnpContentDirectory(CUpnpDevice &aDevice, MUpnpThumbnailCreatorObserver *aThmbObs, MUpnpTransferInterface *aTransfer);void ConstructL(TUpnpCdSettings aSettings, CUpnpMetadataStorage *aMetadataStorage);void ConstructHttpL();private:RArray< TInt > iThObjectIds;RPointerArray< CUpnpThumbnailCreator > iThumbnailCreators;TInt iNextFreeID;CUpnpElementFactory *iElementdb;CUpnpContentDirectoryDb *iContentDirectoryDb;RFs iFs;HBufC *iDownloadDir;HBufC *iThumbDir;TInt iBitmapServerConnection;TBool iEcomUsed;MUpnpThumbnailCreatorObserver *iThmbObs;CUpnpAutoDestroyObjectList *iAutoDestroyObjects;MUpnpContentDirectoryEventObserver *iEventObserver;TBool iCreateThumbnails;TInt iMaxRequestCount;TCurrentAction iCurrentAction;RXmlEngDOMImplementation iDOMImpl;MUpnpCdsSender *iSender;CUpnpMimeMapper *iMimeToExtMap;HBufC *iObjectsXmlPath;CUpnpStateHandler *iStateHandler;CUpnpTransferController *iTransferController;MUpnpTransferInterface *iTransferHandler;CUpnpDlnaFilter *iDlnaFilter;CUpnpHttpServerSession *iHttpServerSession;CUpnpSecurityManager *iSecurityManager;};#32"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpstring.h"1#define C_UPNPSTRING_Hconst static TLitC8< sizeof("&")> KEt={sizeof("&")-1,"&"};const static TLitC8< sizeof("&amp;")> KEtAmp={sizeof("&amp;")-1,"&amp;"};const static TLitC8< sizeof("&lt;")> KEtlt={sizeof("&lt;")-1,"&lt;"};const static TLitC8< sizeof("&gt;")> KEtgt={sizeof("&gt;")-1,"&gt;"};const static TLitC8< sizeof("'")> KApostrophe={sizeof("'")-1,"'"};const static TLitC8< sizeof("&apos;")> KEtApos={sizeof("&apos;")-1,"&apos;"};const static TLitC8< sizeof("&quot;")> KEtQuot={sizeof("&quot;")-1,"&quot;"};const static TLitC8< sizeof("%20")> KCSpace={sizeof("%20")-1,"%20"};const TInt KUrlCharNoLen=3;const TInt KOneCharLen=1;namespace UpnpString{IMPORT_C TBool IsColon(const TUint8 &aChar);IMPORT_C HBufC8 *FromUnicodeL(const TDesC &aBuffer);IMPORT_C HBufC16 *ToUnicodeL(const TDesC8 &aBuffer);IMPORT_C HBufC8 *CurrentDateLC();HBufC8 *GetDateLC(const TTime &aTime);const TDesC8 &GetWeekday(const TTime &aDate);const TDesC8 &GetMonth(const TDateTime &aDate);IMPORT_C void CutToPiecesL(TPtrC8 aPtr, TChar aDelim, RPointerArray< TPtrC8 > &aArray);IMPORT_C TPtrC8 Trim(TPtrC8 aPtr, TBool aQuotations=EFalse);IMPORT_C HBufC8 *TrimLC(const TDesC8 &aBuf, TBool aQuotations);IMPORT_C HBufC8 *ValueFromCsvL(const TDesC8 &aCSV, TInt aPlace);IMPORT_C HBufC8 *AddValueToCsvL(const TDesC8 &aCSV, const TDesC8 &aValue);IMPORT_C HBufC8 *RemoveFromCsvLC(const TDesC8 &aCSV, const TDesC8 &aValue);IMPORT_C void CsvToRPointerArrayL(const TDesC8 &aCSV, RPointerArray< TPtrC8 > &aArray);IMPORT_C HBufC8 *RPointerArrayToCsvLC(RPointerArray< TPtrC8 > &aArray);IMPORT_C void AppendStringL(CBufFlat &aString, const TDesC8 &aString2);IMPORT_C void AppendStringL(HBufC8 *&aString, const TDesC8 &aString2);IMPORT_C TInt StringToInt(const TDesC8 &aStr, TInt *aInt);IMPORT_C void StringReplaceL(const TDesC8 &aOrginal, HBufC8 *&aResult, const TDesC8 &aTrg, const TDesC8 &aReplacement);IMPORT_C HBufC8 *StringReplaceL(const TDesC8 &aStr, const TDesC8 &aTrg, const TDesC8 &aReplacement);IMPORT_C void StringReplaceInPlaceL(TDes8 &aString, const TDesC8 &aTrg, const TDesC8 &aReplacement);IMPORT_C HBufC8 *EncodeXmlStringL(HBufC8 *&aBuf);IMPORT_C HBufC8 *EncodeXmlStringL(const TDesC8 &aBuf);IMPORT_C HBufC8 *DecodeXmlStringL(HBufC8 *&aBuf);IMPORT_C HBufC8 *DecodeXmlStringL(const TDesC8 &aBuf);IMPORT_C HBufC8 *InetToStringL(const TInetAddr &aAddress);IMPORT_C void ReplaceHttpCharactersL(TDes &aString);IMPORT_C void ReplaceHttpCharacters(TDes8 &aString);}#35"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpargument.h"1#define C_CUPNPARGUMENT_Henum{EIn, EOut};class CUpnpSoapMessage;class CUpnpService;class CUpnpArgument:public CBase{public:static CUpnpArgument *NewL(CUpnpService &aParentService);static CUpnpArgument *NewL(CUpnpArgument &aArgument, CUpnpService &aParentService);virtual ~CUpnpArgument();public:IMPORT_C TArgumentType Type();IMPORT_C TInt Direction() const ;IMPORT_C TDesC8 &RelatedStateVariable();IMPORT_C TDesC8 &Name();IMPORT_C TDesC8 &Value();IMPORT_C void SetValueL(const TDesC8 &aValue);void SetDirectionL(TInt aDirection);void SetNameL(const TDesC8 &aDirection);void SetRelatedStateVarL(const TDesC8 &aRelatedStateVar);void ConstructL();void SetType(TInt aType);private:CUpnpArgument(CUpnpService &aParentService);void ConstructL(CUpnpArgument &aArgument);void DeleteAndNullValue();void CheckErrorL(TInt aError, const TDesC8 &aValue);private:HBufC8 *iName;HBufC8 *iRelatedStateVariable;TInt iDirection;HBufC8 *iValue;TInt iType;CUpnpService &iParentService;};#36"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnphttpmessagefactory.h"1#define C_RUPNPHTTPMESSAGEFACTORY_Hclass RUpnpHttpMessageFactory{public:IMPORT_C static CUpnpHttpMessage *HttpGetL(TInetAddr &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpGetL(TInetAddr &aDestination, const TDesC8 &aHeadPath, const TDesC8 &aTailPath);IMPORT_C static CUpnpHttpMessage *HttpGetL(const TDesC8 &aUrl);IMPORT_C static CUpnpHttpMessage *HttpGetL(const TDesC8 &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpHeadL(const TDesC8 &aUrl);IMPORT_C static CUpnpHttpMessage *HttpHeadL(const TDesC8 &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpHeadL(TInetAddr &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpPostL(const TDesC8 &aUrl);IMPORT_C static CUpnpHttpMessage *HttpPostL(const TDesC8 &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpPostL(const TInetAddr &aDestination, const TDesC8 &aPath);IMPORT_C static CUpnpHttpMessage *HttpResponseOkL(CUpnpHttpMessage *aMessage);IMPORT_C static CUpnpHttpMessage *HttpResponseOkL(const TInetAddr &aDestination);IMPORT_C static CUpnpHttpMessage *Http11ResponseL(CUpnpHttpMessage *aMessage, TInt aStatus);IMPORT_C static CUpnpHttpMessage *Http11ResponseL(const TInetAddr &aDestination, TInt aStatus);IMPORT_C static CUpnpHttpMessage *HttpResponseErrorL(CUpnpHttpMessage *aMessage, TInt aError);IMPORT_C static CUpnpHttpMessage *HttpResponseErrorL(const TInetAddr &aAddr, TInt aError);IMPORT_C static CUpnpHttpMessage *UpnpResponseErrorL(CUpnpHttpMessage *aMessage, TUpnpErrorCode aError);IMPORT_C static CUpnpHttpMessage *UpnpResponseErrorL(const TInetAddr &aDestination, TUpnpErrorCode aError);private:static void SetHostHeaderL(CUpnpHttpMessage *aMessage, const TInetAddr &aDestination);};#37"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpdevice.h"1#define C_CUPNPDEVICE_H#1"X:/epoc32/include/platform/mw/upnpdescriptionproperty.h"1#define C_CUPNPDESCRIPTIONPROPERTY_H class TUpnpDevice;class TUpnpService;class CUpnpIcon;class CUpnpDescriptionProperty:public CBase{public:static CUpnpDescriptionProperty *NewL(const TDesC8 &aName, const TDesC8 &aValue);static CUpnpDescriptionProperty *NewL();CUpnpDescriptionProperty();~CUpnpDescriptionProperty();void ConstructL(const TDesC8 &aName, const TDesC8 &aValue);void SetNameL(const TDesC8 &aName);void SetValueL(const TDesC8 &aValue);const TDesC8 &Name();const TDesC8 &Value();private:HBufC8 *iName;HBufC8 *iValue;};#27"X:/epoc32/include/platform/mw/upnpdevice.h"2class TUpnpDevice;class TUpnpService;class CUpnpIcon;class CUpnpDescriptionProperty;const TInt KDefaultDescriptionUrlPort=80;class CUpnpDevice:public CBase{public:enum TUpnpDeviceNetwork{EUnknown=0, ELocalDevice, EHomeNetwork, ERemoteDevice};public:IMPORT_C static CUpnpDevice *NewL(const TUpnpDevice *aDevice, const RPointerArray< TUpnpService > &aServices);virtual ~CUpnpDevice();public:IMPORT_C const TPtrC8 DeviceType();IMPORT_C const TPtrC8 DescriptionProperty(const TDesC8 &aPropertyName);IMPORT_C CDesC8Array &ServiceTypesL();IMPORT_C const TPtrC8 ServiceId(const TDesC8 &aServiceType);IMPORT_C const TPtrC8 ServiceDescriptionUrl(const TDesC8 &aServiceType);IMPORT_C RPointerArray< CUpnpService > &ServiceList();IMPORT_C RPointerArray< CUpnpDevice > &DeviceList();IMPORT_C void GetAllDevices(RPointerArray< CUpnpDevice > &aDevices);IMPORT_C RPointerArray< CUpnpIcon > &Icons();IMPORT_C TBool Alive() const ;IMPORT_C void SetAlive(TBool aAlive);IMPORT_C TBool Expired() const ;IMPORT_C void SetExpired(TBool aAlive);IMPORT_C TBool Local() const ;IMPORT_C void SetLocal(TBool aLocal);IMPORT_C TBool Remote() const ;IMPORT_C TUpnpDeviceNetwork DeviceNetwork() const ;IMPORT_C void SetDeviceNetwork(TUpnpDeviceNetwork aNetworkType);IMPORT_C const TPtrC8 Uuid();void SetUuidL(const TDesC8 &aUUID);void AddDeviceL(CUpnpDevice *device);IMPORT_C const TDesC8 &DescriptionUrl() const ;void SetDescriptionUrlL(const TDesC8 &aDescriptionUrl);IMPORT_C const TPtrC8 DescriptionUrlPath() const ;IMPORT_C TInetAddr DescriptionUrlAddressL() const ;IMPORT_C TInt DescriptionUrlPort() const ;void AttachServiceL(CUpnpService *aService);IMPORT_C void SetAddress(const TInetAddr &aAddr);IMPORT_C virtual TInetAddr Address();IMPORT_C void WaitServiceDescriptionL(TInt aSessionId);IMPORT_C TInt WaitServiceDescriptionCount();IMPORT_C TInt WaitServiceDescriptionSessionId(TInt aIndex);IMPORT_C void WaitServiceDescriptionRemoveSessionId(TInt aIndex);enum TServiceAdd{ENotServiceAdded, EServiceAdded, EAllServicesAdded};TServiceAdd ServiceDescriptionReceiveState() const {return iServiceDescriptionReceiveState;}IMPORT_C void WaitIconL(TInt aSessionId);IMPORT_C TServiceAdd AddServiceL(TInt aSessionId, CUpnpService *aService);enum TIconAdd{ENotIconAdded, EIconAdded, EAllIconsAdded};TIconAdd IconReceiveState() const {return iIconReceiveState;}IMPORT_C TIconAdd AddIcon(TInt aSessionId);IMPORT_C HBufC8 *ConcatWithUrlBaseL(const TDesC8 &aUrl);IMPORT_C TPtrC8 GetProperty(const TDesC8 &aProperty);void SetTypeL(const TDesC8 &aType);void AddDevicePropertyL(CUpnpDescriptionProperty *aDeviceProperty);IMPORT_C void AddIconL(CUpnpIcon *aIcon);IMPORT_C CDesC8Array &ServiceIdL();IMPORT_C CUpnpDevice *CloneL();void DetachService(CUpnpService *aService);public:static TPtrC8 RemoveIpAddress(const TDesC8 &aAddress);void SetRootDevice(TBool aIsRoot);CUpnpDevice();private:void ConstructL(const TUpnpDevice *aDevice, const RPointerArray< TUpnpService > &aServices);static CUpnpDevice *NewL(const TDesC8 &aDescription);TInt ChangeIconSessionIdL(const TInt aOldSessionId, const TInt aNewSessionId);TInt CheckIconSessionIdExist(const TInt aSessionId);public:IMPORT_C const TPtrC8 UrlBase();IMPORT_C const TPtrC8 PresentationUrl();IMPORT_C void SetUrlBaseL(const TDesC8 &aUrlBase);IMPORT_C TBool IsEmbeddDevice();void Init();void CleanupServiceArray();protected:TInt64 iTimeValue;RArray< TInt > iIconSessionIds;RArray< TInt > iServiceDescriptionSessionIds;RPointerArray< CUpnpIcon > iIcons;RPointerArray< CUpnpDevice > iDeviceList;RPointerArray< CUpnpService > iServiceList;TServiceAdd iServiceDescriptionReceiveState;TIconAdd iIconReceiveState;CDesC8ArrayFlat *iServiceTypes;TBool iAlive;TBool iExpired;TBool iIsAllIconsArrived;TUpnpDeviceNetwork iNetworkType;HBufC8 *iDescriptionURL;HBufC8 *iDeviceType;HBufC8 *iDomain;HBufC8 *iUUID;HBufC8 *iClockSeq;TInetAddr iAddress;TInt iHandle;TBool iIsRootDevice;HBufC *iDeviceDescription;RPointerArray< CUpnpDescriptionProperty > iProperties;HBufC8 *iUrlBase;CDesC8ArrayFlat *iServicesId;};#39"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpfileutils.h"1#define C_UPNPFILEUTILS_Hconst static TLitC8< sizeof("text/html")> KHtml={sizeof("text/html")-1,"text/html"};const static TLitC8< sizeof("text/xml")> KXml={sizeof("text/xml")-1,"text/xml"};const static TLitC8< sizeof("text/plain")> KTxt={sizeof("text/plain")-1,"text/plain"};const static TLitC8< sizeof("image/jpeg")> KJpg={sizeof("image/jpeg")-1,"image/jpeg"};const static TLitC8< sizeof("image/gif")> KGif={sizeof("image/gif")-1,"image/gif"};const static TLitC8< sizeof("image/png")> KPng={sizeof("image/png")-1,"image/png"};const static TLitC8< sizeof("video/mpeg")> KMpeg={sizeof("video/mpeg")-1,"video/mpeg"};const static TLitC8< sizeof("video/x-msvideo")> KAvi={sizeof("video/x-msvideo")-1,"video/x-msvideo"};const static TLitC8< sizeof("audio/mpeg")> KMp3={sizeof("audio/mpeg")-1,"audio/mpeg"};const static TLitC16< sizeof(L".HTML")/2 > KHtml16={sizeof(L".HTML")/2-1, L".HTML"};const static TLitC16< sizeof(L".XML")/2 > KXml16={sizeof(L".XML")/2-1, L".XML"};const static TLitC16< sizeof(L".TXT")/2 > KTxt16={sizeof(L".TXT")/2-1, L".TXT"};const static TLitC16< sizeof(L".JPEG")/2 > KJpeg16={sizeof(L".JPEG")/2-1, L".JPEG"};const static TLitC16< sizeof(L".JPG")/2 > KJpg16={sizeof(L".JPG")/2-1, L".JPG"};const static TLitC16< sizeof(L".GIF")/2 > KGif16={sizeof(L".GIF")/2-1, L".GIF"};const static TLitC16< sizeof(L".PNG")/2 > KPng16={sizeof(L".PNG")/2-1, L".PNG"};const static TLitC16< sizeof(L".MPEG")/2 > KMpeg16={sizeof(L".MPEG")/2-1, L".MPEG"};const static TLitC16< sizeof(L".MPG")/2 > KMpg16={sizeof(L".MPG")/2-1, L".MPG"};const static TLitC16< sizeof(L".AVI")/2 > KAvi16={sizeof(L".AVI")/2-1, L".AVI"};const static TLitC16< sizeof(L".MP3")/2 > KMp316={sizeof(L".MP3")/2-1, L".MP3"};const TInt KIPNumMax=255;const TInt KIPNumMin=1;namespace UpnpFileUtil{IMPORT_C HBufC8 *ReadFileL(const TDesC16 &aFilename);IMPORT_C HBufC8 *GetMimeTypeForFileL(const TDesC16 &aFilename);HBufC8 *GetMimeTypeByExtensionL(const TDesC16 &aFilename);IMPORT_C TPtrC8 ExtractUrlPath(const TDesC8 &aUrl, TPtrC8 &aFilename, TPtrC8 &aScheme, TInt &aParseError);TBool ExtractUrlPathHost(const TDesC8 &aUrl, TInt &aParseError);TInt ExtractNumFromIP(TPtrC8 ippart);TInt DriveNumberFromPath(const TDesC16 &aPath, RFs &aFs);IMPORT_C TPtrC8 ExtractUrlPath(const TDesC8 &aUrl, TPtrC8 &aFilename, TInt &aParseError);IMPORT_C TPtrC8 ExtractUrlPath(const TDesC8 &aUrl, TInt &aParseError);IMPORT_C HBufC8 *SwitchToBackSlashL(const TDesC8 &aUrl);IMPORT_C HBufC *SwitchToBackSlashL(const TDesC &aUrl);IMPORT_C TBool CheckDiskSpaceShortL(const TDesC16 &aPath, TInt aSize, RFs &aFs);IMPORT_C TBool CheckDiskSpaceShortL(TDriveNumber aDriveNumber, TInt aSize);IMPORT_C TInt ParseUri(const TDesC8 &aUrl);}#40"X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp"2#1"X:/epoc32/include/platform/mw/upnpcommonupnplits.h"1#define C_UPNPCOMMONUPNPLITS_H const TInt KLongInfoSize=1000;const TInt KMaxInfoSize=20;const static TLitC8< sizeof("=\"")> Keq={sizeof("=\"")-1,"=\""};const static TLitC8< sizeof("false")> Kfalse={sizeof("false")-1,"false"};const static TLitC8< sizeof("true")> Ktrue={sizeof("true")-1,"true"};const static TLitC8< sizeof(")")> KClosingBracket={sizeof(")")-1,")"};const static TLitC8< sizeof("\")")> KClosingBracketWithQuotation={sizeof("\")")-1,"\")"};const static TLitC8< sizeof(":")> KColon={sizeof(":")-1,":"};const static TLitC8< sizeof(",")> KComma={sizeof(",")-1,","};const static TLitC8< sizeof("")> KEmptyString={sizeof("")-1,""};const static TLitC8< sizeof("<")> KKorp={sizeof("<")-1,"<"};const static TLitC8< sizeof("</")> KKorpSlash={sizeof("</")-1,"</"};const static TLitC8< sizeof("ObjectID")> KObjectID={sizeof("ObjectID")-1,"ObjectID"};const static TLitC8< sizeof("1")> KOne={sizeof("1")-1,"1"};const static TLitC8< sizeof("%i")> KOneNumber={sizeof("%i")-1,"%i"};const static TLitC8< sizeof("%i")> KOneNumber8={sizeof("%i")-1,"%i"};const static TLitC8< sizeof("\r\n")> KPlainLineFeed={sizeof("\r\n")-1,"\r\n"};const static TLitC8< sizeof(">")> KProk={sizeof(">")-1,">"};const static TLitC8< sizeof(":const static TLitC8<sizeof( "" )> KSpace ={sizeof( "" )-1, "" };const static TLitC8<sizeof( "" )> KSpace8 ={sizeof( "" )-1, "" };const static TLitC8<sizeof( "\"")> KQuotation={sizeof("\"")-1,"\""};const static TLitC8< sizeof("\" ")> KQuotationWithSpace={sizeof("\" ")-1,"\" "};const static TLitC8< sizeof("0")> KZero={sizeof("0")-1,"0"};const static TLitC16< sizeof(L"\\")/2 > KBackSlash={sizeof(L"\\")/2-1, L"\\"};const static TLitC16< sizeof(L" ")/2 > KSpace16={sizeof(L" ")/2-1, L" "};const static TLitC16< sizeof(L"\\")/2 > KDoubleBackSlash={sizeof(L"\\")/2-1, L"\\"};const static TLitC< sizeof(L"UPnP messagehandler Panic")/2 > KMessagehandlerPanic={sizeof(L"UPnP messagehandler Panic")/2-1, L"UPnP messagehandler Panic"};const static TLitC8< sizeof(" ")> KEmptyMessage={sizeof(" ")-1," "};const static TLitC8< sizeof(" ")> KMulticastPacket={sizeof(" ")-1," "};const static TLitC16< sizeof(L"LANBearer")/2 > KLanBearer={sizeof(L"LANBearer")/2-1, L"LANBearer"};const static TLitC< sizeof(L"MessageHandler")/2 > KMessageHandlerFilename={sizeof(L"MessageHandler")/2-1, L"MessageHandler"};const static TLitC8< sizeof("Here is an ERROR!")> KErrorHere={sizeof("Here is an ERROR!")-1,"Here is an ERROR!"};const static TLitC8< sizeof("Sent %d/%d")> Servedbytes={sizeof("Sent %d/%d")-1,"Sent %d/%d"};const static TLitC8< sizeof("Served %d bytes")> NBytesServed={sizeof("Served %d bytes")-1,"Served %d bytes"};const static TLitC8< sizeof("RunL(), error %d")> KRunL={sizeof("RunL(), error %d")-1,"RunL(), error %d"};const static TLitC8< sizeof("DISPATCHERENGINE *** Sending of http message fails!")> KSendFail={sizeof("DISPATCHERENGINE *** Sending of http message fails!")-1,"DISPATCHERENGINE *** Sending of http message fails!"};const static TLitC8< sizeof("SERVICE *** Leave during service description parsing: ")> KPanic={sizeof("SERVICE *** Leave during service description parsing: ")-1,"SERVICE *** Leave during service description parsing: "};const static TLitC8< sizeof("index.html")> KIndexHtml={sizeof("index.html")-1,"index.html"};const static TLitC16< sizeof(L"index.html")/2 > KIndexHtml16={sizeof(L"index.html")/2-1, L"index.html"};const static TLitC8< sizeof("index.xml")> KIndexXml={sizeof("index.xml")-1,"index.xml"};const static TLitC16< sizeof(L"index.xml")/2 > KIndexXml16={sizeof(L"index.xml")/2-1, L"index.xml"};const static TLitC8< sizeof("A_ARG_TYPE_ProtocolInfo")> KArgTypeProtocolInfo={sizeof("A_ARG_TYPE_ProtocolInfo")-1,"A_ARG_TYPE_ProtocolInfo"};const static TLitC8< sizeof("A_ARG_TYPE_AVTransportID")> KAvtransId={sizeof("A_ARG_TYPE_AVTransportID")-1,"A_ARG_TYPE_AVTransportID"};const static TLitC8< sizeof("A_ARG_TYPE_ConnectionManager")> KConMan={sizeof("A_ARG_TYPE_ConnectionManager")-1,"A_ARG_TYPE_ConnectionManager"};const static TLitC8< sizeof("A_ARG_TYPE_ConnectionID")> KConId={sizeof("A_ARG_TYPE_ConnectionID")-1,"A_ARG_TYPE_ConnectionID"};const static TLitC8< sizeof("A_ARG_TYPE_ConnectionStatus")> KConStat={sizeof("A_ARG_TYPE_ConnectionStatus")-1,"A_ARG_TYPE_ConnectionStatus"};const static TLitC8< sizeof("A_ARG_TYPE_Direction")> KDirection={sizeof("A_ARG_TYPE_Direction")-1,"A_ARG_TYPE_Direction"};const static TLitC8< sizeof("A_ARG_TYPE_ProtocolInfo")> KProtInf={sizeof("A_ARG_TYPE_ProtocolInfo")-1,"A_ARG_TYPE_ProtocolInfo"};const static TLitC8< sizeof("A_ARG_TYPE_RcsID")> KRcsId={sizeof("A_ARG_TYPE_RcsID")-1,"A_ARG_TYPE_RcsID"};const static TLitC8< sizeof("ConnectionIDs")> KConnectionIDs={sizeof("ConnectionIDs")-1,"ConnectionIDs"};const static TLitC8< sizeof("CurrentConnectionIDs")> KCurConId={sizeof("CurrentConnectionIDs")-1,"CurrentConnectionIDs"};const static TLitC8< sizeof("GetProtocolInfo")> KGetProtInfo={sizeof("GetProtocolInfo")-1,"GetProtocolInfo"};const static TLitC8< sizeof("GetCurrentConnectionIDs")> KGetCurConIds={sizeof("GetCurrentConnectionIDs")-1,"GetCurrentConnectionIDs"};const static TLitC8< sizeof("GetCurrentConnectionInfo")> KGetCurConInfo={sizeof("GetCurrentConnectionInfo")-1,"GetCurrentConnectionInfo"};const static TLitC8< sizeof("Sink")> KSink={sizeof("Sink")-1,"Sink"};const static TLitC8< sizeof("SinkProtocolInfo")> KSinkInf={sizeof("SinkProtocolInfo")-1,"SinkProtocolInfo"};const static TLitC8< sizeof("Source")> KSource={sizeof("Source")-1,"Source"};const static TLitC8< sizeof("SourceProtocolInfo")> KSourceInf={sizeof("SourceProtocolInfo")-1,"SourceProtocolInfo"};const static TLitC8< sizeof("http-get:*:*:*")> KSupportedProtocols={sizeof("http-get:*:*:*")-1,"http-get:*:*:*"};const static TLitC8< sizeof("NULL")> KNull={sizeof("NULL")-1,"NULL"};const static TLitC8< sizeof("output")> KOutput={sizeof("output")-1,"output"};const static TLitC8< sizeof("OK")> KOk={sizeof("OK")-1,"OK"};const static TLitC8< sizeof("RcsID")> KTypeRcsID={sizeof("RcsID")-1,"RcsID"};const static TLitC8< sizeof("AVTransportID")> KTypeAVTransportID={sizeof("AVTransportID")-1,"AVTransportID"};const static TLitC8< sizeof("ProtocolInfo")> KTypeProtocolInfo={sizeof("ProtocolInfo")-1,"ProtocolInfo"};const static TLitC8< sizeof("PeerConnectionManager")> KTypePeerConnectionManager={sizeof("PeerConnectionManager")-1,"PeerConnectionManager"};const static TLitC8< sizeof("PeerConnectionID")> KTypePeerConnectionID={sizeof("PeerConnectionID")-1,"PeerConnectionID"};const static TLitC8< sizeof("Direction")> KTypeDirection={sizeof("Direction")-1,"Direction"};const static TLitC8< sizeof("Status")> KTypeStatus={sizeof("Status")-1,"Status"};const static TLitC8< sizeof("ConnectionID")> KArgument={sizeof("ConnectionID")-1,"ConnectionID"};const static TLitC8< sizeof("PrepareForConnection")> KPrepareForConnection={sizeof("PrepareForConnection")-1,"PrepareForConnection"};const static TLitC8< sizeof("ConnectionComplete")> KConnectionComplete={sizeof("ConnectionComplete")-1,"ConnectionComplete"};const static TLitC8< sizeof("controlURL")> KControlUrl={sizeof("controlURL")-1,"controlURL"};const static TLitC8< sizeof("device")> KDevice={sizeof("device")-1,"device"};const static TLitC8< sizeof("deviceType")> KDeviceType={sizeof("deviceType")-1,"deviceType"};const static TLitC8< sizeof("deviceList")> KDeviceList={sizeof("deviceList")-1,"deviceList"};const static TLitC8< sizeof(".xml")> KDotXml={sizeof(".xml")-1,".xml"};const static TLitC8< sizeof("friendlyName")> KFriendlyName={sizeof("friendlyName")-1,"friendlyName"};const static TLitC8< sizeof("http:const static TLitC8<sizeof( "icon" )> KIcon ={sizeof( "icon" )-1, "icon" };const static TLitC8<sizeof( "iconList" )> KIconList ={sizeof( "iconList" )-1, "iconList" };const static TLitC8<sizeof( "-" )> KLine ={sizeof( "-" )-1, "-" };const static TLitC8<sizeof( "%08x" )> KMask8 ={sizeof( "%08x" )-1, "%08x" };const static TLitC8<sizeof( "manufacturer" )> KManufacturer ={sizeof( "manufacturer" )-1, "manufacturer" };const static TLitC8<sizeof( "manufacturerURL" )> KManufacturerUrl ={sizeof( "manufacturerURL" )-1, "manufacturerURL" };const static TLitC8<sizeof( "modelDescription" )> KModelDescription ={sizeof( "modelDescription" )-1, "modelDescription" };const static TLitC8<sizeof( "modelName" )> KModelName ={sizeof( "modelName" )-1, "modelName" };const static TLitC8<sizeof( "modelNumber" )> KModelNumber ={sizeof( "modelNumber" )-1, "modelNumber" };const static TLitC8<sizeof( "modelURL" )> KModelUrl ={sizeof( "modelURL" )-1, "modelURL" };const static TLitC8<sizeof( ":" )> KSepar ={sizeof( ":" )-1, ":" };const static TLitC8<sizeof( "serialNumber" )> KSerialNumber ={sizeof( "serialNumber" )-1, "serialNumber" };const static TLitC8<sizeof( "service" )> KService ={sizeof( "service" )-1, "service" };const static TLitC8<sizeof( "serviceList" )> KServiceList ={sizeof( "serviceList" )-1, "serviceList" };const static TLitC8<sizeof( "serviceId" )> KServiceId ={sizeof( "serviceId" )-1, "serviceId" };const static TLitC8<sizeof( "serviceType" )> KServiceType ={sizeof( "serviceType" )-1, "serviceType" };const static TLitC8<sizeof( "service:" )> KServiceUrn ={sizeof( "service:" )-1, "service:" };const static TLitC8<sizeof( "SCPDURL" )> KServiceDescriptionUrl ={sizeof( "SCPDURL" )-1, "SCPDURL" };const static TLitC8<sizeof( "eventSubURL" )> KSubscriptionUrl ={sizeof( "eventSubURL" )-1, "eventSubURL" };const static TLitC8<sizeof( ":device:" )> KDeviceSearch ={sizeof( ":device:" )-1, ":device:" };const static TLitC8<sizeof( "\r" )> KR ={sizeof( "\r" )-1, "\r" };const static TLitC8<sizeof( "/" )> KSlash8 ={sizeof( "/" )-1, "/" };const static TLitC8<sizeof( "UDN" )> KUdn ={sizeof( "UDN" )-1, "UDN" };const static TLitC8<sizeof( "uuid:" )> KUuid ={sizeof( "uuid:" )-1, "uuid:" };const static TLitC8<sizeof( "presentationURL" )> KPresentationUrl ={sizeof( "presentationURL" )-1, "presentationURL" };const static TLitC8<sizeof( "URLBase" )> KUrlBase ={sizeof( "URLBase" )-1, "URLBase" };const static TLitC8<sizeof( "NoHeader" )> KNoHeader ={sizeof( "NoHeader" )-1, "NoHeader" };const static TLitC8<sizeof( "80" )> KDefaultHostPort ={sizeof( "80" )-1, "80" };const static TLitC8<sizeof( "uuid:" )> KSidPrefix ={sizeof( "uuid:" )-1, "uuid:" };const static TLitC8<sizeof( "Second-" )> KTimeoutPrefix ={sizeof( "Second-" )-1, "Second-" };const static TLitC8<sizeof( "path" )> KPath ={sizeof( "path" )-1, "path" }; const static TLitC8<sizeof( "GET" )> KGet ={sizeof( "GET" )-1, "GET" };const static TLitC8<sizeof( "Second-" )> KSeconds ={sizeof( "Second-" )-1, "Second-" };const static TLitC8<sizeof( "image/png" )> KMimePng ={sizeof( "image/png" )-1, "image/png" };const static TLitC8<sizeof( "image/jpeg" )> KMimeJpeg ={sizeof( "image/jpeg" )-1, "image/jpeg" };const static TLitC8<sizeof( "C:\\System\\Data\\UPnP\\" )> KUpnpPath ={sizeof( "C:\\System\\Data\\UPnP\\" )-1, "C:\\System\\Data\\UPnP\\" };const static TLitC8<sizeof( "<" )> KLessThan8 ={sizeof( "<" )-1, "<" }; const static TLitC8<sizeof( ">" )> KGreaterThan8 ={sizeof( ">" )-1, ">" }; const static TLitC<sizeof(L"c:" )/2> KMediaDriveLetter ={sizeof(L"c:" )/2-1,L"c:" }; # 41 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontainerupdateid.h" 1#define C_CUPNPCONTAINERUPDATEID_Hclass TUpnpContainerUpdateId{public: TUpnpContainerUpdateId();public: HBufC8* iContainerId; TInt iUpdateId;}; # 42 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectorydb.h" 1#define C_CUPNPCONTENTDIRECTORYDB_H# 1 "X:/epoc32/include/d32dbms.h" 1#define __D32DBMS_H__class RFs;class CDbObject;class CDbRowConstraint;class CDbCursor;class CDbDatabase;class CDbIncremental;class CDbNotifier;class TDbColumn;class TDbColumnC;class TDbCol;class CDbColSet;class TDbColSetIter;class TDbKeyCol;class CDbKey;class TDbBookmark;class TDbQuery;class RDbHandleBase;template<class T> class RDbHandle;class RDbRowConstraint;class RDbRowSet;class RDbColReadStream;class RDbColWriteStream;class TDbWindow;class RDbView;template<class T> class TUnion;class TDbLookupKey;class TDbSeekKey;template<TInt S> class TDbSeekMultiKey;class RDbTable;class CDbNames;class RDbDatabase;class RDbIncremental;class RDbUpdate;class RDbNotifier;class RDbs;class RDbNamedDatabase;class RDbStoreDatabase;const TInt KDbMaxName=0x40;const TInt KDbMaxColName=KDbMaxName;typedef TBuf<KDbMaxName> TDbName;typedef TBufC<KDbMaxName> TDbNameC;typedef TBuf<KDbMaxColName> TDbColName;typedef TBufC<KDbMaxColName> TDbColNameC;typedef TInt TDbColNo;const TDbColNo KDbNullColNo=0;const TInt KDbUndefinedCount=-1;const TInt KDbUndefinedLength=-1;const TInt KDbDefaultTextColLength=50;enum TDbColType { EDbColBit, EDbColInt8, EDbColUint8, EDbColInt16, EDbColUint16, EDbColInt32, EDbColUint32, EDbColInt64, EDbColReal32, EDbColReal64, EDbColDateTime, EDbColText8, EDbColText16, EDbColBinary, EDbColLongText8, EDbColLongText16, EDbColLongBinary, EDbColText=EDbColText16, EDbColLongText=EDbColLongText16 };enum TDbTextComparison { EDbCompareNormal, EDbCompareFolded, EDbCompareCollated };class TDbCol { friend class CDbColSet;public: enum {ENotNull=0x01,EAutoIncrement=0x02};public: inline TDbCol() {} inline TDbCol(const TDbCol&); inline TDbCol& operator=(const TDbCol&); IMPORT_C TDbCol(const TDesC& aName,TDbColType aType); IMPORT_C TDbCol(const TDesC& aName,TDbColType aType,TInt aMaxLength); static inline TBool IsLong(TDbColType aType);private: inline TDbCol(const TDesC& aName);public: TDbColType iType; TInt iMaxLength; TUint iAttributes; TDbColNameC iName; };class CDbColSet : public CBase { friend class TDbColSetIter;public: IMPORT_C CDbColSet(); IMPORT_C static CDbColSet* NewL(); IMPORT_C static CDbColSet* NewLC(); IMPORT_C ~CDbColSet(); inline const TDbCol& operator[](TDbColNo aCol) const; IMPORT_C const TDbCol* Col(const TDesC& aColName) const; IMPORT_C TDbColNo ColNo(const TDesC& aColName) const; inline TInt Count() const; inline void Clear(); IMPORT_C CDbColSet& AddL(const TDbCol& aCol); IMPORT_C void Remove(const TDesC& aColName);private: CArrayPakFlat<TDbCol> iColumns; };class TDbColSetIter {public: IMPORT_C TDbColSetIter(const CDbColSet& aColSet); inline operator TAny* () const; inline const TDbCol& operator*() const; inline const TDbCol* operator->) const; IMPORT_C TDbColSetIter& operator++(); inline TDbColSetIter operator++(TInt); inline TDbColNo Col() const;private: const TDbCol* iColumn; TInt iIndex; const CArrayPakFlat<TDbCol>* iArray; };class TDbKeyCol {public: enum TOrder { EAsc, EDesc };public: inline TDbKeyCol() {} inline TDbKeyCol(const TDbKeyCol&); inline TDbKeyCol& operator=(const TDbKeyCol&); IMPORT_C TDbKeyCol(const TDesC& aName,TOrder anOrder=EAsc); IMPORT_C TDbKeyCol(const TDesC& aName,TInt aLength,TOrder anOrder=EAsc);public: TOrder iOrder; TInt iLength; TDbColNameC iName; };class CDbKey : public CBase {public: enum {EUnique=0x01,EPrimary=0x02};public: IMPORT_C CDbKey(); IMPORT_C static CDbKey* NewL(); IMPORT_C static CDbKey* NewLC(); IMPORT_C ~CDbKey(); IMPORT_C CDbKey& AddL(const TDbKeyCol& aKeyCol); IMPORT_C void Remove(const TDesC& aColName); IMPORT_C void Clear(); inline TInt Count() const; inline const TDbKeyCol& operator[](TInt aCol) const; inline void MakeUnique(); inline TBool IsUnique() const; inline void SetComparison(TDbTextComparison aComparison); inline TDbTextComparison Comparison() const; inline void MakePrimary(); inline TBool IsPrimary() const;private: CArrayPakFlat<TDbKeyCol> iKeys; TDbTextComparison iComparison; TInt iAttributes; };class TDbBookmark { friend class RDbRowSet;public: struct TMark { enum {ESize=8}; TUint32 iMark[ESize]; };private: TMark iMark; };class TDbQuery {public: inline TDbQuery(const TDesC& aQuery,TDbTextComparison aComparison=EDbCompareNormal); inline const TDesC& Query() const; inline TDbTextComparison Comparison() const;private: const TDesC& iQuery; TDbTextComparison iComparison; };class RDbHandleBase {public: inline RDbHandleBase(); void Close();protected: inline void Set(CDbObject* aObject); CDbObject& Object() const;protected: CDbObject* iObject; };template <class T>class RDbHandle : public RDbHandleBase {public: inline T* operator=(T* aT); inline T* operator->) const; inline T& operator*() const; inline T* operator()() const; };class RDbRowConstraint { friend class RDbRowSet;public: IMPORT_C TInt Open(const RDbRowSet& aView,TDbQuery aCriteria); IMPORT_C void Close();private: RDbHandle<CDbRowConstraint> iConstraint; };class RDbRowSet { friend class RDbRowConstraint; friend class RDbColReadStream; friend class RDbColWriteStream;public: enum TPosition { EFirst, ENext, EPrevious, ELast, EBeginning, EEnd }; enum TAccess { EUpdatable, EReadOnly, EInsertOnly }; enum TDirection { EForwards, EBackwards }; enum TAccuracy { EEnsure, EQuick };public: IMPORT_C void Close(); IMPORT_C void Reset(); IMPORT_C CDbColSet* ColSetL() const; IMPORT_C TInt ColCount() const; IMPORT_C TDbColType ColType(TDbColNo aCol) const; IMPORT_C TDbCol ColDef(TDbColNo aCol) const; IMPORT_C TBool AtRow() const; IMPORT_C TBool AtBeginning() const; IMPORT_C TBool AtEnd() const; IMPORT_C TInt CountL(TAccuracy anAccuracy=EEnsure) const; IMPORT_C TBool IsEmptyL() const; IMPORT_C TBool GotoL(TPosition aPosition); inline void BeginningL(); inline void EndL(); inline TBool FirstL(); inline TBool LastL(); inline TBool NextL(); inline TBool PreviousL(); IMPORT_C TDbBookmark Bookmark() const; IMPORT_C void GotoL(const TDbBookmark& aMark); IMPORT_C TBool MatchL(const RDbRowConstraint& aConstraint); IMPORT_C TInt FindL(TDirection aDirection,TDbQuery aCriteria); IMPORT_C void GetL(); IMPORT_C void InsertL(); IMPORT_C void InsertCopyL(); IMPORT_C void UpdateL(); IMPORT_C void PutL(); IMPORT_C void Cancel(); IMPORT_C void DeleteL(); inline TBool IsColNull(TDbColNo aCol) const; IMPORT_C TInt ColSize(TDbColNo aCol) const; IMPORT_C TInt ColLength(TDbColNo aCol) const; IMPORT_C TInt8 ColInt8(TDbColNo aCol) const; IMPORT_C TInt16 ColInt16(TDbColNo aCol) const; IMPORT_C TInt32 ColInt32(TDbColNo aCol) const; IMPORT_C TInt64 ColInt64(TDbColNo aCol) const; inline TInt ColInt(TDbColNo aCol) const; IMPORT_C TUint8 ColUint8(TDbColNo aCol) const; IMPORT_C TUint16 ColUint16(TDbColNo aCol) const; IMPORT_C TUint32 ColUint32(TDbColNo aCol) const; inline TUint ColUint(TDbColNo aCol) const; IMPORT_C TReal32 ColReal32(TDbColNo aCol) const __SOFTFP; IMPORT_C TReal64 ColReal64(TDbColNo aCol) const __SOFTFP; inline TReal ColReal(TDbColNo aCol) const; IMPORT_C TTime ColTime(TDbColNo aCol) const; IMPORT_C TPtrC8 ColDes8(TDbColNo aCol) const; IMPORT_C TPtrC16 ColDes16(TDbColNo aCol) const; IMPORT_C TPtrC ColDes(TDbColNo aCol) const; IMPORT_C void SetColNullL(TDbColNo aCol); inline void SetColL(TDbColNo aCol,TInt aValue); IMPORT_C void SetColL(TDbColNo aCol,TInt32 aValue); IMPORT_C void SetColL(TDbColNo aCol,TInt64 aValue); inline void SetColL(TDbColNo aCol,TUint aValue); IMPORT_C void SetColL(TDbColNo aCol,TUint32 aValue); IMPORT_C void SetColL(TDbColNo aCol,TReal32 aValue) __SOFTFP; IMPORT_C void SetColL(TDbColNo aCol,TReal64 aValue) __SOFTFP; IMPORT_C void SetColL(TDbColNo aCol,TTime aValue); IMPORT_C void SetColL(TDbColNo aCol,const TDesC8& aValue); IMPORT_C void SetColL(TDbColNo aCol,const TDesC16& aValue);private: inline MStreamBuf* ColSourceL(TDbColNo aCol) const; inline MStreamBuf* ColSinkL(TDbColNo aCol); CDbCursor& CheckCol(TDbColNo aCol) const; TDbColumnC ColumnC(TDbColNo aCol,TDbColType aType) const; TDbColumn Column(TDbColNo aCol,TDbColType aType);protected: RDbHandle<CDbCursor> iCursor; };class RDbColReadStream : public RReadStream {public: IMPORT_C void OpenL(const RDbRowSet& aView,TDbColNo aCol); IMPORT_C void OpenLC(const RDbRowSet& aView,TDbColNo aCol); };class RDbColWriteStream : public RWriteStream {public: inline RDbColWriteStream() {} inline RDbColWriteStream(const MExternalizer<TStreamRef> &anExternalizer); IMPORT_C void OpenL(RDbRowSet& aView,TDbColNo aCol); IMPORT_C void OpenLC(RDbRowSet& aView,TDbColNo aCol); };class TDbWindow {public: enum TUnlimited { EUnlimited=KMaxTInt }; enum {ENone=0};public: inline TDbWindow(); inline TDbWindow(TUnlimited); IMPORT_C TDbWindow(TInt aForeSlots,TInt aRearSlots); inline TInt Size() const; inline TInt PreferredPos() const;private: TInt iSize; TInt iPreferredPos; };#define KDbUnlimitedWindowclass RDbView : public RDbRowSet {public: IMPORT_C TInt Prepare(RDbDatabase& aDatabase,const TDbQuery& aQuery,TAccess anAccess=EUpdatable); IMPORT_C TInt Prepare(RDbDatabase& aDatabase,const TDbQuery& aQuery,const TDbWindow& aWindow); IMPORT_C TInt Prepare(RDbDatabase& aDatabase,const TDbQuery& aQuery,const TDbWindow& aWindow,TAccess anAccess); IMPORT_C TInt EvaluateAll(); IMPORT_C TInt Evaluate(); IMPORT_C void Evaluate(TRequestStatus& aStatus); IMPORT_C TBool Unevaluated() const; };template <class T>class TUnion {public: inline operator const T&() const; inline const T& operator()() const; inline T& operator()(); inline void Set(const T& aT);private: TUint8 iRep[sizeof(T)]; };class TDbLookupKey {public: struct SColumn { union { TInt32 iInt32; TUint32 iUint32; TUnion<TInt64> iInt64; TReal32 iReal32; TReal64 iReal64; TUnion<TTime> iTime; struct {const TText8* iPtr;TInt iLength;} iDes8; struct {const TText16* iPtr;TInt iLength;} iDes16; }; TDbColType iType; };public: inline TDbLookupKey(); inline TInt Count() const; inline const SColumn* First() const; void Add(TInt aKey); void Add(TUint aKey); void Add(TInt64 aKey); void Add(TReal32 aKey) __SOFTFP; void Add(TReal64 aKey) __SOFTFP; void Add(TTime aKey); void Add(const TDesC8& aKey); void Add(const TDesC16& aKey);private: SColumn& NextKey();private: TInt iCount; SColumn iKey[1]; };class TDbSeekKey { friend class RDbTable;public: inline TDbSeekKey(); inline TDbSeekKey(TInt aKey); inline TDbSeekKey(TUint aKey); inline TDbSeekKey(TInt64 aKey); inline TDbSeekKey(TReal32 aKey); inline TDbSeekKey(TReal64 aKey); inline TDbSeekKey(TTime aKey); inline TDbSeekKey(const TDesC8& aKey); inline TDbSeekKey(const TDesC16& aKey); IMPORT_C TDbSeekKey& Add(TInt aKey); IMPORT_C TDbSeekKey& Add(TUint aKey); IMPORT_C TDbSeekKey& Add(TInt64 aKey); IMPORT_C TDbSeekKey& Add(TReal32 aKey) __SOFTFP; IMPORT_C TDbSeekKey& Add(TReal64 aKey) __SOFTFP; IMPORT_C TDbSeekKey& Add(TTime aKey); IMPORT_C TDbSeekKey& Add(const TDesC8& aKey); IMPORT_C TDbSeekKey& Add(const TDesC16& aKey);private: TDbLookupKey& Check();protected: inline TDbSeekKey(TInt aKeys,TInt);private: TInt iMaxKeys; TDbLookupKey iKey; };template<TInt S>class TDbSeekMultiKey : public TDbSeekKey {public: inline TDbSeekMultiKey();private: TDbLookupKey::SColumn iExtraKeys[S-1]; };class RDbTable : public RDbRowSet {public: enum TComparison { ELessThan, ELessEqual, EEqualTo, EGreaterEqual, EGreaterThan };public: IMPORT_C TInt Open(RDbDatabase& aDatabase,const TDesC& aName,TAccess anAccess=EUpdatable); inline TInt SetIndex(const TDesC& anIndex); inline TInt SetNoIndex(); IMPORT_C TBool SeekL(const TDbSeekKey& aKey,TComparison aComparison=EEqualTo);private: IMPORT_C TInt SetIndex(const TDesC* anIndex); };class CDbNames : public CBase {private: inline CDbNames();public: static CDbNames* NewLC(); ~CDbNames(); inline TInt Count() const; inline const TDesC& operator[](TInt anIndex) const; IMPORT_C void AddL(const TDesC& aName);private: CArrayPakFlat<TDbNameC> iList; };typedef CDbNames CDbTableNames,CDbIndexNames,CDbDatabaseNames;const TInt KDbMaxStrLen = 256;typedef TBufC<KDbMaxStrLen> TDbStringC;class CDbStrings : public CBase {private: inline CDbStrings();public: static CDbStrings* NewLC(); virtual ~CDbStrings(); inline TInt Count() const; inline const TDesC& operator[](TInt aIndex) const; void AddL(const TDesC& aStr);private: CArrayPakFlat<TDbStringC> iList; };class RDbDatabase { friend class RDbView; friend class RDbTable; friend class RDbIncremental; friend class RDbUpdate; friend class RDbNotifier;public: struct TSize {TInt iSize;TInt iUsage;};public: IMPORT_C void Close(); IMPORT_C TInt Destroy(); IMPORT_C TBool IsDamaged() const; IMPORT_C TInt Recover(); IMPORT_C TInt UpdateStats(); IMPORT_C TSize Size() const; IMPORT_C TInt Compact(); IMPORT_C TInt Begin(); IMPORT_C TInt Commit(); IMPORT_C void Rollback(); IMPORT_C TBool InTransaction() const; inline TInt CreateTable(const TDesC& aName,const CDbColSet& aDef); inline TInt CreateTable(const TDesC& aName,const CDbColSet& aDef,const CDbKey& aPrimaryKey); IMPORT_C TInt DropTable(const TDesC& aName); IMPORT_C TInt AlterTable(const TDesC& aName,const CDbColSet& aNewDef); IMPORT_C TInt CreateIndex(const TDesC& aName,const TDesC& aTable,const CDbKey& aKey); IMPORT_C TInt DropIndex(const TDesC& aName,const TDesC& aTable); IMPORT_C TInt Execute(const TDesC& aSql,TDbTextComparison aComparison=EDbCompareNormal); IMPORT_C CDbTableNames* TableNamesL() const; IMPORT_C CDbColSet* ColSetL(const TDesC& aName) const; IMPORT_C CDbIndexNames* IndexNamesL(const TDesC& aTable) const; IMPORT_C CDbKey* KeyL(const TDesC& aName,const TDesC& aTable) const;private: IMPORT_C TInt CreateTable(const TDesC& aName,const CDbColSet& aColSet,const CDbKey* aPrimaryKey);protected: RDbHandle<CDbDatabase> iDatabase; };class RDbIncremental {public: IMPORT_C void Close(); IMPORT_C TInt Next(TInt& aStep); IMPORT_C void Next(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus); IMPORT_C TInt Recover(RDbDatabase& aDatabase,TInt& aStep); IMPORT_C TInt Compact(RDbDatabase& aDatabase,TInt& aStep); IMPORT_C TInt DropTable(RDbDatabase& aDatabase,const TDesC& aTable,TInt& aStep); IMPORT_C TInt AlterTable(RDbDatabase& aDatabase,const TDesC& aTable,const CDbColSet& aNewDef,TInt& aStep); IMPORT_C TInt CreateIndex(RDbDatabase& aDatabase,const TDesC& aName,const TDesC& aTable,const CDbKey& aKey,TInt& aStep); IMPORT_C TInt DropIndex(RDbDatabase& aDatabase,const TDesC& aName,const TDesC& aTable,TInt& aStep); inline TInt Execute(RDbDatabase& aDatabase,const TDesC& aSql,TInt& aStep); IMPORT_C TInt Execute(RDbDatabase& aDatabase,const TDesC& aSql,TDbTextComparison aComparison,TInt& aStep); IMPORT_C TInt UpdateStats(RDbDatabase& aDatabase,TInt& aStep);private: RDbHandle<CDbIncremental> iState; };class RDbUpdate {public: IMPORT_C TInt Execute(RDbDatabase& aDatabase,const TDesC& aSql,TDbTextComparison aComparison=EDbCompareNormal); IMPORT_C void Close(); IMPORT_C TInt Next(); IMPORT_C void Next(TRequestStatus& aStatus); IMPORT_C TInt RowCount() const;private: RDbHandle<CDbIncremental> iUpdate; TPckgBuf<TInt> iRows; };class RDbNotifier {public: enum TEvent { EClose, EUnlock, ECommit, ERollback, ERecover };public: IMPORT_C TInt Open(RDbDatabase& aDatabase); IMPORT_C void Close(); IMPORT_C void NotifyUnlock(TRequestStatus& aStatus); IMPORT_C void NotifyChange(TRequestStatus& aStatus); IMPORT_C void Cancel();private: RDbHandle<CDbNotifier> iNotifier; };class RDbs : public RSessionBase {public: typedef enum {EReadPolicy, EWritePolicy, ESchemaPolicy} TPolicyType;public: IMPORT_C static TVersion Version(); IMPORT_C TInt Connect(); IMPORT_C CDbDatabaseNames* DatabaseNamesL(TDriveNumber aDrive, TUid aPolicyUid); IMPORT_C TInt CopyDatabase(const TDesC& aSrcDbName, const TDesC& aDestDbName, TUid aPolicyUid); IMPORT_C TInt DeleteDatabase(const TDesC& aDbName, TUid aPolicyUid); IMPORT_C TInt GetDatabasePolicy(TUid aPolicyUid, TPolicyType aPolicyType, TSecurityPolicy& aDbPolicy); IMPORT_C TInt GetTablePolicy(TUid aPolicyUid, const TDesC& aTableName, TPolicyType aPolicyType, TSecurityPolicy& aTablePolicy); IMPORT_C TInt GetTablePolicies(TUid aPolicyUid, const TDesC& aTableName, TPolicyType aPolicyType, TSecurityPolicy& aDbPolicy, TSecurityPolicy& aTablePolicy); IMPORT_C void ResourceMark(); IMPORT_C void ResourceCheck(); IMPORT_C TInt ResourceCount(); IMPORT_C void SetHeapFailure(TInt aTAllocFail,TInt aRate); IMPORT_C TInt ReserveDriveSpace(TInt aDriveNo, TInt aSpace); IMPORT_C void FreeReservedSpace(TInt aDriveNo); IMPORT_C TInt GetReserveAccess(TInt aDriveNo); IMPORT_C TInt ReleaseReserveAccess(TInt aDriveNo); IMPORT_C TInt GetBackupPath(TSecureId aRequesterSid, const TDesC& aDbName, TUid aDbPolicyUid, TDes& aBackupPath); IMPORT_C CDbStrings* BackupPathsL(TSecureId aRequesterSid, TUid aDbPolicyUid);private: TInt DoConnect(); TInt SessionMessage(TInt aFunction); TInt GetPolicy(TUid aPolicyUid, const TDesC& aTableName, TUint aMask, TSecurityPolicy& aPolicy); };class RDbNamedDatabase : public RDbDatabase {public: enum TAccess { EReadWrite, EReadOnly };public: IMPORT_C TInt Create(RDbs& aDbs, const TDesC& aDatabase, const TDesC& aFormat); IMPORT_C TInt Create(RFs& aFs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC()); IMPORT_C TInt Replace(RFs& aFs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC()); IMPORT_C TInt Open(RFs& aFs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC(),TAccess aMode=EReadWrite); IMPORT_C TInt Open(RDbs& aDbs,const TDesC& aDatabase,const TDesC& aFormat=TPtrC()); };class RDbStoreDatabase : public RDbDatabase {public: IMPORT_C TStreamId CreateL(CStreamStore* aStore); IMPORT_C void OpenL(CStreamStore* aStore,TStreamId anId); IMPORT_C static void CompressL(CStreamStore& aStore,TStreamId aId); IMPORT_C static void DecompressL(CStreamStore& aStore,TStreamId aId); };# 1 "X:/epoc32/include/d32dbms.inl" 1inline TDbCol::TDbCol(const TDesC &aName) : iName(aName) { }inline TDbCol::TDbCol(const TDbCol& aSrcCol) : iType(aSrcCol.iType), iMaxLength(aSrcCol.iMaxLength), iAttributes(aSrcCol.iAttributes), iName(static_cast <const TDesC&>aSrcCol.iName)) { } inline TDbCol& TDbCol::operator=(const TDbCol& aSrcCol) { iType = aSrcCol.iType; iMaxLength = aSrcCol.iMaxLength; iAttributes = aSrcCol.iAttributes; iName = static_cast <const TDesC&>aSrcCol.iName); return *this; }inline TBool TDbCol::IsLong(TDbColType aType) { return aType>=EDbColLongText8; }inline TInt CDbColSet::Count() const { return iColumns.Count(); }inline void CDbColSet::Clear() { iColumns.Reset(); }inline const TDbCol& CDbColSet::operator[](TDbColNo aCol) const { return iColumns[aCol-1]; }inline TDbColSetIter::operator TAny* () const { return (const_cast< TDbCol* > iColumn )); }inline const TDbCol& TDbColSetIter::operator*() const { ; return *iColumn; }inline const TDbCol* TDbColSetIter::operator->) const { ; return iColumn; }inline TDbColNo TDbColSetIter::Col() const { ; return iIndex+1; }inline TDbColSetIter TDbColSetIter::operator++(TInt) { TDbColSetIter tmp(*this); ++(*this); return tmp; }inline TDbKeyCol::TDbKeyCol(const TDbKeyCol& aSrcKeyCol) : iOrder(aSrcKeyCol.iOrder), iLength(aSrcKeyCol.iLength), iName(static_cast <const TDesC&>aSrcKeyCol.iName)) { } inline TDbKeyCol& TDbKeyCol::operator=(const TDbKeyCol& aSrcKeyCol) { iOrder = aSrcKeyCol.iOrder; iLength = aSrcKeyCol.iLength; iName = static_cast <const TDesC&>aSrcKeyCol.iName); return *this; }inline TInt CDbKey::Count() const { return iKeys.Count(); }inline const TDbKeyCol& CDbKey::operator[](TInt aCol) const { return iKeys[aCol]; }inline void CDbKey::MakeUnique() { iAttributes|=EUnique; }inline TBool CDbKey::IsUnique() const { return iAttributes&EUnique; }inline TBool CDbKey::IsPrimary() const { return iAttributes&EPrimary; }inline void CDbKey::SetComparison(TDbTextComparison aComparison) { iComparison=aComparison; }inline TDbTextComparison CDbKey::Comparison() const { return iComparison; }inline void CDbKey::MakePrimary() { iAttributes|=EPrimary; }inline TDbQuery::TDbQuery(const TDesC& aQuery,TDbTextComparison aComparison): iQuery(aQuery), iComparison(aComparison) { }inline const TDesC& TDbQuery::Query() const { return iQuery; }inline TDbTextComparison TDbQuery::Comparison() const { return iComparison; }inline RDbHandleBase::RDbHandleBase(): iObject(0) { }inline void RDbRowSet::BeginningL() { GotoL(EBeginning); }inline void RDbRowSet::EndL() { GotoL(EEnd); }inline TBool RDbRowSet::FirstL() { return GotoL(EFirst); }inline TBool RDbRowSet::LastL() { return GotoL(ELast); }inline TBool RDbRowSet::NextL() { return GotoL(ENext); }inline TBool RDbRowSet::PreviousL() { return GotoL(EPrevious); }inline TBool RDbRowSet::IsColNull(TDbColNo aCol) const { return ColSize(aCol)==0; }inline TInt RDbRowSet::ColInt(TDbColNo aCol) const { return ColInt32(aCol); }inline TUint RDbRowSet::ColUint(TDbColNo aCol) const { return ColUint32(aCol); }inline TReal RDbRowSet::ColReal(TDbColNo aCol) const { return ColReal64(aCol); }inline void RDbRowSet::SetColL(TDbColNo aCol,TInt aValue) { SetColL(aCol, TInt32(aValue)); }inline void RDbRowSet::SetColL(TDbColNo aCol,TUint aValue) { SetColL(aCol,TUint32(aValue)); }inline TDbWindow::TDbWindow(): iSize(ENone) { }inline TDbWindow::TDbWindow(TUnlimited): iSize(EUnlimited) { }inline TInt TDbWindow::Size() const { return iSize; }inline TInt TDbWindow::PreferredPos() const { return iPreferredPos; }template <class T>inline TUnion<T>::operator const T&() const { return *(const T*)&iRep[0]; }template <class T>inline const T& TUnion<T>::operator()() const { return *(const T*)&iRep[0]; }template <class T>inline T& TUnion<T>::operator()() { return *(T*)&iRep[0]; }template <class T>inline void TUnion<T>::Set(const T& aT) { new(&iRep[0]) T(aT); }inline TDbLookupKey::TDbLookupKey(): iCount(0) { }inline TInt TDbLookupKey::Count() const { return iCount; }inline const TDbLookupKey::SColumn* TDbLookupKey::First() const { return &iKey[0]; }inline TDbSeekKey::TDbSeekKey(): iMaxKeys(1) { }inline TDbSeekKey::TDbSeekKey(TInt aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TUint aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TInt64 aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TReal32 aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TReal64 aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TTime aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(const TDesC8& aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(const TDesC16& aKey): iMaxKeys(1) { Add(aKey); }inline TDbSeekKey::TDbSeekKey(TInt aKeys,TInt): iMaxKeys(aKeys) { }template <TInt S>inline TDbSeekMultiKey<S>::TDbSeekMultiKey(): TDbSeekKey(S,0) { }inline TInt RDbTable::SetIndex(const TDesC& anIndex) { return SetIndex(&anIndex); }inline TInt RDbTable::SetNoIndex() { return SetIndex(0); }inline RDbColWriteStream::RDbColWriteStream(const MExternalizer<TStreamRef> &anExternalizer): RWriteStream(anExternalizer) { }inline TInt CDbNames::Count() const { return iList.Count(); }inline const TDesC& CDbNames::operator[](TInt anIndex) const { return iList[anIndex]; }inline TInt RDbDatabase::CreateTable(const TDesC& aName,const CDbColSet& aColSet) { return CreateTable(aName,aColSet,NULL); }inline TInt RDbDatabase::CreateTable(const TDesC& aName,const CDbColSet& aColSet,const CDbKey& aPrimaryKey) { return CreateTable(aName,aColSet,&aPrimaryKey); }inline TInt RDbIncremental::Execute(RDbDatabase& aDatabase,const TDesC& aSql,TInt& aStep) { return Execute(aDatabase,aSql,EDbCompareNormal,aStep); }inline TInt CDbStrings::Count() const { return iList.Count(); }inline const TDesC& CDbStrings::operator[](TInt aIndex) const { return iList[aIndex]; }# 1485 "X:/epoc32/include/d32dbms.h" 2# 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectorydb.h" 2# 1 "X:/epoc32/include/flogger.h" 1#define __FLOGGER_H__const TInt KLogBufferSize=150;class FLogger {public: class TSignal { friend class FLogger; public: inline TSignal() {} inline TInt Set(const TDesC& aCommand); inline TSignal(TRequestStatus& aStatus); inline TPtrC Command() const; private: TRequestStatus* iStatus; TThreadId iId; };public: static TInt Start(); IMPORT_C static TInt Run(TSignal& aSignal);private: static TInt Init(); };enum TFileLoggingMode { EFileLoggingModeUnknown =0, EFileLoggingModeAppend, EFileLoggingModeOverwrite, EFileLoggingModeAppendRaw, EFileLoggingModeOverwriteRaw };class TLogFormatter16Overflow :public TDes16Overflow {public: virtual void Overflow(TDes16& aDes); };class TLogFormatter8Overflow :public TDes8Overflow {public: virtual void Overflow(TDes8& aDes); };class TLogFormatter {public: TLogFormatter(); void SetDateAndTime(TBool aUseDate,TBool aUseTime); TInt FormatTextToWritableBuffer(TDes8& aBuf, const TDesC16& aText) const; TInt FormatTextToWritableBuffer(TDes8& aBuf, const TDesC8& aText) const; TInt ConvertToWritableBuffer(TDes8& aBuf, TRefByValue<const TDesC16> aFmt, VA_LIST& aList); TInt ConvertToWritableBuffer(TDes8& aBuf, TRefByValue<const TDesC8> aFmt, VA_LIST& aList);private: void GetDateAndTimeL(TDes& aDate, TDes& aTime) const; void WriteL(TDes8& aTrg, const TDesC16& aSrc) const; void WriteL(TDes8& aTrg, const TDesC8& aSrc) const;private: TBool iUseDate; TBool iUseTime; TLogFormatter16Overflow iOverflow16; TLogFormatter8Overflow iOverflow8; };class TLogFile {public: TLogFile(); TLogFile(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode); TBool operator==(const TLogFile& aLogFile) const; void Set(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode); inline TBool Valid() const; inline TFileName Directory() const; inline TFileName Name() const; inline TFileLoggingMode Mode() const; inline void SetValid(TBool aValid);private: TBool iValid; TFileName iDirectory; TFileName iName; TFileLoggingMode iMode; };# 1 "X:/epoc32/include/flogger.inl" 1#define __FLOGGER_INL__inline FLogger::TSignal::TSignal(TRequestStatus& aStatus) :iStatus(&aStatus),iId(RThread().Id()) { aStatus=KRequestPending; }inline TPtrC FLogger::TSignal::Command() const { return TPtrC((const TText*)this,sizeof(*this)/sizeof(TText)); }inline TInt FLogger::TSignal::Set(const TDesC& aCommand) { if (aCommand.Size()!=sizeof(*this)) return KErrGeneral; return (Mem::Copy(this,aCommand.Ptr(),sizeof(*this)),KErrNone); }inline TBool TLogFile::Valid() const { return iValid; }inline TFileName TLogFile::Directory() const { return iDirectory; } inline TFileName TLogFile::Name() const { return iName; }inline TFileLoggingMode TLogFile::Mode() const { return iMode; } inline void TLogFile::SetValid(TBool aValid) { iValid=aValid; }# 156 "X:/epoc32/include/flogger.h" 2class RFileLogger : public RSessionBase {public: IMPORT_C RFileLogger(); IMPORT_C ~RFileLogger(); IMPORT_C TVersion Version() const; IMPORT_C TInt Connect(); IMPORT_C void SetDateAndTime(TBool aUseDate,TBool aUseTime); IMPORT_C void CreateLog(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode); IMPORT_C void CloseLog(); IMPORT_C void Write(const TDesC16& aText); IMPORT_C void WriteFormat(TRefByValue<const TDesC16> aFmt,...); IMPORT_C void WriteFormat(TRefByValue<const TDesC16> aFmt, VA_LIST& aList); IMPORT_C void Write(const TDesC8& aText); IMPORT_C void WriteFormat(TRefByValue<const TDesC8> aFmt,...); IMPORT_C void WriteFormat(TRefByValue<const TDesC8> aFmt, VA_LIST& aList); IMPORT_C void HexDump(const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen); IMPORT_C static void Write(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, const TDesC16& aText); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC16> aFmt,...); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC16> aFmt, VA_LIST& aList); IMPORT_C static void Write(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, const TDesC8& aText); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC8> aFmt,...); IMPORT_C static void WriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC8> aFmt, VA_LIST& aList); IMPORT_C static void HexDump(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen); IMPORT_C TInt LastError() const; IMPORT_C TBool LogValid() const; IMPORT_C TBool LogSTI() const;private: TInt DoConnect(); void DoWrite(const TDesC8& aBuf); void DoStaticWrite(const TDesC8& aBuf); void DoWriteFormat(TRefByValue<const TDesC16> aFmt, VA_LIST& aList); void DoWriteFormat(TRefByValue<const TDesC8> aFmt, VA_LIST& aList); static void DoStaticWriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC16> aFmt, VA_LIST& aList); static void DoStaticWriteFormat(const TDesC& aDir, const TDesC& aName, TFileLoggingMode aMode, TRefByValue<const TDesC8> aFmt, VA_LIST& aList); void DoHexDump(const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen);private: TLogFormatter iFormatter; TLogFile iLogFile; TInt iLastError; TBool iLogSTI; };# 27 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectorydb.h" 2class CUpnpElementBean;class CUpnpFilterElement;class CUpnpAttributeBean;class CUpnpObjectBean;class CUpnpDlnaProtocolInfo;class CUpnpShareMapBean;class CUpnpResourcesBean;class CUpnpMetadataStorage;class CUpnpContentDirectoryDb : public CBase{ public: static CUpnpContentDirectoryDb* NewLC(CUpnpMetadataStorage* aMetadataStorage); static CUpnpContentDirectoryDb* NewL(CUpnpMetadataStorage* aMetadataStorage); ~CUpnpContentDirectoryDb(); public: TUpnpErrorCode CheckObjectRestrictionL(TInt aObjId); TUpnpErrorCode InsertObjectL( RXmlEngDocument& aFragment, TInt aContainer, TInt* aId); TUpnpErrorCode GetObjectL( TInt aObjectID, RXmlEngDocument& aDoc, const TDesC8& aFilterString); TInt ReferedObjectIdL( TInt aObjectId ); TUpnpErrorCode GetObjectListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode DeleteObjectL(TInt aObjId,RArray<TInt>& aRefList, TBool aDeleteResource=ETrue); TUpnpErrorCode UpdateObjectL(TInt aObjId, RXmlEngDocument& aFragment); void DeleteResourceL(const TDesC8& aResVal, RArray<TInt>& aContIds); TUpnpErrorCode GetObjectByAttrL(RXmlEngDocument& aDoc, TInt* aObjId, const TDesC8& aAttrName, const TDesC8& aAttrVal); TUpnpErrorCode CheckParentRestrictionL(TInt aObjId); TInt GetObjIdByAttrL(const TDesC8& aAttrName, const TDesC8& aAttrVal); TInt GetObjIdByAttrLikeL(const TDesC8& aAttrName, const TDesC8& aAttrVal); RXmlEngDocument PrepareDidlDocumentL(); TInt GetProtocolInfoL(const TDesC8& aContentUri, CUpnpDlnaProtocolInfo*& aProtocolInfo); void GetObjectListL(const RArray<TInt>& aIds, const TDesC8& aFilter, RArray<RXmlEngDocument>& aObjs); TBool CanBeNestedL(TInt aObjId); void AddResourceL(CUpnpResourcesBean* aResBean, TInt aObjId); void DeleteResourceByResIdL(TInt64 aResId, TBool aDeleteFile = ETrue); void DeleteResourceByObjIdL(TInt aObjId, TBool aDeleteFile = ETrue); void NewMediaDirectoryL(const TDesC& aOldDir); CUpnpResourcesBean* GetResourceL(TInt64 aResId); CUpnpAttributeBean* GetAttrByNameL(TInt aElmId, const TDesC8& aAttrName, HBufC8*& aAttrVal); CUpnpAttributeBean* GetAttrByValueL(const TDesC8& aAttrName, const TDesC8& aAttrVal); HBufC8* GetProtocolInfoByImportUriL(const TDesC8& aImportUri); TInt GetKeyForUriL(); TInt GetObjectIdByElementValueLikeL(const TDesC8& aElmName, const TDesC8& aElmValue); TInt GetParentIdL(TInt aObjectId); TInt GetObjectIdL(); HBufC8* GetObjectTitleL(TInt aId); void CheckDatabaseL(); TInt HandleDbError( TInt aError ); TInt RecreateDatabaseFile(); TBool IsDbCreated(); private: CUpnpObjectBean* GetObjBeanLC(TInt aObjId); void GetObjectsByResourceL(RArray<TInt>& aIds, const TDesC& aResVal); TInt GetElmIdByNameAndValL(const TDesC& aElmName, const TDesC& aElmValue); void GetAttrValueByNameL(TInt aElmId, const TDesC8& aAttrName, HBufC8*& aAttrVal); void DeleteResourcesL(TInt aObjId); void DoDeleteResourceL(const TDesC8& aResVal, RArray<TInt>& aContIds); void SetChildCountL(TXmlEngElement aElement, TInt aId); void AddAllPropertiesL(TXmlEngElement aElement, CUpnpObjectBean* aObjBean); void AddAttributeL( TXmlEngElement aElement, const TDesC8& aAttrName, TInt aElementId, TInt aObjectId ); TUpnpErrorCode AddRequestedPropertiesL(TInt aObjectID,TXmlEngElement aElement, const RPointerArray<CUpnpFilterElement>& aFilterElements); void AddElementL(TXmlEngElement aElement, TInt aObjectID, const CUpnpFilterElement* aReqElement); TUpnpErrorCode AddRequiredPropertyL(TXmlEngElement aElement, TInt aObjId, CUpnpFilterElement* aFilterElement); void ParseFilterStringL(const TDesC8& aFilter, RPointerArray<CUpnpFilterElement>& aList); TUpnpErrorCode DoGetObjectL(TInt aObjectID, RXmlEngDocument& aDoc, TBool aAll); TUpnpErrorCode InsertElementL(const TXmlEngElement& aElementel, TInt aObjId); TUpnpErrorCode DoUpdateObjectL(TInt aObjId, TXmlEngElement aFragment); TUpnpErrorCode InsertUpdatedL(TInt aObjId, TXmlEngElement& aElement); TInt SetObjectIdL(TXmlEngElement& aElement); TUpnpErrorCode DoInsertObjectL( TXmlEngElement& aElement, TInt aContainerId, TInt* aId); TUpnpErrorCode InsertAttributesL(const TXmlEngElement aElement, TInt aElmId,TInt aObjId); TBool IsAttrRequiredL(const TXmlEngAttr& aAttr, RArray<TXmlEngAttr>& aMarkers); CUpnpContentDirectoryDb(CUpnpMetadataStorage* aMetadataStorage); void ConstructL(); void ConstructDbL(const TFileName& aDatabaseFileName); void OpenDbL( const TFileName& aDatabaseFileName ); void AddElementsL( TInt aObjectID, TXmlEngElement aObjectElement, TBool aAll ); void AddAttributesL( TInt aElementID, TInt aObjectID, TXmlEngElement& aElement, TBool aAll ); private: CUpnpMetadataStorage* iMetadataStorage; RXmlEngDOMImplementation iDOMImpl; };# 43 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpfiletransfertimerobserver.h" 1#define C_CUPNPFILETRANSFERTIMEROBSERVER_Hclass CUpnpContentDirectory;class MUpnpContentDirectoryEventObserver;class CUpnpFileTransferTimerObserver;const TInt KFileTransferStorageTime = 30000000;class MUpnpFileTransferTimerObserver {public: virtual void TransferEvent( CUpnpFileTransferTimerObserver* aTimer ) = 0; };class CUpnpFileTransferTimerObserver : public CBase, public MUpnpNotifyTimerObserver{public: static CUpnpFileTransferTimerObserver* NewLC( MUpnpFileTransferTimerObserver* aCd, TInt aTransferId); virtual ~CUpnpFileTransferTimerObserver();private: CUpnpFileTransferTimerObserver( MUpnpFileTransferTimerObserver* aCd, TInt aTransferId ); void ConstructL();public: void TimerEventL( CUpnpNotifyTimer* aTimer ); TInt TransferId(); private: MUpnpFileTransferTimerObserver* iCd; CUpnpNotifyTimer* iEventTimer; TInt iTransferId; }; # 44 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnperror.h" 1#define C_TUPNPERROR_Hclass TUpnpError{public: TUpnpError(TInt aErrCode); operator TUpnpErrorCode(); private: TUpnpErrorCode iUpnpErrCode;}; # 45 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/inc/upnpcustomlog.h" 1#define C_UPNPCUSTOMLOG_H #define UPNP_LOGconst static TLitC<sizeof(L"upnp" )/2> KLogFolder ={sizeof(L"upnp" )/2-1,L"upnp" };const TInt KMaxLogLen = 256; #define LOGT(A)#define LOGS(A)#define LOGS1(A,B)#define LOGS2(A,B,C)#define LOGM#define ACTIONSEND(A)#define ACTIONRECV(A,B)#define LOGTH(H,A)#define LOGSH(H,A)#define LOGS1H(H,A,B)#define LOGS2H(H,A,B,C)#define LOGCD(A,B,C,D)#define LOGSQL(A,B,C,D)#define LOGTIME#define LOG(x)#define LOG8(x)#define LOG16(x)#define LOG_FUNC_NAME# 46 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.h" 1#define UPNPRESOURCESBEAN_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptablebean.h" 1#define C_CUPNPTABLEBEAN_Hclass CUpnpTableBean : public CBase{ public: static const TInt KUndef = -1; protected: virtual ~CUpnpTableBean(); CUpnpTableBean(); HBufC8* ReadLongTextColL(const RDbRowSet& aRowSet, const TInt aColNo);}; # 23 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.h" 2class CUpnpElement;class CUpnpResourcesBean: public CUpnpTableBean { public: static CUpnpResourcesBean* NewLC(); static CUpnpResourcesBean* NewL(const RDbRowSet& aRowSet); static CUpnpResourcesBean* NewLC(const RDbRowSet& aRowSet); virtual ~CUpnpResourcesBean(); public: void SetL(const RDbRowSet& aRowSet); void SetId(TInt64 aId); void SetObjectId(TInt aObjectId); void SetPathL(const TDesC& aPath); void SetPathL(const TDesC8& aPath); void SetIsReadonly(TBool aIsReadonly); void SetIsThumbnail(TBool aIsThumbnail); TInt64 Id() const; TInt ObjectId() const; TDesC& Path() const; TInt IsReadonly() const; TInt IsThumbnail() const; private: CUpnpResourcesBean(); void ConstructL(); private: TInt64 iId; TInt iObjectId; HBufC* iPath; TInt iIsReadonly; TInt iIsThumbnail;};# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.inl" 1inline void CUpnpResourcesBean::SetId(TInt64 aId){ iId = aId;}inline void CUpnpResourcesBean::SetObjectId(TInt aObjectId){ iObjectId = aObjectId;}inline void CUpnpResourcesBean::SetIsReadonly(TBool aIsReadonly){ iIsReadonly = aIsReadonly;}inline void CUpnpResourcesBean::SetIsThumbnail(TBool aIsThumbnail){ iIsThumbnail = aIsThumbnail;}inline TInt64 CUpnpResourcesBean::Id() const{ return iId;}inline TInt CUpnpResourcesBean::ObjectId() const{ return iObjectId;}inline TDesC& CUpnpResourcesBean::Path() const{ return *iPath;}inline TInt CUpnpResourcesBean::IsReadonly() const{ return iIsReadonly;}inline TInt CUpnpResourcesBean::IsThumbnail() const{ return iIsThumbnail;}# 158 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpresourcesbean.h" 2# 49 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcdutils.h" 1#define CDUTILS_Hclass UpnpCdUtils{ public: static void ValidateFilePath(TDes8& aPath); static void ValidateFilePath(TDes& aPath); static void ValidateSrcUriL(TDesC8& aPath,TDesC8& aIp); static void RemoveWhiteSpacesL(TDes8& aString); static TBool IsWhiteString(const TDesC8& aString); static TXmlEngElement GetObjectElementL(RXmlEngDocument& aFragment); static TBool HasRefIdL( RXmlEngDocument& aFragment ); static HBufC8* EncodeXmlStringL(const TDesC8& aString); static HBufC* Des8ToDesL(const TDesC8& aString); static HBufC* Des8ToDesLC(const TDesC8& aString); static HBufC8* DesToDes8LC(const TDesC& aString); static TInt64 ResIdFromUriL(const TDesC8& aUri); static TPtrC8 ResIdFromUriDesL(const TDesC8& aUri); static void SetObjectIdL(TXmlEngElement aElement, TInt aId); static void SetObjectRefIdL(TXmlEngElement aElement, TInt aRefId); static void SetObjectParentIdL(TXmlEngElement aElement, TInt aParentId); static void SetRestrictedFieldL( TXmlEngElement aElement, TBool aRestrictedFlag ); static void SetContainerIdL(TXmlEngElement aElement, TInt aParentId); static HBufC8* BuildImportUriLC(TInt aResId); static HBufC8* BuildImportUriShorterLC(TInt64 aResId); static HBufC8* BuildContentUriL(TInt aResId, const TDesC& aFileExten, TDesC8& aObjectId); static HBufC8* UpnpCdUtils::RandomizeL(TInt aRange); static TBool IsElementRequiredL(TXmlEngElement aElement); static void ReplaceTrueFalse(HBufC8* aBuf); static HBufC8* GetElmNameWithNsL(TXmlEngElement aElement); static HBufC* EscapeAposL(const TDesC& aValue); static TBool ValidateDateL( TPtrC8 aValue ); static TInt StringToTUint(const TDesC8& aStr, TUint* aInt); static TBool AreDigitsInSpecificRange(const TDesC8& aInput, TInt aNumber, TBool aExactDigitsNumber, TUint32 aRange); static TBool ValidateDurationValue(const TDesC8& aInput); static void SplitStringByDelimeter(TLex8& aLexeme, TChar aDelimeter); static void Skip(TLex8& aLexer, TInt aValue); static TInt StringToInteger(const TDesC8& aStr, TInt* aInt); private: enum TPlaces { EYear = 4, EMonth = 7, EDay = 10, EHour = 13, EMinute = 16, ESecond = 19, EZone1 = 20, EHourOffset1 = 22, EMiliSecond = 23, EZone2 = 24, ETimeOffset1 = 25, EHourOffset2 = 26, ETimeOffset2 = 29 }; UpnpCdUtils();}; # 50 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmetadatastorage.h" 1#define UPNPMETADATASTORAGE_Hclass CUpnpObjectBean;class CUpnpElementBean;class CUpnpAttributeBean;class CUpnpResourcesBean;class CUpnpMetadataStorage : public CBase{public: static CUpnpMetadataStorage* NewL(const TDesC& aDatabaseFileName); static CUpnpMetadataStorage* NewLC(const TDesC& aDatabaseFileName); virtual ~CUpnpMetadataStorage();public: TBool IsContainerL(TInt aObjId); void DeleteResourcesL(RArray<TInt>& aObjList); void AddResourceL(CUpnpResourcesBean* aResBean, TInt aObjId); TUpnpErrorCode DoDeleteObjectL(TInt aObjId, TBool aDeleteResource, TBool aDeleteRef=ETrue ); void InsertIntoAttributeTableL(TInt aElmId, CUpnpAttributeBean* aAtrBn, TInt aObjId, TInt aAtrId); TInt InsertIntoElementTableL(TInt aObjId, CUpnpElementBean* aElmBn, TInt aElmId); TInt InsertIntoObjectTableL(TInt aContainer, CUpnpObjectBean* aObjBn); RDbView GetObjViewL(TInt aObjId); void BeginTransactionL(); void CommitTransactionL(); void RollbackTransactionL(); RDbView GetElementsViewL(TInt aObjectID, TBool aAll); RDbView GetAttributesViewL(TInt aElementID, TBool aAll); RDbView GetAttributesViewByObjectIdL( TInt aObjectID, TBool aAll ); TInt GetElmIdForAttrL(const TDesC8& aAttrName, const TDesC8& aAttrVal); TInt GetElmIdForAttrLikeL(const TDesC8& aAttrName, const TDesC8& aAttrVal); void DeleteResElL(const TDesC& aResVal, TInt ObjId); RDbView GetViewOfObjectListForResL(const TDesC& aResVal); RDbView GetViewOfElmIdByNameAndValL(const TDesC& aElmName, const TDesC& aElmValue); RDbView GetAttrViewL(const TDesC8& aAttrName, const TDesC8& aAttrVal); RDbView GetAttrViewL(TInt aElmId, const TDesC8& aAttrName); RDbView GetAttrViewByObjectIdL(TInt aBjectId, const TDesC8& aAttrName); RDbView PrepareViewL(const TDesC& aSqlQuery); RDbView GetEvaluatedViewL(const TDesC& aSqlQuery); HBufC8* GetObjectPathL(TInt aObjId); HBufC8* GetObjectTitleL(TInt aObjId); void ExecuteL(const TDesC& aSqlCommand); CUpnpResourcesBean* GetResourceL(TInt64 aResId); void DeleteResourceByObjIdL(TInt aObjId, TBool aDeleteFile=ETrue); void DeleteResourceByResIdL(TInt64 aResId, TBool aDeleteFile=ETrue); void DeleteObjectsL(TInt aObjId); void DeleteElementsL(TInt aObjId); void DeleteAttributesL(TInt aObjId); void DeleteReferencesL(TInt aObjId,RArray<TInt>& aRefList); TInt DoDeleteObjectL(TInt aObjId,RArray<TInt>& aRefList, RArray<TInt>& aResList, TBool aDeleteResource, TBool aLocal, TBool aDeleteRef = ETrue ); TUpnpErrorCode CheckParentRestrictionL(TInt aObjId); TUpnpErrorCode DeleteObjectL(TInt aObjId,RArray<TInt>& aRefList, TBool aDeleteResource, TBool aLocal = EFalse, TBool aDeleteRef = ETrue ); HBufC8* GetColDesValFromRowSetL(RDbRowSet aRowset, TDbColNo aColNo); TInt GetChildCountL(TInt aObjId); TInt GetParentIdL(TInt aObjId); TInt GetObjIdForElmIdL(TInt aId); TInt ReferedObjectIdL( TInt aObjectId ); TInt GetNextKeyL(const TDesC8& aName); TInt GetNextKeyL(const TDesC8& aName, TInt aAmount); TInt NextKeyL(const TDesC8& aName); void InsertObjectIntoObjectTableL(const TXmlEngElement& aElement); void InsertAttributeL(const TXmlEngAttr aAttr, TInt aElmId, TBool aIsRequired, TInt aObjId); TInt InsertElementL(const TXmlEngElement& aElementel, TInt aObjId); RDbView GetElementViewL(TInt aObjId, const TDesC8& aElName); TUpnpErrorCode AddMainTagAttrL(TXmlEngElement aElement, TInt aId, const TDesC8& aName); TUpnpErrorCode GetObjectListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode GetItemListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode GetContainerListL(TInt aParentId, RArray<TInt>& aList); TUpnpErrorCode CheckObjectRestrictionL(TInt aObjId); TInt RecoverDatabase(); void RecreateDatabaseFileL(); void CheckDatabaseL(); TInt HandleDbError( TInt aError ); TBool IsDbCreated(); private: CUpnpMetadataStorage(); void ConstructL(const TDesC& aDatabaseFileName);private: void CompactDbL(); TInt AddSubObjectsL(TInt aObjId, RArray<TInt>& aObjList, RArray<TInt>& aResList, TBool aLocal); void CompareDbColSetsL( CDbColSet *aColSet1, CDbColSet *aColSet2 ); void DeleteFileL(const TDesC& aPath); HBufC8* CreatePathValL(const TXmlEngElement& aElement); HBufC8* CreatePathValL(TInt aParentId); void OpenDbL( const TFileName& aDatabaseFileName ); void DbChangedL(TInt aWeight);private: RFs iFsSession; RDbStoreDatabase iDatabase; TBool iIsOpen; CFileStore* iFileStore; TInt iCompactCounter;}; # 51 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpautodestroyobjectlist.h" 1#define C_CUPNPAUTODESTROYOBJECTLIST_Hclass CUpnpAutoDestroyObject;class CUpnpAutoDestroyObjectList: public CBase{public: static CUpnpAutoDestroyObjectList* NewL(); static CUpnpAutoDestroyObjectList* NewLC(); virtual ~CUpnpAutoDestroyObjectList();public: void AppendL(const CUpnpAutoDestroyObject* aObj); void RemoveAndDestroyL(TInt aIndex); TInt FindObjIndexByObjId(TInt aObjId); TInt FindObjIndexByResId(TInt aResId); CUpnpAutoDestroyObject* operator[](TInt aIndex); void TransferFailL(TInt aResId); TInt Count();private: CUpnpAutoDestroyObjectList(); void ConstructL();private:private: RPointerArray<CUpnpAutoDestroyObject> iArray;}; # 52 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpautodestroyobject.h" 1#define C_CUPNPAUTODESTROYOBJECT_Hclass CUpnpContentDirectory;class CUpnpNotifyTimer;class CUpnpAutoDestroyObject: public CBase, public MUpnpNotifyTimerObserver{public: static CUpnpAutoDestroyObject* NewL(CUpnpContentDirectory* aCd, TInt aObjId, TInt aResId ); static CUpnpAutoDestroyObject* NewLC(CUpnpContentDirectory* aCd, TInt aObjId, TInt aResId ); virtual ~CUpnpAutoDestroyObject();public: virtual void TimerEventL(CUpnpNotifyTimer* aTimer); TInt GetResId(); TInt GetObjId(); void SetTransferStartedL(TBool aVal); void RenewTimerL(); private: CUpnpAutoDestroyObject(CUpnpContentDirectory* aCd, TInt aObjId, TInt aResId); void ConstructL();private: CUpnpContentDirectory* iCd; CUpnpNotifyTimer* iEventTimer; TInt iResId; TInt iObjectId; TBool iTransferStarted; TBool iTimeElapsed;}; # 53 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectoryeventobserver.h" 1#define C_CUPNPCONTENTDIRECTORYEVENTOBSERVER_Hclass CUpnpFileTransferEvent;class MUpnpContentDirectoryEventObserver {public: virtual void FileTransferEvent(CUpnpFileTransferEvent *aMessage) = 0; };# 54 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpfiletransferevent.h" 1#define C_CUPNPFILETRANSFEREVENT_H# 1 "X:/epoc32/include/s32mem.h" 1#define __S32MEM_H__class TMemBuf : public TStreamBuf {public: IMPORT_C TMemBuf(); IMPORT_C void Set(TUint8* aPtr,TUint8* anEnd,TInt aMode=ERead|EWrite);protected: IMPORT_C TInt UnderflowL(TInt aMaxLength); IMPORT_C void OverflowL(); IMPORT_C TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);private: inline TUint8* Base() const; inline TUint8* End() const;private: TUint8* iBase; };class TDesBuf : public TStreamBuf {public: IMPORT_C TDesBuf(); IMPORT_C void Set(TDes8& aDes,TInt aMode=ERead|EWrite);protected: IMPORT_C TInt UnderflowL(TInt aMaxLength); IMPORT_C void OverflowL(); IMPORT_C void DoSynchL(); IMPORT_C TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);private: inline TDes8& Des() const; inline TUint8* Base() const; void Consolidate();private: TDes8* iDes; };class TBufBuf : public TStreamBuf {public: enum {ETruncate=0x10,EInsert=0x20};public: IMPORT_C TBufBuf(); IMPORT_C void Set(CBufBase& aBuf,TInt aPos,TInt aMode=ERead|EWrite);protected: IMPORT_C TInt UnderflowL(TInt aMaxLength); IMPORT_C void OverflowL(); IMPORT_C void DoSynchL(); IMPORT_C void DoWriteL(const TAny* aPtr,TInt aLength); IMPORT_C TStreamPos DoSeekL(TMark aMark,TStreamLocation aLocation,TInt anOffset);private: inline CBufBase& Buf() const; void Consolidate(); void SetPos(TMark aMark,TInt aPos); inline void SetPos(TRead,TInt aPos); inline void SetPos(TWrite,TInt aPos); TInt Pos(TMark aMark) const; inline TInt Pos(TRead) const; inline TInt Pos(TWrite) const; inline TInt MovePos(TRead,TInt anOffset); inline TInt MovePos(TWrite,TInt anOffset); inline TInt Mark(TRead) const; inline TInt Mark(TWrite) const;private: CBufBase* iBuf; TInt iRPos; TInt iWPos; TInt iMode; };class RMemReadStream : public RReadStream {public: RMemReadStream() {} IMPORT_C RMemReadStream(const TAny* aPtr,TInt aLength); IMPORT_C void Open(const TAny* aPtr,TInt aLength);private: TMemBuf iSource; };class RMemWriteStream : public RWriteStream {public: RMemWriteStream() {} inline RMemWriteStream(const MExternalizer<TStreamRef>& anExter); IMPORT_C RMemWriteStream(TAny* aPtr,TInt aMaxLength); IMPORT_C void Open(TAny* aPtr,TInt aMaxLength);private: TMemBuf iSink; };class RDesReadStream : public RReadStream {public: RDesReadStream() {} IMPORT_C RDesReadStream(const TDesC8& aDes); IMPORT_C void Open(const TDesC8& aDes);private: TMemBuf iSource; };class RDesWriteStream : public RWriteStream {public: RDesWriteStream() {} inline RDesWriteStream(const MExternalizer<TStreamRef>& anExter); IMPORT_C RDesWriteStream(TDes8& aDes); IMPORT_C void Open(TDes8& aDes);private: TDesBuf iSink; };class RBufReadStream : public RReadStream {public: RBufReadStream() {} IMPORT_C RBufReadStream(const CBufBase& aBuf,TInt aPos=0); IMPORT_C void Open(const CBufBase& aBuf,TInt aPos=0);private: TBufBuf iSource; };class RBufWriteStream : public RWriteStream {public: RBufWriteStream() {} inline RBufWriteStream(const MExternalizer<TStreamRef>& anExter); IMPORT_C RBufWriteStream(CBufBase& aBuf,TInt aPos=0); IMPORT_C void Open(CBufBase& aBuf,TInt aPos=0); IMPORT_C void Truncate(CBufBase& aBuf,TInt aPos=0); IMPORT_C void Insert(CBufBase& aBuf,TInt aPos); inline void Append(CBufBase& aBuf);private: TBufBuf iSink; };class CBufStore : public CStreamStore {public: IMPORT_C static CBufStore* NewL(TInt anExpandSize); IMPORT_C static CBufStore* NewLC(TInt anExpandSize); IMPORT_C CBufStore(TInt anExpandSize); IMPORT_C ~CBufStore();protected: IMPORT_C TStreamId DoExtendL(); IMPORT_C void DoDeleteL(TStreamId anId); IMPORT_C MStreamBuf* DoReadL(TStreamId anId) const; IMPORT_C MStreamBuf* DoCreateL(TStreamId& anId); IMPORT_C MStreamBuf* DoWriteL(TStreamId anId); IMPORT_C MStreamBuf* DoReplaceL(TStreamId anId);private: CBufSeg& BufL(TStreamId anId) const;private: CArrayFixFlat<CBufSeg*> iBufArray; TInt iExpandSize; };# 1 "X:/epoc32/include/s32mem.inl" 1inline RMemWriteStream::RMemWriteStream(const MExternalizer<TStreamRef>& anExter) : RWriteStream(anExter) {}inline RDesWriteStream::RDesWriteStream(const MExternalizer<TStreamRef>& anExter) : RWriteStream(anExter) {}inline RBufWriteStream::RBufWriteStream(const MExternalizer<TStreamRef>& anExter) : RWriteStream(anExter) {}inline void RBufWriteStream::Append(CBufBase& aBuf) {Insert(aBuf,aBuf.Size());}# 351 "X:/epoc32/include/s32mem.h" 2# 24 "X:/epoc32/include/platform/mw/upnpfiletransferevent.h" 2# 1 "X:/epoc32/include/platform/mw/upnpmediaserverevent.h" 1#define C_CUPNPMEDIASERVEREVENT_Hclass CUpnpMediaServerEvent : public CBase{public: CUpnpMediaServerEvent(TInt aType); virtual ~CUpnpMediaServerEvent(); TInt GetEventType(); virtual void InternalizeL( RReadStream& aStream ) = 0; virtual void ExternalizeL( RWriteStream& aStream ) const = 0;protected: TInt iEventType;};# 25 "X:/epoc32/include/platform/mw/upnpfiletransferevent.h" 2class CUpnpMediaServerEvent;class CUpnpFileTransferEvent : public CUpnpMediaServerEvent{public: enum TProgressState { EStarted, ECompleted, EFailed, EStopped }; enum TDirection { EIncoming, EOutgoing, }; public: IMPORT_C static CUpnpFileTransferEvent* NewL(); IMPORT_C static CUpnpFileTransferEvent* NewLC(); virtual ~CUpnpFileTransferEvent(); IMPORT_C TProgressState ProgressState(); IMPORT_C void SetProgressState( TProgressState aState ); IMPORT_C TDirection Direction(); IMPORT_C void SetDirection( TDirection aState ); IMPORT_C TInt TransferId(); IMPORT_C void SetTransferId( TInt aTransferId ); IMPORT_C TInt ContentDirectoryObjectId(); IMPORT_C void SetContentDirectoryObjectId( TInt aObjectId ); IMPORT_C TDesC& FilePath(); IMPORT_C void SetFilePathL(const TDesC& aFile); IMPORT_C TInt ErrorCode(); IMPORT_C void SetErrorCode( TInt aError ); IMPORT_C CUpnpFileTransferEvent* CloneL(); IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; IMPORT_C void InternalizeL( RReadStream& aStream ); private: void ConstructL(); CUpnpFileTransferEvent(); private: TInt iProgress; TInt iDirection; TInt iContentDirectoryObjectId; HBufC* iFilePath; TInt iTransferId; TInt iErrorCode;};# 55 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/inc/upnpprotocolinfolocal.h" 1#define C_CUPNPPROTOCOLINFOLOCAL_H const static TLitC8<sizeof( "1" )> KOneChar ={sizeof( "1" )-1, "1" }; const static TLitC8<sizeof( "0" )> KZeroChar ={sizeof( "0" )-1, "0" }; const static TLitC8<sizeof( "http-get" )> KDEFAULT_1ST_PARAM ={sizeof( "http-get" )-1, "http-get" }; const static TLitC8<sizeof( "*" )> KDEFAULT_STAR_PARAM ={sizeof( "*" )-1, "*" }; const char KDlnaDelimeter = ';'; const char KDlnaTokenizer = '='; const char KDlnaAllStar = '*'; const TInt KMAX_INT_LENGTH_STRING = 8 ; const TInt KDLNA_FLAGS_NUMBER = 4; const TInt K32BIT = 32; const TInt KDLNA_FLAGS_QUANTITY = KDLNA_FLAGS_NUMBER * K32BIT; const static TLitC8<sizeof( "*" )> KAllValues ={sizeof( "*" )-1, "*" }; const static TLitC8<sizeof( "DLNA.ORG_PN" )> KDLNA_PN ={sizeof( "DLNA.ORG_PN" )-1, "DLNA.ORG_PN" }; const static TLitC8<sizeof( "DLNA.ORG_OP" )> KDLNA_OP ={sizeof( "DLNA.ORG_OP" )-1, "DLNA.ORG_OP" }; const static TLitC8<sizeof( "DLNA.ORG_PS" )> KDLNA_PS ={sizeof( "DLNA.ORG_PS" )-1, "DLNA.ORG_PS" }; const static TLitC8<sizeof( "DLNA.ORG_CI" )> KDLNA_CI ={sizeof( "DLNA.ORG_CI" )-1, "DLNA.ORG_CI" }; const static TLitC8<sizeof( "DLNA.ORG_FLAGS" )> KDLNA_FLAGS ={sizeof( "DLNA.ORG_FLAGS" )-1, "DLNA.ORG_FLAGS" }; const char KDLNA_BOOLEAN_FALSE = '0'; const char KDLNA_BOOLEAN_TRUE = '1'; enum ADDITIONAL_INFO { NO_DLNA_DATA = -1, NO_ADDITIONAL_INFO = 0, JPEG_SM = 1, JPEG_MED, JPEG_LRG, JPEG_TN, JPEG_SM_ICO, JPEG_LRG_ICO, PNG_TN, PNG_SM_ICO, PNG_LRG_ICO, PNG_LRG, MP3, }; const static TLitC8<sizeof( "image/jpeg" )> KMT_IMAGE_JPEG ={sizeof( "image/jpeg" )-1, "image/jpeg" }; const static TLitC8<sizeof( "image/png" )> KMT_IMAGE_PNG ={sizeof( "image/png" )-1, "image/png" }; const static TLitC8<sizeof( "image/gif" )> KMT_IMAGE_GIF ={sizeof( "image/gif" )-1, "image/gif" }; const static TLitC8<sizeof( "image/bmp" )> KMT_IMAGE_BMP ={sizeof( "image/bmp" )-1, "image/bmp" }; const static TLitC8<sizeof( "audio/mpeg" )> KMT_AUDIO_MP3 ={sizeof( "audio/mpeg" )-1, "audio/mpeg" }; const static TLitC8<sizeof( "text/plain" )> KMT_TEXT_PLAIN ={sizeof( "text/plain" )-1, "text/plain" }; const static TLitC8<sizeof( "image" )> KMimeImage ={sizeof( "image" )-1, "image" }; const static TLitC8<sizeof( "audio" )> KMimeAudio ={sizeof( "audio" )-1, "audio" }; const static TLitC8<sizeof( "video" )> KMimeVideo ={sizeof( "video" )-1, "video" }; const static TLitC8<sizeof( "*DLNA.ORG_OP=??*" )> KDEFAULT_FOURTH_FIELD_OP_PATTERN ={sizeof( "*DLNA.ORG_OP=??*" )-1, "*DLNA.ORG_OP=??*" }; const static TLitC8<sizeof( "*DLNA.ORG_FLAGS=????????????????????????????????*" )> KDEFAULT_FOURTH_FIELD_AVIMAGE_PATTERN ={sizeof( "*DLNA.ORG_FLAGS=????????????????????????????????*" )-1, "*DLNA.ORG_FLAGS=????????????????????????????????*" }; class CUpnpProtocolInfoLocal: public CUpnpDlnaProtocolInfo{ private: CUpnpProtocolInfoLocal(); public: virtual ~CUpnpProtocolInfoLocal(); IMPORT_C static CUpnpProtocolInfoLocal* NewL(const TDesC8& aInputString); IMPORT_C static CUpnpProtocolInfoLocal* NewL(const TDesC8& aMimeType, TInt aAdditionalInfo); IMPORT_C static CUpnpProtocolInfoLocal* NewL(const TDesC8& aMimeType, const TDesC8& aDlnaPn); private: void ConstructL(const TDesC8& aInputString); void ConstructFromDlnaPnL(const TDesC8& aMimeType, const TDesC8& aDlnaPn); void ConstructL(const TDesC8& aMimeType, TInt aAdditionalInfo); private: void ChooseDlnaL(const TDesC8& aMimeType, TInt aAdditionalInfo); void DefaultValuesL(); void FillAccordingToAddInfoL(TInt aAdditionalInfo); void FillAccordingToMimeL(const TDesC8& aMimeType); void ZeroParameters(); void SetDefaultFourthField(); virtual void GetFourthParameterInternalL(TDes8& aBuffer); };# 57 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpxmlcontentfilter.h" 1# 1 "X:/epoc32/include/xmlengnodefilter.h" 1# 23 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpxmlcontentfilter.h" 2class CUpnpXmlContentFilter : public CBase, MXmlEngNodeFilter {public: virtual TXmlEngNodeFilterResult AcceptNode(TXmlEngNode aNode); public: static HBufC8* SerializeLC(RXmlEngDocument& aDoc, TXmlEngElement& aElement ); };# 58 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpstatehandler.h" 1#define C_CUPNPSTATEHANDLER_Hclass TUpnpContainerUpdateId;class CUpnpContentDirectory;class CUpnpStateHandler : public CBase { public: CUpnpStateHandler ( ); ~CUpnpStateHandler (); public: static CUpnpStateHandler* NewL(CUpnpContentDirectory* aCd); void ConstructL(CUpnpContentDirectory* aCd); TInt IncreaseSystemUpdateIdL(); void IncreaseContainerUpdateIdL( const TDesC8& aContainerID ); RArray<TUpnpContainerUpdateId>& ContainerUpdateIds( ); TInt ContainerUpdateId( const TDesC8& aContainerID ); void StateVariableEvented(const TDesC8& aVariableName); TBool IsEnable(); private: RArray<TUpnpContainerUpdateId> iContainerUpdateIds; TUint iSystemUpdateId; RArray<TUpnpContainerUpdateId> iCurrentContainerUpdateIds; TBool iContainerUpdateIdsEvented; CUpnpContentDirectory* iCd; }; # 59 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferuploader.h" 1#define C_CUPNPTRANSFERUPLOADER_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferbase.h" 1#define C_CUPNPTRANSFERBASE_H# 1 "X:/epoc32/include/platform/mw/httptransferobserver.h" 1#define C_MHTTPTRANSFEROBSERVER_Hclass MHttpTransferObserver {public: virtual void TransferProgress( TAny* aKey, TInt aBytes, TInt aTotalBytes )=0; virtual void ReadyForTransferL( TAny* aKey )=0; virtual void TransferCompleted( TAny* aKey, TInt aStatus )=0; };# 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferbase.h" 2class CUpnpContentDirectory;class CHttpTransferBase;class MUpnpTransferObserver;const TInt KDefaultAccessPoint = 11;const TInt KDefaultBuffer = 64000;const TInt KNumOfConcurrentTransactions = 2;class CUpnpTransferBase: public CBase , public MHttpTransferObserver{public: virtual ~CUpnpTransferBase(); virtual void ReadyForTransferL( TAny* aKey); virtual void TransferProgress( TAny* aKey, TInt aBytes, TInt aTotalBytes ); virtual void TransferCompleted( TAny* aKey, TInt aStatus ); public: void CreateAndQueueHttpFileL( const TDesC8& aUri, const TDesC& aTargetPath, TInt aKey ); void SetHeaderL( TInt aKey, const TDesC8& aFieldName, const TDesC8& aFieldValue ); void TrackProgess(TInt aKey, TBool aSwitchOn); virtual void CancelTransfer( TInt aKey); protected: CUpnpTransferBase( MUpnpTransferObserver* aCd ); TInt MapStatus( TInt aErrorCode ); protected: MUpnpTransferObserver* iObserver; CHttpTransferBase* iHttpTransferBase; };# 23 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferuploader.h" 2class CHttpUploader;class CUpnpTransferUploader: public CUpnpTransferBase{public: static CUpnpTransferUploader* NewLC( MUpnpTransferObserver* aCd ); static CUpnpTransferUploader* NewL( MUpnpTransferObserver* aCd ); virtual ~CUpnpTransferUploader(); public: void UploadFileL(TInt aKey); void DownloadFileL(const TDesC8& aUri, const TDesC& aTargetPath, TInt aKey); void UploadFileL( const TDesC8& aUri,const TDesC& aTargetPath, const TDesC8& aContentType, TInt aKey); private: CUpnpTransferUploader( MUpnpTransferObserver* aCd ); void ConstructL(); private: };# 60 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmimemapper.h" 1#define UPNPMIMEMAPPER_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmap.h" 1#define UPNPMAP_H# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmapelement.h" 1#define UPNPMAPELEMENT_Hclass CUpnpElement;class CUpnpObject;class CUri8;class CUpnpMapElement: public CBase {public: static CUpnpMapElement* NewLC(const TDesC8& aKey, TAny* aValue); static CUpnpMapElement* NewL(const TDesC8& aKey, TAny* aValue); virtual ~CUpnpMapElement();public: const TDesC8& Key(); TAny* Value(); CUpnpMapElement* Next(); void SetNext(CUpnpMapElement* aNext);private: CUpnpMapElement(TAny* iItem); void ConstructL(const TDesC8& aKey); private: HBufC8* iKey; TAny* iValue; CUpnpMapElement* iNext;}; # 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmap.h" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmapbase.h" 1#define UPNPMAPBASE_Hclass CUpnpMapBase: public CBase{public: void PutL(const TDesC8& aKey, TAny* aValue); TAny* Get(const TDesC8& aKey); TAny* Remove(const TDesC8& aKey); virtual void Clear() = 0;protected: CUpnpMapBase(); void ConstructL();protected: CUpnpMapElement* iFirst; };# 26 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmap.h" 2template<class T>class CUpnpMap : public CUpnpMapBase{public: virtual ~CUpnpMap(); void PutL(const TDesC8& aKey, T* aValue); const T* Get(const TDesC8& aKey); T* Remove(const TDesC8& aKey); void Clear();public: CUpnpMap();};template<class T>CUpnpMap<T>::CUpnpMap(){}template<class T>const T* CUpnpMap<T>::Get(const TDesC8& aKey){ return static_cast<T*> CUpnpMapBase::Get(aKey) );}template<class T>void CUpnpMap<T>::PutL(const TDesC8& aKey, T* aValue){ CUpnpMapBase::PutL(aKey, aValue);}template<class T>CUpnpMap<T>::~CUpnpMap(){ Clear();}template<class T>void CUpnpMap<T>::Clear(){ while(iFirst) { CUpnpMapElement* next = iFirst->Next(); delete static_cast<T*> iFirst->Value() ); delete iFirst; iFirst = next; }}# 25 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnpmimemapper.h" 2const static TLitC8<sizeof( "jpg" )> KExtensionJpg ={sizeof( "jpg" )-1, "jpg" };const static TLitC8<sizeof( "png" )> KExtensionPng ={sizeof( "png" )-1, "png" };const static TLitC8<sizeof( "txt" )> KExtensionTxt ={sizeof( "txt" )-1, "txt" };const static TLitC8<sizeof( "mp3" )> KExtensionMp3 ={sizeof( "mp3" )-1, "mp3" };const static TLitC8<sizeof( "gif" )> KExtensionGif ={sizeof( "gif" )-1, "gif" };const static TLitC8<sizeof( "bmp" )> KExtensionBmp ={sizeof( "bmp" )-1, "bmp" };const static TLitC<sizeof(L".wav" )/2> KExtensionWav ={sizeof(L".wav" )/2-1,L".wav" };const static TLitC<sizeof(L".aac" )/2> KExtensionAac ={sizeof(L".aac" )/2-1,L".aac" };const static TLitC8<sizeof( "application/xhtml+xml" )> KXHtmlMime ={sizeof( "application/xhtml+xml" )-1, "application/xhtml+xml" }; const static TLitC<sizeof(L".xhtml" )/2> KXHtmlExt ={sizeof(L".xhtml" )/2-1,L".xhtml" }; const static TLitC8<sizeof( "text/html" )> KHtmlMime ={sizeof( "text/html" )-1, "text/html" }; const static TLitC<sizeof(L".html" )/2> KHtmlExt ={sizeof(L".html" )/2-1,L".html" };const static TLitC8<sizeof( "text/xml" )> KXmlMime1 ={sizeof( "text/xml" )-1, "text/xml" }; const static TLitC8<sizeof( "application/xml" )> KXmlMime2 ={sizeof( "application/xml" )-1, "application/xml" };const static TLitC8<sizeof( "application/x-xml" )> KXmlMime3 ={sizeof( "application/x-xml" )-1, "application/x-xml" }; const static TLitC<sizeof(L".xml" )/2> KXmlExt ={sizeof(L".xml" )/2-1,L".xml" };const static TLitC8<sizeof( "text/plain" )> KTxtMime ={sizeof( "text/plain" )-1, "text/plain" };const static TLitC8<sizeof( "application/txt" )> KTxtMime2 ={sizeof( "application/txt" )-1, "application/txt" };const static TLitC8<sizeof( "browser/internal" )> KTxtMime3 ={sizeof( "browser/internal" )-1, "browser/internal" };const static TLitC8<sizeof( "text/anytext" )> KTxtMime4 ={sizeof( "text/anytext" )-1, "text/anytext" };const static TLitC8<sizeof( "widetext/plain" )> KTxtMime5 ={sizeof( "widetext/plain" )-1, "widetext/plain" };const static TLitC8<sizeof( "widetext/paragraph" )> KTxtMime6 ={sizeof( "widetext/paragraph" )-1, "widetext/paragraph" }; const static TLitC<sizeof(L".txt" )/2> KTxtExt ={sizeof(L".txt" )/2-1,L".txt" };const static TLitC8<sizeof( "image/jpeg" )> KJpegMime ={sizeof( "image/jpeg" )-1, "image/jpeg" }; const static TLitC<sizeof(L".jpeg" )/2> KJpegExt ={sizeof(L".jpeg" )/2-1,L".jpeg" };const static TLitC8<sizeof( "image/jpg" )> KJpegMime2 ={sizeof( "image/jpg" )-1, "image/jpg" };const static TLitC8<sizeof( "image/jpe_" )> KJpegMime3 ={sizeof( "image/jpe_" )-1, "image/jpe_" };const static TLitC8<sizeof( "image/pjpeg" )> KJpegMime4 ={sizeof( "image/pjpeg" )-1, "image/pjpeg" }; const static TLitC8<sizeof( "image/vnd.swiftview-jpeg" )> KJpegMime5 ={sizeof( "image/vnd.swiftview-jpeg" )-1, "image/vnd.swiftview-jpeg" }; const static TLitC8<sizeof( "image/jpeg" )> KJpgMime ={sizeof( "image/jpeg" )-1, "image/jpeg" }; const static TLitC<sizeof(L".jpg" )/2> KJpgExt ={sizeof(L".jpg" )/2-1,L".jpg" };const static TLitC8<sizeof( "image/jpg" )> KJpgMime2 ={sizeof( "image/jpg" )-1, "image/jpg" }; const static TLitC8<sizeof( "image/jpe_" )> KJpgMime3 ={sizeof( "image/jpe_" )-1, "image/jpe_" }; const static TLitC8<sizeof( "image/pjpeg" )> KJpgMime4 ={sizeof( "image/pjpeg" )-1, "image/pjpeg" }; const static TLitC8<sizeof( "image/vnd.swiftview-jpeg" )> KJpgMime5 ={sizeof( "image/vnd.swiftview-jpeg" )-1, "image/vnd.swiftview-jpeg" }; const static TLitC8<sizeof( "image/gif" )> KGifMime ={sizeof( "image/gif" )-1, "image/gif" }; const static TLitC<sizeof(L".gif" )/2> KGifExt ={sizeof(L".gif" )/2-1,L".gif" };const static TLitC8<sizeof( "image/x-xbitmap" )> KGifMime2 ={sizeof( "image/x-xbitmap" )-1, "image/x-xbitmap" }; const static TLitC8<sizeof( "image/gi_" )> KGifMime3 ={sizeof( "image/gi_" )-1, "image/gi_" }; const static TLitC8<sizeof( "image/png" )> KPngMime ={sizeof( "image/png" )-1, "image/png" }; const static TLitC<sizeof(L".png" )/2> KPngExt ={sizeof(L".png" )/2-1,L".png" };const static TLitC8<sizeof( "application/png" )> KPngMime2 ={sizeof( "application/png" )-1, "application/png" }; const static TLitC8<sizeof( "application/x-png" )> KPngMime3 ={sizeof( "application/x-png" )-1, "application/x-png" }; const static TLitC8<sizeof( "video/mpeg" )> KMpgMime1 ={sizeof( "video/mpeg" )-1, "video/mpeg" }; const static TLitC<sizeof(L".mpg" )/2> KMpgExt1 ={sizeof(L".mpg" )/2-1,L".mpg" };const static TLitC8<sizeof( "video/mpg" )> KMpgMime2 ={sizeof( "video/mpg" )-1, "video/mpg" }; const static TLitC8<sizeof( "video/x-mpg" )> KMpgMime3 ={sizeof( "video/x-mpg" )-1, "video/x-mpg" }; const static TLitC8<sizeof( "video/mpeg2" )> KMpgMime4 ={sizeof( "video/mpeg2" )-1, "video/mpeg2" }; const static TLitC8<sizeof( "application/x-pn-mpg" )> KMpgMime5 ={sizeof( "application/x-pn-mpg" )-1, "application/x-pn-mpg" }; const static TLitC8<sizeof( "video/x-mpeg" )> KMpgMime6 ={sizeof( "video/x-mpeg" )-1, "video/x-mpeg" }; const static TLitC8<sizeof( "video/x-mpeg2a" )> KMpgMime7 ={sizeof( "video/x-mpeg2a" )-1, "video/x-mpeg2a" }; const static TLitC8<sizeof( "audio/mpeg" )> KMpgMime8 ={sizeof( "audio/mpeg" )-1, "audio/mpeg" }; const static TLitC8<sizeof( "audio/x-mpeg" )> KMpgMime9 ={sizeof( "audio/x-mpeg" )-1, "audio/x-mpeg" }; const static TLitC8<sizeof( "image/mpg" )> KMpgMime10 ={sizeof( "image/mpg" )-1, "image/mpg" }; const static TLitC8<sizeof( "video/mpeg4" )> KMpeg4Mime ={sizeof( "video/mpeg4" )-1, "video/mpeg4" }; const static TLitC<sizeof(L".mpeg4" )/2> KMpeg4Ext ={sizeof(L".mpeg4" )/2-1,L".mpeg4" };const static TLitC8<sizeof( "video/mp4" )> KMp4Mime ={sizeof( "video/mp4" )-1, "video/mp4" }; const static TLitC<sizeof(L".mp4" )/2> KMp4Ext ={sizeof(L".mp4" )/2-1,L".mp4" };const static TLitC8<sizeof( "video/mp4v-es" )> KMp4Mime2 ={sizeof( "video/mp4v-es" )-1, "video/mp4v-es" }; const static TLitC8<sizeof( "audio/mp4" )> KMp4Mime3 ={sizeof( "audio/mp4" )-1, "audio/mp4" }; const static TLitC8<sizeof( "video/avi" )> KAviMime1 ={sizeof( "video/avi" )-1, "video/avi" };const static TLitC8<sizeof( "video/msvideo" )> KAviMime2 ={sizeof( "video/msvideo" )-1, "video/msvideo" };const static TLitC8<sizeof( "video/x-msvideo" )> KAviMime3 ={sizeof( "video/x-msvideo" )-1, "video/x-msvideo" }; const static TLitC<sizeof(L".avi" )/2> KAviExt ={sizeof(L".avi" )/2-1,L".avi" };const static TLitC8<sizeof( "image/avi" )> KAviMime4 ={sizeof( "image/avi" )-1, "image/avi" }; const static TLitC8<sizeof( "video/xmpg2" )> KAviMime5 ={sizeof( "video/xmpg2" )-1, "video/xmpg2" }; const static TLitC8<sizeof( "application/x-troff-msvideo" )> KAviMime6 ={sizeof( "application/x-troff-msvideo" )-1, "application/x-troff-msvideo" }; const static TLitC8<sizeof( "audio/aiff" )> KAviMime7 ={sizeof( "audio/aiff" )-1, "audio/aiff" }; const static TLitC8<sizeof( "audio/avi" )> KAviMime8 ={sizeof( "audio/avi" )-1, "audio/avi" }; const static TLitC8<sizeof( "audio/x-mpeg-3" )> KMp3Mime1 ={sizeof( "audio/x-mpeg-3" )-1, "audio/x-mpeg-3" };const static TLitC8<sizeof( "audio/mpeg3" )> KMp3Mime2 ={sizeof( "audio/mpeg3" )-1, "audio/mpeg3" }; const static TLitC<sizeof(L".mp3" )/2> KMp3Ext ={sizeof(L".mp3" )/2-1,L".mp3" };const static TLitC8<sizeof( "audio/mpeg" )> KMp3Mime3 ={sizeof( "audio/mpeg" )-1, "audio/mpeg" }; const static TLitC8<sizeof( "audio/x-mpeg" )> KMp3Mime4 ={sizeof( "audio/x-mpeg" )-1, "audio/x-mpeg" }; const static TLitC8<sizeof( "audio/mp3" )> KMp3Mime5 ={sizeof( "audio/mp3" )-1, "audio/mp3" }; const static TLitC8<sizeof( "audio/x-mp3" )> KMp3Mime6 ={sizeof( "audio/x-mp3" )-1, "audio/x-mp3" }; const static TLitC8<sizeof( "audio/x-mpeg3" )> KMp3Mime7 ={sizeof( "audio/x-mpeg3" )-1, "audio/x-mpeg3" }; const static TLitC8<sizeof( "audio/mpg" )> KMp3Mime8 ={sizeof( "audio/mpg" )-1, "audio/mpg" }; const static TLitC8<sizeof( "audio/x-mpg" )> KMp3Mime9 ={sizeof( "audio/x-mpg" )-1, "audio/x-mpg" }; const static TLitC8<sizeof( "audio/x-mpegaudio" )> KMp3Mime10 ={sizeof( "audio/x-mpegaudio" )-1, "audio/x-mpegaudio" }; const static TLitC8<sizeof( "audio/aac" )> KAacMime ={sizeof( "audio/aac" )-1, "audio/aac" }; const static TLitC<sizeof(L".aac" )/2> KAacExt ={sizeof(L".aac" )/2-1,L".aac" };const static TLitC8<sizeof( "audio/x-ms-wma" )> KWmaMime ={sizeof( "audio/x-ms-wma" )-1, "audio/x-ms-wma" }; const static TLitC<sizeof(L".wma" )/2> KWmaExt ={sizeof(L".wma" )/2-1,L".wma" };const static TLitC8<sizeof( "video/x-ms-asf" )> KWmaMime2 ={sizeof( "video/x-ms-asf" )-1, "video/x-ms-asf" }; const static TLitC8<sizeof( "image/bmp" )> KBmpMime ={sizeof( "image/bmp" )-1, "image/bmp" }; const static TLitC<sizeof(L".bmp" )/2> KBmpExt ={sizeof(L".bmp" )/2-1,L".bmp" };const static TLitC8<sizeof( "image/x-bmp" )> KBmpMime2 ={sizeof( "image/x-bmp" )-1, "image/x-bmp" }; const static TLitC8<sizeof( "image/x-bitmap" )> KBmpMime3 ={sizeof( "image/x-bitmap" )-1, "image/x-bitmap" }; const static TLitC8<sizeof( "image/x-xbitmap" )> KBmpMime4 ={sizeof( "image/x-xbitmap" )-1, "image/x-xbitmap" }; const static TLitC8<sizeof( "image/x-ms-bmp" )> KBmpMime5 ={sizeof( "image/x-ms-bmp" )-1, "image/x-ms-bmp" }; const static TLitC8<sizeof( "application/bmp" )> KBmpMime6 ={sizeof( "application/bmp" )-1, "application/bmp" }; const static TLitC8<sizeof( "application/x-bmp" )> KBmpMime7 ={sizeof( "application/x-bmp" )-1, "application/x-bmp" }; const static TLitC8<sizeof( "application/x-win-bitmap" )> KBmpMime8 ={sizeof( "application/x-win-bitmap" )-1, "application/x-win-bitmap" }; const static TLitC8<sizeof( "application/preview" )> KBmpMime9 ={sizeof( "application/preview" )-1, "application/preview" }; const static TLitC8<sizeof( "audio/L16" )> KAudioL16 ={sizeof( "audio/L16" )-1, "audio/L16" };const static TLitC8<sizeof( "audio/vnd.dlna.adts" )> KAudioVnd ={sizeof( "audio/vnd.dlna.adts" )-1, "audio/vnd.dlna.adts" };const static TLitC8<sizeof( "audio/3gpp" )> KAudio3gpp ={sizeof( "audio/3gpp" )-1, "audio/3gpp" }; const static TLitC8<sizeof( "video/3gpp" )> KVideo3gpp ={sizeof( "video/3gpp" )-1, "video/3gpp" }; const static TLitC<sizeof(L".3gp" )/2> K3gpExt ={sizeof(L".3gp" )/2-1,L".3gp" };const static TLitC8<sizeof( "audio/AMR" )> KAudioAMR ={sizeof( "audio/AMR" )-1, "audio/AMR" }; const static TLitC<sizeof(L".amr" )/2> KAmrExt ={sizeof(L".amr" )/2-1,L".amr" };const static TLitC8<sizeof( "audio/wav" )> KAudioWav ={sizeof( "audio/wav" )-1, "audio/wav" };const static TLitC8<sizeof( "video/x-ms-wmv" )> KVideoWmv ={sizeof( "video/x-ms-wmv" )-1, "video/x-ms-wmv" }; const static TLitC<sizeof(L".wmv" )/2> KWmvExt ={sizeof(L".wmv" )/2-1,L".wmv" };const static TLitC8<sizeof( "video/x-ms-avi" )> KVideoAvi ={sizeof( "video/x-ms-avi" )-1, "video/x-ms-avi" };const static TLitC8<sizeof( "application/vnd.rn-realmedia" )> KRealMedia ={sizeof( "application/vnd.rn-realmedia" )-1, "application/vnd.rn-realmedia" }; const static TLitC<sizeof(L".rm" )/2> KRmExt ={sizeof(L".rm" )/2-1,L".rm" };const static TLitC8<sizeof( "audio/vnd.rn-realaudio" )> KRealAudio ={sizeof( "audio/vnd.rn-realaudio" )-1, "audio/vnd.rn-realaudio" }; const static TLitC<sizeof(L".ra" )/2> KRealAudioExt ={sizeof(L".ra" )/2-1,L".ra" };const static TLitC8<sizeof( "audio/x-pn-realaudio-plugin" )> KPmRealAudioPlugin ={sizeof( "audio/x-pn-realaudio-plugin" )-1, "audio/x-pn-realaudio-plugin" }; const static TLitC<sizeof(L".rpm" )/2> KPmRealAudioPluginExt ={sizeof(L".rpm" )/2-1,L".rpm" };const static TLitC8<sizeof( "audio/x-pn-realaudio" )> KPmRealAudio ={sizeof( "audio/x-pn-realaudio" )-1, "audio/x-pn-realaudio" }; const static TLitC<sizeof(L".ra" )/2> KPmRealAudioExt ={sizeof(L".ra" )/2-1,L".ra" };const static TLitC8<sizeof( "video/vnd.rn-realvideo" )> KRealVideo ={sizeof( "video/vnd.rn-realvideo" )-1, "video/vnd.rn-realvideo" }; const static TLitC<sizeof(L".rv" )/2> KRealVideoExt ={sizeof(L".rv" )/2-1,L".rv" };class CUpnpMimeMapper: public CBase {public: static CUpnpMimeMapper* NewL(); virtual ~CUpnpMimeMapper();public: void AddMimeMapElL( const TDesC8& aKey, const TDesC& aVal ); void InitMimeToExtensionMapL(); HBufC8* GetExtensionL( const TDesC8& aMimeType ); const HBufC* Get( const TDesC8& aKey );private: CUpnpMimeMapper(); void ConstructL(); private: CUpnpMap<HBufC>* iMimeToExtMap; }; # 61 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransfercontroller.h" 1#define C_CUPNPTRANSFERCONTROLLER_Hclass CUpnpContentDirectory;class CUpnpFileTransferEvent;class CUpnpHttpMessage;class CUpnpTransferController: public CBase, public MUpnpFileTransferTimerObserver{public: static CUpnpTransferController* NewL( CUpnpContentDirectory* aCd ); virtual ~CUpnpTransferController(); void HttpResponseReceivedL( TInt aSessionId, TInt aStatusCode); TUpnpErrorCode StopTransferResourceL( TInt aId ); TInt Transfer( TInt aTransferId ); TBool IsMaxImportExportTransfers(); CUpnpFileTransferEvent* RemoveTransferLC( TInt aTransferId ); CUpnpFileTransferEvent* TransferL( TInt aTransferId ); void TransferEvent( CUpnpFileTransferTimerObserver* aTimer ); void AddIncomingTransferInternalL(CUpnpHttpMessage* aHttpMsg); void TransferFailL(CUpnpHttpMessage* aHttpMsg); void NotifyTransferFailL(CUpnpHttpMessage* aHttpMsg); private: CUpnpTransferController( CUpnpContentDirectory* aCd ); void ConstructL(); public: RPointerArray<CUpnpFileTransfer> iFileTransfers; RPointerArray<CUpnpFileTransferTimerObserver> iStatusTimers; private: CUpnpContentDirectory* iContentDirectory; }; # 62 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/upnptransferinterface.h" 1#define C_CUPNPTRANSERINTERFACE_Hclass MUpnpTransferInterface { public: virtual void UploadFileL( TInt aKey, const TDesC8& aUri, const TDesC& aTargetPath, const TDesC8& aContentType ) = 0; virtual void DownloadFileL( TInt aKey, const TDesC8& aUri, const TDesC& aTargetPath ) = 0; virtual void TrackUploadProgress( TInt aKey, TBool aSwitchOn )=0; virtual void TrackDownloadProgress( TInt aKey, TBool aSwitchOn )=0; virtual void CancelUpload( TInt aKey ) = 0; virtual void CancelDownload( TInt aKey ) = 0; }; # 63 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/inc/dlna/upnpdlnafilter.h" 1#define UPNPDLNAFILTER_H class MUpnpContentDirectoryDataFinder;class CUpnpHttpMessage;class CUpnpDlnaProtocolInfo;class CUpnpSecurityManager;class CUpnpHttpFileServeTransaction;class CUpnpHttpFileReceiveTransaction;class CUpnpDlnaFilterHeaders;class TUpnpDlnaCorelation;class CUpnpDlnaFilter : public CBase, public MUpnpHttpServerTransactionCreator {public: ~CUpnpDlnaFilter(); static CUpnpDlnaFilter* NewL( MUpnpContentDirectoryDataFinder* aFinder, CUpnpSecurityManager* aSecurityManager ); static CUpnpDlnaFilter* NewLC( MUpnpContentDirectoryDataFinder* aFinder, CUpnpSecurityManager* aSecurityManager ); virtual void NewTransactionL( const TDesC8& aMethod, const TDesC8& aUri, const TInetAddr& aSender, CUpnpHttpServerTransaction*& aResultTrans ); void FormatPathL( CUpnpHttpFileServeTransaction *aTransaction, TDes &aPath ); TInt PrepareHeaderL( CUpnpHttpFileServeTransaction &aTransaction ); TInt CheckDLNAPostCorrelationsL(CUpnpHttpFileReceiveTransaction& aTransaction); HBufC* DetermineDownloadPathL(CUpnpHttpFileReceiveTransaction& aTransaction); CUpnpSecurityManager* SecurityManager(); RFs& FileSession(); TInt AuthorizeRequestL( const TDesC& aFileName, const TInetAddr& aSender );public: CUpnpDlnaFilter( MUpnpContentDirectoryDataFinder* aFinder, CUpnpSecurityManager* aSecurityManager ); void ConstructL();private: HBufC8* CUpnpDlnaFilter::ThirdFieldFromCdL( const TDesC8& aContentUri ); void GetMediaFileNameL( TInt aObjectId, TPtr& aFileName ); TInt FindSharedFolderDBL(const TDesC8& aUrlPath, const TDesC8& aFileName, HBufC8*& aSystemPath); TInt CheckImportUriL( TDesC8& aImportUri ); TInt CheckDLNACorrelationsL( CUpnpHttpFileServeTransaction& aTransaction ); TInt GetContentTypeL( CUpnpHttpFileServeTransaction &aTransaction, HBufC8*& aMime, const TDesC16& aFilename ); CUpnpDlnaProtocolInfo* ProtocolInfoL( const TDesC8& aContentUri ); void AddHeaderIfNotEmptyL( const TDesC8& aHeaderName, CUpnpHttpFileServeTransaction& aTransaction ); HBufC* MakeFileNameUniqueL( const TDesC& aFilename, RFs& aFs ); HBufC* PreparePostfixToMakeFileUniqueL( const TDesC& aFilename, RFs& aFs ); HBufC* PrepareBaseFileNameL( const TDesC& aFilename, RFs& aFs ); TInt CheckCorelationL( CUpnpHttpFileServeTransaction& aTransaction, TUpnpDlnaCorelation& aDlnaCorelation ); TInt CheckTransferModeL( CUpnpHttpFileServeTransaction& aTransaction, TUpnpDlnaCorelation& aDlnaCorelation ); TInt AppendCorelationHeadersL( CUpnpHttpFileServeTransaction& aTransaction, TUpnpDlnaCorelation& aDlnaCorelation, TDesC8& aTransferMode ); protected: MUpnpContentDirectoryDataFinder* iCdDataFinder; CUpnpSecurityManager* iSecurityManager; CUpnpDlnaProtocolInfo* iProtocolInfo; RFs iFs; };# 64 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnphttpserversession.h" 1#define UPNPHTTPSERVERSESSION_Hclass CUpnpHttpServerRuntime;class MUpnpHttpServerObserver;class CUpnpHttpMessage;const TInt KUpnpHttpServerRandomPort = 0;class CUpnpHttpServerSession : public CBase {public: IMPORT_C static CUpnpHttpServerSession* NewL( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); ~CUpnpHttpServerSession(); IMPORT_C void StartL( const TInt aPort = KUpnpHttpServerRandomPort ); IMPORT_C void Stop(); IMPORT_C void GetAddress( TInetAddr& aAddr ); IMPORT_C CUpnpHttpServerRuntime& DefaultRuntime(); static CUpnpHttpServerSession* NewLC( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); IMPORT_C TSockAddr* HWAddressL(); IMPORT_C TInt SendMessageL( CUpnpHttpMessage* aMessage ); private: CUpnpHttpServerSession(); void ConstructL( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver );private: CUpnpHttpServerRuntime* iServerRuntime; };# 65 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnphttpserverruntime.h" 1#define UPNPHTTPSERVERRUNTIME_Hclass MUpnpHttpServerTransactionCreator;class CUpnpHttpServer;class MUpnpHttpServerObserver;class CUpnpHttpServerRuntime : public CBase {public: IMPORT_C void SetCreator( MUpnpHttpServerTransactionCreator& aCreator ); static CUpnpHttpServerRuntime* NewL( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); static CUpnpHttpServerRuntime* NewLC( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); ~CUpnpHttpServerRuntime(); CUpnpHttpServer& HttpServer(); void DeleteServer(); void StartServerL( const TInt aPort ); private: CUpnpHttpServerRuntime( TUint aUnusedIapId, MUpnpHttpServerObserver& aObserver ); void ConstructL(); void GetIapAndStartServerL(); void OpenSocketServerL(); void CloseSocketServer(); private: RSocketServ iSocketServ; CUpnpHttpServer* iHttpServer; MUpnpHttpServerObserver& iObserver; MUpnpHttpServerTransactionCreator* iTransactionCreator; TBool iIsSocketOpened; };# 66 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpsettings.h" 1#define C_CUPNPSETTING_Hconst TUid KHnCRUidUPnPStack = { 0x2000F881 }; const TUid KCRUidUPnPStack = { 0x101F9784 };class CRepository;class CUpnpSettings: public CBase {public: static const TUint KUPnPStackIapId = 1; static const TUint KUPnPStackCustomizedUserAgent = 2; static const TUint KUPnPStackFileBufferSize = 3; static const TUint KUPnPStackCustomizedServerHeader = 4; static const TUint KUPnPStackMSearchConfig = 5; public: IMPORT_C static CUpnpSettings* NewL(TUid aRepositoryUid); virtual ~CUpnpSettings();public: IMPORT_C TInt Set(TUint aId, TInt& aValue); IMPORT_C TInt Get(TUint aId, TInt& aValue); IMPORT_C static TInt GetIapL(); IMPORT_C TInt Set(TUint aId, const TDesC& aValue); IMPORT_C TInt SetL(TUint aId, const TDesC8& aValue); IMPORT_C TInt Get(TUint aId, TDes& aValue); IMPORT_C HBufC8* GetL(TUint aId); IMPORT_C static HBufC8* GetUserAgentL(); IMPORT_C static TInt GetFileBufferSizeL(); IMPORT_C static HBufC8* GetServerHeaderL(); static HBufC8* GetMSearchConfigurationL();private: void ConstructL(TUid aRepositoryId);private: CRepository* iRepository; };# 67 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpdeviceimplementationbase.h" 1#define C_CUPNPDEVICEIMPLEMENTATIONBASE_H# 1 "X:/epoc32/include/platform/mw/upnpdiscoveryobserver.h" 1#define C_MUpnpDiscoveryObserver_Hclass CUpnpDevice;class MUpnpDiscoveryObserver{public: virtual const TDesC8 & Path() = 0; virtual void DeviceFoundL( CUpnpDevice& aDevice ) = 0; virtual void DeviceLostL( CUpnpDevice& aDevice ) = 0;};# 26 "X:/epoc32/include/platform/mw/upnpdeviceimplementationbase.h" 2class TUpnpDevice;class TUpnpService;class CUpnpIcon;class CUpnpDesciptionProperty;class CUpnpDeviceDescriptionStore;class CUpnpHttpServerTransactionHandler;class MUpnpDeviceDescriptionProvider;class CUpnpDeviceImplementationBase : public CUpnpDevice { public: IMPORT_C virtual ~CUpnpDeviceImplementationBase(); virtual void StartL( const TInt aPort = KRandomPort ) = 0; virtual void StopL() = 0; IMPORT_C void SetDescriptionPropertyL( const TDesC8& aPropertyName, const TDesC8& aPropertyValue ); IMPORT_C void RemoveDescriptionPropertyL( const TDesC8& aPropertyName ); IMPORT_C void RemoveIconL( const TDesC8& aUrl); IMPORT_C void RemoveIconsL(); IMPORT_C void AddIconL( const CUpnpIcon& aIcon ); void UpdateIconL( const CUpnpIcon& aIcon ); HBufC8* GenerateUuidL(); void CreateDispatcherL(); CUpnpDeviceImplementationBase(); IMPORT_C virtual TInetAddr Address(); void AttachServiceL( CUpnpService *aService ); void SetDispatcher( CUpnpDispatcher* aDispatcher ); IMPORT_C void StartIPFilteringL(); IMPORT_C void StopIPFiltering(); MUpnpDeviceDescriptionProvider& DescritptionProvider(); protected: void StartHttpServerL( const TInt aPort ); void StopHttpServer(); void CheckUuidGenL( const TDesC16& aFileName ); CUpnpDispatcher* Dispatcher(); void BaseConstructL( const TDesC8& aDeviceDescriptioUri, CUpnpDeviceDescriptionStore& aDescriptionStore, MUpnpDeviceDescriptionProvider& aProvider ); void GenerateUdnsL( CUpnpDeviceImplementationBase* aDevice ); void RegisterEmbeddedDevices(); void UnregisterEmbeddedDevicesL(); void SaveDescriptionStoreL();protected: CUpnpDispatcher* iDispatcher; HBufC8* iPath; CUpnpHttpServerTransactionHandler* iServerTransactionHandler; CUpnpDeviceDescriptionStore* iDescriptionStore; MUpnpDeviceDescriptionProvider* iDescriptionProvider; };# 68 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpsecuritymanager.h" 1#define C_CUPNPSECURITYMANAGER_Hconst TUid KCUpnpSecurityManagerUid = {0x101F977E}; const TUid KCUpnpSecurityManagerUidRemote = {0x2001137B}; class CUpnpAction;class CUpnpHttpMessage;class CUpnpSecurityManager : public CBase{public: IMPORT_C static CUpnpSecurityManager* NewL(const TDesC8& aType); IMPORT_C static CUpnpSecurityManager* NewInstanceFromUpnpSettingsL(); IMPORT_C virtual ~CUpnpSecurityManager(); virtual TInt AuthorizeMessage(CUpnpHttpMessage* aMessage, TFileName& aRequestedFile) = 0; virtual TInt AuthorizeAction(CUpnpAction* aAction) = 0; private: TUid iDtor_ID_Key; };# 69 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2# 1 "X:/epoc32/include/platform/mw/upnpmediaserversettings.h" 1#define C_CUPNPMEDIASERVERSETTINGS_Hconst TUid KHnCRUidMediaServer = { 0x2000f87f }; const TUid KCRUidMediaServer = { 0x101F978F };class CRepository;namespace UpnpMediaServerSettings { const static TLitC8<sizeof( "friendlyName" )> KFriendlyName ={sizeof( "friendlyName" )-1, "friendlyName" };const static TLitC8<sizeof( "modelURL" )> KModelUrl ={sizeof( "modelURL" )-1, "modelURL" };const static TLitC8<sizeof( "modelDescription" )> KModelDescription ={sizeof( "modelDescription" )-1, "modelDescription" };const static TLitC8<sizeof( "modelNumber" )> KModelNumber ={sizeof( "modelNumber" )-1, "modelNumber" };const static TLitC8<sizeof( "serialNumber" )> KSerialNumber ={sizeof( "serialNumber" )-1, "serialNumber" };const static TLitC8<sizeof( "presentationURL" )> KPresentationUrl ={sizeof( "presentationURL" )-1, "presentationURL" };const static TLitC8<sizeof( "modelName" )> KModelName ={sizeof( "modelName" )-1, "modelName" };const static TLitC8<sizeof( "manufacturer" )> KManufacturer ={sizeof( "manufacturer" )-1, "manufacturer" };const static TLitC8<sizeof( "manufacturerURL" )> KManufacturerUrl ={sizeof( "manufacturerURL" )-1, "manufacturerURL" };enum TMediaServerKeys { EFriendlyName = 1, EUploadDirectory = 2, ESupportedMedia = 3, ESecurityManager = 4, EModelUrl = 5, EModelDescription = 6, EModelNumber = 7, ESerialNumber = 8, EPresentationUrl = 9, EModelName = 10, EManufacturer = 11, EManufacturerUrl = 12, EUpnpMediaServerThumbnails = 13, KUpnpMediaServerBrowseLimit = 14 };}class MUpnpSettingObserver {public: virtual void SettingChangedL() = 0; }; class CUpnpMediaServerSettings : public CActive {public: IMPORT_C static CUpnpMediaServerSettings* NewL(); virtual ~CUpnpMediaServerSettings();public: IMPORT_C TInt Set(TUint aId, const TInt& aValue); IMPORT_C TInt Set(TUint aId, const TDesC& aValue); IMPORT_C TInt SetL(TUint aId, const TDesC8& aValue); IMPORT_C TInt Get(TUint aId, TInt& aValue); IMPORT_C TInt Get(TUint aId, TDes& aValue); IMPORT_C HBufC8* GetL(TUint aId); IMPORT_C TInt Subscribe(TUint aId, MUpnpSettingObserver* aObserver); private: CUpnpMediaServerSettings(); void ConstructL(TUid aRepositoryId); void RunL(); TInt RunError( TInt aErr ); void DoCancel(); private: CRepository* iRepository; MUpnpSettingObserver* iObserver; };# 70 "X:/sf/mw/dlnasrv/upnpmediaserver/contentdirectoryservice/src/upnpcontentdirectory.cpp" 2using namespace UpnpPaths;using namespace UpnpDlnaProtocolInfo;void DestroyRArray( TAny* aArray );void RPointerArrayTPtrC8( TAny* aArray ) { RPointerArray<TPtrC8>* array = reinterpret_cast<RPointerArray<TPtrC8>*>aArray); array->ResetAndDestroy( ); }CUpnpContentDirectory::CUpnpContentDirectory( CUpnpDevice& aDevice, MUpnpThumbnailCreatorObserver* aThmbObs, MUpnpTransferInterface* aTransfer ) : CUpnpServiceImplementation(aDevice), iThmbObs(aThmbObs), iTransferHandler(aTransfer) { SetExecutedAction( EUndefinedAction ); }CUpnpContentDirectory::~CUpnpContentDirectory() { delete iDownloadDir; delete iThumbDir; delete iElementdb; delete iTransferController; delete iMimeToExtMap; delete iContentDirectoryDb; iThObjectIds.Close( ); iThumbnailCreators.ResetAndDestroy( ); iDOMImpl.Close( ); if ( iBitmapServerConnection == KErrNone ) RFbsSession::Disconnect( ); iFs.Close( ); if ( iEcomUsed ) { REComSession::FinalClose( ); } delete iAutoDestroyObjects; delete iStateHandler; if ( iHttpServerSession ) { iHttpServerSession->Stop[static]

delete iHttpServerSession

deleteiHttpServerSession

delete iDlnaFilter

deleteiDlnaFilter

delete iSecurityManager

deleteiSecurityManager