10e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier/*
20e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * Copyright (C) 2012 The Android Open Source Project
30e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier *
40e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * Licensed under the Apache License, Version 2.0 (the "License");
50e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * you may not use this file except in compliance with the License.
60e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * You may obtain a copy of the License at
70e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier *
80e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier *      http://www.apache.org/licenses/LICENSE-2.0
90e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier *
100e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * Unless required by applicable law or agreed to in writing, software
110e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * distributed under the License is distributed on an "AS IS" BASIS,
120e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * See the License for the specific language governing permissions and
140e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier * limitations under the License.
150e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier */
160e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier
17fc0e3219edc9a5bf81b166e82fd5db2796eb6a0dBrian Carlstrom#ifndef ART_RUNTIME_CLOSURE_H_
18fc0e3219edc9a5bf81b166e82fd5db2796eb6a0dBrian Carlstrom#define ART_RUNTIME_CLOSURE_H_
190e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier
200e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartiernamespace art {
210e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier
220e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartierclass Thread;
230e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier
240e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartierclass Closure {
250e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier public:
260e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier  virtual ~Closure() { }
270e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier  virtual void Run(Thread* self) = 0;
280e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier};
290e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier
300e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier}  // namespace art
310e4627e593bc39f8e3d89c31f8977d55054c07ccMathieu Chartier
32fc0e3219edc9a5bf81b166e82fd5db2796eb6a0dBrian Carlstrom#endif  // ART_RUNTIME_CLOSURE_H_
33