We have compiled a roadmap showing what we need to do prior to the 1.0 release of Libsmart. Here you will find all the modules and technologies we are currently working at to complete Libsmart.
The values in braces reflect the percentage the feature is completed.
smart
- (100%) 20050310 Document or fix the problems using the
managed<> template.
- (100%) 20050304 clarify uses of
version.hpp. Ok. version.hpp version() returns the current libsmart subversion revision.
smart::sys
- (100%) 20050124 Thread local storage support (put into
smart::sys::tls namespace).
- (100%) 20050124 Condition variables.
- (100%) 20050208 remove
Event::waitForMultiple(), clients need to use the not yet implemented signal bus.
- (100%) 20050224 Serial port interface tests for using the Edge port serial adapter cards.
- (100%) 20050208 Simplify
GenericLock/GenericTryLock in section.hpp (no: we leave them as they are)
- (100%) 20050125 remove
wait.hpp and move sleep() to timer.hpp
- (100%) 20050222 support
os_error.
- (50%) 20050310 consolidate threadpools and thread (make Thread class configurable).
- (100%) 20050308 Singleton template.
- (100%) 20050310 Rename
timer.hpp to time.hpp. Fix all dependencies.
- (100%) 20050310 Introduce global
smart/types.hpp. timeout_t is our first candidate. Fix all occurrences of timeout_t.
- (100%) 20050310 Introduce
os_error standard exception to support EINTR on Posix platforms. And support this throughout Libsmart.
smart::io
- (100%) File class to access files including asynchronous support for Win32 and Mac OS X. -> Post 1.0 (no Mac available)
- (0%) Functionality to change file flags.
smart::net
- (0%) UDP Sockets
- (100%) 20050124 network name resolver (
gethostbyname() interface)
- (100%) 20050208 do not require SocketSubsystem instantiation for win32 platforms.
- (100%) 20050414 avoid any memory allocations in
Socket::wait functions. Not tested yet. Implemented SocketWaitHandler.
- (100%) 20050222 support
os_error.
- (100%) 20050414 support EAGAIN in
poll(). Not tested yet.
- (100%) 20050519 support socket options.
smart::util
- (100%) 20050417 Fix namespace issue with the argscan module.
- (100%) 20050414 Move away
ManagedIdMap to libclever.
- (100%) 20050217 Decide what to do with the pool class. (stays in)
- (100%) 20050217 Decide what to do with the table and assoctable classes: Moved to removed_modules
- (100%) 20050217 Ringbuffer support -> Post 1.0
- (100%) 20050414
tlist support (lists based on elist supporting arbitrary types).
- (80%) integrate
pat-function in string.hpp
- (100%) 20040414 optimize
replace-function in string.hpp
- (100%) 20050224 Move
array tests to /tests
- (100%) 20050208 shared: use swap idiom for
operator =
- (0%) Add istring, case insensitive string container.
metatype
- (0%) Test and support
--optimize option again.
- (100%) 20050208 support swap and use swap idiom for
operator =
wf
- (100%) 200504014 Workflow core engine implementation. 20050119 The core is implemented, and the basic proof-of-concept is done. 20050123 Preliminary testing done.
- (100%) 20050414 Move workflow engine to libclever. It is not yet ready for use.
Conventions
- (100%) 20050310 Use
Param suffix instead of Config Settings or Setup for parameterisation classes (you may abbreviate parameterisation in documentation with p14n)
- (80%) 20050310 never use
assert(false), use assert(!"informative text").
- (90%) 20050310 use swap idiom for
operator =.
- (0%) 20050310 revalidate error text convention and change all texts which do not comply.
Tests
- (75%) Move the various module-tests to
tests/ subdirectory
- (50%) Consolidate and auto-run tests.
- (25%) 20050222 Create test for sockets
Examples
- (0%) make logger example complete (test client is missing)
- (0%) 20050208 document examples and move test-examples to tests.
Misc
- (0%) 20050222 Clarify and specify inter-module dependencies.
>>> At this point is our first milestone, when all the above issues are resolved, we will release an alpha version to the public.
Documentation
- (50%) complete reference documentation
- (0%) Metatype documentation
- (0%) Serial port interface documentation
- (100%) 20050304 Documentation of the code conventions used in Libsmart
- (0%) Cross-platform howto.
- (0%) Examples documentation.
Build scripts
- (80%) Support for cross-platform compilation (naming and
strip)
- (100%) 20040304 Better support for customisation of build settings (some people want to use
-Os instead of -O3, for example). Ok, CXXFLAGS and CFLAGS are now integrated and the configure default -g -O2 is now supressed.
Post 1.0 releases
- smart::sys: Signal-bus (a signalling system capable to wait for multiple events, from serial ports, sockets, timers and events).
- smart::sys: Support semaphores.
- smart::sys:
NPTL support.
- smart::sys: Application log, Event Log support.
- smart::util: Clean up
array<> container.
- smart::io: Ringbuffer support
- smart::io: File class for asynchronous file transfer support when compiled on Win32 and Mac OS X
- wf: 20050217 Reimplement workflow engine and implement workflow primitives and patterns.