#ifndef PRO_JLINK_H
#define PRO_JLINK_H
#include <ProToolkitDll.h>
PRO_BEGIN_C_DECLS
typedef struct Userprog* ProJlinkAppHandle;
extern ProError ProJlinkApplicationStart (ProName app_name,
ProCharPath java_app_class,
ProCharPath java_app_start,
ProCharPath java_app_stop,
ProCharPath java_app_add_classpath,
ProCharPath text_dir,
ProBoolean user_display,
ProJlinkAppHandle* handle,
char ** startup_exception);
/*
Purpose: Register and start a J-Link application.
Input Arguments:
app_name - The application name.
java_app_class - The application Java class.
java_app_start - Static method used to intialize the application.
java_app_stop - Static method used to terminate the application.
java_app_add_classpath - Additional elements to be added to the front
of the system CLASSPATH. Can be NULL. If more
than one path is being added, they must be
separated using the appropriate path separator
(';' on Windows and ':' on UNIX).
text_dir - The application text path for menus and messaging. If NULL,
the function uses the current directory.
user_display - PRO_B_TRUE to show application startup failure messages
to the user, and to show the application in the
Auxiliary Applications dialog.
Output Arguments:
handle - Handle to the Jlink application.
startup_exception - If the application start method threw an exception,
the exception description is stored here. Free this
string using ProStringFree. Pass NULL if you are
not interested in this information.
Return Values:
PRO_TK_NO_ERROR - Initialization succeeded.
PRO_TK_BAD_INPUTS - One or more arguments are invalid.
PRO_TK_USER_ABORT - The application failed to start properly. See the
startup exception for more details.
PRO_TK_GENERAL_ERROR - Initialization failed. See the startup exception
for more details.
PRO_TK_E_AMBIGUOUS - The application class is already registered as
another application, with different start and/or
stop methods.
PRO_TK_E_IN_USE - The application with this configuration is already
loaded, and may not be loaded again.
PRO_TK_CANT_WRITE - Creo Parametric will not accept any more auxiliary
applications at this time.
*/
extern ProError ProJlinkTaskExecute (ProJlinkAppHandle app_handle,
ProCharLine task_id,
ProArgument* input_args,
ProArgument** output_args,
char ** exception);
/*
Purpose: Call a static method, with variable arguments, in a J-Link
application.
Input Arguments:
app_handle - Handle to the Jlink application.
task_id - The name of the task listener registered using J-Link calls
bt the application.
input_args - ProArray of input arguments. This should not include any
arguments of type PRO_VALUE_TYPE_POINTER.
Output Arguments:
output_args - ProArray of output arguments.
exception - If the method threw an exception, the exception description
is stored here. Free this string using ProStringFree().
Pass NULL if you are not interested in this information.
Return Values:
PRO_TK_NO_ERROR - Task executed successfully.
PRO_TK_BAD_INPUTS - One or more input arguments are invalid.
PRO_TK_USER_ABORT - The application threw an exception. See the
exception output argument for more details.
PRO_TK_E_NOT_FOUND - The task could not be found.
PRO_TK_BAD_CONTEXT - The handle is valid but the application is not
active.
PRO_TK_GENERAL_ERROR - A virtual machine error occurred. See the
exception output argument for more details.
*/
extern ProError ProJlinkApplicationStop (ProJlinkAppHandle app_handle,
char ** exception);
/*
Purpose: Stop a previously loaded J-Link application. The application's
stop method will be called.
Input Arguments:
app_handle - Handle to the Jlink application.
Output Arguments:
exception - If the application stop method threw an exception, the
exception description is stored here. Free this string
using ProStringFree.
Return Values:
PRO_TK_NO_ERROR - Shutdown succeeded.
PRO_TK_BAD_INPUTS - The input argument is invalid.
PRO_TK_USER_ABORT - The application failed to shutdown properly. See
the output exception for more details.
PRO_TK_E_BUSY - The application has menus or UI components active in
the UI.
PRO_TK_BAD_CONTEXT - The handle is valid but the application is not
active.
*/
PRO_END_C_DECLS
#endif