C++ Application Framework


pschojer

Still Fresh
Joined
Oct 17, 2008
Messages
10
For all those looking for an application framework that handles
- XML processing
- command line handling
- configuration files (.properties, xml or ini)
- threading, mutex, sharedmemory, zip, encryption
- networking
- and many other things

take a look at the Portable Components:

http://pocoproject.org

Oh, and I have already pre-ordered my Pandora :)
So you can bet, the first thing I'll do is to cross-compile it for
ARM (which should be easy, we have the framework already running on several
different ARM platforms which had way less memory/CPU power).

Take a look at the dokumentation to get an idea
what the framework offers:

http://pocoproject.org/poco/docs/

May it be as useful for you guys as it has been for me :)

Peter
 
pschojer said:
take a look at the Portable Components:
Nice framework. I like what I'm seeing up to this point.

QUOTE

May it be as useful for you guys as it has been for me :)



It may not be on my Pandora-centric projects, but it'll be given consideration for other projects and adds another bolt for the ballista. ;)
 
Last edited by a moderator:
phrosty said:
I recommend Boost instead if possible. It feels much more like C++.
"Feels more like C++" has a lot of meanings to it, sadly. Both actually feel like C++ to this old hand.

One does more network-centric stuff. One is a generic platform with smart-pointers, etc.

You can actually end up using both. You could actually end up using Boost and ACE/TAO as well.

There's all kinds of options and no one single magic silver bullet. Anyone claiming there is or that there's "one true C++ way" of doing things is either mistaken or is selling something from my 25+ years in the industry. :D
 
Last edited by a moderator:
Svartalf said:
phrosty said:
I recommend Boost instead if possible. It feels much more like C++.
"Feels more like C++" has a lot of meanings to it, sadly. Both actually feel like C++ to this old hand.

One does more network-centric stuff. One is a generic platform with smart-pointers, etc.

You can actually end up using both. You could actually end up using Boost and ACE/TAO as well.

There's all kinds of options and no one single magic silver bullet. Anyone claiming there is or that there's "one true C++ way" of doing things is either mistaken or is selling something from my 25+ years in the industry. :D


I totally agree. Boost has its strong points, as has POCO and depending on what you are currently working, one of them might be better suitable. A framework should be easy to use and most importantly, it should save you a lot of time. For example, I do a lot of network programming and thus I use POCO.
I especially like the network stream interface in POCO which allows you to treat network resources as simple as local files:

CODE
Poco::Net::SocketAddress sa(HOST, PORT);
Poco::Net::StreamSocket sock(sa);
Poco::Net::SocketStream str(sock);

//send request
str << "DEFINE ! " << term << "\r\n" << std::flush;
str << "QUIT\r\n" << std::flush;

sock.shutdownSend();
//read response
StreamCopier::copyStream(str, std::cout);


And extend that to http or ftp builtin support:

CODE
Poco::Net::HTTPStreamFactory::registerFactory();
Poco::Net::FTPStreamFactory::registerFactory();
Poco::URI uri("http:/someserver/somefile.txt");
std::auto_ptr<std::istream> pStr(Poco::URIStreamOpener::defaultOpener().open(uri));
StreamCopier::copyStream(*pStr.get(), std::cout);



Pretty useful. Especially for people that don't want to mess with low level networking stuff
 
Last edited by a moderator:
Back
Top