<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _fetch_data(self):
 """ Retrieve frame data within the current view window. This method will adjust the view window if it goes out-of-bounds. """

        self._view_col0 = clamp(self._view_col0, 0, self._max_col0)
        self._view_row0 = clamp(self._view_row0, 0, self._max_row0)
        self._view_ncols = clamp(self._view_ncols, 0,
                                 self._conn.frame_ncols - self._view_col0)
        self._view_nrows = clamp(self._view_nrows, 0,
                                 self._conn.frame_nrows - self._view_row0)
        self._conn.fetch_data(
            self._view_row0,
            self._view_row0 + self._view_nrows,
            self._view_col0,
            self._view_col0 + self._view_ncols)