add == for introspection; == of PVField is done in base class via convert.

Make monitorQueue compatible with monitor, i.e. shared_pointer
This commit is contained in:
Marty Kraimer
2011-04-27 08:27:10 -04:00
parent b45b965f14
commit 95ae684d3d
25 changed files with 157 additions and 181 deletions

View File

@@ -7,6 +7,13 @@
namespace epics { namespace pvData {
// PVXXX object comparison
bool operator==(PVField& left, PVField& right)
{
return getConvert()->equals(left,right);
}
// Introspection object comparision
/** Field equality conditions:

View File

@@ -109,9 +109,9 @@ void Convert::getFullName(StringBuilder buf,PVField * pvField)
}
}
bool Convert::equals(PVField *a,PVField *b)
bool Convert::equals(PVField &a,PVField &b)
{
return convertEquals(a,b);
return convertEquals(&a,&b);
}
void Convert::getString(StringBuilder buf,PVField * pvField,int indentLevel)

View File

@@ -248,14 +248,4 @@ namespace epics { namespace pvData {
}
}
bool BasePVStructureArray::operator==(PVField &pvField)
{
return getConvert()->equals(this,&pvField);
}
bool BasePVStructureArray::operator!=(PVField &pvField)
{
return !(getConvert()->equals(this,&pvField));
}
}}

View File

@@ -31,8 +31,6 @@ namespace epics { namespace pvData {
StructureArrayData *data);
virtual int put(int offset,int length,
PVStructurePtrArray from, int fromOffset);
virtual bool operator==(PVField &pv);
virtual bool operator!=(PVField &pv);
virtual void shareData( PVStructurePtrArray value,int capacity,int length);
virtual void serialize(ByteBuffer *pbuffer,
SerializableControl *pflusher) const;

View File

@@ -42,8 +42,6 @@ public:
SerializableControl *pflusher) const;
virtual void deserialize(ByteBuffer *pbuffer,
DeserializableControl *pflusher);
virtual bool operator==(PVField& pv) ;
virtual bool operator!=(PVField& pv) ;
private:
T value;
};
@@ -78,18 +76,6 @@ void BasePVScalar<T>::deserialize(ByteBuffer *pbuffer,
value = pbuffer->get<T>();
}
template<typename T>
bool BasePVScalar<T>::operator==(PVField& pvField)
{
return getConvert()->equals(this, &pvField);
}
template<typename T>
bool BasePVScalar<T>::operator!=(PVField& pvField)
{
return !(getConvert()->equals(this, &pvField));
}
typedef BasePVScalar<bool> BasePVBoolean;
typedef BasePVScalar<int8> BasePVByte;
typedef BasePVScalar<int16> BasePVShort;
@@ -115,8 +101,6 @@ public:
DeserializableControl *pflusher);
virtual void serialize(ByteBuffer *pbuffer,
SerializableControl *pflusher, int offset, int count) const;
virtual bool operator==(PVField& pv) ;
virtual bool operator!=(PVField& pv) ;
private:
String value;
};
@@ -160,22 +144,6 @@ void BasePVString::serialize(ByteBuffer *pbuffer,
SerializeHelper::serializeSubstring(value, offset, count, pbuffer, pflusher);
}
bool BasePVString::operator==(PVField& pvField)
{
return getConvert()->equals(this, &pvField);
}
bool BasePVString::operator!=(PVField& pvField)
{
return !(getConvert()->equals(this, &pvField));
}
/** Default storage for arrays
*/
template<typename T>
@@ -197,8 +165,6 @@ public:
virtual void deserialize(ByteBuffer *pbuffer,DeserializableControl *pflusher);
virtual void serialize(ByteBuffer *pbuffer,
SerializableControl *pflusher, int offset, int count) const;
virtual bool operator==(PVField& pv) ;
virtual bool operator!=(PVField& pv) ;
private:
pointer value;
};
@@ -346,18 +312,6 @@ void DefaultPVArray<T>::serialize(ByteBuffer *pbuffer,
}
}
template<typename T>
bool DefaultPVArray<T>::operator==(PVField& pv)
{
return getConvert()->equals(this, &pv);
}
template<typename T>
bool DefaultPVArray<T>::operator!=(PVField& pv)
{
return !(getConvert()->equals(this, &pv));
}
// specializations for String
template<>

View File

@@ -534,17 +534,6 @@ namespace epics { namespace pvData {
}
}
bool PVStructure::operator==(PVField &obj)
{
return getConvert()->equals(this,&obj);
}
bool PVStructure::operator!=(PVField &pv)
{
return !(getConvert()->equals(this,&pv));
}
static PVField *findSubField(String fieldName,PVStructure *pvStructure) {
if( fieldName.length()<1) return 0;
String::size_type index = fieldName.find('.');

View File

@@ -5,9 +5,9 @@
* in file LICENSE that is included with this distribution.
*/
#include "pvType.h"
#ifndef LINKEDLISTVOID_H
#define LINKEDLISTVOID_H
#include "pvType.h"
namespace epics { namespace pvData {
class LinkedListVoid;

View File

@@ -4,9 +4,9 @@
* EPICS pvDataCPP is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <string>
#ifndef REQUESTER_H
#define REQUESTER_H
#include <string>
#include "pvType.h"
#include "sharedPtr.h"

View File

@@ -63,14 +63,16 @@ namespace epics { namespace pvData {
virtual Status stop() = 0;
/**
* If monitor has occurred return data.
* @return monitorElement for modified data on null if no monitors have occurred.
* @return monitorElement for modified data on null
* if no monitors have occurred.
*/
virtual MonitorElement::shared_pointer poll() = 0;
/**
* Release a MonitorElement that was returned by poll.
* @param monitorElement
*/
virtual void release(MonitorElement::shared_pointer& monitorElement) = 0;
virtual void release(
MonitorElement::shared_pointer& monitorElement) = 0;
};
@@ -89,9 +91,11 @@ namespace epics { namespace pvData {
* @param monitor The monitor
* @param structure The structure defining the data.
*/
virtual void monitorConnect(const Status &status, Monitor::shared_pointer& monitor, StructureConstPtr& structure) = 0;
virtual void monitorConnect(const Status &status,
Monitor::shared_pointer& monitor, StructureConstPtr& structure) = 0;
/**
* A monitor event has occurred. The requester must call Monitor.poll to get data.
* A monitor event has occurred.
* The requester must call Monitor.poll to get data.
* @param monitor The monitor.
*/
virtual void monitorEvent(Monitor::shared_pointer& monitor) = 0;

View File

@@ -12,44 +12,46 @@
namespace epics { namespace pvData {
typedef QueueElement<MonitorElement> MonitorQueueElement;
typedef QueueElement<MonitorElement::shared_pointer> MonitorQueueElement;
class MonitorElementImpl : public MonitorElement {
public:
MonitorElementImpl(PVStructure *pvStructure);
MonitorElementImpl(PVStructure::shared_pointer pvStructure);
~MonitorElementImpl(){}
virtual PVStructure* getPVStructure();
virtual BitSet* getChangedBitSet();
virtual BitSet* getOverrunBitSet();
virtual PVStructure::shared_pointer getPVStructure();
virtual BitSet::shared_pointer getChangedBitSet();
virtual BitSet::shared_pointer getOverrunBitSet();
void setQueueElement(MonitorQueueElement *queueElement);
MonitorQueueElement *getQueueElement();
private:
PVStructure *pvStructure;
std::auto_ptr<BitSet> changedBitSet;
std::auto_ptr<BitSet> overrunBitSet;
PVStructure::shared_pointer pvStructure;
BitSet::shared_pointer changedBitSet;
BitSet::shared_pointer overrunBitSet;
MonitorQueueElement *queueElement;
};
MonitorElementImpl::MonitorElementImpl(PVStructure *pvStructure)
MonitorElementImpl::MonitorElementImpl(PVStructure::shared_pointer pvStructure)
: pvStructure(pvStructure),
changedBitSet(std::auto_ptr<BitSet>(new BitSet(pvStructure->getNumberFields()))),
overrunBitSet(std::auto_ptr<BitSet>(new BitSet(pvStructure->getNumberFields()))),
changedBitSet(BitSet::shared_pointer(
new BitSet(pvStructure->getNumberFields()))),
overrunBitSet(BitSet::shared_pointer(
new BitSet(pvStructure->getNumberFields()))),
queueElement(0)
{}
PVStructure* MonitorElementImpl::getPVStructure()
PVStructure::shared_pointer MonitorElementImpl::getPVStructure()
{
return pvStructure;
}
BitSet* MonitorElementImpl::getChangedBitSet()
BitSet::shared_pointer MonitorElementImpl::getChangedBitSet()
{
return changedBitSet.get();
return changedBitSet;
}
BitSet* MonitorElementImpl::getOverrunBitSet()
BitSet::shared_pointer MonitorElementImpl::getOverrunBitSet()
{
return overrunBitSet.get();
return overrunBitSet;
}
void MonitorElementImpl::setQueueElement(MonitorQueueElement *queueElement)
@@ -62,20 +64,28 @@ MonitorQueueElement *MonitorElementImpl::getQueueElement()
return queueElement;
}
MonitorQueue::MonitorQueue(MonitorElement** elements,int number)
MonitorQueue::MonitorQueue(PVStructure::shared_pointer* structures,int number)
: number(number),
elements(elements),
queue(new Queue<MonitorElement>(elements,number))
structures(structures),
queue(0)
{
if(number<2) {
throw std::logic_error(String("queueSize must be >=2"));
}
MonitorQueueElement *queueElement;
MonitorElement::shared_pointer ** queueElements
= new MonitorElement::shared_pointer*[number];
for(int i=0; i<number; i++) {
queueElements[i] = new MonitorElement::shared_pointer(
new MonitorElementImpl(structures[i]));
}
queue = new Queue<MonitorElement::shared_pointer>(queueElements,number);
MonitorQueueElement *queueElement;
for(int i=0; i<number;i++) {
queueElement = queue->getFree();
MonitorElementImpl *temp =
static_cast<MonitorElementImpl*>(queueElement->getObject());
temp->setQueueElement(queueElement);
MonitorElementImpl * element = static_cast<MonitorElementImpl *>(
queueElement->getObject()->get());
element->setQueueElement(queueElement);
queue->setUsed(queueElement);
queue->releaseUsed(queueElement);
}
@@ -84,17 +94,16 @@ MonitorQueue::MonitorQueue(MonitorElement** elements,int number)
MonitorQueue::~MonitorQueue()
{
delete queue;
for(int i=0; i<number; i++) {
delete elements[i];
}
delete[] elements;
delete[] structures;
}
MonitorElement** MonitorQueue::createElements(PVStructurePtrArray array,int number)
PVStructure::shared_pointer* MonitorQueue::createStructures(
PVStructurePtrArray array,int number)
{
MonitorElement** elements = new MonitorElement*[number];
for(int i=0; i<number; i++) {
elements[i] = new MonitorElementImpl(array[i]);
PVStructure::shared_pointer* elements =
new PVStructure::shared_pointer[number];
for(int i=0; i<number; i++){
elements[i] = PVStructure::shared_pointer(array[i]);
}
return elements;
}
@@ -114,30 +123,31 @@ int MonitorQueue::capacity()
return number;
}
MonitorElement * MonitorQueue::getFree()
MonitorElement::shared_pointer MonitorQueue::getFree()
{
MonitorQueueElement *queueElement = queue->getFree();
if(queueElement==0) return 0;
return queueElement->getObject();
if(queueElement==0) return MonitorElement::shared_pointer();
return *queueElement->getObject();
}
void MonitorQueue::setUsed(MonitorElement * element)
void MonitorQueue::setUsed(MonitorElement::shared_pointer element)
{
MonitorElementImpl *temp = static_cast<MonitorElementImpl*>(element);
queue->setUsed(temp->getQueueElement());
MonitorElementImpl *impl = static_cast<MonitorElementImpl *>(element.get());
queue->setUsed(impl->getQueueElement());
}
MonitorElement * MonitorQueue::getUsed()
MonitorElement::shared_pointer MonitorQueue::getUsed()
{
MonitorQueueElement *queueElement = queue->getUsed();
if(queueElement==0) return 0;
return queueElement->getObject();
if(queueElement==0) return MonitorElement::shared_pointer();
return *queueElement->getObject();
}
void MonitorQueue::releaseUsed(MonitorElement * element)
void MonitorQueue::releaseUsed(MonitorElement::shared_pointer element)
{
MonitorElementImpl *temp = static_cast<MonitorElementImpl*>(element);
queue->releaseUsed(temp->getQueueElement());
MonitorElementImpl *impl = static_cast<MonitorElementImpl *>(element.get());
queue->releaseUsed(impl->getQueueElement());
}

View File

@@ -21,20 +21,21 @@ namespace epics { namespace pvData {
class MonitorQueue {
public:
MonitorQueue(MonitorElement** elements,int number);
MonitorQueue(PVStructure::shared_pointer* structures,int number);
~MonitorQueue();
static MonitorElement** createElements(PVStructurePtrArray array,int number);
static PVStructure::shared_pointer* createStructures(
PVStructurePtrArray array,int number);
void clear();
int getNumberFree();
int capacity();
MonitorElement *getFree();
void setUsed(MonitorElement * element);
MonitorElement * getUsed();
void releaseUsed(MonitorElement * element);
MonitorElement::shared_pointer getFree();
void setUsed(MonitorElement::shared_pointer element);
MonitorElement::shared_pointer getUsed();
void releaseUsed(MonitorElement::shared_pointer element);
private:
int number;
MonitorElement ** elements;
Queue<MonitorElement> *queue;
PVStructure::shared_pointer* structures;
Queue<MonitorElement::shared_pointer> *queue;
};
}}

View File

@@ -4,21 +4,46 @@
* EPICS pvDataCPP is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <string>
#include <stdexcept>
#ifndef CONVERT_H
#define CONVERT_H
#include <string>
#include <stdexcept>
#include "pvIntrospect.h"
#include "pvData.h"
namespace epics { namespace pvData {
bool operator==(PVField&, PVField&);
static inline bool operator!=(PVField& a, PVField& b)
{return !(a==b);}
bool operator==(const Field&, const Field&);
bool operator==(const Scalar&, const Scalar&);
bool operator==(const ScalarArray&, const ScalarArray&);
bool operator==(const Structure&, const Structure&);
bool operator==(const StructureArray&, const StructureArray&);
static inline bool operator!=(const Field& a, const Field& b)
{return !(a==b);}
static inline bool operator!=(const Scalar& a, const Scalar& b)
{return !(a==b);}
static inline bool operator!=(const ScalarArray& a, const ScalarArray& b)
{return !(a==b);}
static inline bool operator!=(const Structure& a, const Structure& b)
{return !(a==b);}
static inline bool operator!=(const StructureArray& a, const StructureArray& b)
{return !(a==b);}
class Convert : NoDefaultMethods {
public:
Convert();
~Convert();
void getFullName(StringBuilder buf,PVField *pvField);
bool equals(PVField *a,PVField *b);
bool equals(PVField &a,PVField &b);
void getString(StringBuilder buf,PVField * pvField,int indentLevel);
void getString(StringBuilder buf,PVField *pvField);
void fromString(PVScalar *pv, String from);

View File

@@ -4,10 +4,10 @@
* EPICS pvDataCPP is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <string>
#include <stdexcept>
#ifndef PVDATA_H
#define PVDATA_H
#include <string>
#include <stdexcept>
#include "pvType.h"
#include "pvIntrospect.h"
#include "noDefaultMethods.h"
@@ -80,10 +80,9 @@ public:
bool renameField(String newName);
void postPut() ;
void setPostHandler(PostHandler *postHandler);
bool equals(PVField &pv);
virtual void toString(StringBuilder buf) ;
virtual void toString(StringBuilder buf,int indentLevel) ;
virtual bool operator==(PVField &pv) = 0;
virtual bool operator!=(PVField &pv) = 0;
protected:
PVField(PVStructure *parent,FieldConstPtr field);
void setParent(PVStructure * parent);
@@ -245,8 +244,6 @@ public:
String getExtendsStructureName();
bool putExtendsStructureName(
String extendsStructureName);
virtual bool operator==(PVField &pv) ;
virtual bool operator!=(PVField &pv) ;
virtual void serialize(
ByteBuffer *pbuffer,SerializableControl *pflusher) const;
virtual void deserialize(

View File

@@ -9,10 +9,10 @@
* It also defines the arrays of the primitive types
*/
#include <string>
#include <stdint.h>
#ifndef PVTYPE_H
#define PVTYPE_H
#include <string>
#include <stdint.h>
namespace epics { namespace pvData {

View File

@@ -4,10 +4,10 @@
* EPICS pvDataCPP is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <string>
#include <stdexcept>
#ifndef STANDARDFIELD_H
#define STANDARDFIELD_H
#include <string>
#include <stdexcept>
#include "pvIntrospect.h"
namespace epics { namespace pvData {

View File

@@ -4,10 +4,10 @@
* EPICS pvDataCPP is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <string>
#include <stdexcept>
#ifndef STANDARDPVFIELD_H
#define STANDARDPVFIELD_H
#include <string>
#include <stdexcept>
#include "pvIntrospect.h"
#include "pvData.h"

View File

@@ -5,7 +5,7 @@ There is a logic_error
On line 68 of ../testBaseException.cpp
../bin/linux-x86/testBaseException[0x80497b9]
../bin/linux-x86/testBaseException[0x8049a54]
/lib/libc.so.6(__libc_start_main+0xe6)[0x126e36]
/lib/libc.so.6(__libc_start_main+0xe6)[0x3ede36]
../bin/linux-x86/testBaseException[0x80490e1]
To translate run 'addr2line -e execname 0xXXXXXXX ...'
Note: Must be compiled with debug symbols
@@ -17,7 +17,7 @@ On line 75 of ../testBaseException.cpp
../bin/linux-x86/testBaseException() [0x8049cec]
../bin/linux-x86/testBaseException() [0x8049923]
../bin/linux-x86/testBaseException() [0x8049a54]
/lib/libc.so.6(__libc_start_main+0xe6) [0x126e36]
/lib/libc.so.6(__libc_start_main+0xe6) [0x3ede36]
../bin/linux-x86/testBaseException() [0x80490e1]
testBaseException...
@@ -26,7 +26,7 @@ all is OK
On line 48 of ../testBaseException.cpp
../bin/linux-x86/testBaseException() [0x8049581]
../bin/linux-x86/testBaseException() [0x8049a5c]
/lib/libc.so.6(__libc_start_main+0xe6) [0x126e36]
/lib/libc.so.6(__libc_start_main+0xe6) [0x3ede36]
../bin/linux-x86/testBaseException() [0x80490e1]
@@ -38,7 +38,7 @@ On line 57 of ../testBaseException.cpp
../bin/linux-x86/testBaseException() [0x80491ec]
../bin/linux-x86/testBaseException() [0x80496f9]
../bin/linux-x86/testBaseException() [0x8049a5c]
/lib/libc.so.6(__libc_start_main+0xe6) [0x126e36]
/lib/libc.so.6(__libc_start_main+0xe6) [0x3ede36]
../bin/linux-x86/testBaseException() [0x80490e1]

View File

@@ -1,5 +1,5 @@
--- testBaseExceptionGold 2011-02-10 04:39:30.000000000 -0500
+++ testBaseException 2011-04-21 10:00:27.000000000 -0400
--- testBaseExceptionGold 2011-04-25 13:04:28.000000000 -0400
+++ testBaseException 2011-04-27 07:53:41.000000000 -0400
@@ -1,37 +1,46 @@
+
+
@@ -8,7 +8,7 @@
+On line 68 of ../testBaseException.cpp
+../bin/linux-x86/testBaseException[0x80497b9]
+../bin/linux-x86/testBaseException[0x8049a54]
+/lib/libc.so.6(__libc_start_main+0xe6)[0x126e36]
+/lib/libc.so.6(__libc_start_main+0xe6)[0x3ede36]
+../bin/linux-x86/testBaseException[0x80490e1]
+To translate run 'addr2line -e execname 0xXXXXXXX ...'
+ Note: Must be compiled with debug symbols
@@ -20,7 +20,7 @@
+../bin/linux-x86/testBaseException() [0x8049cec]
+../bin/linux-x86/testBaseException() [0x8049923]
+../bin/linux-x86/testBaseException() [0x8049a54]
+/lib/libc.so.6(__libc_start_main+0xe6) [0x126e36]
+/lib/libc.so.6(__libc_start_main+0xe6) [0x3ede36]
+../bin/linux-x86/testBaseException() [0x80490e1]
+
testBaseException...
@@ -34,7 +34,7 @@
+On line 48 of ../testBaseException.cpp
+../bin/linux-x86/testBaseException() [0x8049581]
+../bin/linux-x86/testBaseException() [0x8049a5c]
+/lib/libc.so.6(__libc_start_main+0xe6) [0x126e36]
+/lib/libc.so.6(__libc_start_main+0xe6) [0x3ede36]
+../bin/linux-x86/testBaseException() [0x80490e1]
+
@@ -67,7 +67,7 @@
+../bin/linux-x86/testBaseException() [0x80491ec]
+../bin/linux-x86/testBaseException() [0x80496f9]
+../bin/linux-x86/testBaseException() [0x8049a5c]
+/lib/libc.so.6(__libc_start_main+0xe6) [0x126e36]
+/lib/libc.so.6(__libc_start_main+0xe6) [0x3ede36]
+../bin/linux-x86/testBaseException() [0x80490e1]
+

View File

@@ -1,20 +1,20 @@
Time test
diff 23.497236 milliSeconds
time per iteration 23.497236 microseconds
time per addTail/removeHead 0.011749 microseconds
diff 22.226751 milliSeconds
time per iteration 22.226751 microseconds
time per addTail/removeHead 0.011113 microseconds
Time test locked
diff 206.570083 milliSeconds
time per iteration 206.570083 microseconds
time per addTail/removeHead 0.103285 microseconds
diff 205.273532 milliSeconds
time per iteration 205.273532 microseconds
time per addTail/removeHead 0.102637 microseconds
Time std::list test
diff 632.330525 milliSeconds
time per iteration 632.330525 microseconds
time per addTail/removeHead 0.316165 microseconds
diff 666.642776 milliSeconds
time per iteration 666.642776 microseconds
time per addTail/removeHead 0.333321 microseconds
Time std::list test locked
diff 783.256490 milliSeconds
time per iteration 783.256490 microseconds
time per addTail/removeHead 0.391628 microseconds
diff 812.128477 milliSeconds
time per iteration 812.128477 microseconds
time per addTail/removeHead 0.406064 microseconds

View File

@@ -1,5 +1,5 @@
--- testPVAppendGold 2011-02-09 05:21:30.000000000 -0500
+++ testPVAppend 2011-04-21 10:00:32.000000000 -0400
--- testPVAppendGold 2011-04-25 13:04:28.000000000 -0400
+++ testPVAppend 2011-04-27 07:53:46.000000000 -0400
@@ -29,4 +29,4 @@
structure child2
string Jane Bad Girl

View File

@@ -1 +1 @@
2011.04.21 10:00:33 929776649 nanoSeconds isDst true
2011.04.27 07:53:47 782836752 nanoSeconds isDst true

View File

@@ -1 +1 @@
time per call 0.007064 microseconds
time per call 0.007046 microseconds

View File

@@ -1,5 +1,5 @@
current 1303394433 13269031 milliSec 1303394433013
2011.04.21 10:00:33 13269031 nanoSeconds isDst true
current 1303905226 876200358 milliSec 1303905226876
2011.04.27 07:53:46 876200358 nanoSeconds isDst true
fromTime_t
current 1303394433 0 milliSec 1303394433000
2011.04.21 10:00:33 0 nanoSeconds isDst true
current 1303905226 0 milliSec 1303905226000
2011.04.27 07:53:46 0 nanoSeconds isDst true

View File

@@ -1,6 +1,6 @@
one requested 0.400000 diff 0.400193 seconds
two requested 0.200000 diff 0.200190 seconds
one requested 0.200000 diff 0.200333 seconds
two requested 0.400000 diff 0.400372 seconds
one requested 0.000000 diff 0.000034 seconds
two requested 0.000000 diff 0.000050 seconds
one requested 0.400000 diff 0.400283 seconds
two requested 0.200000 diff 0.200268 seconds
one requested 0.200000 diff 0.200291 seconds
two requested 0.400000 diff 0.400374 seconds
one requested 0.000000 diff 0.000042 seconds
two requested 0.000000 diff 0.000061 seconds

View File

@@ -21,6 +21,7 @@
#include "noDefaultMethods.h"
#include "byteBuffer.h"
#include "CDRMonitor.h"
#include "convert.h"
#define BYTE_MAX_VALUE 127
#define BYTE_MIN_VALUE -128
@@ -90,8 +91,8 @@ void serializationTest(PVField* field) {
deserializedField->deserialize(buffer, control);
// must equal
assert((*field)==(*deserializedField));
bool isEqual = getConvert()->equals(*field,*deserializedField);
assert(isEqual);
delete deserializedField; // clean up
}