bindings/
mg_dlm__define.pro
includes main-level programClass representing a DLM made from a list of wrapper routines.
Examples
This example creates a DLM to access a few internal IDL routines, but this class could be used to access any C routines. The internal routines are:
char *IDL_OutputFormatFunc(int type)
int IDL_OutputFormatLenFunc(int type)
int IDL_TypeSizeFunc(int type)
char *IDL_TypeNameFunc(int type)
void IDL_TTYReset(void)
MG_DLM
object with at least the BASENAME
property:
f = mg_dlm(basename='format_example', $
name='FORMAT_EXAMPLE', $
description='Example of using dist_tools bindings', $
version='1.0', source='dist_tools')
f->addRoutineFromPrototype, 'char *IDL_OutputFormatFunc(int type)'
f->addRoutineFromPrototype, 'int IDL_OutputFormatLenFunc(int type)'
f->addRoutineFromPrototype, 'int IDL_TypeSizeFunc(int type)'
f->addRoutineFromPrototype, 'char *IDL_TypeNameFunc(int type)'
f->addRoutineFromPrototype, 'void IDL_TTYReset(void)'
addRoutinesFromHeaderFile
method.
Next, a wrapper to access the value of a #define
constant is also
created:
f->addPoundDefineAccessor, 'IDL_TYP_UNDEF', type=3L
write
method writes the .c
and .dlm
files:
f->write
build
method invokes the compiler and linker to make the shared
object file containing the wrappers:
f->build, /show_all_output
register
method registers the DLM to be accessed in the current
IDL session:
f->register
MG_DLM
object is no longer needed:
obj_destroy, f
IDL> .run mg_dlm__define
IDL> print, idl_outputformatfunc(5)
%#16.8g
IDL> print, idl_outputformatlenfunc(5)
16
IDL> print, idl_typesizefunc(5)
8
IDL> print, idl_typenamefunc(5)
DOUBLE
IDL> print, get_idl_typ_undef()
0
Class description for mg_dlm
Properties
- basename set
basename (including possible path) for
.c
and.dlm
files- _extra init
- source set
source in DLM header
- build_date set
date in DLM header
- name get set
name in DLM header
- version set
version in DLM header
- description set
description in DLM header
Routines
mg_dlm::setProperty, basename=basename, name=name, description=description, version=version, source=source, build_date=build_date
Set properties.
mg_dlm::getProperty, name=name
Get properties.
mg_dlm::write
Writes the .c and .dlm files to the BASENAME location.
mg_dlm::build [, _extra=keywords]
Compiles and links the DLM.
mg_dlm::register
Register the DLM.
mg_dlm::load
Load the DLM.
mg_dlm::addInclude, name [, /system] [, header_directory=string] [, lib_directory=string] [, lib_files=strarr]
Add an include file to the DLM.
mg_dlm::addRoutine, routine
Adds a wrapper routine to the DLM.
mg_dlm::addRoutineFromPrototype, proto
Adds a wrapper routine defined by a prototype given by a string to the DLM.
mg_dlm::addRoutinesFromHeaderFile, filename
Adds wrapper routines from a header file.
mg_dlm::addPoundDefineAccessor, name, type=long
Adds wrapper routine to access the given #define value.
mg_dlm::cleanup
Free resources.
result = mg_dlm::init(_extra=_extra)
Create the DLM object.
mg_dlm__define
Define instance variables.
Routine details
top source mg_dlm::setProperty
mg_dlm::setProperty, basename=basename, name=name, description=description, version=version, source=source, build_date=build_date
Set properties.
Keywords
- basename
basename (including possible path) for
.c
and.dlm
files- name
name in DLM header
- description
description in DLM header
- version
version in DLM header
- source
source in DLM header
- build_date
date in DLM header
top source mg_dlm::getProperty
mg_dlm::getProperty, name=name
Get properties.
Keywords
- name
name in DLM header
top source mg_dlm::build
mg_dlm::build [, _extra=keywords]
Compiles and links the DLM.
Keywords
- _extra in optional type=keywords
keywords to the
MG_MAKE_DLL
routine
top source mg_dlm::addInclude
mg_dlm::addInclude, name [, /system] [, header_directory=string] [, lib_directory=string] [, lib_files=strarr]
Add an include file to the DLM.
Parameters
- name in required type=string
name of the include file, including the .h
Keywords
- system in optional type=boolean
set to indicate that the include is a system include file, i.e., that there should be <>'s around the name instead of ""'s
- header_directory in optional type=string
filepath to include file, if not in a standard location
- lib_directory in optional type=string
directory of lib files
- lib_files in optional type=strarr
library files
top source mg_dlm::addRoutine
mg_dlm::addRoutine, routine
Adds a wrapper routine to the DLM.
Parameters
- routine in required type=routine object
routine object to add to the DLM
top source mg_dlm::addRoutineFromPrototype
mg_dlm::addRoutineFromPrototype, proto
Adds a wrapper routine defined by a prototype given by a string to the DLM.
Parameters
- proto in required type=string
prototype of the routine to add to the DLM
top source mg_dlm::addRoutinesFromHeaderFile
mg_dlm::addRoutinesFromHeaderFile, filename
Adds wrapper routines from a header file.
Parameters
- filename in required type=string
header filename
File attributes
Modification date: | Thu May 17 10:39:22 2012 |
Lines: | 633 |
Docformat: | rst rst |