String message_id = base_message.getID();
LegacyData ld = (LegacyData)legacy_data.get( message_id ); //determine if a legacy BT message
if( ld != null ) { //legacy message, use pre-configured values
return new RawMessageImpl( base_message, raw_buffs, ld.priority, ld.is_no_delay, ld.to_remove );
}
// these should really be properties of the message...
int priority;
boolean no_delay = true;
if ( message_id == AZMessage.ID_AZ_HANDSHAKE ){
// handshake needs to go out first - if not high then bitfield can get in front of it...
priority = RawMessage.PRIORITY_HIGH;
}else if ( message_id == AZMessage.ID_AZ_HAVE ){
priority = RawMessage.PRIORITY_LOW;
no_delay = false;
}else{
//standard message, ensure that protocol messages have wire priority over data payload messages
priority = base_message.getType() == Message.TYPE_DATA_PAYLOAD ? RawMessage.PRIORITY_LOW : RawMessage.PRIORITY_NORMAL;
}
return new RawMessageImpl( base_message, raw_buffs, priority, no_delay, null );
}