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