<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def stream(self, report, callback=None):
 """Queue data for streaming Args: report (IOTileReport):
 A report object to stream to a client callback (callable):
 An optional callback that will be called with a bool value of True when this report actually gets streamed. If the client disconnects and the report is dropped instead, callback will be called with False """


        conn_id = self._find_connection(self.conn_string)

        if isinstance(report, BroadcastReport):
            self.adapter.notify_event_nowait(self.conn_string, 'broadcast', report)
        elif conn_id is not None:
            self.adapter.notify_event_nowait(self.conn_string, 'report', report)

        if callback is not None:
            callback(isinstance(report, BroadcastReport) or (conn_id is not None))