Skip to content

Commit

Permalink
Allowing Bloom filter filling code to take an arbitrary advertised set.
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthew Lentz committed Aug 1, 2014
1 parent a2e5c8d commit ee8e9d9
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
2 changes: 2 additions & 0 deletions include/EbNRadio.h
Expand Up @@ -126,6 +126,8 @@ class EbNRadio
DeviceID generateDeviceID();

void fillBloomFilter(BloomFilter *bloom, const uint8_t *prefix, uint32_t prefixSize, bool includePassive = true);
void fillBloomFilter(BloomFilter *bloom, const LinkValueList &advertisedSet, const uint8_t *prefix, uint32_t prefixSize, bool includePassive = true);


void addRecentDevice(EbNDevice *device);
void removeRecentDevice(DeviceID id);
Expand Down
14 changes: 8 additions & 6 deletions source/EbNRadio.cpp
Expand Up @@ -73,6 +73,12 @@ void EbNRadio::setListenSet(const LinkValueList &listenSet)
}

void EbNRadio::fillBloomFilter(BloomFilter *bloom, const uint8_t *prefix, uint32_t prefixSize, bool includePassive)
{
lock_guard<mutex> setLock(setMutex_);
fillBloomFilter(bloom, advertisedSet_, prefix, prefixSize, includePassive);
}

void EbNRadio::fillBloomFilter(BloomFilter *bloom, const LinkValueList &advertisedSet, const uint8_t *prefix, uint32_t prefixSize, bool includePassive)
{
int numRandom = 0;

Expand All @@ -83,16 +89,12 @@ void EbNRadio::fillBloomFilter(BloomFilter *bloom, const uint8_t *prefix, uint32
maxAdvert = BF_N - BF_N_PASSIVE;
}

unique_lock<mutex> setLock(setMutex_);

int numAdvert = 0;
for(LinkValueList::iterator it = advertisedSet_.begin(); (it != advertisedSet_.end()) && (numAdvert < maxAdvert); it++, numAdvert++)
for(auto it = advertisedSet.cbegin(); (it != advertisedSet.cend()) && (numAdvert < maxAdvert); it++, numAdvert++)
{
bloom->add(prefix, prefixSize, it->get(), it->size());
}

setLock.unlock();

numRandom += (maxAdvert - numAdvert);

// Inserting link values for passive confirmation, using the most confident
Expand All @@ -105,7 +107,7 @@ void EbNRadio::fillBloomFilter(BloomFilter *bloom, const uint8_t *prefix, uint32

for(auto devIt = recentDevices_.begin(); devIt != recentDevices_.end(); devIt++)
{
const SharedSecretList &deviceSecrets = (*devIt)->getSharedSecrets();
SharedSecretList deviceSecrets = (*devIt)->getSharedSecrets();
for(auto secIt = deviceSecrets.begin(); secIt != deviceSecrets.end(); secIt++)
{
// Only include secrets which were not actively confirmed
Expand Down

0 comments on commit ee8e9d9

Please sign in to comment.