There are 33919 unique visitors to this page.

Boycott Trend Micro

This website contains the SPTK class library related materials. This library is using FLTK 1.x library for GUI classes. If you need UTF8 support in your application, then you can use FLTK-utf8 fork by Ian McArthur.

SPTK uses BSD 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.

2008-04-25

SPTK SVN

SPTK SVN is updated: SPTK PostgreSQL driver got another optimization. This time, the fetch performance is increased by about 24%.

2008-04-19

SPTK-3.5.7.08

SPTK 3.5.7.08 is out. You can download this version *nix tarball or zip archive .

This release introduces a new part of the site - DB tools . Currently, there is only one Sql2Cpp Perl script presented there. However, this script was used in multiple projects and has proven to be really useful.

2008-04-11

SPTK-3.5.7.07

This release includes several fixes for CSocket class. The patch was created by Dmitry Girsky. SPTK team thanks Dmitry for discovering and fixing these bugs:

  • In CSocket::close(), replaced the call of ::shutdown() with call of ::close(). The call of ::shutdown() doesn't actually close the socket and doesn't release the socket descriptor.
  • Added several exceptions thrown in case of errors in socket-related system calls.

You can download this version *nix tarball or zip archive .

2008-04-01

SPTK 3.5.7.06

This release accumulates all the latest fixes published in SVN.

You can download this version *nix tarball or zip archive .

2008-03-21

SPTK SVN

SPTK SVN is updated. Added several new methods to class CVariant: setExternalString(), setExternalBuffer(), and setExternalText(). The new methods allow to assign an external memory object to CVariant, without letting CVariant maintaining the object's memory.

These new methods were added to speed up the PostgreSQL driver. The PostgreSQL access library, libPQ, returns datasets (as SELECT results) presented somewhat like memory arrays. The old implementation of CVariant had to copy the dataset information before SPTK could access it. The new implementation only copies the numeric and datetime data, and copies the string or buffer pointers instead of duplicating the string or buffer memory.

There is also an interesting side effect of this change in SPTK. Now, it becomes possible to use faster working string or buffer parameters. For instance, now we can write:

string myName("Nemo");
CQuery query(&db,"INSERT INTO names (name) VALUES (:name)");
query.param("name").setExternalString(myName.c_str());
query.exec();

2008-01-20

SPTK-3.5.7-r1

This is bug-fix release. It fixes two errors in SPTK PGSQL driver.

  • Incorrect fetch of the BOOLEAN columns
  • Incorrect fetch of the VARCHAR columns with 0 length

You can download this version *nix tarball or zip archive .

2008-01-19

SPTK-3.5.7

SPTK 3.5.7 is out. You can download the updated version *nix tarball or zip archive .

This release contains a set of bug fixes for SPTK PostgreSQL driver. It also includes a new class, CProxyLog. The new CProxyLog class works almost like any other log class in SPTK, but the output is written into the parent log defined in CProxyLog constructor. The main idea is to provide thread-safe way for several threads to write into the same physical log.

The existing class CBaseLog was extended to support minimal log priority. For instance, defining minimal log priority as CLP_ERROR allows blocking all the log messages with less priority, like CLP_DEBUG or CLP_INFO. Also, you can use defaultPriority() method to define a default log message priority.

2008-01-07

SPTK SVN

Fixed the bug in PostgreSQL driver: Attempt to call PostrgeSQL function returning void was throwing an exception.

2007-12-04

SPTK SVN

Fixed the compilation bugs:

  • Fixed compilation of CSocket.cpp on FreeBSD - incorrect usage of strerror()
  • Fixed compilation of CDateTime.cpp on FreeBSD - in timezone determination
  • Fixed link of DB examples that required some libs

2007-11-02

SPTK-3.5.6

SPTK 3.5.6 is out. You can download the updated version *nix tarball or zip archive .

This release introduces general UTF-8 compatibility of the whole toolkit. It means that most of the components work with UTF-8 just fine.

The GUI components, however, require FLTK-utf8 in order to work with UTF-8. SPTK automatically selects FLTK-utf8 if both FLTK versions are installed on the system. Also, for masked inputs, UTF-8 masks with non-ASCII chars wouldn't work correctly.

The GUI headers in this version are separated into sptk3/gui directory. If your code uses #include then it wouldn't be affected. If you configured SPTK without FLTK support then GUI headers are not installed.

2007-09-27

SPTK 3.5.5-r1

This is a bug-fix release. You can download the updated version *nix tarball or zip archive . During the routine tests, the valgrind check revealed GPF conditions in new CParam implementation. The problem is fixed in this release.

2007-09-26

SPTK 3.5.5

SPTK 3.5.5 is out. You can download the updated version *nix tarball or zip archive .

After much consideration, SPTK team decided to switch the license to BSD license. BSD license is more permissive than LGPL we used before. The license description is already replaced in all the SPTK source code and effective from now on.

  • There are several bugs fixed in new CPostgreSQLDatabase class, and now it's more or less safe to use it instead CODBCDatabase (for PostgreSQL databases). The performance gain varies from 10% to 50%, depending on the performance of your PostgreSQL server and network.
  • The compilation on Sun Studio Pro compiler (under Solaris, including Sparc) was cleaned of warnings.
  • Fixed incorrect usage (in CODBCDatabase driver) of query parameters if the parameter name appeared more than once in the query. Fixed GPF in CPostgreSQLDatabase for the same reason.
  • Fixed conditional compilation of examples (depending on NO_FLTK and similar options).

2007-09-23

SVN

SPTK SVN is updated

  • Increased performance of the CQuery objects. Replaced abused usage of relatively expensive CDateTime::Now() for measuring execution time with faster alternative.
  • Increased performance of the CParam objects. Minimized memory reallocation in manipulations with string CParam objects.
  • Completed support for PostgreSQL database. The driver uses libpq to access the PostgreSQL database. The performance testing shows a gain of 20% to 50% comparatively to fastest ODBC driver available (from UnixODBC project).
  • Fixed compilation under Solaris with Sun Studio Pro compiler. The main problem was the non-standard implemetaion of some STL functions in Rogue Wave STL used by this compiler.
  • In CMake building system, added the ability to disable parts of the libraries with the defines: NO_ODBC, NO_SQLITE3, NO_POSTGRESQL, NO_ASPELL, NO_FLTK. The cmake configuration command can be something like this (to disable FLTK:

    cmake -DNO_FLTK:BOOLEAN=ON .

    Of course, you can combine several flags together if you need to. This is standard command line syntax for cmake.

2007-09-19

SVN

SPTK SVN is updated

Added preliminary support for PostgreSQL database. The driver uses libpq to access the PostgreSQL database. The examples/postgresql_test.cpp test is added to allow brief testing of the basic functions.

At this moment, only limited number of native types is supported. Some PostgreSQL native data types can't be used as query parameters. Also, only limited testing is done.

2007-09-01

SVN

The SPTK XML interface is altered to match the traditional implementation: The XML attributes now are presented as nodes. This allows XPath select to return XML attributes in the result list.

Also, a simple XML UTF-8 test was added to confirm that XML code is UTF-8 compatible. This test would be extended to include more different XML elements.

2007-08-04

SPTK SVN

Replaced any usage of Fl_Pixmap class with CThemes::getIconImage(). The directories that contained pixmap images are removed.

This has the advantage that images depend on current theme. Also, libsptk now doesn't compile these images in, so the library size is slightly decreased.

Fixed several bugs:

  • Fixed GPF in CListView when connected to CDirectoryDS or CFtpDS
  • Fixed GPF in message dialogs

2007-07-30

SPTK-3.5.4

SPTK 3.5.4 is out. You can download the updated version *nix tarball or zip archive .

This version fixes compilation problems while compiling with GCC-4.2.x. Also, fixed broken VC7 project files.

This version introduces a limited support for XPath in CXMLNode::select() method. The new example, examples/xml/xml_test3.cpp, shows supported XPath features. We wouldn't suggest to use these new features yet, but any comments are welcome.

2007-07-25

SVN

With the new release of GCC, 4.2.2, SPTK (latest release version) build is broken due to enforcement of language standard. Therefore, here is an update, currently in SVN only, that fixes the new error messages and warnings.

So, what's new and shiny?

  • SPTK now compiles under GCC-4.2.2
  • CMake build system now optionally builds available examples. The list of built examples is determined by the detected components such as FLTK, SQLite3, ODBC, ASpell
  • If examples were built with CMake build system, they would be installed into $PREFIX/share/sptk/bin by make install command
  • Fixed an old bug in CODBCDatabase::open() that incorrectly discovered ODBC driver type and caused SIGSEGV on some configurations.

The release version of SPTK with these features would be available within a week or two, after the proper testing.

2007-06-29

SVN

Updated CMake building system in SPTK. The changes include building the themes, better FLTK/ODBC/ASpell/SQLite3 detection, and added compiler optimization options. CMake builds were tested in Linux and Windows.

Also, SPTK now detects fltk-utf8-config (if installed in your system) and builds with FLTK-utf8 (if installed) or with regular FLTK.At this point, no modifications is made to support UTF8 in SPTK.

2007-06-23

SPTK 3.5.3

SPTK 3.5.3 is fixing just a single bug. It caused buttons to ignore change of image if the theme is changed. You can download the updated version *nix tarball or zip archive .

2007-06-13

SPTK 3.5.2

SPTK version 3.5.2 is out. You can download *nix tarball or zip archive .

News in this version: fixed bugs in CTar and themes that caused access violation.

2007-06-10

SVN

Fixed bug caused access violation in CTar during switching themes in cgroup_test. Bug was reported by Michael Perlov.

2007-06-06

Gentoo portage

Gentoo portage system is updated to include latest SPTK version 3.5.1, in unstable (~) mode.

2007-05-28

SPTK 3.5.1

Version 3.5.1 is, mainly, a bug fix. You can download *nix tarball or zip archive .

Bugs, fixed since 3.5.0:

  • Bugs in CSocket with incorrect size of sock_addr structure. Reported and fixed by Bernhard Buss
  • Bugs in CHTTPConnect with ignoring Content-Length HTTP header. Reported by Bernhard Buss
  • Removed FLTK dependencies introduced by moving datasource (DS) into sputil3 library, from sputil3

2007-05-23

SPTK 3.5.0

SPTK version 3.5.0 is out. You can download *nix tarball or zip archive .

News in this version:

  • An updated CMake building system. It now detects installed system components SPTK may use, much better
  • A new class, CGuard, that is a logical equivalent to CriticalSection in Win32.
  • Fixed several bugs in thread management

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