147 lines
3.3 KiB
Plaintext
147 lines
3.3 KiB
Plaintext
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
|
|
|
|
|