|
As kbmMW is a highly flexible framework, with tons of optional plugins for
3rdparty database API's, transports, compression and security methods etc, a
configuration system is needed.
During installation of kbmMW, a list of questions are asked where one can put
checkmarks in the features that kbmMW should support. What is essentially
happening is that the installation process creates a special file -
kbmMWConfig.inc
After the creation of the file, its the responsibility of the developer to
maintain this file. If kbmMW is used in multiple environments, some things, like
database API's etc, may be available in one environment (eg. Win32) while others
may not (eg. Net) etc.
For that reason kbmMWConfig.inc supports using preprocessor statements like
{$IFDEF DOTNET} etc. A list of the kbmMW defined definitions will follow.
This article will list the currently (at the point when the article is
written) available definitions and what they mean.
Predefined definitions.
Good for {$IFDEF...} etc. directives in your kbmMWConfig.inc file.
| Definition |
Explanation |
| LEVEL3 |
Delphi 3/C++Builder 3 or higher |
| LEVEL4 |
Delphi 4/C++Builder 4 or higher |
| LEVEL5 |
Delphi 5/C++Builder 5 or higher |
| LEVEL6 |
Delphi 6/C++Builder 6 or higher |
| LEVEL7 |
Delphi 7 or higher |
| LEVEL9 |
Delphi 2005 or higher |
| LEVEL10 |
BDS 2006 or higher |
| DELPHI |
The IDE is using the Delphi language. |
| BCB |
The IDE is using C++ language. |
| WIN32 |
The IDE is running under Win32. |
| LINUX |
The IDE is running under Linux. |
| DOTNET |
The IDE is running within .Net |
kbmMW Edition definitions.
One of the following definitions must be in the kbmMWConfig.inc
file:
| Definition |
Explanation |
| KBMMW_FREEWARE_EDITION |
The installation is a kbmMW Freeware Edition. |
| KBMMW_STANDARD_EDITION |
The installation is a kbmMW Standard Edition. |
| KBMMW_PRO_EDITION |
The installation is a kbmMW Professional Edition. |
| KBMMW_PROPLUS_EDITION |
The installation is a kbmMW Pro Plus Edition. |
| KBMMW_ENTERPRISE_EDITION |
The installation is a kbmMW Enterprise Edition. |
kbmMW general definitions.
The following definitions controls kbmMW general setup.
| Definition |
Explanation |
| KBMMW_NODEBUG |
If defined, no debug functions will be compiled in. Performance wise
its not going to make huge difference as debugging is default disabled at
runtime. |
| KBMMW_OPTIMIZED_MEMORYSTREAM |
If defined, a better optimized memory stream class will be used
instead of the default one. Since kbmMW internally manipulates streams
bigtime, it will often result in some performance improvement. |
| KBMMW_CONSOLE_SUPPORT |
If defined, the units Dialogs/QDialogs are not required. This is
specially interesting on Linux as this allows for application servers that
can run as normal console apps, without any X.11 requirements. |
| KBMMW_ZIPPED_USE_FASTZLIB |
If defined, kbmMW will use FastZLib instead of Borlands Zlib for compression. |
| KBMMW_SUPPORT_KBMMEMTABLE_PRO |
If kbmMW should supportkbmMemTable Pro Additions. Enabling this will
improve dataset performance (specially on large datasets... ie. 50.000 or
more records), but do require a complete installation of kbmMemTable Pro
Additions. |
kbmMW transport definitions.
The following definitions controls which transport mechanisms kbmMW should
support. Only enable the ones that you need. Remember for some of the transport
options, 3rdparty libraries must be correctly installed beforehand.
| Definition |
Explanation |
| KBMMW_LOCALTRANSPORT_SUPPORT |
If defined, a local transport is made available. The local transport
allows putting a client and an application server into the same executable
without having to alter the functionality or code of either. |
| KBMMW_INDYTCPIPTRANSPORT_SUPPORT |
If defined, TCP/IP based request/response type transports based on the
Indy sockets library is supported. The actual version of Indy to support
must be specified seperately. See further down. |
| KBMMW_DXSOCKTCPIPTRANSPORT_SUPPORT |
If defined, TCP/IP based request/response type transports based on the
DXSocks sockets library is supported. DXSocks v3 and Oblivion. |
| KBMMW_SYNAPSETCPIPTRANSPORT_SUPPORT |
If defined, TCP/IP based request/response type transports based on the
Synapse sockets library is supported. |
| KBMMW_ISAPITRANSPORT_SUPPORT |
If defined, ISAPI compatible request/response type transports based on
either Indy or DXSocks libraries (see further down) is supported. |
| KBMMW_NEXUSDBTRANSPORT_SUPPORT |
If defined, request/response type transports based on the NexusDB
communication libraries is supported. In addition define KBMMW_USING_NEXUSDB2 if NexusDB v2 is used. For v1, simply dont define it. |
| KBMMW_INDYUDPSAFTRANSPORT_SUPPORT |
If defined, UDP broadcast/peer2peer messaging type transports based on
the Indy sockets library is supported. |
| KBMMW_INDYTCPIPSAFTRANSPORT_SUPPORT |
If defined, TCP/IP hub/spoke messaging type transports based on the
Indy sockets library is supported. |
| KBMMW_SYNAPSEUDPSAFTRANSPORT_SUPPORT |
If defined, UDP broadcast/peer2peer messaging type transports based on
the Synapse sockets library is supported. |
| KBMMW_STREAMSEC_SSHSAFTRANSPORT_SUPPORT |
If defined, SSH hub/spoke messaging type transports based on
StreamSec's v3 SSH implementation is
supported. |
kbmMW transport plugin definitions.
The following definitions controls which transport plugins kbmMW should
support.
| Definition |
Explanation |
| KBMMW_TRANSPORTPLUGIN_SS2_TLS |
If defined, StreamSec II TLS/SSL transport plugin is supported providing TLS/SSL support on TCP/IP request/response type transports. |
kbmMW transport details.
The following definitions controls details related to which transport mechanisms kbmMW should
support. Only enable the ones that you need. Remember for some of the transport
options, 3rdparty libraries must be correctly installed beforehand.
| KBMMW_USING_INDY_8_00_23 | If defined, kbmMW supports Indy 8.0.23. |
| KBMMW_USING_INDY_9 | If defined, kbmMW supports Indy 9. |
| KBMMW_USING_INDY_10 | If defined, kbmMW supports Indy 10.1.x unless KBMMW_SUPPORT_INDY_10_0_52 is also defined, in which case Indy 10.0.52 is supported. |
| KBMMW_ISAPITRANSPORT_USING_DXSOCK | If defined, kbmMW's ISAPI support will use DXSocks instead of Indy. |
kbmMW transport stream formats.
The following definitions controls which transport stream formats kbmMW should support. A transport stream format
is usually not tied to a specific transport mechanism/API. By default the transport stream format STANDARD is always available.
| KBMMW_HTTP_TRANSPORTSTREAM_SUPPORT | HTTP tunneling streamformat. The format supports HTTP proxy servers etc. to allow access thru even quite strict firewall setups. |
| KBMMW_ZIPPED_TRANSPORTSTREAM_SUPPORT | Compressed version of STANDARD. Its using Zip compression. It require the Zlib or FastZLib libraries to be available. |
| KBMMW_ZIPPED_HTTP_TRANSPORTSTREAM_SUPPORT | To be understood as COMPRESSED within HTTP. It require the Zlib or FastZLib libraries to be available. |
| KBMMW_SOAP_TRANSPORTSTREAM_SUPPORT | SOAP streamformat. The actual SOAP definition used is defined in kbmMW.wsdl which is part of the kbmMW installation. |
| KBMMW_XML_TRANSPORTSTREAM_SUPPORT | XML streamformat. Provides data as XML. The actual XML format is explained in a whitepaper. Please check kbmMW/University page. |
kbmMW transport stream details.
The following definitions controls details related to transport stream formats.
| KBMMW_V200_COMPAT_STRINGCONVERSION | If defined, ensures that the streamformat is kbmMW v2 compatible. It is usually recommended to use the latest streamformat version and thus not recommended to enable this definition. |
kbmMW cryptography support.
The following definitions controls which cryptography libraries kbmMW should support.
| KBMMW_CRYPT_SS2 | StreamSec II syncrone cryptography. |
| KBMMW_CRYPT_DCPCRYPT2 | DCPCrypt v2 cryptography. |
kbmMW special services support.
The following definitions controls which special services kbmMW should support.
| KBMMW_JAVA_SERVICE_SUPPORT | If defined kbmMW supports a Java supporting service, which means that business code can be written in Java. |
ReportBuilder DADE support.
The following definitions controls if kbmMW should support ReportBuilder DADE and which version.
| KBMMW_RBDADE_SUPPORT | If defined kbmMW supports ReportBuilder DADE. |
| KBMMW_USING_5_1_OLDER_RB | If defined and KBMMW_RBDADE_SUPPORT is also defined, kbmMW supports ReportBuilder v5.1 and older. |
| KBMMW_USING_7_NEWER_RB | If defined and KBMMW_RBDADE_SUPPORT is also defined, kbmMW supports ReportBuilder v7 and newer. |
Database API support.
The following definitions controls what databases kbmMW natively should support.
| KBMMW_BDE_SUPPORT | Borland Database Engine. |
| KBMMW_MT_SUPPORT | kbmMemTable backend support. I.e. use a kbmMemTable as a source for clients to obtain data from. |
| KBMMW_DBX_SUPPORT | Borland DBExpress support. |
| KBMMW_FF2_SUPPORT | TurboPower FlashFiler 2 support. |
| KBMMW_DBISAM3_SUPPORT | ElevateSoft DBIsam v3 support. |
| KBMMW_DBISAM4_SUPPORT | ElevateSoft DBIsam v4 support. |
| KBMMW_ADS6_SUPPORT | Advantage Database Systems v6 or newer support. |
| KBMMW_IBX5_SUPPORT | Borland IBExpress support. |
| KBMMW_IBO_SUPPORT | IBObjects support. |
| KBMMW_ADOX_SUPPORT | Borland ADOExpress support. |
| KBMMW_DADO_SUPPORT | Deersoft ADO support. |
| KBMMW_ZEOS6_SUPPORT | Zeos v6 support. |
| KBMMW_ZEOSMSSQL_SUPPORT | Zeos v5 for MSSQL support. |
| KBMMW_ZEOSMYSQL_SUPPORT | Zeos v5 for MySQL support. |
| KBMMW_ZEOSPROGRESS_SUPPORT | Zeos v5 for PostgreSQL support. |
| KBMMW_ZEOSDB2_SUPPORT | Zeos v5 for DB2 support. |
| KBMMW_ZEOSORACLE_SUPPORT | Zeos v5 for Oracle support. |
| KBMMW_ZEOSIB_SUPPORT | Zeos v5 for Interbase support. |
| KBMMW_MYSQLDAC_SUPPORT | MySQLDAC support. |
| KBMMW_DOA_SUPPORT | Direct Oracle Access support. |
| KBMMW_ODAC4_SUPPORT | ODAC v4 or v5 Oracle support. |
| KBMMW_DAO_SUPPORT | Diamond Access support. |
| KBMMW_X_SUPPORT | kbmMW Cross Adapter support (Recommended!). |
| KBMMW_NEXUSDB_SUPPORT | NexusDB v1 or v2 support. |
| KBMMW_SD_SUPPORT | SQLDirect support. |
| KBMMW_UIB_SUPPORT | Unified Interbase support. |
| KBMMW_FIB_SUPPORT | FIB (Interbase/Firebird) support. |
| KBMMW_ABS_SUPPORT | Absolute DB support. |
| KBMMW_APOLLO_SUPPORT | Apollo DB support. |
| KBMMW_SDAC3_SUPPORT | SDAC 3 (MSSQL) support. |
| KBMMW_POSTGRESQLDAC_SUPPORT | PostgreSQL DAC support. |
| KBMMW_NATIVEDB_SUPPORT | NativeDB support. |
Kim Madsen
(Top)
|