internal static void SetField <T>(t_field_type accessor, string fieldName, int field_name_idx, T value) { uint member_id; int field_divider_idx = fieldName.IndexOf('.', field_name_idx); if (-1 != field_divider_idx) { string member_name_string = fieldName.Substring(field_name_idx, field_divider_idx - field_name_idx); if (!FieldLookupTable_t_field_name.TryGetValue(member_name_string, out member_id)) { Throw.undefined_field(); } switch (member_id) { /*FOREACH*/ /*USE_LIST("t_member")*/ /* IF("$t_member_type->is_struct()")*/ case t_uint: GenericFieldAccessor.SetField(accessor.t_member_name, fieldName, field_divider_idx + 1, value); break; /* END*/ /*END*/ default: // @note We cannot go further unless it's a struct. // Throw exception now. Throw.member_access_on_non_struct__field(member_name_string); break; } return; } fieldName = fieldName.Substring(field_name_idx); if (!FieldLookupTable_t_field_name.TryGetValue(fieldName, out member_id)) { Throw.undefined_field(); } switch (member_id) { /*FOREACH*/ /*USE_LIST("t_member")*/ case t_uint: { t_field_type_2 conversion_result = TypeConverter <T> .ConvertTo_t_field_type_2_display(value); MODULE_CALL("ValueToAccessorFieldAssignment", "$t_member", "\"accessor\"", "\"conversion_result\""); break; } /*END*/ } }
internal static T GetField <T>(t_field_type accessor, string fieldName, int field_name_idx) { uint member_id; int field_divider_idx = fieldName.IndexOf('.', field_name_idx); if (-1 != field_divider_idx) { string member_name_string = fieldName.Substring(field_name_idx, field_divider_idx - field_name_idx); if (!FieldLookupTable_t_field_name.TryGetValue(member_name_string, out member_id)) { Throw.undefined_field(); } switch (member_id) { /*FOREACH*/ /*USE_LIST("t_member")*/ /* IF("$t_member_type->is_struct()")*/ case t_uint: return(GenericFieldAccessor.GetField <T>(accessor.t_member_name, fieldName, field_divider_idx + 1)); /* END*/ /*END*/ default: // @note We cannot go further unless it's a struct. // Throw exception now. Throw.member_access_on_non_struct__field(member_name_string); break; } } fieldName = fieldName.Substring(field_name_idx); if (!FieldLookupTable_t_field_name.TryGetValue(fieldName, out member_id)) { Throw.undefined_field(); } switch (member_id) { /*FOREACH*/ /*USE_LIST("t_member")*/ case t_uint: return(TypeConverter <T> .ConvertFrom_t_field_type_2_display(accessor.t_member_name)); break; /*END*/ } /* Should not reach here */ throw new Exception("Internal error T5008"); }
public static bool ElementContainsSubstring(this t_field_type t_list, IEnumerable <string> substrings) { if (substrings == null || substrings.Count() == 0) { return(true); } if (t_list == null) { throw new ArgumentNullException("list"); } __meta.META_VAR("std::vector<NFieldType*>*", "container_chain", "$t_substring_indexed_list_type->resolve_container_chain()"); __meta.META_VAR("std::string", "list_name", "\"list\""); __meta.META_VAR("int", "iter_value", "0"); __meta.META("%container_chain->pop_back();"); __meta.META("%container_chain->pop_back();"); __meta.MAP_LIST("t_chain", "%container_chain"); __meta.MAP_VAR("t_list", "%list_name"); __meta.MAP_VAR("t_element", "\"sublist_\" + GetString(%iter_value)"); __meta.FOREACH(); __meta.USE_LIST("t_chain"); foreach (var t_element in t_list) { if (t_element == null) { continue; } __meta.META("%list_name = std::string(\"sublist_\") + GetString(%iter_value);"); __meta.META("++%iter_value;"); __meta.END(); foreach (string str in t_list) { if (str.Contains(substrings)) { return(true); } } __meta.FOREACH(); __meta.USE_LIST("t_chain"); } __meta.END(); return(false); }
internal int Length; // message body length public unsafe t_accessor_nameWriter([FOREACH(",")] t_field_type t_field_name = default(t_field_type) /*END*/) : base(null /*IF("$t_accessor->getLayoutType() != LT_FIXED")*/ , null /*END*/) { int preservedHeaderLength = TrinityProtocol.MsgHeader; MUTE(); byte *tmpcellptr = null; MUTE_END(); MODULE_CALL("SerializeParametersToBuffer", "$t_accessor", "\"message\""); buffer = tmpcellptr - preservedHeaderLength; this.m_ptr = buffer + preservedHeaderLength; Length = BufferLength - preservedHeaderLength; IF("$t_accessor->getLayoutType() != LT_FIXED"); this.ResizeFunction = WriterResizeFunction; END(); }
internal static unsafe bool TryParse_t_field_type_2_element_type_display(t_field_type value, out t_field_type_2_element_type intermediate_result) { throw new NotImplementedException(); }
internal static unsafe bool TryParse_t_field_type_display(string value, out t_field_type t_field_type) { throw new NotImplementedException(); }
//Mocking ctor public t_struct_name(t_field_type t_field_name = null, t_field_type t_field_name1 = default(t_field_type)) : this(t_field_name) { throw new NotImplementedException(); }
///<summary> ///Initializes a new instance of t_struct_name with the specified parameters. ///</summary> public t_struct_name(/*FOREACH(",")*/ t_field_type t_field_name = default(t_field_type) /*END*/) { FOREACH(); this.t_field_name = t_field_name; END(); }
internal static unsafe t_data_type Enumerate_t_field_type_2_element_type_display(t_field_type value) { throw new NotImplementedException(); }
internal static unsafe t_field_type ConvertFrom_t_field_type_2_array_element_type_display(t_field_type t_field_type) { throw new NotImplementedException(); }
internal static unsafe T ConvertFrom_t_field_type_remove_nullable(t_field_type t_field_type) { throw new NotImplementedException(); }
internal static T ConvertFrom_t_field_type_display(t_field_type value) { return(s_type_converter.ConvertFrom_t_field_type_display(value)); }
T ITypeConverter <T> .ConvertFrom_t_field_type_display(t_field_type value) { throw new NotImplementedException("Internal error T5013."); }
object ITypeConverter <object> .ConvertFrom_t_field_type_display(t_field_type value) { return(value); }
t_field_type_2 ITypeConverter <t_field_type_2> .ConvertFrom_t_field_type_display(t_field_type value) { META_VAR("TypeConversionAction", "conversion_action", "$t_field_type_2->get_type_conversion_action($t_field_type)"); IF("%conversion_action == TypeConversionAction::TC_ASSIGN"); return((t_field_type_2)value); ELIF("%conversion_action == TypeConversionAction::TC_TOSTRING"); return(Serializer.ToString(value)); ELIF("%conversion_action == TypeConversionAction::TC_PARSESTRING"); { #region String parse t_field_type_2 intermediate_result; bool conversion_success; IF("data_type_need_external_parser($t_field_type_2)"); { conversion_success = ExternalParser.TryParse_t_field_type_2_display(value, out intermediate_result); } ELSE(); { conversion_success = t_field_type_2.TryParse(value, out intermediate_result); } END(); if (!conversion_success) { IF("$t_field_type_2->is_list()"); try { t_field_type_2_element_type element = TypeConverter <t_field_type_2_element_type> .ConvertFrom_t_field_type_display(value); intermediate_result = new t_field_type_2(); intermediate_result.Add(element); } catch { throw new ArgumentException("Cannot parse \"" + value + "\" into either 't_field_type_2' or 't_field_type_2_element_type'."); } ELSE(); Throw.cannot_parse(value, "t_field_type_2"); END(); } return(intermediate_result); #endregion } ELIF("%conversion_action == TypeConversionAction::TC_TOBOOL"); return(value != 0); ELIF("%conversion_action == TypeConversionAction::TC_CONVERTLIST"); { t_field_type_2 intermediate_result = new t_field_type_2(); foreach (var element in value) { intermediate_result.Add(TypeConverter <t_field_type_2_element_type> .ConvertFrom_t_field_type_element_type_display(element)); } return(intermediate_result); } ELIF("%conversion_action == TypeConversionAction::TC_WRAPINLIST"); { t_field_type_2 intermediate_result = new t_field_type_2(); intermediate_result.Add(TypeConverter <t_field_type_2_element_type> .ConvertFrom_t_field_type_display(value)); return(intermediate_result); } ELIF("%conversion_action == TypeConversionAction::TC_ARRAYTOLIST"); return(TypeConverter <t_field_type> .Enumerate_t_field_type_2_element_type_display(value).ToList()); ELIF("%conversion_action == TypeConversionAction::TC_EXTRACTNULLABLE"); return(TypeConverter <t_field_type_2> .ConvertFrom_t_field_type_remove_nullable(value.Value)); ELSE(); throw new InvalidCastException("Invalid cast from '[META_OUTPUT($t_field_type)]' to '[META_OUTPUT($t_field_type_2)]'."); END(); }
public static bool ElementContainsSubstring(this t_field_type list, params string[] substrings) { return(ElementContainsSubstring(list, substrings as IEnumerable <string>)); }