static void v_networkReaderEntryInit( v_networkReaderEntry entry, v_networkReader reader, v_group group, v_networkId networkId, c_ulong channelsToConnect, v_networkPartitionId networkPartitionId, c_bool isRouting) { v_networkReaderEntry found; v_entryInit(v_entry(entry),v_reader(reader)); entry->group = c_keep(group); entry->networkId = networkId; entry->channelCountdown = channelsToConnect; c_mutexInit(&entry->channelCountdownMutex, SHARED_MUTEX); entry->networkPartitionId = networkPartitionId; entry->hashValue = v_networkReaderEntryCalculateHashValue(entry); entry->isRouting = isRouting; found = v_networkReaderEntry(v_readerAddEntry(v_reader(reader), v_entry(entry))); assert(found == entry); c_free(found); }
v_deliveryServiceEntry v_deliveryServiceEntryNew( v_deliveryService deliveryService, v_topic topic) { v_kernel kernel; v_deliveryServiceEntry e; assert(C_TYPECHECK(deliveryService,v_deliveryService)); assert(C_TYPECHECK(topic,v_topic)); kernel = v_objectKernel(deliveryService); e = v_deliveryServiceEntry(v_objectNew(kernel,K_DELIVERYSERVICEENTRY)); v_entryInit(v_entry(e), v_reader(deliveryService)); e->topic = c_keep(topic); return e; }