| | |
| | | #include "bus_error.h" |
| | | |
| | | static Logger *logger = LoggerFactory::getLogger(); |
| | | static pthread_mutex_t gMutex; |
| | | |
| | | list gLinkedList; |
| | | void BusServerSocket::foreach_subscripters(std::function<void(SHMKeySet *, int)> cb) { |
| | |
| | | int BusServerSocket::start(){ |
| | | int rv; |
| | | |
| | | topic_sub_map = shm_mm_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY); |
| | | |
| | | rv = _run_proxy_(); |
| | | topic_sub_map = shm_mm_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY); |
| | | |
| | | return rv; |
| | | pthread_mutex_init(&gMutex, NULL); |
| | | |
| | | rv = _run_proxy_(); |
| | | |
| | | return rv; |
| | | } |
| | | |
| | | |
| | |
| | | int rv; |
| | | struct timespec timeout = {1,0}; |
| | | |
| | | if( (map_iter = topic_sub_map->find(topic) ) != topic_sub_map->end()) { |
| | | if( (map_iter = topic_sub_map->find(topic) ) != topic_sub_map->end()) { |
| | | |
| | | subscripter_set = map_iter->second; |
| | | for(set_iter = subscripter_set->begin(); set_iter != subscripter_set->end(); ++set_iter) { |
| | |
| | | ProcDataZone *procQuePart = shm_mm_attach<ProcDataZone>(SHM_QUEUE_ST_SET); |
| | | ProcPartZone *procPart = shm_mm_attach<ProcPartZone>(SHM_BUS_PROC_PART_MAP_KEY); |
| | | if (flag == PROC_REG) { |
| | | pthread_mutex_lock(&gMutex); |
| | | if ((proc_iter = proc->find(key)) == proc->end()) { |
| | | proc->insert({key, Data_stru}); |
| | | } |
| | | pthread_mutex_unlock(&gMutex); |
| | | |
| | | if ((proc_part_iter = procPart->find(key)) == procPart->end()) { |
| | | procPart->insert({key, Data_stru.proc_id}); |
| | |
| | | SvrSub_ele->erase(key); |
| | | } |
| | | |
| | | pthread_mutex_lock(&gMutex); |
| | | if ((proc_iter = proc->find(key)) != proc->end()) { |
| | | |
| | | data1 = atoi((proc_iter->second).int_info); |
| | |
| | | proc->erase(key); |
| | | |
| | | } |
| | | pthread_mutex_unlock(&gMutex); |
| | | |
| | | if ((proc_part_iter = procPart->find(key)) != procPart->end()) { |
| | | |
| | |
| | | procQuePart->erase(buf_temp); |
| | | } |
| | | |
| | | pthread_mutex_lock(&gMutex); |
| | | BusServerSocket::buf_data_remove(key); |
| | | pthread_mutex_unlock(&gMutex); |
| | | |
| | | find_mm_data(key); |
| | | } |
| | | |
| | |
| | | strncpy(buf_temp, topic, topic_size > (sizeof(buf_temp) - 1) ? (sizeof(buf_temp) - 1) : topic_size); |
| | | data_ptr = strtok(const_cast<char *>(buf_temp), STR_MAGIC); |
| | | while(data_ptr) { |
| | | data_ptr = trim(data_ptr, 0); |
| | | TcsSub_ele->insert(data_ptr); |
| | | if ((svr_tcs_iter = SvrData->find(data_ptr)) != SvrData->end()) { |
| | | SvrSub_ele = svr_tcs_iter->second; |
| | |
| | | strncpy(buf_temp, topic, topic_size > (sizeof(buf_temp) - 1) ? (sizeof(buf_temp) - 1) : topic_size); |
| | | data_ptr = strtok(const_cast<char *>(buf_temp), STR_MAGIC); |
| | | while(data_ptr) { |
| | | data_ptr = trim(data_ptr, 0); |
| | | ret = Qurey_object(data_ptr, &len); |
| | | if (ret != NULL) { |
| | | |
| | |
| | | ProcZone *proc = shm_mm_attach<ProcZone>(SHM_BUS_PROC_MAP_KEY); |
| | | |
| | | strncpy(buf_temp, topic, topic_size > (sizeof(buf_temp) - 1) ? (sizeof(buf_temp) - 1) : topic_size); |
| | | if ((svr_tcs_iter = SvrData->find(buf_temp)) != SvrData->end()) { |
| | | if ((svr_tcs_iter = SvrData->find(trim(buf_temp, 0))) != SvrData->end()) { |
| | | SvrSub_ele = svr_tcs_iter->second; |
| | | |
| | | for(svr_proc_iter = SvrSub_ele->begin(); svr_proc_iter != SvrSub_ele->end(); ++svr_proc_iter) { |
| | |
| | | ProcZone::iterator proc_iter; |
| | | ProcZone *proc = shm_mm_attach<ProcZone>(SHM_BUS_PROC_MAP_KEY); |
| | | |
| | | pthread_mutex_lock(&gMutex); |
| | | if ((proc_iter = proc->find(val)) != proc->end()) { |
| | | pthread_mutex_unlock(&gMutex); |
| | | return true; |
| | | } |
| | | pthread_mutex_unlock(&gMutex); |
| | | |
| | | return false; |
| | | |