Exemple #1
0
  protected void processRequest(final HttpServletRequest req, final HttpServletResponse resp)
      throws ServletException, IOException {

    final Boolean[] isRunning = new Boolean[] {true};

    final DataLoader dataLoader = DataLoader.getInstance();

    resp.setContentType("video/mpeg");
    final IDataLoaderCallback callback =
        new IDataLoaderCallback() {
          @Override
          public void dataReceived(byte[] bytes) {
            try {
              resp.getOutputStream().write(bytes);
            } catch (Throwable e) {
              isRunning[0] = false;
            } finally {
              dataLoader.removeCallback(this);
            }
          }
        };
    dataLoader.addCallback(callback);

    synchronized (dataLoader) {
      String ipParam = req.getParameter(KEY_IP);
      if (ipParam == null || ipParam.trim().equals("")) {
        ipParam = "192.168.8.156";
      }
      final String ip = ipParam;

      String user = req.getParameter(KEY_USER);
      String pw = req.getParameter(KEY_PASSWORD);

      if (user == null || user.trim().equals("")) {
        user = "******";
      }
      if (pw == null || pw.trim().equals("")) {
        pw = "password";
      }
      dataLoader.init(ip, user, pw);
    }

    while (isRunning[0]) {
      try {
        Thread.sleep(1000L);
      } catch (Exception e) {
        isRunning[0] = false;
        dataLoader.removeCallback(callback);
        break;
      }
    }
  }