예제 #1
0
파일: client.cpp 프로젝트: Machyne/mongo
void Client::initThread(const char* desc,
                        ServiceContext* service,
                        transport::SessionHandle session) {
    invariant(currentClient.getMake()->get() == nullptr);

    std::string fullDesc;
    if (session) {
        fullDesc = str::stream() << desc << session->id();
    } else {
        fullDesc = desc;
    }

    setThreadName(fullDesc.c_str());

    // Create the client obj, attach to thread
    *currentClient.get() = service->makeClient(fullDesc, std::move(session));
}
예제 #2
0
파일: client.cpp 프로젝트: Machyne/mongo
void Client::initThreadIfNotAlready(const char* desc) {
    if (currentClient.getMake()->get())
        return;
    initThread(desc);
}
예제 #3
0
파일: client.cpp 프로젝트: Machyne/mongo
Client& cc() {
    Client* c = currentClient.getMake()->get();
    invariant(c);
    return *c;
}
예제 #4
0
파일: client.cpp 프로젝트: Machyne/mongo
bool haveClient() {
    return currentClient.getMake()->get();
}
예제 #5
0
파일: client.cpp 프로젝트: Machyne/mongo
Client* Client::getCurrent() {
    return currentClient.getMake()->get();
}