def forward(self, obj):
assert isinstance(obj, (IncomingMessage, MessageStatus)), '<STR_LIT>'.format(obj)<EOL>clients = self.choose_clients(obj)<EOL>if Parallel:<EOL><INDENT>pll = Parallel(self._forward_object_to_client)<EOL>for client in clients:<EOL><INDENT>pll(client, obj)<EOL><DEDENT>results, errors = pll.join()<EOL>if errors:<EOL><INDENT>raise errors[<NUM_LIT:0>]<EOL><DEDENT><DEDENT>else:<EOL><INDENT>for client in clients:<EOL><INDENT>self._forward_object_to_client(client, obj)<EOL><DEDENT><DEDENT>
Forward an object to clients.

        :param obj: The object to be forwarded
        :type obj: smsframework.data.IncomingMessage|smsframework.data.MessageStatus
        :raises Exception: if any of the clients failed