114{
117 int VerNum, nCis, nCos, nPis, nPos;
118 int nBoxes, nBoxIns, nBoxOuts, CopyBox, fBlack;
119 int TableId, nTables, TableSize, TableX, TableY;
120 int i, k, curPi, curPo, iStr = 0;
121 float * pDelayTable;
122
123 VerNum = Vec_StrGetI_ne(
p, &iStr );
125
126 nCis = Vec_StrGetI_ne(
p, &iStr );
127 nCos = Vec_StrGetI_ne(
p, &iStr );
128
129 nPis = Vec_StrGetI_ne(
p, &iStr );
130 nPos = Vec_StrGetI_ne(
p, &iStr );
131
133
134 nBoxes = Vec_StrGetI_ne(
p, &iStr );
135 assert( pMan->vBoxes == NULL );
136 if ( nBoxes > 0 )
137 pMan->vBoxes = Vec_PtrAlloc( nBoxes );
138
139 curPi = nPis;
140 curPo = 0;
141 for ( i = 0; i < nBoxes; i++ )
142 {
143 nBoxIns = Vec_StrGetI_ne(
p, &iStr );
144 nBoxOuts = Vec_StrGetI_ne(
p, &iStr );
145 TableId = Vec_StrGetI_ne(
p, &iStr );
146 CopyBox = Vec_StrGetI_ne(
p, &iStr );
147 fBlack = 0;
150 curPi += nBoxOuts;
151 curPo += nBoxIns;
152 }
153 curPo += nPos;
156 if ( fHieOnly )
157 return pMan;
158
159 nTables = Vec_StrGetI_ne(
p, &iStr );
160 assert( pMan->vDelayTables == NULL );
161 if ( nTables > 0 )
162 pMan->vDelayTables = Vec_PtrAlloc( nTables );
163
164 for ( i = 0; i < nTables; i++ )
165 {
166
167 TableId = Vec_StrGetI_ne(
p, &iStr );
168 TableX = Vec_StrGetI_ne(
p, &iStr );
169 TableY = Vec_StrGetI_ne(
p, &iStr );
171
172 TableSize = TableX * TableY;
173 pDelayTable =
ABC_ALLOC(
float, TableSize + 3 );
174 pDelayTable[0] = TableId;
175 pDelayTable[1] = TableX;
176 pDelayTable[2] = TableY;
177
178 for ( k = 0; k < TableSize; k++ )
179 pDelayTable[k+3] = Vec_StrGetF(
p, &iStr );
180 assert( Vec_PtrSize(pMan->vDelayTables) == TableId );
181 Vec_PtrPush( pMan->vDelayTables, pDelayTable );
182 }
184
187
190 assert( Vec_StrSize(
p) == iStr );
191
192 return pMan;
193}
#define ABC_ALLOC(type, num)
#define TIM_DUMP_VER_NUM
DECLARATIONS ///.
#define Tim_ManForEachPo(p, pObj, i)
struct Tim_Obj_t_ Tim_Obj_t
#define Tim_ManForEachPi(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Tim_Man_t_ Tim_Man_t
INCLUDES ///.
void Tim_ManCreateBox(Tim_Man_t *p, int firstIn, int nIns, int firstOut, int nOuts, int iDelayTable, int fBlack)
ITERATORS ///.
void Tim_ManBoxSetCopy(Tim_Man_t *p, int iBox, int iCopy)
Tim_Man_t * Tim_ManStart(int nCis, int nCos)
DECLARATIONS ///.
void Tim_ManInitPiArrival(Tim_Man_t *p, int iPi, float Delay)
DECLARATIONS ///.
int Tim_ManDelayTableNum(Tim_Man_t *p)
void Tim_ManInitPoRequired(Tim_Man_t *p, int iPo, float Delay)