// Distributed Methods void XferObject::Query(const InterfaceDescription::Member* member, Message& msg) { qcc::String filename = msg->GetArg(0)->v_string.str; NotifyUser(MSG_STATUS, "QUERY RECEIVED (%s)", filename.c_str()); // call into managed code int accept = msg->GetArg(1)->v_uint32; queryCallback(filename.c_str(), accept); MsgArg outArg("i", accept); QStatus status = MethodReply(msg, &outArg, 1); if (ER_OK != status) { NotifyUser(MSG_ERROR, "XferObjectQuery : Error sending reply"); } }
ULONG Value() { if (_type == ptInteger) return integerValue; if (_type == ptIntegerRef) { if (queryCallback(queryContext, content, integerValue)) return integerValue; else FailCase("Can't query value for %s", String()); return 0; } FailCase("Can't return value for parameter type %d", _type); return 0; }