Пример #1
0
 /*
  * @param cookie. Need pass a int[] to point requery adapters.
  */
 @Override
 protected void onInsertComplete(int token, Object cookie, Uri uri) {
   LogUtils.d(TAG, "onInsertComplete token=" + token + " uri=" + uri);
   if (cookie instanceof QueryListener) {
     QueryListener listener = (QueryListener) cookie;
     listener.onInsertComplete(token, uri);
   }
 }
Пример #2
0
 /*
  * @param cookie. Need pass a int[] to point requery adapters.
  */
 @Override
 protected void onUpdateComplete(int token, Object cookie, int result) {
   LogUtils.d(TAG, "onUpdateComplete token=" + token + " result=" + result);
   if (cookie instanceof QueryListener) {
     QueryListener listener = (QueryListener) cookie;
     listener.onUpdateComplete(token, result);
   }
 }
Пример #3
0
 @Override
 protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
   LogUtils.d(TAG, "onQueryComplete token=" + token);
   if (cookie instanceof QueryListener) {
     QueryListener listener = (QueryListener) cookie;
     listener.onQueryComplete(token, cursor);
   } else {
     cursor.close();
     LogUtils.e(TAG, "cookie is another object: " + cookie);
   }
 }
Пример #4
0
 @Override
 public synchronized void failed(Query<V> query) {
   for (QueryListener<V> listener : this) {
     listener.failed(query);
   }
 }
Пример #5
0
 @Override
 public synchronized void responseReceived(Query<V> query) {
   for (QueryListener<V> listener : this) {
     listener.responseReceived(query);
   }
 }
Пример #6
0
 @Override
 public synchronized void requestSent(Query<V> query) {
   for (QueryListener<V> listener : this) {
     listener.requestSent(query);
   }
 }
 @Override
 /*called once doInBackground is finished*/
 protected void onPostExecute(String result) {
   activity.receiveResult(result);
 }
Пример #8
0
  /**
   * Processes the query iterator.
   *
   * @param sc server command
   * @throws IOException I/O exception
   */
  private void query(final ServerCmd sc) throws IOException {
    // iterator argument (query or identifier)
    String arg = in.readString();

    String err = null;
    try {
      final QueryListener qp;
      if (sc == ServerCmd.QUERY) {
        final String query = arg;
        qp = new QueryListener(query, context);
        arg = Integer.toString(id++);
        queries.put(arg, qp);
        // send {ID}0
        out.writeString(arg);
        // write log file
        log.write(this, sc + "(" + arg + ')', query, OK, perf);
      } else {
        // find query process
        qp = queries.get(arg);

        // ID has already been removed
        if (qp == null) {
          if (sc != ServerCmd.CLOSE) throw new IOException("Unknown Query ID: " + arg);
        } else if (sc == ServerCmd.BIND) {
          final String key = in.readString();
          final String val = in.readString();
          final String typ = in.readString();
          qp.bind(key, val, typ);
          log.write(this, sc + "(" + arg + ')', key, val, typ, OK, perf);
        } else if (sc == ServerCmd.ITER) {
          qp.execute(true, out, true);
        } else if (sc == ServerCmd.EXEC) {
          qp.execute(false, out, true);
        } else if (sc == ServerCmd.INFO) {
          out.print(qp.info());
        } else if (sc == ServerCmd.OPTIONS) {
          out.print(qp.options());
        } else if (sc == ServerCmd.CLOSE) {
          queries.remove(arg);
        } else if (sc == ServerCmd.NEXT) {
          throw new Exception("Protocol for query iteration is out-of-dated.");
        }
        // send 0 as end marker
        out.write(0);
      }
      // send 0 as success flag
      out.write(0);
      // write log file (bind and execute have been logged before)
      if (sc != ServerCmd.BIND) log.write(this, sc + "(" + arg + ')', OK, perf);
    } catch (final Exception ex) {
      // log exception (static or runtime)
      err = ex.getMessage();
      log.write(this, sc + "(" + arg + ')', ERROR_C + err);
      queries.remove(arg);
    }
    if (err != null) {
      // send 0 as end marker, 1 as error flag, and {MSG}0
      out.write(0);
      out.write(1);
      out.writeString(err);
    }
    out.flush();
  }