275 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 |