/usr/include/clips/object.h is in libclips-dev 6.24-3.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | /*******************************************************/
/* "C" Language Integrated Production System */
/* */
/* CLIPS Version 6.20 01/31/02 */
/* */
/* OBJECT SYSTEM DEFINITIONS */
/*******************************************************/
/*************************************************************/
/* Purpose: */
/* */
/* Principal Programmer(s): */
/* Brian L. Donnell */
/* */
/* Contributing Programmer(s): */
/* */
/* */
/* Revision History: */
/* */
/*************************************************************/
#ifndef _H_object
#define _H_object
typedef struct defclassModule DEFCLASS_MODULE;
typedef struct defclass DEFCLASS;
typedef struct packedClassLinks PACKED_CLASS_LINKS;
typedef struct classLink CLASS_LINK;
typedef struct slotName SLOT_NAME;
typedef struct slotDescriptor SLOT_DESC;
typedef struct messageHandler HANDLER;
typedef struct instance INSTANCE_TYPE;
typedef struct instanceSlot INSTANCE_SLOT;
/* Maximum # of simultaneous class hierarchy traversals
should be a multiple of BITS_PER_BYTE and less than MAX_INT */
#define MAX_TRAVERSALS 256
#define TRAVERSAL_BYTES 32 /* (MAX_TRAVERSALS / BITS_PER_BYTE) */
#define VALUE_REQUIRED 0
#define VALUE_PROHIBITED 1
#define VALUE_NOT_REQUIRED 2
#ifndef _H_constrct
#include "constrct.h"
#endif
#ifndef _H_constrnt
#include "constrnt.h"
#endif
#ifndef _H_moduldef
#include "moduldef.h"
#endif
#ifndef _H_evaluatn
#include "evaluatn.h"
#endif
#ifndef _H_expressn
#include "expressn.h"
#endif
#ifndef _H_multifld
#include "multifld.h"
#endif
#ifndef _H_symbol
#include "symbol.h"
#endif
#ifndef _H_match
#include "match.h"
#endif
#ifndef _H_pattern
#include "pattern.h"
#endif
#define GetInstanceSlotLength(sp) GetMFLength(sp->value)
struct packedClassLinks
{
unsigned short classCount;
DEFCLASS **classArray;
};
struct defclassModule
{
struct defmoduleItemHeader header;
};
struct defclass
{
struct constructHeader header;
unsigned installed : 1;
unsigned system : 1;
unsigned abstract : 1;
unsigned reactive : 1;
unsigned traceInstances : 1;
unsigned traceSlots : 1;
unsigned short id;
unsigned busy,
hashTableIndex;
PACKED_CLASS_LINKS directSuperclasses,
directSubclasses,
allSuperclasses;
SLOT_DESC *slots,
**instanceTemplate;
unsigned *slotNameMap;
unsigned slotCount,
localInstanceSlotCount,
instanceSlotCount,
maxSlotNameID;
INSTANCE_TYPE *instanceList,
*instanceListBottom;
HANDLER *handlers;
unsigned *handlerOrderMap;
unsigned handlerCount;
DEFCLASS *nxtHash;
BITMAP_HN *scopeMap;
char traversalRecord[TRAVERSAL_BYTES];
};
struct classLink
{
DEFCLASS *cls;
struct classLink *nxt;
};
struct slotName
{
unsigned hashTableIndex,
use,
id;
SYMBOL_HN *name,
*putHandlerName;
struct slotName *nxt;
long bsaveIndex;
};
struct instanceSlot
{
SLOT_DESC *desc;
unsigned valueRequired : 1;
unsigned override : 1;
unsigned type : 6;
void *value;
};
struct slotDescriptor
{
unsigned shared : 1;
unsigned multiple : 1;
unsigned composite : 1;
unsigned noInherit : 1;
unsigned noWrite : 1;
unsigned initializeOnly : 1;
unsigned dynamicDefault : 1;
unsigned defaultSpecified : 1;
unsigned noDefault : 1;
unsigned reactive : 1;
unsigned publicVisibility : 1;
unsigned createReadAccessor : 1;
unsigned createWriteAccessor : 1;
unsigned overrideMessageSpecified : 1;
DEFCLASS *cls;
SLOT_NAME *slotName;
SYMBOL_HN *overrideMessage;
void *defaultValue;
CONSTRAINT_RECORD *constraint;
unsigned sharedCount;
long bsaveIndex;
INSTANCE_SLOT sharedValue;
};
struct instance
{
struct patternEntity header;
void *partialMatchList;
INSTANCE_SLOT *basisSlots;
unsigned installed : 1;
unsigned garbage : 1;
unsigned initSlotsCalled : 1;
unsigned initializeInProgress : 1;
unsigned reteSynchronized : 1;
SYMBOL_HN *name;
int depth;
unsigned hashTableIndex;
unsigned busy;
DEFCLASS *cls;
INSTANCE_TYPE *prvClass,*nxtClass,
*prvHash,*nxtHash,
*prvList,*nxtList;
INSTANCE_SLOT **slotAddresses,
*slots;
};
struct messageHandler
{
unsigned system : 1;
unsigned type : 2;
unsigned mark : 1;
unsigned trace : 1;
unsigned busy;
SYMBOL_HN *name;
DEFCLASS *cls;
int minParams,
maxParams,
localVarCount;
EXPRESSION *actions;
char *ppForm;
struct userData *usrData;
};
#endif
|