Exemplo n.º 1
0
 private static string GetPrivateFieldName(FieldData f)
 {
     return string.Format("m{0}", Utils.GetPascalStyleString(f.Name));
 }
Exemplo n.º 2
0
        private static string GetEnumTypeCast(FieldData f)
        {
            if (!f.IsEnum)
                return "";

            return String.Format("({0})", GetEnumName(f.EnumType));
        }
Exemplo n.º 3
0
        private static string GetReadOperation(FieldData f)
        {
            if (f.IsEnum)
            {
                return GetBaseReadOperation(XmlParser.GetFieldTypeFromString(f.TypeString));
            }

            return GetBaseReadOperation(f.Type);
        }
Exemplo n.º 4
0
        private static string GetCSharpType(FieldData f)
        {
            if (f.IsEnum) return GetEnumName(f.EnumType);

            return GetBaseCSharpType(f.Type);
        }
Exemplo n.º 5
0
        private static string GetSerializeTypeCast(FieldData f)
        {
            if (!f.IsEnum) return "";

            // Field is enum, use the declared type
            return string.Format("({0})", 
                GetBaseCSharpType(XmlParser.GetFieldTypeFromString(f.TypeString)));
        }
Exemplo n.º 6
0
 private static string GetFieldName(FieldData f)
 {
     return Utils.GetPascalStyleString(f.Name);
 }
Exemplo n.º 7
0
        private static string GetArrayModifier(FieldData f, bool withNumberOfElements)
        {
            int numElements = f.NumElements;

            if (numElements <= 1) return "";

            return string.Format("[{0}]", (withNumberOfElements ? numElements.ToString() : ""));
        }
Exemplo n.º 8
0
        // __ Impl _______________________________________________________


        private void Parse(XmlTextReader reader, ProtocolData result)
        {
            ProtocolObject currentObject = null;
            MessageData currentMsg = null;
            FieldData currentField = null;
            EnumData currentEnum = null;
            EnumEntry currentEntry = null;
            EnumEntryParameter currentParam = null;
            int currentEnumValue = 0;

            while (reader.Read())
            {
                if (reader.IsStartElement())
                {
                    switch (reader.Name)
                    {
                        case "include":
                            ProcessInclude(reader.ReadElementContentAsString(), result);
                            break;
                        case "version":
                            result.Version = reader.ReadElementContentAsInt();
                            break;
                        case "message":
                            if (currentMsg != null) SortFields(currentMsg);
                            currentMsg = new MessageData();
                            currentObject = currentMsg;
                            currentMsg.Name = reader.GetAttribute("name");
                            currentMsg.Id = GetIntFromString(reader.GetAttribute("id"));
                            result.Messages.Add(currentMsg.Name, currentMsg);
                            break;
                        case "description": 
                            currentObject.Description = reader.ReadString();
                            break;
                        case "field":
                            currentField = new FieldData();
                            currentField.Name = reader.GetAttribute("name");
                            currentField.TypeString = reader.GetAttribute("type");
                            currentField.Type = GetFieldTypeFromString(currentField.TypeString);
                            currentField.NumElements = GetFieldTypeNumElements(currentField.TypeString);
                            currentField.Description = reader.ReadElementContentAsString();
                            UpdateEnumFields(result, currentField);
                            currentMsg.Fields.Add(currentField);
                            break;
                        case "enum":
                            currentEnum = GetEnumDataForName(result, reader.GetAttribute("name"));
                            currentObject = currentEnum;
                            result.Enumerations[currentEnum.Name] = currentEnum;
                            currentEnumValue = 0;
                            break;
                        case "entry":
                            currentEntry = new EnumEntry();
                            currentObject = currentEntry;
                            currentEntry.Name = reader.GetAttribute("name");
                            currentEntry.Value = GetIntFromString(reader.GetAttribute("value"), ++currentEnumValue);
                            currentEnumValue = currentEntry.Value;
                            currentEnum.Entries.Add(currentEntry);
                            break;
                        case "param":
                            currentParam = new EnumEntryParameter();
                            currentParam.Index = GetIntFromString(reader.GetAttribute("index"));
                            currentParam.Description = reader.ReadElementContentAsString();
                            currentEntry.Parameters.Add(currentParam);
                            break;
                    }
                }
            }
        }
Exemplo n.º 9
0
        private static string GetDefaultValue(FieldData f)
        {
            if (f.NumElements > 1)
            {
                // Array value
                return string.Format(" = new {0}[{1}]", GetCSharpType(f), f.NumElements);
            }

            return "";
        }
Exemplo n.º 10
0
 private static void UpdateEnumFields(ProtocolData data, FieldData field)
 {
     foreach (string s in data.Enumerations.Keys)
     {
         if (field.Description.IndexOf(s) != -1 && field.Type != FieldDataType.FLOAT32)
         {
             field.IsEnum = true;
             field.EnumType = s;
             return;
         }
     }
 }
Exemplo n.º 11
0
 private static string GetPrivateFieldName(FieldData f)
 {
     return(string.Format("m{0}", Utils.GetPascalStyleString(f.Name)));
 }
Exemplo n.º 12
0
 private static string GetFieldName(FieldData f)
 {
     return(Utils.GetPascalStyleString(f.Name));
 }
Exemplo n.º 13
0
        // __ Impl _______________________________________________________


        private void Parse(XmlTextReader reader, ProtocolData result)
        {
            ProtocolObject     currentObject = null;
            MessageData        currentMsg    = null;
            FieldData          currentField  = null;
            EnumData           currentEnum   = null;
            EnumEntry          currentEntry  = null;
            EnumEntryParameter currentParam  = null;
            int currentEnumValue             = 0;

            while (reader.Read())
            {
                if (reader.IsStartElement())
                {
                    switch (reader.Name)
                    {
                    case "include":
                        ProcessInclude(reader.ReadElementContentAsString(), result);
                        break;

                    case "version":
                        result.Version = reader.ReadElementContentAsInt();
                        break;

                    case "message":
                        // if (currentMsg != null) SortFields(currentMsg);   //<--- if condition deleted
                        currentMsg      = new MessageData();
                        currentObject   = currentMsg;
                        currentMsg.Name = reader.GetAttribute("name");
                        currentMsg.Id   = GetIntFromString(reader.GetAttribute("id"));
                        if (currentMsg.Id < 256)        // Msg id field is a byte, discard anything beyond 255
                        {
                            result.Messages.Add(currentMsg.Name, currentMsg);
                        }
                        break;

                    case "description":
                        currentObject.Description = reader.ReadString();
                        break;

                    case "field":
                        currentField             = new FieldData();
                        currentField.Name        = reader.GetAttribute("name");
                        currentField.TypeString  = reader.GetAttribute("type");
                        currentField.Type        = GetFieldTypeFromString(currentField.TypeString);
                        currentField.NumElements = GetFieldTypeNumElements(currentField.TypeString);
                        currentField.Description = reader.ReadElementContentAsString();
                        UpdateEnumFields(result, currentField);
                        currentMsg.Fields.Add(currentField);
                        break;

                    case "enum":
                        currentEnum   = GetEnumDataForName(result, reader.GetAttribute("name"));
                        currentObject = currentEnum;
                        result.Enumerations[currentEnum.Name] = currentEnum;
                        currentEnumValue = 0;
                        break;

                    case "entry":
                        currentEntry       = new EnumEntry();
                        currentObject      = currentEntry;
                        currentEntry.Name  = reader.GetAttribute("name");
                        currentEntry.Value = GetIntFromString(reader.GetAttribute("value"), ++currentEnumValue);
                        currentEnumValue   = currentEntry.Value;
                        currentEnum.Entries.Add(currentEntry);
                        break;

                    case "param":
                        currentParam             = new EnumEntryParameter();
                        currentParam.Index       = GetIntFromString(reader.GetAttribute("index"));
                        currentParam.Description = reader.ReadElementContentAsString();
                        currentEntry.Parameters.Add(currentParam);
                        break;
                    }
                }
                else     //<----- Else condition added to control closing of the current node; *** BEGIN ****
                {
                    if (reader.Name == "message")
                    {
                        if (currentMsg != null)
                        {
                            SortFields(currentMsg);
                        }
                    }
                } //<----- *** END ***
            }
        }
Exemplo n.º 14
0
        // __ Impl _______________________________________________________


        private void Parse(XmlTextReader reader, ProtocolData result)
        {
            ProtocolObject     currentObject = null;
            MessageData        currentMsg    = null;
            FieldData          currentField  = null;
            EnumData           currentEnum   = null;
            EnumEntry          currentEntry  = null;
            EnumEntryParameter currentParam  = null;

            while (reader.Read())
            {
                if (reader.IsStartElement())
                {
                    switch (reader.Name)
                    {
                    case "include":
                        ProcessInclude(reader.ReadElementContentAsString(), result);
                        break;

                    case "version":
                        result.Version = reader.ReadElementContentAsInt();
                        break;

                    case "message":
                        if (currentMsg != null)
                        {
                            SortFields(currentMsg);
                        }
                        currentMsg      = new MessageData();
                        currentObject   = currentMsg;
                        currentMsg.Name = reader.GetAttribute("name");
                        currentMsg.Id   = GetIntFromString(reader.GetAttribute("id"));
                        result.Messages.Add(currentMsg.Name, currentMsg);
                        break;

                    case "description":
                        currentObject.Description = reader.ReadString();
                        break;

                    case "field":
                        currentField             = new FieldData();
                        currentField.Name        = reader.GetAttribute("name");
                        currentField.TypeString  = reader.GetAttribute("type");
                        currentField.Type        = GetFieldTypeFromString(currentField.TypeString);
                        currentField.NumElements = GetFieldTypeNumElements(currentField.TypeString);
                        currentField.Description = reader.ReadElementContentAsString();
                        UpdateEnumFields(result, currentField);
                        currentMsg.Fields.Add(currentField);
                        break;

                    case "enum":
                        currentEnum   = GetEnumDataForName(result, reader.GetAttribute("name"));
                        currentObject = currentEnum;
                        result.Enumerations[currentEnum.Name] = currentEnum;
                        break;

                    case "entry":
                        currentEntry       = new EnumEntry();
                        currentObject      = currentEntry;
                        currentEntry.Name  = reader.GetAttribute("name");
                        currentEntry.Value = GetIntFromString(reader.GetAttribute("value"));
                        currentEnum.Entries.Add(currentEntry);
                        break;

                    case "param":
                        currentParam             = new EnumEntryParameter();
                        currentParam.Index       = GetIntFromString(reader.GetAttribute("index"));
                        currentParam.Description = reader.ReadElementContentAsString();
                        currentEntry.Parameters.Add(currentParam);
                        break;
                    }
                }
            }
        }