00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef EDGReplicaManager_InfoServiceMDS_H
00012 #define EDGReplicaManager_InfoServiceMDS_H 1
00013
00014
00015
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