Annotation of gcc/objc/Object.h, revision 1.1.1.5

1.1.1.2   root        1: /* Interface for the Object class for Objective-C.
1.1.1.5 ! root        2:    Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
1.1       root        3: 
                      4: This file is part of GNU CC.
                      5: 
1.1.1.2   root        6: GNU CC is free software; you can redistribute it and/or modify it
                      7: under the terms of the GNU General Public License as published by the
                      8: Free Software Foundation; either version 2, or (at your option) any
                      9: later version.
                     10: 
                     11: GNU CC is distributed in the hope that it will be useful, but WITHOUT
                     12: ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
                     13: or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
                     14: License for more details.
1.1       root       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.5 ! root       18: the Free Software Foundation, 59 Temple Place - Suite 330,
        !            19: Boston, MA 02111-1307, USA.  */
1.1       root       20: 
1.1.1.2   root       21: /* As a special exception, if you link this library with files compiled
                     22:    with GCC to produce an executable, this does not cause the resulting
                     23:    executable to be covered by the GNU General Public License.  This
                     24:    exception does not however invalidate any other reasons why the
                     25:    executable file might be covered by the GNU General Public License. */
1.1       root       26: 
                     27: #ifndef __object_INCLUDE_GNU
                     28: #define __object_INCLUDE_GNU
                     29: 
1.1.1.2   root       30: #include <objc/objc.h>
                     31: #include <objc/typedstream.h>
1.1       root       32: 
                     33: /*
1.1.1.2   root       34:  * All classes are derived from Object.  As such,
                     35:  * this is the overhead tacked onto those objects.
1.1       root       36:  */
1.1.1.2   root       37: @interface Object
                     38: {
1.1.1.5 ! root       39:     Class      isa;    /* A pointer to the instance's class structure */
1.1       root       40: }
                     41: 
1.1.1.2   root       42:         /* Initializing classes and instances */
                     43: + initialize;
                     44: - init;
1.1       root       45: 
1.1.1.2   root       46:         /* Creating, freeing, and copying instances */
1.1       root       47: + new;
1.1.1.2   root       48: + alloc;
1.1       root       49: - free;
                     50: - copy;
                     51: - shallowCopy;
1.1.1.2   root       52: - deepen;
1.1       root       53: - deepCopy;
                     54: 
1.1.1.2   root       55:         /* Identifying classes */
1.1.1.5 ! root       56: - (Class)class;
        !            57: - (Class)superClass;
        !            58: - (MetaClass)metaClass;
1.1.1.2   root       59: - (const char *)name;
1.1       root       60: 
1.1.1.2   root       61:         /* Identifying and comparing objects */
1.1       root       62: - self;
1.1.1.2   root       63: - (unsigned int)hash;
                     64: - (BOOL)isEqual:anObject;
1.1.1.3   root       65: - (int)compare:anotherObject;
1.1       root       66: 
1.1.1.2   root       67:         /* Testing object type */
                     68: - (BOOL)isMetaClass;
                     69: - (BOOL)isClass;
                     70: - (BOOL)isInstance;
                     71: 
                     72:         /* Testing inheritance relationships */
1.1.1.5 ! root       73: - (BOOL)isKindOf:(Class)aClassObject;
        !            74: - (BOOL)isMemberOf:(Class)aClassObject;
1.1.1.2   root       75: - (BOOL)isKindOfClassNamed:(const char *)aClassName;
                     76: - (BOOL)isMemberOfClassNamed:(const char *)aClassName;
                     77: 
                     78:         /* Testing class functionality */
                     79: + (BOOL)instancesRespondTo:(SEL)aSel;
                     80: - (BOOL)respondsTo:(SEL)aSel;
                     81: 
                     82:        /* Testing protocol conformance */
                     83: - (BOOL)conformsTo:(Protocol*)aProtocol;
                     84: 
                     85:         /* Introspection */
                     86: + (IMP)instanceMethodFor:(SEL)aSel;
                     87: - (IMP)methodFor:(SEL)aSel;
                     88: + (struct objc_method_description *)descriptionForInstanceMethod:(SEL)aSel;
                     89: - (struct objc_method_description *)descriptionForMethod:(SEL)aSel;
                     90: 
                     91:         /* Sending messages determined at run time */
                     92: - perform:(SEL)aSel;
                     93: - perform:(SEL)aSel with:anObject;
                     94: - perform:(SEL)aSel with:anObject1 with:anObject2;
                     95: 
                     96:         /* Forwarding */
1.1.1.4   root       97: - (retval_t)forward:(SEL)aSel :(arglist_t)argFrame;
                     98: - (retval_t)performv:(SEL)aSel :(arglist_t)argFrame;
1.1.1.2   root       99: 
                    100:         /* Posing */
1.1.1.5 ! root      101: + poseAs:(Class)aClassObject;
        !           102: - (Class)transmuteClassTo:(Class)aClassObject;
1.1.1.2   root      103: 
                    104:         /* Enforcing intentions */
                    105: - subclassResponsibility:(SEL)aSel;
                    106: - notImplemented:(SEL)aSel;
1.1.1.3   root      107: - shouldNotImplement:(SEL)aSel;
1.1.1.2   root      108: 
                    109:         /* Error handling */
                    110: - doesNotRecognize:(SEL)aSel;
                    111: - error:(const char *)aString, ...;
                    112: 
                    113:         /* Archiving */
                    114: + (int)version;
                    115: + setVersion:(int)aVersion;
                    116: + (int)streamVersion: (TypedStream*)aStream;
                    117: 
                    118: - read: (TypedStream*)aStream;
                    119: - write: (TypedStream*)aStream;
                    120: - awake;
1.1       root      121: 
                    122: @end
                    123: 
                    124: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.