DSMCC
15.3.1
|
00001 /******************************************************************************* 00002 * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org) 00003 * Copyright © 2004 Ocean Blue Software Ltd 00004 * Copyright © 2001 Koninklijke Philips Electronics N.V 00005 * 00006 * This file is part of a DTVKit Software Component 00007 * You are permitted to copy, modify or distribute this file subject to the terms 00008 * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org 00009 * 00010 * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 00011 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES 00012 * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. 00013 * 00014 * If you or your organisation is not a member of DTVKit then you have access 00015 * to this source code outside of the terms of the licence agreement 00016 * and you are expected to delete this and any associated files immediately. 00017 * Further information on DTVKit, membership and terms can be found at www.dtvkit.org 00018 *******************************************************************************/ 00026 #ifndef _OBJECT_H_ 00027 #define _OBJECT_H_ 00028 00029 00030 00031 /*---includes for this file--------------------------------------------------*/ 00032 00033 #include "clDsmSystem.h" 00034 #include "linkList.h" 00035 #include "defMemUtilsMgd.h" /* -- Default mem type for module */ 00036 00037 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #endif 00041 00042 00043 /*---constant definitions for this file--------------------------------------*/ 00044 00045 /* -- Settings for MHP = 254 + 1 for null (ETSI 101 812 section 14.1.4) */ 00046 #define MAX_OBJ_NAME_SIZE 255 /* -- Including null terminator */ 00047 00048 /*---Constant and macro definitions for public use---------------------------*/ 00049 00050 /*---Enumerations for public use---------------------------------------------*/ 00051 00052 /*---Global type defs for public use-----------------------------------------*/ 00053 00054 /* Object Data type and size info structure. 00055 All offsets are relative to start of object (BIOP) unless otherwise stated */ 00056 typedef struct 00057 { 00058 ObjectKey_t objectKey; /* Object key */ 00059 U32BIT objectKind; /* Object kind (e.g. file, ObjStream, etc) */ 00060 U32BIT objectLen; /* Total object length */ 00061 U32BIT objectInfoOffset; /* Offset to objectInfo field */ 00062 U16BIT objectInfoLength; /* Length of object information */ 00063 U32BIT messageBodyOffset; /* Offset to messageBody field */ 00064 U32BIT messageBodyLength; /* From start to end of messageBody */ 00065 } ObjectDataInfo_t, *pObjectDataInfo_t; 00066 00067 00068 00069 /*---Global variable declarations for public use-----------------------------*/ 00070 00071 00072 BOOLEAN objectDataGetKeyAndLen( const MemPtr mpObjectData, 00073 ObjectKey_t *pObjectKey, U32BIT *pObjectLength ); 00074 00075 00076 00088 BOOLEAN objectDataGetInfo( 00089 /*I*/ const MemPtr mpObjectData, 00090 /*O*/ ObjectDataInfo_t* pObjInf); 00091 00092 00093 00094 BOOLEAN odDirFindBinding( 00095 /*I*/ const MemPtr mpObject, pObjectDataInfo_t pObjInf, U8BIT* name, 00096 /*O*/ MemPtr *mpBinding ); 00097 00098 BOOLEAN odDirGetBindingInfo( 00099 /*I*/ const MemPtr mpBinding, 00100 /*O*/ ObjectLocation_t *pLocation, DeliveryParaTap_t *pTap ); 00101 00102 U8BIT odDirBindingNameLength( 00103 /*I*/ const MemPtr mpBinding ); 00104 00105 U8BIT odDirBindingNameCopy( 00106 /*I*/ const MemPtr mpBinding, 00107 /*O*/ U8BIT* name ); 00108 00109 BOOLEAN odDirGetBindingKind( 00110 /*I*/ const MemPtr mpBinding, 00111 /*O*/ U32BIT *pKind ); 00112 00113 void odDirGetBindingsCount( 00114 /*I*/ const MemPtr mpObject, pObjectDataInfo_t pObjInf, 00115 /*O*/ U16BIT *pBindingsCount ); 00116 00117 U16BIT odDirCountAndFirstBinding( 00118 /*I*/ const MemPtr mpObject, pObjectDataInfo_t pObjInf, 00119 /*O*/ MemPtr *mpFirstBinding ); 00120 00121 BOOLEAN odDirGetNextBinding( 00122 /*I*/ const MemPtr mpCurrBinding, 00123 /*O*/ MemPtr *mpNextBinding ); 00124 00125 /*----------------------------------------------------------------------------*/ 00126 #ifdef __cplusplus 00127 } 00128 #endif 00129 #endif /* _OBJECT_H_ */