31 lines
1.2 KiB
C++
31 lines
1.2 KiB
C++
#include "transaction.h"
|
|
|
|
using namespace std;
|
|
Transaction::Transaction(ID id,unsigned int address,unsigned int burstlength,int thread, unsigned int channel, unsigned int bank,unsigned int bankgroup, unsigned int row, unsigned int column, Timespan span, Timespan spanOnDataStrobe)
|
|
:address(address),burstlength(burstlength),channel(channel), bank(bank),bankgroup(bankgroup), row(row), column(column),thread(thread),span(span),spanOnDataStrobe(spanOnDataStrobe),id(id){}
|
|
|
|
void Transaction::addPhase(shared_ptr<Phase> phase)
|
|
{
|
|
phases.push_back(phase);
|
|
}
|
|
|
|
void Transaction::draw(QPainter *painter, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, bool highlight, const TraceDrawingProperties &drawingProperties) const
|
|
{
|
|
for(shared_ptr<Phase> phase: phases)
|
|
phase->draw(painter,xMap,yMap,canvasRect,highlight,drawingProperties);
|
|
}
|
|
|
|
bool Transaction::isSelected(traceTime time, double yVal, const TraceDrawingProperties& drawingproperties) const
|
|
{
|
|
if(span.contains(time))
|
|
{
|
|
for(shared_ptr<Phase> phase: phases)
|
|
{
|
|
if(phase->isSelected(time,yVal,drawingproperties))
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|