Demonstrate the basic functionality of the File System
[chromium-blink-merge.git] / chrome / common / mac / objc_method_swizzle.h
blobf756fa3af88ba11453b7a6d909e32eafdbdaa09e
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_COMMON_MAC_OBJC_METHOD_SWIZZLE_H_
6 #define CHROME_COMMON_MAC_OBJC_METHOD_SWIZZLE_H_
8 #import <objc/runtime.h>
10 // You should think twice every single time you use anything from this
11 // namespace.
12 namespace ObjcEvilDoers {
14 // This is similar to class_getInstanceMethod(), except that it
15 // returns NULL if |aClass| does not directly implement |aSelector|.
16 Method GetImplementedInstanceMethod(Class aClass, SEL aSelector);
18 // Exchanges the implementation of |originalSelector| and
19 // |alternateSelector| within |aClass|. Both selectors must be
20 // implemented directly by |aClass|, not inherited. The IMP returned
21 // is for |originalSelector| (for purposes of forwarding).
22 IMP SwizzleImplementedInstanceMethods(
23 Class aClass, const SEL originalSelector, const SEL alternateSelector);
25 } // namespace ObjcEvilDoers
27 #endif // CHROME_COMMON_MAC_OBJC_METHOD_SWIZZLE_H_