private void Reader_EntryRead(ObeyFileReader aReader, string aHost, string aDevice) { // Check if there is a corresponding map file in the host file system. FileInfo mapFile = new FileInfo(aHost + KMapFileExtension); if (mapFile.Exists) { bool supported = iMapProvider.IsSupported(mapFile.FullName); if (supported) { // First get the map provider to create its own concrete list of // sources for the specified map file. This should just be a single // source and a single collection since that is the logical encapsulating // domain for a given map file. SymSourceCollection mapSources = iMapProvider.CreateSources(mapFile.FullName); // Next, we iterate through any sources (probably just one) and then // extract the collection & provider that was specified for that source. // // We want to effectively sit the OBY source plugin in between the symbol // engine and the map plugin so that it can ensure that we only read a // given map file at the point when the map file symbol collection is activated. foreach (SymSource mapSource in mapSources) { SymSource obeySource = new ObeySource(mapSource.URI, this, mapSource); iTransientSources.Add(obeySource); } } else { SymbianUtils.SymDebug.SymDebugger.Break(); } } }
public override SymSourceCollection CreateSources(string aFileName) { System.Diagnostics.Debug.Assert(iMapProvider != null); // Read OBY file and resolve to map files in host file system. iTransientSources = new SymSourceCollection(); try { ObeyFileReader reader = new ObeyFileReader(aFileName); reader.EntryRead += new ObeyFileReader.ObyEntryHandler(Reader_EntryRead); reader.Read(TSynchronicity.ESynchronous); } catch (Exception) { iTransientSources.Clear(); } // This source provider doesn't directly create any sources SymSourceCollection ret = iTransientSources; iTransientSources = null; return(ret); }