added sysprog entities
This commit is contained in:
146
SYSPROG/STPROC/COMM_DIALOG_IDXSVR.txt
Normal file
146
SYSPROG/STPROC/COMM_DIALOG_IDXSVR.txt
Normal file
@ -0,0 +1,146 @@
|
||||
COMPILE FUNCTION Comm_Dialog_IDXSVR( Instruction, Parm1 )
|
||||
|
||||
/*
|
||||
Commuter Module for Index Server (IDXSVR) Dialog Window
|
||||
|
||||
J.C. Henry, Inc. - John C. Henry
|
||||
|
||||
*/
|
||||
|
||||
DECLARE SUBROUTINE Center_Window,StatusLine,Set_Property,End_Dialog, Send_Event, Set_Status, Adios
|
||||
DECLARE SUBROUTINE ErrMsg, Send_Message, obj_Tables, Post_Event, Set_Bgnd_IX_Time, Set_IDXSvr, ShowWindow
|
||||
DECLARE FUNCTION Get_Property, Get_Status,Dialog_Box, FindWindow
|
||||
|
||||
EQU CRLF$ TO \0D0A\
|
||||
|
||||
EQU TRUE$ TO 1
|
||||
EQU FALSE$ TO 2
|
||||
|
||||
$INSERT ENVIRON_CONSTANTS
|
||||
|
||||
ErrTitle = 'Error in Comm_Dialog_IDXSVR routine'
|
||||
ErrorMsg = ''
|
||||
|
||||
|
||||
Instructions = 'Create'
|
||||
Instructions := @FM:'Timer'
|
||||
Instructions := @FM:'StartStop'
|
||||
Instructions := @FM:'Close'
|
||||
|
||||
RetVal = ''
|
||||
|
||||
LOCATE Instruction IN Instructions USING @FM SETTING Pos THEN
|
||||
ON Pos GOSUB Create,Timer,StartStop,Close
|
||||
END
|
||||
|
||||
RETURN RetVal
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Create:
|
||||
* * * * * * *
|
||||
|
||||
*Center_Window(@WINDOW)
|
||||
|
||||
StatusLine(@WINDOW)
|
||||
|
||||
Set_Status(0)
|
||||
|
||||
otParms = 'SYSOBJ':@RM:'INDEX_SERVER'
|
||||
obj_Tables('LockRec',otParms) ;* Places lock on fictional record
|
||||
|
||||
IF Get_Status(errCode) THEN
|
||||
ErrorMsg = ErrTitle:@SVM:'Another index server is already running.'
|
||||
ErrMsg(ErrorMsg)
|
||||
Post_Event(@WINDOW,'CLOSE')
|
||||
RETURN
|
||||
END
|
||||
|
||||
Set_Property(@WINDOW,'@LOCKED',1) ;* Set ad-hoc property '@LOCKED' to true
|
||||
*Set_Property(@WINDOW,'TIMER','5000':@FM:'0') ;* Set timer event to 5000 msecs (5 seconds) to check for shutdown time.
|
||||
|
||||
* Code added 6/9/2004 to show engine window when running on a runtime JCH
|
||||
|
||||
OpenEngineHandle = FindWindow("AREV":\00\,0)
|
||||
ShowWindow(OpenEngineHandle,1)
|
||||
|
||||
|
||||
|
||||
* No return on create -> automatically starts index server
|
||||
|
||||
* * * * * * *
|
||||
StartStop:
|
||||
* * * * * * *
|
||||
|
||||
StartStop = Get_Property(@WINDOW:'.START_STOP_BUTTON','TEXT')
|
||||
|
||||
IF StartStop = 'Stop Index Server' THEN
|
||||
|
||||
* Index server is running
|
||||
|
||||
Set_IDXSvr(0) ;* Turn off index server
|
||||
Set_Bgnd_IX_Time(0) ;* Turn off background indexing by setting interval to zero
|
||||
Set_Property(@WINDOW:'.START_STOP_BUTTON','TEXT', 'Start Index Server')
|
||||
Set_Property(@WINDOW:'.CLOSE_BUTTON','ENABLED',1)
|
||||
|
||||
END ELSE
|
||||
|
||||
IndexInterval = Get_Property(@WINDOW:'.INTERVAL','TEXT')
|
||||
|
||||
IF IndexInterval = '' THEN
|
||||
* bad value entered or null
|
||||
IndexInterval = 10
|
||||
Set_Property(@WINDOW:'.INTERVAL','INVAL',IndexInterval)
|
||||
END
|
||||
|
||||
Set_Bgnd_IX_Time(IndexInterval) ;* Set background index inteval to IndexInterval (Seconds)
|
||||
Set_Property(@WINDOW:'.START_STOP_BUTTON','TEXT', 'Stop Index Server')
|
||||
Set_IDXSvr(1) ;* Start the index server process
|
||||
Set_Property(@WINDOW:'.CLOSE_BUTTON','ENABLED',0)
|
||||
|
||||
END
|
||||
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Close:
|
||||
* * * * * * *
|
||||
|
||||
otParms = 'SYSOBJ':@RM:'INDEX_SERVER'
|
||||
|
||||
obj_Tables('LockRec',otParms) ;* Places lock on fictional record
|
||||
|
||||
IF Get_Status(errCode) THEN
|
||||
Set_Status(0)
|
||||
obj_Tables('UnlockRec',otParms) ;* Removes lock on fictional record
|
||||
|
||||
END
|
||||
|
||||
Set_Property('SYSTEM','IDLEPROC','ADIOS')
|
||||
*Adios() ;* Utility('SYSTEM','DESTROY') in a wrapper
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
* * * * * * *
|
||||
Timer:
|
||||
* * * * * * *
|
||||
|
||||
ShutDownTime = Get_Property(@WINDOW:'.SHUTDOWN_TIME','INVALUE')
|
||||
|
||||
Set_Property(@WINDOW:'.COUNTDOWN','INVALUE',ShutDownTime - TIME())
|
||||
|
||||
IF TIME() > ShutDownTime THEN
|
||||
|
||||
Set_IDXSvr(0) ;* Turn off index server
|
||||
Set_Bgnd_IX_Time(0) ;* Turn off background indexing by setting interval to zero
|
||||
Set_Property('SYSTEM','IDLEPROC','ADIOS')
|
||||
|
||||
END
|
||||
|
||||
|
||||
RETURN
|
||||
|
||||
|
Reference in New Issue
Block a user