- index(site);
-}
-
-void FilesystemMetadataProvider::index(EntityDescriptor* site, time_t validUntil)
-{
- if (validUntil < site->getValidUntilEpoch())
- site->setValidUntil(validUntil);
-
- auto_ptr_char id(site->getEntityID());
- if (id.get()) {
- m_sites.insert(make_pair(id.get(),site));
- }
-}
-
-void FilesystemMetadataProvider::index(EntitiesDescriptor* group, time_t validUntil)
-{
- if (validUntil < group->getValidUntilEpoch())
- group->setValidUntil(validUntil);
-
- auto_ptr_char name(group->getName());
- if (name.get()) {
- m_groups.insert(make_pair(name.get(),group));
- }
-
- const vector<EntitiesDescriptor*>& groups=const_cast<const EntitiesDescriptor*>(group)->getEntitiesDescriptors();
- for (vector<EntitiesDescriptor*>::const_iterator i=groups.begin(); i!=groups.end(); i++)
- index(*i,group->getValidUntilEpoch());
-
- const vector<EntityDescriptor*>& sites=const_cast<const EntitiesDescriptor*>(group)->getEntityDescriptors();
- for (vector<EntityDescriptor*>::const_iterator j=sites.begin(); j!=sites.end(); j++)
- index(*j,group->getValidUntilEpoch());
-}
-
-const EntitiesDescriptor* FilesystemMetadataProvider::getEntitiesDescriptor(const char* name, bool strict) const
-{
- pair<groupmap_t::const_iterator,groupmap_t::const_iterator> range=m_groups.equal_range(name);
-
- time_t now=time(NULL);
- for (groupmap_t::const_iterator i=range.first; i!=range.second; i++)
- if (now < i->second->getValidUntilEpoch())
- return i->second;
-
- if (!strict && range.first!=range.second)
- return range.first->second;
-
- return NULL;
-}
-
-const EntitiesDescriptor* FilesystemMetadataProvider::getEntitiesDescriptor(const XMLCh* name, bool strict) const
-{
- auto_ptr_char temp(name);
- return getEntitiesDescriptor(temp.get(),strict);
-}
-
-const EntityDescriptor* FilesystemMetadataProvider::getEntityDescriptor(const char* name, bool strict) const
-{
- pair<sitemap_t::const_iterator,sitemap_t::const_iterator> range=m_sites.equal_range(name);
-
- time_t now=time(NULL);
- for (sitemap_t::const_iterator i=range.first; i!=range.second; i++)
- if (now < i->second->getValidUntilEpoch())
- return i->second;
-
- if (!strict && range.first!=range.second)
- return range.first->second;
-
- return NULL;
-}
-
-const EntityDescriptor* FilesystemMetadataProvider::getEntityDescriptor(const XMLCh* name, bool strict) const
-{
- auto_ptr_char temp(name);
- return getEntityDescriptor(temp.get(),strict);