本文整理汇总了C++中Shutdown函数的典型用法代码示例。如果您正苦于以下问题:C++ Shutdown函数的具体用法?C++ Shutdown怎么用?C++ Shutdown使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Shutdown函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Shutdown
WiimoteWindows::~WiimoteWindows()
{
Shutdown();
CloseHandle(m_hid_overlap_read.hEvent);
CloseHandle(m_hid_overlap_write.hEvent);
}
示例2: AppInit
//////////////////////////////////////////////////////////////////////////////
//
// Start
//
bool AppInit(int argc, char* argv[])
{
boost::thread_group threadGroup;
boost::thread* detectShutdownThread = NULL;
bool fRet = false;
try
{
//
// Parameters
//
// If Qt is used, parameters/unicoin.conf are parsed in qt/bitcoin.cpp's main()
ParseParameters(argc, argv);
if (!boost::filesystem::is_directory(GetDataDir(false)))
{
fprintf(stderr, "Error: Specified directory does not exist\n");
Shutdown();
}
ReadConfigFile(mapArgs, mapMultiArgs);
if (mapArgs.count("-?") || mapArgs.count("--help"))
{
// First part of help message is specific to unicoind / RPC client
std::string strUsage = _("UniCoin version") + " " + FormatFullVersion() + "\n\n" +
_("Usage:") + "\n" +
" unicoind [options] " + "\n" +
" unicoind [options] <command> [params] " + _("Send command to -server or unicoind") + "\n" +
" unicoind [options] help " + _("List commands") + "\n" +
" unicoind [options] help <command> " + _("Get help for a command") + "\n";
strUsage += "\n" + HelpMessage();
fprintf(stdout, "%s", strUsage.c_str());
return false;
}
// Command-line RPC
for (int i = 1; i < argc; i++)
if (!IsSwitchChar(argv[i][0]) && !boost::algorithm::istarts_with(argv[i], "unicoin:"))
fCommandLine = true;
if (fCommandLine)
{
if (!SelectParamsFromCommandLine()) {
fprintf(stderr, "Error: invalid combination of -regtest and -testnet.\n");
return false;
}
int ret = CommandLineRPC(argc, argv);
exit(ret);
}
#if !defined(WIN32)
fDaemon = GetBoolArg("-daemon", false);
if (fDaemon)
{
// Daemonize
pid_t pid = fork();
if (pid < 0)
{
fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
return false;
}
if (pid > 0) // Parent process, pid is child process id
{
CreatePidFile(GetPidFile(), pid);
return true;
}
// Child process falls through to rest of initialization
pid_t sid = setsid();
if (sid < 0)
fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno);
}
#endif
detectShutdownThread = new boost::thread(boost::bind(&DetectShutdownThread, &threadGroup));
fRet = AppInit2(threadGroup);
}
catch (std::exception& e) {
PrintExceptionContinue(&e, "AppInit()");
} catch (...) {
PrintExceptionContinue(NULL, "AppInit()");
}
if (!fRet) {
if (detectShutdownThread)
detectShutdownThread->interrupt();
threadGroup.interrupt_all();
}
if (detectShutdownThread)
{
detectShutdownThread->join();
delete detectShutdownThread;
detectShutdownThread = NULL;
}
Shutdown();
//.........这里部分代码省略.........
示例3: CPUTGetGuiController
// Handle keyboard events
//-----------------------------------------------------------------------------
CPUTEventHandledCode MySample::HandleKeyboardEvent(CPUTKey key)
{
static bool panelToggle = false;
CPUTEventHandledCode handled = CPUT_EVENT_UNHANDLED;
cString fileName;
CPUTGuiControllerDX11* pGUI = CPUTGetGuiController();
switch(key)
{
case KEY_F1:
panelToggle = !panelToggle;
if(panelToggle)
{
pGUI->SetActivePanel(ID_SECONDARY_PANEL);
}
else
{
pGUI->SetActivePanel(ID_MAIN_PANEL);
}
handled = CPUT_EVENT_HANDLED;
break;
case KEY_L:
{
static int cameraObjectIndex = 0;
CPUTRenderNode *pCameraList[] = { mpCamera, mpShadowCamera };
cameraObjectIndex = (++cameraObjectIndex) % (sizeof(pCameraList)/sizeof(*pCameraList));
CPUTRenderNode *pCamera = pCameraList[cameraObjectIndex];
mpCameraController->SetCamera( pCamera );
}
handled = CPUT_EVENT_HANDLED;
break;
case KEY_ESCAPE:
handled = CPUT_EVENT_HANDLED;
Shutdown();
break;
case KEY_1:
{
CPUTToggleFullScreenMode();
break;
}
case KEY_2:
{
mEnableCulling = !mEnableCulling;
CPUTCheckboxState state;
if(mEnableCulling)
{
state = CPUT_CHECKBOX_CHECKED;
}
else
{
state = CPUT_CHECKBOX_UNCHECKED;
memset(mpCPUDepthBuf[mCurrId], 0, SCREENW * SCREENH *4);
mpOccludersR2DBText->SetText( _L("\tDepth rasterized models: 0"));
mpOccluderRasterizedTrisText->SetText(_L("\tDepth rasterized tris: \t0"));
mpRasterizeTimeText->SetText( _L("\tDepth rasterizer time: \t0 ms"));
mpCulledText->SetText( _L("\tModels culled: \t\t0"));
mpVisibleText->SetText( _L("\tModels visible: \t\t0"));
mpCulledTrisText->SetText( _L("\tCulled tris: \t\t0"));
mpVisibleTrisText->SetText( _L("\tVisible tris: \t\t0"));
mpDepthTestTimeText->SetText(_L("\tDepth test time: \t0 ms"));
}
mpCullingCheckBox->SetCheckboxState(state);
break;
}
case KEY_3:
{
mEnableFCulling = !mEnableFCulling;
CPUTCheckboxState state;
if(mEnableFCulling)
{
state = CPUT_CHECKBOX_CHECKED;
}
else
{
state = CPUT_CHECKBOX_UNCHECKED;
mpDBR->ResetInsideFrustum();
mpAABB->ResetInsideFrustum();
}
mpFCullingCheckBox->SetCheckboxState(state);
break;
}
case KEY_4:
{
mViewDepthBuffer = !mViewDepthBuffer;
CPUTCheckboxState state;
if(mViewDepthBuffer)
{
state = CPUT_CHECKBOX_CHECKED;
}
else
{
state = CPUT_CHECKBOX_UNCHECKED;
}
mpDBCheckBox->SetCheckboxState(state);
break;
//.........这里部分代码省略.........
示例4: Shutdown
/*
============
idAASBuild::Build
============
*/
bool idAASBuild::Build( const idStr &fileName, const idAASSettings *settings ) {
int i, bit, mask, startTime;
idMapFile * mapFile;
idBrushList brushList;
idList<idBrushList*> expandedBrushes;
idBrush *b;
idBrushBSP bsp;
idStr name;
idAASReach reach;
idAASCluster cluster;
idStrList entityClassNames;
startTime = sys->Milliseconds();
Shutdown();
aasSettings = settings;
name = fileName;
name.SetFileExtension( "map" );
mapFile = new idMapFile;
if ( !mapFile->Parse( name ) ) {
delete mapFile;
common->Error( "Couldn't load map file: '%s'", name.c_str() );
return false;
}
// check if this map has any entities that use this AAS file
if ( !CheckForEntities( mapFile, entityClassNames ) ) {
delete mapFile;
common->Printf( "no entities in map that use %s\n", settings->fileExtension.c_str() );
return true;
}
// load map file brushes
brushList = AddBrushesForMapFile( mapFile, brushList );
// if empty map
if ( brushList.Num() == 0 ) {
delete mapFile;
common->Error( "%s is empty", name.c_str() );
return false;
}
// merge as many brushes as possible before expansion
brushList.Merge( MergeAllowed );
// if there is a .proc file newer than the .map file
if ( LoadProcBSP( fileName, mapFile->GetFileTime() ) ) {
ClipBrushSidesWithProcBSP( brushList );
DeleteProcBSP();
}
// make copies of the brush list
expandedBrushes.Append( &brushList );
for ( i = 1; i < aasSettings->numBoundingBoxes; i++ ) {
expandedBrushes.Append( brushList.Copy() );
}
// expand brushes for the axial bounding boxes
mask = AREACONTENTS_SOLID;
for ( i = 0; i < expandedBrushes.Num(); i++ ) {
for ( b = expandedBrushes[i]->Head(); b; b = b->Next() ) {
b->ExpandForAxialBox( aasSettings->boundingBoxes[i] );
bit = 1 << ( i + AREACONTENTS_BBOX_BIT );
mask |= bit;
b->SetContents( b->GetContents() | bit );
}
}
// move all brushes back into the original list
for ( i = 1; i < aasSettings->numBoundingBoxes; i++ ) {
brushList.AddToTail( *expandedBrushes[i] );
delete expandedBrushes[i];
}
if ( aasSettings->writeBrushMap ) {
bsp.WriteBrushMap( fileName, "_" + aasSettings->fileExtension, AREACONTENTS_SOLID );
}
// build BSP tree from brushes
bsp.Build( brushList, AREACONTENTS_SOLID, ExpandedChopAllowed, ExpandedMergeAllowed );
// only solid nodes with all bits set for all bounding boxes need to stay solid
ChangeMultipleBoundingBoxContents_r( bsp.GetRootNode(), mask );
// portalize the bsp tree
bsp.Portalize();
// remove subspaces not reachable by entities
if ( !bsp.RemoveOutside( mapFile, AREACONTENTS_SOLID, entityClassNames ) ) {
bsp.LeakFile( name );
delete mapFile;
common->Printf( "%s has no outside", name.c_str() );
//.........这里部分代码省略.........
示例5: Shutdown
/*
============
idAASLocal::~idAASLocal
============
*/
idAASLocal::~idAASLocal( void )
{
Shutdown();
}
示例7: Shutdown
void Engine::fatalerror(std::string message, std::string title)
{
this->message(message,title);
Shutdown();
}
示例8: main
//.........这里部分代码省略.........
char *envstr;
#ifdef HAVE_SA_SIGINFO
static struct sigaction act;
#endif
umask(022);
__pmProcessDataSize(NULL);
__pmGetUsername(&username);
__pmSetInternalState(PM_STATE_PMCS);
__pmServerSetFeature(PM_SERVER_FEATURE_DISCOVERY);
__pmServerSetFeature(PM_SERVER_FEATURE_CONTAINERS);
if ((envstr = getenv("PMCD_PORT")) != NULL)
nport = __pmServerAddPorts(envstr);
ParseOptions(argc, argv, &nport);
if (nport == 0)
__pmServerAddPorts(TO_STRING(SERVER_PORT));
/* Set the local socket path. A message will be generated into the log
* if this fails, but it is not fatal, since other connection options
* may exist.
*/
__pmServerSetLocalSocket(sockpath);
/* Set the service spec. This will cause our service to be advertised on
* the network if that is supported.
*/
__pmServerSetServiceSpec(PM_SERVER_SERVICE_SPEC);
if (run_daemon) {
fflush(stderr);
StartDaemon(argc, argv);
}
#ifdef HAVE_SA_SIGINFO
act.sa_sigaction = SigIntProc;
act.sa_flags = SA_SIGINFO;
sigaction(SIGINT, &act, NULL);
sigaction(SIGTERM, &act, NULL);
#else
__pmSetSignalHandler(SIGINT, SigIntProc);
__pmSetSignalHandler(SIGTERM, SigIntProc);
#endif
__pmSetSignalHandler(SIGHUP, SigHupProc);
__pmSetSignalHandler(SIGBUS, SigBad);
__pmSetSignalHandler(SIGSEGV, SigBad);
if ((sts = __pmServerOpenRequestPorts(&clientFds, MAXPENDING)) < 0)
DontStart();
maxReqPortFd = maxClientFd = sts;
__pmOpenLog(pmProgname, logfile, stderr, &sts);
/* close old stdout, and force stdout into same stream as stderr */
fflush(stdout);
close(fileno(stdout));
sts = dup(fileno(stderr));
/* if this fails beware of the sky falling in */
assert(sts >= 0);
sts = pmLoadASCIINameSpace(pmnsfile, dupok);
if (sts < 0) {
fprintf(stderr, "Error: pmLoadASCIINameSpace(%s, %d): %s\n",
(pmnsfile == PM_NS_DEFAULT) ? "DEFAULT" : pmnsfile, dupok, pmErrStr(sts));
DontStart();
}
if (ParseInitAgents(configFileName) < 0) {
/* error already reported in ParseInitAgents() */
DontStart();
}
if (nAgents <= 0) {
fprintf(stderr, "Error: No PMDAs found in the configuration file \"%s\"\n",
configFileName);
DontStart();
}
if (run_daemon) {
if (__pmServerCreatePIDFile(PM_SERVER_SERVICE_SPEC, PM_FATAL_ERR) < 0)
DontStart();
if (__pmSetProcessIdentity(username) < 0)
DontStart();
}
if (__pmSecureServerSetup(certdb, dbpassfile) < 0)
DontStart();
PrintAgentInfo(stderr);
__pmAccDumpLists(stderr);
fprintf(stderr, "\npmcd: PID = %" FMT_PID, getpid());
fprintf(stderr, ", PDU version = %u\n", PDU_VERSION);
__pmServerDumpRequestPorts(stderr);
fflush(stderr);
/* all the work is done here */
ClientLoop();
Shutdown();
exit(0);
}
示例9: Shutdown
Cobolt::~Cobolt()
{
Shutdown();
}
示例10: Shutdown
FVoiceCaptureWindows::~FVoiceCaptureWindows()
{
Shutdown();
}
示例11: Shutdown
//===============================================================================================================================
OceanEnvironment::~OceanEnvironment()
{
Shutdown();
}
示例12: Shutdown
void FMessageBridge::HandleMessageBusShutdown( )
{
Shutdown();
Bus.Reset();
}
示例13: main
int
main(int argc, char *argv[])
{
int sts;
int nport = 0;
int localhost = 0;
int maxpending = MAXPENDING;
char *envstr;
umask(022);
__pmGetUsername(&username);
__pmSetInternalState(PM_STATE_PMCS);
__pmServerSetFeature(PM_SERVER_FEATURE_DISCOVERY);
if ((envstr = getenv("PMPROXY_PORT")) != NULL)
nport = __pmServerAddPorts(envstr);
if ((envstr = getenv("PMPROXY_LOCAL")) != NULL)
if ((localhost = atoi(envstr)) != 0)
__pmServerSetFeature(PM_SERVER_FEATURE_LOCAL);
if ((envstr = getenv("PMPROXY_MAXPENDING")) != NULL)
maxpending = atoi(envstr);
ParseOptions(argc, argv, &nport);
if (localhost)
__pmServerAddInterface("INADDR_LOOPBACK");
if (nport == 0)
__pmServerAddPorts(TO_STRING(PROXY_PORT));
GetProxyHostname();
__pmServerSetServiceSpec(PM_SERVER_PROXY_SPEC);
if (run_daemon) {
fflush(stderr);
StartDaemon(argc, argv);
__pmServerCreatePIDFile(PM_SERVER_PROXY_SPEC, 0);
}
__pmSetSignalHandler(SIGHUP, SIG_IGN);
__pmSetSignalHandler(SIGINT, SigIntProc);
__pmSetSignalHandler(SIGTERM, SigIntProc);
__pmSetSignalHandler(SIGBUS, SigBad);
__pmSetSignalHandler(SIGSEGV, SigBad);
/* Open request ports for client connections */
if ((sts = __pmServerOpenRequestPorts(&sockFds, maxpending)) < 0)
DontStart();
maxReqPortFd = maxSockFd = sts;
__pmOpenLog(pmProgname, logfile, stderr, &sts);
/* close old stdout, and force stdout into same stream as stderr */
fflush(stdout);
close(fileno(stdout));
if (dup(fileno(stderr)) == -1) {
fprintf(stderr, "Warning: dup() failed: %s\n", pmErrStr(-oserror()));
}
fprintf(stderr, "pmproxy: PID = %" FMT_PID, getpid());
fprintf(stderr, ", PDU version = %u\n", PDU_VERSION);
__pmServerDumpRequestPorts(stderr);
fflush(stderr);
/* lose root privileges if we have them */
__pmSetProcessIdentity(username);
if (__pmSecureServerSetup(certdb, dbpassfile) < 0)
DontStart();
/* all the work is done here */
ClientLoop();
Shutdown();
exit(0);
}
示例14: TEST_F
// This test verifies that a re-registering slave sends the terminal
// unacknowledged tasks for a terminal executor. This is required
// for the master to correctly reconcile it's view with the slave's
// view of tasks. This test drops a terminal update to the master
// and then forces the slave to re-register.
TEST_F(MasterSlaveReconciliationTest, SlaveReregisterTerminatedExecutor)
{
Try<PID<Master> > master = StartMaster();
ASSERT_SOME(master);
MockExecutor exec(DEFAULT_EXECUTOR_ID);
TestContainerizer containerizer(&exec);
StandaloneMasterDetector detector(master.get());
Try<PID<Slave> > slave = StartSlave(&containerizer, &detector);
ASSERT_SOME(slave);
MockScheduler sched;
MesosSchedulerDriver driver(
&sched, DEFAULT_FRAMEWORK_INFO, master.get(), DEFAULT_CREDENTIAL);
Future<FrameworkID> frameworkId;
EXPECT_CALL(sched, registered(&driver, _, _))
.WillOnce(FutureArg<1>(&frameworkId));
EXPECT_CALL(sched, resourceOffers(&driver, _))
.WillOnce(LaunchTasks(DEFAULT_EXECUTOR_INFO, 1, 1, 512, "*"))
.WillRepeatedly(Return()); // Ignore subsequent offers.
ExecutorDriver* execDriver;
EXPECT_CALL(exec, registered(_, _, _, _))
.WillOnce(SaveArg<0>(&execDriver));
EXPECT_CALL(exec, launchTask(_, _))
.WillOnce(SendStatusUpdateFromTask(TASK_RUNNING));
Future<TaskStatus> status;
EXPECT_CALL(sched, statusUpdate(&driver, _))
.WillOnce(FutureArg<1>(&status));
Future<StatusUpdateAcknowledgementMessage> statusUpdateAcknowledgementMessage
= FUTURE_PROTOBUF(
StatusUpdateAcknowledgementMessage(), master.get(), slave.get());
driver.start();
AWAIT_READY(status);
EXPECT_EQ(TASK_RUNNING, status.get().state());
// Make sure the acknowledgement reaches the slave.
AWAIT_READY(statusUpdateAcknowledgementMessage);
// Drop the TASK_FINISHED status update sent to the master.
Future<StatusUpdateMessage> statusUpdateMessage =
DROP_PROTOBUF(StatusUpdateMessage(), _, master.get());
Future<ExitedExecutorMessage> executorExitedMessage =
FUTURE_PROTOBUF(ExitedExecutorMessage(), _, _);
TaskStatus finishedStatus;
finishedStatus = status.get();
finishedStatus.set_state(TASK_FINISHED);
execDriver->sendStatusUpdate(finishedStatus);
// Ensure the update was sent.
AWAIT_READY(statusUpdateMessage);
// Now kill the executor.
containerizer.destroy(frameworkId.get(), DEFAULT_EXECUTOR_ID);
Future<TaskStatus> status2;
EXPECT_CALL(sched, statusUpdate(&driver, _))
.WillOnce(FutureArg<1>(&status2));
// We drop the 'UpdateFrameworkMessage' from the master to slave to
// stop the status update manager from retrying the update that was
// already sent due to the new master detection.
DROP_PROTOBUFS(UpdateFrameworkMessage(), _, _);
detector.appoint(master.get());
AWAIT_READY(status2);
EXPECT_EQ(TASK_FINISHED, status2.get().state());
driver.stop();
driver.join();
Shutdown();
}
示例15: Shutdown
// ********************************************************************* //
Logger::~Logger()
{
Shutdown();
}