| | |
| | | return shm_socket_force_bind(shm_socket, key); |
| | | } |
| | | |
| | | int ShmModSocket::bind_proc_id(char *buf, int len) { |
| | | return shm_socket_bind_proc_id(shm_socket, buf, len); |
| | | } |
| | | |
| | | int ShmModSocket::reg(void *pData, int len, void **buf, int *size, const int timeout_ms, int flag) |
| | | { |
| | | int ret; |
| | |
| | | } else if (flag == PROC_QUE_ATCS) { |
| | | |
| | | memcpy(head.action, "atcsque", sizeof(head.action)); |
| | | |
| | | } else if (flag == PROC_REG_BUF) { |
| | | |
| | | memcpy(head.action, "bufreg", sizeof(head.action)); |
| | | |
| | | } else { |
| | | |
| | |
| | | |
| | | ts.tv_nsec = (timeout_ms - ts.tv_sec * 1000) * 1000 * 1000; |
| | | |
| | | if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS)) { |
| | | if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS) || (flag == PROC_REG_BUF)) { |
| | | |
| | | ret = shm_sendto(shm_socket, buf_temp, buf_size, SHM_BUS_KEY, &ts, BUS_TIMEOUT_FLAG); |
| | | |
| | |
| | | |
| | | } else if (timeout_ms == 0) { |
| | | |
| | | if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS)) { |
| | | if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS) || (flag == PROC_REG_BUF)) { |
| | | |
| | | ret = shm_sendto(shm_socket, buf_temp, buf_size, SHM_BUS_KEY, &ts, BUS_NOWAIT_FLAG); |
| | | |
| | |
| | | |
| | | } else { |
| | | |
| | | if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS)) { |
| | | if ((flag == PROC_REG) || (flag == PROC_UNREG) || (flag == PROC_REG_TCS) || (flag == PROC_REG_BUF)) { |
| | | |
| | | ret = shm_sendto(shm_socket, buf_temp, buf_size, SHM_BUS_KEY, &ts, -1); |
| | | |
| | |
| | | * @key 发送给谁 |
| | | * @return 0 成功, 其他值 失败的错误码 |
| | | */ |
| | | int ShmModSocket::sendto(const void *buf, const int size, const int key, const struct timespec *timeout, int flag) { |
| | | int rv = shm_sendto(shm_socket, buf, size, key, timeout, flag); |
| | | int ShmModSocket::sendto(const void *buf, const int size, const int key, const struct timespec *timeout, int flag, int reset, int data_set) { |
| | | int rv = shm_sendto(shm_socket, buf, size, key, timeout, flag, reset, data_set); |
| | | if(rv == 0) { |
| | | logger->debug("ShmModSocket::sendto: %d sendto %d success.\n", get_key(), key); |
| | | return 0; |
| | | } |
| | | |
| | |
| | | * @key 从谁哪里收到的信息 |
| | | * @return 0 成功, 其他值 失败的错误码 |
| | | */ |
| | | int ShmModSocket::recvfrom( void **buf, int *size, int *key, const struct timespec *timeout, int flag) { |
| | | int ShmModSocket::recvfrom( void **buf, int *size, int *key, const struct timespec *timeout, int flag, int reset, int data_set) { |
| | | |
| | | int rv = shm_recvfrom(shm_socket, buf, size, key, timeout, flag); |
| | | int rv = shm_recvfrom(shm_socket, buf, size, key, timeout, flag, reset, data_set); |
| | | |
| | | if(rv == 0) { |
| | | logger->debug("ShmModSocket::recvfrom: %d recvfrom %d success.\n", get_key(), *key); |
| | | return 0; |
| | | } |
| | | |
| | |
| | | int rv = shm_sendandrecv(shm_socket, send_buf, send_size, send_key, recv_buf, recv_size, timeout, flag); |
| | | |
| | | if(rv == 0) { |
| | | logger->debug("ShmModSocket::sendandrecv: sendandrecv to %d success.\n", send_key); |
| | | return 0; |
| | | } |
| | | |