10#ifndef ATAP_DATA_MODEL_H
11#define ATAP_DATA_MODEL_H
19#include <QAbstractListModel>
95 int rowCount(
const QModelIndex &parent = QModelIndex())
const;
103 virtual int columnCount(
const QModelIndex &parent = QModelIndex())
const = 0;
113 virtual QVariant
headerData(
int section, Qt::Orientation orientation = Qt::Horizontal,
int role = Qt::DisplayRole)
const = 0;
122 virtual QVariant
data(
const QModelIndex &idx,
int role = Qt::DisplayRole)
const = 0;
284 static void tapReset(
void *tapdata);
290 static void tapDraw(
void *tap_data);
384 int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
393 QVariant
headerData(
int section, Qt::Orientation orientation = Qt::Horizontal,
394 int role = Qt::DisplayRole)
const override;
402 QVariant data(
const QModelIndex &idx,
int role = Qt::DisplayRole)
const override;
493 int columnCount(
const QModelIndex &parent = QModelIndex())
const override;
502 QVariant
headerData(
int section, Qt::Orientation orientation = Qt::Horizontal,
503 int role = Qt::DisplayRole)
const override;
511 QVariant data(
const QModelIndex &idx,
int role = Qt::DisplayRole)
const override;
DataModel for tap user data.
Definition atap_data_model.h:33
virtual void setResolveNames(bool resolve)=0
Enable or disable if names should be resolved.
virtual tap_packet_cb conversationPacketHandler()
Retrieves the callback function used to handle conversation packets.
Definition atap_data_model.cpp:221
bool _disableTap
Definition atap_data_model.h:320
void setMachineReadable(bool machineReadable)
Sets whether the data should be presented in a machine-readable format.
Definition atap_data_model.cpp:159
static void tapDraw(void *tap_data)
Callback to draw or update the tap data.
Definition atap_data_model.cpp:197
bool resolveNames() const
Is the model set to resolve names in address and ports columns.
Definition atap_data_model.cpp:265
virtual ~ATapDataModel()
Destructor.
Definition atap_data_model.cpp:65
bool enableTap()
Enable tapping in this model.
Definition atap_data_model.cpp:109
void resetData()
Resets the internal model data.
Definition atap_data_model.cpp:234
void tapListenerChanged(bool enable)
Signal emitted when the tap listener state changes.
void updateData(GArray *data)
Updates the model with new data.
Definition atap_data_model.cpp:252
QString tap() const
Returns the name for the tap being used.
Definition atap_data_model.cpp:82
register_ct_t * registerTable() const
Gets the conversation registration table for this tap.
Definition atap_data_model.cpp:213
void limitToDisplayFilter(bool limit)
Limits the data model to the currently active display filter.
Definition atap_data_model.cpp:170
bool allowsNameResolution() const
Does the model allow names to be resolved.
Definition atap_data_model.cpp:270
bool _resolveNames
Definition atap_data_model.h:318
dataModelType
Identifies which statistical data model is active in the endpoint/conversation dialog.
Definition atap_data_model.h:61
@ DATAMODEL_CONVERSATION
Definition atap_data_model.h:63
@ DATAMODEL_UNKNOWN
Definition atap_data_model.h:64
@ DATAMODEL_ENDPOINT
Definition atap_data_model.h:62
bool isFilterApplied() const
Checks if a display filter has to be applied.
Definition atap_data_model.cpp:328
virtual void useAbsoluteTime(bool absolute)=0
Use absolute time for any column supporting it.
unsigned _tapFlags
Definition atap_data_model.h:325
conv_hash_t hash_
Definition atap_data_model.h:67
bool _nanoseconds
Definition atap_data_model.h:317
bool _machineReadable
Definition atap_data_model.h:319
dataModelType modelType() const
Return the model type.
Definition atap_data_model.cpp:318
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const =0
Return the number of columns in the model.
dataModelType _type
Definition atap_data_model.h:309
void setFilter(QString filter)
Set the filter string.
Definition atap_data_model.cpp:296
static void tapReset(void *tapdata)
Callback to reset the tap data.
Definition atap_data_model.cpp:187
double _maxRelStopTime
Definition atap_data_model.h:323
QString _filter
Definition atap_data_model.h:311
@ DATA_IPV4_INTEGER
Definition atap_data_model.h:54
@ UNFORMATTED_DISPLAYDATA
Definition atap_data_model.h:42
@ DATA_ADDRESS_TYPE
Definition atap_data_model.h:53
@ DATA_IPV6_LIST
Definition atap_data_model.h:55
@ ENDPOINT_DATATYPE
Definition atap_data_model.h:49
@ TIMELINE_DATA
Definition atap_data_model.h:48
@ ROW_IS_FILTERED
Definition atap_data_model.h:52
@ PROTO_ID
Definition atap_data_model.h:50
@ CONVERSATION_ID
Definition atap_data_model.h:51
@ DISPLAY_FILTER
Definition atap_data_model.h:41
conv_hash_t * hash()
Return the conversation hash table for this model.
Definition atap_data_model.cpp:208
void disableTap()
Disable the tapping for this model.
Definition atap_data_model.cpp:136
void updateFlags(unsigned flag)
Update the flags.
Definition atap_data_model.cpp:145
GArray * storage_
Definition atap_data_model.h:310
double _minRelStartTime
Definition atap_data_model.h:322
int rowCount(const QModelIndex &parent=QModelIndex()) const
Number of rows under the given parent in this model, which is the total number of rows for the empty ...
Definition atap_data_model.cpp:182
bool portsAreHidden() const
Are ports hidden for this model.
Definition atap_data_model.cpp:323
bool _absoluteTime
Definition atap_data_model.h:313
virtual QVariant headerData(int section, Qt::Orientation orientation=Qt::Horizontal, int role=Qt::DisplayRole) const =0
Return the header data for the specified section and orientation.
int protoId() const
The protocol id for the tap.
Definition atap_data_model.cpp:77
virtual QVariant data(const QModelIndex &idx, int role=Qt::DisplayRole) const =0
Return the data for the specified index and role.
virtual void useNanosecondTimestamps(bool nanoseconds)=0
Use nanosecond timestamps if requested.
QString filter() const
Return a filter set for the model.
Definition atap_data_model.cpp:313
Tap data model for the Conversations statistics dialog.
Definition atap_data_model.h:436
void useAbsoluteTime(bool absolute) override
Switch timestamp display between absolute and relative time.
Definition atap_data_model.cpp:989
conversation_tcp_ext_column_type_e
Additional column indices for the TCP extended column block.
Definition atap_data_model.h:474
@ CONV_TCP_EXT_COLUMN_A
Definition atap_data_model.h:475
@ CONV_TCP_EXT_INDEX_COLUMN
Definition atap_data_model.h:477
@ CONV_TCP_EXT_NUM_COLUMNS
Definition atap_data_model.h:476
conversation_column_type_e
Column indices for the standard conversation statistics table.
Definition atap_data_model.h:446
@ CONV_COLUMN_SRC_ADDR
Definition atap_data_model.h:447
@ CONV_COLUMN_SRC_PORT
Definition atap_data_model.h:448
@ CONV_COLUMN_CONV_ID
Definition atap_data_model.h:453
@ CONV_COLUMN_BYTES_TOTAL
Definition atap_data_model.h:455
@ CONV_COLUMN_PKT_AB
Definition atap_data_model.h:456
@ CONV_NUM_COLUMNS
Definition atap_data_model.h:464
@ CONV_COLUMN_BYTES_AB
Definition atap_data_model.h:457
@ CONV_COLUMN_BPS_BA
Definition atap_data_model.h:463
@ CONV_COLUMN_BPS_AB
Definition atap_data_model.h:462
@ CONV_COLUMN_DST_PORT
Definition atap_data_model.h:450
@ CONV_COLUMN_BYTES
Definition atap_data_model.h:452
@ CONV_COLUMN_START
Definition atap_data_model.h:460
@ CONV_INDEX_COLUMN
Definition atap_data_model.h:465
@ CONV_COLUMN_PACKETS_TOTAL
Definition atap_data_model.h:454
@ CONV_COLUMN_DST_ADDR
Definition atap_data_model.h:449
@ CONV_COLUMN_BYTES_BA
Definition atap_data_model.h:459
@ CONV_COLUMN_DURATION
Definition atap_data_model.h:461
@ CONV_COLUMN_PKT_BA
Definition atap_data_model.h:458
@ CONV_COLUMN_PACKETS
Definition atap_data_model.h:451
void doDataUpdate()
Recalculate derived values (throughput, duration) after a tap update.
Definition atap_data_model.cpp:628
QVariant headerData(int section, Qt::Orientation orientation=Qt::Horizontal, int role=Qt::DisplayRole) const override
Return header data for the conversation table.
Definition atap_data_model.cpp:661
bool showConversationId(int row=0) const
Return whether a conversation ID column should be shown.
Definition atap_data_model.cpp:963
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Return the number of columns, including any TCP extended columns.
Definition atap_data_model.cpp:653
void useNanosecondTimestamps(bool nanoseconds) override
Enable or disable nanosecond precision in timestamp display.
Definition atap_data_model.cpp:1001
conv_item_t * itemForRow(int row)
Return the raw conv_item_t for a given table row.
Definition atap_data_model.cpp:956
void setResolveNames(bool resolve) override
Enable or disable address name resolution for all address cells.
Definition atap_data_model.cpp:978
Tap data model for the Endpoints statistics dialog.
Definition atap_data_model.h:342
void useNanosecondTimestamps(bool nanoseconds) override
Enable or disable nanosecond precision in timestamp display.
Definition atap_data_model.cpp:615
endpoint_column_type_e
Column indices for the endpoint statistics table.
Definition atap_data_model.h:349
@ ENDP_COLUMN_GEO_CITY
Definition atap_data_model.h:362
@ ENDP_COLUMN_GEO_LONGITUDE
Definition atap_data_model.h:364
@ ENDP_COLUMN_PACKETS
Definition atap_data_model.h:352
@ ENDP_COLUMN_GEO_AS_NUM
Definition atap_data_model.h:365
@ ENDP_NUM_GEO_COLUMNS
Definition atap_data_model.h:367
@ ENDP_COLUMN_BYTES_AB
Definition atap_data_model.h:357
@ ENDP_COLUMN_PKT_AB
Definition atap_data_model.h:356
@ ENDP_NUM_COLUMNS
Definition atap_data_model.h:360
@ ENDP_COLUMN_BYTES
Definition atap_data_model.h:353
@ ENDP_COLUMN_BYTES_TOTAL
Definition atap_data_model.h:355
@ ENDP_COLUMN_GEO_AS_ORG
Definition atap_data_model.h:366
@ ENDP_COLUMN_PORT
Definition atap_data_model.h:351
@ ENDP_COLUMN_BYTES_BA
Definition atap_data_model.h:359
@ ENDP_COLUMN_ADDR
Definition atap_data_model.h:350
@ ENDP_COLUMN_GEO_LATITUDE
Definition atap_data_model.h:363
@ ENDP_COLUMN_PKT_BA
Definition atap_data_model.h:358
@ ENDP_COLUMN_PACKETS_TOTAL
Definition atap_data_model.h:354
@ ENDP_COLUMN_GEO_COUNTRY
Definition atap_data_model.h:361
void setResolveNames(bool resolve) override
Enable or disable address name resolution for all address cells.
Definition atap_data_model.cpp:595
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Return the number of columns, including GeoIP columns if available.
Definition atap_data_model.cpp:338
void useAbsoluteTime(bool absolute) override
Switch timestamp display between absolute and relative time.
Definition atap_data_model.cpp:606
QVariant headerData(int section, Qt::Orientation orientation=Qt::Horizontal, int role=Qt::DisplayRole) const override
Return header data for the endpoint table.
Definition atap_data_model.cpp:350
Definition conversation_table.h:75
Definition conversation_table.h:161
Definition conversation_table.c:24