コード例 #1
0
ファイル: emitter.cpp プロジェクト: Chen-Chi-Kang/marss-llc
	// SetLocalValue
	// . Either start/end a group, or set a modifier locally
	Emitter& Emitter::SetLocalValue(EMITTER_MANIP value)
	{
		if(!good())
			return *this;
		
		switch(value) {
			case BeginSeq:
				EmitBeginSeq();
				break;
			case EndSeq:
				EmitEndSeq();
				break;
			case BeginMap:
				EmitBeginMap();
				break;
			case EndMap:
				EmitEndMap();
				break;
			case Key:
				EmitKey();
				break;
			case Value:
				EmitValue();
				break;
			default:
				m_pState->SetLocalValue(value);
				break;
		}
		return *this;
	}
コード例 #2
0
TEST_F(CombineProcessorTest, TestAll) {
    try {
        // register entity
        PbPythonProcessorConfig pb_config;
        baidu::flume::PbEntity* entity = pb_config.add_functor();
        std::string name = flume::Reflection<Functor>::TypeName<TestCombineFn>();
        entity->set_name(name);
        entity->set_config("");
        pb_config.add_side_input_type(PCOLLECTION_TYPE);
        std::string config;
        pb_config.SerializeToString(&config);

        flume::MockEmitter<boost::python::object> emitter;
        boost::python::object three(3);
        EXPECT_CALL(emitter, EmitValue(three));
        ProcessorImpl<CombineProcessor, 0> impl;
        const char* kKeys[] = {"split1", "split2"};

        std::vector<boost::python::object> objects;
        objects.push_back(boost::python::object(1));
        objects.push_back(boost::python::object(2));
        std::auto_ptr<flume::core::Iterator> iter = baidu::bigflow::python::iterator(
                objects.begin(),
                objects.end()
        );

        std::vector<flume::core::Iterator*> vec_iter;
        vec_iter.push_back(iter.get());

        impl.Setup(config);
        impl.BeginGroup(std::vector<toft::StringPiece>(kKeys, kKeys + TOFT_ARRAY_SIZE(kKeys)),
            vec_iter,
            &emitter);

        impl.EndGroup();
    }catch(...) {
        PyErr_Print();
        ASSERT_TRUE(false);
    }
}