diff options
| author | Antonin Kral <a.kral@bobek.cz> | 2012-08-29 20:54:51 +0200 |
|---|---|---|
| committer | Antonin Kral <a.kral@bobek.cz> | 2012-08-29 20:54:51 +0200 |
| commit | 83957b73f9177f6e38bd5375bd93ca1f6a47188c (patch) | |
| tree | f20b7d6ac9a9c64ff5bb6b5910a24abbb356b1d5 /src/mongo/client/clientAndShell.cpp | |
| parent | 5071d203970edd4c995493d810abe20987e76fe9 (diff) | |
Imported Upstream version 2.2.0upstream/2.2.0
Diffstat (limited to 'src/mongo/client/clientAndShell.cpp')
| -rw-r--r-- | src/mongo/client/clientAndShell.cpp | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/mongo/client/clientAndShell.cpp b/src/mongo/client/clientAndShell.cpp new file mode 100644 index 00000000000..6c4e3be311d --- /dev/null +++ b/src/mongo/client/clientAndShell.cpp @@ -0,0 +1,90 @@ +// clientAndShell.cpp + +/* Copyright 2009 10gen Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "pch.h" +#include "mongo/util/assert_util.h" +#include "../db/cmdline.h" +#include "../db/client_common.h" +#include "../s/shard.h" +#include "../util/timer.h" +#include "clientOnly-private.h" + +namespace mongo { + + CmdLine cmdLine; + + const char * curNs = "in client mode"; + + bool dbexitCalled = false; + // This mutex helps the shell serialize output on exit, + // to avoid deadlocks at shutdown. So it also protects + // the global dbexitCalled. + namespace shell_utils { + mongo::mutex &mongoProgramOutputMutex(*(new mongo::mutex("mongoProgramOutputMutex"))); + } + + void dbexit( ExitCode returnCode, const char *whyMsg ) { + { + mongo::mutex::scoped_lock lk( shell_utils::mongoProgramOutputMutex ); + dbexitCalled = true; + } + out() << "dbexit called" << endl; + if ( whyMsg ) + out() << " b/c " << whyMsg << endl; + out() << "exiting" << endl; + ::_exit( returnCode ); + } + + bool inShutdown() { + return dbexitCalled; + } + + void setupSignals() { + // maybe should do SIGPIPE here, not sure + } + + string getDbContext() { + return "in client only mode"; + } + + bool haveLocalShardingInfo( const string& ns ) { + return false; + } + + DBClientBase * createDirectClient() { + uassert( 10256 , "no createDirectClient in clientOnly" , 0 ); + return 0; + } + + void Shard::getAllShards( vector<Shard>& all ) { + verify(0); + } + + bool Shard::isAShardNode( const string& ident ) { + verify(0); + return false; + } + + string prettyHostName() { + verify(0); + return ""; + } + + ClientBasic* ClientBasic::getCurrent() { + return 0; + } +} |
