KWIntercept.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // Licensed under the terms in License.txt
  3. //
  4. // Copyright 2010 Allen Ding. All rights reserved.
  5. //
  6. #import "KiwiConfiguration.h"
  7. #import <objc/runtime.h>
  8. @class KWMessagePattern;
  9. @class KWStub;
  10. #pragma mark - Getting Forwarding Implementations
  11. IMP KWRegularForwardingImplementation(void);
  12. IMP KWStretForwardingImplementation(void);
  13. IMP KWForwardingImplementationForMethodEncoding(const char* encoding);
  14. #pragma mark - Getting Intercept Class Information
  15. BOOL KWObjectIsClass(id anObject);
  16. BOOL KWClassIsInterceptClass(Class aClass);
  17. NSString *KWInterceptClassNameForClass(Class aClass);
  18. Class KWInterceptClassForCanonicalClass(Class canonicalClass);
  19. Class KWRealClassForClass(Class aClass);
  20. #pragma mark - Enabling Intercepting
  21. Class KWSetupObjectInterceptSupport(id anObject);
  22. void KWSetupMethodInterceptSupport(Class interceptClass, SEL aSelector);
  23. #pragma mark - Managing Stubs & Spies
  24. void KWClearStubsAndSpies(void);
  25. #pragma mark - Managing Objects Stubs
  26. void KWAssociateObjectStub(id anObject, KWStub *aStub, BOOL overrideExisting);
  27. void KWClearObjectStubs(id anObject);
  28. void KWClearAllObjectStubs(void);
  29. #pragma mark - Managing Message Spies
  30. void KWAssociateMessageSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern);
  31. void KWClearObjectSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern);
  32. void KWClearAllMessageSpies(void);