void Controller::ExecuteWs(XaLibWs& Ws){ if(REQUEST.CalledObject=="XaUserLogin") { unique_ptr<XaUserLogin> UserLogin (new XaUserLogin()); UserLogin->Execute(); } else if(REQUEST.CalledObject=="XaOuType") { unique_ptr<XaOuType> OuType (new XaOuType()); OuType->Execute(); } else if(REQUEST.CalledObject=="XaOu") { unique_ptr<XaOu> Ou (new XaOu()); Ou->Execute(); } else if(REQUEST.CalledObject=="XaUser") { unique_ptr<XaUser> User (new XaUser()); User->Execute(); } else if(REQUEST.CalledObject=="XaUserType") { unique_ptr<XaUserType> UserType (new XaUserType()); UserType->Execute(); } else if(REQUEST.CalledObject=="XaRbacRole") { unique_ptr<XaRbacRole> RbacRole (new XaRbacRole()); RbacRole->Execute(); } else if(REQUEST.CalledObject=="XaRbacRoleRXaUser") { unique_ptr<XaRbacRoleRXaUser> RbacRoleRXaUser (new XaRbacRoleRXaUser()); RbacRoleRXaUser->Execute(); } else if(REQUEST.CalledObject=="XaUserAddressPhone") { unique_ptr<XaUserAddressPhone> AddressPhone (new XaUserAddressPhone()); AddressPhone->Execute(); } else if(REQUEST.CalledObject=="XaUserAddressMail") { unique_ptr<XaUserAddressMail> AddressMail (new XaUserAddressMail()); AddressMail->Execute(); } else if(REQUEST.CalledObject=="XaUserAddressGeo") { unique_ptr<XaUserAddressGeo> AddressGeo (new XaUserAddressGeo()); AddressGeo->Execute(); } else if(REQUEST.CalledObject=="XaUserAddressPhoneType") { unique_ptr<XaUserAddressPhoneType> AddressPhoneType (new XaUserAddressPhoneType()); AddressPhoneType->Execute(); } else if(REQUEST.CalledObject=="XaUserAddressPhoneCode") { unique_ptr<XaUserAddressPhoneCode> AddressPhoneCode (new XaUserAddressPhoneCode()); AddressPhoneCode->Execute(); } else if(REQUEST.CalledObject=="XaUserAddressMailType") { unique_ptr<XaUserAddressMailType> AddressMailType (new XaUserAddressMailType()); AddressMailType->Execute(); } else if(REQUEST.CalledObject=="XaUserAddressGeoType") { unique_ptr<XaUserAddressGeoType> AddressGeoType (new XaUserAddressGeoType()); AddressGeoType->Execute(); } else { LOG.Write("ERR", __FILE__, __FUNCTION__,__LINE__,"WS Called Object Doesn't Exist -> "+REQUEST.CalledObject); throw 119; } };
static unsigned MechDo( unsigned select, unsigned parm ) { unsigned long size; unsigned result = 0; DIPHDL( type, th ); dip_type_info info; mad_type_info mti; switch( select ) { case 0: DoAssign(); break; case 1: DoMul(); break; case 2: DoDiv(); break; case 3: DoMod(); break; case 4: DoMinus(); break; case 5: DoShift(); break; case 6: DoAnd(); break; case 7: DoXor(); break; case 8: DoOr(); break; case 9: DoAddr(); break; case 10: ClassToTypeInfo( parm, &info ); DoPoints( info.kind ); break; case 11: DoField(); break; case 12: DoCall( Num, parm ); break; case 13: DoConvert(); break; case 14: DoPlus(); break; case 15: MakeAddr(); break; case 16: result = TstEQ( parm ); break; case 17: result = TstLT( parm ); break; case 18: result = TstTrue( parm ); break; case 19: result = TstExist( parm ); break; case 20: size = ExprSP->info.size; PopEntry(); PushNum( size ); break; case 21: TypeBase( ExprSP->th, th, NULL, NULL ); PopEntry(); PushType( th ); break; case 22: GetMADTypeDefault( MTK_ADDRESS, &mti ); size = (mti.b.bits - mti.a.seg.bits) / BITS_PER_BYTE; if( parm ) { size += sizeof( addr_seg ); TypePointer( ExprSP->th, TM_FAR, size, th ); } else { TypePointer( ExprSP->th, TM_NEAR, size, th ); } PopEntry(); PushType( th ); break; case 23: result = UserType( th ); if( result ) { PopEntry(); PushType( th ); } break; case 24: DoMakeComplex(); break; case 25: DoStringConcat(); break; case 26: DoLConvert(); break; case 27: DoPlusScaled(); break; case 28: DoMinusScaled(); break; case 29: DoPoints( TI_KIND_EXTRACT( parm ) ); break; case 30: info.kind = TK_POINTER; info.size = TI_SIZE_EXTRACT( parm ); info.modifier = TI_MOD_EXTRACT( parm ); FillInDefaults( &info ); TypePointer( ExprSP->th, info.modifier, info.size, th ); PopEntry(); PushType( th ); break; case 31: if( parm ) { /* file scope */ if( ExprSP->flags & SF_NAME ) { ExprSP->v.li.file_scope = TRUE; } else { Error( ERR_LOC, LIT( ERR_WANT_NAME ) ); } } else { /* in a namespace */ DoScope(); } break; } return( result ); }
static ssl_value MechDo( unsigned select, ssl_value parm ) { unsigned long size; ssl_value result; DIPHDL( type, th ); dig_type_info ti; mad_type_info mti; result = 0; switch( select ) { case 0: DoAssign(); break; case 1: DoMul(); break; case 2: DoDiv(); break; case 3: DoMod(); break; case 4: DoMinus(); break; case 5: DoShift(); break; case 6: DoAnd(); break; case 7: DoXor(); break; case 8: DoOr(); break; case 9: DoAddr(); break; case 10: ClassToTypeInfo( parm, &ti ); DoPoints( ti.kind ); break; case 11: DoField(); break; case 12: DoCall( Num, SSL2BOOL( parm ) ); break; case 13: DoConvert(); break; case 14: DoPlus(); break; case 15: MakeAddr(); break; case 16: result = ( TstEQ( SSL2INT( parm ) ) != 0 ); break; case 17: result = ( TstLT( SSL2INT( parm ) ) != 0 ); break; case 18: result = ( TstTrue( SSL2INT( parm ) ) != 0 ); break; case 19: result = ( TstExist( SSL2INT( parm ) ) != 0 ); break; case 20: size = ExprSP->ti.size; PopEntry(); PushNum( size ); break; case 21: DIPTypeBase( ExprSP->th, th, NULL, NULL ); PopEntry(); PushType( th ); break; case 22: GetMADTypeDefault( MTK_ADDRESS, &mti ); size = BITS2BYTES( mti.b.bits - mti.a.seg.bits ); if( parm ) { size += sizeof( addr_seg ); DIPTypePointer( ExprSP->th, TM_FAR, size, th ); } else { DIPTypePointer( ExprSP->th, TM_NEAR, size, th ); } PopEntry(); PushType( th ); break; case 23: result = UserType( th ); if( result ) { PopEntry(); PushType( th ); } break; case 24: DoMakeComplex(); break; case 25: DoStringConcat(); break; case 26: DoLConvert(); break; case 27: DoPlusScaled(); break; case 28: DoMinusScaled(); break; case 29: DoPoints( TI_KIND_EXTRACT( parm ) ); break; case 30: ti.kind = TK_POINTER; ti.size = TI_SIZE_EXTRACT( parm ); ti.modifier = TI_MOD_EXTRACT( parm ); ti.deref = false; FillInDefaults( &ti ); DIPTypePointer( ExprSP->th, ti.modifier, ti.size, th ); PopEntry(); PushType( th ); break; case 31: if( SSL2BOOL( parm ) ) { /* file scope */ if( ExprSP->flags & SF_NAME ) { ExprSP->v.li.file_scope = true; } else { Error( ERR_LOC, LIT_ENG( ERR_WANT_NAME ) ); } } else { /* in a namespace */ DoScope(); } break; } return( result ); }