-rw-r--r-- | libopie2/opienet/opcap.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libopie2/opienet/opcap.h b/libopie2/opienet/opcap.h index 72a78de..4ff8495 100644 --- a/libopie2/opienet/opcap.h +++ b/libopie2/opienet/opcap.h @@ -133,11 +133,10 @@ class OPacket : public QObject QString dump( int = 32 ) const; void updateStats( QMap<QString,int>&, QObjectList* ); - private: - QString dumpStructure() const; + private: QString _dumpStructure( QObjectList* ) const; private: const packetheaderstruct _hdr; // pcap packet header @@ -692,8 +691,20 @@ class OPacketCapturer : public QObject * @returns the packet statistic database. * @see QMap */ const QMap<QString,int>& statistics() const; + /** + * Enable or disable the auto-delete option. + * If auto-delete is enabled, then the packet capturer will delete a packet right + * after it has been emit'ted. This is the default, which is useful if the packet + * capturer has the only reference to the packets. If you pass the packet for adding + * into a collection or do processing after the SLOT, the auto delete must be disabled. + */ + void setAutoDelete( bool enable ); + /** + * @returns the auto-delete value. + */ + bool autoDelete() const; signals: /** * This signal is emitted, when a packet has been received. @@ -710,10 +721,11 @@ class OPacketCapturer : public QObject pcap_dumper_t* _pcd; // pcap dumper handle QSocketNotifier* _sn; // socket notifier for main loop mutable char _errbuf[PCAP_ERRBUF_SIZE]; // holds error strings from libpcap QMap<QString, int> _stats; // statistics; - class Private; // Private Forward declaration - Private *d; // if we need to add data + bool _autodelete; // if we auto delete packets after emit + class Private; // Private Forward declaration + Private *d; // if we need to add data }; } } |