ARSperl
view release on metacpan or search on metacpan
supportrev_generated.c view on Meta::CPAN
}
}
}else{
ARError_add( AR_RETURN_ERROR, AP_ERR_GENERAL, "rev_ARFieldLimitList: hash value is not an array reference" );
ARError_add( AR_RETURN_ERROR, AP_ERR_GENERAL, k );
return -1;
}
}
}
}else{
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, "rev_ARFieldLimitList: hv_fetch returned null");
return -2;
}
}else{
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, "rev_ARFieldLimitList: key doesn't exist");
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, k );
return -2;
}
}else{
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL, "rev_ARFieldLimitList: first argument is not a hash");
return -1;
}
return 0;
}
int
rev_ARFieldLimitStruct( ARControlStruct *ctrl, HV *h, char *k, ARFieldLimitStruct *p ){
SV **val;
int i = 0;
if( !p ){
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL, "rev_ARFieldLimitStruct: AR Object param is NULL" );
return -1;
}
if( SvTYPE((SV*) h) == SVt_PVHV ){
// printf( "ARFieldLimitStruct: k = <%s>\n", k );
if( hv_exists(h,k,strlen(k)) ){
val = hv_fetch( h, k, strlen(k), 0 );
if( val && *val ){
{
{
char *pcase = NULL;
char errText[512];
// pcase = SvPV_nolen(*val);
// p->dataType = caseLookUpTypeNumber( (TypeMapStruct*) dataType, pcase );
HV *h2 = (HV* ) SvRV((SV*) *val);
SV** val = hv_fetch( h2, "dataType", 8, 0 );
p->dataType = SvIV(*val);
switch( p->dataType ){
case AR_DATA_TYPE_DIARY:
{
rev_ARDiaryLimitsStruct( ctrl, h, k, &(p->u.diaryLimits) );
}
break;
#if AR_CURRENT_API_VERSION >= 8
case AR_DATA_TYPE_VIEW:
{
rev_ARViewLimits( ctrl, h, k, &(p->u.viewLimits) );
}
break;
#endif
case AR_DATA_TYPE_INTEGER:
{
rev_ARIntegerLimitsStruct( ctrl, h, k, &(p->u.intLimits) );
}
break;
case AR_DATA_TYPE_CHAR:
{
rev_ARCharLimitsStruct( ctrl, h, k, &(p->u.charLimits) );
}
break;
#if AR_CURRENT_API_VERSION >= 9
case AR_DATA_TYPE_DATE:
{
rev_ARDateLimitsStruct( ctrl, h, k, &(p->u.dateLimits) );
}
break;
#endif
#if AR_CURRENT_API_VERSION >= 8
case AR_DATA_TYPE_ENUM:
{
rev_AREnumLimitsStruct( ctrl, h, k, &(p->u.enumLimits) );
}
break;
#endif
#if AR_CURRENT_API_VERSION >= 9
case AR_DATA_TYPE_CURRENCY:
{
rev_ARCurrencyLimitsStruct( ctrl, h, k, &(p->u.currencyLimits) );
}
break;
#endif
case AR_DATA_TYPE_COLUMN:
{
rev_ARColumnLimitsStruct( ctrl, h, k, &(p->u.columnLimits) );
}
break;
case AR_DATA_TYPE_ATTACH:
{
rev_ARAttachLimitsStruct( ctrl, h, k, &(p->u.attachLimits) );
}
break;
#if AR_CURRENT_API_VERSION >= 8
case AR_DATA_TYPE_DISPLAY:
{
rev_ARDisplayLimits( ctrl, h, k, &(p->u.displayLimits) );
}
break;
#endif
case AR_DATA_TYPE_TABLE:
{
rev_ARTableLimitsStruct( ctrl, h, k, &(p->u.tableLimits) );
}
break;
case AR_DATA_TYPE_DECIMAL:
{
rev_ARDecimalLimitsStruct( ctrl, h, k, &(p->u.decimalLimits) );
}
break;
case AR_DATA_TYPE_REAL:
{
rev_ARRealLimitsStruct( ctrl, h, k, &(p->u.realLimits) );
}
break;
default:
sprintf( errText, "rev_ARFieldLimitStruct: invalid switch value %d", p->dataType );
ARError_add( AR_RETURN_ERROR, AP_ERR_GENERAL, errText );
}
}
}
}else{
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, "rev_ARFieldLimitStruct: hv_fetch returned null");
return -2;
}
}else{
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, "rev_ARFieldLimitStruct: key doesn't exist");
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL, k );
return -2;
}
}else{
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL, "rev_ARFieldLimitStruct: first argument is not a hash");
return -1;
}
return 0;
}
int
rev_ARFieldMappingList( ARControlStruct *ctrl, HV *h, char *k, ARFieldMappingList *p ){
SV **val;
int i = 0;
if( !p ){
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL, "rev_ARFieldMappingList: AR Object param is NULL" );
return -1;
}
if( SvTYPE((SV*) h) == SVt_PVHV ){
// printf( "ARFieldMappingList: k = <%s>\n", k );
if( hv_exists(h,k,strlen(k)) ){
val = hv_fetch( h, k, strlen(k), 0 );
if( val && *val ){
{
{
if( SvTYPE(SvRV(*val)) == SVt_PVAV ){
int i = 0, num = 0;
AV *ar = (AV*) SvRV((SV*) *val);
num = av_len(ar) + 1;
p->numItems = num;
if( num == 0 ) return 0;
p->mappingList = (ARFieldMappingStruct*) MALLOCNN( sizeof(ARFieldMappingStruct) * num );
( run in 0.755 second using v1.01-cache-2.11-cpan-140bd7fdf52 )