00001
00002
00003
00004
00005
00006
00007
00008
00018 #ifndef _GSISocketClient_h_
00019 #define _GSISocketClient_h_
00020
00022 #include "edg/workload/common/socket++/SocketClient.h"
00024 #include <globus_gss_assist.h>
00025
00026 namespace edg {
00027 namespace workload {
00028 namespace common {
00029 namespace socket_pp {
00030
00032 class GSISocketAgent;
00033
00041 class GSISocketClient : public SocketClient
00042 {
00043
00044 public:
00050 GSISocketClient(const std::string&, int);
00054 virtual ~GSISocketClient();
00055
00060 void ServerContact(const std::string& contact) { _server_contact = contact; }
00065 void DelegateCredentials(bool mode) { _delegate_credentials = mode; }
00066
00070
00071
00072
00073
00078 virtual bool Open();
00083 virtual bool Close();
00084
00085 protected:
00092 bool InitGSIAuthentication(int sock);
00093
00094 private:
00096 gss_ctx_id_t gss_context;
00098 std::string _server_contact;
00100 bool _delegate_credentials;
00101
00102 };
00103
00104 }
00105 }
00106 }
00107 }
00108
00109 #endif
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121