http = nullptr;
}
+void
+Downloader::CbDialer::print(std::ostream &os) const
+{
+ os << " Http Status:" << status << Raw("body data", object.rawContent(), 64).hex();
+}
+
Downloader::Downloader(SBuf &url, AsyncCall::Pointer &aCallback, unsigned int level):
AsyncJob("Downloader"),
url_(url),
public:
/// Callback data to use with Downloader callbacks.
- class CbDialer {
+ class CbDialer: public CallDialer {
public:
CbDialer(): status(Http::scNone) {}
virtual ~CbDialer() {}
+
+ /* CallDialer API */
+ virtual bool canDial(AsyncCall &call) = 0;
+ virtual void dial(AsyncCall &call) = 0;
+ virtual void print(std::ostream &os) const;
+
SBuf object;
Http::StatusCode status;
};
}
/// CallDialer to allow use Downloader objects within PeerConnector class.
-class PeerConnectorCertDownloaderDialer: public CallDialer, public Downloader::CbDialer
+class PeerConnectorCertDownloaderDialer: public Downloader::CbDialer
{
public:
typedef void (Ssl::PeerConnector::*Method)(SBuf &object, int status);
/* CallDialer API */
virtual bool canDial(AsyncCall &call) { return peerConnector_.valid(); }
- void dial(AsyncCall &call) { ((&(*peerConnector_))->*method_)(object, status); }
- virtual void print(std::ostream &os) const {
- os << '(' << peerConnector_.get() << ", Http Status:" << status << ')';
- }
-
+ virtual void dial(AsyncCall &call) { ((&(*peerConnector_))->*method_)(object, status); }
Method method_; ///< The Ssl::PeerConnector method to dial
CbcPointer<Ssl::PeerConnector> peerConnector_; ///< The Ssl::PeerConnector object
};