Browse Source

Merge pull request #2336 from arkpar/build_fix

Fixed gcc build
cl-refactor
Gav Wood 10 years ago
parent
commit
8203d6d4d7
  1. 1
      libdevcore/Common.h
  2. 2
      libwhisper/BloomFilter.h
  3. 6
      libwhisper/Common.cpp
  4. 8
      libwhisper/Common.h
  5. 4
      libwhisper/WhisperHost.h
  6. 4
      libwhisper/WhisperPeer.cpp
  7. 10
      libwhisper/WhisperPeer.h
  8. 2
      test/libwhisper/bloomFilter.cpp
  9. 4
      test/libwhisper/whisperTopic.cpp

1
libdevcore/Common.h

@ -45,7 +45,6 @@
#pragma warning(push)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-fpermissive"
#include <boost/version.hpp>
#if (BOOST_VERSION == 105800)
#include "boost_multiprecision_number_compare_bug_workaround.hpp"

2
libwhisper/BloomFilter.h

@ -91,7 +91,7 @@ bool TopicBloomFilterBase<N>::isBitSet(FixedHash<N> const& _h, unsigned _index)
return (_h[iByte] & c_powerOfTwoBitMmask[iBit]) != 0;
}
using TopicBloomFilter = TopicBloomFilterBase<TopicBloomFilterSize>;
using TopicBloomFilter = TopicBloomFilterBase<c_topicBloomFilterSize>;
}
}

6
libwhisper/Common.cpp

@ -95,12 +95,12 @@ TopicFilter::TopicFilter(RLP const& _r)
}
}
FixedHash<TopicBloomFilterSize> TopicFilter::exportBloom() const
TopicBloomFilterHash TopicFilter::exportBloom() const
{
FixedHash<TopicBloomFilterSize> ret;
TopicBloomFilterHash ret;
for (TopicMask const& t: m_topicMasks)
for (auto const& i: t)
ret |= i.first.template bloomPart<TopicBloomFilter::BitsPerBloom, TopicBloomFilterSize>();
ret |= i.first.template bloomPart<TopicBloomFilter::BitsPerBloom, c_topicBloomFilterSize>();
return ret;
}

8
libwhisper/Common.h

@ -58,8 +58,8 @@ enum WhisperPacket
PacketCount
};
enum { TopicBloomFilterSize = 64 };
enum { WhisperProtocolVersion = 3 };
static const int c_topicBloomFilterSize = 64;
static const int c_whisperProtocolVersion = 3;
using AbridgedTopic = FixedHash<4>;
using Topic = h256;
@ -67,6 +67,8 @@ using Topic = h256;
using AbridgedTopics = std::vector<AbridgedTopic>;
using Topics = h256s;
using TopicBloomFilterHash = FixedHash<c_topicBloomFilterSize>;
AbridgedTopic abridge(Topic const& _topic);
AbridgedTopics abridge(Topics const& _topics);
@ -107,7 +109,7 @@ public:
void streamRLP(RLPStream& _s) const { _s << m_topicMasks; }
h256 sha3() const;
bool matches(Envelope const& _m) const;
FixedHash<TopicBloomFilterSize> exportBloom() const;
TopicBloomFilterHash exportBloom() const;
private:
TopicMasks m_topicMasks;

4
libwhisper/WhisperHost.h

@ -50,11 +50,11 @@ class WhisperHost: public HostCapability<WhisperPeer>, public Interface, public
public:
WhisperHost();
virtual ~WhisperHost();
unsigned protocolVersion() const { return WhisperProtocolVersion; }
unsigned protocolVersion() const { return c_whisperProtocolVersion; }
/// remove old messages
void cleanup();
std::map<h256, Envelope> all() const { dev::ReadGuard l(x_messages); return m_messages; }
FixedHash<TopicBloomFilterSize> bloom() const { dev::Guard l(m_filterLock); return m_bloom; }
TopicBloomFilterHash bloom() const { dev::Guard l(m_filterLock); return m_bloom; }
virtual void inject(Envelope const& _e, WhisperPeer* _from = nullptr) override;
virtual Topics const& fullTopics(unsigned _id) const override { try { return m_filters.at(m_watches.at(_id).id).full; } catch (...) { return EmptyTopics; } }

4
libwhisper/WhisperPeer.cpp

@ -77,7 +77,7 @@ bool WhisperPeer::interpret(unsigned _id, RLP const& _r)
}
case TopicFilterPacket:
{
setBloom((FixedHash<TopicBloomFilterSize>)_r[0]);
setBloom((TopicBloomFilterHash)_r[0]);
break;
}
default:
@ -118,7 +118,7 @@ void WhisperPeer::noteNewMessage(h256 _h, Envelope const& _m)
m_unseen.insert(make_pair(rating(_m), _h));
}
void WhisperPeer::sendTopicsOfInterest(FixedHash<TopicBloomFilterSize> const& _bloom)
void WhisperPeer::sendTopicsOfInterest(TopicBloomFilterHash const& _bloom)
{
DEV_GUARDED(x_advertiseTopicsOfInterest)
m_advertiseTopicsOfInterest = false;

10
libwhisper/WhisperPeer.h

@ -53,10 +53,10 @@ public:
virtual ~WhisperPeer();
WhisperHost* host() const;
static std::string name() { return "shh"; }
static u256 version() { return WhisperProtocolVersion; }
static u256 version() { return c_whisperProtocolVersion; }
static unsigned messageCount() { return PacketCount; }
FixedHash<TopicBloomFilterSize> bloom() const { dev::Guard g(x_bloom); return m_bloom; }
void sendTopicsOfInterest(FixedHash<TopicBloomFilterSize> const& _bloom); ///< sends our bloom filter to remote peer
TopicBloomFilterHash bloom() const { dev::Guard g(x_bloom); return m_bloom; }
void sendTopicsOfInterest(TopicBloomFilterHash const& _bloom); ///< sends our bloom filter to remote peer
void noteAdvertiseTopicsOfInterest() { dev::Guard g(x_advertiseTopicsOfInterest); m_advertiseTopicsOfInterest = true; }
private:
@ -64,14 +64,14 @@ private:
void sendMessages();
unsigned rating(Envelope const&) const { return 0; } // TODO
void noteNewMessage(h256 _h, Envelope const& _m);
void setBloom(FixedHash<TopicBloomFilterSize> const& _b) { dev::Guard g(x_bloom); m_bloom = _b; }
void setBloom(TopicBloomFilterHash const& _b) { dev::Guard g(x_bloom); m_bloom = _b; }
mutable dev::Mutex x_unseen;
std::multimap<unsigned, h256> m_unseen; ///< Rated according to what they want.
std::chrono::system_clock::time_point m_timer = std::chrono::system_clock::now();
mutable dev::Mutex x_bloom;
FixedHash<TopicBloomFilterSize> m_bloom; ///< Peer's topics of interest
TopicBloomFilterHash m_bloom; ///< Peer's topics of interest
mutable dev::Mutex x_advertiseTopicsOfInterest;
bool m_advertiseTopicsOfInterest;

2
test/libwhisper/bloomFilter.cpp

@ -28,7 +28,7 @@ using namespace dev;
using namespace dev::shh;
using TopicBloomFilterShort = TopicBloomFilterBase<4>;
using TopicBloomFilterTest = TopicBloomFilterBase<TopicBloomFilterSize>;
using TopicBloomFilterTest = TopicBloomFilterBase<c_topicBloomFilterSize>;
void testAddNonExisting(TopicBloomFilterShort& _f, AbridgedTopic const& _h)
{

4
test/libwhisper/whisperTopic.cpp

@ -348,8 +348,8 @@ BOOST_AUTO_TEST_CASE(topicAdvertising)
}
BOOST_REQUIRE(sessions.size());
FixedHash<TopicBloomFilterSize> bf1 = sessions.back().first->cap<WhisperPeer>()->bloom();
FixedHash<TopicBloomFilterSize> bf2 = whost2->bloom();
TopicBloomFilterHash bf1 = sessions.back().first->cap<WhisperPeer>()->bloom();
TopicBloomFilterHash bf2 = whost2->bloom();
BOOST_REQUIRE_EQUAL(bf1, bf2);
BOOST_REQUIRE(bf1);
BOOST_REQUIRE(!whost1->bloom());

Loading…
Cancel
Save