mirror of
https://github.com/zeek/zeek.git
synced 2025-10-04 15:48:19 +00:00
A number of tweaks of the serialization code.
This commit is contained in:
parent
4c21576c12
commit
22afbe42dd
5 changed files with 20 additions and 19 deletions
|
@ -8,7 +8,7 @@
|
||||||
/**
|
/**
|
||||||
* A vector of bits.
|
* A vector of bits.
|
||||||
*/
|
*/
|
||||||
class BitVector : SerialObj {
|
class BitVector : public SerialObj {
|
||||||
public:
|
public:
|
||||||
typedef size_t block_type;
|
typedef size_t block_type;
|
||||||
typedef size_t size_type;
|
typedef size_t size_type;
|
||||||
|
|
|
@ -55,7 +55,7 @@ IMPLEMENT_SERIAL(CounterVector, SER_COUNTERVECTOR)
|
||||||
bool CounterVector::DoSerialize(SerialInfo* info) const
|
bool CounterVector::DoSerialize(SerialInfo* info) const
|
||||||
{
|
{
|
||||||
DO_SERIALIZE(SER_COUNTERVECTOR, SerialObj);
|
DO_SERIALIZE(SER_COUNTERVECTOR, SerialObj);
|
||||||
if ( ! SERIALIZE(bits_) )
|
if ( ! bits_->Serialize(info) )
|
||||||
return false;
|
return false;
|
||||||
return SERIALIZE(static_cast<uint64>(width_));
|
return SERIALIZE(static_cast<uint64>(width_));
|
||||||
}
|
}
|
||||||
|
@ -63,14 +63,13 @@ bool CounterVector::DoSerialize(SerialInfo* info) const
|
||||||
bool CounterVector::DoUnserialize(UnserialInfo* info)
|
bool CounterVector::DoUnserialize(UnserialInfo* info)
|
||||||
{
|
{
|
||||||
DO_UNSERIALIZE(SerialObj);
|
DO_UNSERIALIZE(SerialObj);
|
||||||
return false;
|
|
||||||
bits_ = BitVector::Unserialize(info);
|
bits_ = BitVector::Unserialize(info);
|
||||||
if ( ! bits_ )
|
if ( ! bits_ )
|
||||||
return false;
|
return false;
|
||||||
uint64 width;
|
uint64 width;
|
||||||
if ( ! UNSERIALIZE(&width) )
|
if ( ! UNSERIALIZE(&width) )
|
||||||
return false;
|
return false;
|
||||||
width_ = static_cast<unsigned>(width);
|
width_ = static_cast<size_t>(width);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +126,7 @@ bool BloomFilter::DoSerialize(SerialInfo* info) const
|
||||||
DO_SERIALIZE(SER_BLOOMFILTER, SerialObj);
|
DO_SERIALIZE(SER_BLOOMFILTER, SerialObj);
|
||||||
if ( ! SERIALIZE(static_cast<uint16>(hash_->K())) )
|
if ( ! SERIALIZE(static_cast<uint16>(hash_->K())) )
|
||||||
return false;
|
return false;
|
||||||
return SERIALIZE(static_cast<uint16>(elements_));
|
return SERIALIZE(static_cast<uint64>(elements_));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BloomFilter::DoUnserialize(UnserialInfo* info)
|
bool BloomFilter::DoUnserialize(UnserialInfo* info)
|
||||||
|
@ -178,14 +177,14 @@ IMPLEMENT_SERIAL(BasicBloomFilter, SER_BASICBLOOMFILTER)
|
||||||
bool BasicBloomFilter::DoSerialize(SerialInfo* info) const
|
bool BasicBloomFilter::DoSerialize(SerialInfo* info) const
|
||||||
{
|
{
|
||||||
DO_SERIALIZE(SER_BASICBLOOMFILTER, BloomFilter);
|
DO_SERIALIZE(SER_BASICBLOOMFILTER, BloomFilter);
|
||||||
return SERIALIZE(bits_);
|
return bits_->Serialize(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BasicBloomFilter::DoUnserialize(UnserialInfo* info)
|
bool BasicBloomFilter::DoUnserialize(UnserialInfo* info)
|
||||||
{
|
{
|
||||||
DO_UNSERIALIZE(BloomFilter);
|
DO_UNSERIALIZE(BloomFilter);
|
||||||
bits_ = BitVector::Unserialize(info);
|
bits_ = BitVector::Unserialize(info);
|
||||||
return bits_ == NULL;
|
return bits_ != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BasicBloomFilter::AddImpl(const HashPolicy::HashVector& h)
|
void BasicBloomFilter::AddImpl(const HashPolicy::HashVector& h)
|
||||||
|
@ -227,15 +226,15 @@ IMPLEMENT_SERIAL(CountingBloomFilter, SER_COUNTINGBLOOMFILTER)
|
||||||
|
|
||||||
bool CountingBloomFilter::DoSerialize(SerialInfo* info) const
|
bool CountingBloomFilter::DoSerialize(SerialInfo* info) const
|
||||||
{
|
{
|
||||||
DO_SERIALIZE(SER_BASICBLOOMFILTER, BloomFilter);
|
DO_SERIALIZE(SER_COUNTINGBLOOMFILTER, BloomFilter);
|
||||||
return SERIALIZE(cells_);
|
return cells_->Serialize(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CountingBloomFilter::DoUnserialize(UnserialInfo* info)
|
bool CountingBloomFilter::DoUnserialize(UnserialInfo* info)
|
||||||
{
|
{
|
||||||
DO_UNSERIALIZE(BloomFilter);
|
DO_UNSERIALIZE(BloomFilter);
|
||||||
cells_ = CounterVector::Unserialize(info);
|
cells_ = CounterVector::Unserialize(info);
|
||||||
return cells_ == NULL;
|
return cells_ != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CountingBloomFilter::AddImpl(const HashPolicy::HashVector& h)
|
void CountingBloomFilter::AddImpl(const HashPolicy::HashVector& h)
|
||||||
|
|
|
@ -73,7 +73,7 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BitVector* bits_;
|
BitVector* bits_;
|
||||||
unsigned width_;
|
size_t width_;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -574,7 +574,7 @@ size_t BloomFilterVal::Count(const Val* val) const
|
||||||
|
|
||||||
BloomFilterVal* BloomFilterVal::Merge(const BloomFilterVal* first,
|
BloomFilterVal* BloomFilterVal::Merge(const BloomFilterVal* first,
|
||||||
const BloomFilterVal* second)
|
const BloomFilterVal* second)
|
||||||
{
|
{
|
||||||
assert(! "not yet implemented");
|
assert(! "not yet implemented");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -594,14 +594,15 @@ IMPLEMENT_SERIAL(BloomFilterVal, SER_BLOOMFILTER_VAL);
|
||||||
bool BloomFilterVal::DoSerialize(SerialInfo* info) const
|
bool BloomFilterVal::DoSerialize(SerialInfo* info) const
|
||||||
{
|
{
|
||||||
DO_SERIALIZE(SER_BLOOMFILTER_VAL, OpaqueVal);
|
DO_SERIALIZE(SER_BLOOMFILTER_VAL, OpaqueVal);
|
||||||
if ( ! SERIALIZE(type_) )
|
if ( ! type_->Serialize(info) )
|
||||||
return false;
|
return false;
|
||||||
return SERIALIZE(bloom_filter_);
|
return bloom_filter_->Serialize(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BloomFilterVal::DoUnserialize(UnserialInfo* info)
|
bool BloomFilterVal::DoUnserialize(UnserialInfo* info)
|
||||||
{
|
{
|
||||||
DO_UNSERIALIZE(OpaqueVal);
|
DO_UNSERIALIZE(OpaqueVal);
|
||||||
|
|
||||||
type_ = BroType::Unserialize(info);
|
type_ = BroType::Unserialize(info);
|
||||||
if ( ! type_ )
|
if ( ! type_ )
|
||||||
return false;
|
return false;
|
||||||
|
@ -609,6 +610,7 @@ bool BloomFilterVal::DoUnserialize(UnserialInfo* info)
|
||||||
tl->Append(type_);
|
tl->Append(type_);
|
||||||
hash_ = new CompositeHash(tl);
|
hash_ = new CompositeHash(tl);
|
||||||
Unref(tl);
|
Unref(tl);
|
||||||
|
|
||||||
bloom_filter_ = BloomFilter::Unserialize(info);
|
bloom_filter_ = BloomFilter::Unserialize(info);
|
||||||
return bloom_filter_ == NULL;
|
return bloom_filter_ != NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,10 +50,10 @@ SERIAL_IS_BO(CASE, 0x1200)
|
||||||
SERIAL_IS(LOCATION, 0x1300)
|
SERIAL_IS(LOCATION, 0x1300)
|
||||||
SERIAL_IS(RE_MATCHER, 0x1400)
|
SERIAL_IS(RE_MATCHER, 0x1400)
|
||||||
SERIAL_IS(BITVECTOR, 0x1500)
|
SERIAL_IS(BITVECTOR, 0x1500)
|
||||||
SERIAL_IS(COUNTERVECTOR, 0xa000)
|
SERIAL_IS(COUNTERVECTOR, 0x1600)
|
||||||
SERIAL_IS(BLOOMFILTER, 0xa100)
|
SERIAL_IS(BLOOMFILTER, 0x1700)
|
||||||
SERIAL_IS(BASICBLOOMFILTER, 0xa200)
|
SERIAL_IS(BASICBLOOMFILTER, 0x1800)
|
||||||
SERIAL_IS(COUNTINGBLOOMFILTER, 0xa300)
|
SERIAL_IS(COUNTINGBLOOMFILTER, 0x1900)
|
||||||
|
|
||||||
// These are the externally visible types.
|
// These are the externally visible types.
|
||||||
const SerialType SER_NONE = 0;
|
const SerialType SER_NONE = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue