|
|
1.1 ! root 1: /* Declare the class Protocol for Objective C programs. ! 2: Copyright (C) 1993 Free Software Foundation, Inc. ! 3: ! 4: This file is part of GNU CC. ! 5: ! 6: GNU CC is free software; you can redistribute it and/or modify ! 7: it under the terms of the GNU General Public License as published by ! 8: the Free Software Foundation; either version 2, or (at your option) ! 9: any later version. ! 10: ! 11: GNU CC is distributed in the hope that it will be useful, ! 12: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 14: GNU General Public License for more details. ! 15: ! 16: You should have received a copy of the GNU General Public License ! 17: along with GNU CC; see the file COPYING. If not, write to ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: /* As a special exception, if you link this library with files ! 21: compiled with GCC to produce an executable, this does not cause ! 22: the resulting executable to be covered by the GNU General Public License. ! 23: This exception does not however invalidate any other reasons why ! 24: the executable file might be covered by the GNU General Public License. */ ! 25: ! 26: #ifndef __Protocol_INCLUDE_GNU ! 27: #define __Protocol_INCLUDE_GNU ! 28: ! 29: #include "objc/Object.h" ! 30: ! 31: @interface Protocol : Object ! 32: { ! 33: @private ! 34: char *protocol_name; ! 35: struct objc_protocol_list *protocol_list; ! 36: struct objc_method_description_list *instance_methods, *class_methods; ! 37: } ! 38: ! 39: /* Obtaining attributes intrinsic to the protocol */ ! 40: ! 41: - (const char *)name; ! 42: ! 43: /* Testing protocol conformance */ ! 44: ! 45: - (BOOL) conformsTo: (Protocol *)aProtocolObject; ! 46: ! 47: /* Looking up information specific to a protocol */ ! 48: ! 49: - (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel; ! 50: - (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel; ! 51: ! 52: @end ! 53: ! 54: ! 55: ! 56: ! 57: #endif __Protocol_INCLUDE_GNU
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.