unsigned int TA_ReadOpToField( TA_ReadOp readOp ) { if( TA_IS_REAL_CMD(readOp) ) { switch( TA_GET_IDX(readOp) ) { case TA_CLOSE_IDX: return TA_CLOSE; case TA_OPEN_IDX: return TA_OPEN; case TA_HIGH_IDX: return TA_HIGH; case TA_LOW_IDX: return TA_LOW; } } else if( TA_IS_INTEGER_CMD(readOp) ) { switch( TA_GET_IDX(readOp) ) { case TA_VOLUME_IDX: return TA_VOLUME; case TA_OPENINTEREST_IDX: return TA_OPENINTEREST; default: return TA_TIMESTAMP; } } TA_FATAL_RET( NULL, readOp, 0, TA_ALL ); /* Unreachable code: * return TA_ALL; */ }
unsigned int TA_FileIndexIdentifyFileDepth( TA_FileIndexPriv *data ) { TA_List *listLocationToken; TA_TokenInfo *info; unsigned int latestPathPortionDepth; unsigned int currentDepth; /* Identify the last portion of the path where * the directory path is all resolved. * * It is imperative that the last token be TA_TOK_END. */ listLocationToken = data->listLocationToken; info = TA_ListAccessHead( listLocationToken ); latestPathPortionDepth = 1; currentDepth = 0; while( info ) { currentDepth++; if( info->id == TA_TOK_END ) return latestPathPortionDepth; if( info->id == TA_TOK_SEP ) latestPathPortionDepth = currentDepth; info = TA_ListAccessNext( listLocationToken ); } /* Should never get here. */ TA_FATAL_RET( data->libHandle, NULL, currentDepth, latestPathPortionDepth, 0 ); }
unsigned int TA_TokenMaxSize( TA_Libc *libHandle, TA_TokenId id ) { /* NOTE: The following data structure MUST correspond exactly to the * TA_TokenId enumeration order! */ /* Zero indicates that the size is not pre-determined. */ static int tokenSize[] = { 0, /* TA_TOK_FIX */ 4, /* TA_TOK_YYYY */ 2, /* TA_TOK_YY */ 0, /* TA_TOK_Y */ 0, /* TA_TOK_M */ 2, /* TA_TOK_MM */ 3, /* TA_TOK_MMM */ 0, /* TA_TOK_D */ 2, /* TA_TOK_DD */ 0, /* TA_TOK_CAT */ 0, /* TA_TOK_CATC */ 0, /* TA_TOK_CATX */ 0, /* TA_TOK_CATT */ 0, /* TA_TOK_SYM */ 0, /* TA_TOK_SYMF */ 1, /* TA_TOK_SEP */ 0, /* TA_TOK_WILD */ 1, /* TA_TOK_WILD_CHAR */ 0, /* TA_TOK_OPEN */ 0, /* TA_TOK_HIGH */ 0, /* TA_TOK_LOW */ 0, /* TA_TOK_CLOSE */ 0, /* TA_TOK_VOLUME */ 0, /* TA_TOK_OPENINTEREST */ 0, /* TA_TOK_HOUR */ 0, /* TA_TOK_MIN */ 0, /* TA_TOK_SEC */ 2, /* TA_TOK_HH */ 2, /* TA_TOK_MN */ 2, /* TA_TOK_SS */ 0, /* TA_TOK_SKIP_REAL */ 0, /* TA_TOK_SKIP_INTEGER */ 0, /* TA_TOK_SKIP_N_CHAR */ 0, /* TA_TOK_SKIP_N_HEADER_LINE */ 0, /* TA_END */ }; /* Note: 0 means unspecified number of character (wild) */ if( (id == TA_INVALID_TOKEN_ID) || (id < 0) ) { TA_FATAL_RET( libHandle, NULL, id, TA_INVALID_TOKEN_ID, 0 ); } return tokenSize[id]; }