Go to the documentation of this file.00001
00002
00003 #if defined(_MSC_VER)
00004 # pragma warning(disable:4786) // identifier was truncated in debug info
00005 #endif
00006
00007
00008 #include <iostream>
00009 #include <fstream>
00010 #include <algorithm>
00011 #include <stdlib.h>
00012
00013
00014 #include "XmlRpc.h"
00015 using namespace XmlRpc;
00016
00017
00018
00019 XmlRpcServer s;
00020
00021
00022 class TestBase64 : public XmlRpcServerMethod
00023 {
00024 public:
00025 TestBase64(XmlRpcServer* s) : XmlRpcServerMethod("TestBase64", s) {}
00026
00027 void execute(XmlRpcValue& params, XmlRpcValue& result)
00028 {
00029 std::ifstream infile("pngnow.png", std::ios::binary);
00030 if (infile.fail())
00031 infile.open("../pngnow.png", std::ios::binary);
00032 if (infile.fail())
00033 result = "Could not open file pngnow.png";
00034 else {
00035
00036 XmlRpcValue::BinaryData& data = result;
00037 int n = 0;
00038 for (;; ++n) {
00039 char c = infile.get();
00040 if (infile.eof()) break;
00041 data.push_back(c);
00042 }
00043 std::cerr << "Read " << n << " bytes from pngnow.png\n";
00044 }
00045 }
00046 } TestBase64(&s);
00047
00048
00049
00050 int main(int argc, char* argv[])
00051 {
00052 if (argc != 2) {
00053 std::cerr << "Usage: TestBase64Server serverPort\n";
00054 return -1;
00055 }
00056 int port = atoi(argv[1]);
00057
00058
00059
00060
00061 s.bindAndListen(port);
00062
00063
00064 s.work(-1.0);
00065
00066 return 0;
00067 }
00068