This is ResultObject.h in view mode; [Download] [Up]
/***********************************************************************\
Common class providing a multiple-result interface in all Convert objects
Copyright (C) 1993 David John Burrowes
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The author, David John Burrowes, can be reached at:
davidjohn@kira.net.netcom.com
David John Burrowes
1926 Ivy #10
San Mateo, CA 94403-1367
\***********************************************************************/
/*
====================================================================
This is the interface file for the ResultObject class. Full documentation for this class can be found in the ResultObject.rtf file. I will not duplicate all that fine information here.
This is $Revision: 1.4 $ of this file
It was last modified by $Author: death $ on $Date: 93/04/04 23:45:08 $
Note that this file was created while using the New Century Schoolbook Roman typeface. You may find that some things line up strangely if you don't use that family.
$Log: ResultObject.h,v $
* Revision 1.4 93/04/04 23:45:08 death
* Sun Apr 4 23:45:07 PDT 1993
*
* Revision 1.3 93/01/10 15:08:43 death
* Sun Jan 10 15:08:43 PST 1993
*
* Revision 1.2 92/07/26 13:59:06 death
* Update of the result object...
*
====================================================================
*/
//
// Import our standard data type definitios
//
#import "common.h"
#import <objc/Object.h>
//
// Declare an struct for a data type, and a flag indicating whether we own
// the data or not (e.g. Objects are always not owned).
//
typedef struct
{
DataType StoredData;
Boolean IOwnData;
}
StorageArea;
//
// Declare the number of storage areas we can have (including the special ones for error code,
// error text and owr own error code), and the number of storage areas actually usable.
//
#define MAXAREAS 8
#define NUMSTORAGEAREAS MAXAREAS - 3
//
// Now, define our interface. Again, see the ResultObject.rtf document for general info.
//
@interface ResultObject:Object
{
Integer ErrorCode;
CString ErrorText;
Boolean IOwnErrorText;
//
// Define an array of storage areas. Note that we don't use storage area 0 for
// now. Probably reserving it for an error code generated by these routines.
//
StorageArea ReturnVals[MAXAREAS];
}
- (Instance) CopyCString: (CString) data;
- (Instance) CopyCString: (CString) data Into: (Integer) reference;
- (Instance) CopyPointer: (Pointer) data WithLength: (PositiveInteger) length ;
- (Instance) CopyPointer: (Pointer) data WithLength: (PositiveInteger) length Into: (Integer) reference;
- (Instance) init;
- free;
- (Boolean) GetBoolean;
- (Boolean) GetBooleanFrom: (Integer) reference;
- (Character) GetCharacter;
- (Character) GetCharacterFrom: (Integer) reference;
- (CString) GetCString;
- (CString) GetCStringFrom: (Integer) reference;
- (GenericType) GetDataWithType: (Integer) theType From: (Integer) storage;
- (Integer) GetErrorCode;
- (CString) GetErrorText;
- (Integer) GetInteger;
- (Integer) GetIntegerFrom: (Integer) reference;
- (Integer) GetMyError;
- (Instance) GetObject;
- (Instance) GetObjectFrom: (Integer) reference;
- (Pointer) GetPointer;
- (Pointer) GetPointerFrom: (Integer) reference;
- (PositiveInteger) GetPositiveInteger;
- (PositiveInteger) GetPositiveIntegerFrom: (PositiveInteger) reference;
- (Instance) PutBoolean: (Boolean) data Into: (Integer) reference;
- (Instance) PutCharacter: (Character) data Into: (Integer) reference;
- (Instance) PutCString: (CString) data Into: (Integer) reference;
- (Instance) PutData: (GenericType) theData WithType: (Integer) theType
Into: (Integer) storage DoIOwn: (Boolean) ownit;
- (Instance) PutInteger: (Integer) data Into: (Integer) reference;
- (Instance) PutObject: (Instance) data Into: (Integer) reference;
- (Instance) PutPointer: (Pointer) data Into: (Integer) reference;
- (Instance) PutPositiveInteger: (PositiveInteger) data Into: (Integer) reference;
- (Instance) ResetResults;
- (Instance) StoreErrorCode: (Integer) code AndText: (CString) text;
- (Instance) StoreErrorCode: (Integer) code AndCopyOfText: (CString) text;
- (Instance) StoreBoolean: (Boolean) data;
- (Instance) StoreCharacter: (Character) data;
- (Instance) StoreCString: (CString) data;
- (Instance) StoreInteger: (Integer) data;
- (Instance) StoreMyError: (Integer) errorcode;
- (Instance) StoreObject: (Instance) data;
- (Instance) StorePointer: (Pointer) data;
- (Instance) StorePositiveInteger: (PositiveInteger) data;
@end
/* Types used by ResultObjects */
#define ERR_OK 0
#define ERR_PEACHY 0
#define ERR_ALLISWELL 0
#define ERR_GROOVY 0
#define ERR_NOSUCHAREA -1234
#define ERR_NOSUCHTYPE -1235
#define ERR_CANTSTORE -1236
/* Altnerate error defines. I prefer this style, I think. 92.05.04 djb */
#define errOK 0
#define FIRST_RESULT 3
#define SECOND_RESULT 4
#define THIRD_RESULT 5
#define FOURTH_RESULT 6
#define FIFTH_RESULT 7
#define MYERROR_RESULT 0
#define ERRORCODE_RESULT 1
#define ERRORTEXT_RESULT 2
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.