blob: c1632a89ea8af5b914b5375d381bdf5cf95e8529 [file] [log] [blame]
/*
* 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();
}