xref: /dflybsd-src/contrib/gcc-4.7/libobjc/objc/Object.h (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino /* Interface for the Object class for Objective-C.
2*e4b17023SJohn Marino    Copyright (C) 1993, 1994, 1995, 2009, 2010 Free Software Foundation, Inc.
3*e4b17023SJohn Marino 
4*e4b17023SJohn Marino This file is part of GCC.
5*e4b17023SJohn Marino 
6*e4b17023SJohn Marino GCC is free software; you can redistribute it and/or modify it
7*e4b17023SJohn Marino under the terms of the GNU General Public License as published by the
8*e4b17023SJohn Marino Free Software Foundation; either version 3, or (at your option) any
9*e4b17023SJohn Marino later version.
10*e4b17023SJohn Marino 
11*e4b17023SJohn Marino GCC is distributed in the hope that it will be useful, but WITHOUT
12*e4b17023SJohn Marino ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13*e4b17023SJohn Marino FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
14*e4b17023SJohn Marino License for more details.
15*e4b17023SJohn Marino 
16*e4b17023SJohn Marino Under Section 7 of GPL version 3, you are granted additional
17*e4b17023SJohn Marino permissions described in the GCC Runtime Library Exception, version
18*e4b17023SJohn Marino 3.1, as published by the Free Software Foundation.
19*e4b17023SJohn Marino 
20*e4b17023SJohn Marino You should have received a copy of the GNU General Public License and
21*e4b17023SJohn Marino a copy of the GCC Runtime Library Exception along with this program;
22*e4b17023SJohn Marino see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23*e4b17023SJohn Marino <http://www.gnu.org/licenses/>.  */
24*e4b17023SJohn Marino 
25*e4b17023SJohn Marino 
26*e4b17023SJohn Marino #ifndef __object_INCLUDE_GNU
27*e4b17023SJohn Marino #define __object_INCLUDE_GNU
28*e4b17023SJohn Marino 
29*e4b17023SJohn Marino #include "objc.h"
30*e4b17023SJohn Marino 
31*e4b17023SJohn Marino #ifdef __cplusplus
32*e4b17023SJohn Marino extern "C" {
33*e4b17023SJohn Marino #endif
34*e4b17023SJohn Marino 
35*e4b17023SJohn Marino /* The Object class is a very minimal root class included with the
36*e4b17023SJohn Marino    runtime.  It is used as superclass for the two classes included
37*e4b17023SJohn Marino    with the runtime, Protocol and NXConstantString.
38*e4b17023SJohn Marino 
39*e4b17023SJohn Marino    Because Objective-C allows multiple root classes, you can define
40*e4b17023SJohn Marino    your own root class, different from Object.
41*e4b17023SJohn Marino 
42*e4b17023SJohn Marino    In particular, a Foundation library (such as GNUstep Base) is
43*e4b17023SJohn Marino    expected to provide its own root class (typically called NSObject),
44*e4b17023SJohn Marino    fully integrated with the library's own high-level features.  It is
45*e4b17023SJohn Marino    expected that you should always use and interact with NSObject, and
46*e4b17023SJohn Marino    mostly ignore Object.  */
47*e4b17023SJohn Marino 
48*e4b17023SJohn Marino /* All classes are derived from Object.  As such, this is the overhead
49*e4b17023SJohn Marino    tacked onto those objects.  */
50*e4b17023SJohn Marino @interface Object
51*e4b17023SJohn Marino {
52*e4b17023SJohn Marino   Class isa; /* A pointer to the instance's class structure.  */
53*e4b17023SJohn Marino }
54*e4b17023SJohn Marino - (Class)class;
55*e4b17023SJohn Marino - (BOOL)isEqual: (id)anObject;
56*e4b17023SJohn Marino @end
57*e4b17023SJohn Marino 
58*e4b17023SJohn Marino #ifdef __cplusplus
59*e4b17023SJohn Marino }
60*e4b17023SJohn Marino #endif
61*e4b17023SJohn Marino 
62*e4b17023SJohn Marino #endif
63