本文整理汇总了C++中xmlrpc_c::paramList::getArray方法的典型用法代码示例。如果您正苦于以下问题:C++ paramList::getArray方法的具体用法?C++ paramList::getArray怎么用?C++ paramList::getArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xmlrpc_c::paramList
的用法示例。
在下文中一共展示了paramList::getArray方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
void execute(xmlrpc_c::paramList const& paramList, xmlrpc_c::value* const retvalP)
{
xmlrpc_c::value_array
/*std::vector<xmlrpc_c::value>*/ symbols = paramList.getArray(0);
std::vector<xmlrpc_c::value> csymbols = symbols.vectorValueValue();
vector<string> ss;
for(unsigned int i=0; i<csymbols.size(); i++)
ss.push_back(xmlrpc_c::value_string(csymbols[i]).cvalue());
subscribed_symbols = ss;
*retvalP = xmlrpc_c::value_boolean(true);
}
示例2: set_fill_pattern
void set_fill_pattern(xmlrpc_c::paramList const& paramList, xmlrpc_c::value* retvalP) {
ACE_TRACE("modTM_VC_Gen_Packet_Interface::set_fill_pattern");
const std::vector<xmlrpc_c::value> xml_rpc_pattern = paramList.getArray(2);
std::vector<uint8_t> fillPattern;
for (unsigned i = 0; i < xml_rpc_pattern.size(); i++ ) {
fillPattern[i] = xmlrpc_c::value_int(xml_rpc_pattern[i]);
}
find_handler(paramList)->setFillPattern(fillPattern);
*retvalP = xmlrpc_c::value_nil();
}
示例3: set_rate_limit
virtual void set_rate_limit(xmlrpc_c::paramList const& paramList, xmlrpc_c::value* retvalP) {
ACE_TRACE("modEmulateRate_Interface::set_rate");
int rate = 0, startTime = -1.0;
if ( paramList[2].type() != xmlrpc_c::value::TYPE_ARRAY ) {
rate = paramList.getInt(2);
}
else {
const std::vector<xmlrpc_c::value> arrayData = paramList.getArray(2);
startTime = xmlrpc_c::value_double(arrayData[0]);
rate = xmlrpc_c::value_double(arrayData[1]);
}
find_handler(paramList)->setRateLimit(rate, startTime);
*retvalP = xmlrpc_c::value_nil();
}
示例4: data
void RemoteKinematics::PositionMethod::execute(xmlrpc_c::paramList const& paramList,
xmlrpc_c::value* const resultP) {
// n:AA
if (paramList.size() == 2) {
vector<value> keys = paramList.getArray(0);
vector<value> values = paramList.getArray(1);
// Size check
if (keys.size() != values.size()) throw girerr::error("Keys vector and values vector doesn't have same size");
// Empty check
if (keys.empty()) return;
bool integer_keys = keys[0].type() == xmlrpc_c::value::TYPE_INT;
vector<double> data(values.size());
for (int i = 0; i < values.size(); ++i) data[i] = value_double(values[i]);
if (integer_keys) {
vector<int> joint_names(keys.size());
for (int i = 0; i < keys.size(); ++i) joint_names[i] = value_int(keys[i]);
this->m_kinematics->setPosition(joint_names, data);
} else {
vector<string> joint_names(keys.size());
for (int i = 0; i < keys.size(); ++i) joint_names[i] = value_string(keys[i]);
this->m_kinematics->setPosition(joint_names, data);
}
*resultP = value_nil();
return;
}
// S:
SensorData<double>::Ptr data;
if (paramList.size() == 0) {
data = this->m_kinematics->getPosition();
// S:A
} else if (paramList.size() == 1) {
// Empty check
vector<value> keys = paramList.getArray(0);
if (keys.empty()) return;
bool integer_keys = keys[0].type() == xmlrpc_c::value::TYPE_INT;
if (integer_keys) {
vector<int> joint_names(keys.size());
for (int i = 0; i < keys.size(); ++i) joint_names[i] = (int) value_int(keys[i]);
data = this->m_kinematics->getPosition(joint_names);
} else {
vector<string> joint_names(keys.size());
for (int i = 0; i < keys.size(); ++i) joint_names[i] = (string) value_string(keys[i]);
data = this->m_kinematics->getPosition(joint_names);
}
} else throw girerr::error("Unknown signature for hardness function");
// TODO Check for memory leaks
// Some optimisation by using C library of xmlrpc-c
xmlrpc_env env;
xmlrpc_env_init(&env);
xmlrpc_value* elem;
xmlrpc_value* values;
xmlrpc_value* result;
// Init result array
values = xmlrpc_array_new(&env);
for (int i = 0; i < data->data.size(); ++i) {
elem = xmlrpc_double_new(&env, data->data[i]);
xmlrpc_array_append_item(&env, values, elem);
xmlrpc_DECREF(elem);
}
// XMLRPC-C timestamp
elem = xmlrpc_double_new(&env, data->timestamp);
// Create result struct
result = xmlrpc_struct_new(&env);
xmlrpc_struct_set_value(&env, result, "data", values);
xmlrpc_struct_set_value(&env, result, "timestamp", elem);
// Apply result
resultP->instantiate(result);
// Clean this shit!
xmlrpc_DECREF(elem);
xmlrpc_DECREF(values);
xmlrpc_DECREF(result);
xmlrpc_env_clean(&env);
}
示例5: execute
void METHOD_MESSAGE_SEND::execute(xmlrpc_c::paramList const & paramList,
xmlrpc_c::value * const retvalPtr)
{
std::string cookie = paramList.getString(0);
std::vector<xmlrpc_c::value> logins(paramList.getArray(1));
std::map<std::string, xmlrpc_c::value> msgInfo(paramList.getStruct(2));
paramList.verifyEnd(3);
ADMIN_INFO adminInfo;
if (config->GetAdminInfo(cookie, &adminInfo))
{
*retvalPtr = xmlrpc_c::value_boolean(false);
return;
}
STG_MSG message;
std::map<std::string, xmlrpc_c::value>::iterator it;
if ((it = msgInfo.find("version")) == msgInfo.end())
{
message.header.ver = 1; // Default value
}
else
{
message.header.ver = xmlrpc_c::value_int(it->second);
}
if ((it = msgInfo.find("type")) == msgInfo.end())
{
message.header.type = 1; // default value
}
else
{
message.header.type = xmlrpc_c::value_int(it->second);
}
if ((it = msgInfo.find("repeat")) == msgInfo.end())
{
*retvalPtr = xmlrpc_c::value_boolean(false);
return;
}
message.header.repeat = xmlrpc_c::value_int(it->second);
if ((it = msgInfo.find("repeat_period")) == msgInfo.end())
{
*retvalPtr = xmlrpc_c::value_boolean(false);
return;
}
message.header.repeatPeriod = xmlrpc_c::value_int(it->second);
if ((it = msgInfo.find("show_time")) == msgInfo.end())
{
*retvalPtr = xmlrpc_c::value_boolean(false);
return;
}
message.header.showTime = xmlrpc_c::value_int(it->second);
if ((it = msgInfo.find("text")) == msgInfo.end())
{
*retvalPtr = xmlrpc_c::value_boolean(false);
return;
}
message.text = IconvString(xmlrpc_c::value_string(it->second), "UTF-8", "CP1251");
message.header.creationTime = static_cast<int>(stgTime);
message.header.lastSendTime = 0;
std::vector<xmlrpc_c::value>::iterator lit;
for (lit = logins.begin(); lit != logins.end(); ++lit)
{
USER_PTR ui;
if (users->FindByName(xmlrpc_c::value_string(*lit), &ui))
{
printfd(__FILE__, "METHOD_MESSAGE_SEND::execute(): 'User '%s' not found'\n", std::string(xmlrpc_c::value_string(*lit)).c_str());
}
else
{
ui->AddMessage(&message);
}
}
*retvalPtr = xmlrpc_c::value_boolean(true);
}