//virtual void LLSDMessageReader::getBinaryData(const char *block, const char *var, void *datap, S32 size, S32 blocknum, S32 max_size) { std::vector<U8> data = getLLSD(mMessage, block, var, blocknum); S32 data_size = (S32)data.size(); if (size && data_size != size) { return; } if (max_size < data_size) { data_size = max_size; } // Calls to memcpy will fail if data_size is not positive. // Phoenix 2009-02-27 if(data_size <= 0) { return; } memcpy(datap, &(data[0]), data_size); }
//virtual void LLSDMessageReader::getString(const char *block, const char *var, S32 buffer_size, char *buffer, S32 blocknum) { std::string data = getLLSD(mMessage, block, var, blocknum); S32 data_size = data.size(); if (data_size >= buffer_size) { data_size = buffer_size - 1; } memcpy(buffer, data.data(), data_size); buffer[data_size] = '\0'; }
//virtual void LLSDMessageReader::getString(const char *block, const char *var, S32 buffer_size, char *buffer, S32 blocknum) { if(buffer_size <= 0) { LL_WARNS() << "buffer_size <= 0" << LL_ENDL; return; } std::string data = getLLSD(mMessage, block, var, blocknum); S32 data_size = data.size(); if (data_size >= buffer_size) { data_size = buffer_size - 1; } memcpy(buffer, data.data(), data_size); buffer[data_size] = '\0'; }
//virtual void LLSDMessageReader::getBinaryData(const char *block, const char *var, void *datap, S32 size, S32 blocknum, S32 max_size) { std::vector<U8> data = getLLSD(mMessage, block, var, blocknum); S32 data_size = (S32)data.size(); if (size && data_size != size) { return; } if (max_size < data_size) { data_size = max_size; } memcpy(datap, &(data[0]), data_size); }
//virtual void LLSDMessageReader::getString(const char *block, const char *var, std::string& outstr, S32 blocknum) { outstr = getLLSD(mMessage, block, var, blocknum).asString(); }
//virtual void LLSDMessageReader::getIPPort(const char *block, const char *var, U16 &port, S32 blocknum) { port = getLLSD(mMessage, block, var, blocknum).asInteger(); }
//virtual void LLSDMessageReader::getIPAddr(const char *block, const char *var, U32 &ip, S32 blocknum) { ip = ll_ipaddr_from_sd(getLLSD(mMessage, block, var, blocknum)); }
//virtual void LLSDMessageReader::getUUID(const char *block, const char *var, LLUUID &uuid, S32 blocknum) { uuid = getLLSD(mMessage, block, var, blocknum); }
//virtual void LLSDMessageReader::getQuat(const char *block, const char *var, LLQuaternion &q, S32 blocknum) { q = ll_quaternion_from_sd(getLLSD(mMessage, block, var, blocknum)); }
//virtual void LLSDMessageReader::getVector3d(const char *block, const char *var, LLVector3d &vec, S32 blocknum) { vec = ll_vector3d_from_sd(getLLSD(mMessage, block, var, blocknum)); }
//virtual void LLSDMessageReader::getF64(const char *block, const char *var, F64 &data, S32 blocknum) { data = getLLSD(mMessage, block, var, blocknum); }
//virtual void LLSDMessageReader::getU64(const char *block, const char *var, U64 &data, S32 blocknum) { data = ll_U64_from_sd(getLLSD(mMessage, block, var, blocknum)); }
//virtual void LLSDMessageReader::getF32(const char *block, const char *var, F32 &data, S32 blocknum) { data = (F32)getLLSD(mMessage, block, var, blocknum).asReal(); }
//virtual void LLSDMessageReader::getU16(const char *block, const char *var, U16 &data, S32 blocknum) { data = getLLSD(mMessage, block, var, blocknum).asInteger(); }