|
|
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.