Bug 1194721: Add additional PDU pack and unpack functions, r=shuang

This patch adds PDU pack and unpack functions for 64-bit integer
values and floating-point values.
This commit is contained in:
Thomas Zimmermann 2016-02-03 15:16:00 +01:00
Родитель e612fcd867
Коммит 3cd78ac553
2 изменённых файлов: 88 добавлений и 0 удалений

Просмотреть файл

@ -188,6 +188,30 @@ PackPDU(uint32_t aIn, DaemonSocketPDU& aPDU)
return aPDU.Write(aIn); return aPDU.Write(aIn);
} }
inline nsresult
PackPDU(int64_t aIn, DaemonSocketPDU& aPDU)
{
return aPDU.Write(aIn);
}
inline nsresult
PackPDU(uint64_t aIn, DaemonSocketPDU& aPDU)
{
return aPDU.Write(aIn);
}
inline nsresult
PackPDU(float aIn, DaemonSocketPDU& aPDU)
{
return aPDU.Write(aIn);
}
inline nsresult
PackPDU(double aIn, DaemonSocketPDU& aPDU)
{
return aPDU.Write(aIn);
}
nsresult nsresult
PackPDU(const DaemonSocketPDUHeader& aIn, DaemonSocketPDU& aPDU); PackPDU(const DaemonSocketPDUHeader& aIn, DaemonSocketPDU& aPDU);
@ -646,6 +670,30 @@ UnpackPDU(DaemonSocketPDU& aPDU, uint32_t& aOut)
return aPDU.Read(aOut); return aPDU.Read(aOut);
} }
inline nsresult
UnpackPDU(DaemonSocketPDU& aPDU, int64_t& aOut)
{
return aPDU.Read(aOut);
}
inline nsresult
UnpackPDU(DaemonSocketPDU& aPDU, uint64_t& aOut)
{
return aPDU.Read(aOut);
}
inline nsresult
UnpackPDU(DaemonSocketPDU& aPDU, float& aOut)
{
return aPDU.Read(aOut);
}
inline nsresult
UnpackPDU(DaemonSocketPDU& aPDU, double& aOut)
{
return aPDU.Read(aOut);
}
inline nsresult inline nsresult
UnpackPDU(DaemonSocketPDU& aPDU, DaemonSocketPDUHeader& aOut) UnpackPDU(DaemonSocketPDU& aPDU, DaemonSocketPDUHeader& aOut)
{ {

Просмотреть файл

@ -73,6 +73,26 @@ public:
return Read(&aValue, sizeof(aValue)); return Read(&aValue, sizeof(aValue));
} }
nsresult Read(int64_t& aValue)
{
return Read(&aValue, sizeof(aValue));
}
nsresult Read(uint64_t& aValue)
{
return Read(&aValue, sizeof(aValue));
}
nsresult Read(float& aValue)
{
return Read(&aValue, sizeof(aValue));
}
nsresult Read(double& aValue)
{
return Read(&aValue, sizeof(aValue));
}
uint8_t* Append(size_t aLen); uint8_t* Append(size_t aLen);
nsresult Write(const void* aValue, size_t aLen); nsresult Write(const void* aValue, size_t aLen);
@ -107,6 +127,26 @@ public:
return Write(&aValue, sizeof(aValue)); return Write(&aValue, sizeof(aValue));
} }
nsresult Write(int64_t aValue)
{
return Write(&aValue, sizeof(aValue));
}
nsresult Write(uint64_t aValue)
{
return Write(&aValue, sizeof(aValue));
}
nsresult Write(float aValue)
{
return Write(&aValue, sizeof(aValue));
}
nsresult Write(double aValue)
{
return Write(&aValue, sizeof(aValue));
}
protected: protected:
UnixSocketBuffer(); UnixSocketBuffer();