📄 icsdkt.h
字号:
/* * Define bilateral table. * */typedef struct bilateralEntryType{ short scope; /* Scope of VMD_SPEC, DOM_SPEC, or AA_SPEC */ short permissions; /* Access permissions */ /* Permissions = 0 means non-existent object */ timeIntervalSType interval; /* Shortest allowed periodic interval (secs) */ ldValueType valuePtr; /* Pointer to type of local data */} bilateralEntryType;typedef struct bilateralTableType{ char version[MAX_VERSION_LEN+1]; /* Version number of bilateral table */ int entries; /* Number of array entries in use */ int entriesAlloc; /* Number of allocated array entries */ bilateralEntryType bilateralArray[1]; /* Array of bilateral table entries, in alphabetic order by name */} bilateralTableType;/* * Define data set object type. * */typedef struct objectSetArrayType{ bilateralEntryType bilateralArray[1]; /* Array of bilateral entries */} objectSetArrayType;typedef struct dataSetObjectType{ short type; /* should always be PT_OBJECT_SET */ int useCount; /* Number of transfers using data set */ short scope; /* Scope of data set */ int entries; /* Number of entries in list */ int asn1len; /* Total length of ASN.1 encoded values within data set */ struct peerType *peer; objectSetArrayType *objects; /* Array of bilateral entries */ short nameSize; /* Number of characters in name not including zero byte terminator */ char name[1]; /* Name, nameSize+1 is actual array size */} dataSetObjectType;/* * Define client data set object type. * */typedef struct cObjectSetArrayType{ ldValueType objectArray[1]; /* Array of object pointers */} cObjectSetArrayType;typedef enum icDsObjState { DS_INIT, DS_CREATING, DS_DELETING, DS_VALIDATING, TS_DOWN, TS_STARTING, /* mp_write issued for Data Set */ TS_UP, /* mp_write_conf received for Data Set */ TS_STOPPING, /* mp_write issued for Data Set */ TS_OFF /* Disabled & opportunitiy to start passed */} icDsObjState ;typedef struct cDataSetObjectType{ /* Need to add a scope variable, if later use of per-define data feature is to be added */ short type; /* should always be PT_C_OBJECT_SET */ short transferValueC;/* Transfer Value Conditions */ GMTBasedSType startTime; /* Start Time (secs) */ timeIntervalSType interval; /* Periodic interval (secs) */ timeIntervalSType periodicOffset;/* Periodic interval (secs) */ timeIntervalSType bufferTime; /* Interval for exception buffering (secs) */ timeIntervalSType integrity; /* Integrity interval (secs) */ short groupIndex; /* Index into conditionDefArray */ int entries; /* Number of entries in list */ struct peerType *peer; struct icTransferGroup *groupPtr; /* Ptr to Transfer Group entry */ struct cDataSetObjectType *nextDS; /* Next dataset in this tr group */ void (*transferReject) ( icInt status, icLinkId linkId ); /* procedure to call if defvlist failed */ cObjectSetArrayType *objects; /* Array of objects */ mnTimerIdType CriticalDataNotRcvdTimer; short CriticalAckInterval ; icDsObjState state ; short nameSize; /* Number of characters in name not including zero byte terminator */ char name[1]; /* Name, nameSize+1 is actual array size */} cDataSetObjectType;/* * Define transfer object. * */typedef struct objectChangeNotifyType{ /* to keep track of who to notify when change */ struct dsTransferSetObjectType *dsTransferSet; /* Transfer set associated with change */ icInt objectIndex; /* index of point within transfer set */ struct objectChangeNotifyType *next; } objectChangeNotifyType;/* Queue to hold critical timeout timers */typedef struct criticalTimerQueueEntry{ mnTimerIdType timerId; int timestamp; struct criticalTimerQueueEntry *next;} criticalTimerQueueEntry;typedef struct dsTransferSetObjectType{ short type; /* = PT_DSTRANSFER_SET */ short scope; /* Scope VMD_SPEC, DOM_SPEC, AA_SPEC */ DSTransferSetType dsTransferSet; /* DS Transfer set object */ struct dsTransferSetObjectType *next; /* Next active transfer */ struct peerType *peer ; /* ??? change to ldValueType for DS, TS, TA */ icBoolean assigned; /* TRUE if it is assigned to client */ icBoolean active; /* TRUE if transfer set is active */ icBoolean conditionMonitoring; /* TRUE if condition monitoring */ /* has been started */ icBoolean TLEreportDiscard; /* TRUE if report discarded due to TLE */ dataSetObjectType *dataSet; /* Pointer to data set */ icBoolean *objectChangedArray; /* Pointer to object change set. Only present if RBE. Parallel to dataSet. */ mnTimerIdType startTimer; /* timerId for starttime */ criticalTimerQueueEntry *criticalTimerQueue; /* criticl ACK Timers */ GMTBasedSType nextIntervalTime; /* Time to trigger next interval report (secs) */ GMTBasedSType nextBufferTime; /* Time to trigger buffer report (secs) */ GMTBasedSType nextIntegrityTime; /* Time to trigger next integrity report (secs) */ DSConditionsType conditions; /* Conditions that occur while waiting for buffertime to expire */ short eventCode; /* Event code that occur while waiting for buffertime to expire */ icBoolean bTrigger; /* used by icDataValuesChanged */ GMTBasedSType secsPastTimeToSend;/* When blockdata is supported then add stuff to support RBE */ short nameSize; /* Number of characters in name not including zero byte terminator */ char name[1]; /* Name, nameSize+1 is actual array size */} dsTransferSetObjectType;/* * Define client transfer object. * */typedef struct cdsTransferSetObjectType{ short type; /* = PT_C_DSTRANSFER_SET */ DSTransferSetType dsTransferSet; /* DS Transfer set object */ cDataSetObjectType *dataSet; /* Pointer to data set */ short nameSize; /* Number of characters in name not including zero byte terminator */ char name[1]; /* Name, nameSize+1 is actual array size */} cdsTransferSetObjectType;/* * Define channel configuration. * */typedef struct chanConfType { int linkKey; /* relation linkKey for this link */ char linkName[cNormName+1]; /* the link name */ icShort chan; /* MMS-EASE channel number */ icBoolean initiator; /* TRUE if this side initiates connections. Implies alternate AR names and retry parameters are configured */ icBoolean identifyPeer; /* TRUE if identity from Peer is required */ unsigned char priority; /* data priority for this link */ mnTimerIdType restartTimer; /* timerId for re-startAssociation */ mnTimerIdType chkAssoTimer; /* timerId for association request*/ int assocReqTimeout; /* Association request timeout in seconds */ int assocReqRetry; /* Association req retry time in seconds */ int replyTimeout; /* Server reply timeout in seconds */ int criticalTimeout; /* Timeout in secs for critical data ACK from client */ int maxTransmitDelay; /* Delay before abort of hung transmit (sec) */ int maxPDUSize; /* Maximum desired MMS PDU size */ int remArIndex; /* index of ar name for mv_init */ int numAttempts; /* if tried all ar names - wait */ icChar *connectedTo; /* ar name of the remote on the other end of the connection */ } chanConfType;typedef struct nameType{ char name[IC_MAX_NAME_LEN+1];} nameType;typedef struct nameListType{ icBoolean more_follows; /* There are more names to list */ short num_names; /* Number of names in this part of list */ nameType nameList[1]; /* Array of names in this part of list */} nameListType;/* * list of bad Data Sets cDataSetObjectType *newDataSet; * */typedef struct dataSetListType{ struct dataSetListType *next; cDataSetObjectType *oldDataSet; icBoolean validateReadDone;} dataSetListType;typedef struct peerType{ int remoteKey; /* relation remoteKey for this peer */ icpeStateType IcpeState; /* state of the process */ char localDomName[IC_MAX_NAME_LEN+1]; char remoteDomName[IC_MAX_NAME_LEN+1]; icBoolean singleReadSupported; /* TRUE = MMS single var rd bought */ icBoolean listReadSupported; /* TRUE = MMS list read bought */ char peerName[cNormName+1]; /* Peer control center name */ char BltVersion[MAX_VERSION_LEN+1]; /* Version num of peer's bilateral table */ unsigned char remoteType; /* type of remote system, 0 = single, 1 = list, 2 = ICCP */ icBoolean strt_MMS_Done; /* TRUE if strt_MMS has been called */ icBoolean predefinedDataSets; /* TRUE = predefined Data Sets used */ int shortestPeriod; /* shortest periodicity allowed */ chanConfType chanConf; /* Channel configuration & status */ bilateralTableType *bilateral; /* Bilateral table VMD scope. Contains entries for data values, data sets, devices, and operator stations */ /* "GW Configuration" inserts everything but data sets */ bilateralTableType *domainVariables; /* Domain scope variables. Contains entries for ICCPVersion, Supported_Features, Bilateral_Table_ID, Conclude_Retry, Abort_Retry, TransferSetName, NextTransferSet, Flags, TimeStamp, and transfer sets */ /* ICCP Configuration inserts everything but data sets */ bilateralTableType *associationVariables; /* Association scope variables */ bilateralTableType *clientAccountVariables; /* Client Account variables */ bilateralTableType *clientMsgVariables; /* Client Message variables */ bilateralTableType *clientVariables; /* internal Client variables, e.g. DS, TS */ bilateralTableType *bilateralClient ; /* Client variables, defined by SDK User */ int numDataSets; /* Numr of data sets created by client */ conditionTableType *condition; /* Transfer condition table */ conditionDefTableType *conditionDef; /* Transfer condition table */ dsTransferSetObjectType *activeTransfers; /* List of active transfers */ dsTransferSetObjectType *transferSetWaitingOnXmitFull; GMTBasedSType xmitFullTime; /* Time when xmitFull started (secs) */ mnTimerIdType xmitCheckTimer; mnTimerIdType channelBusyTimer; mnTimerIdType serverResponseTimer; /* timerId for timing out server response */ char *timeoutText; /* Text for timeout of server response */ icBoolean getDataValueNames; /* TRUE if requesting list of data values */ icBoolean startTransferWrite;/* TRUE if writing to start Transfer Set */ icBoolean stopTransferWrite; /* TRUE if writing to stop Transfer Set */ void *transferSetPtrWritten; /* ptr of DSTransferSet being written, should be type (cdsTransferSetObjectType*) */ int stopTransferIndex; /* Index to transfer set to be disabled */ nameListType *serverNameList; /* Partial list of server data set names */ int currentServerListIndex; /* Index to current server data set name within serverNameList */ int currentClientListIndex; /* Index to current client data set name within clientVariables */ int maxDSTransferSets; int maxDataSets; FILE *idugFileID; /* For writing to idug file */ icBoolean requestDOM; /* doing DOM_SPEC request */ icBoolean ICPE; /* user is the ICCP PE */ icBoolean clientMsgDefined; /* TRUE if Block 4 client msg defined */ dataSetListType *adjustDataSet; /* SISCO_START */ icReceiveMessage receiveMessage; icUserData receiveUserData; icBlock4Conditions receiveBlock4Conditions; icUserData receiveBlock4ConditionsUserData; icBlock8Conditions receiveBlock8Conditions; icUserData receiveBlock8ConditionsUserData; icBoolean cleanAssoc; mnTimerIdType concludeResponseTimer; /* SISCO_END */} peerType;/* * Define type for information about MMS Data object types. * *//* nav added 'typedef' below 99317 */typedef struct typeInfoType { char *name; /* Name of type - used to setup rest of entry */ struct named_type *type; /* Pointer to a named type definition */} typeInfoType;/* * Define type of MMS transfer set. */typedef struct mmsTransferSetObjectType { cDataSetObjectType *dataSet; mnTimerIdType intervalTimer; mnTimerIdType readResponseTimer; mnTimerIdType startTimer; peerType *peer ;} mmsTransferSetObjectType;/* SISCO_START */#ifdef __cplusplus}#endif/* SISCO_END */#endif /* _ICSDKT_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -