示例#1
0
void
registry::addMethod(string    const name,
                    methodPtr const methodP) {

    this->methodList.push_back(methodP);

    env_wrap env;
    
	xmlrpc_registry_add_method_w_doc(
        &env.env_c, this->c_registryP, NULL,
        name.c_str(), &c_executeMethod, 
        (void*) methodP.get(), 
        methodP->signature().c_str(), methodP->help().c_str());

    throwIfError(env);
}
void
registry::addMethod(string    const name,
                    methodPtr const methodP) {

    this->implP->methodList.push_back(methodP);

    struct xmlrpc_method_info3 methodInfo;
    env_wrap env;

    methodInfo.methodName      = name.c_str();
    methodInfo.methodFunction  = &c_executeMethod;
    methodInfo.serverInfo      = methodP.get();
    methodInfo.stackSize       = 0;
    string const signatureString(methodP->signature());
    methodInfo.signatureString = signatureString.c_str();
    string const help(methodP->help());
    methodInfo.help            = help.c_str();
    
	xmlrpc_registry_add_method3(&env.env_c, this->implP->c_registryP,
                                &methodInfo);

    throwIfError(env);
}