/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package flash.tools.debugger; /** * The SwfInfo object contains information relating to * a particular swf file that was loaded by the Player. * Each SWF file contains a list of actionscript source * files from which execution is performed. * * It is important to note 2 or more SWF files may contain * multiple copies of the same source code. From the * Player's perspective and the API perspective these * copies are unique and it is up to the user of the * API to detect these 'duplicate' files and either * filter them from the user and/or present an * appropriate disambiguous representation of * the file names. Also internally they are treated * as two distinct files and thus breakpoints * will most likely need to be set on both files * independently. */ public interface SwfInfo { /** * The full path of the SWF. */ public String getPath(); /** * The URL for the SWF. Includes any options * at the end of the URL. For example ?debug=true */ public String getUrl(); /** * The size of this SWF in bytes */ public int getSwfSize(); /** * The size of the debug SWD file, if any * This may also be zero if the SWD load is in progress * @throws InProgressException if the SWD has not yet been loaded */ public int getSwdSize(Session s) throws InProgressException; /** * Indication that this SWF, which was previously loaded into * the Player, is now currently unloaded. All breakpoints * set on any of the files contained within this SWF will * be inactive. These breakpoints will still exist in the * list returned by Session.getBreakpointList() */ public boolean isUnloaded(); /** * Indicates whether the contents of the SWF file * have been completely processed. * Completely processed means that calls to getSwdSize * and other calls that may throw an InProgressException will * not throw this exception. Additionally the function * and offset related calls within SourceFile will return * non-null values once this call returns true. * @since Version 2 */ public boolean isProcessingComplete(); /** * Number of source files in this SWF. * May be zero if no debug * @throws InProgressException if the SWD has not yet been loaded */ public int getSourceCount(Session s) throws InProgressException; /** * List of source files that are contained within * this SWF. * @throws InProgressException if the SWD has not yet been loaded * @since Version 2 */ public SourceFile[] getSourceList(Session s) throws InProgressException; /** * Returns true if the given source file is contained * within this SWF. * @since Version 2 */ public boolean containsSource(SourceFile f); /** * Return the worker ID to which this SWF belongs. */ public int getIsolateId(); }