Beispiel #1
0
/***
 * Get/Set the payload bytes for this layer
 * @function bytes
 * @tparam[opt] table bytes a list of bytes
 * @treturn table bytes
 */
int l_raw_ref::l_bytes(lua_State *l)
{
	RawLayer *o = l_raw_ref::extract(l, 1);
	if (lua_gettop(l) == 1) {
		lua_newtable(l);
		const byte *bytes = o->GetPayload().GetRawPointer();
		for (size_t i = 0; i < o->GetPayloadSize(); ++i) {
			l_data_type<int>(*bytes).push(l);
			lua_rawseti(l, -2, i + 1);
			++bytes;
		}
	} else {
		std::vector<byte> bytes;
		_fill_byte_vec(bytes, l, 2);
		o->SetPayload(&bytes[0], bytes.size());
	}
	return 1;
}