196 lines
10 KiB
Plaintext
196 lines
10 KiB
Plaintext
Compile insert MVBFS_EQUATES
|
|
|
|
* 10-12-11 rjc/bzs Created
|
|
* 03-13-12 rjc Added ReadU, WriteRelease
|
|
* 04-26-12 rjc Add scopes for credentials
|
|
* 07-05-12 rjc Add list_volumes
|
|
* 05-25-17 rjc Add mvbfs_handle_delim.
|
|
* 05-10-19 rjc Add timeout property
|
|
* 08-07-19 rjc Add timeout
|
|
* 08-19-19 rjc Add credetial_params, labeels, iconvs
|
|
* 08-18-20 bzs Add new omni call for reading active list
|
|
|
|
Equ BFS$ To "MVBFS"
|
|
|
|
* Property Caches ( RTI_HASHTABLE )
|
|
equ MVBFS_TABLES$ to "MVBFS_TABLES" ; * table specific properites, key is tablename
|
|
equ MVBFS_VOLUMES$ to "MVBFS_VOLUMES" ; * volume specific properites, key is volname
|
|
equ MVBFS_Connections$ To "MVBFS_CONNECTIONS" ; * ado connection object for a volume, key is volname
|
|
|
|
* Structure of File handle
|
|
Equ Mvbfs_handle_delim$ To \F7\
|
|
EQU MVBFS_HANDLE_REALHANDLE$ TO 1 ;* LH handle, populated for a dict, null for a data file
|
|
EQU MVBFS_HANDLE_OINAME$ TO 2 ;* Native name
|
|
EQU MVBFS_HANDLE_NATIVENAME$ TO 3 ;* Native name
|
|
EQU MVBFS_HANDLE_VOLNAME$ TO 4 ;* volume name
|
|
|
|
/*
|
|
EQU MVBFS_HANDLE_OINAME$ TO 1 ;* oi name of the file
|
|
EQU MVBFS_HANDLE_NATIVENAME$ TO 2 ;* Native name
|
|
EQU MVBFS_HANDLE_VOLNAME$ TO 3 ;* volume name
|
|
*/
|
|
|
|
* Scopes
|
|
Equ CREDENTIAL_SCOPE_APPUSER$ To "APP+USER"
|
|
Equ CREDENTIAL_SCOPE_USER$ To "USER"
|
|
Equ CREDENTIAL_SCOPE_APP$ To "APP"
|
|
Equ CREDENTIAL_SCOPE_GLOBAL$ To "GLOBAL"
|
|
Equ CREDENTIAL_SCOPES$ To "APP+USER USER APP GLOBAL"
|
|
Equ USERNAME$ To "USERNAME"
|
|
Equ PASSWORD$ To "PASSWORD"
|
|
Equ RESOLVED_CREDENTIALS$ To "RESOLVED_CREDENTIALS"
|
|
|
|
Equ CREDENTIAL_PARAMS$ To Username$:@vm:password$
|
|
Equ CREDENTIAL_LABELS$ To "Username":@vm:"Password"
|
|
Equ CREDENTIAL_ICONVS$ To "":@vm:""
|
|
Equ CREDENTIAL_DESCRIPTIONS$ To "UserName" |
|
|
:@vm: "Password"
|
|
|
|
* Structure of credential info
|
|
Equ credential_pos_id$ To 1
|
|
Equ credential_pos_id_scope$ To 1
|
|
Equ credential_pos_id_app$ To 2
|
|
Equ credential_pos_id_user$ To 3
|
|
Equ credential_pos_method$ To 2
|
|
Equ credential_pos_value$ To 3
|
|
Equ credential_pos_encryptor$ To 4
|
|
|
|
|
|
|
|
* Methods
|
|
Equ auth_method_literal$ To 'LITERAL'
|
|
Equ auth_method_prompt$ To 'PROMPT'
|
|
Equ auth_method_custom$ To 'CUSTOM'
|
|
Equ auth_methods$ To 'LITERAL PROMPT CUSTOM'
|
|
|
|
Equ MVBFS_rec_not_found$ To 202
|
|
|
|
* Structure of cached info in table info
|
|
* table info is just %fields% with some added NATIVE info
|
|
*table_info = tableid:@fm:table_Name:@fm:is_dict:@fm:is_bang:@fm:handler:@fm:volname:@fm:oi_colnames:@fm:native_colnames:@fm:native_tablename
|
|
Equ mvbfs_tbl_tableId$ To 1
|
|
Equ mvbfs_tbl_tableName$ To 2
|
|
Equ mvbfs_tbl_isDict$ To 3
|
|
Equ mvbfs_tbl_isBang$ To 4
|
|
Equ mvbfs_tbl_handler$ To 5
|
|
Equ mvbfs_tbl_volname$ To 6
|
|
Equ mvbfs_tbl_oiColnames$ To 7
|
|
Equ mvbfs_tbl_nativeColnames$ To 8
|
|
Equ mvbfs_tbl_nativeTablename$ To 9
|
|
|
|
/*
|
|
equ MVBFS_Vol_Name$ to 30 ; * name of the volume that owns the table
|
|
equ MVBFS_NATIVE_Name$ to 31 ; * name of the NATIVE table
|
|
equ MVBFS_NATIVE_ColNames$ to 32 ; * name of the NATIVE table
|
|
equ MVBFS_NATIVE_HANDLE$ To 33 ; * server handle assigned upon open
|
|
*/
|
|
* Structure of cached vol info
|
|
*vol_info = vol_name:@fm:handler:@fm:platform:@fm:credentials
|
|
Equ mvbfs_vol_volname$ To 1
|
|
Equ mvbfs_vol_handler$ To 2
|
|
Equ mvbfs_vol_platform$ To 3
|
|
Equ mvbfs_vol_credentials$ To 4
|
|
Equ mvbfs_vol_ShadowLoc$ To 5
|
|
|
|
* ----
|
|
* Layout of SYSPTR Volume definition
|
|
* ----
|
|
* items 1-6 are OI standard for any BFS, beyond that is BFS specific
|
|
/*
|
|
* Standard definitions used by RTP49
|
|
EQU VOL_PTR_TOKEN$ TO 1
|
|
EQU VOL_PTR_FS$ TO 2
|
|
EQU VOL_PTR_LOCATION$ TO 3
|
|
EQU VOL_PTR_CONTROL$ TO 4
|
|
*/
|
|
Equ MVBFS_Volume$ to 1 ; * the literal "VOLUME"
|
|
Equ MVBFS_BfsType$ to 2 ; * the literal "MVBFS"
|
|
Equ MVBFS_ControlLoc$ to 3 ; * <1,1> = SYSPTR ID; <1,2> = PLATFORM
|
|
Equ MVBFS_Shadow_loc$ to 4 ; * Location of the shadow dictionaries
|
|
Equ MVBFS_Override_loc$ to 5 ; * Name of the volume
|
|
Equ MVBFS_ConnectParams$ to 6 ; * Associated sub-list of connection parameter values
|
|
Equ MVBFS_RefreshTimeStamp$ to 13 ; * last time the list of tables was refreshed
|
|
|
|
|
|
* controlLoc subfields
|
|
Equ MVBFS_Ctl_Id$ To 1 ; * id of the sysptr record
|
|
Equ MVBFS_Ctl_Platform$ To 2 ; * platform
|
|
|
|
|
|
|
|
|
|
* rjc 01-30-08
|
|
* Dict Update Modes
|
|
* Control whether the bond will automatically Write changes From Server dict To shadow dict Or vice versa
|
|
* Notes:
|
|
* 1. Changes To symbolic columns In the shadow dict are never copied To the server
|
|
* 2. When OI creates a new Shadow dict, it will always create columns regardless of settings
|
|
* 3. CopyTable fs will copy colums To server regardless of settings
|
|
*
|
|
equ MVBFS_ServerDict_UpdateMode$ to 10 ; * Do we update the server dict when shadow dict changes?
|
|
equ MVBFS_ShadowDict_UpdateMode$ to 11 ; * Do we update the client dict when the server dict changes?
|
|
|
|
Equ UpdateMode_InsertUpdate$ To 0 ; * New And changed columns replicated. Overwrite existing columns
|
|
Equ UpdateMode_InsertOnly$ To 1 ; * Only new columns replicated. Do not overwrite existing columns
|
|
Equ UpdateMode_NoWrite$ To 2 ; * Do Not Write To foreign dict
|
|
|
|
Equ MVBFS_Password_key$ to "RFGXRM3AD2AC0F0B5"
|
|
|
|
|
|
equ mvbfs_Server_plugin_prefix$ to "RTI_MVBFS_SERVER_PLUGIN_"
|
|
|
|
* OMNISCRIPT calls - Some of the meta functions are implemented as omniscript calls
|
|
* start the numbering at 100 to skip over other RTP57 uses of omniscript
|
|
Equ mvbfs_OmniGetServerTables$ To 110 ; * List the tables on the server
|
|
Equ mvbfs_OmniGetServerColumns$ To 111 ; * List the columns for a table on the server
|
|
Equ mvbfs_OmniGetColumnProperties$ To 112 ; * Get properties of a column on the server
|
|
Equ mvbfs_OmniSetVolSync$ To 113 ; * Set the Volume level synchronization info, e.g write all changes, write new cols ,write-none
|
|
Equ mvbfs_OmniGetVolSync$ To 114 ; * Get the Volume level synchronization info
|
|
Equ mvbfs_OmniSetTableSync$ To 115 ; * Set the Table level synchronization info, e.g. specific columns, or literal-only
|
|
Equ mvbfs_OmniGetTableSync$ To 116 ; * Get the Volume level synchronization info
|
|
Equ mvbfs_OmniGetPlatform$ To 117 ; * get the platform For this volume
|
|
Equ mvbfs_OmniSetParam$ To 118 ; * add / update a username password pair in the session
|
|
Equ mvbfs_OmniWriteParam$ To 119 ; * add / update a username password pair in the "wallet" ( and the session)
|
|
Equ mvbfs_OmniLinkTable$ To 120 ; * Attach a table - creates the media pointers
|
|
Equ mvbfs_OmniUnLinkTable$ To 121 ; * Detach a table - deletes the media pointers
|
|
Equ mvbfs_OmniMakeShadowColumns$ To 122 ; * Map columns for a table
|
|
Equ mvbfs_OmniGetVolumes$ To 123 ; * List the volumes defined for this bfs, optional filter on platform
|
|
Equ mvbfs_OmniExecute$ To 124 ; * Execute a TCL command
|
|
Equ mvbfs_OmniCallSub$ To 125 ; * Call a subrooutine
|
|
Equ mvbfs_OmniCompileBasic$ To 126 ; * Compile a subroutine ( h = volname, n = filename, f= omniscript r = rowId
|
|
Equ mvbfs_OmniCalculate$ To 127 ; * Like CalculateEx. Have the server calculate a column value.
|
|
Equ mvbfs_OmniIconv$ To 128 ; * Iconv at server
|
|
Equ mvbfs_OmniOconv$ To 129 ; * Oconv at server
|
|
Equ mvbfs_OmniGetParam$ To 130 ; * get a connection string parameter
|
|
Equ mvbfs_OmniReadUAllowed$ To 131 ; * Return true if ReadU / WriteRelease are supported
|
|
Equ mvbfs_OmniReadU$ To 132 ; * Native ReadU call
|
|
Equ mvbfs_OmniWriteRelease$ To 133 ; * Native Write Call, will release the lock
|
|
Equ mvbfs_OmniAddCredential$ To 134 ; * Add an oi To 1host user login
|
|
Equ mvbfs_OmniRemoveCredential$ To 135 ; * Remove an oi To host user login
|
|
Equ mvbfs_OmniTransactionBegin$ To 136 ; * Begin a transaction
|
|
Equ mvbfs_OmniTransactionCommit$ To 137 ; * Commit a transaction
|
|
Equ mvbfs_OmniTransactionRollBack$ To 138 ; * Roll back a transaction
|
|
Equ mvbfs_OmniSetUser$ To 139 ; * Activate the credentials for the curent user. Need to detach / attach if the credentials change
|
|
Equ mvbfs_OmnigetUser$ To 140 ; * Activate the credentials for the curent user. Need to detach / attach if the credentials change
|
|
Equ mvbfs_OmniTransactionStatus$ To 141 ; * Get the current transaction status
|
|
Equ mvbfs_OmniGetDatasections$ To 142 ; * Look up the names of multlevel data tables in the table
|
|
Equ mvbfs_OmniListVolumes$ To 143 ; * Return an array of defined volumes and their connection status
|
|
Equ mvbfs_OmniRelease$ To 144 ; * Release a READU lock
|
|
Equ mvbfs_OmniEnablePooling$ To 145 ; * Enable pooling Connections
|
|
Equ mvbfs_OmniDisablePooling$ To 146 ; * Disable pooling Connections
|
|
Equ mvbfs_OmniSetAdditionalProperty$ To 147 ; * pass-through a property setting. User is responsible for setting a valid property. ( e.g. Timeout)
|
|
Equ mvbfs_OmniGetMediaHandle$ To 149 ; * return the media handle for a volumename, even if it is not attached yet
|
|
Equ mvbfs_OmniAnalyzeFile$ To 150 ; * return some file statistics
|
|
Equ mvbfs_OmniretrieveConnectionString$ To 151 ; * assemble the platfrom specific parameters into a connection string
|
|
Equ mvbfs_OmniStoreConnectionString$ To 152 ; * split the connection string into platfrom specific parameters in the paramcache
|
|
Equ mvbfs_OmniGetParamNames$ To 153 ; * Get the list of connection string parameter names
|
|
Equ mvbfs_OmniCatalogBasic$ To 154 ; * Catalog a compiled Program
|
|
Equ mvbfs_OmniUnCatalogBasic$ To 155 ; * UnCatalog a compiled Program
|
|
Equ mvbfs_OmniGetConnectionStatus$ To 156 ; * returns true if connected to server
|
|
Equ mvbfs_OmniConnect$ To 157 ; * returns true if connected to server
|
|
Equ mvbfs_OmniReadActiveList$ To 158 ; * returns list of keys in an active select list
|
|
|
|
common /mvbfs_Com/volCache%, tableCache%, selected_ids%,select_bys%,paramcache%, connCache%,extra3%
|
|
|
|
Declare Subroutine MVBFS
|