#include <iostream>
#include <cstring>
#include <list>
using namespace std;
#define BUFFERSIZE 1024
class receivebuffer_0{
public:
unsigned char *payload;
int NALU;
receivebuffer_0() // Constructor
{
payload = new unsigned char[BUFFERSIZE];
NALU = 0;
}
receivebuffer_0(const receivebuffer_0& other)
{
payload = new unsigned char[BUFFERSIZE];
NALU = other.NALU;
memcpy(payload, other.payload, BUFFERSIZE);
}
};
int main() {
list<receivebuffer_0> WiFi;
receivebuffer_0 data;
size_t payloadLength = 100;
unsigned char payloadIndex[payloadLength];
payloadIndex[0] = 254;
payloadIndex[1] = 30;
data.NALU = 1;
cout<< (int)payloadIndex[0]<<endl; // output 254 OK
memcpy(data.payload , payloadIndex, 2);
WiFi.push_back(data);
payloadIndex[0] = 40;
payloadIndex[1] = 45;
data.NALU = 12333;
memcpy(data.payload , payloadIndex, 2);
WiFi.push_back(data);
cout<<(int)WiFi.front().payload[0]<<endl;
//output 40 .... should output 254
cout<<WiFi.front().NALU<<endl; // output 1
WiFi.pop_front();
cout<<(int)WiFi.front().payload[0]<<endl; // output 40
cout<<WiFi.front().NALU<<endl; // output 12333
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxsaXN0PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgQlVGRkVSU0laRSAgICAgIDEwMjQKCmNsYXNzIHJlY2VpdmVidWZmZXJfMHsKCiAgICAgICAgcHVibGljOgogICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcGF5bG9hZDsKICAgICAgICAgICAgICAgIGludCBOQUxVOwogICAgICAgICAgICAgICAgcmVjZWl2ZWJ1ZmZlcl8wKCkgICAgICAgICAgICAgICAvLyBDb25zdHJ1Y3RvcgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gbmV3IHVuc2lnbmVkIGNoYXJbQlVGRkVSU0laRV07CiAgICAgICAgICAgICAgICAgICAgICAgIE5BTFUgPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICByZWNlaXZlYnVmZmVyXzAoY29uc3QgcmVjZWl2ZWJ1ZmZlcl8wJiBvdGhlcikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gbmV3IHVuc2lnbmVkIGNoYXJbQlVGRkVSU0laRV07CiAgICAgICAgICAgICAgICAgICAgTkFMVSA9IG90aGVyLk5BTFU7CiAgICAgICAgICAgICAgICAJbWVtY3B5KHBheWxvYWQsIG90aGVyLnBheWxvYWQsIEJVRkZFUlNJWkUpOwogICAgICAgICAgICAgICAgfQp9OwoKaW50IG1haW4oKSB7CgogICAgICAgIGxpc3Q8cmVjZWl2ZWJ1ZmZlcl8wPiBXaUZpOwoKICAgICAgICByZWNlaXZlYnVmZmVyXzAgZGF0YTsKICAgICAgICBzaXplX3QgcGF5bG9hZExlbmd0aCA9IDEwMDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBheWxvYWRJbmRleFtwYXlsb2FkTGVuZ3RoXTsKICAgICAgICBwYXlsb2FkSW5kZXhbMF0gPSAyNTQ7CiAgICAgICAgcGF5bG9hZEluZGV4WzFdID0gMzA7CiAgICAgICAgZGF0YS5OQUxVID0gMTsKCiAgICAgICAgY291dDw8IChpbnQpcGF5bG9hZEluZGV4WzBdPDxlbmRsOyAvLyBvdXRwdXQgMjU0IE9LCgogICAgICAgIG1lbWNweShkYXRhLnBheWxvYWQgLCBwYXlsb2FkSW5kZXgsIDIpOwoKICAgICAgICBXaUZpLnB1c2hfYmFjayhkYXRhKTsKCiAgICAgICAgcGF5bG9hZEluZGV4WzBdID0gNDA7CiAgICAgICAgcGF5bG9hZEluZGV4WzFdID0gNDU7CiAgICAgICAgZGF0YS5OQUxVID0gMTIzMzM7CgogICAgICAgIG1lbWNweShkYXRhLnBheWxvYWQgLCBwYXlsb2FkSW5kZXgsIDIpOwoKICAgICAgICBXaUZpLnB1c2hfYmFjayhkYXRhKTsKCiAgICAgICAgY291dDw8KGludClXaUZpLmZyb250KCkucGF5bG9hZFswXTw8ZW5kbDsKICAgICAgICAvL291dHB1dCA0MCAgLi4uLiBzaG91bGQgb3V0cHV0IDI1NAoKICAgICAgICBjb3V0PDxXaUZpLmZyb250KCkuTkFMVTw8ZW5kbDsgLy8gb3V0cHV0IDEKCiAgICAgICAgV2lGaS5wb3BfZnJvbnQoKTsKCiAgICAgICAgY291dDw8KGludClXaUZpLmZyb250KCkucGF5bG9hZFswXTw8ZW5kbDsgLy8gb3V0cHV0IDQwCiAgICAgICAgY291dDw8V2lGaS5mcm9udCgpLk5BTFU8PGVuZGw7IC8vIG91dHB1dCAxMjMzMwoKICAgICAgICByZXR1cm4gMDsKfQ==