ParametersMap VehicleServicesListService::run( std::ostream& stream, const Request& request ) const { ParametersMap map; BOOST_FOREACH(const VehicleService::Registry::value_type& item, _env->getRegistry<VehicleService>()) { const VehicleService& vs(*item.second); // Date filter if(!_date.is_not_a_date() && !vs.isActive(_date)) { continue; } // Name filter if(!_name.empty()) { if( vs.getName().size() < _name.size() || vs.getName().substr(0, _name.size()) != _name ){ continue; } } boost::shared_ptr<ParametersMap> vsMap(new ParametersMap); vs.toParametersMap(*vsMap, true); map.insert(TAG_VEHICLE_SERVICE, vsMap); } if(_page) { if(map.hasSubMaps(TAG_VEHICLE_SERVICE)) { BOOST_FOREACH(const boost::shared_ptr<ParametersMap>& vsMap, map.getSubMaps(TAG_VEHICLE_SERVICE)) { vsMap->merge(getTemplateParameters()); _page->display(stream, request, *vsMap); } } }