本文整理汇总了C++中MessageServer类的典型用法代码示例。如果您正苦于以下问题:C++ MessageServer类的具体用法?C++ MessageServer怎么用?C++ MessageServer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MessageServer类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: listen
void listen(int port) {
//testTheDb();
MessageServer::Options options;
options.port = port;
options.ipList = serverGlobalParams.bind_ip;
MessageServer * server = createServer( options , new MyMessageHandler() );
server->setAsTimeTracker();
// we must setupSockets prior to logStartup() to avoid getting too high
// a file descriptor for our calls to select()
server->setupSockets();
logStartup();
startReplication();
if (serverGlobalParams.isHttpInterfaceEnabled)
boost::thread web( stdx::bind(&webServerThread,
new RestAdminAccess(), // takes ownership
OperationContextImpl::factory) ); // XXX SERVER-13931
#if(TESTEXHAUST)
boost::thread thr(testExhaust);
#endif
server->run();
}
示例2: ServerThread
// Function that generates messages to clients.
void ServerThread(void* args)
{
MessageServer server;
char message[512];
unsigned int loop = 0;
if(server.Initialize(gServerID))
{
while(gQuitFlag == false)
{
// Wait until all clients are connected, then
// start sending messages so we can get a better
// performance measurement.
if(server.GetNumClients() == gClientThreads)
{
sprintf(message, "Message #%d", loop++);
if(server.SendToAllClients(message))
{
gTotalMessages++;
}
}
SleepMs(1);
}
}
}
示例3: _initAndListen
static void _initAndListen(int listenPort) {
Client::initThread("initandlisten");
// Due to SERVER-15389, we must setupSockets first thing at startup in order to avoid
// obtaining too high a file descriptor for our calls to select().
MessageServer::Options options;
options.port = listenPort;
options.ipList = serverGlobalParams.bind_ip;
MessageServer* server = createServer(options, new MyMessageHandler());
server->setAsTimeTracker();
// This is what actually creates the sockets, but does not yet listen on them because we
// do not want connections to just hang if recovery takes a very long time.
server->setupSockets();
std::shared_ptr<DbWebServer> dbWebServer;
if (serverGlobalParams.isHttpInterfaceEnabled) {
dbWebServer.reset(new DbWebServer(
serverGlobalParams.bind_ip, serverGlobalParams.port + 1000, new RestAdminAccess()));
dbWebServer->setupSockets();
}
getGlobalServiceContext()->initializeGlobalStorageEngine();
// Warn if we detect configurations for multiple registered storage engines in
// the same configuration file/environment.
if (serverGlobalParams.parsedOpts.hasField("storage")) {
BSONElement storageElement = serverGlobalParams.parsedOpts.getField("storage");
invariant(storageElement.isABSONObj());
BSONObj storageParamsObj = storageElement.Obj();
BSONObjIterator i = storageParamsObj.begin();
while (i.more()) {
BSONElement e = i.next();
// Ignore if field name under "storage" matches current storage engine.
if (storageGlobalParams.engine == e.fieldName()) {
continue;
}
// Warn if field name matches non-active registered storage engine.
if (getGlobalServiceContext()->isRegisteredStorageEngine(e.fieldName())) {
warning() << "Detected configuration for non-active storage engine "
<< e.fieldName() << " when current storage engine is "
<< storageGlobalParams.engine;
}
}
}
getGlobalServiceContext()->setOpObserver(stdx::make_unique<OpObserver>());
const repl::ReplSettings& replSettings = repl::getGlobalReplicationCoordinator()->getSettings();
{
ProcessId pid = ProcessId::getCurrent();
LogstreamBuilder l = log(LogComponent::kControl);
l << "MongoDB starting : pid=" << pid << " port=" << serverGlobalParams.port
<< " dbpath=" << storageGlobalParams.dbpath;
if (replSettings.master)
l << " master=" << replSettings.master;
if (replSettings.slave)
l << " slave=" << (int)replSettings.slave;
const bool is32bit = sizeof(int*) == 4;
l << (is32bit ? " 32" : " 64") << "-bit host=" << getHostNameCached() << endl;
}
DEV log(LogComponent::kControl) << "DEBUG build (which is slower)" << endl;
logMongodStartupWarnings(storageGlobalParams);
#if defined(_WIN32)
printTargetMinOS();
#endif
logProcessDetails();
{
stringstream ss;
ss << endl;
ss << "*********************************************************************" << endl;
ss << " ERROR: dbpath (" << storageGlobalParams.dbpath << ") does not exist." << endl;
ss << " Create this directory or give existing directory in --dbpath." << endl;
ss << " See http://dochub.mongodb.org/core/startingandstoppingmongo" << endl;
ss << "*********************************************************************" << endl;
uassert(10296, ss.str().c_str(), boost::filesystem::exists(storageGlobalParams.dbpath));
}
{
stringstream ss;
ss << "repairpath (" << storageGlobalParams.repairpath << ") does not exist";
uassert(12590, ss.str().c_str(), boost::filesystem::exists(storageGlobalParams.repairpath));
}
// TODO: This should go into a MONGO_INITIALIZER once we have figured out the correct
// dependencies.
if (snmpInit) {
snmpInit();
}
boost::filesystem::remove_all(storageGlobalParams.dbpath + "/_tmp/");
//.........这里部分代码省略.........
示例4: runMongosServer
static ExitCode runMongosServer() {
Client::initThread("mongosMain");
printShardingVersionInfo(false);
_initWireSpec();
// Add sharding hooks to both connection pools - ShardingConnectionHook includes auth hooks
globalConnPool.addHook(new ShardingConnectionHook(false));
shardConnectionPool.addHook(new ShardingConnectionHook(true));
ReplicaSetMonitor::setAsynchronousConfigChangeHook(
&ConfigServer::replicaSetChangeConfigServerUpdateHook);
ReplicaSetMonitor::setSynchronousConfigChangeHook(
&ConfigServer::replicaSetChangeShardRegistryUpdateHook);
// Mongos connection pools already takes care of authenticating new connections so the
// replica set connection shouldn't need to.
DBClientReplicaSet::setAuthPooledSecondaryConn(false);
if (getHostName().empty()) {
dbexit(EXIT_BADOPTIONS);
}
{
auto txn = cc().makeOperationContext();
Status status = initializeSharding(txn.get());
if (!status.isOK()) {
if (status == ErrorCodes::CallbackCanceled) {
invariant(inShutdown());
log() << "Shutdown called before mongos finished starting up";
return EXIT_CLEAN;
}
error() << "Error initializing sharding system: " << status;
return EXIT_SHARDING_ERROR;
}
ConfigServer::reloadSettings(txn.get());
}
#if !defined(_WIN32)
mongo::signalForkSuccess();
#endif
if (serverGlobalParams.isHttpInterfaceEnabled) {
std::shared_ptr<DbWebServer> dbWebServer(new DbWebServer(
serverGlobalParams.bind_ip, serverGlobalParams.port + 1000, new NoAdminAccess()));
dbWebServer->setupSockets();
stdx::thread web(stdx::bind(&webServerListenThread, dbWebServer));
web.detach();
}
HostnameCanonicalizationWorker::start(getGlobalServiceContext());
Status status = getGlobalAuthorizationManager()->initialize(NULL);
if (!status.isOK()) {
error() << "Initializing authorization data failed: " << status;
return EXIT_SHARDING_ERROR;
}
balancer.go();
clusterCursorCleanupJob.go();
UserCacheInvalidator cacheInvalidatorThread(getGlobalAuthorizationManager());
{
auto txn = cc().makeOperationContext();
cacheInvalidatorThread.initialize(txn.get());
cacheInvalidatorThread.go();
}
PeriodicTask::startRunningPeriodicTasks();
MessageServer::Options opts;
opts.port = serverGlobalParams.port;
opts.ipList = serverGlobalParams.bind_ip;
ShardedMessageHandler handler;
MessageServer* server = createServer(opts, &handler);
server->setAsTimeTracker();
if (!server->setupSockets()) {
return EXIT_NET_ERROR;
}
server->run();
// MessageServer::run will return when exit code closes its socket
return inShutdown() ? EXIT_CLEAN : EXIT_NET_ERROR;
}
示例5: main
int main(int argc, char* argv[]) {
reactivision_settings config;
sprintf(config.file,"none");
const char *app_name = "reacTIVision";
const char *version_no = "1.5.1";
bool headless = false;
std::cout << app_name << " " << version_no << " (" << __DATE__ << ")" << std::endl << std::endl;
if (argc>1) {
if (strcmp( argv[1], "-h" ) == 0 ) {
printUsage();
return 0;
} else if( strcmp( argv[1], "-c" ) == 0 ) {
if (argc==3) sprintf(config.file,"%s",argv[2]);
else {
printUsage();
return 0;
}
} else if( strcmp( argv[1], "-n" ) == 0 ) {
headless = true;
} else if( strcmp( argv[1], "-l" ) == 0 ) {
CameraTool::listDevices();
MidiServer::listDevices();
return 0;
} else if ( (std::string(argv[1]).find("-NSDocumentRevisionsDebugMode")==0 ) || (std::string(argv[1]).find("-psn_")==0) ){
// ignore mac specific arguments
} else {
printUsage();
}
}
#ifndef WIN32
signal(SIGINT,terminate);
signal(SIGHUP,terminate);
signal(SIGQUIT,terminate);
signal(SIGTERM,terminate);
#endif
readSettings(&config);
config.headless = headless;
CameraEngine *camera = setupCamera(config.camera_config);
engine = new SDLinterface(app_name, camera, &config);
if (!headless) {
switch (config.display_mode) {
case 0: engine->setDisplayMode(engine->NO_DISPLAY); break;
case 1: engine->setDisplayMode(engine->SOURCE_DISPLAY); break;
case 2: engine->setDisplayMode(engine->DEST_DISPLAY); break;
}
} else engine->setDisplayMode(engine->NO_DISPLAY);
MessageServer *server = NULL;
FrameProcessor *fiducialfinder = NULL;
FrameProcessor *thresholder = NULL;
FrameProcessor *equalizer = NULL;
FrameProcessor *calibrator = NULL;
if(config.midi) server = new MidiServer(config.midi_config);
else server = new TuioServer(config.host,config.port);
server->setInversion(config.invert_x, config.invert_y, config.invert_a);
equalizer = new FrameEqualizer();
engine->addFrameProcessor(equalizer);
if (config.background) equalizer->toggleFlag(' ');
thresholder = new FrameThresholder(config.gradient_gate, config.tile_size, config.thread_count);
engine->addFrameProcessor(thresholder);
if (config.amoeba) fiducialfinder = new FidtrackFinder(server, config.tree_config, config.grid_config, config.finger_size, config.finger_sensitivity);
else if (config.classic) fiducialfinder = new FidtrackFinderClassic(server, config.grid_config);
engine->addFrameProcessor(fiducialfinder);
calibrator = new CalibrationEngine(config.grid_config);
engine->addFrameProcessor(calibrator);
engine->run();
teardownCamera(camera);
config.display_mode = engine->getDisplayMode();
engine->removeFrameProcessor(calibrator);
delete calibrator;
if (config.amoeba) {
config.finger_size = ((FidtrackFinder*)fiducialfinder)->getFingerSize();
config.finger_sensitivity = ((FidtrackFinder*)fiducialfinder)->getFingerSensitivity();
}
engine->removeFrameProcessor(fiducialfinder);
config.gradient_gate = ((FrameThresholder*)thresholder)->getGradientGate();
config.tile_size = ((FrameThresholder*)thresholder)->getTileSize();
engine->removeFrameProcessor(thresholder);
//.........这里部分代码省略.........