Downloads

Code Farms no-nonsense free-source licence

(brief and in simple English, allows the use on projects which are/are not open source)

  • Keep any number of copies of this software or pass them to your friends. However, you must not place it on internet for download or automatic delivery.
  • If you use this software in your product, any description, documentation, press release, publication, or reference to your product which is longer than 100 words must acknowledge this fact. For example: "This product is based on Code Farms DOL library" or "This software was developed with Code Farms PPF library".
  • If you improve the software, expand it or develop with it a product which serves the same purpose, the new product must NOT be distributed under a new name, but as a "version" of the original software. For example, if you develop a new class library based on InCode library, your new library must be called "XYZ version of InCode library", where XYZ is your name or the name of your new product or your company.
  • Code Farms provides no warranty. The user takes the responsibility for any direct or indirect damages caused by this software. 

If you need help with any of these products

email to ask(at)codefarms.com

Maturity of individual products:

  • DOL (Data Object Library) has been the workhorse of Code Farms for over two decades. It was used on many large projects, and no error was reported for years. It provides a high performance and extensive library of data structures but, internally, it uses macros and is hard to modify and maintain. 
  • PPF (Persistent Pointer Factory)  provides a simple, smart-pointer class simple which can make any code or data structure library persistent with a superb efficiency of data access and storage, including a user controlled paging of the data. You can download the combination of PPF with InCode data structures as a separate package.
  • PTL (Pattern Template Library) provides a simple and elegant implementations of intrusive data structures and patterns such as composite of finite state machine without a code generator - it is based on a massive use of multiple inheritance and C++ templates. We believe this approach has a more academical than practical value. The original 1997 code still works flawlessly in all environments.
  • InCode is a skeleton of a data structure library designed with extended templates, but without persistence. It has the basic set of data structures which we expect to grow. In the benchmark, the combination of InCode/PPF and InCode/QSP proved powerful. These combinations can be downloaded as separate packages.
  • QSP (Quasi Single Page) is a new, modern, elegant and superbly fast algorithm for persistence. You can download its Objective C version combined with InCode data structures for MAC or iPhone. In subdirectory 'test' is the source of the of the benchmark as reported in Chapters 6.3 and 7.8 of the Soukup & Machacek's book. Warning: This  source is only a verification of the SQP concept; it has not been used on any real-life project yet.
  • InCode with PPF persistence is another combination with superb performance, but it also can handle bigger data than the available RAM. Directory ppfIC/alib/lib has the InCode library without persistence, ppfIC/lib has InCode classes where all the pointers have been replaced by the smart persistent pointer class. For example  Book *pb; is replaced by PTR(Book) pb; Directory ppfIC includes all files from ppf plus codegen.exe from ppfIC/alib. The conversion of individual classes is simple and routine, but not all classes from InCode have been converted. The code has not been used for any real-life application yet. The code of the benchmark from Soukup & Machacek's book is in ppfIC\test\bench.
  • Layout is the automatic UML class diagram generator for either DOL or InCode libraries, which can also run from a small, hand-coded file or from a schema description converted to a certain format. It uses advanced algorithms for the layout of the silicon chips which have been modified to create eye-pleasing and logic-reflecting diagrams. The diagram is either produced as an svg file which can be viewed with any browser, or by creating a Java program which displays a scrollable window with the diagram in it. For large and complex diagrams, the Java display is generally better. The program is safe and reliable to use, but we still consider it an experimental version, mainly because the display of ManyToMany relations which show in the diagram, but not in the proper, standard way.

Product

Version

(book version)

 Downloading

Documentation only

Data Object Library

(Windows 32/64, Linux 32 bits)

VC++ 2007,2010,2013,2015

 v10.0

(9.3)

 download zip file

(unzip and follow instruction in orgc\readme.txt)

 

  included in the download

Persistent Pointer Factory (C++) (Windows 32 bits/Linux 32 bits)

VC++ 2007,2010,2013,2015

 v3.8

(3.6)

   download zip file

  PDF  

  HTML (online access)

Pattern Template Library (C++ )(Windows/Unix)

VC++ 2007,2010,2013,2015

 v1.3

(1.3)

  download  zip file 

  PDF 

  HTML (online)

InCode Data Structure Library

 (C++/Java Windows/Unix)

VC++ 2007,2010,2013,2015

 v3.1

(3.0)

   download zip file

Complete Docs 

zip/pdf 

 

Layout - UML Diagram Generator

(for any language, source in C++)

v2.3

experimental

  download zip file (only with the source)

InCode with PPF persistence

(Windows, C++)

v3.8

(3.6)

   download zip file (only with the source)

QSP persistence + InCode

(Objective-C, mac/iPhone)

v.1.0

(1.0)

   download zip file (see Soukup & Machacek't book)

IN_CODE Modeling documentation, access to individual parts:

online

 v3.0    

C++ tutorial      

Java tutorial      

 UML generator

download PDF                

 v3.0

C++ tutorial        C++ classes

Java  tutorial  Java classes       

 UMLgenerator          

Notes:

  1. All products come in full source, and have to be compiled/installed according to the instruction in howto.txt or read.txt file.
  2. The source of PPF is set up for Windows. To run on Linux, edit file factory.h: comment #define MICROSOFT and #define DOS, and uncomment the following 3 statements.