DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
object.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  * Copyright © 2004 Ocean Blue Software Ltd
4  * Copyright © 2001 Koninklijke Philips Electronics N.V
5  *
6  * This file is part of a DTVKit Software Component
7  * You are permitted to copy, modify or distribute this file subject to the terms
8  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
9  *
10  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
11  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
12  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  * If you or your organisation is not a member of DTVKit then you have access
15  * to this source code outside of the terms of the licence agreement
16  * and you are expected to delete this and any associated files immediately.
17  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
18  *******************************************************************************/
26 #ifndef _OBJECT_H_
27 #define _OBJECT_H_
28 
29 
30 
31 /*---includes for this file--------------------------------------------------*/
32 
33 #include "clDsmSystem.h"
34 #include "linkList.h"
35 #include "defMemUtilsMgd.h" /* -- Default mem type for module */
36 
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 
43 /*---constant definitions for this file--------------------------------------*/
44 
45 /* -- Settings for MHP = 254 + 1 for null (ETSI 101 812 section 14.1.4) */
46 #define MAX_OBJ_NAME_SIZE 255 /* -- Including null terminator */
47 
48 /*---Constant and macro definitions for public use---------------------------*/
49 
50 /*---Enumerations for public use---------------------------------------------*/
51 
52 /*---Global type defs for public use-----------------------------------------*/
53 
54 /* Object Data type and size info structure.
55  All offsets are relative to start of object (BIOP) unless otherwise stated */
56 typedef struct
57 {
58  S_ObjectKey objectKey; /* Object key */
59  U32BIT objectKind; /* Object kind (e.g. file, ObjStream, etc) */
60  U32BIT objectLen; /* Total object length */
61  U32BIT objectInfoOffset; /* Offset to objectInfo field */
62  U16BIT objectInfoLength; /* Length of object information */
63  U32BIT messageBodyOffset; /* Offset to messageBody field */
64  U32BIT messageBodyLength; /* From start to end of messageBody */
66 
67 
68 
69 /*---Global variable declarations for public use-----------------------------*/
70 
71 
72 BOOLEAN objectDataGetKeyAndLen( const MemPtr mpObjectData,
73  P_ObjectKey pObjectKey, U32BIT *pObjectLength );
74 
75 
76 
88 BOOLEAN objectDataGetInfo(
89  /*I*/ const MemPtr mpObjectData,
90  /*O*/ ObjectDataInfo_t *pObjInf);
91 
92 
93 
94 BOOLEAN odDirFindBinding(
95  /*I*/ const MemPtr mpObject, pObjectDataInfo_t pObjInf, U8BIT *name,
96  /*O*/ MemPtr *mpBinding );
97 
98 BOOLEAN odDirGetBindingInfo(
99  /*I*/ const MemPtr mpBinding,
100  /*O*/ P_ObjectLocation pLocation, P_DeliveryParaTap pTap );
101 
102 U8BIT odDirBindingNameLength(
103  /*I*/ const MemPtr mpBinding );
104 
105 U8BIT odDirBindingNameCopy(
106  /*I*/ const MemPtr mpBinding,
107  /*O*/ U8BIT *name );
108 
109 BOOLEAN odDirGetBindingKind(
110  /*I*/ const MemPtr mpBinding,
111  /*O*/ U32BIT *pKind );
112 
113 void odDirGetBindingsCount(
114  /*I*/ const MemPtr mpObject, pObjectDataInfo_t pObjInf,
115  /*O*/ U16BIT *pBindingsCount );
116 
117 U16BIT odDirCountAndFirstBinding(
118  /*I*/ const MemPtr mpObject, pObjectDataInfo_t pObjInf,
119  /*O*/ MemPtr *mpFirstBinding );
120 
121 BOOLEAN odDirGetNextBinding(
122  /*I*/ const MemPtr mpCurrBinding,
123  /*O*/ MemPtr *mpNextBinding );
124 
125 /*----------------------------------------------------------------------------*/
126 #ifdef __cplusplus
127 }
128 #endif
129 #endif /* _OBJECT_H_ */
General include file for clDsm library internal definitions.
Defines memory access utils to work with managed (MemMgr) memory.
BOOLEAN objectDataGetInfo(const MemPtr mpObjectData, ObjectDataInfo_t *pObjInf)
Parse the supplied object data. Verify selected fields. Extract relevant information from selected fi...
Definition: object.c:120