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); }
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()); }
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; } } }
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 ); }
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; } } }