Fix bind shared_ptr for HttpsClient.

This commit is contained in:
Arthur Britto
2012-07-02 00:11:20 -07:00
parent f794254979
commit c5234545dc
2 changed files with 24 additions and 10 deletions

View File

@@ -67,7 +67,7 @@ void HttpsClient::httpsNext()
{
mDeadline.async_wait(
boost::bind(
&HttpsClient::handleDeadline,
&HttpsClient::ShandleDeadline,
shared_from_this(),
boost::asio::placeholders::error));
}
@@ -78,7 +78,7 @@ void HttpsClient::httpsNext()
mResolver.async_resolve(*mQuery,
boost::bind(
&HttpsClient::handleResolve,
&HttpsClient::ShandleResolve,
shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::iterator));
@@ -149,7 +149,7 @@ void HttpsClient::handleResolve(
mSocketSsl.lowest_layer(),
itrEndpoint,
boost::bind(
&HttpsClient::handleConnect,
&HttpsClient::ShandleConnect,
shared_from_this(),
boost::asio::placeholders::error));
}
@@ -183,7 +183,7 @@ void HttpsClient::handleConnect(const boost::system::error_code& ecResult)
if (!mShutdown)
{
mSocketSsl.async_handshake(boost::asio::ssl::stream<boost::asio::ip::tcp::socket>::client,
boost::bind(&HttpsClient::handleRequest,
boost::bind(&HttpsClient::ShandleRequest,
shared_from_this(),
boost::asio::placeholders::error));
}
@@ -219,7 +219,7 @@ void HttpsClient::handleRequest(const boost::system::error_code& ecResult)
boost::asio::async_write(
mSocketSsl,
mRequest,
boost::bind(&HttpsClient::handleWrite,
boost::bind(&HttpsClient::ShandleWrite,
shared_from_this(),
boost::asio::placeholders::error));
}
@@ -244,7 +244,7 @@ void HttpsClient::handleWrite(const boost::system::error_code& ecResult)
mSocketSsl,
mResponse,
boost::asio::transfer_all(),
boost::bind(&HttpsClient::handleData,
boost::bind(&HttpsClient::ShandleData,
shared_from_this(),
boost::asio::placeholders::error));
}

View File

@@ -19,6 +19,8 @@
class HttpsClient : public boost::enable_shared_from_this<HttpsClient>
{
private:
typedef boost::shared_ptr<HttpsClient> pointer;
boost::asio::ssl::context mCtx;
boost::asio::ip::tcp::resolver mResolver;
boost::shared_ptr<boost::asio::ip::tcp::resolver::query> mQuery;
@@ -38,16 +40,28 @@ private:
boost::posix_time::time_duration mTimeout;
void handleDeadline(const boost::system::error_code& ecResult);
static void ShandleDeadline(pointer This, const boost::system::error_code& ecResult)
{ This->handleDeadline(ecResult); }
void handleResolve(
const boost::system::error_code& ecResult,
boost::asio::ip::tcp::resolver::iterator endpoint_iterator
);
void handleResolve(const boost::system::error_code& ecResult, boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
static void ShandleResolve(pointer This, const boost::system::error_code& ecResult, boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
{ This->handleResolve(ecResult, endpoint_iterator); }
void handleConnect(const boost::system::error_code& ecResult);
static void ShandleConnect(pointer This, const boost::system::error_code& ecResult)
{ This->handleConnect(ecResult); }
void handleRequest(const boost::system::error_code& ecResult);
static void ShandleRequest(pointer This, const boost::system::error_code& ecResult)
{ This->handleRequest(ecResult); }
void handleWrite(const boost::system::error_code& ecResult);
static void ShandleWrite(pointer This, const boost::system::error_code& ecResult)
{ This->handleWrite(ecResult); }
void handleData(const boost::system::error_code& ecResult);
static void ShandleData(pointer This, const boost::system::error_code& ecResult)
{ This->handleData(ecResult); }
void parseData();
void httpsNext();