Beispiel #1
0
        public static TMapFileType Type(string aFileName)
        {
            TMapFileType ret = TMapFileType.ETypeUnknown;

            //
            if (File.Exists(aFileName))
            {
                ret = TMapFileType.ETypeGCCE;
                //
                using (StreamReader reader = new StreamReader(aFileName))
                {
                    string firstLine = reader.ReadLine().Trim().ToUpper();
                    if (firstLine.StartsWith("ARM LINKER, RVCT"))
                    {
                        ret = TMapFileType.ETypeRVCT;
                    }
                }
            }
            //
            return(ret);
        }
        public override void ReadSource(SymSource aSource, TSynchronicity aSynchronicity)
        {
            // Need to work out if it's a GCCE or RVCT map file.
            TMapFileType type = MapFileUtils.Type(aSource.FileName);
            //
            MapReader reader = null;

            switch (type)
            {
            case TMapFileType.ETypeRVCT:
                reader = new RVCTMapFileReader(aSource, base.Tracer);
                break;

            case TMapFileType.ETypeGCCE:
                reader = new GCCEMapFileReader(aSource, base.Tracer);
                break;

            case TMapFileType.ETypeUnknown:
            default:
                throw new NotSupportedException();
            }
            //
            reader.Read(aSynchronicity);
        }