| Introduction | Start | acdkcfgscript | Language | Library | Embedding | CfgScript IDE | Debugging | Templates | Samples | Wish List |
CfgScript uses ACDK libraries.
CfgScript has no own standard library, but simply make use of
the ACDK class libraries.
All ACDK Classes with provided meta information are available
in CfgScript.
By default all classes of the acdk_core package are available
(including acdk.lang, acdk.lang.ref, acdk.lang.reflect, acdk.lang.dmi,
acdk.io, acdk.util, acdk.util.logging, acdk.locale).
Also the classes of the Script interpreter are available
(acdk.cfgscript).
Addionally all classes implemented in various
Packages are available
in CfgScript.
For example
networking,
XML Processing,
GUI and so on.
If the type is not already loaded, CfgScript uses
the available
acdk::lang::ClassLoader to load the class.
Two ClassLoader are available for CfgScript by default:
The system class loader tries to load native code (.so/.dll)
which contains the ACDK/C++ class definition.
See also:
ACDK Nameservice.
Hundrets of classes are avialable via System ClassLoader including
acdk.text (including RegExp),
acdk.net,
acdk.vfile,
acdk.sql and
acdk.wx for GUI programming.
CfgScript classes may be included via
the
include statement.
Alternativelly the interpreter uses the CfgScript ClassLoader:
The CfgScript ClassLoader try to locate a
.csf
file with the same name as the loaded class:
For loading the class
mymodule.tools.MyClass
the CfgScript ClassLoader try to load the script
mymodule/tools/MyClass.csf
from
- each directory defined in the
CSFPATH
enviroment variable.
- and in the
$ACDKHOME/cfg/csf/lib/
directory.
See also:
acdkcfgscript.
See also:
acdk::cfgscript::ScriptClassLoader.
The CfgScript ClassLoader does not only work for Classes loaded in
the CfgScript script itself, but also in ACDK C++ and any DMI-enabled Scripting language
(like list, perl, python, tcl, visual basic, java):
// $ACDKHOME/cfg/csf/lib/mytest/MyCfgScriptTestClass.csf
class MyCfgScriptTestClass
implements Comparable
{
String value;
MyCfgScriptTestClass(String value)
{
value = val;
}
String getValue() { return value; }
int compareTo(MyCfgScriptTestClass other)
{
return getValue().compareTo(other.getValue());
}
}
|
And now in ACDK C++
// asumes the acdk_cfgscript library is linked to the executable
RString arg = "Hello";
// uses the class loader to load a cfgscript class, which can be used in
RComparable comp1 = (RComparable)Object::New("mytest.MyCfgScriptTestClass", arg);
RComparable comp2 = (RComparable)Object::New("mytest.MyCfgScriptTestClass", arg);
comp1->compareTo(comp2) == 0;
|
DMI is the basis language integration mechanism of ACDK called
Dynamic Method Invocation.
With the DMI-Bridge CfgScript can make usage of
COM,
CORBA or
Java classes
in a way that the code looks exactly the same like the server classes were
implemented in CfgScript.
Please refer to
Introduction for the COM sample.