MHEG5  15.3.0
source/classes/inc/mh5tokenmanager.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 © 2000 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  *******************************************************************************/
00034 #ifndef _MH5TOKENMANAGER_H
00035 #define _MH5TOKENMANAGER_H
00036 
00037 /*---includes for this file--------------------------------------------------*/
00038 
00039 #include "mh5base.h"
00040 #include "mh5root.h"
00041 
00042 /*---Constant and macro definitions for public use---------------------------*/
00043 
00044 /*---Enumerations for public use---------------------------------------------*/
00045 
00046 /*---Global type defs for public use-----------------------------------------*/
00047 
00048 typedef struct sMHEG5IntList
00049 {
00050    MHEG5Int number;
00051    struct sMHEG5IntList *next;
00052 } MHEG5IntList;
00053 
00054 typedef struct sMHEG5MovementTable
00055 {
00056    MHEG5IntList *row;
00057    struct sMHEG5MovementTable *next;
00058 } MHEG5MovementTable;
00059 
00060 typedef struct
00061 {
00062    /* No base class for this class (mix-in) */
00063 
00064    /* Exchanged attributes */
00065    MHEG5MovementTable *movementTable;
00066 
00067    /* Internal attributes */
00068    MHEG5Int tokenPosition;
00069 } MHEG5TokenManager;
00070 
00071 /*---Global variable declarations for public use-----------------------------*/
00072 
00073 /*---Global Function prototypes for public use-------------------------------*/
00074 
00080 /*
00081    Debug
00082  */
00083 #ifdef MH5PRINTOUT
00084 
00090 void MHEG5tokenManagerPrint(MHEG5TokenManager *tokenManager, char *out);
00091 
00098 void MHEG5intListPrint(MHEG5IntList *intList, char *out);
00099 
00106 void MHEG5movementTablePrint(MHEG5MovementTable *movementTable, char *out);
00107 
00108 
00109 #endif /* MH5PRINTOUT */
00110 
00111 
00112 /*
00113    Constructor
00114  */
00120 void MHEG5tokenManagerInit(MHEG5TokenManager *tokenManager);
00121 
00122 
00129 void MHEG5tokenManagerPrepare(MHEG5TokenManager *tokenManager);
00130 
00131 
00139 void MHEG5tokenManagerFree(MHEG5TokenManager *tokenManager);
00140 
00141 
00142 void MHEG5tokenManagerAddRow(MHEG5TokenManager *tokenManager);
00143 void MHEG5tokenManagerAddNumber(MHEG5TokenManager *tokenManager, MHEG5Int number);
00144 
00145 /*
00146    Copy Constructor
00147  */
00148 void MHEG5tokenManagerCopy(MHEG5TokenManager *destination, MHEG5TokenManager *source);
00149 
00150 /*
00151    Internal behaviours
00152  */
00153 void MHEG5tokenManagerPrepare(MHEG5TokenManager *tokenManager);
00154 void MHEG5tokenManagerDestruct(MHEG5TokenManager *tokenManager);
00155 
00156 /*
00157    Actions
00158  */
00159 MHEG5ErrorCode MHEG5move(MHEG5Root *target, MHEG5GList *params);
00160 MHEG5ErrorCode MHEG5moveTo(MHEG5Root *target, MHEG5GList *params);
00161 MHEG5ErrorCode MHEG5getTokenPosition(MHEG5Root *target, MHEG5GList *params);
00162 
00163 #endif /*_MH5TOKENMANAGER_H*/
 All Data Structures Files Functions Variables Typedefs Defines