当前位置: 首页>>代码示例>>C++>>正文


C++ context类代码示例

本文整理汇总了C++中context的典型用法代码示例。如果您正苦于以下问题:C++ context类的具体用法?C++ context怎么用?C++ context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了context类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: get_parameter

void tag_delete::execute(context &ctx, std::ostream &out,
  const tag *caller) const {

	const string &collection = get_parameter(ctx, "collection");
	if (collection.empty())
		throw tag_delete_exception(
		  _("query collection (collection) is not defined"));

	string db_ptr = ctx.get_value("@MONGODB:[email protected]");
	if (db_ptr.empty()) {
		throw tag_delete_exception(
		  _("MongoDB database is not defined in the current context"));
	}
	database *db = (database*)from_string<void*>(db_ptr);

	ctx.enter();
	try {
		BSONObjBuilder b;
		ctx.add_value("@MONGODB:[email protected]", to_string<BSONObjBuilder*>(&b));

		// call inherited method
		tag_impl::execute(ctx, out, caller);

		db->remove(collection, b.obj());

	}
	catch (...) {
		ctx.leave();
		throw;
	}
	ctx.leave();
}
开发者ID:wolfsoft,项目名称:dbpager,代码行数:32,代码来源:tag_delete.cpp

示例2: EmitRegisters

//[reg id, reg value, taint]* [REG_INVALID_, 0, 0]
void EmitRegisters(FILE *f, const CONTEXT *ctx, context &delta){
  ADDRINT v, taint;
  int i, sz;
  //XXX: if you change order of these ids, you also need to change numbering
  //in motriage.ml, function: rid2reg
  REG regs[] = {LEVEL_BASE::REG_EAX, LEVEL_BASE::REG_EBX, LEVEL_BASE::REG_ECX,
              LEVEL_BASE::REG_EDX, LEVEL_BASE::REG_ESI, LEVEL_BASE::REG_EDI, LEVEL_BASE::REG_EBP,
              LEVEL_BASE::REG_ESP, LEVEL_BASE::REG_EFLAGS, LEVEL_BASE::REG_EIP};

  context::iterator it;

  sz = sizeof(regs)/sizeof(regs[0]);

  write_u32(f, TAG_REGS);
  write_u32(f, sz);

  for(i=0;i<sz;i++){
    REG r = regs[i];
    v = PIN_GetContextReg(ctx, r);
    write_u32(f, i); //we don't use PIN's ids
    write_u32(f, v);
    it = delta.find(r);
    if(it != delta.end()){
      taint = it->second;
    }
    else{
      taint = 0;
    }
    write_u32(f, taint);
    fprintf(stderr, "%s v=0x%08x, t=0x%08x\n", REG_StringShort(r).c_str(), v, 
        taint);
  }
}
开发者ID:GREYFOXRGR,项目名称:moflow,代码行数:34,代码来源:snapshot.cpp

示例3: m

 mk_unfold::mk_unfold(context& ctx):
     rule_transformer::plugin(100, false),
     m_ctx(ctx),
     m(ctx.get_manager()),
     rm(ctx.get_rule_manager()),
     m_unify(ctx)
 {}
开发者ID:NikolajBjorner,项目名称:z3,代码行数:7,代码来源:dl_mk_unfold.cpp

示例4: native_rule

HAMIGAKI_BJAM_DECL string_list native_rule(context& ctx)
{
    frame& f = ctx.current_frame();
    const list_of_list& args = f.arguments();

    const std::string& module_name = args[0][0];
    const std::string& rule_name = args[1][0];

    typedef std::map<std::string,bjam::native_rule> table_type;
    typedef table_type::const_iterator iter_type;

    module& m = ctx.get_module(module_name);
    const table_type& table = m.native_rules;
    iter_type it = table.find(rule_name);
    if (it == table.end())
        throw rule_not_found(rule_name);

    const bjam::native_rule& rule = it->second;

    rule_definition def;
    def.parameters = rule.parameters;
    def.native = rule.native;
    def.module_name = module_name;
    def.exported = true;
    m.rules.set_native_rule(rule_name, def);

    return string_list();
}
开发者ID:fpelliccioni,项目名称:hamigaki,代码行数:28,代码来源:builtin_rules.cpp

示例5: build

void checkbox_w::build( context &ctxt )
{
	const style &s = ctxt.get_style();

	draw::paint c;
	platform::context &hwc = ctxt.hw_context();
	gl::api &ogl = hwc.api();

	_unchecked.rebuild( hwc );
	_checked.rebuild( hwc );

	c.set_fill_color( s.active_icon( s.background_color() ) );
	_unchecked.add( ogl, draw::iconCheckBoxEmpty(), c );

	c.set_fill_color( s.dominant_color() );
	_checked.add( ogl, draw::iconCheckBoxChecked(), c );

	size sz = s.widget_minimum_size();
	auto native = ctxt.to_native( sz );
	_unchecked.shape_size( native.w(), native.h() );
	_checked.shape_size( native.w(), native.h() );
	_unchecked.set_size( sz.w(), sz.h() );
	_checked.set_size( sz.w(), sz.h() );

	auto &l = layout_target();
	l->set_minimum( sz );
	l->set_maximum( sz );
}
开发者ID:kdt3rd,项目名称:gecko,代码行数:28,代码来源:checkbox.cpp

示例6: import

HAMIGAKI_BJAM_DECL string_list import(context& ctx)
{
    frame& f = ctx.current_frame();
    const list_of_list& args = f.arguments();

    module& src_module = ctx.get_module(args[0].try_front());
    const string_list& src_rules = args[1];
    const boost::optional<std::string>& tgt_module_name = args[2].try_front();
    module& tgt_module = ctx.get_module(tgt_module_name);
    const string_list& tgt_rules = args[3];
    const bool localize = !args[4].empty();

    if (src_rules.size() != tgt_rules.size())
        throw std::runtime_error("the count of rule names mismatch"); // FIXME

    for (std::size_t i = 0, size = src_rules.size(); i < size; ++i)
    {
        rule_definition def =
            src_module.rules.get_rule_definition(src_rules[i]);

        if (localize)
            def.module_name = tgt_module_name;
        def.exported = false;

        tgt_module.rules.set_rule_definition(tgt_rules[i], def);
    }

    return string_list();
}
开发者ID:fpelliccioni,项目名称:hamigaki,代码行数:29,代码来源:builtin_rules.cpp

示例7: plugin

 mk_unbound_compressor::mk_unbound_compressor(context & ctx) :
     plugin(500),
     m_context(ctx),
     m_manager(ctx.get_manager()),
     m_rules(ctx.get_rule_manager()),
     m_pinned(m_manager) {
 }
开发者ID:Moondee,项目名称:Artemis,代码行数:7,代码来源:dl_mk_unbound_compressor.cpp

示例8: apply

void variability_feature_bundle_transform::
apply(const context& ctx, meta_model::model& m) {
    tracing::scoped_transform_tracer stp(lg,
        "variability feature bundle transform", transform_id,
        m.name().qualified().dot(), *ctx.tracer(), m);

    const auto& bundles(m.variability_elements().feature_bundles());
    if (bundles.empty())
        return;

    const auto& fm(*ctx.feature_model());
    const auto fg(make_feature_group(fm));
    for (auto& pair : bundles) {
        auto& fb(*pair.second);
        for (auto& ft : fb.feature_templates())
            update(fg, ft);
    }

    if (m.variability_elements().feature_template_initializer() == nullptr)
        return;

    auto& fti(*m.variability_elements().feature_template_initializer());
    for (auto& pair : bundles) {
        auto& fb(*pair.second);
        fti.bundles().push_back(fb.name());
    }
    fti.bundles().sort();

    stp.end_transform(m);
}
开发者ID:DomainDrivenConsulting,项目名称:dogen,代码行数:30,代码来源:variability_feature_bundle_transform.cpp

示例9: m

    aig_exporter::aig_exporter(const rule_set& rules, context& ctx, const fact_vector *facts) :
        m_rules(rules), m_facts(facts), m(ctx.get_manager()), m_rm(ctx.get_rule_manager()),
        m_aigm(m), m_next_decl_id(1), m_next_aig_expr_id(2), m_num_and_gates(0),
        m_latch_vars(m), m_latch_varsp(m), m_ruleid_var_set(m), m_ruleid_varp_set(m)
    {
        std::set<func_decl*> predicates;
        for (rule_set::decl2rules::iterator I = m_rules.begin_grouped_rules(),
            E = m_rules.end_grouped_rules(); I != E; ++I) {
            predicates.insert(I->m_key);
        }

        for (fact_vector::const_iterator I = facts->begin(), E = facts->end(); I != E; ++I) {
            predicates.insert(I->first);
        }

        // reserve pred id = 0 for initalization purposes
        unsigned num_preds = (unsigned)predicates.size() + 1;

        // poor's man round-up log2
        unsigned preds_bitsize = log2(num_preds);
        if ((1U << preds_bitsize) < num_preds)
            ++preds_bitsize;
        SASSERT((1U << preds_bitsize) >= num_preds);

        for (unsigned i = 0; i < preds_bitsize; ++i) {
            m_ruleid_var_set.push_back(m.mk_fresh_const("rule_id", m.mk_bool_sort()));
            m_ruleid_varp_set.push_back(m.mk_fresh_const("rule_id_p", m.mk_bool_sort()));
        }
    }
开发者ID:greatmazinger,项目名称:z3,代码行数:29,代码来源:aig_exporter.cpp

示例10: do_handle_section

void eit_section_filter::do_handle_section(
    context& c,
    const char* section_buffer,
    size_t section_length) {
  section s;
  s.unpack(section_buffer, section_length);
  event_information_table eit;
  s.convert(eit);

  if(s.header.table_id == 0x4E) //FIXME
  c.get_view().print(
      c.get_packet_num(),
      s.header,
      eit,
      subtable_is_changed(s.header, eit));

  if(s.header.table_id == 0x4E &&
     s.header.section_number == 0) {
    if(subtable_is_changed(s.header, eit)){
      c.signal_eit();
    }
  }

  // FIXME
  if(s.header.section_number == s.header.last_section_number) {
    version_
      [s.header.table_id]
      [s.header.table_id_extension]
      [eit.transport_stream_id]
      [eit.original_network_id]
        = s.header.version;
  }
}
开发者ID:range3,项目名称:tsdivider,代码行数:33,代码来源:eit_section_filter_impl.hpp

示例11: execute

void tag_database::execute(context &ctx, std::ostream &out,
  const tag *caller) const {
	const string &dsn = get_parameter(ctx, "dsn");
	const string &database = get_parameter(ctx, "id");
	if (dsn.empty()) {
		throw tag_database_exception(
		  _("data source name (dsn) is not defined"));
	}

	string db_ptr = ctx.get_value(string("@SQLITE:[email protected]") + database);
	if (!db_ptr.empty()) {
		tag_impl::execute(ctx, out, caller);
		return;
	}

	ctx.enter();
	try {
		pool_ptr<sqlite_connection> c = database_pool::instance().acquire(dsn);
		if (!c->is_open())
			c->open(dsn);
		// save the pointer to database for nested tags
		ctx.add_value(string("@SQLITE:[email protected]") + get_parameter(ctx, "id"),
		  to_string<sqlite3*>(c->get_ptr()));
		tag_impl::execute(ctx, out, caller);
		ctx.leave();
	}
	catch (...) {
		ctx.leave();
		throw;
	}

}
开发者ID:wolfsoft,项目名称:dbpager,代码行数:32,代码来源:tag_database.cpp

示例12: do_handle_section

void pat_section_filter::do_handle_section(
      context& c,
      const char* section_buffer,
      size_t section_length) {
  section s;
  s.unpack(section_buffer, section_length);
  program_association_table pat;
  s.convert<program_association_table>(pat);

  c.get_view().print(
      c.get_packet_num(),
      s.header,
      pat,
      last_version_ != s.header.version);

  if(last_version_ == s.header.version)
    return;

  c.pat = pat;

  for(auto& i : pat.association) {
    if(i.program_number != 0) {
      if(!c.is_opened(i.pmt_pid)) {
        c.open_section_filter(
            i.pmt_pid,
            std::unique_ptr<section_filter>(
              new pmt_section_filter()));
      }
    }
  }

  last_version_ = s.header.version;
}
开发者ID:range3,项目名称:tsdivider,代码行数:33,代码来源:pat_section_filter_impl.hpp

示例13: plugin

 mk_magic_sets::mk_magic_sets(context & ctx, func_decl* goal) :
     plugin(10000, true),
     m_context(ctx),
     m(ctx.get_manager()),
     rm(ctx.get_rule_manager()),
     m_pinned(m), 
     m_goal(goal, m) {
 }
开发者ID:NikolajBjorner,项目名称:z3,代码行数:8,代码来源:dl_mk_magic_sets.cpp

示例14: build_with_source

    /**
     * In case BOOST_COMPUTE_USE_OFFLINE_CACHE macro is defined,
     * the compiled binary is stored for reuse in the offline cache located in
     * $HOME/.boost_compute on UNIX-like systems and in %APPDATA%/boost_compute
     * on Windows.
     */
    static program build_with_source(
            const std::string &source,
            const context     &context,
            const std::string &options = std::string()
            )
    {
#ifdef BOOST_COMPUTE_USE_OFFLINE_CACHE
        // Get hash string for the kernel.
        std::string hash;
        {
            device   d(context.get_device());
            platform p(d.get_info<cl_platform_id>(CL_DEVICE_PLATFORM));

            std::ostringstream src;
            src << "// " << p.name() << " v" << p.version() << "\n"
                << "// " << context.get_device().name() << "\n"
                << "// " << options << "\n\n"
                << source;

            hash = detail::sha1(src.str());
        }

        // Try to get cached program binaries:
        try {
            boost::optional<program> prog = load_program_binary(hash, context);

            if (prog) {
                prog->build(options);
                return *prog;
            }
        } catch (...) {
            // Something bad happened. Fallback to normal compilation.
        }

        // Cache is apparently not available. Just compile the sources.
#endif
        const char *source_string = source.c_str();

        cl_int error = 0;
        cl_program program_ = clCreateProgramWithSource(context,
                                                        uint_(1),
                                                        &source_string,
                                                        0,
                                                        &error);
        if(!program_){
            BOOST_THROW_EXCEPTION(runtime_exception(error));
        }

        program prog(program_, false);
        prog.build(options);

#ifdef BOOST_COMPUTE_USE_OFFLINE_CACHE
        // Save program binaries for future reuse.
        save_program_binary(hash, prog);
#endif

        return prog;
    }
开发者ID:Quanteek,项目名称:compute,代码行数:64,代码来源:program.hpp

示例15: join_planner

 join_planner(context & ctx, rule_set & rs_aux_copy)
     : m_context(ctx), m(ctx.get_manager()), 
       rm(ctx.get_rule_manager()),
       m_var_subst(ctx.get_var_subst()),
       m_rs_aux_copy(rs_aux_copy), 
       m_introduced_rules(ctx.get_rule_manager()),
       m_pinned(ctx.get_manager())
 {
 }
开发者ID:CHolmes3,项目名称:z3,代码行数:9,代码来源:dl_mk_simple_joins.cpp


注:本文中的context类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。