45 #ifndef Included_RexxObject
46 #define Included_RexxObject
216 #define CPPM(n) ((PCPPM)&n)
226 void *
operator new(size_t,
RexxClass *);
228 inline void *
operator new(
size_t size,
void *ptr) {
return ptr;}
229 inline void operator delete(
void *) { ; }
230 inline void operator delete(
void *p,
void *ptr) { }
337 void *
operator new(size_t,
RexxClass *);
339 void *
operator new(
size_t size,
void *objectPtr) {
return objectPtr; };
340 inline void operator delete(
void *,
void *) {;}
341 inline void operator delete(
void *) {;}
547 return (
this == other) || this->
isEqual(other);
554 koper (operator_minus)
555 koper (operator_multiply)
556 koper (operator_divide)
557 koper (operator_integerDivide)
558 koper (operator_remainder)
559 koper (operator_power)
560 koper (operator_abuttal)
561 koper (operator_concat)
562 koper (operator_concatBlank)
563 koper (operator_equal)
564 koper (operator_notEqual)
565 koper (operator_isGreaterThan)
566 koper (operator_isBackslashGreaterThan)
567 koper (operator_isLessThan)
568 koper (operator_isBackslashLessThan)
569 koper (operator_isGreaterOrEqual)
570 koper (operator_isLessOrEqual)
571 koper (operator_strictEqual)
572 koper (operator_strictNotEqual)
573 koper (operator_strictGreaterThan)
574 koper (operator_strictBackslashGreaterThan)
575 koper (operator_strictLessThan)
576 koper (operator_strictBackslashLessThan)
577 koper (operator_strictGreaterOrEqual)
578 koper (operator_strictLessOrEqual)
579 koper (operator_lessThanGreaterThan)
580 koper (operator_greaterThanLessThan)
598 void *
operator new(size_t);
599 void *
operator new(
size_t size,
void *objectPtr) {
return objectPtr; };
600 inline void operator delete(
void *) { ; }
601 inline void operator delete(
void *,
void *) { ; }
RexxObject *(RexxObject::* PCPPM7)(RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
RexxObject *(RexxObject::* PCPPM5N)(RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPM7N)(RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPM2N)(RexxObject *, RexxObject *, RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPM1N)(RexxObject *, RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPMA1)(RexxArray *)
RexxObject *(RexxObject::* PCPPM4N)(RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPM1)(RexxObject *)
RexxObject *(RexxObject::* PCPPM3)(RexxObject *, RexxObject *, RexxObject *)
RexxObject *(RexxObject::* PCPPM5)(RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
RexxObject *(RexxObject::* PCPPM2)(RexxObject *, RexxObject *)
uintptr_t HASHOREF(RexxVirtualBase *r)
RexxObject *(RexxObject::* PCPPMC1)(RexxObject **, size_t, size_t)
RexxObject *(RexxObject::* PCPPM)()
RexxObject *(RexxObject::* PCPPM6)(RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *)
RexxObject *(RexxObject::* PCPPM4)(RexxObject *, RexxObject *, RexxObject *, RexxObject *)
RexxObject *(RexxObject::* PCPPM6N)(RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject *, RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPM3N)(RexxObject *, RexxObject *, RexxObject *, RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPM0N)(RexxObject **, size_t)
RexxObject *(RexxObject::* PCPPM0)()
wholenumber_t RexxErrorCodes
GuardLock(RexxActivity *a, RexxObject *o, RexxObject *s)
static NumericSettings * getDefaultSettings()
static const bool DEFAULT_FORM
static const size_t DEFAULT_FUZZ
static const size_t ARGUMENT_DIGITS
static const size_t DEFAULT_DIGITS
virtual void setFuzz(size_t)
virtual NumericSettings * getNumericSettings()
virtual RexxActivation * getRexxContext()
RexxActivationBase * previous
virtual bool trap(RexxString *, RexxDirectory *)
virtual bool isRexxContext()
virtual RexxObject * dispatch()
RexxObject * getExecutableObject()
virtual void termination()
BaseExecutable * executable
RexxActivationBase * getPreviousStackFrame()
virtual RexxObject * getReceiver()
BaseExecutable * getExecutable()
virtual bool isForwarded()
virtual bool isStackBase()
virtual void setForm(bool)
virtual SecurityManager * getSecurityManager()=0
RexxActivationBase(RESTORETYPE restoreType)
virtual PackageClass * getPackage()
virtual RexxActivation * findRexxContext()
virtual void setDigits(size_t)
virtual void setObjNotify(RexxMessage *)
void setPreviousStackFrame(RexxActivationBase *p)
void setObjectMark(size_t markword)
virtual RexxInteger * integerValue(size_t)
bool isObjectType(RexxBehaviour *b)
virtual bool isInstanceOf(RexxClass *)
void setBehaviour(RexxBehaviour *b)
virtual RexxString * primitiveMakeString()
virtual bool unsignedNumberValue(stringsize_t &result, size_t precision)
virtual RexxText * makeText()
virtual RexxObject * evaluate(RexxActivation *, RexxExpressionStack *)
virtual bool isEqual(RexxObject *)
void clearObject(size_t l)
void setInitHeader(size_t markword)
virtual ~RexxInternalObject()
void setVirtualFunctions(void *t)
bool isSubClassOrEnhanced()
void setObjectSize(size_t s)
virtual RexxObject * getRealValue(RexxActivation *)
RexxInternalObject(RESTORETYPE restoreType)
virtual RexxObject * makeProxy(RexxEnvelope *)
size_t getObjectDataSize()
virtual bool doubleValue(double &result)
void setObjectLive(size_t markword)
bool isObjectLive(size_t mark)
virtual RexxString * stringValue()
void setHasNoReferences()
virtual RexxSupplier * instanceMethods(RexxClass *)
virtual RexxObject * getRealValue(RexxVariableDictionary *)
virtual RexxString * makeString()
static size_t getObjectHeaderSize()
virtual bool numberValue(wholenumber_t &result, size_t precision)
void setInitHeader(size_t s, size_t markword)
virtual RexxArray * makeArray()
virtual RexxObject * getValue(RexxVariableDictionary *)
virtual RexxText * primitiveMakeText()
virtual RexxObject * dynamicTarget(RexxObject **arguments, size_t count, size_t named_count)
virtual RexxMethod * instanceMethod(RexxString *)
bool isObjectMarked(size_t markword)
virtual void copyIntoTail(RexxCompoundTail *buffer)
bool isObjectDead(size_t mark)
virtual HashCode getHashValue()
virtual RexxObject * copy()
virtual RexxObject * getValue(RexxActivation *)
size_t getObjectTypeNumber()
RexxBehaviour * behaviour
virtual RexxText * textValue()
virtual RexxNumberString * numberString()
virtual bool truthValue(int)
bool isObjectType(size_t t)
virtual bool logicalValue(logical_t &)
bool isSameType(RexxInternalObject *o)
void * getObjectDataSpace()
RexxBehaviour * getObjectType()
static RexxObject * nilObject
virtual HashCode getHashValue()
RexxNilObject(RESTORETYPE restoreType)
RexxObject * isInstanceOfRexx(RexxClass *)
RexxInteger * requiredInteger(RexxString *kind, size_t, size_t)
RexxString * stringRexx()
RexxString * defaultNameRexx()
stringsize_t requiredPositive(RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
RexxMessage * start(RexxObject **, size_t, size_t)
virtual wholenumber_t compareTo(RexxObject *)
RexxString * objectName()
RexxNumberString * numberString()
RexxMessage * startCommon(RexxObject *message, RexxObject **arguments, size_t argCount, size_t named_argCount)
RexxInteger * integerValue(size_t)
void initializeNewObject(size_t size, size_t mark, void *vft, RexxBehaviour *b)
RexxVariableDictionary * getObjectVariables(RexxObject *)
RexxObject * requestRexx(RexxString *)
static void decodeMessageName(RexxObject *target, RexxObject *message, RexxString *&messageName, RexxObject *&startScope)
RexxObject * dynamicTargetRexx(RexxObject **arguments, size_t argCount, size_t named_argCount)
RexxObject * sendWith(RexxObject *, RexxArray *, RexxObject **, size_t)
RexxString * concatRexx(RexxObject *)
RexxObject * unknownRexx(RexxString *, RexxArray *, RexxObject **, size_t)
bool requestUnsignedNumber(stringsize_t &, size_t)
static RexxClass * classInstance
stringsize_t requiredNonNegative(RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
RexxObject * hasMethodRexx(RexxString *)
RexxMethod * instanceMethodRexx(RexxString *)
RexxObject * unsetMethod(RexxString *)
RexxObject * setMdict(RexxObject *)
static void createInstance()
RexxMethod * checkPrivate(RexxMethod *, RexxErrorCodes &)
RexxObject * superScope(RexxObject *)
virtual RexxInteger * hasMethod(RexxString *msg)
RexxObject * strictEqual(RexxObject *)
void guardOn(RexxActivity *activity, RexxObject *scope)
void initializeNewObject(size_t mark, void *vft, RexxBehaviour *b)
RexxMessage * startWith(RexxObject *, RexxArray *, RexxObject **, size_t)
virtual bool doubleValue(double &result)
RexxInteger * requestInteger(size_t)
RexxObject * setMethod(RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
RexxMethod * methodLookup(RexxString *name)
virtual RexxObject * defMethod(RexxString *, RexxMethod *, RexxString *a=OREF_NULL)
RexxString * makeString()
RexxObject * send(RexxObject **, size_t, size_t)
void sendMessage(RexxString *message, ProtectedObject &result)
RexxObject * objectNameEquals(RexxObject *)
void guardOff(RexxActivity *activity, RexxObject *scope)
void processUnknown(RexxErrorCodes, RexxString *, RexxObject **, size_t, size_t, ProtectedObject &)
virtual RexxObject * unknown(RexxString *msg, RexxArray *args, RexxDirectory *named_args)
RexxArray * requestArray()
RexxString * requiredString()
void processProtectedMethod(RexxString *, RexxMethod *, RexxObject **, size_t, size_t, ProtectedObject &)
bool equalValue(RexxObject *other)
RexxString * stringValue()
RexxSupplier * instanceMethods(RexxClass *)
void flatten(RexxEnvelope *)
RexxObject(RESTORETYPE restoreType)
RexxObject * equal(RexxObject *)
void sendMessage(RexxString *, RexxArray *, RexxDirectory *, ProtectedObject &)
koper(operator_plus) koper(operator_minus) koper(operator_multiply) koper(operator_divide) koper(operator_integerDivide) koper(operator_remainder) koper(operator_power) koper(operator_abuttal) koper(operator_concat) koper(operator_concatBlank) koper(operator_equal) koper(operator_notEqual) koper(operator_isGreaterThan) koper(operator_isBackslashGreaterThan) koper(operator_isLessThan) koper(operator_isBackslashLessThan) koper(operator_isGreaterOrEqual) koper(operator_isLessOrEqual) koper(operator_strictEqual) koper(operator_strictNotEqual) koper(operator_strictGreaterThan) koper(operator_strictBackslashGreaterThan) koper(operator_strictLessThan) koper(operator_strictBackslashLessThan) koper(operator_strictGreaterOrEqual) koper(operator_strictLessOrEqual) koper(operator_lessThanGreaterThan) koper(operator_greaterThanLessThan) koper(operator_and) koper(operator_or) koper(operator_xor) koper(operator_not) RexxVariableDictionary *objectVariables
RexxMethod * checkPackage(RexxMethod *, RexxErrorCodes &)
void liveGeneral(int reason)
RexxObject * notEqual(RexxObject *other)
bool requestNumber(wholenumber_t &, size_t)
RexxInteger * identityHashRexx()
RexxDirectory * requestDirectory()
RexxMethod * instanceMethod(RexxString *)
bool messageSend(RexxString *, RexxObject **, size_t, size_t, ProtectedObject &, bool processUnknown=true, bool dynamicTarget=true)
void addObjectVariables(RexxVariableDictionary *)
RexxString * requestString()
void copyIntoTail(RexxCompoundTail *buffer)
RexxObject * makeStringRexx()
virtual bool numberValue(wholenumber_t &result, size_t precision)
RexxObject * newRexx(RexxObject **arguments, size_t argCount, size_t named_argCount)
RexxBehaviour * behaviourObject()
RexxObject * defMethods(RexxDirectory *)
bool isEqual(RexxObject *)
virtual RexxString * defaultName()
static PCPPM operatorMethods[]
RexxString * concatBlank(RexxObject *)
virtual bool unsignedNumberValue(stringsize_t &result, size_t precision)
RexxSupplier * instanceMethodsRexx(RexxClass *)
RexxString * requestStringNoNOSTRING()
RexxClass * classObject()
void setObjectVariable(RexxString *, RexxObject *, RexxObject *)
bool isInstanceOf(RexxClass *)
RexxObject * run(RexxObject **, size_t, size_t)
RexxObject * makeArrayRexx()
RexxMethod * superMethod(RexxString *, RexxObject *)
RexxObject * strictNotEqual(RexxObject *other)
RexxObject * getObjectVariable(RexxString *)
virtual bool logicalValue(logical_t &)
void copyObjectVariables(RexxObject *newObject)
void sendMessage(RexxString *message, RexxObject **args, size_t argCount, size_t named_argCount, ProtectedObject &result)
wholenumber_t requiredNumber(RexxString *kind, size_t position, size_t precision=Numerics::ARGUMENT_DIGITS)
virtual void flatten(RexxEnvelope *)
virtual void liveGeneral(int reason)
virtual void live(size_t)
virtual RexxObject * unflatten(RexxEnvelope *)
virtual ~RexxVirtualBase()
virtual void baseVirtual()