// 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 CC_DEBUG_FRAME_TIMING_REQUEST_H_
#define CC_DEBUG_FRAME_TIMING_REQUEST_H_

#include "ui/gfx/geometry/rect.h"

namespace cc {

// This class represents a request to record frame timing information about the
// given rect (in layer space) and an associated request id. When this request
// is propagated to the active LayerImpl, it will cause events to be saved in
// FrameTimingTracker, which in turn can be consumed by the requester.
class FrameTimingRequest {
 public:
  FrameTimingRequest();
  FrameTimingRequest(int64_t request_id, const gfx::Rect& rect);

  // Return the ID for the request.
  int64_t id() const { return id_; }

  // Return the layer space rect for this request.
  const gfx::Rect& rect() const { return rect_; }

 private:
  int64_t id_;
  gfx::Rect rect_;
};

}  // namespace cc

#endif  // CC_DEBUG_FRAME_TIMING_REQUEST_H_
