All Downloads are FREE. Search and download functionalities are using the official Maven repository.

flash.tools.debugger.SessionManager2 Maven / Gradle / Ivy

/*
 * 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;

import java.io.IOException;

public interface SessionManager2 extends SessionManager {
	
	/**
	 * This is, functionally, a clone of the SessionManager.launch() method. There are however some differences.
	 * 	-This is to be called only for run launches. only for debug launches, the launch() method creates a Session and
	 * binds it to the launch and since the launch() method returns the Session, which will be null in a Run Launch case,
	 * we have no way of accessing the Process that was created for the launch.
	 * 	-To enable auto termination of run launches, we need to know the system Process for us to terminate it when
	 * necessary.
	 *  -This method creates the process and binds a process listener to it and then returns the process.
	 *
	 * 
	 * @param uri
	 *            which will launch a Flash player under running OS. For
	 *            Flash/Flex apps, this can point to either a SWF or an HTML
	 *            file. For AIR apps, this must point to the application.xml
	 *            file for the application.
	 * @param airLaunchInfo
	 *            If trying to launch an AIR application, this argument must be
	 *            specified; it gives more information about how to do the
	 *            launch. If trying to launch a regular web-based Flash or Flex
	 *            application, such as one that will be in a browser or in the
	 *            standalone Flash Player, this argument should be
	 *            null.
	 * @param waitReporter
	 *            a progress monitor to allow accept() to notify its parent how
	 *            long it has been waiting for the Flash player to connect to
	 *            it. May be null if the caller doesn't need to
	 *            know how long it's been waiting.
	 * @param launchNotification
	 *            a notifier to notify the caller about ADL Exit Code.
	 *            Main usage is for ADL Exit Code 1 (Successful invocation of an 
	 *            already running AIR application. ADL exits immediately).
	 *            May be null if no need to listen ADL. 
	 *			  The callback will be called on a different thread.
	 * @return a Process to use for the run launch.
	 *         The return value is not used to indicate an error -- exceptions
	 *         are used for that. If this function returns without throwing an
	 *         exception, then the return value will always be non-null.
	 * @throws IOException
	 *             see Runtime.exec()
	 */
	public Process launchForRun(String uri, AIRLaunchInfo airLaunchInfo,
			 IProgress waitReporter, ILaunchNotification launchNotification) throws IOException;
	/**
	 * This is, functionally, a clone of the SessionManager.launch() method. There are however some differences.
	 * 	-This is to be called only for run launches. only for debug launches, the launch() method creates a Session and
	 * binds it to the launch and since the launch() method returns the Session, which will be null in a Run Launch case,
	 * we have no way of accessing the Process that was created for the launch.
	 * 	-To enable auto termination of run launches, we need to know the system Process for us to terminate it when
	 * necessary.
	 *  -This method creates the process and binds a process listener to it and then returns the process.
	 *
	 *  - This method used the ILauncher instance passed to launch the application.
	 *  
	 * @param uri
	 *  		  which will launch a Flash player under running OS. For
	 *            Flash/Flex apps, this can point to either a SWF or an HTML
	 *            file. For AIR apps, this must point to the application.xml
	 *            file for the application.
	  * @param airLaunchInfo
	 *            If trying to launch an AIR application, this argument must be
	 *            specified; it gives more information about how to do the
	 *            launch. If trying to launch a regular web-based Flash or Flex
	 *            application, such as one that will be in a browser or in the
	 *            standalone Flash Player, this argument should be
	 *            null.
	 * @param waitReporter
	 *            a progress monitor to allow accept() to notify its parent how
	 *            long it has been waiting for the Flash player to connect to
	 *            it. May be null if the caller doesn't need to
	 *            know how long it's been waiting.
	 * @param launchNotification
	 *            a notifier to notify the caller about ADL Exit Code.
	 *            Main usage is for ADL Exit Code 1 (Successful invocation of an 
	 *            already running AIR application. ADL exits immediately).
	 *            May be null if no need to listen ADL. 
	 *			  The callback will be called on a different thread.
	 * @param launcher
	 * 			  a launcher instance which will be used to launch.
	 * @return a Process to use for the run launch.
	 *         The return value is not used to indicate an error -- exceptions
	 *         are used for that. If this function returns without throwing an
	 *         exception, then the return value will always be non-null.
	 * @throws IOException
	 */
	public Process launchForRun(String uri, AIRLaunchInfo airLaunchInfo,
			 IProgress waitReporter, ILaunchNotification launchNotification, ILauncher launcher) throws IOException;
	
	
	/**
	 * Launches the given string as a URI using the ILauncher Instance.
	 * 
	 * This API is to provide more flexibility to handle the Player launch in different platforms.
	 * 
	 * This call will block until a session with the newly launched player is
	 * created.
	 * 

* It is the caller's responsibility to ensure that no other thread is * blocking in accept(), since that thread will gain control * of this session. *

* Before calling launch(), you should first call * supportsLaunch(). If supportsLaunch() * returns false, then you will have to tell the user to manually launch the * Flash player. *

* Also, before calling launch(), you must call * startListening(). * * @param uri * which will launch a Flash player under running OS. For * Flash/Flex apps, this can point to either a SWF or an HTML * file. For AIR apps, this must point to the application.xml * file for the application. * @param airLaunchInfo * If trying to launch an AIR application, this argument must be * specified; it gives more information about how to do the * launch. If trying to launch a regular web-based Flash or Flex * application, such as one that will be in a browser or in the * standalone Flash Player, this argument should be * null. * @param forDebugging * if true, then the launch is for the purposes * of debugging. If false, then the launch is * simply because the user wants to run the movie but not debug * it; in that case, the return value of this function will be * null. * @param waitReporter * a progress monitor to allow accept() to notify its parent how * long it has been waiting for the Flash player to connect to * it. May be null if the caller doesn't need to * know how long it's been waiting. * @param launchNotification * a notifier to notify the caller about ADL Exit Code. * Main usage is for ADL Exit Code 1 (Successful invocation of an * already running AIR application. ADL exits immediately). * May be null if no need to listen ADL. * Will only be called if forDebugging is false. (If forDebugging * is true, error conditions are handled by throwing an exception.) * The callback will be called on a different thread. * @return a Session to use for debugging, or null if forDebugging==false. * The return value is not used to indicate an error -- exceptions * are used for that. If this function returns without throwing an * exception, then the return value will always be non-null if * forDebugging==true, or null if forDebugging==false. * @throws BindException * if isListening() == false * @throws FileNotFoundException * if file cannot be located * @throws CommandLineException * if the program that was launched exited unexpectedly. This * will be returned, for example, when launching an AIR * application, if adl exits with an error code. * CommandLineException includes functions to return any error * text that may have been sent to stdout/stderr, and the exit * code of the program. * @throws IOException * Exception during launch. */ public Session launch(String uri, AIRLaunchInfo airLaunchInfo, boolean forDebugging, IProgress waitReporter, ILaunchNotification launchNotification, ILauncher launcher) throws IOException; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy