Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

InfoServiceMDS.h

Go to the documentation of this file.
00001 /*
00002  *
00003  * InfoServiceMDS.h
00004  *
00005  * Copyright (c) 2002 INFN, CERN on behalf of the EU DataGrid.
00006  * For license conditions see LICENSE file or 
00007  * http://www.edg.org/license.html
00008  * 
00009  */
00010 
00011 #ifndef EDGReplicaManager_InfoServiceMDS_H
00012 #define EDGReplicaManager_InfoServiceMDS_H 1
00013 
00014 /*
00015  * @author <a href="mailto:Peter.Kunszt@cern.ch">Peter Kunszt</a>
00016  */
00017 
00018 #include "EdgReplicaManager/InfoService.h"
00019 #include "EdgReplicaManager/LDAPQuery.h"
00020 
00021 namespace EdgReplicaManager {
00022 
00024     class InfoServiceMDS : public InfoService {
00025     public:
00026 
00030         InfoServiceMDS(const std::string &vo, bool secure, const std::string &url, const std::string &root )  
00031             throw ( InfoServiceException );
00032 
00035         ~InfoServiceMDS();
00036 
00038         const std::vector<std::string>& getServiceURIs(const std::string &serviceType, 
00039                                   const std::string &domain) 
00040             throw(InfoServiceException);
00041 
00043         std::string getCloseSE(const std::string& ceID) throw ( InfoServiceException );
00044 
00045     private:
00046         void initLDAP() throw(LDAPException);
00047         const std::vector<std::string>& doLDAPQuery(const std::string& constraint,
00048                                                     const std::string& attr) throw(LDAPException);
00049 
00050         std::string m_root;
00051         std::string m_url;
00052         LDAPQuery* m_ldap;
00053 
00054     };
00055 
00056 };
00057 
00058 #endif
The EU DataGrid Project. All rights reserved.