There are 48981 unique visitors to this page.

This website contains the SPTK class library related materials. This library is using FLTK 1.x/2.x library for GUI classes. If you need UTF8 support in your FLTK 1.x application, then you can use FLTK 1.3. FLTK 2.x supports unicode for any 2.x version.

SPTK uses GPL/LGPL License Agreement that can be found here.


Please, tell me how do you use SPTK?
In a production project
In a test project
I`m just checking it out
It`s not really useful
Other:


If you are brave and impatient you can get SPTK source code from SVN. The instruction is here. The complete SPTK changes history is presented in the websvn access .


For all your questions/suggestions/bugfixes to SPTK, as well as for general discussion sign up for our mailing list sptk@total-knowledge.com by sending mail to subscribe e-mail address . Archives can be found at here.

2011-07-17

SPTK SVN

This update includes a big set of bug fixes and performance optimizations. Most of them are called to life by our development of server products based on SPTK.


New Features

  • Added CDateTime support for parsing and printing UTC time.
  • Added CServer class (base class for listener threads).
  • Added initial support for binding to a selected local address.
  • Added support for DECIMAL type in MySQL driver
  • Added support for (dis)allowing local and external connections in CServer.
  • CBuffer: Added (de)compress and swap methods.

Bug fixes

  • CAsyncSocket: Fixed undetected socket hangup
  • CBaseLog: Fixed incorrect timestamps while printing to stdout.
  • Fixed bug on reopening a database with prepared queries
  • Fixed CMake module that detects SQLite3
  • Fixed incorrect datasize computation if actual field datasize was 0 (but field wasn't NULL)
  • Fixed incorrect execution of the prepared queries.
  • Fixed skipping attributes with empty values, i.e. namespace="", when loading XML file.
  • CSSLSocket: fixed bug with sending data > 16384 bytes

Performance Optimizations

  • CSSLSocket: Send performance optimization for sending data > 1024 bytes
  • CVariant: copy performance optimization
  • CXmlDoc: parser performance optimization
  • CQuery: fetch performance optimization

Other changes

  • CAsyncSockets: don't throw exception if error isn't critical
  • CDateTime: Better definition for compare operators
  • CDateTime: Better parser for UTC date and time string.
  • MySQL driver: added NULL value detection for (DATE, TIMESTAMP) fields.
  • Updated CVariant boolean to string conversion to return 'true' or 'false'

2011-06-27

SPTK-4.13

This release fixes some bugs and delivers some performance optimizations. You can download this release as *nix tarball .

Performance optimizations and functionality enhancements:

  • Added support for log rotation in CFileLogger.
  • XML parser performance optimization. The speed increase in parsing XML file or creating and filling CXmlDoc object is about 30%..60%, depending on the XML structure.
  • Added CDateTime support for parsing and printing UTC time. That feature is useful, for instance, when dealing with SOAP and RPC data presentation.

Bug fixes:

  • XML Parser: Fixed incorrect XML Text encoding if last encoding char is one the of the special chars that should be encoded in XML.
  • XML Parser: Fixed skipping attributes with empty values, i.e. namespace="", when loading XML file.

2011-03-11

SPTK SVN

There are a lot of changes accumulated in SVN since last SPTK news message. Some of the changes include just bug fixes, but some involve quite significant changes.

The most interesting new features are:

  • SPTK build system now much better detects PCRE, MySQL, PostgreSQL, and Oracle on Linux and Windows. The listed software is now found in more different paths and less dependent on software versions.
  • Added completely new implementation for CAsyncSockets. It's not based on libevent library anymore, and using native OS support for socket events on Linux and Windows. The reasons for this step were quite pragmatic: high CPU load by libevent in some situation, as well as incorrect implementation of error processing. The down side (for now) is the missing support for BSD and clones, and Solaris. The new CAsyncSockets is used in several server projects on Linux and Windows for several months already, and was pretty stable.
  • Optimized performance of CDateTime class (up to 70% performance increase) in several operations. Removed public access to CDateTime::gmtOffset and CDateTime::localTimeOffset, and added timeOffset (GMT_TIME, LOCAL_TIME, MACHINE_TIME) parameter to CDateTime::System() and CDateTime::Now(). Added timeZoneOffset() method to provide local time zone offset from GMT in hours.
  • Optimized performance of CVariant and CField classes on asString() method.
  • Added support for NO_ options in CMake project. That allows easy configuration of SPTK options in CMake GUI application.

There are a lot of changes accumulated from last SPTK news message. Some of the changes include just bug fixes, but some involve quite significant changes.

The most interesting new features are:

  • SPTK build system now much better detects PCRE, MySQL, PostgreSQL, and Oracle on Linux and Windows. The listed software is now found in more different paths and less dependent on software versions.
  • Added completely new implementation for CAsyncSockets. It's not based on libevent library anymore, and using native OS support for socket events on Linux and Windows. The reasons for this step were quite pragmatic: high CPU load by libevent in some situation, as well as incorrect implementation of error processing. The down side (for now) is the missing support for BSD and clones, and Solaris. The new CAsyncSockets is used in several server projects on Linux and Windows for several months already, and was pretty stable.
  • Optimized performance of CDateTime class (up to 70% performance increase) in several operations. Removed public access to CDateTime::gmtOffset and CDateTime::localTimeOffset, and added timeOffset (GMT_TIME, LOCAL_TIME, MACHINE_TIME) parameter to CDateTime::System() and CDateTime::Now(). Added timeZoneOffset() method to provide local time zone offset from GMT in hours.
  • Optimized performance of CSemaphore for wait times rounded to seconds.

Here are the bug fixes:

  • Fixed incorrect exit in fragmeneted_stream example.
  • Fixed Doxygen comments.
  • Added better thread termination for CTimerManager.
  • Multiple Windows compilation fixes (VS2008 and up).
  • Fixed CSysLogger to work with Windows Event Log.
  • Fixed compilation of PostgreSQL support on Windows.
  • Fixed support for PCRE under Windows.
  • Fixed PCRE detection on *nix.
  • Fixed CThread termination on Windows.
  • Fixed compilation Visual Studio when OpenSSL isn't installed.
  • Fixed async sockets client/server examples.
  • Fixed bug in writing large data chunks (> 1024 bytes) in CAsyncSocket.
  • Fixed Oracle driver Clob/Blob size overflow while fetching data. Fixed COracleDatabase::objectList() method.
  • Fixed MySQL driver futex lockup on Linux with MySQL version 5.40+.

The older news are saved here.


Valid XHTML 1.0! If you have any questions or comments regarding this page feel free to drop a line to Alexey Parshin.
Design by Michael Perlov