#ifndef CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_INPUT_EVENT_FILTER_H_
#define CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_INPUT_EVENT_FILTER_H_
#include "base/basictypes.h"
#include "base/callback.h"
#include "base/compiler_specific.h"
#include "content/port/common/input_event_ack_state.h"
#include "content/renderer/input/input_handler_manager_client.h"
#include "ui/gfx/vector2d_f.h"
namespace blink {
class WebInputEvent;
}
namespace content {
class SynchronousInputEventFilter : public InputHandlerManagerClient {
 public:
  SynchronousInputEventFilter();
  virtual ~SynchronousInputEventFilter();
  InputEventAckState HandleInputEvent(int routing_id,
                                      const blink::WebInputEvent& input_event);
  
  virtual void SetBoundHandler(const Handler& handler) OVERRIDE;
  virtual void DidAddInputHandler(int routing_id,
                                  cc::InputHandler* input_handler) OVERRIDE;
  virtual void DidRemoveInputHandler(int routing_id) OVERRIDE;
  virtual void DidOverscroll(int routing_id,
                             const DidOverscrollParams& params) OVERRIDE;
  virtual void DidStopFlinging(int routing_id) OVERRIDE;
 private:
  void SetBoundHandlerOnUIThread(const Handler& handler);
  Handler handler_;
};
}  
#endif