コード例 #1
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;
	}
	
	// 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);
}
コード例 #2
0
//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';
}
コード例 #3
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';
}
コード例 #4
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);
}
コード例 #5
0
//virtual 
void LLSDMessageReader::getString(const char *block, const char *var, 
						   std::string& outstr, S32 blocknum)
{
	outstr = getLLSD(mMessage, block, var, blocknum).asString();
}
コード例 #6
0
//virtual 
void LLSDMessageReader::getIPPort(const char *block, const char *var,
								   U16 &port, S32 blocknum)
{
	port = getLLSD(mMessage, block, var, blocknum).asInteger();
}
コード例 #7
0
//virtual 
void LLSDMessageReader::getIPAddr(const char *block, const char *var,
								   U32 &ip, S32 blocknum)
{
	ip = ll_ipaddr_from_sd(getLLSD(mMessage, block, var, blocknum));
}
コード例 #8
0
//virtual 
void LLSDMessageReader::getUUID(const char *block, const char *var,
								 LLUUID &uuid, S32 blocknum)
{
	uuid = getLLSD(mMessage, block, var, blocknum);
}
コード例 #9
0
//virtual 
void LLSDMessageReader::getQuat(const char *block, const char *var,
								 LLQuaternion &q, S32 blocknum)
{
	q = ll_quaternion_from_sd(getLLSD(mMessage, block, var, blocknum));
}
コード例 #10
0
//virtual 
void LLSDMessageReader::getVector3d(const char *block, const char *var, 
							 LLVector3d &vec, S32 blocknum)
{
	vec = ll_vector3d_from_sd(getLLSD(mMessage, block, var, blocknum));
}
コード例 #11
0
//virtual 
void LLSDMessageReader::getF64(const char *block, const char *var,
								F64 &data, S32 blocknum)
{
	data = getLLSD(mMessage, block, var, blocknum);
}
コード例 #12
0
//virtual 
void LLSDMessageReader::getU64(const char *block, const char *var,
								U64 &data, S32 blocknum)
{
	data = ll_U64_from_sd(getLLSD(mMessage, block, var, blocknum));
}
コード例 #13
0
//virtual 
void LLSDMessageReader::getF32(const char *block, const char *var, F32 &data, 
						S32 blocknum)
{
	data = (F32)getLLSD(mMessage, block, var, blocknum).asReal();
}
コード例 #14
0
//virtual 
void LLSDMessageReader::getU16(const char *block, const char *var, U16 &data, 
						S32 blocknum)
{
	data = getLLSD(mMessage, block, var, blocknum).asInteger();
}