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 warning(push)
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-fpermissive"
#include <boost/version.hpp> #include <boost/version.hpp>
#if (BOOST_VERSION == 105800) #if (BOOST_VERSION == 105800)
#include "boost_multiprecision_number_compare_bug_workaround.hpp" #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; 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 (TopicMask const& t: m_topicMasks)
for (auto const& i: t) for (auto const& i: t)
ret |= i.first.template bloomPart<TopicBloomFilter::BitsPerBloom, TopicBloomFilterSize>(); ret |= i.first.template bloomPart<TopicBloomFilter::BitsPerBloom, c_topicBloomFilterSize>();
return ret; return ret;
} }

8
libwhisper/Common.h

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

4
libwhisper/WhisperHost.h

@ -50,11 +50,11 @@ class WhisperHost: public HostCapability<WhisperPeer>, public Interface, public
public: public:
WhisperHost(); WhisperHost();
virtual ~WhisperHost(); virtual ~WhisperHost();
unsigned protocolVersion() const { return WhisperProtocolVersion; } unsigned protocolVersion() const { return c_whisperProtocolVersion; }
/// remove old messages /// remove old messages
void cleanup(); void cleanup();
std::map<h256, Envelope> all() const { dev::ReadGuard l(x_messages); return m_messages; } 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 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; } } 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: case TopicFilterPacket:
{ {
setBloom((FixedHash<TopicBloomFilterSize>)_r[0]); setBloom((TopicBloomFilterHash)_r[0]);
break; break;
} }
default: default:
@ -118,7 +118,7 @@ void WhisperPeer::noteNewMessage(h256 _h, Envelope const& _m)
m_unseen.insert(make_pair(rating(_m), _h)); 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) DEV_GUARDED(x_advertiseTopicsOfInterest)
m_advertiseTopicsOfInterest = false; m_advertiseTopicsOfInterest = false;

10
libwhisper/WhisperPeer.h

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

2
test/libwhisper/bloomFilter.cpp

@ -28,7 +28,7 @@ using namespace dev;
using namespace dev::shh; using namespace dev::shh;
using TopicBloomFilterShort = TopicBloomFilterBase<4>; using TopicBloomFilterShort = TopicBloomFilterBase<4>;
using TopicBloomFilterTest = TopicBloomFilterBase<TopicBloomFilterSize>; using TopicBloomFilterTest = TopicBloomFilterBase<c_topicBloomFilterSize>;
void testAddNonExisting(TopicBloomFilterShort& _f, AbridgedTopic const& _h) 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()); BOOST_REQUIRE(sessions.size());
FixedHash<TopicBloomFilterSize> bf1 = sessions.back().first->cap<WhisperPeer>()->bloom(); TopicBloomFilterHash bf1 = sessions.back().first->cap<WhisperPeer>()->bloom();
FixedHash<TopicBloomFilterSize> bf2 = whost2->bloom(); TopicBloomFilterHash bf2 = whost2->bloom();
BOOST_REQUIRE_EQUAL(bf1, bf2); BOOST_REQUIRE_EQUAL(bf1, bf2);
BOOST_REQUIRE(bf1); BOOST_REQUIRE(bf1);
BOOST_REQUIRE(!whost1->bloom()); BOOST_REQUIRE(!whost1->bloom());

Loading…
Cancel
Save