TEST(DynamicProto, registerDynamicMessage) {
  MessageHelper helper;
  ResultCode resultCode;
  resultCode = helper.registerDynamicMessage("conf/tpch.proto");
  ASSERT_TRUE(resultCode == RC_SUCCESS);

  auto account = helper.createMessage("idgs.sample.tpch.pb.Customer");
  ASSERT_TRUE(account != NULL);
}
Esempio n. 2
0
  void test_serde() {
    // dynamic create message.
    MessageHelper helper;
    FileDescriptorProto file_proto;
    file_proto.set_name("test.proo");
    DescriptorProto *message_proto = file_proto.add_message_type();
    message_proto->set_name("Pair");
    auto field = message_proto->add_field();
    field->set_name("key");
    field->set_label(FieldDescriptorProto_Label_LABEL_REQUIRED);
    field->set_type(FieldDescriptorProto_Type_TYPE_STRING);
    field->set_number(1);

    field = message_proto->add_field();
    field->set_name("value");
    field->set_label(FieldDescriptorProto_Label_LABEL_REQUIRED);
    field->set_type(FieldDescriptorProto_Type_TYPE_BYTES);
    field->set_number(2);
    helper.registerDynamicMessage(file_proto);
    auto src = helper.createMessage("Pair");
    auto ref = src->GetReflection();
    string key("scott");
    string value("tiger");
    ref->SetString(src.get(), src->GetDescriptor()->FindFieldByName("key"), key);
    ref->SetString(src.get(), src->GetDescriptor()->FindFieldByName("value"), value);

    // test serde
    check_serde_str(src.get(), helper.createMessage("Pair").get());
    check_serde_array(src.get(), helper.createMessage("Pair").get());
    check_serstr_dearray(src.get(), helper.createMessage("Pair").get());
    check_serarray_destr(src.get(), helper.createMessage("Pair").get());
  }
Esempio n. 3
0
	void PlantMine::ProcessEvent( const MessageHelper &_message, CallbackParameters &_cb )
	{
		switch ( _message.GetMessageId() )
		{
			HANDLER( ACTION_WEAPON_FIRE )
			{
				const Event_WeaponFire *m = _message.Get<Event_WeaponFire>();
				if ( m->mWeaponId == ETQW_WP_LANDMINE && m->mProjectile.IsValid() )
				{
					mLandMineEntity = m->mProjectile;
				}
				break;
			}
		}
	}
Esempio n. 4
0
void JA_Client::ProcessEvent( const MessageHelper &_message, CallbackParameters &_cb )
{
	switch ( _message.GetMessageId() )
	{
		HANDLER( JA_PERCEPT_FEEL_FORCE )
		{
			const Event_ForceInflicted *m = _message.Get<Event_ForceInflicted>();
			_cb.CallScript();
			_cb.AddEntity( "inflictor", m->mInflictor );
			_cb.AddInt( "type", m->mType );

			if ( m->mInflictor.IsValid() )
			{
				GetSensoryMemory()->UpdateWithTouchSource( m->mInflictor );
			}
			break;
		}
	}
	Client::ProcessEvent( _message, _cb );
}
Esempio n. 5
0
	void PlantExplosive::ProcessEvent( const MessageHelper &_message, CallbackParameters &_cb )
	{
		switch ( _message.GetMessageId() )
		{
			HANDLER( ACTION_WEAPON_FIRE )
			{
				const Event_WeaponFire *m = _message.Get<Event_WeaponFire>();
				if ( m->mWeaponId == ETQW_WP_HE_CHARGE && m->mProjectile.IsValid() )
				{
					mExplosiveEntity = m->mProjectile;
					mGoalState = ARM_EXPLOSIVE;
				}
				/*else if(m->mWeaponId == ETQW_WP_SATCHEL && m->mProjectile.IsValid())
				{
				mExplosiveEntity = m->mProjectile;
				mGoalState = RUNAWAY;
				}*/
				break;
			}
		}
	}