public AgillaTSReqMsgJ(AgillaTSReqMsg msg) { this.dest = msg.get_dest(); this.reply = msg.get_reply(); this.op = msg.get_op(); this.template = new Tuple(msg.get_template_flags()); short[] tupleData = msg.get_template_data(); int byteIndex = 0; for (int i = 0; i < msg.get_template_size(); i++) { AgillaStackVariable sv = VarUtil.getField(byteIndex, tupleData); template.addField(sv); byteIndex += sv.getSize() + 1; // add one for sv type } }
public net.tinyos.message.Message toTOSMsg() { AgillaTSReqMsg msg = new AgillaTSReqMsg(); msg.set_dest(dest); msg.set_reply(reply); msg.set_op(op); msg.set_template_flags(template.flags()); msg.set_template_size(template.getSize()); short dataIndex = 0; for (int i = 0; i < template.size(); i++) { AgillaStackVariable sv = template.getField(i); short[] bytes = sv.toBytes(); msg.setElement_template_data(dataIndex++, sv.getType()); // save type for (int j = 0; j < sv.getSize(); j++) { msg.setElement_template_data(dataIndex++, bytes[j]); // save var } } return msg; }