本文整理汇总了C++中OptionSet::parse方法的典型用法代码示例。如果您正苦于以下问题:C++ OptionSet::parse方法的具体用法?C++ OptionSet::parse怎么用?C++ OptionSet::parse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OptionSet
的用法示例。
在下文中一共展示了OptionSet::parse方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LocationUpdatePolicy
AlwaysLocationUpdatePolicy::AlwaysLocationUpdatePolicy(const String& args)
: LocationUpdatePolicy(),
mServerSubscriptions(this),
mObjectSubscriptions(this)
{
OptionSet* optionsSet = OptionSet::getOptions(ALWAYS_POLICY_OPTIONS,NULL);
optionsSet->parse(args);
}
示例2: CassandraStorage
static OH::Storage* createCassandraStorage(ObjectHostContext* ctx, const String& args) {
OptionSet* optionsSet = OptionSet::getOptions("cassandrastorage",NULL);
optionsSet->parse(args);
String host = optionsSet->referenceOption("host")->as<String>();
int32 port = optionsSet->referenceOption("port")->as<int32>();
return new OH::CassandraStorage(ctx, host, port);
}
示例3: createCassandraObjectFactory
static ObjectFactory* createCassandraObjectFactory(ObjectHostContext* ctx, ObjectHost* oh, const SpaceID& space, const String& args) {
OptionSet* optionsSet = OptionSet::getOptions("cassandrafactory",NULL);
optionsSet->parse(args);
String host = optionsSet->referenceOption("host")->as<String>();
int32 port = optionsSet->referenceOption("port")->as<int32>();
String ohid = optionsSet->referenceOption("ohid")->as<String>();
return new CassandraObjectFactory(ctx, oh, space, host, port, ohid);
}
示例4: CassandraPersistedObjectSet
static OH::PersistedObjectSet* createCassandraPersistedObjectSet(ObjectHostContext* ctx, const String& args) {
OptionSet* optionsSet = OptionSet::getOptions("cassandrapersistedset",NULL);
optionsSet->parse(args);
String host = optionsSet->referenceOption("host")->as<String>();
int32 port = optionsSet->referenceOption("port")->as<int32>();
String ohid = optionsSet->referenceOption("ohid")->as<String>();
return new OH::CassandraPersistedObjectSet(ctx, host, port, ohid);
}
示例5: ParseOptions
void ParseOptions(int argc, char** argv, const String& config_file_option) {
OptionSet* options = OptionSet::getOptions(SIRIKATA_OPTIONS_MODULE,NULL);
// Parse command line once to make sure we have the right config
// file. On this pass, use defaults so everything gets filled in.
options->parse(argc, argv, true);
// Get the config file name and parse it. Don't use defaults to
// avoid overwriting.
String fname = GetOptionValue<String>(config_file_option.c_str());
if (!fname.empty())
options->parseFile(fname, false, false);
// And parse the command line args a second time to overwrite any settings
// the config file may have overwritten. Don't use defaults to
// avoid overwriting.
options->parse(argc, argv, false);
setLogOutput();
}
示例6: ico
SaveFilter::SaveFilter(const String& args) {
Sirikata::InitializeClassOptions ico("save_filter", NULL,
new OptionValue("filename","",Sirikata::OptionValueType<String>(),"Name of file to save to."),
new OptionValue("format","colladamodels",Sirikata::OptionValueType<String>(),"Format to save to."),
NULL);
OptionSet* optionSet = OptionSet::getOptions("save_filter",NULL);
optionSet->parse(args);
mFilename = optionSet->referenceOption("filename")->as<String>();
mFormat = optionSet->referenceOption("format")->as<String>();
}
示例7: ico
Prox::QueryHandler<SimulationTraits>* QueryHandlerFactory(const String& type, const String& args) {
static OptionValue* branching = NULL;
static OptionValue* rebuild_batch_size = NULL;
if (branching == NULL) {
branching = new OptionValue("branching", "10", Sirikata::OptionValueType<uint32>(), "Number of children each node should have.");
rebuild_batch_size = new OptionValue("rebuild-batch-size", "10", Sirikata::OptionValueType<uint32>(), "Number of queries to transition on each iteration when rebuilding. Keep this small to avoid long latencies between updates.");
Sirikata::InitializeClassOptions ico("query_handler", NULL,
branching,
rebuild_batch_size,
NULL);
}
assert(branching != NULL);
// Since these options end up being shared if you instantiate multiple
// QueryHandlers, reset them each time.
branching->unsafeAs<uint32>() = 10;
OptionSet* optionsSet = OptionSet::getOptions("query_handler", NULL);
optionsSet->parse(args);
if (type == "brute") {
return new Prox::RebuildingQueryHandler<SimulationTraits>(
Prox::BruteForceQueryHandler<SimulationTraits>::Constructor(), rebuild_batch_size->unsafeAs<uint32>()
);
}
else if (type == "rtree") {
return new Prox::RebuildingQueryHandler<SimulationTraits>(
Prox::RTreeAngleQueryHandler<SimulationTraits>::Constructor(branching->unsafeAs<uint32>()), rebuild_batch_size->unsafeAs<uint32>()
);
}
else if (type == "rtreedist" || type == "dist") {
return new Prox::RebuildingQueryHandler<SimulationTraits>(
Prox::RTreeDistanceQueryHandler<SimulationTraits>::Constructor(branching->unsafeAs<uint32>()), rebuild_batch_size->unsafeAs<uint32>()
);
}
else if (type == "rtreecut") {
return new Prox::RebuildingQueryHandler<SimulationTraits>(
Prox::RTreeCutQueryHandler<SimulationTraits>::Constructor(branching->unsafeAs<uint32>(), false), rebuild_batch_size->unsafeAs<uint32>()
);
}
else if (type == "rtreecutagg") {
return new Prox::RebuildingQueryHandler<SimulationTraits>(
Prox::RTreeCutQueryHandler<SimulationTraits>::Constructor(branching->unsafeAs<uint32>(), true), rebuild_batch_size->unsafeAs<uint32>()
);
}
else {
return NULL;
}
}
示例8: BTSInitOptions
ByteTransferScenario::ByteTransferScenario(const String &options):mStartTime(Time::epoch()){
mNumTotalPings=0;
mContext=NULL;
mObjectTracker = NULL;
BTSInitOptions(this);
OptionSet* optionsSet = OptionSet::getOptions("DistributedPingScenario",this);
optionsSet->parse(options);
mSameObjectHostPings=optionsSet->referenceOption("allow-same-object-host")->as<bool>();
mForceSameObjectHostPings=optionsSet->referenceOption("force-same-object-host")->as<bool>();
mPacketSize=optionsSet->referenceOption("packet-size")->as<size_t>();
mPort=OBJECT_PORT_PING;
mGeneratePings=std::tr1::bind(&ByteTransferScenario::generatePings,this);
}
示例9: mStartTime
OSegScenario::OSegScenario(const String &options)
: mStartTime(Time::epoch())
{
mNumTotalPings=0;
mContext=NULL;
mObjectTracker = NULL;
mPingID=0;
DPSInitOptions(this);
OptionSet* optionsSet = OptionSet::getOptions("OSegScenario",this);
optionsSet->parse(options);
mNumPingsPerSecond=optionsSet->referenceOption("num-pings-per-second")->as<double>();
mPingPayloadSize=optionsSet->referenceOption("ping-size")->as<uint32>();
mFloodServer = optionsSet->referenceOption("flood-server")->as<uint32>();
mSourceFloodServer = optionsSet->referenceOption("source-flood-server")->as<bool>();
mNumObjectsPerServer=optionsSet->referenceOption("num-objects-per-server")->as<uint32>();
mLocalTraffic = optionsSet->referenceOption("local")->as<bool>();
mFractionMessagesUniform= optionsSet->referenceOption("prob-messages-uniform")->as<double>();
mNumGeneratedPings = 0;
mGeneratePingsStrand = NULL;
mGeneratePingPoller = NULL;
mPings = // We allocate space for 1/4 seconds worth of pings
new Sirikata::SizedThreadSafeQueue<PingInfo,CountResourceMonitor>(
CountResourceMonitor(std::max((uint32)(mNumPingsPerSecond / 4), (uint32)2))
);
mWeightCalculator =
RegionWeightCalculatorFactory::getSingleton().getConstructor(GetOptionValue<String>(OPT_REGION_WEIGHT))(GetOptionValue<String>(OPT_REGION_WEIGHT_ARGS))
;
mPingPoller = NULL;
// NOTE: We have this limit because we can get in lock-step with the
// generator, causing this to run for excessively long when we fall behind
// on pings. This allows us to burst to catch up when there is time (and
// amortize the constant overhead of doing 1 round), but if
// there is other work to be done we won't make our target rate.
mMaxPingsPerRound = 40;
// Do we want to vary this based on mNumPingsPerSecond? 20 is a decent
// burst, but at 10k/s can take 2ms (we're seeing about 100us/ping
// currently), which is potentially a long delay for other things in this
// strand. If we try to get to 100k, that can be up to 20ms which is very
// long to block other things on the main strand.
}
示例10: main
int main(int argc, char** argv)
{
string src_conn_name = "unknown";
string dst_conn_name = "hdmi";
PixelFormat pixfmt = PixelFormat::XRGB8888;
OptionSet optionset = {
Option("s|src=", [&](string s)
{
src_conn_name = s;
}),
Option("d|dst=", [&](string s)
{
dst_conn_name = s;
}),
Option("f|format=", [&](string s)
{
pixfmt = FourCCToPixelFormat(s);
}),
Option("h|help", [&]()
{
puts(usage_str);
exit(-1);
}),
};
optionset.parse(argc, argv);
if (optionset.params().size() > 0) {
puts(usage_str);
exit(-1);
}
VideoDevice vid("/dev/video11");
Card card;
ResourceManager resman(card);
auto src_conn = resman.reserve_connector(src_conn_name);
auto src_crtc = resman.reserve_crtc(src_conn);
uint32_t src_width = src_crtc->mode().hdisplay;
uint32_t src_height = src_crtc->mode().vdisplay;
printf("src %s, crtc %ux%u\n", src_conn->fullname().c_str(), src_width, src_height);
auto dst_conn = resman.reserve_connector(dst_conn_name);
auto dst_crtc = resman.reserve_crtc(dst_conn);
auto dst_plane = resman.reserve_overlay_plane(dst_crtc, pixfmt);
FAIL_IF(!dst_plane, "Plane not found");
uint32_t dst_width = min((uint32_t)dst_crtc->mode().hdisplay, src_width);
uint32_t dst_height = min((uint32_t)dst_crtc->mode().vdisplay, src_height);
printf("dst %s, crtc %ux%u, plane %ux%u\n", dst_conn->fullname().c_str(),
dst_crtc->mode().hdisplay, dst_crtc->mode().vdisplay,
dst_width, dst_height);
for (int i = 0; i < CAMERA_BUF_QUEUE_SIZE; ++i) {
auto fb = new DumbFramebuffer(card, src_width, src_height, pixfmt);
s_fbs.push_back(fb);
s_free_fbs.push_back(fb);
}
// get one fb for initial setup
s_ready_fbs.push_back(s_free_fbs.back());
s_free_fbs.pop_back();
// This draws a moving bar to SRC display
BarFlipState barflipper(card, src_crtc);
barflipper.start_flipping();
// This shows the captures SRC frames on DST display
WBFlipState wbflipper(card, dst_crtc, dst_plane);
wbflipper.setup(0, 0, dst_width, dst_height);
WBStreamer wb(vid.get_capture_streamer(), src_crtc, src_width, src_height, pixfmt);
wb.start_streaming();
vector<pollfd> fds(3);
fds[0].fd = 0;
fds[0].events = POLLIN;
fds[1].fd = wb.fd();
fds[1].events = POLLIN;
fds[2].fd = card.fd();
fds[2].events = POLLIN;
while (true) {
int r = poll(fds.data(), fds.size(), -1);
ASSERT(r > 0);
if (fds[0].revents != 0)
break;
if (fds[1].revents) {
fds[1].revents = 0;
wb.Dequeue();
wbflipper.queue_next();
//.........这里部分代码省略.........
示例11: createEnvironment
static SpaceModule* createEnvironment(SpaceContext* ctx, const String& args) {
OptionSet* optionsSet = OptionSet::getOptions("space_environment",NULL);
optionsSet->parse(args);
return new Environment(ctx);
}
示例12: FakeParseOptions
void FakeParseOptions() {
OptionSet* options = OptionSet::getOptions(SIRIKATA_OPTIONS_MODULE,NULL);
int argc = 1; const char* argv[2] = { "bogus", NULL };
options->parse(argc, argv);
}
示例13: createLocalPintoServerQuerier
static PintoServerQuerier* createLocalPintoServerQuerier(SpaceContext* ctx, const String& args) {
OptionSet* optionsSet = OptionSet::getOptions("space_local",NULL);
optionsSet->parse(args);
return new LocalPintoServerQuerier(ctx);
}
示例14: createLocalOSeg
static ObjectSegmentation* createLocalOSeg(SpaceContext* ctx, Network::IOStrand* oseg_strand, CoordinateSegmentation* cseg, OSegCache* cache, const String& args) {
OptionSet* optionsSet = OptionSet::getOptions("space_local",NULL);
optionsSet->parse(args);
return new LocalObjectSegmentation(ctx, oseg_strand, cseg, cache);
}
示例15: main
int main(int argc, char **argv)
{
string dev_path;
unsigned id = 0;
OptionSet optionset = {
Option("|device=",
[&](string s)
{
dev_path = s;
}),
Option("|id=",
[&](string s)
{
id = stoul(s);
}),
Option("p", [&](string s)
{
opts.print_props = true;
}),
Option("m", [&](string s)
{
opts.print_modes = true;
}),
Option("r", [&](string s)
{
opts.recurse = true;
}),
Option("h|help", [&]()
{
usage();
exit(-1);
}),
};
optionset.parse(argc, argv);
if (optionset.params().size() > 0) {
usage();
exit(-1);
}
Card card;
/* No options impliles recursion */
if (id == 0) {
opts.recurse = true;
for (auto conn : card.get_connectors())
print_connector(*conn, 0);
return 0;
} else {
auto ob = card.get_object(id);
if (!ob) {
cerr << "kmsprint" << ": Object id " <<
id << " not found." << endl;
return -1;
}
if (auto co = dynamic_cast<Connector*>(ob))
print_connector(*co, 0);
else if (auto en = dynamic_cast<Encoder*>(ob))
print_encoder(*en, 0);
else if (auto cr = dynamic_cast<Crtc*>(ob))
print_crtc(*cr, 0);
else if (auto pl = dynamic_cast<Plane*>(ob))
print_plane(*pl, 0);
else {
cerr << "kmsprint" << ": Unkown DRM Object type" <<
endl;
return -1;
}
return 0;
}
}