void Forum::applyService(ServiceWalkerPtr walker) { switch( walker->type() ) { case walker::taxCollector: { TaxCollectorPtr txcl = ptr_cast<TaxCollector>( walker ); if( txcl.isValid() ) { float tax = txcl->takeMoney();; _d->taxValue += tax; Logger::warning( "Forum: collect money %f. All money %f", tax, _d->taxValue ); } } break; default: break; } ServiceBuilding::applyService( walker ); }