本文整理汇总了C++中SmartPtr::Run方法的典型用法代码示例。如果您正苦于以下问题:C++ SmartPtr::Run方法的具体用法?C++ SmartPtr::Run怎么用?C++ SmartPtr::Run使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SmartPtr
的用法示例。
在下文中一共展示了SmartPtr::Run方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main( int argc, char *argv[] )
{
IComponentManager *mgr = getComponentManager();
ErrorCode result;
result = mgr->LoadLibrary( "libfooservice.so" );
if ( result != kNoError )
{
LOG_WARN( "Failed to fail library %d", result );
return 0;
}
SmartPtr<IFooService> service = doGetService( "FooService", &result );
if ( result == kNoError )
service->Run();
else
LOG_WARN( "Failed to get service %d", result );
SmartPtr<IFoo> foo = doCreateInstance( "FooFactory", &result );
if ( result == kNoError )
foo->Run();
else
LOG_WARN( "Failed to get service %d", result );
return 0;
}
示例2: Run
SensAlgorithmExitStatus SensApplication::Run()
{
DBG_START_METH("SensApplication::Run", dbg_verbosity);
SensAlgorithmExitStatus retval = SOLVE_SUCCESS;
bool sens_internal_abort, redhess_internal_abort;
Options()->GetBoolValue("sens_internal_abort", sens_internal_abort, "");
Options()->GetBoolValue("redhess_internal_abort", redhess_internal_abort, "");
if (run_sens_ && sens_internal_abort) {
jnlst_->Printf(J_WARNING, J_MAIN, "\n\t--------------= Warning =--------------\nInternal abort has been called for the sensitivity calculations.\n");
}
if (compute_red_hessian_ && redhess_internal_abort) {
jnlst_->Printf(J_WARNING, J_MAIN, "\n\t--------------= Warning =--------------\nInternal abort has been called for the sensitivity calculations.\n");
}
SolverReturn status = AppReturn2SolverReturn(ipopt_retval_);
// Check for perturbation of primal dual system
Number max_pdpert;
if (ipopt_retval_==0 || ipopt_retval_==1) { // otherwise, the values might not be available
Options()->GetNumericValue("sens_max_pdpert", max_pdpert, "");
Number pdpert_x, pdpert_s, pdpert_c, pdpert_d;
ip_data_->getPDPert(pdpert_x, pdpert_s, pdpert_c, pdpert_d);
if (Max(pdpert_x, pdpert_s, pdpert_c, pdpert_d)>max_pdpert) {
jnlst_->Printf(J_WARNING, J_MAIN, "\n\t--------------= Warning =--------------\nInertia correction of primal dual system is too large for meaningful sIPOPT results.\n"
"\t... aborting computation.\n"
"Set option sens_max_pdpert to a higher value (current: %f) to run sIPOPT algorithm anyway\n", max_pdpert);
sens_internal_abort = true;
redhess_internal_abort = true;
}
}
if (compute_red_hessian_ && !redhess_internal_abort) {
SmartPtr<SensBuilder> schur_builder = new SensBuilder();
const std::string prefix = ""; // I should be getting this somewhere else...
SmartPtr<ReducedHessianCalculator> red_hess_calc = schur_builder->BuildRedHessCalc(*jnlst_,
*options_,
prefix,
*ip_nlp_,
*ip_data_,
*ip_cq_,
*pd_solver_);
red_hess_calc->ComputeReducedHessian();
}
if (run_sens_ && n_sens_steps_>0 && !sens_internal_abort) {
SmartPtr<SensBuilder> schur_builder = new SensBuilder();
const std::string prefix = ""; // I should be getting this somewhere else...
SmartPtr<SensAlgorithm> controller = schur_builder->BuildSensAlg(*jnlst_,
*options_,
prefix,
*ip_nlp_,
*ip_data_,
*ip_cq_,
*pd_solver_);
retval = controller->Run();
}
else if (run_sens_) {
if (n_sens_steps_<=0) {
jnlst_->Printf(J_WARNING, J_MAIN, "\n"
"The run_sens option was set to true, but the specified\n"
"number of sensitivity steps was set to zero.\n"
"Computation is aborted.\n\n");
}
}
if (IsValid(ip_data_->curr()) && IsValid(ip_data_->curr()->x())) {
SmartPtr<const Vector> c;
SmartPtr<const Vector> d;
SmartPtr<const Vector> zL;
SmartPtr<const Vector> zU;
SmartPtr<const Vector> yc;
SmartPtr<const Vector> yd;
Number obj = 0.;
switch (status) {
case SUCCESS:
/*c = ip_cq_->curr_c();
d = ip_cq_->curr_d();
obj = ip_cq_->curr_f();
zL = ip_data_->curr()->z_L();
zU = ip_data_->curr()->z_U();
yc = ip_data_->curr()->y_c();
yd = ip_data_->curr()->y_d();*/
case MAXITER_EXCEEDED:
case STOP_AT_TINY_STEP:
case STOP_AT_ACCEPTABLE_POINT:
case LOCAL_INFEASIBILITY:
case USER_REQUESTED_STOP:
case FEASIBLE_POINT_FOUND:
case DIVERGING_ITERATES:
case RESTORATION_FAILURE:
case ERROR_IN_STEP_COMPUTATION:
c = ip_cq_->curr_c();
d = ip_cq_->curr_d();
//.........这里部分代码省略.........
示例3: StartGraph
HRESULT StartGraph(HWND window)
{
HRESULT hr = S_OK;
const DWORD BUFFER_SIZE = MAX_PATH * MAX_VIDEO_STREAMS;
MultiSelectFileList<BUFFER_SIZE> selectList;
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = g_hWnd;
ofn.lpstrFilter = TEXT("Video Files (.AVI, .MPG, .MPEG, .VOB, .WMV)\0*.AVI;*.MPG;*.MPEG;*.VOB;*.WMV\0")
TEXT("All Files (*.*)\0*.*\0\0");
ofn.nFilterIndex = 1;
ofn.lpstrFile = selectList.BufferPtr();
ofn.nMaxFile = selectList.BufferSizeCch();
ofn.lpstrTitle = TEXT("Select a video file to play...");
ofn.Flags = OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST | OFN_EXPLORER;
ofn.lpstrDefExt = TEXT("AVI");
// Launch the Open File dialog.
DWORD result = GetOpenFileName(&ofn);
// Check for errors.
if (CommDlgExtendedError() != 0)
{
// NOTE: For mult-selection, CommDlgExtendedError can return FNERR_BUFFERTOOSMALL even when
// GetOpenFileName returns TRUE.
MessageBox(NULL, TEXT( "Could not open files." ), NULL, MB_OK | MB_ICONERROR);
return E_FAIL;
}
else if (!result)
{
// The user cancelled. (No error occurred.)
return S_OK;
}
FAIL_RET(hr = selectList.ParseBuffer());
// Clear all DirectShow interfaces (COM smart pointers)
g_compositor = NULL;
g_windowlessControl = NULL;
g_mediaControl = NULL;
g_filter = NULL;
g_graph = NULL;
// Create the Filter Graph Manager.
FAIL_RET( CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&g_graph) );
// Configure the VMR-9.
FAIL_RET( ConfigureVMR9(window) );
// Render every file that the user selected.
for (DWORD i = 0; i < MAX_VIDEO_STREAMS; i++)
{
TCHAR *pFileName = NULL;
FAIL_RET(hr = selectList.Next(&pFileName));
if (hr == S_FALSE)
{
hr = S_OK;
break;
}
hr = g_graph->RenderFile( pFileName, NULL );
CoTaskMemFree(pFileName);
FAIL_RET(hr);
}
// Run the graph.
FAIL_RET( g_graph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&g_mediaControl)) );
FAIL_RET( g_mediaControl->Run() );
return hr;
}
示例4: StartGraph
HRESULT StartGraph(HWND window)
{
// Clear DirectShow interfaces (COM smart pointers)
CloseGraph(window);
SmartPtr<IVMRFilterConfig9> filterConfig;
BSTR path = GetMoviePath();
if( ! path )
{
return E_FAIL;
}
HRESULT hr;
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&g_graph);
if (SUCCEEDED(hr))
{
hr = CoCreateInstance(CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&g_filter);
}
if (SUCCEEDED(hr))
{
hr = g_filter->QueryInterface(IID_IVMRFilterConfig9, reinterpret_cast<void**>(&filterConfig));
}
if (SUCCEEDED(hr))
{
hr = filterConfig->SetRenderingMode( VMR9Mode_Renderless );
}
if (SUCCEEDED(hr))
{
hr = filterConfig->SetNumberOfStreams(2);
}
if (SUCCEEDED(hr))
{
hr = SetAllocatorPresenter( g_filter, window );
}
if (SUCCEEDED(hr))
{
hr = g_graph->AddFilter(g_filter, L"Video Mixing Renderer 9");
}
if (SUCCEEDED(hr))
{
hr = g_graph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&g_mediaControl));
}
if (SUCCEEDED(hr))
{
hr = g_graph->RenderFile( path, NULL );
}
if (SUCCEEDED(hr))
{
hr = g_mediaControl->Run();
}
SysFreeString(path);
return hr;
}