当前位置: 首页>>代码示例>>C++>>正文


C++ rpc::RequestInterface类代码示例

本文整理汇总了C++中rpc::RequestInterface的典型用法代码示例。如果您正苦于以下问题:C++ RequestInterface类的具体用法?C++ RequestInterface怎么用?C++ RequestInterface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了RequestInterface类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: runCommands

void runCommands(OperationContext* txn,
                 const rpc::RequestInterface& request,
                 rpc::ReplyBuilderInterface* replyBuilder) {
    try {
        dassert(replyBuilder->getState() == rpc::ReplyBuilderInterface::State::kMetadata);

        Command* c = nullptr;
        // In the absence of a Command object, no redaction is possible. Therefore
        // to avoid displaying potentially sensitive information in the logs,
        // we restrict the log message to the name of the unrecognized command.
        // However, the complete command object will still be echoed to the client.
        if (!(c = Command::findCommand(request.getCommandName()))) {
            Command::unknownCommands.increment();
            std::string msg = str::stream() << "no such command: '" << request.getCommandName()
                                            << "'";
            LOG(2) << msg;
            uasserted(ErrorCodes::CommandNotFound,
                      str::stream() << msg << ", bad cmd: '" << request.getCommandArgs() << "'");
        }

        LOG(2) << "run command " << request.getDatabase() << ".$cmd" << ' '
               << c->getRedactedCopyForLogging(request.getCommandArgs());

        Command::execCommand(txn, c, request, replyBuilder);
    }

    catch (const DBException& ex) {
        Command::generateErrorResponse(txn, replyBuilder, ex, request);
    }
}
开发者ID:nicopoliakov,项目名称:mongo,代码行数:30,代码来源:commands.cpp

示例2: execCommand

    // called into by the web server. For now we just translate the parameters
    // to their old style equivalents.
    void Command::execCommand(OperationContext* txn,
                              Command* command,
                              const rpc::RequestInterface& request,
                              rpc::ReplyBuilderInterface* replyBuilder) {

        int queryFlags = 0;
        BSONObj cmdObj;

        std::tie(cmdObj, queryFlags) = uassertStatusOK(
            rpc::downconvertRequestMetadata(request.getCommandArgs(),
                                            request.getMetadata())
        );

        std::string db = request.getDatabase().rawData();
        BSONObjBuilder result;

        execCommandClientBasic(txn,
                               command,
                               *txn->getClient(),
                               queryFlags,
                               request.getDatabase().rawData(),
                               cmdObj,
                               result);

        replyBuilder
            ->setMetadata(rpc::makeEmptyMetadata())
            .setCommandReply(result.done());
    }
开发者ID:Amosvista,项目名称:mongo,代码行数:30,代码来源:s_only.cpp

示例3: generateErrorResponse

void Command::generateErrorResponse(OperationContext* txn,
                                    rpc::ReplyBuilderInterface* replyBuilder,
                                    const DBException& exception,
                                    const rpc::RequestInterface& request) {
    LOG(1) << "assertion while executing command '" << request.getCommandName() << "' "
           << "on database '" << request.getDatabase() << "': " << exception.toString();

    _generateErrorResponse(txn, replyBuilder, exception, rpc::makeEmptyMetadata());
}
开发者ID:Machyne,项目名称:mongo,代码行数:9,代码来源:commands.cpp

示例4: isHelpRequest

bool Command::isHelpRequest(const rpc::RequestInterface& request) {
    return request.getCommandArgs()["help"].trueValue();
}
开发者ID:palawijaGit,项目名称:mongo,代码行数:3,代码来源:commands.cpp


注:本文中的rpc::RequestInterface类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。