00001
00002
00003
00004
00005
00006
00007
00008
00018 #ifndef _GSISocketAgent_h_
00019 #define _GSISocketAgent_h_
00020
00022 #include "edg/workload/common/socket++/SocketAgent.h"
00024 #include <globus_gss_assist.h>
00025
00026 namespace edg {
00027 namespace workload {
00028 namespace common {
00029 namespace socket_pp {
00030
00039 class GSISocketAgent : public SocketAgent
00040 {
00041 public:
00047 virtual bool Send(const std::string&);
00053 virtual bool Send(int);
00054
00060 virtual bool Receive(int&);
00066 virtual bool Receive(std::string&);
00071 const std::string& CredentialsFile() const { return _delegated_credentials_file; }
00076 const std::string& CertificateSubject() const { return _certificate_subject; }
00082 const std::string& GridmapName() const { return _gridmap_name; }
00086 GSISocketAgent();
00090 virtual ~GSISocketAgent();
00091
00092 private:
00097 int socket() const { return sck; }
00098
00099 private:
00101 friend class GSISocketServer;
00103 friend class GSISocketClient;
00104
00106 gss_ctx_id_t gss_context;
00108 gss_cred_id_t credential;
00110 std::string _delegated_credentials_file;
00112 std::string _certificate_subject;
00114 std::string _gridmap_name;
00115 };
00116
00117 }
00118 }
00119 }
00120 }
00121
00122
00123 #endif
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133