#ifndef MSP_HTTP_CLIENT_H_
#define MSP_HTTP_CLIENT_H_
+#include <memory>
#include <string>
#include <sigc++/signal.h>
#include <msp/io/eventdispatcher.h>
void resolve_failed(unsigned, const std::exception &);
};
- Net::StreamSocket *sock;
- IO::EventDispatcher *event_disp;
- Net::Resolver *resolver;
- ResolveListener *resolve_listener;
- unsigned resolve_tag;
- std::string user_agent;
- Request *request;
- Response *response;
+ std::unique_ptr<Net::StreamSocket> sock;
+ IO::EventDispatcher *event_disp = nullptr;
+ Net::Resolver *resolver = nullptr;
+ std::unique_ptr<ResolveListener> resolve_listener;
+ unsigned resolve_tag = 0;
+ std::string user_agent = "libmspnet/1.0";
+ std::unique_ptr<Request> request;
+ std::unique_ptr<Response> response;
std::string in_buf;
Client(const Client &);
Client &operator=(const Client &);
public:
- Client();
~Client();
void use_event_dispatcher(IO::EventDispatcher *);
void tick();
void wait_response();
void abort();
- const Request *get_request() const { return request; }
- const Response *get_response() const { return response; }
+ const Request *get_request() const { return request.get(); }
+ const Response *get_response() const { return response.get(); }
private:
void address_resolved(unsigned, const Net::SockAddr &);
void resolve_failed(unsigned, const std::exception &);