/* */ #include "XmlRpcDiskWriter.h" #include "DlAbortEx.h" #include "message.h" #include "ValueBase.h" namespace aria2 { namespace rpc { XmlRpcDiskWriter::XmlRpcDiskWriter() : parser_(&psm_) {} XmlRpcDiskWriter::~XmlRpcDiskWriter() {} void XmlRpcDiskWriter::initAndOpenFile(int64_t totalLength) { parser_.reset(); } void XmlRpcDiskWriter::writeData(const unsigned char* data, size_t len, int64_t offset) { // Return value is ignored here but handled in finalize() parser_.parseUpdate(reinterpret_cast(data), len); } int XmlRpcDiskWriter::finalize() { return parser_.parseFinal(0, 0); } RpcRequest XmlRpcDiskWriter::getResult() const { SharedHandle params; if(downcast(psm_.getCurrentFrameValue())) { params = static_pointer_cast(psm_.getCurrentFrameValue()); } else { params = List::g(); } return RpcRequest(psm_.getMethodName(), params); } int XmlRpcDiskWriter::reset() { return parser_.reset(); } } // namespace rpc } // namespace aria2