// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SERVICES_PREDICTION_INPUT_INFO_H_
#define SERVICES_PREDICTION_INPUT_INFO_H_

#include "mojo/services/prediction/public/interfaces/prediction.mojom.h"

namespace prediction {

class InputInfo {
 public:
  InputInfo(mojo::String& input, int input_size);
  ~InputInfo();

  int* GetCodepoints();
  int* GetXCoordinates();
  int* GetYCoordinates();
  int* GetPointerIds();
  int* GetTimes();
  int GetRealSize();

 private:
  void ProcessInput(mojo::String& input, int input_size);

  int real_size_;
  int* codepoints_;
  int* x_coordinates_;
  int* y_coordinates_;
  int* pointer_ids_;
  int* times_;

};  // class InputInfo

}  // namespace prediction

#endif  // SERVICES_PREDICTION_INPUT_INFO_H_
