|
|
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
1.1.1.2 ! root 18: the Free Software Foundation, 59 Temple Place - Suite 330,
! 19: Boston, MA 02111-1307, USA. */
1.1 root 20:
21: /* As a special exception, if you link this library with files
22: compiled with GCC to produce an executable, this does not cause
23: the resulting executable to be covered by the GNU General Public License.
24: This exception does not however invalidate any other reasons why
25: the executable file might be covered by the GNU General Public License. */
26:
27: #ifndef __Protocol_INCLUDE_GNU
28: #define __Protocol_INCLUDE_GNU
29:
30: #include "objc/Object.h"
31:
32: @interface Protocol : Object
33: {
34: @private
35: char *protocol_name;
36: struct objc_protocol_list *protocol_list;
37: struct objc_method_description_list *instance_methods, *class_methods;
38: }
39:
40: /* Obtaining attributes intrinsic to the protocol */
41:
42: - (const char *)name;
43:
44: /* Testing protocol conformance */
45:
46: - (BOOL) conformsTo: (Protocol *)aProtocolObject;
47:
48: /* Looking up information specific to a protocol */
49:
50: - (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel;
51: - (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel;
52:
53: @end
54:
55:
56:
57:
58: #endif __Protocol_INCLUDE_GNU
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.