예제 #1
0
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);
}
예제 #2
0
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;
}