コード例 #1
0
ファイル: GAnalyzer.java プロジェクト: vaginessa/aids
  public void doWork(Context context) {
    AIDSDBHelper aidsDBHelper = AIDSDBHelper.getInstance(context);

    Calendar calendar = Calendar.getInstance();
    long currentTimeMillis = calendar.getTimeInMillis();
    Calendar prevCalendar = Calendar.getInstance();
    prevCalendar.add(Calendar.SECOND, -1 * RunEvery);
    long prevTimeMillis = prevCalendar.getTimeInMillis();

    aidsDBHelper.insertLog(
        String.format("Running GAnalyzer for %s-%s", calendar.toString(), prevCalendar.toString()));
    String gModelName = "_global" + calendar.get(Calendar.HOUR_OF_DAY);

    // get global model
    IEModel gModel = aidsDBHelper.getIEModel(gModelName);

    if (gModel == null) {
      // first invocation
      gModel = new IEModel();
      gModel.ProcessName = gModelName;
      gModel.FromTimeStamp = prevTimeMillis;
      gModel.ToTimeStamp = currentTimeMillis;
      gModel.Age = 1;

      aidsDBHelper.insertIEModel(gModel);
    }

    // get IEModels of processes for past hour
    HashMap<String, IEModel> processMap =
        getIEModelsForProcesses(aidsDBHelper, prevTimeMillis, currentTimeMillis);

    for (String pName : processMap.keySet()) {
      IEModel newModel = processMap.get(pName);

      // update the model with current generation
      gModel.ToTimeStamp = currentTimeMillis;
      gModel.CPULow += newModel.CPULow;
      gModel.CPUMid += newModel.CPUMid;
      gModel.CPUHigh += newModel.CPUHigh;
      gModel.CPUCounter += newModel.CPUCounter;
      gModel.Age = gModel.Age + 1; // and increment the age

      aidsDBHelper.updateIEModel(gModel);
    }
  }