📄 cmstools.c
字号:
} } 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 + -