dynamic objects
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3665
HTML Objects 1.2.4
HTML Objects is a Perl module library for turning HTML tags into Perl objects. more>>
HTML Objects is a Perl module library for turning HTML tags into Perl objects. HTML Objects allows Web pages to be manipulated as a data structure rather than text.
Once manipulation is done, the entire page is generated via depth-first recursion.
<<lessOnce manipulation is done, the entire page is generated via depth-first recursion.
Download (0.025MB)
Added: 2006-05-09 License: GPL (GNU General Public License) Price:
1263 downloads
Dynamic MP3 Lister
Dynamic MP3 Lister is a PHP script for downloading/streaming MP3s from a Web server. more>>
Dynamic MP3 Lister was a project I started a long time ago to create dynamic lists of MP3s quickly and easily.
Features MP3 Information extraction for things like bitrate, channels, playtime and more.
Please note that this script is discontinued, and is only shown here now as an example of my work.
<<lessFeatures MP3 Information extraction for things like bitrate, channels, playtime and more.
Please note that this script is discontinued, and is only shown here now as an example of my work.
Download (0.009MB)
Added: 2005-05-05 License: Free for non-commercial use Price:
1643 downloads
Math Objects 0.1.3
Math Objects is a math template library for C++ using generic programming techniques. more>>
Math Objects is a math template library written in C++ using generic programming techniques. In order to use the "Math Objects" library, the user only has to include the header files he needs (e.g. Matrix.h, Polynomial.h etc.).
In order to compile the library the user needs an ISO/IEC 14882:1998 standard compliant C++ compiler (e.g. one that supports partial template specializations).
The math library has math objects like matrices, polynomials, rational functions, extended precision numbers, complex numbers etc. that can be handled in a similar way like basic numerical types (e.g. integers or floating point numbers).
One can access properties of a mathematical type through a (partial) specialization of a traits class for that type (AlgebraicTraits). Having the traits classes to expose properties of mathematical objects, one can define for example matrices of polynomials having extended precision complex coefficients and apply to them basic linear algebra algorithms using normal C++ syntax.
This library also implements two functions using two deterministic algorithms that compute the Smith form for polynomial matrices, and the Smith-McMillan form of a transfer functions matrix also keeping track of the transformation matrices.
These algorithms can be used to describe a MIMO (multi input-multi output) system by means of its zeros and poles and also give the MFD (matrix fraction description) of the system.
Enhancements:
- Recoded the LongInt class aiming for better runtime efficiency.
<<lessIn order to compile the library the user needs an ISO/IEC 14882:1998 standard compliant C++ compiler (e.g. one that supports partial template specializations).
The math library has math objects like matrices, polynomials, rational functions, extended precision numbers, complex numbers etc. that can be handled in a similar way like basic numerical types (e.g. integers or floating point numbers).
One can access properties of a mathematical type through a (partial) specialization of a traits class for that type (AlgebraicTraits). Having the traits classes to expose properties of mathematical objects, one can define for example matrices of polynomials having extended precision complex coefficients and apply to them basic linear algebra algorithms using normal C++ syntax.
This library also implements two functions using two deterministic algorithms that compute the Smith form for polynomial matrices, and the Smith-McMillan form of a transfer functions matrix also keeping track of the transformation matrices.
These algorithms can be used to describe a MIMO (multi input-multi output) system by means of its zeros and poles and also give the MFD (matrix fraction description) of the system.
Enhancements:
- Recoded the LongInt class aiming for better runtime efficiency.
Download (0.28MB)
Added: 2006-02-21 License: GPL (GNU General Public License) Price:
1343 downloads
Dynamic Probe Class Library 3.4.3
Dynamic Probe Class Library (DPCL) is an object-based C++ class library. more>>
Dynamic Probe Class Library (DPCL) is an object-based C++ class library that provides the necessary infrastructure to allow tool developers and sophisticated tool users to build parallel and serial tools through technology called dynamic instrumentation.
Dynamic Probe Class Library takes the basic components needed by tool developers and encapsulates them into C++ classes. Each of these classes provide the member functions necessary to interact and dynamically instrument a running application with software patches called probes.
Dynamic instrumentation provides the flexibility for tools to insert probes into applications as the application is running and only where it is needed.
Enhancements:
- This version is a minor update to DPCL that fixes a couple problems that have been reported since the v3.4.2 release
<<lessDynamic Probe Class Library takes the basic components needed by tool developers and encapsulates them into C++ classes. Each of these classes provide the member functions necessary to interact and dynamically instrument a running application with software patches called probes.
Dynamic instrumentation provides the flexibility for tools to insert probes into applications as the application is running and only where it is needed.
Enhancements:
- This version is a minor update to DPCL that fixes a couple problems that have been reported since the v3.4.2 release
Download (2.5MB)
Added: 2006-07-28 License: GPL (GNU General Public License) Price:
1185 downloads
Python Web Objects 1.3
Python Web Objects is a dynamic page generation system that allows the developer to embed Python code inside HTML. more>>
Python Web Objects is a dynamic page generation system that allows the developer to embed Python code inside HTML. It is similar in function to what JSP is to Java. ts a module that runs under mod_python and the Apache webserver. It is designed to offer a good balance between a providing a clean way to integrate design content from code, while doing so as fast as possible.
Download the latest version, then read the documentation. If youre into antiques, you can always browse the archives, but theres no reason to use an old version.
To install PWO, first decompress the tarball you downloaded.
$ gunzip pwo-0.XX.tar.gz
$ tar xvf pwo-0.XX.tar
Then, copy the pwo.py module into some location in your PYTHONPATH. The proper location is usually /usr/local/lib/python2.x/site-packages/
$ cp pwo-0.XX/pwo.py /usr/local/lib/python2.2/site-packages/
PWO should now be ready to use.
To configure a directory to make PWO pages, you first need to make sure that the directory is visible on the web. Ask your friendly Apache sysadmin if you dont know what this means. In this document, the path youll be keeping your .pwo files in is called /path/to/pwodir/, and its corresponding URL is http://yourserver/url/to/pwodir/.
Let Apache and mod_python know that the pwo.py will be handling requests to .pwo files in that directory. Do this by adding a few lines to our entry in your httpd.conf file.
AddHandler python-program .pwo
PythonHandler pwo
PythonDebug On
The PythonDebug directive is optional, but you will most likely want it enabled while you are developing. It will make exceptions print tracebacks to the browser in plain-text format. For security reasons, you should comment it out on production systems.
Now a file /path/to/pwodir/some_file.pwo will generate its page at http://yourserver/url/to/pwodir/some_file.pwo. Try copying a simple one of the included samples, like hello.pwo, to this directory to test your installation.
If youve never used PWO before, learn the syntax, and/or check out some sample pages.
<<lessDownload the latest version, then read the documentation. If youre into antiques, you can always browse the archives, but theres no reason to use an old version.
To install PWO, first decompress the tarball you downloaded.
$ gunzip pwo-0.XX.tar.gz
$ tar xvf pwo-0.XX.tar
Then, copy the pwo.py module into some location in your PYTHONPATH. The proper location is usually /usr/local/lib/python2.x/site-packages/
$ cp pwo-0.XX/pwo.py /usr/local/lib/python2.2/site-packages/
PWO should now be ready to use.
To configure a directory to make PWO pages, you first need to make sure that the directory is visible on the web. Ask your friendly Apache sysadmin if you dont know what this means. In this document, the path youll be keeping your .pwo files in is called /path/to/pwodir/, and its corresponding URL is http://yourserver/url/to/pwodir/.
Let Apache and mod_python know that the pwo.py will be handling requests to .pwo files in that directory. Do this by adding a few lines to our entry in your httpd.conf file.
AddHandler python-program .pwo
PythonHandler pwo
PythonDebug On
The PythonDebug directive is optional, but you will most likely want it enabled while you are developing. It will make exceptions print tracebacks to the browser in plain-text format. For security reasons, you should comment it out on production systems.
Now a file /path/to/pwodir/some_file.pwo will generate its page at http://yourserver/url/to/pwodir/some_file.pwo. Try copying a simple one of the included samples, like hello.pwo, to this directory to test your installation.
If youve never used PWO before, learn the syntax, and/or check out some sample pages.
Download (0.017MB)
Added: 2006-06-23 License: BSD License Price:
1218 downloads
Dynamic Imager 1.1.1
Dynamic Imager provides a small product with which you can generate dynamic images given a text. more>>
Dynamic Imager provides a small product with which you can generate dynamic images given a text.
This enables you to rotate text in browsers that do not support that.
The DynamicImager product is a small utility product that uses PIL to generate images on the fly, given a few parameters, like the font to use, a text, a background color, etc.
This enables you to rotate texts in browsers that normally do not support that option, but you can do much more.
The product currently supports:
- font
- text
- fill color
- background color
- width
- height
- rotation in degrees
- x offset for text
- y offset for text
Enhancements:
- includes a demo with all features of the product
<<lessThis enables you to rotate text in browsers that do not support that.
The DynamicImager product is a small utility product that uses PIL to generate images on the fly, given a few parameters, like the font to use, a text, a background color, etc.
This enables you to rotate texts in browsers that normally do not support that option, but you can do much more.
The product currently supports:
- font
- text
- fill color
- background color
- width
- height
- rotation in degrees
- x offset for text
- y offset for text
Enhancements:
- includes a demo with all features of the product
Download (0.15MB)
Added: 2007-02-15 License: GPL (GNU General Public License) Price:
982 downloads
Active Objects 2007-03-04
Active Objects is an implementation of the Active Object concept based on the boost::thread, boost::bind, boost::function libs. more>>
Active Objects is an implementation of the Active Object concept based on the boost::thread, boost::bind, and boost::function libraries.
The point of the library is to make taking advantage of multiprocessor machines as easy as possible. The library provides two types of functionality. The first is the ability to execute a function in a separate thread and automatically synchronize with the thread when the return value is needed.
The second is the ability to easily create a message cue for any existing class, and have that class process its messages asynchronously.
Enhancements:
- Minor code cleanup and code documentation updates.
<<lessThe point of the library is to make taking advantage of multiprocessor machines as easy as possible. The library provides two types of functionality. The first is the ability to execute a function in a separate thread and automatically synchronize with the thread when the return value is needed.
The second is the ability to easily create a message cue for any existing class, and have that class process its messages asynchronously.
Enhancements:
- Minor code cleanup and code documentation updates.
Download (0.32MB)
Added: 2007-03-07 License: Other/Proprietary License with Source Price:
961 downloads
Dynamic Copyright It! 1.0
Dynamic Copyright it! is an easy-to-install, easy-to-use PHP script that adds copyright notices to your images dynamically. more>>
Dynamic Copyright it! is an easy-to-install, easy-to-use PHP script that adds copyright notices to your images dynamically, meaning that the copyright notices are generated on the fly.
If you get tired of changing the copyright on your images from year to year, this tools makes it so you never have to. You can use the Dynamic Copyright It! script for your own benefit, or add it to your web site for additional functionality.
Main features:
- Dynamic Copyright It! is easy to install. Just unzip and upload, or if youre using it on a local server, just unzip!
- Choose your copyright text, the font size, even the color!
- Dynamic Copyright It! integrates the copyright notice right in the image, so its difficult to remove.
- Copyright notices are added to images on-the-fly, making it so you can easily integrate other scripts to alter the copyright text site-wide without having to edit all of your images manually.
<<lessIf you get tired of changing the copyright on your images from year to year, this tools makes it so you never have to. You can use the Dynamic Copyright It! script for your own benefit, or add it to your web site for additional functionality.
Main features:
- Dynamic Copyright It! is easy to install. Just unzip and upload, or if youre using it on a local server, just unzip!
- Choose your copyright text, the font size, even the color!
- Dynamic Copyright It! integrates the copyright notice right in the image, so its difficult to remove.
- Copyright notices are added to images on-the-fly, making it so you can easily integrate other scripts to alter the copyright text site-wide without having to edit all of your images manually.
Download (0.50MB)
Added: 2006-03-08 License: GPL (GNU General Public License) Price:
1325 downloads
dynamic window manager 4.3
dynamic window manager or dwm is a dynamic window manager for X11. more>>
dynamic window manager or dwm is a dynamic window manager for X11.
As founder and main developer of wmii I came to the conclusion that wmii is too clunky for my needs. I dont need so many funky features and all this hype about remote control through a 9P service, I only want to manage my windows in a simple, but dynamic way.
wmii never got finished because I listened to users, who proposed arbitrary ideas I considered useful. This resulted in an extreme CADT development model, which was a mistake. Thus the philosophy of dwm is simply to fit my needs (maybe yours as well). Thats it.
Main features:
- dwm has no Lua integration, no 9P support, no editable tagbars, no shell-based configuration, no remote control, and comes without any additional tools like printing the selection or warping the mouse.
- dwm is only a single binary, its source code is intended to never exceed 2000 SLOC.
- dwm is based on tagging and dynamic window management (however simpler than ion, wmii or larswm). It manages windows in tiling and floating modes. Either mode can be applied dynamically, depending on the application in use and the task performed.
- dwm doesnt distinguishes between layers, there is no floating or tiled layer. Wether the clients of currently selected tag are in tiled mode or not, you can re-arrange all clients on the fly. Popup- and fixed-size windows are treated floating, however.
- dwm is customized through editing its source code, that makes it extremely fast and secure - it does not process any input data which hasnt been known at compile time, except window title names and status text read from standard input. You dont have to learn Lua/sh/ruby or some weird configuration file format (like X resource files), beside C to customize it for your needs, you only have to learn C (at least editing header files).
- Because dwm is customized through editing its source code, its pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions.
- dwm uses 1-pixel borders to provide the maximum of screen real estate to clients. Small titlebars are only drawn in front of unfocused clients.
- dwm reads from standard input to print arbitrary status text (like the date, load, battery charge). Thats much simpler than larsremote, wmiir and what not...
- It can be downloaded and distributed under the conditions of the MIT/X Consortium license.
- Optionally you can install dmenu to extend dwm with a wmii-alike menu.
Enhancements:
- This release contains certain major bugfixes, especially regarding banning/unbanning client windows.
<<lessAs founder and main developer of wmii I came to the conclusion that wmii is too clunky for my needs. I dont need so many funky features and all this hype about remote control through a 9P service, I only want to manage my windows in a simple, but dynamic way.
wmii never got finished because I listened to users, who proposed arbitrary ideas I considered useful. This resulted in an extreme CADT development model, which was a mistake. Thus the philosophy of dwm is simply to fit my needs (maybe yours as well). Thats it.
Main features:
- dwm has no Lua integration, no 9P support, no editable tagbars, no shell-based configuration, no remote control, and comes without any additional tools like printing the selection or warping the mouse.
- dwm is only a single binary, its source code is intended to never exceed 2000 SLOC.
- dwm is based on tagging and dynamic window management (however simpler than ion, wmii or larswm). It manages windows in tiling and floating modes. Either mode can be applied dynamically, depending on the application in use and the task performed.
- dwm doesnt distinguishes between layers, there is no floating or tiled layer. Wether the clients of currently selected tag are in tiled mode or not, you can re-arrange all clients on the fly. Popup- and fixed-size windows are treated floating, however.
- dwm is customized through editing its source code, that makes it extremely fast and secure - it does not process any input data which hasnt been known at compile time, except window title names and status text read from standard input. You dont have to learn Lua/sh/ruby or some weird configuration file format (like X resource files), beside C to customize it for your needs, you only have to learn C (at least editing header files).
- Because dwm is customized through editing its source code, its pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions.
- dwm uses 1-pixel borders to provide the maximum of screen real estate to clients. Small titlebars are only drawn in front of unfocused clients.
- dwm reads from standard input to print arbitrary status text (like the date, load, battery charge). Thats much simpler than larsremote, wmiir and what not...
- It can be downloaded and distributed under the conditions of the MIT/X Consortium license.
- Optionally you can install dmenu to extend dwm with a wmii-alike menu.
Enhancements:
- This release contains certain major bugfixes, especially regarding banning/unbanning client windows.
Download (0.018MB)
Added: 2007-07-16 License: MIT/X Consortium License Price:
830 downloads
Games::Object 0.11
Games::Object is a Perl module to provide a base class for game objects. more>>
Games::Object is a Perl module to provide a base class for game objects.
SYNOPSIS
package MyGameObject;
use Games::Object;
use vars qw(@ISA);
@ISA = qw(Games::Object);
sub new {
# Create object
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new(@_);
bless $self, $class;
# Add attributes
$self->new_attr(-name => "hit_points",
-type => int,
-value => 20,
-tend_to_rate => 1);
$self->new_attr(-name => "strength",
-type => int,
-value => 12,
-minimum => 3,
-maximum => 18);
...
return $self;
}
package MyObjectManager;
use Games::Object::Manager;
use vars qw(@ISA);
@ISA = qw(Games::Object::Manager);
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new( , @_);
bless $self, $class;
...
return $self;
}
my $world = new MyObjectManager;
my $object = new MyGameObject;
$world->add($object);
ABSTRACT
The purpose of this module is to allow a programmer to write a game in Perl easily by providing a basic framework in the form of a module that can be either subclassed to a module of your own or used directly as its own object class. The most important items in this framework are:
Attributes
You can define arbitrary attributes on objects with rules on how they may be updated, as well as set up automatic update of attributes whenever the objects process() method is invoked. For example, you could set an attribute on an object such that:
It ranges from 0 to 100.
Internally it tracks fractional changes to the value but accessing the attribute will always round the result to an integer.
It will automatically tend towards the maximum by 1 every time process() is called on the object.
A method in your subclass will be invoked automatically if the value falls to 0.
This is just one example of what you can do with attributes.
Flags
You can define any number of arbitrarily-named flags on an object. A flag is a little like a boolean attribute, in that it can have a value of either true or false. Like attributes, flags can be created independently on different objects. No "global" flag list is imposed.
Load/Save functionality
Basic functionality is provided for saving data from an object to a file, and for loading data back into an object. This handles the bulk of load game / save game processing, freeing the programmer to worry about the mechanics of the game itself.
The load functionality can also be used to create objects from object templates. An object template would be a save file that contains a single object.
Object Managers
New to version 0.10 of this module is object managers. An object manager is a Perl object that allows you to manage groups of related game objects. The object manager allows you to relate objects together (for example, you could define a relationship that allows certain objects to act as containers for other objects). In effect, the object manager acts as your world or universe.
Like the game object class, the manager class can be subclassed, allowing you augment its functionality. An object manager can be loaded and saved, which in turn performs a load or save of the objects being managed by it.
<<lessSYNOPSIS
package MyGameObject;
use Games::Object;
use vars qw(@ISA);
@ISA = qw(Games::Object);
sub new {
# Create object
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new(@_);
bless $self, $class;
# Add attributes
$self->new_attr(-name => "hit_points",
-type => int,
-value => 20,
-tend_to_rate => 1);
$self->new_attr(-name => "strength",
-type => int,
-value => 12,
-minimum => 3,
-maximum => 18);
...
return $self;
}
package MyObjectManager;
use Games::Object::Manager;
use vars qw(@ISA);
@ISA = qw(Games::Object::Manager);
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = $class->SUPER::new( , @_);
bless $self, $class;
...
return $self;
}
my $world = new MyObjectManager;
my $object = new MyGameObject;
$world->add($object);
ABSTRACT
The purpose of this module is to allow a programmer to write a game in Perl easily by providing a basic framework in the form of a module that can be either subclassed to a module of your own or used directly as its own object class. The most important items in this framework are:
Attributes
You can define arbitrary attributes on objects with rules on how they may be updated, as well as set up automatic update of attributes whenever the objects process() method is invoked. For example, you could set an attribute on an object such that:
It ranges from 0 to 100.
Internally it tracks fractional changes to the value but accessing the attribute will always round the result to an integer.
It will automatically tend towards the maximum by 1 every time process() is called on the object.
A method in your subclass will be invoked automatically if the value falls to 0.
This is just one example of what you can do with attributes.
Flags
You can define any number of arbitrarily-named flags on an object. A flag is a little like a boolean attribute, in that it can have a value of either true or false. Like attributes, flags can be created independently on different objects. No "global" flag list is imposed.
Load/Save functionality
Basic functionality is provided for saving data from an object to a file, and for loading data back into an object. This handles the bulk of load game / save game processing, freeing the programmer to worry about the mechanics of the game itself.
The load functionality can also be used to create objects from object templates. An object template would be a save file that contains a single object.
Object Managers
New to version 0.10 of this module is object managers. An object manager is a Perl object that allows you to manage groups of related game objects. The object manager allows you to relate objects together (for example, you could define a relationship that allows certain objects to act as containers for other objects). In effect, the object manager acts as your world or universe.
Like the game object class, the manager class can be subclassed, allowing you augment its functionality. An object manager can be loaded and saved, which in turn performs a load or save of the objects being managed by it.
Download (0.083MB)
Added: 2006-09-30 License: Perl Artistic License Price:
1119 downloads
Dynamic Range Extender 1.00
Dynamic Range Extender takes two images and creates one composite image, which supposedly has increased dynamic range. more>>
Dynamic Range Extender plugin takes two images and creates one composite image, which supposedly has increased dynamic range.
With digital SLR cameras you can often use RAW format, which lets user select the exposure correction afterwards. The sample here is from Canon 10D.
Installation:
Just copy the script to your GIMP scripts directory. Usually this is ~/.gimp-2.0/scripts, but if you want to use the script system-wide then the directory might be something like /usr/share/gimp/2.0/scripts.
<<lessWith digital SLR cameras you can often use RAW format, which lets user select the exposure correction afterwards. The sample here is from Canon 10D.
Installation:
Just copy the script to your GIMP scripts directory. Usually this is ~/.gimp-2.0/scripts, but if you want to use the script system-wide then the directory might be something like /usr/share/gimp/2.0/scripts.
Download (MB)
Added: 2006-09-06 License: GPL (GNU General Public License) Price:
1149 downloads
Mock Objects for C++ 1.16.1
mockpp is a platform-independent generic unit testing framework for C++. more>>
mockpp is a platform independent generic unit testing framework for C++. Mock Objects for C++ goal is to facilitate developing unit tests in the spirit of Mock Objects for Java, EasyMock and jMock.
Mock objects allow you to set up predictible behaviour to help you test your production code by emulating some functionality your code depends on. This might for example be a huge database which is too difficult and time consuming to maintain just for testing purposes.
Originally I started with a port of MockObjects to C++ and wanted to keep the same interfaces. But in the meanwhile I found out more about Java and its differencens to C++ (its funny reflection api for example ) and so I had to change a bunch of details.
Additionally I included the working method of EasyMock. From my limited understanding of Java there seems to be something similar in MockObjects but I guess EasyMock is easier to use and certainly was easier to port to C++.
Enhancements:
- This release fixes a compilation issue on Mac OS platforms and a parsing problem with mockpp2xml.
<<lessMock objects allow you to set up predictible behaviour to help you test your production code by emulating some functionality your code depends on. This might for example be a huge database which is too difficult and time consuming to maintain just for testing purposes.
Originally I started with a port of MockObjects to C++ and wanted to keep the same interfaces. But in the meanwhile I found out more about Java and its differencens to C++ (its funny reflection api for example ) and so I had to change a bunch of details.
Additionally I included the working method of EasyMock. From my limited understanding of Java there seems to be something similar in MockObjects but I guess EasyMock is easier to use and certainly was easier to port to C++.
Enhancements:
- This release fixes a compilation issue on Mac OS platforms and a parsing problem with mockpp2xml.
Download (0.68MB)
Added: 2007-06-16 License: GPL (GNU General Public License) Price:
864 downloads
C++ XML Objects 1.0.0.7
C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML. more>>
C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML. Boost, The STL and Patterns are used extensively. All platforms which support Boost will be supported.
Sometimes there is a need to save hierarchies of C++ objects to a file (or DB etc), and then retrieve them at a later date. This project allows your classes to derive from a single object (called "xmlobj"), provide a few extra methods which allow the visitor pattern to work on them and register them so that they can be read or written to an XML stream.
The only overhead is a per-class type and name of each object (as std::string). The members dont need to be wrapped which means that your memory footprint wont really get any larger.
There are actually 2 separate projects which are combined to make "cppxmlobj". The first is a called "cppreflect" and provides a framework for providing reflection to C++ objects. Reflection is the mechanism by which your class members can be referenced by a string name. To achieve this, "cppreflect" uses the visitor pattern. The other project is "cpppersist" which adds the right methods to each object so that it can be read or written to some type of stream.
These projects are included as part of this (they arent separate SourceForge projects), but they are completely independent of each other, so you could build your own scheme to persist your objects to a different type of file, or provide some other type of mechanism to read and write your objects data.
To interoperate, these two projects share a common base class which is provided by another independent project called "cppcommon". This is a simple class which provides the abstract interfaces necessary for an object to provide different types of facilities.
The project uses all the facilities of Boost for the build system (and for a bunch of the implementation) so you will need to get and build it. It uses the same license as Boost which means you can freely use it (its really only useful as source code anywhere), as long as you dont change the copyright message at the top of the files.
If you find it useful, or find some bugs (and fix them, then get back to me and Ill incorporate the changes. If you do this through SourceForge, then we can track the bugs etc.
Enhancements:
- Added in delayed loading. This allows a system to only load in an object in an XML file when the object is actually referenced. Added in "platforms" to documentation for supported platforms. Now builds on OS X Tiger, GCC 4.0 and latest BOOST (1.33.1). Also builds on latest Linux. Change the documentation layout (thanks Spirit), and added Generic objects. Also changed to use a single license.txt referenced at the top of each file. Since this code has been stable and working for a while, next release will be beta if I can build on a few more systems.
<<lessSometimes there is a need to save hierarchies of C++ objects to a file (or DB etc), and then retrieve them at a later date. This project allows your classes to derive from a single object (called "xmlobj"), provide a few extra methods which allow the visitor pattern to work on them and register them so that they can be read or written to an XML stream.
The only overhead is a per-class type and name of each object (as std::string). The members dont need to be wrapped which means that your memory footprint wont really get any larger.
There are actually 2 separate projects which are combined to make "cppxmlobj". The first is a called "cppreflect" and provides a framework for providing reflection to C++ objects. Reflection is the mechanism by which your class members can be referenced by a string name. To achieve this, "cppreflect" uses the visitor pattern. The other project is "cpppersist" which adds the right methods to each object so that it can be read or written to some type of stream.
These projects are included as part of this (they arent separate SourceForge projects), but they are completely independent of each other, so you could build your own scheme to persist your objects to a different type of file, or provide some other type of mechanism to read and write your objects data.
To interoperate, these two projects share a common base class which is provided by another independent project called "cppcommon". This is a simple class which provides the abstract interfaces necessary for an object to provide different types of facilities.
The project uses all the facilities of Boost for the build system (and for a bunch of the implementation) so you will need to get and build it. It uses the same license as Boost which means you can freely use it (its really only useful as source code anywhere), as long as you dont change the copyright message at the top of the files.
If you find it useful, or find some bugs (and fix them, then get back to me and Ill incorporate the changes. If you do this through SourceForge, then we can track the bugs etc.
Enhancements:
- Added in delayed loading. This allows a system to only load in an object in an XML file when the object is actually referenced. Added in "platforms" to documentation for supported platforms. Now builds on OS X Tiger, GCC 4.0 and latest BOOST (1.33.1). Also builds on latest Linux. Change the documentation layout (thanks Spirit), and added Generic objects. Also changed to use a single license.txt referenced at the top of each file. Since this code has been stable and working for a while, next release will be beta if I can build on a few more systems.
Download (0.40MB)
Added: 2006-04-05 License: Freeware Price:
736 downloads
Dylan 1.0 beta1
Dylan is fast, flexible and capable of unusually sophisticated abstractions. more>>
Dylan is an advanced, object-oriented, dynamic language which supports the rapid development of programs.
When needed, the programmer can later optimize [his or her] programs for more efficient execution by supplying type information to the compiler. Nearly all entities in Dylan (including functions, classes, and basic data types such as integers) are first class objects.
Additionally Dylan supports multiple inheritance, polymorphism, multiple dispatch, keyword arguments, object introspection, and many other advanced features...
Main features:
- An advanced object model. Dylans object model is more powerful than those of most mainstream languages, but more familiar than what youd find in an academic language.
- Efficiency and flexibility. Dylan can be used as a dynamic prototyping language (like Smalltalk) or an efficient compiled language. Functional Developer, Functional Objects Dylan compiler, generates code as good as that of most C compilers. Still, it provides an interactive prototyping environment like those found in Smalltalk or Common Lisp.
- Support for advanced IDEs. The original implementation of Dylan stored code in a database and provided multiple views of how definitions were related. Cross-referencing, hypercode and online documentation were all popular research topics among the languages designers.
- Infix syntax. (Most languages, including C, are infix. LISP is prefix and Forth is postfix.)
<<lessWhen needed, the programmer can later optimize [his or her] programs for more efficient execution by supplying type information to the compiler. Nearly all entities in Dylan (including functions, classes, and basic data types such as integers) are first class objects.
Additionally Dylan supports multiple inheritance, polymorphism, multiple dispatch, keyword arguments, object introspection, and many other advanced features...
Main features:
- An advanced object model. Dylans object model is more powerful than those of most mainstream languages, but more familiar than what youd find in an academic language.
- Efficiency and flexibility. Dylan can be used as a dynamic prototyping language (like Smalltalk) or an efficient compiled language. Functional Developer, Functional Objects Dylan compiler, generates code as good as that of most C compilers. Still, it provides an interactive prototyping environment like those found in Smalltalk or Common Lisp.
- Support for advanced IDEs. The original implementation of Dylan stored code in a database and provided multiple views of how definitions were related. Cross-referencing, hypercode and online documentation were all popular research topics among the languages designers.
- Infix syntax. (Most languages, including C, are infix. LISP is prefix and Forth is postfix.)
Download (16.9MB)
Added: 2005-09-30 License: GPL (GNU General Public License) Price:
1484 downloads
C++ Machine Objects 0.9.4
C++ Machine Objects class library supports a subset of the UML statechart notation. more>>
C++ Machine Objects class library supports a subset of the UML statechart notation for implementing hierarchical state machines in straight C++, similar in spirit to the GoF "State" design pattern.
The currently supported features are hierarchical states, entry and exit actions, state histories, and state variables.
Installation:
The class library as such does not need to be installed. Just include the header file Macho.hpp to make use of it. Prerequisite however is a C++ compiler with sane support for templates.
Included are the example state machines HelloWorld, Example, Microwave and Test. To make the examples run just compile them in the directory they are in, for example:
# GCC
g++ -o microwave Microwave.cpp
# MSVC7
cl /EHsc Microwave.cpp
I like the GoF "State" design pattern. It enables implementing the important concept of state machines with common programming language features. By utilising only basic language mechanisms it is easy to apply in real-life software development.
Another important property that stems from this simplicity is orthogonality, meaning that the pattern can be combined with other design elements, patterns and idioms in arbitrary ways.
In contrast stand the tool supported approaches to state machine creation (of which there is no shortage). Based on code generators and graphical editors, they tend to generate incomprehensible code and forfeit orthogonality by necessarily being outside the domain of the programming language.
Unfortunately the "State" pattern is limited in scope because it does not allow for hierarchical state machines. This is regrettable because flat state machines tend to become unwieldy when getting bigger, for the sheer number of states they produce.
Hierarchical state machines as defined by the statechart notation alleviate this problem by giving an additional structural element through grouping states into hierarchies.
The "State" pattern in its original form is not capable of modeling state hierarchies. The Macho class library extends the concept with this possibility, while keeping the properties of simplicity (there possible) and tool independence from its inspiration.
Enhancements:
- This release adds the feature of backtracking to previous states by using "Snapshots".
<<lessThe currently supported features are hierarchical states, entry and exit actions, state histories, and state variables.
Installation:
The class library as such does not need to be installed. Just include the header file Macho.hpp to make use of it. Prerequisite however is a C++ compiler with sane support for templates.
Included are the example state machines HelloWorld, Example, Microwave and Test. To make the examples run just compile them in the directory they are in, for example:
# GCC
g++ -o microwave Microwave.cpp
# MSVC7
cl /EHsc Microwave.cpp
I like the GoF "State" design pattern. It enables implementing the important concept of state machines with common programming language features. By utilising only basic language mechanisms it is easy to apply in real-life software development.
Another important property that stems from this simplicity is orthogonality, meaning that the pattern can be combined with other design elements, patterns and idioms in arbitrary ways.
In contrast stand the tool supported approaches to state machine creation (of which there is no shortage). Based on code generators and graphical editors, they tend to generate incomprehensible code and forfeit orthogonality by necessarily being outside the domain of the programming language.
Unfortunately the "State" pattern is limited in scope because it does not allow for hierarchical state machines. This is regrettable because flat state machines tend to become unwieldy when getting bigger, for the sheer number of states they produce.
Hierarchical state machines as defined by the statechart notation alleviate this problem by giving an additional structural element through grouping states into hierarchies.
The "State" pattern in its original form is not capable of modeling state hierarchies. The Macho class library extends the concept with this possibility, while keeping the properties of simplicity (there possible) and tool independence from its inspiration.
Enhancements:
- This release adds the feature of backtracking to previous states by using "Snapshots".
Download (0.035MB)
Added: 2006-06-02 License: MIT/X Consortium License Price:
1240 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above dynamic objects search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed