• Aucun résultat trouvé

msgT ask Terminated

Dans le document PenPofnt GO (Page 27-32)

Sent to observers of theProcess, an object within each process, after the task is terminated.

Takes P _OBLEXCEPTION, returns STATUS. Category: observer notification.

#define msgTaskTerminated MsgNoError (MakeMsg (clsObject, 112)) typedef struct OBJ_EXCEPTION {

OS_TASK_ERROR errorCode;

OS_TASK_ID task;

U32 spare;

OBJ_EXCEPTION, *P_OBJ_EXCEPTION;

msgScavenge

II

In: Type of exception

II

In: Task that received the exception

II

Unused (reserved)

Sent to the object when a class has objCapScavenge set and the object's task is being terminated by request or because of an error.

Takes OS_TASK_ERROR, returns STATUS. Category: descendant responsibility.

#define msgScavenge MsgNoError(MakeMsg(clsObject, 102))

This message will only be executed by class that set objCapScavenge. Do not pass this message to your ancestor.

msgScavenged

Sent to the observers AFTER the object has been scavenged.

Takes OS_TASK_ERROR, returns STATUS. Category: observer notification.

#define msgScavenged MsgNoError(MakeMsg(clsObject, 104))

msgFreeSubTask

Sent to theProcess to free a sub task.

Takes P _SUBTASK_FREE, returns SfATUS.

#define msgFreeSubTask MsgNoError(MakeMsg(clsObject, 104)) typedef struct OBJ_SUBTASK_FREE

OS_TASK_ID task;

II

In: Task to be terminated

OS TASK ERROR exitCode;

II

In: Exit code for task termination OBJ_SUBTASK_FREE, * P_OBJ_SUBTASK_FREE;

Useful for delayed termination when message is posted to theProcess.

stsOSlnvalidOperationForTask Task was not a subtask of this process.

msgHeap

Returns the preferred heap to use when allocating storage for this object.

Takes P_OS_HEAP_ID, returns STATUS.

#define msgHeap MakeMsg(clsObject, 96)

Message

Checks the object's capabilities.

Takes OBJ_CAPABILITY, returns STATUS.

#define msgCan MakeMsg(clsObject, 36) Enum32 (OBJ_CAPABILITY)

(

II

default for: OBJECT CLASS

II

---} ;

objCapOwner flag1, objCapFree flag2, objCapSend flag3, objCapObservable flag4, objCapInherit flag6, objCapScavenge flag7, objCapCreate

=

flag8, objCapProp flag9, objCapMutate

=

flag10, objCapCall

=

flag1S, objCapCreateNotify

=

flag16, objCapUnprotected

=

flag17, objCapNonSwappable

=

flag18

II II

If the capabilities in the parameter are all enabled, msgCan returns stsOK otherwise stsProtection Violation is returned.

stsProtection Violation Capability disabled.

msgDisable

Disables some or all of the object's capabilities.

Takes P _OBLCAPABILITY_SET, returns STATUS.

#define msgDisable MakeMsg(clsObject, 16) typedef struct OBJ_CAPABILITY_SET

OBJ CAPABILITY cap;

II

In: Capabilities to enable/disable OBJ KEY key;

II

In: Unlocks object, e.g., objWKNKey OBJ_CAPABILITY_SET,

*

P_OBJ_CAPABILITY_SET;

stsProtection Violation Key does not open the object.

msgEnable

Enables some or all of the object's capabilities.

Takes P _OBLCAPABILITY_SET, returns STATUS.

#define msgEnable MakeMsg(clsObject, 18) typedef struct OBJ_CAPABILITY_SET

OBJ CAPABILITY cap;

II

In: Capabilities to enable/disable OBJ KEY key;

II

In: Unlocks object, e.g., objWKNKey OBJ_CAPABILITY_SET,

*

P_OBJ_CAPABILITY_SET;

stsProtection Violation Key does not open the object.

CLSMGR.H Messages

17

'8 PEN POINT API REFERENCE Part 1 I Class Manager

msglsA

Tests if the object's class inherits from the class.

Takes CLASS, returns STATUS.

fdefine msgIsA MakeMsg(clsObject, 30) stsOK Class is an ancestor of the object's class.

stsBadAncestor Class is not an ancestor of the object's class.

msgAncestorlsA

Tests if self inherits from the class.

Takes CLASS, returns STATUS.

fdefine msgAncestorIsA MakeMsg(clsObject, 32)

This is a clsClass message and can only be sent to a class. Consider using msglsA if the object is not a class.

stsO K Class parameter is an ancestor.

stsBadObject Class parameter is not an object.

stsBadAncestor Class parameter is not an ancestor.

msgClass

Passes back the class of the object.

Takes P _CLASS, returns SfATUS.

fdefine msgClass MakeMsg(clsObject, 34)

msgAncestor

Passes back the ancestor of the class.

Takes P_CLASS, returns SfATUS.

fdefine msgAncestor MakeMsg(clsObject, 20)

This is a clsClass message and can only be sent to a class. Consider using msgClass if the object is not a class.

msgSetLock

Sets or changes the key of the object.

Takes OBJ_LOCK_SET, returns STATUS.

fdefine msgSetLock MakeMsg(clsObject, 106) typedef struct OBJ_LOCK_SET

OBJ _ KEY oldKey i

OBJ KEY newKeYi OBJ_LOCK_SET,

*

P_OBJ_LOCK_SETi

II In: Required to set lock II In: New key, if successful stsProtection Violation Old key does not open the object.

Return Value

Return Value

Return V(1lue

Message ArgumenTs

Return Value

msgUnlocks

Tests if a key will unlock the object.

Takes OBLKEY, returns STATUS.

fdefine msgUnlocks MakeMsg(clsObject, 38) stsProtection Violation Key does not open the object.

msgDuplicateLock

Locks the pArgs object with the same key as object.

Takes OBJECT, returns STATUS.

fdefine msgDuplicateLock MakeMsg(clsObject, 40) stsBadObject Parameter is not an object.

msgVersion

Returns the version of the object.

Takes pNull, returns STATUS.

fdefine msgVersion MakeMsg(clsObject, 82)

stsScopeViolation Object was dynamic, request is nonsense.

msg~evvJ\rgsSize

Returns the size of the new struct required to create an instance of this class.

Takes pNull, returns STATUS.

fdefine msgNewArgsSize MakeMsg(clsObject, 92) This is a clsClass message and can only be sent to a class.

msgOvvner

Passes back the task that owns this object.

Takes P_OS_TASK_ID, returns STATUS.

fdefine msgOwner MakeMsg(clsObject, 22)

msgSetOvvner

Changes the owner task.

Takes P_OBLOWNER, returns STATUS.

fdefine msgSetOwner MakeMsg(clsObject, 24) typedef struct OBJ_OWNER {

OS ·TASK ID task;

OBJECT object;

II In: [msgSetOwner] New owner

II Out: [msgObjectOwner] Current owner II In: [msgObjectOwner] Source object

CLSMGR.H Messages

OBJ KEY key; II In: [msgSetOwner] If required by caps OBJ_OWNER,

*

P_OBJ_OWNER;

stsProtection Violation Key does not open the object.

'0

20 PENPOINT API REFERENCE

Passes back the value of a property for the object.

Takes P_OBLPROP, returns STATUS.

tdefine msgProp MakeMsg(clsObject, 108) typedef struct OBJ_PROP { OBJ_PROP,

*

P_OBJ_PROP;

stsBadPropTag Tag value was not in the proper range.

msgSetProp

Sets a property on the object.

Takes P_OBJ_PROP, returns STATUS.

tdefine msgSetProp MakeMsg(clsObject, 110) typedef struct OBJ_PROP {

TAG propId;

P IDATA pData;

SIZEOF length;

OBJ KEY key;

OBJ_PROP,

*

P_OBJ_PROP;

II

In: dsObject files any property that has tag flag 1 turned on. For example:

tdefine MY_PROP MakeTagWithFlags(clsFoo,tagNum,l) stsBadPropTag Tag value was not in the proper range.

stsProtection Violation Key does not open the object.

,..,.. msgObiectXXX

. Arguments

These msgObjectXXX messages can be used with ObjectCallO to get information about all objects, regardless of their task. Functionally they are equivalent to msgXXX, when applicable.

msgObjectlsA

Using the object and the class in the pArgs. Tests if the object's class inherits from the class.

Takes P _OBJ_IS_A, returns STATUS.

tdefine msgObjectIsA MakeMsg(clsObject, 84) typedef struct OBJ IS A {

OBJECT - object;

II

In: Source object

CLASS objClass;

II

In: Ancestor of source object's class OBJ_IS_A,

*

P_OBJ_IS_A;

stsBadObject Parameter is not an object.

stsBadAncestor Class is not an ancestor of the object's class.

Arguments

Comments Return Value

Argunu:mts

Messoge Arguments

Return Yolue

Return VCllue

msgObjectAncestorlsA

Tests if the descendant class inherits from the ancestor.

Takes P _OBLANCESTOR_IS_A, returns STATUS.

tdefine msgObjectAncestorIsA MakeMsg(clsObject, 86) typedef struct OBJ_ANCESTOR_IS_A

CLASS descendant;

II

In: Source class (always a class) CLASS ancestor;

II

In: Ancestor of the descendant OBJ_ANCESTOR_IS_A,

*

P_OBJ_ANCESTOR_IS_A;

This is a clsClass message and can only be sent to a class.

stsBadObject One of the parameters is not a class.

stsBadAncestor Ancestor parameter is not an ancestor.

msgObjectClass

Passes back the class for the object in pArgs.

Takes P _OBLCLASS, returns STATUS.

tdefine msgObjectClass MakeMsg(clsObject, 88) typedef struct OBJ_CLASS {

OBJECT object;

II

In: Source object

CLASS objClass;

II

Out: Class of source object OBJ_CLASS,

*

P_OBJ_CLASS;

stsBadObject Object or class parameters are not objects.

msgObject()~er

Passes back the owning task for the object in pArgs.

Takes P_OBLOWNER, returns STATUS.

tdefine msgObjectOwner MakeMsg(clsObject, 26) typedef struct OBJ_OWNER {

OS_TASK_ID task;

OBJECT object;

II

In: [msgSetOwner] New owner

II

Out: [msgObjectOwner] Current owner

II

In: [msgObjectOwner] Source object

CLSMGR.H Messages

OBJ_KEY key;

II

In: [msgSetOwner] If required by caps OBJ_OWNER,

*

P_OBJ_OWNER;

stsBadObject Parameter is not an object.

Dans le document PenPofnt GO (Page 27-32)