Annotation of gcc/objc/object.h, revision 1.1.1.1

1.1       root        1: /* Declare the class Object for Objective C programs.
                      2:    Copyright (C) 1992 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 __object_INCLUDE_GNU
                     27: #define __object_INCLUDE_GNU
                     28: 
                     29: #include "objc.h"
                     30: #include "stdio.h"
                     31: 
                     32: 
                     33: /*
                     34:  * All classes are derived from Object.  As such this is the 
                     35:  *  overhead tacked onto those objects.  
                     36:  */
                     37: @interface Object {
                     38:   Class_t isa;                                  /* A pointer to the instance's 
                     39:                                                   class structure. 
                     40:                                                   
                     41:                                                   This structure is the one
                     42:                                                   generated by the compiler
                     43:                                                   and located in the TEXT 
                     44:                                                   segment.  The run-time uses
                     45:                                                   its address as a key to 
                     46:                                                   run-time information. */
                     47: }
                     48: 
                     49: /* Creating, copying, and freeing instances */
                     50: 
                     51: + new;
                     52: + free;
                     53: - free;
                     54: - copy;
                     55: - shallowCopy;
                     56: - deepCopy;
                     57: 
                     58: /* Identifying classes */
                     59: 
                     60: + ( Class_t )class;
                     61: + ( Class_t )superClass;
                     62: - ( Class_t )class;
                     63: - ( Class_t )superClass;
                     64: - ( const char* )name;
                     65: 
                     66: /* Identifying and comparing instances */
                     67: 
                     68: - self;
                     69: - ( unsigned int )hash;
                     70: - ( BOOL )isEqual:anObject;
                     71: 
                     72: /* Testing inheritance relationships */
                     73: 
                     74: - ( BOOL )isKindOf:( Class_t )aClassObject;
                     75: - ( BOOL )isMemberOf:( Class_t )aClassObject;
                     76: - ( BOOL )isKindOfGivenName:( const char* )aClassName;
                     77: - ( BOOL )isMemberOfGivenName:( const char* )aClassName;
                     78: 
                     79: /* Testing class functionality */
                     80: 
                     81: + ( BOOL )instancesRespondTo:( SEL )aSel;
                     82: - ( BOOL )respondsTo:( SEL )aSel;
                     83: 
                     84: /* Sending messages determined at run time */
                     85: 
                     86: - perform:( SEL )aSel;
                     87: - perform:( SEL )aSel with:aObject;
                     88: 
                     89: /* Posing */
                     90: 
                     91: + poseAs:( Class_t )aClassObject;
                     92: 
                     93: /* Enforcing intentions */
                     94:  
                     95: - subclassResponsibility:( SEL )aSel;
                     96: - notImplemented:( SEL )aSel;
                     97: 
                     98: /* Error handling */
                     99: 
                    100: - doesNotRecognize:(SEL)aSelector;
                    101: - error:( const char* )aString, ...;
                    102: + error:( const char* )aString, ...;
                    103: 
                    104: /* Archiving */
                    105: 
                    106: - storeOn:( int )aFd;
                    107: + readFrom:( int )aFd;
                    108: - readFrom:( int )aFd;
                    109: + ( int )version;
                    110: + setVersion:( int )aVersion;
                    111: 
                    112: @end
                    113: 
                    114: 
                    115: #endif
                    116: 

unix.superglobalmegacorp.com

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