SERVICE
#######

GENERAL
=======

The Service VHDL generation closely follows the general RTPS IDL interface generation.
For each Service (i.e. .srv File) two files are generated, a server and a client file.
Each file contains both encoding and decoding functionality (similar to the key_holder files).
The code generation follows the normal code generation for encoding and decoding with following changes:

*   Encoding and Decoding stages get a "RQ_"or "RR_" prepended to the <NAME> to differentiate between 
    Request and Response message members, respectively.
    e.g. GET_A -> GET_RQ_A, WRITE_SUM -> WRITE_RR_SUM
*   Similar to the previous point, the <SERVICENAME>_package differentiates the MAX_* sizes of the Request 
    and Response message members.
    e.g. MAX_A_SIZE -> MAX_RQ_A_SIZE, MAX_SUM_SIZE -> MAX_RR_SUM_SIZE
*   The <SERVICENAME>_package calculates both a maximum request and response message size, named 
    MAX_<SERVICENAME>_RQ_SIZE and MAX_<SERVICENAME>_RR_SIZE, respectively.
    The maximum includes the service overhead bytes that are contained in the DDS Payloads. The constant 
    SERVICE_OVERHEAD_BYTES from ros_package gives this overhead bytes.
    
    
ACTION
######

