示例#1
0
 public SymbolSource(string aURI, SymSourceProvider aProvider)
     : base(aURI, aProvider)
 {
     iData = new SymbolFileData(this);
     //
     FindCollections();
 }
示例#2
0
 public ObeySource(string aURI, SymSourceProvider aProvider, SymSource aOriginalMapSource)
     : base(aURI, aProvider)
 {
     foreach (SymbolCollection mapCollection in aOriginalMapSource)
     {
         mapCollection.IfaceRelocationHandler = this as ISymbolCollectionRelocationHandler;
         base.Add(mapCollection);
     }
     iOriginalMapSource = aOriginalMapSource;
 }
示例#3
0
        public override bool IsSupported(string aFileName, out string aType)
        {
            SymSourceProvider provider = iProvisioningManager.GetProvider(aFileName);

            //
            if (provider != null)
            {
                aType = provider.Name;
            }
            else
            {
                aType = string.Empty;
            }
            //
            return(provider != null);
        }
示例#4
0
        public override void Add(DbgEntity aEntity)
        {
            SymSourceProvider provider = null;

            //
            if (aEntity.FSEntity.IsFile)
            {
                if (aEntity.Exists && aEntity.FSEntity.IsValid)
                {
                    provider = ProvisioningManager.GetProvider(aEntity.FSEntity.FullName);
                }
                //
                if (provider != null)
                {
                    using (SymSourceCollection sources = provider.CreateSources(aEntity.FullName))
                    {
                        // Make sure the time to read attribute is setup in alignment with
                        // whether the entity was explicitly added by the user or found implicitly
                        // by scanning.
                        if (aEntity.WasAddedExplicitly == false)
                        {
                            foreach (SymSource source in sources)
                            {
                                // This means, don't read this source until it is actually
                                // referenced by the client. I.e. until the client activates
                                // a code segment that refers to this
                                source.TimeToRead = SymSource.TTimeToRead.EReadWhenNeeded;
                            }
                        }

                        // Ownership is transferred
                        iSources.AddRange(sources);
                        sources.Clear();
                    }
                }
                else
                {
                    throw new NotSupportedException("Specified file type is not supported");
                }
            }
            else
            {
                throw new ArgumentException("SymbianSymbolLib does not support directory entities");
            }
        }
示例#5
0
 public SymSource(string aURI, SymSourceProvider aProvider, SymbolCollection aCollection)
     : this(aURI, aProvider)
 {
     Add(aCollection);
 }
示例#6
0
 public SymSource(string aURI, SymSourceProvider aProvider)
 {
     iURI      = aURI;
     iProvider = aProvider;
 }