int addField(int handle, unsigned int field_id, char *field_value, int numfieldvalues) { int i; int ret = 0; long field_length = strlen(field_value); ret = writeLE16(handle, field_id, CURRENT_POS); field_length += 3; ret += writeLE32(handle, field_length, CURRENT_POS); field_length -= 3; ret += write(handle, (unsigned long)&numfieldvalues << 1, 1); //numfields the 01 above ret = writeLE16(handle, field_length, CURRENT_POS); for(i=0; i<field_length; i++) { write(handle, (unsigned long)&field_value[i] << 1, 1); ret += 1; } // ret += write(handle, (unsigned long) &field_value << 1, field_length + 1); return(ret); }
void OutputMessage::addU16(uint16_t val) { m_buffer.grow(m_buffer.size() + 1); if (m_order == ByteOrder::BigEndian) writeBE16(&m_buffer[m_pos], val); else writeLE16(&m_buffer[m_pos], val); m_pos += 2; }