55 jassert (((
ssize_t) sizeInBytes) >= 0);
109 return size == dataSize
130 zeromem (data + size,
newSize - size);
163 memset (data, (
int) value, size);
194 setSize (size + numBytes,
false);
223 auto* d =
static_cast<const char*
> (
src);
232 if ((
size_t) offset +
num > size)
233 num = size - (
size_t) offset;
241 auto* d =
static_cast<char*
> (
dst);
245 zeromem (d, (
size_t) -offset);
251 if ((
size_t) offset +
num > size)
276 while (
numBits > 0 && (
size_t)
byte < size)
298 while (
numBits > 0 && (
size_t)
byte < size)
332 auto c =
t.getAndAdvance();
334 if (
c >=
'0' &&
c <=
'9') {
byte |=
c -
'0';
break; }
335 if (
c >=
'a' &&
c <=
'z') {
byte |=
c - (
'a' - 10);
break; }
336 if (
c >=
'A' &&
c <=
'Z') {
byte |=
c - (
'A' - 10);
break; }
340 setSize (
static_cast<size_t> (dest - data));
346 *dest++ = (
char)
byte;
351static const char base64EncodingTable[] =
".ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+";
355 auto numChars = ((size << 3) + 5) / 6;
365 for (
size_t i = 0; i <
numChars; ++i)
372static const char base64DecodingTable[] =
374 63, 0, 0, 0, 0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
375 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
376 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
402 if (isPositiveAndBelow (
c, numElementsInArray (base64DecodingTable)))
bool isEmpty() const noexcept
int size() const noexcept
ElementType * data() noexcept
static CharPointerType1 find(CharPointerType1 textToSearch, const CharPointerType2 substringToLookFor) noexcept
void malloc(SizeType newNumElements, size_t elementSize=sizeof(ElementType))
void allocate(SizeType newNumElements, bool initialiseToZero)
void realloc(SizeType newNumElements, size_t elementSize=sizeof(ElementType))
void copyFrom(const void *srcData, int destinationOffset, size_t numBytes) noexcept
void ensureSize(const size_t minimumSize, bool initialiseNewSpaceToZero=false)
bool fromBase64Encoding(StringRef encodedString)
String toBase64Encoding() const
bool matches(const void *data, size_t dataSize) const noexcept
void append(const void *data, size_t numBytes)
void setSize(const size_t newSize, bool initialiseNewSpaceToZero=false)
void copyTo(void *destData, int sourceOffset, size_t numBytes) const noexcept
void insert(const void *dataToInsert, size_t numBytesToInsert, size_t insertPosition)
void swapWith(MemoryBlock &other) noexcept
int getBitRange(size_t bitRangeStart, size_t numBitsToRead) const noexcept
void replaceWith(const void *data, size_t numBytes)
void loadFromHexString(StringRef sourceHexString)
void removeSection(size_t startByte, size_t numBytesToRemove)
MemoryBlock & operator=(const MemoryBlock &)
void fillWith(uint8 valueToUse) noexcept
bool operator!=(const MemoryBlock &other) const noexcept
void setBitRange(size_t bitRangeStart, size_t numBits, int binaryNumberToApply) noexcept
bool operator==(const MemoryBlock &other) const noexcept
String::CharPointerType text
static String fromUTF8(const char *utf8buffer, int bufferSizeBytes=-1)
int getIntValue() const noexcept