Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
78
Src/nde/osx/Binary32Field.cpp
Normal file
78
Src/nde/osx/Binary32Field.cpp
Normal file
|
@ -0,0 +1,78 @@
|
|||
/* ---------------------------------------------------------------------------
|
||||
Nullsoft Database Engine
|
||||
--------------------
|
||||
codename: Near Death Experience
|
||||
--------------------------------------------------------------------------- */
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
|
||||
Binary32Field Class
|
||||
|
||||
--------------------------------------------------------------------------- */
|
||||
|
||||
#include "nde.h"
|
||||
#include "Binary32Field.h"
|
||||
#include "ndestring.h"
|
||||
//---------------------------------------------------------------------------
|
||||
Binary32Field::Binary32Field(const uint8_t *_Data, size_t len) : BinaryField(_Data, len)
|
||||
{
|
||||
InitField();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
void Binary32Field::InitField(void)
|
||||
{
|
||||
Type = FIELD_BINARY32;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
Binary32Field::Binary32Field()
|
||||
{
|
||||
InitField();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
void Binary32Field::ReadTypedData(const uint8_t *data, size_t len)
|
||||
{
|
||||
uint32_t c;
|
||||
size_t pos = 0;
|
||||
|
||||
CHECK_INT(len); //len-=4;
|
||||
c = GET_INT(); pos += 4;
|
||||
if (c && c<=len)
|
||||
{
|
||||
size_t size = c;
|
||||
uint8_t *buf = (uint8_t *)malloc(size);
|
||||
GET_BINARY(buf, data, c, pos);
|
||||
Data = CFDataCreateWithBytesNoCopy(NULL, buf, size, kCFAllocatorMalloc);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
void Binary32Field::WriteTypedData(uint8_t *data, size_t len)
|
||||
{
|
||||
uint32_t c;
|
||||
size_t pos = 0;
|
||||
|
||||
CHECK_INT(len); //len-=4;
|
||||
|
||||
size_t Size = CFDataGetLength(Data);
|
||||
if (Data && Size<=len)
|
||||
{
|
||||
c = CFDataGetLength(Data);
|
||||
PUT_INT(c); pos += 4;
|
||||
CFDataGetBytes(Data, CFRangeMake(0, Size), data+pos);
|
||||
}
|
||||
else
|
||||
{
|
||||
PUT_INT(0);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
size_t Binary32Field::GetDataSize(void)
|
||||
{
|
||||
if (!Data)
|
||||
return 4;
|
||||
return CFDataGetLength(Data) + 4;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue