home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************
- *
- * MODULE NAME: CPICINIT.H
- *
- * COPYRIGHTS:
- * This module contains code made available by IBM
- * Corporation on an AS IS basis. Any one receiving the
- * module is considered to be licensed under IBM copyrights
- * to use the IBM-provided source code in any way he or she
- * deems fit, including copying it, compiling it, modifying
- * it, and redistributing it, with or without
- * modifications. No license under any IBM patents or
- * patent applications is to be implied from this copyright
- * license.
- *
- * A user of the module should understand that IBM cannot
- * provide technical support for the module and will not be
- * responsible for any consequences of use of the program.
- *
- * Any notices, including this one, are not to be removed
- * from the module without the prior written consent of
- * IBM.
- *
- * AUTHOR: Peter J. Schwaller
- * VNET: PJS at RALVM6 Tie Line: 444-4376
- * Internet: pjs@ralvm6.vnet.ibm.com (919) 254-4376
- *
- * AVAILABILITY:
- * These sample programs and source are also available on
- * CompuServe through the APPC Information Exchange. To get
- * to the APPC forum just type 'GO APPC' from any CompuServe
- * prompt. The samples are available in the Sample Programs
- * library section. Just search on the keyword CPICPGMS to
- * find all the samples in this series.
- *
- * Updates for the sample programs and support for many more
- * CPI-C platforms will also be made available on CompuServe.
- *
- * RELATED FILES:
- * CPICINIT.C
- *
- * CHANGE HISTORY:
- * Date Description
- * 08/05/92 Version 2.31 of APING, ATELL and AREXEC released to CompuServe.
- * This version was also distributed at the APPC/APPN Platform
- * Developer's Conference held in Raleigh, NC.
- * 08/23/92 Removed cpicinit_default_destination() and associated
- * processing. After review, we decided that this call was
- * extraneous and that cpicinit_default_sym_dest_name() was
- * a better mechanism for a default destination.
- * 11/13/92 Changed most return values from TRUE/FALSE to CPICINIT_OK and
- * other return codes.
- *
- *****************************************************************************/
-
- /*****************************************************************************
- *
- * OVERVIEW OF CPICINIT CALLS
- *
- * cpicinit_new() Creates a CPICINIT object.
- * This must be done before any other
- * cpicinit calls can be used.
- *
- * cpicinit_default_tp_name() These calls set the initial values
- * cpicinit_default_mode_name() for CPICINIT parameters. These should
- * cpicinit_default_sym_dest_name() all be issued right after the CPICINIT
- * object is created.
- *
- * cpicinit_set_tp_name() These calls also set the values for
- * cpicinit_set_mode_name() CPICINIT parameters. These calls should
- * cpicinit_set_destination() be used to set values from user input
- * or profile values.
- *
- * Security calls - only available where supported by CPI-C
- * cpicinit_set_userid Sets the userid for the conversation.
- * cpicinit_set_password Sets the password for the conversation.
- * cpicinit_query_password_needed If a userid was set, then a password
- * is required.
- * cpicinit_get_password Let cpicinit prompt the user for a
- * password.
- * cpicinit_set_security_type Set the security type for this conv.
- *
- * cpicinit_setup_conversation() Handles all CMINIT and set calls.
- * Should be used by the calling program
- * instead of CMINIT. See description
- * of the procedure for more details.
- *
- * cpicinit_destroy() Destroys the CPICINIT object.
- *
- * cpicinit_pln_valid() These are internal calls used by
- * cpicinit_mode_valid() cpicinit_setup_conversation.
- *
- *****************************************************************************/
-
- #ifndef INCL_CPICINIT
- #define INCL_CPICINIT
-
- /*
- * Collection of routines with special ported version for each platform
- * The only thing that is used from CPICDEFS.H is the correct setting
- * of the SHORT_IDENTIFIERS identifier.
- */
- #include "cpicdefs.h"
-
- #if defined(SHORT_IDENTIFIERS)
- /*
- * Some compilers require that identifiers be unique in the 1st 8 chars.
- * Any new functions should be added to this list.
- */
- #define cpicinit_default_mode_name cidmode
- #define cpicinit_default_sym_dest_name cidsdn
- #define cpicinit_default_tp_name cidtp
- #define cpicinit_destroy cid
- #define cpicinit_get_password cigp
- #define cpicinit_mode_valid cimv
- #define cpicinit_new cinew
- #define cpicinit_pln_valid cipv
- #define cpicinit_query_password_needed ciqpn
- #define cpicinit_set_destination cisdest
- #define cpicinit_set_mode_name cismode
- #define cpicinit_set_password cisp
- #define cpicinit_set_tp_name cistp
- #define cpicinit_set_userid cisu
- #define cpicinit_setup_conversation cisc
- #endif
-
- /*
- * A string of 8 blanks is a special symbolic destination name. We define
- * this constant here rather than typing out 8 blanks within the code.
- */
- #define BLANK_SYM_DEST_NAME " "
-
-
- /*
- * Return code values for most of the CPICINIT calls.
- */
-
- #define CPICINIT_OK (0)
- #define CPICINIT_ERROR (1)
-
-
-
- /*
- * This structure contains all of the information necessary to for all
- * cpicinit calls. The standard CPI-C destination and partner information
- * is stored. These values can be changed by the program through the
- * use of cpicinit_default... and cpicinit_set... calls.
- */
-
- typedef struct cpicinit {
- char def_sym_dest_name[MAX_SYM_DEST_NAME];
- /* Default symbolic dest name */
- char tp_name[MAX_TP_NAME]; /* Transaction Program name */
- int set_tp_name; /* Was tp name set? */
- char mode_name[MAX_MODE_NAME]; /* Mode name */
- int set_mode_name; /* Was mode name set? */
- char destination[MAX_FQPLU_NAME];
- /* Destination - may be either */
- /* a sym dest name or a partner */
- /* lu name */
- int set_destination; /* Was destination set? */
- char userid[MAX_USERID]; /* Userid */
- int set_userid; /* Was userid set? */
- char password[MAX_PASSWORD]; /* Password */
- int set_password; /* Was password set? */
- int show_error; /* Should we show errors? */
- unsigned long security_type; /* Security type */
- } CPICINIT;
-
-
- /*
- * Some of the fields in the CPICINIT object indicate whether another
- * field has been set or not. These fields will have one of the following
- * values. defines have been used to make the code more readable and to
- * protect against the need to change these values in the future.
- */
- #define SET 1
- #define NOT_SET 0
-
-
- /* function prototypes for this module */
-
- /* create a new CPICINIT object */
- CPICINIT * cpicinit_new(void);
-
- /* Initialize defaults for CPICINIT values */
- int cpicinit_default_tp_name( CPICINIT * cpicinit,
- char * tp_name);
- int cpicinit_default_mode_name( CPICINIT * cpicinit,
- char * mode_name);
- int cpicinit_default_sym_dest_name( CPICINIT * cpicinit,
- char * def_sym_dest_name);
-
- /* Set new values, based on user input or profile values */
- int cpicinit_set_tp_name( CPICINIT * cpicinit,
- char * tp_name);
- int cpicinit_set_mode_name( CPICINIT * cpicinit,
- char * mode_name);
- int cpicinit_set_destination( CPICINIT * cpicinit,
- char * destination);
- int cpicinit_set_userid( CPICINIT * cpicinit,
- char * userid);
- int cpicinit_set_password( CPICINIT * cpicinit,
- char * password);
- int cpicinit_query_password_needed( CPICINIT * cpicinit);
- void cpicinit_get_password( CPICINIT * cpicinit);
- void cpicinit_set_security_type( CPICINIT * cpicinit,
- unsigned long security_type);
-
- /* This call will prepare the conversation id for the Allocate call */
- int cpicinit_setup_conversation( CPICINIT * cpicinit,
- unsigned char * cm_conv_id,
- CPICERR * cpicerr);
-
- /* destroys the CPICINIT object created with cpicinit_new() */
- void cpicinit_destroy( CPICINIT * cpicinit);
-
- /* Internal routines */
- int cpicinit_pln_valid( unsigned char * cm_conv_id);
- int cpicinit_mode_valid( unsigned char * cm_conv_id);
-
- #endif