Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Appendix B: Developing New Connectors

Next >


 

CFMumps is a highly modular, orthogonal system: the Global API (lib.cfmumps.global) calls into the Basic API (lib.cfmumps.mumps), which in turn calls into the default connector configured in cfmumps.ini. Thus, lib.cfmumps.mumps is a wrapper, which simply passes the parameters of its component methods to the underlying connector.

In order for this architecture to work, CFMumps takes advantage of CF interfaces, which are essentially object-oriented blueprints, setting forth a set of methods and their parameters which a component must contain in order to implement the interface. 

The CFMumps connectors all implement the iMumpsConnector interface, which essentially requires the connector to implement the CFMumps Basic API

Below is the iMumpsConnector interface:

CFML
<!---
cfmumps CFML to GT.M adaptor
Copyright (C) 2014 Coherent Logic Development LLC
--->
<cfinterface>
<cffunction name="open" returntype="component" access="public" output="false"/>
<cffunction name="isOpen" returntype="boolean" access="public" output="false"/>
<cffunction name="close" returntype="component" access="public" output="false"/>
<cffunction name="set" returntype="void" access="public" output="false">
<cfargument name="globalName" type="string" required="true">
<cfargument name="subscripts" type="array" required="true">
<cfargument name="value" type="string" required="true">
</cffunction>
<cffunction name="get" returntype="any" access="public" output="false">
<cfargument name="globalName" type="string" required="true">
<cfargument name="subscripts" type="array" required="true">
</cffunction>
<cffunction name="kill" returntype="void" access="public" output="false">
<cfargument name="globalName" type="string" required="true">
<cfargument name="subscripts" type="array" required="true">
</cffunction>
<cffunction name="data" returntype="struct" access="public" output="false">
<cfargument name="globalName" type="string" required="true">
<cfargument name="subscripts" type="array" required="true">
</cffunction>
<cffunction name="order" returntype="struct" access="public" output="false">
<cfargument name="globalName" type="string" required="true">
<cfargument name="subscripts" type="array" required="true">
</cffunction>
<cffunction name="mquery" returntype="string" access="public" output="false">
<cfargument name="globalRef" type="string" required="true">
</cffunction>
<cffunction name="merge" returntype="numeric" access="public" output="false">
<cfargument name="inputGlobalName" type="string" required="true">
<cfargument name="inputGlobalSubscripts" type="array" required="true">
<cfargument name="outputGlobalName" type="string" required="true">
<cfargument name="outputGlobalSubscripts" type="array" required="true">
</cffunction>
<cffunction name="lock" returntype="boolean" access="public" output="false">
<cfargument name="globalName" type="string" required="true">
<cfargument name="subscripts" type="array" required="true">
<cfargument name="timeout" type="numeric" required="true" default="0">
</cffunction>
<cffunction name="unlock" returntype="boolean" access="public" output="false">
<cfargument name="globalName" type="string" required="true">
<cfargument name="subscripts" type="array" required="true">
</cffunction>
<cffunction name="mVersion" returntype="string" access="public" output="false"/>
<cffunction name="mFunction" returntype="any" access="public" output="false">
<cfargument name="fn" type="string" required="true">
<cfargument name="args" type="array" required="true">
</cffunction>
</cfinterface>
  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.