Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Appendix B: Developing New Connectors

Next >


 

Table of Contents

iMumpsConnector Interface

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:

Code Block
languagecoldfusion
titleCFML
linenumberstrue
<!---
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>