open-insight/SYSPROG/STPROCINS/NPHANDLER_EQUATES.txt
2024-03-25 15:17:34 -07:00

275 lines
10 KiB
Plaintext

compile insert npHandler_Equates
/*
** Copyright (C) 2013-2023 Revelation Software Inc. All Rights Reserved **
Author : Wile C Coyote - (Le Singe de Code)
Date : May 2015
Purpose : Constants for working with Non procedural event handlers
(a.k.a QuickEvents)
Comments
========
This insert replaces the embedded constants in the GetNPHandler and
ExecNpHandler stored procedures.
Amended Date Reason
======= ==== ======
Mr C 06 Jan 23 Fxed sum shpelling mishtooks
Mr C 18 Jun 20 Added NP_ALLMSGTYPES$
Mr C 03 Jun 20 Added "Execute a Method" fields
Mr C 30 May 18 Added "Get a Property" fields.
Mr C 01 Sep 17 Added NP_PRIORITYFLAG$
Mr C 31 Mar 16 Updated comments
Mr C 29 May 15 Added CFG_RTI_IDE_QUICKEVENT_TYPES
Mr C 28 May 15 Added "Ignore if null" flags
*/
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#ifndef _NPHANDLER_EQUATES_
#define _NPHANDLER_EQUATES_
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// QuickEvent Types
//
// "R" - Repository. Execute a repository method on an entity
// "E" - Event - send an event to a PS object
// "G" - Get Property - get a PS object property
// "P" - Set Property - set a PS object property
// "M" - Exec_Method - execute a PS object method
// "X" - Execute a stored procedure
// "N" - Not set
equ NP_NOTSETMSGTYPE$ to "N"
equ NP_REPOSMSGTYPE$ to "R"
equ NP_EVENTMSGTYPE$ to "E"
equ NP_GETPROPMSGTYPE$ to "G"
equ NP_PROPMSGTYPE$ to "P"
equ NP_PROCMSGTYPE$ to "X"
equ NP_EXECMETHODMSGTYPE$ to "M"
equ NP_ALLMSGTYPES$ to "N,R,E,G,P,X,M"
// Descriptions for these codes can be found in the
// CFG_RTI_IDE_QUICKEVENT_TYPES record described below
///////////////////////////////////////////////////////////////////////////////
// Quickevent structure.
//
// Quickevents are stored in a pair of @svm-delimited values forming an
// AMV in the SYSREPOSWINS structure:
//
// (From OIWIN_EQUATES)
//
// equ POS_EVENT_HANDLER$ to 18 <- QE structures
// equ POS_QEVENTS$ to 19 <- QE Names
//
// (For some reason each of these values has a trailing @svm)
//
// In the SYSREPOSWINEXES structure they are stored in the Semantics
// block instead, still as an AMV pair of @svm delimited lists, again
// with a trailing @svm
//
// equ CS_EVENTS$ to 8 <- QE Names
// equ CS_EVENT_HDLR$ to 9 <- QE structure
//
// Prior to v10 the QE structure was a set of up to 6 @tm delimited values
// but with v10 we have extended this to:
//
// <0,0,0,1> Type
// <0,0,0,2> Message
// <0,0,0,3> Target
// <0,0,0,4> Parameters (@stm delimited)
// <0,0,0,5> Return Target
// <0,0,0,6> Return Message
// <0,0,0,7> Return Type (defaults to "P" for property)
// <0,0,0,8> Return Parameters (@stm delimited)
// <0,0,0,9> Return Flags (@stm delimited)
// <0,0,0,9,1> Ignore if RetVal is null
// <0,0,0,10> Final Type
// <0,0,0,11> Final Message
// <0,0,0,12> Final Target
// <0,0,0,13> Final Parameters (@stm delimited)
// <0,0,0,14> Return Flags (@stm delimited)
// <0,0,0,14,1> Ignore if RetVal is null
// <0,0,0,15> QuickEvent ID (for when it's reloaded back into the designer) -
equ NP_MSGTYPE$ to 1
equ NP_MSG$ to 2
equ NP_TARGET$ to 3 ; // was NP_RECIPIENT$ pre-v10
equ NP_ARGS$ to 4
equ NP_RETTARGET$ to 5 ; // was NP_RETCTRL$ pre-v10
equ NP_RETMSG$ to 6 ; // was NP_RETPROP$ pre-v10
equ NP_RETTYPE$ to 7
equ NP_RETARGS$ to 8
equ NP_RETFLAGS$ to 9
equ NP_FINALTYPE$ to 10
equ NP_FINALMSG$ to 11
equ NP_FINALTARGET$ to 12
equ NP_FINALARGS$ to 13
equ NP_FINALFLAGS$ to 14
equ NP_ID$ to 15
equ NP_PRIORITYFLAG$ to 16
// QE Action Flags - these are @stm delimited
//
// <0,0,0,0,1> If TRUE$ then skip the action if the returned value is null
equ NP_FL_IGNOREIFNULL$ to 1
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// QuickEvent config records
//
// These are stored in the SYSENV table with an appID-based key like so:
//
// CFG_RTI_IDE_QUICKEVENTS*<appid>
//
// Each record forms a AMV group with the following structure:
//
// <1> QuickEvent ID
// <2> QuickName Name (display name)
//
// <4> Allowed Types
// <5> Allowed Messages
// <6> Allowed Targets
// <7> Default Params
// <8> Config flags:
// <8,n,1> Types is ReadOnly
// <8,n,2> Targets is ReadOnly
// <8,n,3> Params is ReadOnly
//
// <12> Default Return Types
// <13> Default Return Messages
// <14> Default Return Targets
// <15> Default Return Params
// <16> Return Config flags:
// <16,n,1> Return Types is ReadOnly
// <16,n,2> Return Targets is ReadOnly
// <16,n,3> Return Params is ReadOnly
// <16,n,4> Ignore if return value is null
//
// <20> Default Final Types
// <21> Default Final Messages
// <22> Default Final Targets
// <23> Default Final Params
// <24> Final Config flags:
// <24,n,1> Final Types is ReadOnly
// <24,n,2> Final Targets is ReadOnly
// <24,n,3> Final Params is ReadOnly
equ NP_CFG_TABLE$ to "SYSENV"
equ NP_CFG_ID_PREFIX$ to "CFG_RTI_IDE_QUICKEVENTS*"
equ NP_CFGPOS_ID$ to 1
equ NP_CFGPOS_NAME$ to 2
equ NP_CFGPOS_TYPES$ to 4 ; // Allowed types (R,E,G,P,X)
equ NP_CFGPOS_MESSAGES$ to 5 ; // Property for "P" type
equ NP_CFGPOS_TARGETS$ to 6
equ NP_CFGPOS_PARAMS$ to 7
equ NP_CFGPOS_FLAGS$ to 8
equ NP_CFGPOS_RETTYPE$ to 12 ; // Default type (R,E,G,P,X)
equ NP_CFGPOS_RETMESSAGES$ to 13 ; // Property for "P" type
equ NP_CFGPOS_RETTARGETS$ to 14
equ NP_CFGPOS_RETPARAMS$ to 15
equ NP_CFGPOS_RETFLAGS$ to 16
equ NP_CFGPOS_FINTYPES$ to 20 ; // Default type (R,E,G,P,X)
equ NP_CFGPOS_FINMESSAGES$ to 21 ; // Property for "P" type
equ NP_CFGPOS_FINTARGETS$ to 22
equ NP_CFGPOS_FINPARAMS$ to 23
equ NP_CFGPOS_FINFLAGS$ to 24
equ NP_CFGPOS_AMV_FIRST$ to NP_CFGPOS_ID$
equ NP_CFGPOS_AMV_LAST$ to NP_CFGPOS_FINFLAGS$
// Flags
equ NP_CFG_FPOS_TYPES_READONLY$ to 1
equ NP_CFG_FPOS_MSG_READONLY$ to 2
equ NP_CFG_FPOS_TARGET_READONLY$ to 3
equ NP_CFG_FPOS_PARAMS_READONLY$ to 4
equ NP_CFG_FPOS_IGNOREIFNULL$ to 5
// There are three sections to a quickevent config:
//
// Event Action - Starts at field<4> (NP_CFGPOS_TYPES$)
// Return Value - Starts at field<12> (NP_CFGPOS_RETTYPE$)
// Final Action - Starts at field<20> (NP_CFGPOS_FINTYPES$)
//
// Each section has 5 parts that may be set:
//
// Type
// Target
// Message
// Params
// Flags
equ NP_CFG_SECTIONS$ to 3
equ NP_CFG_ITEMSPERSECTION$ to 8 ; // 5 fields used, but 8 available
equ NP_CFG_SECTIONS_START$ to NP_CFGPOS_TYPES$
// Offsets into each section for each part
equ NP_CFG_SECT_TYPE$ to 0
equ NP_CFG_SECT_MESSAGE$ to 1
equ NP_CFG_SECT_TARGET$ to 2
equ NP_CFG_SECT_PARAMS$ to 3
equ NP_CFG_SECT_FLAGS$ to 4
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// QuickEvent TYPE config record
//
// This record is stored in the SYSENV table with a key of:
//
// CFG_RTI_IDE_QUICKEVENT_TYPES
//
// This record describes the default properties to apply to the Target,
// Message and Params, along with a textual description of the type
//
// It is an AMV structured like so:
//
// <1> Type : ( "R","E","P","G","M" or"X" )
// <2> Description : ( "Execute a repository method", "Send An Event" etc )
// <3> Message : ( "EXECUTE", or a property name for a "P" type, an event name for an "E" type etc )
// <4> Target :
// <5> Params :
// <6> Flags : @svm'd list of flags
// <6,n,1> Types is ReadOnly
// <6,n,2> Target is ReadOnly
// <6,n,3> Params is ReadOnly
equ NP_TYPECFG_TABLE$ to "SYSENV"
equ NP_TYPECFG_ID$ to "CFG_RTI_IDE_QUICKEVENT_TYPES"
equ NP_CFG_TPOS_TYPES$ to 1 ; // "R","E","G,","P","X"
equ NP_CFG_TPOS_DESCS$ to 2 ; // "Execute a repository method", "Send An Event" etc
equ NP_CFG_TPOS_MESSAGES$ to 3 ; //
equ NP_CFG_TPOS_TARGETS$ to 4 ; //
equ NP_CFG_TPOS_PARAMS$ to 5 ; //
equ NP_CFG_TPOS_FLAGS$ to 6 ; //
// Flags (NP_CFG_TPOS_FLAGS$ - @svm delimited)
equ NP_CFG_TFPOS_TYPES_READONLY$ to 1
equ NP_CFG_TFPOS_TARGETS_READONLY$ to 2
equ NP_CFG_TFPOS_MSGS_READONLY$ to 3
equ NP_CFG_TFPOS_PARAMS_READONLY$ to 4
equ NP_CFG_TFPOS_IGNOREIFNULL$ to 5
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////