Introduction to gmNI

The gmNI capability is deprecated and is for internal use only.  Teams wishing to extend gmBasic operation with external code may use gmSL scripts or gmAPI executables.  Contact Us to learn more.

Though most of the operations needed by the translation tools, as executed via their internal runtime code, are sufficient to support migration projects, it is sometimes necessary to code at the C level. The facilities used to do this are called "gmNI" (pronounced "GeMiNI" and meaning the "Great Migrations Native Interface"). The term "Native Interface" is borrowed from Java. As described in Wikipedia, "The Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and to be called by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages such as C, C++ and assembly". The gmNI is a programming framework that enables Great Migrations translation tools to call and be called by native dynamic-link-libraries written in C.

The gmNI enables one to write native methods to handle situations when a migration cannot be written entirely in gmSL (Great Migrations Scripting Language), e.g., when the standard capabilities of the translation tool do not support some operation needed by the compiler, analyser, author, or auditor.

Code to be made available to a translation tool is linked into a dynamic-link-library that is executed by the tool when certain events occur. As part of that execution the library is passed a set of handles to the methods available within the translation tool.
Table of Contents