32 lines
612 B
C++
32 lines
612 B
C++
#pragma once
|
|
|
|
#include <sp/common/DataBuffer.h>
|
|
|
|
namespace sp {
|
|
|
|
class MessageEncapsulator {
|
|
protected:
|
|
bool m_Enabled = true;
|
|
|
|
public:
|
|
MessageEncapsulator() {}
|
|
virtual ~MessageEncapsulator() {}
|
|
|
|
DataBuffer Encapsulate(const DataBuffer& a_Data) {
|
|
if (!m_Enabled)
|
|
return a_Data;
|
|
return EncapsulateImpl(a_Data);
|
|
}
|
|
DataBuffer Decapsulate(DataBuffer& a_Data) {
|
|
if (!m_Enabled)
|
|
return a_Data;
|
|
return DecapsulateImpl(a_Data);
|
|
}
|
|
|
|
protected:
|
|
virtual DataBuffer EncapsulateImpl(const DataBuffer& a_Data) = 0;
|
|
virtual DataBuffer DecapsulateImpl(DataBuffer& a_Data) = 0;
|
|
};
|
|
|
|
} // namespace sp
|