libxmlrpc перебирает структуру - PullRequest
0 голосов
/ 19 ноября 2011

Я внедряю libxmlrpc в проект C ++, так или иначе, мой RPC-сервер возвратил структуру с 52 структурами-членами в них.

Я не знаю, что это за ключи, поскольку они являются непрозрачными ссылками, поэтому я не могу на них полагаться.

Как я могу перебрать структуру, я бы подумал, что это со следующим кодом:

XmlRpcValue param_array = XmlRpcValue::makeArray();
param_array.arrayAppendItem(XmlRpcValue::makeString(this->sessionKey));
param_array.arrayAppendItem(XmlRpcValue::makeString("petabytes"));

XmlRpcValue result = ServerCall("Charter.getDataWarehouse.storage.capacity", param_array, url);
int index = 0;
while(index < result.structSize())
{
    XmlRpcValue Data = result.getStruct();


    //Would have thought it would work with this ;( shit documentation libxmlrpc has, grrrr
    //Data.structGetKeyAndValue(index);

    //This for example works, because I know the opaque reference, but in real life I wont
    cout << Data.structGetValue("OpaqueRef:d4e60db6-2271-b0ac-d362-1b51220980af").structSize() << endl;
    index++;
}

Однако ошибки Data.structGetKeyAndValue (index) с:

no matching function for call to 'XmlRpcValue::structGetKeyAndValue(int&)

Это нормально, я понимаю, что это не публичная (ну, я думаю, это не публичная функция-член) xmlrpcvalue, однако я не могу найти ничего, что позволило бы мне сделать это.

Кто-нибудь имеет опыт работы с этим?

1 Ответ

0 голосов
/ 20 ноября 2011

Некоторое быстрое поиск в Google, кажется, указывает, что вы неправильно указали сигнатуру функции:

void XmlRpcValue::structGetKeyAndValue(const int index, std::string& out_key, XmlRpcValue& out_value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...