site map
download
Contents
Chapter 1 Introduction
1.1 The Purpose of the Manual
1.2 Structure of this Manual
Part I Architecture of Config4*
Chapter 2 History
2.1 Introduction
2.2 Motivation
2.3 Development
2.4 Choosing a Name
2.5 Intertwining Development with Writing of Documentation
Chapter 3 Architectural Overview
3.1 Introduction
3.2 Hiding Implementation Details
3.3 Use of Multiple Hash Tables
3.4 Why Creation and Parsing are Separate Steps
3.5 Limitations
3.5.1 Number of
uid-
Entries
3.5.2 Lack of File name and Line Number Information
3.5.3 Information lost with round-trip
parse()
and
dump()
3.6 The Multi-step Build Process
3.7 Features Implemented with Delegation
3.7.1 Fallback Configuration
3.7.2 Security Policy
3.8 Thread safety
Chapter 4 Portability
4.1 Introduction
4.2 Compatibility with Old Compilers
4.3 Platform-specific Issues
Chapter 5 Coding Conventions
5.1 Introduction
5.2 Naming Conventions
5.3 Use of a Single Namespace/Package
5.4 Indentation and Spacing
Chapter 6 Parsers and Lexical Analysers
6.1 Introduction
6.2 Avoidance of Parser Generators
6.3 Lack of Error Recovery
6.4 A Hierarchy of Lexical Analysers
6.5 Parsing
@if
-then-
@else
statements
6.5.1 A Subtle Problem
6.5.2 An Imperfect Approach to Tackling the Problem
Part II Areas for Improvement
Chapter 7 Missing Components
7.1 Introduction
7.2 Cross-platform Build System
7.3 Javadoc and Doxygen Documentation
7.4 Installation Packages
7.5 Regression Test Suite
Chapter 8 Rethinking the Architecture
8.1 Introduction
8.2 Parsing
@if
-then-
@else
statements
8.3 Location Information in Error Messages
8.4 Uid- entries
8.5 Alternative Schema Validators
8.6 Drawback of an Abstract Base Class
Chapter 9 Other Programming Languages
9.1 Introduction
9.2 Scripting Languages
9.3 Advice for Implementers
Chapter 10 Internationalisation
10.1 Introduction
10.2 Unicode Concepts and Terminology
10.2.1 Planes and Surrogate Pairs
10.2.2 UCS-2, UTF-8, UTF-16 and UTF-32
10.2.3 Merits of Different Encodings
10.2.4 Transcoding
10.3 Unicode Support in Java
10.4 Unicode Support in C and C++
10.4.1 Limitations in the Standard C Library
10.4.2 Use of Third-party Unicode Libraries
10.4.3 UTF-8, UTF-16 or UTF-32?
10.4.4 Approach Currently Used in Config4Cpp
Chapter 11 Localisation
11.1 Introduction
11.2 One Possible Approach for Localisation