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

📄 cmstools.c

📁 linux集群服务器软件代码包
💻 C
📖 第 1 页 / 共 2 页
字号:
		}	}	strcpy(saname.value, name);	saname.length = strlen(saname.value);	flag = SA_MSG_QUEUE_SELECTION_OBJECT_SET;	if ((ret = saMsgQueueGroupDelete(handle, &saname)) != SA_OK) {				dprintf("saMsgQueueGroupDelete failed, error = [%d]\n", ret);		return ret;	}	dprintf("saMsgQueueGroupDelete Succeed!\n");	return ret;}static SaErrorTgroup_insert(SaMsgHandleT * handle, int argc, char **argv,		  const char * optstr){	const char * qname = DEFAULT_MQUEUE_NAME;	const char * gname = DEFAULT_MQGROUP_NAME;	SaNameT saqname, sagname;	char c;	SaMsgQueueCreationFlagsT flag;	SaErrorT ret;	next_command = NULL;	while (!next_command) {		c = getopt(argc, argv, optstr);		if (c == -1) {			next_command = NULL;			break;		}		switch (c) {			case 'v':				option_verbose = 1;				break;			case 'c':				next_command = optarg;				break;			case 'q':				qname = optarg;				break;			case 'g':				gname = optarg;				break;			default:				dprintf("Error: unknown option %c\n", c);				return -1;		}	}	strcpy(saqname.value, qname);	saqname.length = strlen(saqname.value);	strcpy(sagname.value, gname);	sagname.length = strlen(sagname.value);	flag = SA_MSG_QUEUE_SELECTION_OBJECT_SET;	if ((ret = saMsgQueueGroupInsert(handle, &sagname, &saqname))		!= SA_OK) {				dprintf("saMsgQueueGroupInsert failed, error = [%d]\n", ret);		return ret;	}	dprintf("saMsgQueueGroupInsert Succeed!\n");	return ret;}static SaErrorTgroup_remove(SaMsgHandleT * handle, int argc, char **argv,		  const char * optstr){	const char * qname = DEFAULT_MQUEUE_NAME;	const char * gname = DEFAULT_MQGROUP_NAME;	SaNameT saqname, sagname;	char c;	SaMsgQueueCreationFlagsT flag;	SaErrorT ret;	next_command = NULL;	while (!next_command) {		c = getopt(argc, argv, optstr);		if (c == -1) {			next_command = NULL;			break;		}		switch (c) {			case 'v':				option_verbose = 1;				break;			case 'c':				next_command = optarg;				break;			case 'q':				qname = optarg;				break;			case 'g':				gname = optarg;				break;			default:				dprintf("Error: unknown option %c\n", c);				return -1;		}	}	strcpy(saqname.value, qname);	saqname.length = strlen(saqname.value);	strcpy(sagname.value, gname);	sagname.length = strlen(sagname.value);	flag = SA_MSG_QUEUE_SELECTION_OBJECT_SET;	if ((ret = saMsgQueueGroupRemove(handle, &sagname, &saqname))		!= SA_OK) {				dprintf("saMsgQueueGroupRemove failed, error = [%d]\n", ret);		return ret;	}	dprintf("saMsgQueueGroupRemove Succeed!\n");	return ret;}static SaErrorTgroup_track(SaMsgHandleT * handle, int argc, char **argv,		  const char * optstr){	const char * name = DEFAULT_MQGROUP_NAME;	SaNameT saname;	char c;	SaMsgQueueCreationFlagsT flag;	SaErrorT ret;	flag = DEFAULT_MQGROUP_TRACK_FLAG;	next_command = NULL;	while (!next_command) {		c = getopt(argc, argv, optstr);		if (c == -1) {			next_command = NULL;			break;		}		switch (c) {			case 'v':				option_verbose = 1;				break;			case 'c':				next_command = optarg;				break;			case 'n':				name = optarg;				break;			case 'f':				flag = atoi(optarg);				break;			default:				dprintf("Error: unknown option %c\n", c);				return -1;		}	}	strcpy(saname.value, name);	saname.length = strlen(saname.value);	if ((ret = saMsgQueueGroupTrack(handle, &saname, flag, NULL))		!= SA_OK) {				dprintf("saMsgQueueGroupTrack failed, error = [%d]\n", ret);		return ret;	}	dprintf("saMsgQueueGroupTrack Succeed!\n");	return ret;}static SaErrorTgroup_trackstop(SaMsgHandleT * handle, int argc, char **argv,		     const char * optstr){	const char * name = DEFAULT_MQGROUP_NAME;	SaNameT saname;	char c;	SaErrorT ret;	next_command = NULL;	while (!next_command) {		c = getopt(argc, argv, optstr);		if (c == -1) {			next_command = NULL;			break;		}		switch (c) {			case 'v':				option_verbose = 1;				break;			case 'c':				next_command = optarg;				break;			case 'n':				name = optarg;				break;			default:				dprintf("Error: unknown option %c\n", c);				return -1;		}	}	strcpy(saname.value, name);	saname.length = strlen(saname.value);	if ((ret = saMsgQueueGroupTrackStop(handle, &saname)) != SA_OK) {				dprintf("saMsgQueueGroupTrackStop failed, error = [%d]\n", ret);		return ret;	}	dprintf("saMsgQueueGroupTrackStop Succeed!\n");	return ret;}static SaErrorTmessage_send(SaMsgHandleT * handle, int argc, char **argv, const char * optstr){	const char * name = DEFAULT_MQUEUE_NAME;	const char * msgstr = DEFAULT_MESSAGE_STRING;	SaNameT saname;	char c;	SaMsgQueueCreationFlagsT flag = SA_MSG_MESSAGE_DELIVERED_ACK;	SaMsgMessageT message;	SaTimeT timeout = SA_TIME_END;	SaErrorT ret;	int size, priority;	size = DEFAULT_MESSAGE_SIZE;	priority = DEFAULT_MESSAGE_PRIORITY;	next_command = NULL;	while (!next_command) {		c = getopt(argc, argv, optstr);		if (c == -1) {			next_command = NULL;			break;		}		switch (c) {			case 'v':				option_verbose = 1;				break;			case 'c':				next_command = optarg;				break;			case 'n':				name = optarg;				break;			case 'm':				msgstr = optarg;				break;			case 'p':				priority = atoi(optarg);				break;			default:				dprintf("Error: unknown option %c\n", c);				return -1;		}	}	strcpy(saname.value, name);	saname.length = strlen(saname.value);	if (priority > SA_MSG_MESSAGE_LOWEST_PRIORITY || priority < 0)		priority = DEFAULT_MESSAGE_PRIORITY;	message.priority = priority;	message.size = strlen(msgstr) + 1;	message.data = strdup(msgstr);	dprintf("saMsgMessageSend: [%s]\n", (char *)message.data);	if ((ret = saMsgMessageSend(handle, &saname, &message, flag, timeout))		!= SA_OK) {				dprintf("saMsgMessageSend failed, error = [%d]\n", ret);		return ret;	}	dprintf("saMsgMessageSend Succeed!\n");	free(message.data);	return ret;}static SaErrorTmessage_get(SaMsgQueueHandleT * handle, int argc, char **argv,	    const char * optstr){	const char * name = DEFAULT_MQUEUE_NAME;	SaNameT saname;	char c;	SaErrorT ret = SA_OK;	SaMsgMessageT message;	SaMsgMessageInfoT info;	SaTimeT timeout = SA_TIME_END;	int count = 1;	char buff[DEFAULT_MESSAGE_SIZE];	next_command = NULL;	bzero(&message, sizeof(SaMsgMessageT));	bzero(buff, DEFAULT_MESSAGE_SIZE);	message.data = buff;	message.size = DEFAULT_MESSAGE_SIZE;	while (!next_command) {		c = getopt(argc, argv, optstr);		if (c == -1) {			next_command = NULL;			break;		}		switch (c) {			case 'v':				option_verbose = 1;				break;			case 'c':				next_command = optarg;				break;			case 'n':				name = optarg;				break;			case 'a':				count = atoi(optarg);				break;			default:				dprintf("Error: unknown option %c\n", c);				return -1;		}	}	strcpy(saname.value, name);	saname.length = strlen(saname.value);	while (count > 0) {		message.size = DEFAULT_MESSAGE_SIZE;		if ((ret = saMsgMessageGet(&mqueue_handle, &message, &info,				timeout)) != SA_OK) {					dprintf("saMsgMessageGet failed, error = [%d]\n", ret);			return ret;		}		count--;		dprintf("saMsgMessageGet: [%s]\n", (char *)message.data);	}	dprintf("saMsgMessageGet Succeed!\n");	return ret;}static voiddeliver_cb(SaInvocationT invocation,  SaErrorT error){	fprintf(stderr, "In Function %s ...\n", __FUNCTION__);	return;}intmain(int argc, char * argv[]){	SaErrorT ret;	SaMsgHandleT handle;	char c;	SaVersionT version = {'A', 0x01, 0x0};	SaMsgCallbacksT callbacks = {		.saMsgQueueOpenCallback = NULL,		.saMsgMessageReceivedCallback = NULL,		.saMsgQueueGroupTrackCallback = NULL,		.saMsgMessageDeliveredCallback = deliver_cb,	};	cl_log_set_facility(LOG_USER);	cl_log_enable_stderr(TRUE);	/* parsing options */	while (!next_command) {		c = getopt(argc, argv, "dsvc:");		switch (c) {			case 's':				option_sleep = 1;			case 'v':				option_verbose = 1;				break;			case 'd':				option_verbose = 1;				cl_log_set_facility(LOG_USER);				cl_log_enable_stderr(TRUE);				break;			case 'c':				next_command = optarg;				break;			default:				usage();		}	}	if ((ret = saMsgInitialize(&handle, &callbacks, &version)) != SA_OK) {		dprintf("saMsgInitialize failed, error = [%d]\n", ret);		return ret;	}	dprintf("saMsgInitialize succeed!\n");	while (next_command) {		int found = 0;		int i;		for (i = 0; commands[i].name != NULL; i++) {			if (strncmp(next_command, commands[i].name			,	CMDS_MAX_LENGTH) == 0) {						ret = (commands[i].func)(&handle, argc, argv,							commands[i].optstr);				if (ret != SA_OK)					return ret;				found = 1;				break;			}		}		if (!found)			usage();	}	while (option_sleep) {		sleep (10); /* sleep for 10 seconds */	}	if (optind < argc)		usage();	if ((ret = saMsgFinalize(&handle)) != SA_OK) {		dprintf("saMsgFinalize failed, error = [%d]\n", ret);		return ret;	}	return ret;}

⌨️ 快捷键说明

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