static c_bool getHistoricalData( c_object o, c_voidp arg) { v_entry entry; c_iter proxies; v_proxy proxy; v_group group; assert(o != NULL); entry = v_entry(o); assert(entry != NULL); assert(C_TYPECHECK(entry,v_entry)); proxies = c_select(entry->groups, 0); proxy = c_iterTakeFirst(proxies); while (proxy != NULL) { group = v_group(v_proxyClaim(proxy)); if (group) { if(arg == NULL){ v_groupGetHistoricalData(group, entry); } else { v_groupGetHistoricalDataWithCondition(group, entry, (v_historicalDataRequest)arg); } v_proxyRelease(proxy); } c_free(proxy); proxy = c_iterTakeFirst(proxies); } c_iterFree(proxies); return TRUE; }
void v_networkReaderEntryNotifyConnected( v_networkReaderEntry entry, const c_char* serviceName) { c_bool allChannelsConnected = FALSE; c_mutexLock(&entry->channelCountdownMutex); assert (entry->channelCountdown > 0); entry->channelCountdown--; if (entry->channelCountdown == 0) { allChannelsConnected = TRUE; } c_mutexUnlock(&entry->channelCountdownMutex); if (allChannelsConnected) { v_groupAddEntry(v_group(entry->group), v_entry(entry)); v_groupNotifyAwareness(v_group(entry->group),serviceName,TRUE); v_groupGetHistoricalData(v_group(entry->group), v_entry(entry)); } }