If your block has one input, one output, or one input and one output, you should design your block as an extension of
For all other cases your block will have to define the necessary inputs and outputs as fields of your new block class.
Depending on the type of the signals you will design your class as a template class or you will define it with a given type.
If your block is not time dependent, you will simply set the timestamp of the output to the same value as the timestamp of the input. If sampling time matters, you will have to calculate the timestamp of the output from the timestamp of the input and inner workings of your block.
There are cases that your blocks produces signals which do not depend on input signals from other blocks. It might generate its output signals from various other sources and will set its timestamp to a actual system time, or the time the original source signal was generated.