Rational Developer for Power Systems Software
V7.6

com.ibm.etools.iseries.edit.verifiers.comm.bridge
Class CODECommFunctions

java.lang.Object
  extended by com.ibm.etools.iseries.edit.verifiers.comm.bridge.CODECommFunctions
All Implemented Interfaces:
ICODECommIntegrationConstants

public class CODECommFunctions
extends Object
implements ICODECommIntegrationConstants

This class contains the implementation for all RSE <-> CODE tool integration function calls.


Field Summary
static String copyright
           
 
Fields inherited from interface com.ibm.etools.iseries.edit.verifiers.comm.bridge.ICODECommIntegrationConstants
ADEOPT_ALL, ADEOPT_ASIS, ADEOPT_CODE, ADEOPT_DATE, ADEOPT_EDIT, ADEOPT_FIRST, ADEOPT_INACTIVE, ADEOPT_LENGTH, ADEOPT_NOTAG, ADEOPT_SECOND, ADEOPT_SIZE, ADERC_BUFFER_SMALL, ADERC_CCSID_NF, ADERC_EDIT_NF, ADERC_EOF, ADERC_FIELD_NF, ADERC_FILE_AUTH, ADERC_FILE_NF, ADERC_FILE_TYPE, ADERC_INACT, ADERC_INVALID_ALIAS, ADERC_INVALID_MSG, ADERC_LIB_AUTH, ADERC_LIB_NF, ADERC_MBR_NF, ADERC_NO_SERVER, ADERC_OBJ_AUTH, ADERC_OBJ_NF, ADERC_OK, ADERC_PROG_ERR, ADERC_RECORD_NF, ADERC_RSST_ERR, ADERC_SYS_ERR, ALIAS_LENGTH, BOOL_FALSE, BOOL_TRUE, CHKFILE_ADM, CHKFILE_DBCS, CHKFILE_DDM, CHKFILE_DISPLAY, CHKFILE_ICF, CHKFILE_JOIN, CHKFILE_KEYED, CHKFILE_LOGICAL, CHKFILE_MIXED, CHKFILE_PHYSICAL, CHKFILE_PRINTER, CHKFILE_SOURCE, CHKOP_ADD, CHKOP_ALL, CHKOP_CHANGE, CHKOP_COPY, CHKOP_CPYMBR, CHKOP_DELETE, CHKOP_EDIT, CHKOP_MANAGE, CHKOP_OBJOPERATE, CHKOP_OBJOPRMGT, CHKOP_READ, CHKOP_READADD, CHKOP_UPDATE, CHKOP_USE, CHKOP_USEADD, CHKSTATUS_FTYPERETURNED, CHKSTATUS_IGCSYS, CHKSTATUS_LIBREAD, CHKSTATUS_MBRLOCK, CHKSTATUS_OBJREAD, CHKTYPE_ADM, CHKTYPE_BASEDON, CHKTYPE_LIB, CHKTYPE_MBR, CHKTYPE_OBJ, EXTKWD_CHECKAB, EXTKWD_CHECKFE, EXTKWD_CHECKM10, EXTKWD_CHECKM11, EXTKWD_CHECKME, EXTKWD_CHECKMF, EXTKWD_CHECKMF10, EXTKWD_CHECKMF11, EXTKWD_CHECKVN, EXTKWD_CHECKVNE, EXTKWD_CHKMSGID, EXTKWD_COMPEQ, EXTKWD_COMPGE, EXTKWD_COMPGT, EXTKWD_COMPLE, EXTKWD_COMPLT, EXTKWD_COMPNE, EXTKWD_COMPNG, EXTKWD_COMPNL, EXTKWD_DFT, EXTKWD_RANGE, EXTKWD_VALUES, NULL_CHAR, OP_CONCAT, OP_RENAME, OP_SUBSTRING, OP_TRANS_CONCAT, OP_TRANS_RENAME, OP_TRANSLATE, RSE_CHECK_CCSID, RSE_CHECK_OBJECT, RSE_CHECK_OBJECT_2, RSE_CHECK_OBJECT_IFS, RSE_CLOSE, RSE_CLOSE_SOCKET, RSE_DEFAULT_ALIAS, RSE_DEVFILE_INFO, RSE_EDIT_WORD, RSE_GET_CWD_IFS, RSE_GET_ENCODING_SCHEME, RSE_GET_ENV_IFS, RSE_IS_ALIAS_VALID, RSE_IS_ANY_ALIAS_VALID, RSE_MSG_TEXT, RSE_OPEN_DBF, RSE_OPEN_FIELD, RSE_OPEN_GET, RSE_OPEN_GET_IFS, RSE_OPEN_LIST, RSE_READ, RSE_READ_DBF, RSE_READ_FIELD, RSE_READ_IFS, RSE_RESOLVE_DBF, RSE_SORT_SEQ_TABLE, RSE_SQL_LANG_LENGTH, RSE_SYNTAX_CHECK_SQL, RSE_SYS_INFO, RSE_XLATE, XLATE_GET, XLATE_PUT
 
Method Summary
protected static void resetSignonPrompts()
          Re-enable future signon prompts for all connections.
protected static void rseCheckCCSID(CToJavaInputStream in, JavaToCOutputStream out)
          * Function: * rseCheckCCSID : Check if the specified CCSID is valid * * Input: * USHORT ccsid = coded character set identifier * * Return: * LONG returnCode * ADERC_OK = successful completion * ADERC_CCSID_NF = CCSID not found * * /
protected static void rseCheckObject(CToJavaInputStream in, JavaToCOutputStream out)
          rseCheckObject : Check the object condition / status SEND: enum RSE_CHECK_OBJECT ALIAS server_alias - 10 char name of CODE server followed by terminating null CHAR name[34] library / object [(member | *)] - library could be: *LIBL : use the first occurence of the library / file in the library list if the member is not in this file then ADERC_MBR_NF is returned.
protected static void rseCheckObject2(CToJavaInputStream in, JavaToCOutputStream out)
          rseCheckObject2 : Check the object condition / status SEND: enum RSE_CHECK_OBJECT ALIAS server_alias - 10 char name of CODE server followed by terminating null int bufferSize; // The size of the buffer holding the name to check CHAR name[bufferSize] library / object [(member | *)] - library could be: *LIBL : use the first occurence of the library / file in the library list if the member is not in this file then ADERC_MBR_NF is returned.
protected static void rseCheckObjectHelper(String alias, String name, CToJavaInputStream in, JavaToCOutputStream out)
          rseCheckObjectHelper : A helper method used by rseCheckObject and rseCheckObject 2 The name of the object to check was assumed to be 34 bytes long.
protected static void rseCheckObjectIFS(CToJavaInputStream in, JavaToCOutputStream out)
          rseCheckObjectIFS SEND: enum RSE_CHECK_OBJECT_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG ifsFileName length CHAR *ifsFileName - null terminated fully qualified IFS file name RECEIVE: LONG return_code ADERC_OK ADERC_OBJ_NF for file not found ADERC_SYS_ERR for communications errors
protected static void rseClose(CToJavaInputStream in, JavaToCOutputStream out)
          RSE equivalent of VDEClose() ie.
protected static void rseDeviceFileInfo(CToJavaInputStream in, JavaToCOutputStream out)
          rseDeviceFileInfo SEND: enum RSE_DEVFILE_INFO ALIAS server_alias - 10 char name of CODE server followed by terminating null DFIIN typedef struct { CHAR library[11]; // Library CHAR file[11]; // Library authority } DFIIN; RECEIVE: LONG return_code DFIOUT typedef struct { USHORT lowestRespInd; // Lowest response indicator ULONG bufferSize; // User buffer size } DFIOUT;
protected static void rseEditWord(CToJavaInputStream in, JavaToCOutputStream out)
          rseEditWord SEND: enum RSE_EDIT_WORD ALIAS server_alias - 10 char name of CODE server followed by terminating null EDIN - request code = 1 ??? RECEIVE: LONG return_code SHORT length (single field for EDOUT1) Related CODE comm structures: typedef struct { SHORT editLength; // Length of edit word SHORT fieldLength; // Field length for edit code SHORT decimal; // Decimal position for edit code CHAR request; // Request code CHAR code; // Edit code CHAR symbol; // Float symbol for edit code CHAR word[256]; // Edit word } EDIN; typedef struct { SHORT length; // Output display length CHAR word[256]; // Output string } EDOUT1; // Edit code struct.
protected static void rseGetCurrentWorkingDirectory(CToJavaInputStream in, JavaToCOutputStream out)
          rseGetCWDIFS SEND: enum RSE_GET_CWD_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG length RECEIVE: LONG return_code if (rc == OK) { ULONG realLength + 1 (includes null terminator) buffer[] realLength + 1 (null terminated) } else if (rc == BUFFER_SMALL) { ULONG realLength+ 1 (includes null terminator) } else { // nothing else is sent for other return codes } Change history: yantzi:5.1.2 added incoming pathNameLenght variable and check to see if the current working directory is longer than the specified path lengh
protected static void rseGetDefaultAlias(CToJavaInputStream in, JavaToCOutputStream out)
          This API will determine return the first alias that exists, if the ADEOPT_INACTIVE option is not specified it will return the first active alias.
protected static void rseGetEncodingScheme(CToJavaInputStream in, JavaToCOutputStream out)
          rseGetEncodingScheme host api QTQGESP SEND: enum RSE_GET_ENCODING_SCHEME ALIAS server_alias - 10 char name of CODE server followed by terminating null int ccsid RECEIVE: LONG return_code int encodingScheme
protected static void rseGetEnvironmentVariable(CToJavaInputStream in, JavaToCOutputStream out)
          rseGetEnvIFS SEND: enum RSE_GET_ENV_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG varNameLength length CHAR *variableName - null terminated environment variable name ULONG maxLength RECEIVE: LONG return_code if (rc == OK) { ULONG length (length of environment data + 1 for null terminator) buffer[] (actual environment data, null terminated) } else if (rc == BUFFER_SMALL) { ULONG realLength+ 1 (includes null terminator) } else { // nothing else is sent for other return codes } Change history: yantzi:5.1.2 added incoming maxLength variable and check to see if the environment variable is longer than the specified path lengh
protected static void rseGetSortSeqTable(CToJavaInputStream in, JavaToCOutputStream out)
          rseGetSortSeqTable This api retrieves the host sort sequence table for the specified CCSID.
protected static void rseGetSystemInfo(CToJavaInputStream in, JavaToCOutputStream out)
          RSE equivalent of VDEEditWord() for request '3' (extract system info) ================= VDEEditWord() description =============================== Function: Edit word or field.
protected static void rseIsAliasValid(CToJavaInputStream in, JavaToCOutputStream out)
          This API will determine if the specified alias exists, if the ADEOPT_INACTIVE option is not specified it will also check if it is active.
protected static void rseIsAnyAliasValid(CToJavaInputStream in, JavaToCOutputStream out)
          This API will determine if the any alias exists, if the ADEOPT_INACTIVE option is not specified it will also check if they are active.
protected static void rseMsgText(CToJavaInputStream in, JavaToCOutputStream out)
          RSE equivalent of VDEMsgText() This API will return the same return code as VDEMsgText() with the same input but it will get the information from a socket to the specified port that is communicating through RSE.
protected static void rseOpenDBF(CToJavaInputStream in, JavaToCOutputStream out)
          rseOpenDBF SEND: enum RSE_OPEN_DBF ALIAS server_alias - 10 char name of CODE server followed by terminating null DBIN RECEIVE: LONG return_code ADE_CB control block (4 bytes) DBOUT
protected static void rseOpenField(CToJavaInputStream in, JavaToCOutputStream out)
          RSE equivalent of VDEOpen with the ADEOP_FIELD opcode This API will return the same information as VDEOpen with the same input but it will get the information from a socket to the specified port that is communicating through RSE.
protected static void rseOpenGet(CToJavaInputStream in, JavaToCOutputStream out)
          rseOpenGet : open a file for reading The search sequence for the file is as follows (outlined in DCR004576) 1.
protected static void rseOpenGetIFS(CToJavaInputStream in, JavaToCOutputStream out)
          rseOpenGetIFS SEND: enum RSE_OPEN_GET_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG ifsFileName length CHAR *ifsFileName - null terminated fully qualified IFS file name RECEIVE: LONG return_code ADE_CB control block (4 bytes) ULONG fileSize (number of lines)
protected static void rseOpenList(CToJavaInputStream in, JavaToCOutputStream out)
          rseOpenList SEND: enum RSE_OPEN_LIST ALIAS server_alias - 10 char name of CODE server followed by terminating null LONG adeOptions = ADEOPT_ALL -- ? ADEOPT_DEFAULT ADEOPT_TYPE ADEOPT_ASIS ADEOPT_MORE CHAR name[100] - format from PVs to come - library / file RCDNAME(*) RECEIVE: LONG return_code ADE_CB control block (4 bytes)
protected static void rseRead(CToJavaInputStream in, JavaToCOutputStream out)
          rseRead SEND: enum RSE_READ ADE_CB control_block_ptr - this char * is just the handle that was returned from the previous RSEOpenXXX() call.
protected static void rseReadField(CToJavaInputStream in, JavaToCOutputStream out)
          RSE equivalent of VDERead with the a previous VDEOpen with ADEOP_FIELD opcode This API will return the same information as VDERead() with the same input but it will get the information from a socket to the specified port that is communicating through RSE.
protected static void rseReadIFS(CToJavaInputStream in, JavaToCOutputStream out)
          rseReadIFS SEND: enum RSE_READ_IFS ADE_CB control block (4 bytes) RECEIVE: LONG return_code USHORT *pLength // length of incoming buffer buffer[] // actual data
protected static void rseSyntaxCheckSQL(CToJavaInputStream in, JavaToCOutputStream out)
          rseSyntaxCheckSQL This api Syntax Checks the SQL statements.
protected static void rseXlate(CToJavaInputStream in, JavaToCOutputStream out)
          rseXlate XLATE_PUT : ascii to ebcdic XLATE_GET : ebcdic to ascii SEND: enum RSE_XLATE ALIAS server_alias - 10 char name of CODE server followed by terminating null (for job CCSID) LONG options [ XLATE_PUT | XLATE_GET ] XLATE_PUT : PC -> host conversion XLATE_GET : host -> PC conversion LONG length CHAR string[length] RECEIVE: LONG return_code LONG length CHAR string[length]
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

copyright

public static final String copyright
See Also:
Constant Field Values
Method Detail

rseOpenField

protected static void rseOpenField(CToJavaInputStream in,
                                   JavaToCOutputStream out)
                            throws IOException
RSE equivalent of VDEOpen with the ADEOP_FIELD opcode This API will return the same information as VDEOpen with the same input but it will get the information from a socket to the specified port that is communicating through RSE. The RSE server is assumed to be running on the same machine. If there is a problem communicating with the target port, ADERC_SYS_ERR will be returned, otherwise the return code will be match that of VDEOpen with the same inputs. The protocol for this particular request is: SEND: enum RSE_OPEN_FIELD ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG ade_options - an unsigned long containing bit flags, indicating which options have been selected. FDIN target_field - the FDIN struct will be streamed out character by character. typedef struct { CHAR library[11]; // Data base library name CHAR file[11]; // Data base file name CHAR record[11]; // Data base record name CHAR field[11]; // Data base field name CHAR valCheck; // Data base validity check } FDIN; RECEIVE: LONG return_code ADE_CB control_block_ptr - this char * is just a handle, it can never be dereferenced FDOUT ref_field_info - the FDOUT struct will be streamed in and stuffed directly into the C structure. See evfcsys.h for struct definiton

Throws:
IOException

rseReadField

protected static void rseReadField(CToJavaInputStream in,
                                   JavaToCOutputStream out)
                            throws IOException
RSE equivalent of VDERead with the a previous VDEOpen with ADEOP_FIELD opcode This API will return the same information as VDERead() with the same input but it will get the information from a socket to the specified port that is communicating through RSE. The RSE server is assumed to be running on the same machine. If there is a problem communicating with the target port, ADERC_EXTFAIL will be returned, otherwise the return code will be match that of VDEOpen with the same inputs. The protocol for this particular request is: SEND: enum RSE_READ_FIELD ADE_CB control_block_ptr - this char * is just the handle that was returned from the previous RSEOpenXXX() call. RECEIVE: LONG return_code USHORT length - the number of bytes in the subsequent buffer CHAR[] buffer - the data that is waiting for this read, the data will vary depending on the open operation preceeding the read. Since the open operation was ADEOP_FIELD the buffer will contain a FDKWD struct, followed optionally by the parameter string. typedef struct { SHORT length; // Length of keyword parameters SHORT numParameter; // number of parameters SHORT id; // keyword identifier // List of keyword parameters } FDKWD; The parameter string contains numParameter parameters, each delimited with a null character and is contained in the length bytes following the FDKWD struct in the buffer. Return Codes: ADERC_OK = successful completion ADERC_COMM_ERR = communication error ADERC_SYS_ERR = local system error ADERC_EOF = end of file/list/data Return codes not supported (yet): ADERC_INVALID_ALIAS = server alias not active ADERC_BAD_SEQUENCE = invalid call sequence ADERC_PROG_ERR = programming error

Throws:
IOException

rseClose

protected static void rseClose(CToJavaInputStream in,
                               JavaToCOutputStream out)
                        throws IOException
RSE equivalent of VDEClose() ie. it will free the memory reserved by a previous RSEOpenXXX() operation. This API will return the same return code as VDEClose() with the same input but it will get the information from a socket to the specified port that is communicating through RSE. The RSE server is assumed to be running on the same machine. If there is a problem communicating with the target port, ADERC_SYS_ERR will be returned, otherwise the return code will be match that of VDEOpen with the same inputs. The protocol for this particular request is: SEND: enum RSE_CLOSE ADE_CB control_block_ptr - this char * is just the handle that was returned from the previous RSEOpenXXX() call. RECEIVE: LONG return_code ADERC_OK if successfull ADERC_SYS_ERR if control block is not found

Throws:
IOException

rseMsgText

protected static void rseMsgText(CToJavaInputStream in,
                                 JavaToCOutputStream out)
                          throws IOException
RSE equivalent of VDEMsgText() This API will return the same return code as VDEMsgText() with the same input but it will get the information from a socket to the specified port that is communicating through RSE. The RSE server is assumed to be running on the same machine. The protocol for this particular request is: SEND: enum RSE_MSG_TEXT int length char* msgId - null terminated string of the form "msgID library/msgFile" ULONG ade_options - an unsigned long containing bit flags, indicating which options have been selected. RECEIVE: LONG return_code int length of returned buffer char* buffer Supported Options: options = type of information to be retrieved (big flags) ADEOPT_CODE -- message severity ADEOPT_FIRST -- primary message text ADEOPT_SECOND -- secondary message text Return Codes: ADERC_OK = successful completion ADERC_INVALID_ALIAS = server alias not active ADERC_INVALID_MSG = invalid message identifier ADERC_SYS_ERR = local system error ADERC_PROG_ERR = programming error

Throws:
IOException

rseIsAliasValid

protected static void rseIsAliasValid(CToJavaInputStream in,
                                      JavaToCOutputStream out)
                               throws IOException
This API will determine if the specified alias exists, if the ADEOPT_INACTIVE option is not specified it will also check if it is active. The protocol for this particular request is: SEND: enum RSE_IS_ALIAS_ACTIVE ALIAS server_alias - null-terminated name of CODE server in 10 char buffer ULONG ade_options - an unsigned long containing bit flags, indicating which options have been selected. RECEIVE: BOOL return_code - unsigned short - non-zero if true

Throws:
IOException

rseIsAnyAliasValid

protected static void rseIsAnyAliasValid(CToJavaInputStream in,
                                         JavaToCOutputStream out)
                                  throws IOException
This API will determine if the any alias exists, if the ADEOPT_INACTIVE option is not specified it will also check if they are active. specify VDEALIAS to ignore STRCODE servers (Note: VDEALIAS not supported for RSE. The protocol for this particular request is: SEND: enum RSE_IS_ANY_ALIAS_ACTIVE ULONG ade_options - an unsigned long containing bit flags, indicating which options have been selected. RECEIVE: BOOL return_code - unsigned short - non-zero if true

Throws:
IOException

rseGetDefaultAlias

protected static void rseGetDefaultAlias(CToJavaInputStream in,
                                         JavaToCOutputStream out)
                                  throws IOException
This API will determine return the first alias that exists, if the ADEOPT_INACTIVE option is not specified it will return the first active alias. The return value will be true if an appropriate alias was found. specify VDEALIAS to ignore STRCODE servers Semantics: Case 1: ADEOPT_INACTIVE not specified. (Get an active server) a. Get the RSE specified default server. If it is not defined or connected, then b. Return any connected server. (If there is a user-specifiable order on the connections, respect that.) c. If none connected, fail - return false. Case 2: ADEOPT_INACTIVE specified. (Get an active server) a. Get the RSE specified default server. If it is not defined, then b. Return any defined server. (If there is a user-specifiable order on the connections, respect that.) c. If none defined, fail. The protocol for this particular request is: SEND: enum RSE_DEFAULT_ALIAS ULONG ade_options - an unsigned long containing bit flags, indicating which options have been selected. RECEIVE: BOOL return_code - unsigned short - non-zero if a default alias is found ALIAS server_alias - null-terminated name of CODE server in 10 char buffer

Throws:
IOException

rseGetSystemInfo

protected static void rseGetSystemInfo(CToJavaInputStream in,
                                       JavaToCOutputStream out)
                                throws IOException
RSE equivalent of VDEEditWord() for request '3' (extract system info) ================= VDEEditWord() description =============================== Function: Edit word or field. Input: alias = alias of the remote host system pEdin = pointer to EditWord input parameter structure options = type of information to be retrieved (big flags) ADEOPT_IMMEDIATE -- do not wait for active request to end Output: pEdout = pointer to EditWord output parameter structure Return: ADERC_OK = successful completion ADERC_INVALID = invalid parameter ADERC_COMM_ERR = communication error ================= End VDEEditWord() description =========================== This API will return the same return code as VDEEditWord() with the same input but it will get the information from a socket to the specified port that is communicating through RSE. The RSE server is assumed to be running on the same machine. If there is a problem communicating with the target port, ADERC_SYS_ERR will be returned. The protocol for this particular request is: SEND: enum RSE_SYS_INFO ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG ade_options - an unsigned long containing bit flags, indicating which options have been selected. RECEIVE: LONG return_code EDOUT2 struct where: typedef struct { SHORT count; // number of user defined codes CHAR currencySymbol; // Currency symbol CHAR systemDate[6]; // Date format CHAR decimalSeparator; // Decimal separator CHAR dateSeparator; // Date separator CHAR timeSeparator; // Time separator CHAR userId[11]; // User identifier CHAR jobDescription[11]; // Profile job description CHAR jobLibrary[11]; // Profile job library EDCODE editCode[5]; // User defined edit code } EDOUT2; // Edit code struct for request = 3 typedef struct _EDCODE { CHAR codeId; // Code identifier CHAR leading[32]; // Leading static field CHAR integer[32]; // Integer part of edit word CHAR decimalSeparator; // Decimal pointer separator CHAR decimalWord[32]; // Decimal part of edit word CHAR zeroChar1; // Zero suppressed character CHAR positive[32]; // Positive right static field CHAR negative[32]; // Negative right static field CHAR trailing[32]; // Trailing static field CHAR zeroChar2; // Zero suppressed character CHAR floating[16]; // Floating string } EDCODE; // User defined edit code

Throws:
IOException

rseGetSortSeqTable

protected static void rseGetSortSeqTable(CToJavaInputStream in,
                                         JavaToCOutputStream out)
                                  throws IOException
rseGetSortSeqTable This api retrieves the host sort sequence table for the specified CCSID. SEND: enum RSE_GET_SORT_SEQ_TABLE ALIAS server_alias - 10 char name of CODE server followed by terminating null LONG ccsid CHARDBIN : typedef struct { // Character data block (input) CHAR chTableName[10]; // Table name - 10 characters CHAR chLibraryName[10]; // Library name - 10 characters CHAR chLanguageID[10]; // Language ID - 10 characters CHAR chFormatName[8]; // Format name - 8 characters } CHARDBIN; - only support format RSST0100 RECEIVE: LONG return_code SSTRECVAR

Throws:
IOException

rseCheckObjectHelper

protected static void rseCheckObjectHelper(String alias,
                                           String name,
                                           CToJavaInputStream in,
                                           JavaToCOutputStream out)
                                    throws IOException
rseCheckObjectHelper : A helper method used by rseCheckObject and rseCheckObject 2 The name of the object to check was assumed to be 34 bytes long. The buffer had been set up in rseCheckObject and on the C side to 34 bytes. However it is possible to set up queries that are longer than 34 bytes. rseCheckObject2 has been set up to take in an expected bufferSize first to correct this. The two functions should be integrated in version 6. This cannot be done now as the changes should be made at the same time on the Java side and the C side.

Throws:
IOException

rseCheckObject

protected static void rseCheckObject(CToJavaInputStream in,
                                     JavaToCOutputStream out)
                              throws IOException
rseCheckObject : Check the object condition / status SEND: enum RSE_CHECK_OBJECT ALIAS server_alias - 10 char name of CODE server followed by terminating null CHAR name[34] library / object [(member | *)] - library could be: *LIBL : use the first occurence of the library / file in the library list if the member is not in this file then ADERC_MBR_NF is returned. *ALLLIBL : CHKIN (defined in evfcsys.h) as follows: typedef struct { USHORT libAuthority; // Library authority USHORT objAuthority; // Same as library authority USHORT type; // Type of checking USHORT overrides; // Disallow/allow File Overrides } CHKIN; RECEIVE: LONG return_code CHKOUT

Throws:
IOException

rseCheckObject2

protected static void rseCheckObject2(CToJavaInputStream in,
                                      JavaToCOutputStream out)
                               throws IOException
rseCheckObject2 : Check the object condition / status SEND: enum RSE_CHECK_OBJECT ALIAS server_alias - 10 char name of CODE server followed by terminating null int bufferSize; // The size of the buffer holding the name to check CHAR name[bufferSize] library / object [(member | *)] - library could be: *LIBL : use the first occurence of the library / file in the library list if the member is not in this file then ADERC_MBR_NF is returned. *ALLLIBL : CHKIN (defined in evfcsys.h) as follows: typedef struct { USHORT libAuthority; // Library authority USHORT objAuthority; // Same as library authority USHORT type; // Type of checking USHORT overrides; // Disallow/allow File Overrides } CHKIN; RECEIVE: LONG return_code CHKOUT

Throws:
IOException

rseOpenList

protected static void rseOpenList(CToJavaInputStream in,
                                  JavaToCOutputStream out)
                           throws IOException
rseOpenList SEND: enum RSE_OPEN_LIST ALIAS server_alias - 10 char name of CODE server followed by terminating null LONG adeOptions = ADEOPT_ALL -- ? ADEOPT_DEFAULT ADEOPT_TYPE ADEOPT_ASIS ADEOPT_MORE CHAR name[100] - format from PVs to come - library / file RCDNAME(*) RECEIVE: LONG return_code ADE_CB control block (4 bytes)

Throws:
IOException

rseOpenDBF

protected static void rseOpenDBF(CToJavaInputStream in,
                                 JavaToCOutputStream out)
                          throws IOException
rseOpenDBF SEND: enum RSE_OPEN_DBF ALIAS server_alias - 10 char name of CODE server followed by terminating null DBIN RECEIVE: LONG return_code ADE_CB control block (4 bytes) DBOUT

Throws:
IOException

rseRead

protected static void rseRead(CToJavaInputStream in,
                              JavaToCOutputStream out)
                       throws IOException
rseRead SEND: enum RSE_READ ADE_CB control_block_ptr - this char * is just the handle that was returned from the previous RSEOpenXXX() call. USHORT concat flag RECEIVE: LONG return_code USHORT length of return data byte[length] What this return data is still needs to be more defined (by me / Rishi / Nazmin). What the returnb data is (and its size) depends on what the inital open call was. The supported open calls followed by an rseRead() are: rseOpenDBF rseOpenList rseOpenGet

Throws:
IOException

rseOpenGet

protected static void rseOpenGet(CToJavaInputStream in,
                                 JavaToCOutputStream out)
                          throws IOException
rseOpenGet : open a file for reading The search sequence for the file is as follows (outlined in DCR004576) 1. Check for project version open in editor [project support only] 2. Check for file in a project [project support only] 3. Host version open in editor 4. Host version a. Cached host version b. Live host version SEND: enum RSE_OPEN_GET ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG adeOptions = ADEOPT_ALL -- ADEOPT_DATE -- last changed date ADEOPT_SIZE -- number of members/records ADEOPT_LENGTH -- record length ADEOPT_ASIS -- data to be returned in binary format ADEOPT_EDIT -- read from the edit window ADEOPT_NOTAG -- remove sequence no and date stamp CHAR filename[34] - format lib / file (membername) RECEIVE: LONG return_code ADE_CB control block (4 bytes) ADE_DATETIME ULONG fileSize (number of lines) ULONG recordLength

Throws:
IOException

rseEditWord

protected static void rseEditWord(CToJavaInputStream in,
                                  JavaToCOutputStream out)
                           throws IOException
rseEditWord SEND: enum RSE_EDIT_WORD ALIAS server_alias - 10 char name of CODE server followed by terminating null EDIN - request code = 1 ??? RECEIVE: LONG return_code SHORT length (single field for EDOUT1) Related CODE comm structures: typedef struct { SHORT editLength; // Length of edit word SHORT fieldLength; // Field length for edit code SHORT decimal; // Decimal position for edit code CHAR request; // Request code CHAR code; // Edit code CHAR symbol; // Float symbol for edit code CHAR word[256]; // Edit word } EDIN; typedef struct { SHORT length; // Output display length CHAR word[256]; // Output string } EDOUT1; // Edit code struct. for request=1/2

Throws:
IOException

rseDeviceFileInfo

protected static void rseDeviceFileInfo(CToJavaInputStream in,
                                        JavaToCOutputStream out)
                                 throws IOException
rseDeviceFileInfo SEND: enum RSE_DEVFILE_INFO ALIAS server_alias - 10 char name of CODE server followed by terminating null DFIIN typedef struct { CHAR library[11]; // Library CHAR file[11]; // Library authority } DFIIN; RECEIVE: LONG return_code DFIOUT typedef struct { USHORT lowestRespInd; // Lowest response indicator ULONG bufferSize; // User buffer size } DFIOUT;

Throws:
IOException

rseXlate

protected static void rseXlate(CToJavaInputStream in,
                               JavaToCOutputStream out)
                        throws IOException
rseXlate XLATE_PUT : ascii to ebcdic XLATE_GET : ebcdic to ascii SEND: enum RSE_XLATE ALIAS server_alias - 10 char name of CODE server followed by terminating null (for job CCSID) LONG options [ XLATE_PUT | XLATE_GET ] XLATE_PUT : PC -> host conversion XLATE_GET : host -> PC conversion LONG length CHAR string[length] RECEIVE: LONG return_code LONG length CHAR string[length]

Throws:
IOException

rseGetEncodingScheme

protected static void rseGetEncodingScheme(CToJavaInputStream in,
                                           JavaToCOutputStream out)
                                    throws IOException
rseGetEncodingScheme host api QTQGESP SEND: enum RSE_GET_ENCODING_SCHEME ALIAS server_alias - 10 char name of CODE server followed by terminating null int ccsid RECEIVE: LONG return_code int encodingScheme

Throws:
IOException

rseCheckCCSID

protected static void rseCheckCCSID(CToJavaInputStream in,
                                    JavaToCOutputStream out)
                             throws IOException
* Function: * rseCheckCCSID : Check if the specified CCSID is valid * * Input: * USHORT ccsid = coded character set identifier * * Return: * LONG returnCode * ADERC_OK = successful completion * ADERC_CCSID_NF = CCSID not found * * /

Throws:
IOException

rseCheckObjectIFS

protected static void rseCheckObjectIFS(CToJavaInputStream in,
                                        JavaToCOutputStream out)
                                 throws IOException
rseCheckObjectIFS SEND: enum RSE_CHECK_OBJECT_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG ifsFileName length CHAR *ifsFileName - null terminated fully qualified IFS file name RECEIVE: LONG return_code ADERC_OK ADERC_OBJ_NF for file not found ADERC_SYS_ERR for communications errors

Throws:
IOException

rseOpenGetIFS

protected static void rseOpenGetIFS(CToJavaInputStream in,
                                    JavaToCOutputStream out)
                             throws IOException
rseOpenGetIFS SEND: enum RSE_OPEN_GET_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG ifsFileName length CHAR *ifsFileName - null terminated fully qualified IFS file name RECEIVE: LONG return_code ADE_CB control block (4 bytes) ULONG fileSize (number of lines)

Throws:
IOException

rseReadIFS

protected static void rseReadIFS(CToJavaInputStream in,
                                 JavaToCOutputStream out)
                          throws IOException
rseReadIFS SEND: enum RSE_READ_IFS ADE_CB control block (4 bytes) RECEIVE: LONG return_code USHORT *pLength // length of incoming buffer buffer[] // actual data

Throws:
IOException

rseGetEnvironmentVariable

protected static void rseGetEnvironmentVariable(CToJavaInputStream in,
                                                JavaToCOutputStream out)
                                         throws IOException
rseGetEnvIFS SEND: enum RSE_GET_ENV_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG varNameLength length CHAR *variableName - null terminated environment variable name ULONG maxLength RECEIVE: LONG return_code if (rc == OK) { ULONG length (length of environment data + 1 for null terminator) buffer[] (actual environment data, null terminated) } else if (rc == BUFFER_SMALL) { ULONG realLength+ 1 (includes null terminator) } else { // nothing else is sent for other return codes } Change history: yantzi:5.1.2 added incoming maxLength variable and check to see if the environment variable is longer than the specified path lengh

Throws:
IOException

rseGetCurrentWorkingDirectory

protected static void rseGetCurrentWorkingDirectory(CToJavaInputStream in,
                                                    JavaToCOutputStream out)
                                             throws IOException
rseGetCWDIFS SEND: enum RSE_GET_CWD_IFS ALIAS server_alias - 10 char name of CODE server followed by terminating null ULONG length RECEIVE: LONG return_code if (rc == OK) { ULONG realLength + 1 (includes null terminator) buffer[] realLength + 1 (null terminated) } else if (rc == BUFFER_SMALL) { ULONG realLength+ 1 (includes null terminator) } else { // nothing else is sent for other return codes } Change history: yantzi:5.1.2 added incoming pathNameLenght variable and check to see if the current working directory is longer than the specified path lengh

Throws:
IOException

rseSyntaxCheckSQL

protected static void rseSyntaxCheckSQL(CToJavaInputStream in,
                                        JavaToCOutputStream out)
                                 throws IOException
rseSyntaxCheckSQL This api Syntax Checks the SQL statements. SEND: enum RSE_SYNTAX_CHECK_SQL ALIAS server_alias - 10 char name of CODE server name followed by terminating null int - Length of each SQL Statement int - Number of Records CHAR * - SQL statements (Length * Number of records) CHAR[10] - Language in which the SQL statements are coded int - Number of Keys CHAR * - options of the form {key, length of data, data} repeated for number of keys RECEIVE: LONG - return_code int - Length of the information returned CHAR * - Information returned int - number of messages int - for each message - the length CHAR * - message

Throws:
IOException

resetSignonPrompts

protected static void resetSignonPrompts()
Re-enable future signon prompts for all connections.


Rational Developer for Power Systems Software
V7.6

Copyright 2011 IBM Corp. All Rights Reserved.

Note: This documentation is for part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.