本文整理汇总了C++中PluginManager::loadList方法的典型用法代码示例。如果您正苦于以下问题:C++ PluginManager::loadList方法的具体用法?C++ PluginManager::loadList怎么用?C++ PluginManager::loadList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PluginManager
的用法示例。
在下文中一共展示了PluginManager::loadList方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char** argv) {
using namespace Sirikata;
InitOptions();
Trace::Trace::InitOptions();
OHTrace::InitOptions();
InitSimOHOptions();
ParseOptions(argc, argv);
PluginManager plugins;
plugins.loadList( GetOptionValue<String>(OPT_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_OH_PLUGINS) );
String trace_file = GetPerServerFile(STATS_OH_TRACE_FILE, 1);
Trace::Trace* gTrace = new Trace::Trace(trace_file);
BoundingBox3f region = GetOptionValue<BoundingBox3f>("region");
Duration duration = GetOptionValue<Duration>("duration");
// Get the starting time
Time start_time = Timer::now();
srand( GetOptionValue<uint32>("rand-seed") );
Network::IOService* ios = Network::IOServiceFactory::makeIOService();
Network::IOStrand* mainStrand = ios->createStrand();
ObjectHostContext* ctx = new ObjectHostContext(ObjectHostID(1), ios, mainStrand, gTrace, start_time, duration);
ObjectFactory* obj_factory = new ObjectFactory(ctx, region, duration);
// Nothing actually runs here -- we only cared about getting the
// object factory setup so it could dump the object pack data.
gTrace->prepareShutdown();
delete obj_factory;
delete ctx;
gTrace->shutdown();
delete gTrace;
gTrace = NULL;
delete mainStrand;
Network::IOServiceFactory::destroyIOService(ios);
return 0;
}
示例2: main
int main(int argc, char** argv) {
using namespace Sirikata;
DynamicLibrary::Initialize();
InitOptions();
Trace::Trace::InitOptions();
SpaceTrace::InitOptions();
InitSpaceOptions();
ParseOptions(argc, argv, OPT_CONFIG_FILE, AllowUnregisteredOptions);
PluginManager plugins;
plugins.loadList( GetOptionValue<String>(OPT_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_EXTRA_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_SPACE_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_SPACE_EXTRA_PLUGINS) );
// Fill defaults after plugin loading to ensure plugin-added
// options get their defaults.
FillMissingOptionDefaults();
// Rerun original parse to make sure any newly added options are
// properly parsed.
ParseOptions(argc, argv, OPT_CONFIG_FILE);
DaemonizeAndSetOutputs();
ReportVersion(); // After options so log goes to the right place
std::string time_server=GetOptionValue<String>("time-server");
NTPTimeSync sync;
if (time_server.size() > 0)
sync.start(time_server);
ServerID server_id = GetOptionValue<ServerID>("id");
String trace_file = GetPerServerFile(STATS_TRACE_FILE, server_id);
Sirikata::Trace::Trace* gTrace = new Trace::Trace(trace_file);
// Compute the starting date/time
String start_time_str = GetOptionValue<String>("wait-until");
Time start_time = start_time_str.empty() ? Timer::now() : Timer::getSpecifiedDate( start_time_str );
start_time += GetOptionValue<Duration>("wait-additional");
Duration duration = GetOptionValue<Duration>("duration");
Network::IOService* ios = new Network::IOService("Space");
Network::IOStrand* mainStrand = ios->createStrand("Space Main");
ODPSST::ConnectionManager* sstConnMgr = new ODPSST::ConnectionManager();
OHDPSST::ConnectionManager* ohSstConnMgr = new OHDPSST::ConnectionManager();
SpaceContext* space_context = new SpaceContext("space", server_id, sstConnMgr, ohSstConnMgr, ios, mainStrand, start_time, gTrace, duration);
String servermap_type = GetOptionValue<String>("servermap");
String servermap_options = GetOptionValue<String>("servermap-options");
ServerIDMap * server_id_map =
ServerIDMapFactory::getSingleton().getConstructor(servermap_type)(space_context, servermap_options);
space_context->add(space_context);
String timeseries_type = GetOptionValue<String>(OPT_TRACE_TIMESERIES);
String timeseries_options = GetOptionValue<String>(OPT_TRACE_TIMESERIES_OPTIONS);
Trace::TimeSeries* time_series = Trace::TimeSeriesFactory::getSingleton().getConstructor(timeseries_type)(space_context, timeseries_options);
String commander_type = GetOptionValue<String>(OPT_COMMAND_COMMANDER);
String commander_options = GetOptionValue<String>(OPT_COMMAND_COMMANDER_OPTIONS);
Command::Commander* commander = NULL;
if (!commander_type.empty())
commander = Command::CommanderFactory::getSingleton().getConstructor(commander_type)(space_context, commander_options);
Transfer::TransferMediator::getSingleton().registerContext(space_context);
Sirikata::SpaceNetwork* gNetwork = NULL;
String network_type = GetOptionValue<String>(NETWORK_TYPE);
if (network_type == "tcp")
gNetwork = new TCPSpaceNetwork(space_context);
BoundingBox3f region = GetOptionValue<BoundingBox3f>("region");
Vector3ui32 layout = GetOptionValue<Vector3ui32>("layout");
srand( GetOptionValue<uint32>("rand-seed") );
ObjectHostSessionManager* oh_sess_mgr = new ObjectHostSessionManager(space_context);
ObjectSessionManager* obj_sess_mgr = new ObjectSessionManager(space_context);
String auth_type = GetOptionValue<String>(SPACE_OPT_AUTH);
String auth_opts = GetOptionValue<String>(SPACE_OPT_AUTH_OPTIONS);
Authenticator* auth =
AuthenticatorFactory::getSingleton().getConstructor(auth_type)(space_context, auth_opts);
gNetwork->setServerIDMap(server_id_map);
Forwarder* forwarder = new Forwarder(space_context);
String cseg_type = GetOptionValue<String>(CSEG);
CoordinateSegmentation* cseg = NULL;
if (cseg_type == "uniform")
//.........这里部分代码省略.........
示例3: main
int main (int argc, char** argv) {
using namespace Sirikata;
DynamicLibrary::Initialize();
InitOptions();
Trace::Trace::InitOptions();
OHTrace::InitOptions();
InitCPPOHOptions();
ParseOptions(argc, argv, OPT_CONFIG_FILE, AllowUnregisteredOptions);
PluginManager plugins;
String search_path=GetOptionValue<String>(OPT_OH_PLUGIN_SEARCH_PATHS);
if (search_path.length()) {
while (true) {
String::size_type where=search_path.find(":");
if (where==String::npos) {
DynamicLibrary::AddLoadPath(search_path);
break;
}else {
DynamicLibrary::AddLoadPath(search_path.substr(0,where));
search_path=search_path.substr(where+1);
}
}
}
plugins.loadList( GetOptionValue<String>(OPT_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_EXTRA_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_OH_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_OH_EXTRA_PLUGINS) );
// Fill defaults after plugin loading to ensure plugin-added
// options get their defaults.
FillMissingOptionDefaults();
// Rerun original parse to make sure any newly added options are
// properly parsed.
ParseOptions(argc, argv, OPT_CONFIG_FILE);
DaemonizeAndSetOutputs();
ReportVersion(); // After options so log goes to the right place
String time_server = GetOptionValue<String>("time-server");
NTPTimeSync sync;
if (time_server.size() > 0)
sync.start(time_server);
#ifdef __GNUC__
#ifndef __APPLE__
if (GetOptionValue<bool>(OPT_SIGFPE)) {
feenableexcept(FE_DIVBYZERO|FE_INVALID|FE_OVERFLOW|FE_UNDERFLOW);
}
#endif
#endif
ObjectHostID oh_id = GetOptionValue<ObjectHostID>("ohid");
String trace_file = GetPerServerFile(STATS_OH_TRACE_FILE, oh_id);
Trace::Trace* trace = new Trace::Trace(trace_file);
srand( GetOptionValue<uint32>("rand-seed") );
Network::IOService* ios = new Network::IOService("Object Host");
Network::IOStrand* mainStrand = ios->createStrand("Object Host Main");
ODPSST::ConnectionManager* sstConnMgr = new ODPSST::ConnectionManager();
OHDPSST::ConnectionManager* ohSstConnMgr = new OHDPSST::ConnectionManager();
Time start_time = Timer::now(); // Just for stats in ObjectHostContext.
Duration duration = Duration::zero(); // Indicates to run forever.
ObjectHostContext* ctx = new ObjectHostContext("cppoh", oh_id, sstConnMgr, ohSstConnMgr, ios, mainStrand, trace, start_time, duration);
String servermap_type = GetOptionValue<String>("servermap");
String servermap_options = GetOptionValue<String>("servermap-options");
ServerIDMap * server_id_map =
ServerIDMapFactory::getSingleton().getConstructor(servermap_type)(ctx, servermap_options);
String timeseries_type = GetOptionValue<String>(OPT_TRACE_TIMESERIES);
String timeseries_options = GetOptionValue<String>(OPT_TRACE_TIMESERIES_OPTIONS);
Trace::TimeSeries* time_series = Trace::TimeSeriesFactory::getSingleton().getConstructor(timeseries_type)(ctx, timeseries_options);
String commander_type = GetOptionValue<String>(OPT_COMMAND_COMMANDER);
String commander_options = GetOptionValue<String>(OPT_COMMAND_COMMANDER_OPTIONS);
Command::Commander* commander = NULL;
if (!commander_type.empty())
commander = Command::CommanderFactory::getSingleton().getConstructor(commander_type)(ctx, commander_options);
Transfer::TransferMediator::getSingleton().registerContext(ctx);
SpaceID mainSpace(GetOptionValue<UUID>(OPT_MAIN_SPACE));
String oh_options = GetOptionValue<String>(OPT_OH_OPTIONS);
ObjectHost *oh = new CppohObjectHost(ctx, ios, oh_options);
// Add all the spaces to the ObjectHost. We used to have SpaceIDMap and
// fill in the same ServerIDMap for all these. Now we just add the
// ServerIDMap for the main space. We need a better way of handling multiple
// spaces.
oh->addServerIDMap(mainSpace, server_id_map);
//.........这里部分代码省略.........
示例4: main
int main(int argc, char** argv) {
using namespace Sirikata;
DynamicLibrary::Initialize();
InitOptions();
Trace::Trace::InitOptions();
InitCSegOptions();
ParseOptions(argc, argv);
PluginManager plugins;
plugins.loadList( GetOptionValue<String>(OPT_PLUGINS));
plugins.loadList( GetOptionValue<String>(OPT_EXTRA_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_CSEG_PLUGINS));
// Fill defaults after plugin loading to ensure plugin-added
// options get their defaults.
FillMissingOptionDefaults();
// Rerun original parse to make sure any newly added options are
// properly parsed.
ParseOptions(argc, argv);
ReportVersion(); // After options so log goes to the right place
ServerID server_id = GetOptionValue<ServerID>("cseg-id");
String trace_file = GetPerServerFile(STATS_TRACE_FILE, server_id);
Trace::Trace* trace = new Trace::Trace(trace_file);
// Compute the starting date/time
String start_time_str = GetOptionValue<String>("wait-until");
Time start_time = start_time_str.empty() ? Timer::now() : Timer::getSpecifiedDate( start_time_str );
Duration duration = GetOptionValue<Duration>("duration")
+ GetOptionValue<Duration>("additional-cseg-duration")
+ GetOptionValue<Duration>("wait-additional");
Network::IOService* ios = new Network::IOService("CSeg");
Network::IOStrand* mainStrand = ios->createStrand("CSeg Main");
CSegContext* cseg_context = new CSegContext(server_id, ios, mainStrand, trace, start_time, duration);
String timeseries_type = GetOptionValue<String>(OPT_TRACE_TIMESERIES);
String timeseries_options = GetOptionValue<String>(OPT_TRACE_TIMESERIES_OPTIONS);
Trace::TimeSeries* time_series = Trace::TimeSeriesFactory::getSingleton().getConstructor(timeseries_type)(cseg_context, timeseries_options);
BoundingBox3f region = GetOptionValue<BoundingBox3f>("region");
Vector3ui32 layout = GetOptionValue<Vector3ui32>("layout");
uint32 max_space_servers = GetOptionValue<uint32>("max-servers");
if (max_space_servers == 0)
max_space_servers = layout.x * layout.y * layout.z;
srand( GetOptionValue<uint32>("rand-seed") );
String servermap_type = GetOptionValue<String>("servermap");
String servermap_options = GetOptionValue<String>("cseg-servermap-options");
ServerIDMap * server_id_map =
ServerIDMapFactory::getSingleton().getConstructor(servermap_type)(cseg_context, servermap_options);
DistributedCoordinateSegmentation* cseg = new DistributedCoordinateSegmentation(cseg_context, region, layout, max_space_servers, server_id_map);
///////////Go go go!! start of simulation/////////////////////
srand(time(NULL));
cseg_context->add(cseg_context);
cseg_context->add(cseg);
cseg_context->run(2);
std::cout << "CSEG cleaning up\n";
fflush(stdout);
cseg_context->cleanup();
if (GetOptionValue<bool>(PROFILE)) {
cseg_context->profiler->report();
}
trace->prepareShutdown();
delete cseg;
trace->shutdown();
delete trace;
trace = NULL;
delete cseg_context;
cseg_context = NULL;
delete time_series;
delete mainStrand;
delete ios;
plugins.gc();
Sirikata::Logging::finishLog();
//.........这里部分代码省略.........
示例5: main
int main (int argc, char** argv) {
using namespace Sirikata;
DynamicLibrary::Initialize();
InitOptions();
Trace::Trace::InitOptions();
OHTrace::InitOptions();
InitCPPOHOptions();
ParseOptions(argc, argv, OPT_CONFIG_FILE);
PluginManager plugins;
String search_path=GetOptionValue<String>(OPT_OH_PLUGIN_SEARCH_PATHS);
if (search_path.length()) {
while (true) {
String::size_type where=search_path.find(":");
if (where==String::npos) {
DynamicLibrary::AddLoadPath(search_path);
break;
}else {
DynamicLibrary::AddLoadPath(search_path.substr(0,where));
search_path=search_path.substr(where+1);
}
}
}
plugins.loadList( GetOptionValue<String>(OPT_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_OH_PLUGINS) );
String time_server = GetOptionValue<String>("time-server");
NTPTimeSync sync;
if (time_server.size() > 0)
sync.start(time_server);
#ifdef __GNUC__
#ifndef __APPLE__
if (GetOptionValue<bool>(OPT_SIGFPE)) {
feenableexcept(FE_DIVBYZERO|FE_INVALID|FE_OVERFLOW|FE_UNDERFLOW);
}
#endif
#endif
ObjectHostID oh_id = GetOptionValue<ObjectHostID>("ohid");
String trace_file = GetPerServerFile(STATS_OH_TRACE_FILE, oh_id);
Trace::Trace* trace = new Trace::Trace(trace_file);
String servermap_type = GetOptionValue<String>("servermap");
String servermap_options = GetOptionValue<String>("servermap-options");
ServerIDMap * server_id_map =
ServerIDMapFactory::getSingleton().getConstructor(servermap_type)(servermap_options);
srand( GetOptionValue<uint32>("rand-seed") );
Network::IOService* ios = Network::IOServiceFactory::makeIOService();
Network::IOStrand* mainStrand = ios->createStrand();
Time start_time = Timer::now(); // Just for stats in ObjectHostContext.
Duration duration = Duration::zero(); // Indicates to run forever.
ObjectHostContext* ctx = new ObjectHostContext(oh_id, ios, mainStrand, trace, start_time, duration);
Context::mainContextPtr = ctx;
String timeseries_type = GetOptionValue<String>(OPT_TRACE_TIMESERIES);
String timeseries_options = GetOptionValue<String>(OPT_TRACE_TIMESERIES_OPTIONS);
Trace::TimeSeries* time_series = Trace::TimeSeriesFactory::getSingleton().getConstructor(timeseries_type)(ctx, timeseries_options);
SSTConnectionManager* sstConnMgr = new SSTConnectionManager();
SpaceID mainSpace(GetOptionValue<UUID>(OPT_MAIN_SPACE));
String oh_options = GetOptionValue<String>(OPT_OH_OPTIONS);
ObjectHost *oh = new CppohObjectHost(ctx, ios, oh_options);
// Add all the spaces to the ObjectHost. We used to have SpaceIDMap and
// fill in the same ServerIDMap for all these. Now we just add the
// ServerIDMap for the main space. We need a better way of handling multiple
// spaces.
oh->addServerIDMap(mainSpace, server_id_map);
String objstorage_type = GetOptionValue<String>(OPT_OBJECT_STORAGE);
String objstorage_options = GetOptionValue<String>(OPT_OBJECT_STORAGE_OPTS);
OH::Storage* obj_storage =
OH::StorageFactory::getSingleton().getConstructor(objstorage_type)(ctx, objstorage_options);
oh->setStorage(obj_storage);
String objpersistentset_type = GetOptionValue<String>(OPT_OH_PERSISTENT_SET);
String objpersistentset_options = GetOptionValue<String>(OPT_OH_PERSISTENT_SET_OPTS);
OH::PersistedObjectSet* obj_persistent_set =
OH::PersistedObjectSetFactory::getSingleton().getConstructor(objpersistentset_type)(ctx, objpersistentset_options);
oh->setPersistentSet(obj_persistent_set);
String objfactory_type = GetOptionValue<String>(OPT_OBJECT_FACTORY);
String objfactory_options = GetOptionValue<String>(OPT_OBJECT_FACTORY_OPTS);
ObjectFactory* obj_factory = NULL;
///////////Go go go!! start of simulation/////////////////////
ctx->add(ctx);
//.........这里部分代码省略.........
示例6: main
int main(int argc, char** argv) {
using namespace Sirikata;
using namespace Sirikata::Mesh;
if(argc < 2) {
usage();
return 0;
}
// Check for help request
for(int argi = 1; argi < argc; argi++) {
std::string arg_str(argv[argi]);
if (arg_str == "-h" || arg_str == "--help") {
usage();
return 0;
}
}
PluginManager plugins;
plugins.loadList("colladamodels");
plugins.loadList("mesh-billboard");
plugins.loadList("common-filters");
plugins.loadList("nvtt");
//Check for list request
for(int argi = 1; argi < argc; argi++) {
std::string arg_str(argv[argi]);
if (arg_str == "--list") {
std::list<std::string> filterList = FilterFactory::getSingleton().getNames();
printf("meshtool: printing filter list:\n");
for(std::list<std::string>::const_iterator it = filterList.begin(); it != filterList.end(); it++) {
printf("%s\n", it->c_str());
}
return 0;
}
}
//Check for options
InitOptions();
for(int argi = 1; argi < argc; argi++) {
std::string arg_str(argv[argi]);
if(arg_str.substr(0, 9) == "--options") {
uint32 equal_idx = arg_str.find('=');
if (equal_idx != std::string::npos) {
std::string options_args = arg_str.substr(equal_idx+1);
char * buff = new char[1000];
assert(options_args.length() < 1000);
strcpy(buff, options_args.c_str());
char * newargv [] = {argv[0], buff};
ParseOptions(2, newargv);
delete buff;
}
}
}
FilterDataPtr current_data(new FilterData);
for(int argi = 1; argi < argc; argi++) {
std::string arg_str(argv[argi]);
if (arg_str.substr(0, 2) != "--") {
std::cout << "Couldn't parse argument: " << arg_str << std::endl;
exit(-1);
}
arg_str = arg_str.substr(2);
// Split filter name and args
std::string filter_name, filter_args;
uint32 equal_idx = arg_str.find('=');
if (equal_idx != std::string::npos) {
filter_name = arg_str.substr(0, equal_idx);
filter_args = arg_str.substr(equal_idx+1);
}
else {
filter_name = arg_str;
filter_args = "";
}
if(filter_name == "options")
continue;
// Verify
if (!FilterFactory::getSingleton().hasConstructor(filter_name)) {
std::cout << "Couldn't find filter: " << filter_name << std::endl;
exit(-1);
}
// And apply
Filter* filter = FilterFactory::getSingleton().getConstructor(filter_name)(filter_args);
current_data = filter->apply(current_data);
delete filter;
}
return 0;
}
示例7: main
int main(int argc, char** argv) {
InitOptions();
InitializeClassOptions::module(SIRIKATA_OPTIONS_MODULE)
.addOption(new OptionValue("mesh","",Sirikata::OptionValueType<String>(),"Mesh to load and display."))
.addOption(new OptionValue("screenshot","",Sirikata::OptionValueType<String>(),"If non-empty, trigger a screenshot to the given filename and exit."))
;
ParseOptions(argc, argv, AllowUnregisteredOptions);
PluginManager plugins;
plugins.loadList( GetOptionValue<String>(OPT_PLUGINS) );
plugins.loadList( GetOptionValue<String>(OPT_EXTRA_PLUGINS) );
// FIXME this should be an option
plugins.loadList( "colladamodels,mesh-billboard,mesh-ply,common-filters,nvtt" );
// Fill defaults after plugin loading to ensure plugin-added
// options get their defaults.
FillMissingOptionDefaults();
// Rerun original parse to make sure any newly added options are
// properly parsed.
ParseOptions(argc, argv);
DaemonizeAndSetOutputs();
ReportVersion(); // After options so log goes to the right place
Network::IOService* ios = new Network::IOService("MeshView");
Network::IOStrand* iostrand = ios->createStrand("MeshView Main");
Trace::Trace* trace = new Trace::Trace("meshview.log");
Time epoch = Timer::now();
Context* ctx = new Context("MeshView", ios, iostrand, trace, epoch);
OgreRenderer* renderer = new OgreRenderer(ctx,Network::IOStrandPtr(ios->createStrand("OgreRenderer")));
renderer->initialize("", false);
MeshViewCamera* cam = new MeshViewCamera(renderer);
cam->attach("", 0, 0, Vector4f(.7,.7,.7,1), 0);
cam->setPosition(Vector3d(0, 0, 2));
MeshViewEntity* ent = new MeshViewEntity(renderer, GetOptionValue<String>("screenshot"));
ent->setOgrePosition(Vector3d(0, 0, 0));
ent->setOgreOrientation(Quaternion::identity());
renderer->addObject(ent, Transfer::URI(GetOptionValue<String>("mesh")));
ctx->add(ctx);
ctx->add(renderer);
ctx->run(1);
delete ent;
delete cam;
delete renderer;
ctx->cleanup();
trace->prepareShutdown();
delete ctx;
trace->shutdown();
delete trace;
delete iostrand;
delete ios;
Transfer::TransferMediator::destroy();
plugins.gc();
Sirikata::Logging::finishLog();
DaemonCleanup();
return 0;
}
示例8: main
int main(int argc, char** argv) {
using namespace Sirikata;
DynamicLibrary::Initialize();
InitOptions();
Trace::Trace::InitOptions();
InitPintoOptions();
ParseOptions(argc, argv);
PluginManager plugins;
plugins.loadList( GetOptionValue<String>(OPT_PLUGINS));
plugins.loadList( GetOptionValue<String>(OPT_PINTO_PLUGINS));
// Currently not distributed, so we just use any ID
String trace_file = GetPerServerFile(STATS_TRACE_FILE, (ServerID)0);
Trace::Trace* trace = new Trace::Trace(trace_file);
// Compute the starting date/time
String start_time_str = GetOptionValue<String>("wait-until");
Time start_time = start_time_str.empty() ? Timer::now() : Timer::getSpecifiedDate( start_time_str );
Duration duration = GetOptionValue<Duration>("duration")
+ GetOptionValue<Duration>("wait-additional");
Network::IOService* ios = Network::IOServiceFactory::makeIOService();
Network::IOStrand* mainStrand = ios->createStrand();
PintoContext* pinto_context = new PintoContext(ios, mainStrand, trace, start_time, duration);
PintoManager* pinto = new PintoManager(pinto_context);
srand( GetOptionValue<uint32>("rand-seed") );
///////////Go go go!! start of simulation/////////////////////
srand(time(NULL));
pinto_context->add(pinto_context);
pinto_context->add(pinto);
pinto_context->run(1);
pinto_context->cleanup();
if (GetOptionValue<bool>(PROFILE)) {
pinto_context->profiler->report();
}
trace->prepareShutdown();
delete pinto;
trace->shutdown();
delete trace;
trace = NULL;
delete pinto_context;
pinto_context = NULL;
delete mainStrand;
Network::IOServiceFactory::destroyIOService(ios);
plugins.gc();
return 0;
}