DSMCC  15.3.1
source/dscore/src/object.h
Go to the documentation of this file.
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_ */
 All Data Structures Files Functions Typedefs