⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saf_shm.h

📁 在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便
💻 H
字号:
/*=============================================================
 * 功能: 		存储转发用共享内存头文件(NAS V6.0)
 * 作者:
 * 
 * 周国祥 2001/06/07  增加用于存储转发处理的共享内存,目的在于解决时序问题
 * ===============================================================*/
#ifndef _SAF_SHM_H_
#define _SAF_SHM_H_

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>


#define SAF_KEYFILE		"/etc/SAF_IPCFILE"
#define SUCC	0
#define FAIL	-1

#define PERMS	0666

/* 三层树型结构:方向-->卡号-->交易流水 */

/* saf共享区流水项结构 */
typedef	struct	saf_item_st {
	char	flag;		/* 交易流水处理标志:			*/
				/* 0 空闲				*/
				/* 1 未发送至switchsrv			*/
				/* 2 已发送至switchsrv,但未收到应答	*/
				/* 3 已收到switchsrv应答		*/
	char	update_date[9];	/* 流水形成的日期,为判断是否暂停转发而使用 */
	PUBLIC	saf_pub;	/* 存储转发流水	*/

	struct saf_item_st	*prev;	/* saf共享区流水项指针, 存放数组index */
	struct saf_item_st	*next;	/* saf共享区流水项指针, 存放数组index */
} SAF_ITEM;

/* saf共享区卡号结构, 每一路由方向的每一不同卡号一个结构,以next相链 */
typedef	struct	saf_card_st {
	char	flag;		/* 有无进程在处理的标志:0无,1有 */
	int	pid;		/* 进程号 */
	int	item_cnt;	/* 本方向本卡号流水项计数 */
	char	card_id[20];	/* 卡号 */
	char	ret_code[3];	/* 上次转发的应答码 */
	long	ret_time;	/* 上次应答时间 */
	int	err_cnt;

	struct saf_card_st *prev;	/* 卡号结构链接指针, 存放数组index */
	struct saf_card_st *next;	/* 卡号结构链接指针, 存放数组index */
	SAF_ITEM *ihead;		/* 本方向本卡号各交易流水项头指针 */
} SAF_CARD;
/* saf共享区头结构, 每一路由方向一个结构,以next相链 */
typedef	struct	saf_head_st {
	int	card_cnt;	/* 本方向不同卡号计数 */
	char	rcv_bankid[12];	/* 本方向行号 */
	char	rcv_hostid[3];	/* 本方向主机号 */
	char	ret_code[3];	/* 上次转发的应答码 */
	long	ret_time;	/* 上次应答时间 */
	int	err_cnt;

	SAF_CARD *chead;		/* 本方向卡号项头指针, 存放数组index */
} SAF_HEAD;

#define	MAX_HEAD	100	/* 最多的路由方向 */
#define	MAX_CARD	200	/* 最多卡号数 */
#define	MAX_ITEM	500	/* 最多流水项数 */

extern	SAF_HEAD *saf_head;
extern	SAF_CARD *saf_card;
extern	SAF_ITEM *saf_item;

#endif	//_SAF_SHM_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -