[22] | 1 | /** |
---|
| 2 | * @file CapturedData.h |
---|
| 3 | * This header file defines the CapturedData class. |
---|
| 4 | * @author Tomas Urban |
---|
| 5 | * @version 0.1 |
---|
| 6 | * @date 16/07/2009 |
---|
| 7 | */ |
---|
| 8 | #ifndef CAPTURED_DATA_H |
---|
| 9 | #define CAPTURED_DATA_H |
---|
| 10 | |
---|
| 11 | #include "TrafficCaptureMessage.h" |
---|
| 12 | #include "TrafficCaptureMessageId.h" |
---|
| 13 | |
---|
| 14 | /** |
---|
| 15 | * This class describes a message used for passing captured data to the lower tester. |
---|
| 16 | */ |
---|
| 17 | class CapturedData : public TrafficCaptureMessage |
---|
| 18 | { |
---|
| 19 | private: |
---|
| 20 | char * m_pCapturedData; |
---|
| 21 | unsigned int m_nCapturedLen; |
---|
| 22 | struct timeval m_timestamp; |
---|
| 23 | ECaptureType m_captureType; |
---|
| 24 | protected: |
---|
| 25 | virtual unsigned int CalculateDataLength(); |
---|
| 26 | virtual void EncodePayload(unsigned int & nOffset); |
---|
| 27 | virtual bool DecodePayload(const char * pPayload, unsigned int nPayloadLength, unsigned int & nOffset); |
---|
| 28 | public: |
---|
| 29 | CapturedData(void); |
---|
| 30 | virtual ~CapturedData(void); |
---|
| 31 | virtual unsigned short GetId() const { return CAPTURED_PACKET_IND; } |
---|
| 32 | /** |
---|
| 33 | * Stores captured data. |
---|
| 34 | * @param nLen Length of the captured data |
---|
| 35 | * @param pData Buffer containing the captured data |
---|
| 36 | */ |
---|
| 37 | void SetData (int nLen, const char * pData); |
---|
| 38 | /** |
---|
| 39 | * Returns the length of captured data. |
---|
| 40 | * @return Length of the captured data |
---|
| 41 | */ |
---|
| 42 | int GetDataLength() const { return m_nCapturedLen; }; |
---|
| 43 | /** |
---|
| 44 | * Return a pointer to the buffer containing captured data. |
---|
| 45 | * @return Pointer to captured data |
---|
| 46 | */ |
---|
| 47 | const char * GetData() const { return m_pCapturedData; } |
---|
| 48 | /** |
---|
| 49 | * Sets the time when capture has occurred. |
---|
| 50 | * @param timestamp Time of capture |
---|
| 51 | */ |
---|
| 52 | void SetTimestamp(struct timeval timestamp); |
---|
| 53 | /** |
---|
| 54 | * Returns time of capture. |
---|
| 55 | * @return Time of capture |
---|
| 56 | */ |
---|
| 57 | struct timeval GetTimestamp() const { return m_timestamp; } |
---|
| 58 | /** |
---|
| 59 | * Sets a type of device that captured the data |
---|
| 60 | * @param captureType Type of capturing device |
---|
| 61 | */ |
---|
| 62 | void SetCaptureType(ECaptureType captureType); |
---|
| 63 | /** |
---|
| 64 | * Returns a type of device that captured the data |
---|
| 65 | * @return Type of capturing device |
---|
| 66 | */ |
---|
| 67 | ECaptureType GetCaptureType() const { return m_captureType; } |
---|
| 68 | /** |
---|
| 69 | * Converts the object to a string. Used for logging purposes |
---|
| 70 | * @return String representation of the object. |
---|
| 71 | */ |
---|
| 72 | std::string ToString(); |
---|
| 73 | }; |
---|
| 74 | |
---|
| 75 | #endif |
---|