You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(622) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(303) |
Feb
(64) |
Mar
(5) |
Apr
(63) |
May
(82) |
Jun
(53) |
Jul
(50) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: stephan b. <sg...@us...> - 2004-12-28 01:10:58
|
Update of /cvsroot/pclasses/pclasses2/src/s11n/proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16739 Modified Files: createRegSerTraits.sh Log Message: added -list and -map shortcuts. Index: createRegSerTraits.sh =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/s11n/proxy/createRegSerTraits.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- createRegSerTraits.sh 28 Dec 2004 00:54:04 -0000 1.1 +++ createRegSerTraits.sh 28 Dec 2004 01:10:47 -0000 1.2 @@ -1,5 +1,7 @@ #!/bin/bash +# Docs are below... +######################################################################## function show_help() { cat <<EOF @@ -38,11 +40,39 @@ -ns namespace_of_s11n [${o_sns}] An obscure option to help me port code between pclasses.com::s11n and s11n.net::s11n. + If used, this option needs to be as early + in the args list as possible (BUG: must come + before any options which rely on the namespace). e.g.: -ns P::s11n + -list + SerializableClass is compatible with the + std::list proxy, and should use it. + The -p option will trump the default list + proxy, making this a no-op if -p is used. + + -list-ios + Like -list, but use a proxy optimized for use + with a container of an i/ostreamable type. + + -map + Like -list, but applies to map-compatible types. + + -map-ios + Like -list-ios, but for maps. Both key and value types + must be i/ostreamable. + EOF } # show_help() +o_sns="::P::s11n" # must unfortunately have default val up here. +# proxy vars: yes, the single-quotes are intentional +i_proxy_list='${o_sns}::list::list_serializable_proxy' +i_proxy_list_s='${o_sns}::list::streamable_list_serializable_proxy' +i_proxy_map='${o_sns}::map::map_serializable_proxy' +i_proxy_map_s='${o_sns}::map::streamable_map_serializable_proxy' + + ############################## args parsing... while test x != "x$1"; do a=$1 @@ -81,9 +111,28 @@ shift continue ;; + -list) + : ${o_proxy="$(eval echo ${i_proxy_list})"} + continue + ;; + -list-ios) + : ${o_proxy="$(eval echo ${i_proxy_list_s})"} + continue + ;; + -map) + : ${o_proxy="$(eval echo ${i_proxy_map})"} + continue + ;; + -map-ios) + : ${o_proxy="$(eval echo ${i_proxy_map_s})"} + continue + ;; -?|--help|-h) o_show_help=1 - cotinue + # We collect all the args before showing help + # so we can show them in context in the help + # text. + continue ;; *) echo "Unknown argument: $a" @@ -91,12 +140,14 @@ esac done +############################## arg defaults... : ${o_abstract=0} -: ${o_sns="::P::s11n"} : ${o_proxy="${o_sns}::default_serialize_functor"} : ${o_clname="${o_class}"} : ${o_base=${o_class}} : ${o_reg_h="<pclasses/s11n/reg_serializable_traits.h>"} +: ${o_show_help=0} + test x1 = "x${o_show_help}" && { @@ -109,10 +160,10 @@ exit 1 } # end usage text -# getopt "c:" "$@" +do_proxy_reg=1 -test x != "x${o_class}" && { +test x1 = "x${do_proxy_reg}" && { # Note the use of HARD TABS in the <<-EOF!!! cat <<-EOF |
From: stephan b. <sg...@us...> - 2004-12-28 00:54:23
|
Update of /cvsroot/pclasses/pclasses2/src/s11n/proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13244 Added Files: createRegSerTraits.sh Makefile.toc Log Message: egg --- NEW FILE: Makefile.toc --- #!/usr/bin/make -f include toc.make DIST_FILES += createProxyStubHeader.sh all: --- NEW FILE: createRegSerTraits.sh --- #!/bin/bash function show_help() { cat <<EOF $0: Creates s11n Serializable class registration code for s11n using a traits registration supermacro. Parameters: (* = required) * -c SerializableClass -b BaseInterfaceClass [${o_base}] The base Serializable type. i.e., that used in calls to de/serialize<Base>() and friends. Default is the -c class. -a The SerializableClass is Abstract (or otherwise cannot or shoult not be instantiated by the classloader). Default is false. -n SerializableClassName [${o_clname}] Default is that from -c. -r <inc/registration_header.h> [${o_reg_h}] -p SerializableProxyClass [${o_proxy}] Sets the s11n proxy class. SerializableClass must conform to the s11n interface supported by this proxy. The default proxy requires that SerializableClass implement two operator()(NodeType) overloads, as described in the libs11n manual. -ns namespace_of_s11n [${o_sns}] An obscure option to help me port code between pclasses.com::s11n and s11n.net::s11n. e.g.: -ns P::s11n EOF } # show_help() ############################## args parsing... while test x != "x$1"; do a=$1 shift case $a in -a) o_abstract=1 continue ;; -b) o_base=$1 shift continue ;; -c) o_class=$1 shift continue ;; -ns) o_sns=$1 shift ;; -n) o_clname=$1 shift continue ;; -r) o_reg_h=$1 shift continue ;; -p) o_proxy=$1 shift continue ;; -?|--help|-h) o_show_help=1 cotinue ;; *) echo "Unknown argument: $a" exit 2 esac done : ${o_abstract=0} : ${o_sns="::P::s11n"} : ${o_proxy="${o_sns}::default_serialize_functor"} : ${o_clname="${o_class}"} : ${o_base=${o_class}} : ${o_reg_h="<pclasses/s11n/reg_serializable_traits.h>"} test x1 = "x${o_show_help}" && { show_help exit 0 } test x = "x${o_class}" && { show_help exit 1 } # end usage text # getopt "c:" "$@" test x != "x${o_class}" && { # Note the use of HARD TABS in the <<-EOF!!! cat <<-EOF #define PS11N_TYPE ${o_class} #define PS11N_TYPE_NAME "${o_clname}" #define PS11N_SERIALIZE_FUNCTOR ${o_proxy} EOF test "${o_class}" != "${o_base}" && \ echo "#define PS11N_TYPE_INTERFACE ${o_base}" test x1 = "x${o_abstract}" && \ echo "#define PS11N_TYPE_NAME \"${o_clname}\"" echo "#include ${o_reg_h}" } ######################################################################## |
From: stephan b. <sg...@us...> - 2004-12-28 00:53:32
|
Update of /cvsroot/pclasses/pclasses2/src/s11n/proxy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13142/proxy Log Message: Directory /cvsroot/pclasses/pclasses2/src/s11n/proxy added to the repository |
From: stephan b. <sg...@us...> - 2004-12-27 23:30:39
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses/System In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27969/include/pclasses/System Modified Files: SharedLib.h Log Message: Added comment about BindMode flags being ignored on some platforms. Index: SharedLib.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/System/SharedLib.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- SharedLib.h 25 Dec 2004 16:04:21 -0000 1.7 +++ SharedLib.h 27 Dec 2004 23:30:30 -0000 1.8 @@ -59,6 +59,12 @@ /*! Constructs the object and loads the shared library specified in the path argument. + + Note that this class relies on a system-dependent set of + DLL-handling functions. Not all DLL-opening functions honor + BindMode (e.g., libltdl's lt_dlopen()), and this option may + be ignored by the SharedLib implementation on such platforms. + \param path the path to the shared library \param mode binding mode when loading the library \throw SystemError |
From: stephan b. <sg...@us...> - 2004-12-27 23:23:35
|
Update of /cvsroot/pclasses/pclasses2/src/s11n In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26354/src/s11n Modified Files: SIO.h Log Message: Several API doc additions. Index: SIO.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/s11n/SIO.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- SIO.h 27 Dec 2004 20:07:18 -0000 1.6 +++ SIO.h 27 Dec 2004 23:23:23 -0000 1.7 @@ -9,6 +9,12 @@ // This header is intended to provide the standard P::s11n interface, // in particular the client-side interface. // +// +// Reminder to maintainers of this code: it is perfectly fine for this +// code to depend on any P::s11n-related code, but it is NEVER +// acceptable for ANY non-SIO code in the P::s11n namespace to depend +// on P::SIO!!! NEVER, EVER! +// (EVER! Don't even consider it!) //////////////////////////////////////////////////////////////////////// @@ -17,6 +23,7 @@ #include <pclasses/s11n/s11n.h> #include <pclasses/s11n/io/serializers.h> + namespace P { /** @@ -24,6 +31,22 @@ P::s11n-related API. Clients using s11n proxies and implementing serialization code may need to use the classes in P::s11n or possibly even P::s11n::io as well. + + SIO is a fork/port of the s11n project: + + http://s11n.net + + It was forked specifically to take advantage of the amazing super + powers which the combination of P and s11n imply :). Forks are + normally evil, but this fork was done by s11n's author :). + + SIO is mostly API-compatible with s11nlite, but uses a different + data node type, so it is not 100% usage-compable. Data + files/streams should be freely exchangeable between SIO and + s11nlite, however, provided a compatible parser exists on + both sides of the transaction (this is likely to be the case + for most available Serializers, since i currently maintain + both SIO and s11n :). */ namespace SIO { @@ -32,9 +55,9 @@ Note that it is considered poor form to use an S11nNode's API directly, as it's type and interface may change. The - only guaranty the S11nNode's API gives is that - NodeTraits::funcs(S11nNode &...) operations will work as - expected/documented. More clearly: use NodeTraits to + only guaranty the SIO API gives regarding S11nNode's API is + that NodeTraits::funcname(S11nNode &...) operations will work + as expected/documented. More clearly: use NodeTraits to manipulate and query nodes, not the node API directly. In fact S11nNode's useful API is all private, so you CAN'T touch it without going through NodeTraits. :) Gotcha! @@ -42,8 +65,8 @@ typedef ::P::s11n::s11n_node S11nNode; /** - NodeTraits are used to view and manipulate data in S11nNode - objects. + NodeTraits provide the interface for fetching and + manipulating S11nNode data. */ typedef ::P::s11n::node_traits<S11nNode> NodeTraits; @@ -68,6 +91,8 @@ /** See ::P::s11n::derialize(). + + The caller owns the returned object, which may be NULL. */ template <typename SerializableType> SerializableType * deserialize( const S11nNode & src ) @@ -98,6 +123,8 @@ /** See ::P::s11n::deserialize_subnode(). + + The caller owns the returned object, which may be NULL. */ template <typename DeserializableT> DeserializableT * deserializeSubnode( const S11nNode & src, @@ -120,12 +147,16 @@ /** See ::P::s11n::io::load_node(). + + The caller owns the returned object, which may be NULL. */ S11nNode * loadNode( std::istream & src ); /** See ::P::s11n::io::load_node(src). + + The caller owns the returned object, which may be NULL. */ S11nNode * loadNode( const std::string & src ); @@ -146,6 +177,8 @@ Once IOManager support is completed this will also support URL-based lookups. + + The caller owns the returned object, which may be NULL. */ SerializerInterface * serializerFor( const std::string & url ); @@ -165,19 +198,20 @@ Uses SerializerPluginManager to load the Serializer set via serializerClass() - The caller owns the returned pointer, which may be 0. + The caller owns the returned object, which may be NULL. */ SerializerInterface * createSerializer(); /** Uses SerializerPluginManager to load a Serializer. - The caller owns the returned pointer, which may be 0. + The caller owns the returned object, which may be NULL. */ SerializerInterface * createSerializer( const std::string & ); /** - Uses serialize(src,node) to serialize src then calls - save(n,dest). Returns true on success, false on error. + Uses serialize(src,node) to serialize src to a S11nNode + then calls save(node,dest). Returns true on success, false + on error. */ template <typename SerializableT> bool save( const SerializableT & src, std::ostream & dest ) |
From: stephan b. <sg...@us...> - 2004-12-27 23:14:20
|
Update of /cvsroot/pclasses/pclasses2/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24344/test Modified Files: SimplePropertyStoreTest.cpp Log Message: Removed the get/setBool() variants, as LexT makes them unnecessary :). Index: SimplePropertyStoreTest.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/test/SimplePropertyStoreTest.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- SimplePropertyStoreTest.cpp 27 Dec 2004 23:07:15 -0000 1.2 +++ SimplePropertyStoreTest.cpp 27 Dec 2004 23:14:11 -0000 1.3 @@ -47,6 +47,8 @@ m["days_in_december"] = 31; m["days_in_february"] = 28.5; m["the_letter_a"] = 'a'; + m["0"] = false; + m["1"] = true; CERR << "days_in_february == " << m["days_in_february"] << "\n"; |
From: stephan b. <sg...@us...> - 2004-12-27 23:14:19
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24344/include/pclasses/Util Modified Files: SimplePropertyStore.h Log Message: Removed the get/setBool() variants, as LexT makes them unnecessary :). Index: SimplePropertyStore.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/Util/SimplePropertyStore.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- SimplePropertyStore.h 27 Dec 2004 22:51:04 -0000 1.2 +++ SimplePropertyStore.h 27 Dec 2004 23:14:10 -0000 1.3 @@ -65,9 +65,9 @@ /** std::string propval = props["bar"] is functionally - identical to get("bar"). It simply returns an empty - string if key is not found. - + identical to get("bar"). It simply returns a + default-constructed mapped_type entry if key is not + found. */ const mapped_type operator[] ( const key_type & key ) const; @@ -75,6 +75,10 @@ Subtypes which override get() should ensure that their implementation works with this function. To do that they simply must ensure that find(key) will return the same map iterator that get(key) will work with. + + Like std::map, this creates a new, + default-constructed mapped_type entry if key is not + found. */ mapped_type & operator[] ( const key_type & key ); @@ -115,26 +119,10 @@ bool clear(); /** - Note that the set/getTYPE() variants are mostly to - keep old code working. Please use set() and get() - when possible. Sometimes it is more convenient to - use these instead of get()/set(), especially with - something like: - - <pre> - props.set( "foo", false ); // ambiguous: may be bool, const char *, or bool or even int zero :/ - </pre> - - */ - inline void setBool( const key_type & key, bool val ) - { - return this->set( key, val ); - } - - /** - getBool(key) is an exception to the rule: - it returns true if key's value evaluates to true, as - evaluated by the static function boolVal(). + getBool(key) returns true if key's value evaluates + to true, as evaluated by the static function + boolVal(). Like get(), if key is not set it returns + defaultVal. */ bool getBool( const key_type & key, bool defaultVal ) const; |
From: stephan b. <sg...@us...> - 2004-12-27 23:07:25
|
Update of /cvsroot/pclasses/pclasses2/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23050/test Modified Files: SimplePropertyStoreTest.cpp Log Message: Replaced proxy with streamable one (smaller output). Tried out a couple more data types Index: SimplePropertyStoreTest.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/test/SimplePropertyStoreTest.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- SimplePropertyStoreTest.cpp 27 Dec 2004 22:52:20 -0000 1.1 +++ SimplePropertyStoreTest.cpp 27 Dec 2004 23:07:15 -0000 1.2 @@ -19,7 +19,9 @@ #if ! USE_FAT_PROXIES # define PS11N_TYPE PropMap # define PS11N_TYPE_NAME "SomeSillyPropertyMap" -# define PS11N_SERIALIZE_FUNCTOR ::P::s11n::map::streamable_map_serializable_proxy +# define PS11N_SERIALIZE_FUNCTOR \ + ::P::s11n::map::map_serializable_proxy +// ::P::s11n::map::streamable_map_serializable_proxy # include <pclasses/s11n/reg_serializable_traits.h> #endif // ! USE_FAT_PROXIES @@ -43,6 +45,10 @@ m["fred"] = "wilma"; m["barney"] = "betty"; m["days_in_december"] = 31; + m["days_in_february"] = 28.5; + m["the_letter_a"] = 'a'; + + CERR << "days_in_february == " << m["days_in_february"] << "\n"; save( m, std::cout ); |
From: stephan b. <sg...@us...> - 2004-12-27 22:52:53
|
Update of /cvsroot/pclasses/pclasses2/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20120/test Modified Files: Makefile.toc Added Files: SimplePropertyStoreTest.cpp Log Message: Added SimplePropertyStoreTest (i can't believe i used such a long name...) Index: Makefile.toc =================================================================== RCS file: /cvsroot/pclasses/pclasses2/test/Makefile.toc,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Makefile.toc 26 Dec 2004 12:31:22 -0000 1.11 +++ Makefile.toc 27 Dec 2004 22:52:20 -0000 1.12 @@ -13,6 +13,7 @@ ListTest.cpp \ PtrTest.cpp \ QueueTest.cpp \ + SimplePropertyStoreTest.cpp \ StackTest.cpp \ ThreadTest.cpp @@ -31,7 +32,7 @@ build_bins = 1 ifeq (1,$(build_bins)) - BIN_PROGRAMS = FactoryTest PtrTest s11nTest StringToolTest + BIN_PROGRAMS = FactoryTest PtrTest s11nTest StringToolTest SimplePropertyStoreTest BIN_PROGRAMS_LDADD = $(LIBP_TESTS_LDADD) FactoryTest_bin_OBJECTS = FactoryTest.o registrations.o FactoryTest_bin_LDADD = $(LIBPSYSTEM_CLIENT_LDADD) $(LIBPS11N_CLIENT_LDADD) $(LIBPUTIL_CLIENT_LDADD) @@ -39,7 +40,10 @@ StringToolTest_bin_LDADD = $(LIBPUTIL_CLIENT_LDADD) $(LIBPSYSTEM_CLIENT_LDADD) PtrTest_bin_OBJECTS = PtrTest.o PtrTest_bin_LDADD = $(LIBPSYSTEM_CLIENT_LDADD) - s11nTest_bin_OBJECTS = s11nTest.o registrations.o $(LIBPS11N_CLIENT_LDADD) $(LIBPSYSTEM_CLIENT_LDADD) $(LIBPUTIL_CLIENT_LDADD) + s11nTest_bin_OBJECTS = s11nTest.o registrations.o + s11nTest_bin_LDADD = $(LIBPS11N_CLIENT_LDADD) $(LIBPSYSTEM_CLIENT_LDADD) $(LIBPUTIL_CLIENT_LDADD) + SimplePropertyStoreTest_bin_LDADD = $(s11nTest_bin_LDADD) + SimplePropertyStoreTest_bin_OBJECTS = SimplePropertyStoreTest.o include $(TOC_MAKESDIR)/BIN_PROGRAMS.make endif --- NEW FILE: SimplePropertyStoreTest.cpp --- #include <pclasses/s11n/s11n_debuggering_macros.h> #include <pclasses/s11n/SIO.h> #include <pclasses/s11n/pods_streamable.h> #include <pclasses/s11n/map.h> #include <pclasses/Util/SimplePropertyStore.h> #include <memory> // auto_ptr #include <cassert> #include <list> #include <map> #include "FactoryTest.h" using namespace ::P::SIO; #define PropMap P::Util::SimplePropertyStore #define USE_FAT_PROXIES 0 #if ! USE_FAT_PROXIES # define PS11N_TYPE PropMap # define PS11N_TYPE_NAME "SomeSillyPropertyMap" # define PS11N_SERIALIZE_FUNCTOR ::P::s11n::map::streamable_map_serializable_proxy # include <pclasses/s11n/reg_serializable_traits.h> #endif // ! USE_FAT_PROXIES #define SERIALIZE(Node,SType,SObj) serialize< SType >( Node, SObj ) #define DESERIALIZE(Node,SType) deserialize< SType >( Node ) // #define SERIALIZER_CLASS_NAME "parens" #define SERIALIZER_CLASS_NAME "expat" // i wish i could make this a P::App... int main( int argc, char ** argv ) { using namespace ::P::SIO; using namespace ::P::Util; CERR << "P::Util::SimplePropertyStoreTest tests...\n"; PropMap m; m["fred"] = "wilma"; m["barney"] = "betty"; m["days_in_december"] = 31; save( m, std::cout ); return 0; } |
From: stephan b. <sg...@us...> - 2004-12-27 22:51:18
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19841/include/pclasses/Util Modified Files: SimplePropertyStore.h Log Message: Now at least basically works. It is compatible enough with std::map to use the standard s11n map proxies :). Index: SimplePropertyStore.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/Util/SimplePropertyStore.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- SimplePropertyStore.h 27 Dec 2004 22:32:44 -0000 1.1 +++ SimplePropertyStore.h 27 Dec 2004 22:51:04 -0000 1.2 @@ -65,12 +65,19 @@ /** std::string propval = props["bar"] is functionally - identical to get("bar"). Unlike std::map and - the like, calling this operator with a key which is - not in the object does not create a new entry - it - simply returns an empty string in that case. + identical to get("bar"). It simply returns an empty + string if key is not found. + */ - const key_type operator[] ( const key_type & key ) const; + const mapped_type operator[] ( const key_type & key ) const; + + /** + Subtypes which override get() should ensure that their implementation + works with this function. To do that they simply must ensure that find(key) + will return the same map iterator that get(key) will work with. + */ + + mapped_type & operator[] ( const key_type & key ); /** For compatibility with std::map. Inserts a |
From: stephan b. <sg...@us...> - 2004-12-27 22:51:15
|
Update of /cvsroot/pclasses/pclasses2/src/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19841/src/Util Modified Files: SimplePropertyStore.cpp Log Message: Now at least basically works. It is compatible enough with std::map to use the standard s11n map proxies :). Index: SimplePropertyStore.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/Util/SimplePropertyStore.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- SimplePropertyStore.cpp 27 Dec 2004 22:32:44 -0000 1.1 +++ SimplePropertyStore.cpp 27 Dec 2004 22:51:05 -0000 1.2 @@ -23,11 +23,21 @@ using namespace std; typedef SimplePropertyStore::key_type key_type; typedef SimplePropertyStore::mapped_type mapped_type; - const key_type SimplePropertyStore::operator[] ( const string & key ) const + const mapped_type SimplePropertyStore::operator[] ( const key_type & key ) const { return this->get( key ); } + mapped_type & SimplePropertyStore::operator[] ( const key_type & key ) + { + map_type::iterator iter = m_map.find( key ); + if ( iter == m_map.end() ) + { + return m_map[key] = mapped_type(); + } + return ( *iter ).second; + } + SimplePropertyStore::SimplePropertyStore() { |
From: stephan b. <sg...@us...> - 2004-12-27 22:33:37
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16703/include/pclasses/Util Modified Files: Makefile.toc Log Message: Added SimplePropertyStore. Index: Makefile.toc =================================================================== RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/Util/Makefile.toc,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile.toc 26 Dec 2004 10:42:25 -0000 1.4 +++ Makefile.toc 27 Dec 2004 22:33:27 -0000 1.5 @@ -4,6 +4,7 @@ HEADERS = \ LexT.h \ ManagedThread.h \ + SimplePropertyStore.h \ StringTool.h \ ThreadPool.h \ WorkQueue.h |
From: stephan b. <sg...@us...> - 2004-12-27 22:33:36
|
Update of /cvsroot/pclasses/pclasses2/src/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16703/src/Util Modified Files: Makefile.toc Log Message: Added SimplePropertyStore. Index: Makefile.toc =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/Util/Makefile.toc,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile.toc 26 Dec 2004 10:42:25 -0000 1.6 +++ Makefile.toc 27 Dec 2004 22:33:28 -0000 1.7 @@ -2,6 +2,7 @@ include toc.make SOURCES = \ ManagedThread.cpp \ + SimplePropertyStore.cpp \ StringTool.cpp \ ThreadPool.cpp \ WorkQueue.cpp @@ -10,6 +11,7 @@ OBJECTS = \ ManagedThread.o \ + SimplePropertyStore.o \ StringTool.o \ ThreadPool.o \ WorkQueue.o |
From: stephan b. <sg...@us...> - 2004-12-27 22:32:55
|
Update of /cvsroot/pclasses/pclasses2/src/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16561/src/Util Added Files: SimplePropertyStore.cpp Log Message: egg: LexT-based very simple property store. Still need to add multimap support. --- NEW FILE: SimplePropertyStore.cpp --- //////////////////////////////////////////////////////////////////////// // SimplePropertyStore - exactly that. // // Author: stephan beal <st...@s1...> // License: Public Domain //////////////////////////////////////////////////////////////////////// #include <stdlib.h> #include <stdio.h> #include <iostream> #include <fstream> #include <map> #include <string> #include <pclasses/Phoenix.h> #include <pclasses/Util/SimplePropertyStore.h> namespace P { namespace Util { using namespace std; typedef SimplePropertyStore::key_type key_type; typedef SimplePropertyStore::mapped_type mapped_type; const key_type SimplePropertyStore::operator[] ( const string & key ) const { return this->get( key ); } SimplePropertyStore::SimplePropertyStore() { return; } SimplePropertyStore::~SimplePropertyStore() { } unsigned long SimplePropertyStore::count() const { return this->m_map.size(); } void SimplePropertyStore::insert( const value_type & v ) { this->set( v.first, v.second ); } mapped_type SimplePropertyStore::get( const key_type & key, const mapped_type & defaultVal ) const { if ( !this->isSet( key ) ) return defaultVal; // DO NOT call LIBE_{DEBUG,VERBOSE} from here! map_type::const_iterator citer = m_map.find( key ); if ( citer != m_map.end() ) return ( *citer ).second; return defaultVal; } void SimplePropertyStore::set( const key_type & key, const mapped_type & val ) { if ( key.empty() ) return; //COUT << "set("<<key<<" =["<<val<<"]" << std::endl; m_map[key] = val; return; } bool SimplePropertyStore::isSet( const key_type & mkey ) const { key_type key = mkey; // experiment to try to work around a segfault. if ( key.empty() ) return false; map_type::const_iterator iter; iter = this->m_map.find( key ); return ( iter != m_map.end() ) ? true : false; } bool SimplePropertyStore::unset( const key_type & key ) { map_type::iterator iter; iter = m_map.find( key ); if ( iter == m_map.end() ) return false; m_map.erase( iter ); return true; } bool SimplePropertyStore::clear() { if ( m_map.empty() ) return false; m_map.erase( m_map.begin(), m_map.end() ); return true; } SimplePropertyStore::iterator SimplePropertyStore::begin() { return this->m_map.begin(); } SimplePropertyStore::const_iterator SimplePropertyStore::begin()const { return this->m_map.begin(); } SimplePropertyStore::iterator SimplePropertyStore::end() { return this->m_map.end(); } SimplePropertyStore::const_iterator SimplePropertyStore::end()const { return this->m_map.end(); } SimplePropertyStore::iterator SimplePropertyStore::find( const key_type & key ) { return m_map.find( key ); } SimplePropertyStore::map_type & SimplePropertyStore::getMap() { return m_map; } const SimplePropertyStore::map_type & SimplePropertyStore::getMap() const { return m_map; } SimplePropertyStore::map_type::size_type SimplePropertyStore::size() const { return this->m_map.size(); } unsigned int SimplePropertyStore::merge( const SimplePropertyStore & src, SimplePropertyStore & dest ) { return dest.merge( src ); } unsigned int SimplePropertyStore::merge( const SimplePropertyStore & src ) { if ( &src == this ) { //CERR << "merge() source and destinaion SimplePropertyStore objects are the same! Ignoring!" << endl; return 0; } if ( src.count() == 0 ) return 0; const_iterator iter = src.begin(); key_type key; key_type val; unsigned int count = 0; while ( iter != src.end() ) { ++count; key = ( *iter ).first; this->set( key, src.get( key, ( *iter ).second ) ); ++iter; } return count; } bool SimplePropertyStore::getBool( const key_type & key, bool defaultVal ) const { if ( !this->isSet( key ) ) return defaultVal; return SimplePropertyStore::boolVal( this->get( key, "???" ) ); } /** phoenix<> initializer functor. */ struct TruesMapInitializer { typedef std::map<std::string,bool> map_type; void operator()( map_type & map ) { map["true"] = true; map["TRUE"] = true; map["True"] = true; map["yes"] = true; map["YES"] = true; map["Yes"] = true; map["y"] = true; map["Y"] = true; map["1"] = true; } }; bool // static SimplePropertyStore::boolVal( const key_type & key ) { typedef std::map < std::string, bool > TrueMap; typedef P::Phoenix<TrueMap,SimplePropertyStore,TruesMapInitializer> PHX; TrueMap & trues = PHX::instance(); return trues.end() != trues.find( key ); } }} |
From: stephan b. <sg...@us...> - 2004-12-27 22:32:54
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16561/include/pclasses/Util Added Files: SimplePropertyStore.h Log Message: egg: LexT-based very simple property store. Still need to add multimap support. --- NEW FILE: SimplePropertyStore.h --- //////////////////////////////////////////////////////////////////////// // SimplePropertyStore - exactly that. // // Author: stephan beal <st...@s1...> // License: Public Domain //////////////////////////////////////////////////////////////////////// #ifndef p_Util_SIMPLEPROPERTYSTORE_H_INCLUDED #define p_Util_SIMPLEPROPERTYSTORE_H_INCLUDED #include <iostream> #include <map> #include <sstream> #include <pclasses/Util/LexT.h> namespace P { namespace Util { /** SimplePropertyStore is a class for storing arbitrary key/value pairs. i often find myself needing classes which contain an arbitrary number of arbitrary properties, and this interface has worked very well for me. It must be strongly stressed that this class is designed solely with utility, ease-of-use and code maintenance costs in mind. Not one iota of concern has been given to optimization! It is not a lightweight object, nor is it efficient. Do not use this class when speed is of the essence! That said, it should fast enough for almost all standard property-list uses. (i often use thousands of them as property containers for game pieces.) It follows STL container conventions, so it can be used in many container contexts and with many generic algorithms. */ class SimplePropertyStore { public: /** The map type this object uses to store items internally. */ typedef std::map < std::string, LexT > map_type; typedef map_type::value_type value_type; /** For compatibility with std::map */ typedef std::string key_type; /** For compatibility with std::map */ typedef map_type::mapped_type mapped_type; /** For iterating over properties using STL conventions. */ typedef map_type::iterator iterator; /** For iterating over properties using STL conventions. */ typedef map_type::const_iterator const_iterator; /** std::string propval = props["bar"] is functionally identical to get("bar"). Unlike std::map and the like, calling this operator with a key which is not in the object does not create a new entry - it simply returns an empty string in that case. */ const key_type operator[] ( const key_type & key ) const; /** For compatibility with std::map. Inserts a value_type (i.e., pair<string,string>) into this object. It calls setString(), so it is compatible with subclasses which do custom handling in that method. */ void insert( const value_type & ); SimplePropertyStore(); virtual ~SimplePropertyStore(); /** Returns the number of items in this object. This is a constant-time operation. */ unsigned long count() const; /** Returns true if this object contains the given property. */ virtual bool isSet( const key_type & key ) const; /** Removes the given property from this object. */ virtual bool unset( const key_type & key ); /** Removes all entries from this object. */ bool clear(); /** Note that the set/getTYPE() variants are mostly to keep old code working. Please use set() and get() when possible. Sometimes it is more convenient to use these instead of get()/set(), especially with something like: <pre> props.set( "foo", false ); // ambiguous: may be bool, const char *, or bool or even int zero :/ </pre> */ inline void setBool( const key_type & key, bool val ) { return this->set( key, val ); } /** getBool(key) is an exception to the rule: it returns true if key's value evaluates to true, as evaluated by the static function boolVal(). */ bool getBool( const key_type & key, bool defaultVal ) const; /** * Returns the bool value of the passed string. * The following string values are considered equal to true: * * * true, TRUE, True * * * yes, YES, Yes, y, Y * * * 1 * * Anything else evaluates to false. * * CASE IS SIGNIFICANT! */ static bool boolVal( const key_type & key ); /** * Returns the first item in the data map. * You can use this to iterate, STL-style: * <pre> * map_type::iterator it = props.begin(); * while( it != props.end() ) { ... ++it; } * </pre> * * Note that the iterator represents a * std::pair<string,string>, so use (*it).first to get * the key and (*it).second to get the value. */ iterator begin(); /** Returns a const_iterator pointing at this object's first property. */ const_iterator begin() const; /** * The after-the-end iterator for the data map. */ iterator end(); /** * The after-the-end iterator for the data map. */ const_iterator end() const; /** * Returns the value for key, or defaultVal if the key * is not set. * */ virtual mapped_type get( const key_type & key, const mapped_type & defaultVal = mapped_type() )const; /** Sets the given key to the given value. If key.empty() then this function does nothing. */ virtual void set( const key_type & key, const mapped_type & val ); /** * Returns end() if the key is not in our map, otherise it returns * that iterator. Use the iterator's .first member to get the key, * and .second to get the value. However, you SHOULD call getString( (*iter).first ) * to get the value, so subclasses can do some funniness with the key, * like argvParser does. Thus: * <pre> * SimplePropertyStore::key_type val = "not found"; * iter = foo.find( "key" ); * if( iter == foo.end() ) { return val; } * val = foo.getString( (*iter).first ); * </pre> * * Such usage helps guaranty polymorphic behaviour. * * todo?: make this the master getter, instead of * getString(), for purposes of overriding getXXX() * behaviour? */ virtual map_type::iterator find( const key_type & key ); /** merge() copies all properties from src to dest. It returns the number of properties copied. This is potentially a very expensive operation. */ static unsigned int merge( const SimplePropertyStore & src, SimplePropertyStore & dest ); /** Merges all properties from src into this object. Returns the number of properties merged. */ unsigned int merge( const SimplePropertyStore & src ); /** Returns the number of properties in this object. */ map_type::size_type size() const; /** * Returns the internally-used map_type (see the typedefs, above). */ map_type & getMap(); /** * Returns the internally-used map_type (see the typedefs, above). */ const map_type & getMap() const; protected: private: map_type m_map; }; // class SimplePropertyStore } } // namespace P::Util #endif // p_Util_SIMPLEPROPERTYSTORE_H_INCLUDED |
From: stephan b. <sg...@us...> - 2004-12-27 21:46:27
|
Update of /cvsroot/pclasses/pclasses2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6684/src Modified Files: Makefile.toc Log Message: Added DateTime.cpp. Index: Makefile.toc =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/Makefile.toc,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Makefile.toc 26 Dec 2004 17:34:08 -0000 1.11 +++ Makefile.toc 27 Dec 2004 21:46:19 -0000 1.12 @@ -9,6 +9,7 @@ AtomicInt.gcc-x86.cpp \ ByteOrderTraits.cpp \ Date.cpp \ + DateTime.cpp \ Exception.cpp \ LinkedItem.cpp \ Time.cpp \ |
From: stephan b. <sg...@us...> - 2004-12-27 21:46:10
|
Update of /cvsroot/pclasses/pclasses2/src/System In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6618/src/System Modified Files: Makefile.toc Log Message: Added FileInfo.posix.cpp Index: Makefile.toc =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/System/Makefile.toc,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Makefile.toc 27 Dec 2004 18:03:15 -0000 1.12 +++ Makefile.toc 27 Dec 2004 21:46:01 -0000 1.13 @@ -52,6 +52,7 @@ Condition.posix.cpp \ Directory.posix.cpp \ File.posix.cpp \ + FileInfo.posix.cpp \ Mutex.posix.cpp \ Pipe.posix.cpp \ Semaphore.posix.cpp \ |
From: stephan b. <sg...@us...> - 2004-12-27 21:25:14
|
Update of /cvsroot/pclasses/pclasses2/toc/make In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2488 Removed Files: install.make Log Message: long obsoleted by INSTALL_XXX.make --- install.make DELETED --- |
From: stephan b. <sg...@us...> - 2004-12-27 21:24:26
|
Update of /cvsroot/pclasses/pclasses2/toc/make In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2261 Added Files: INSTALL_XXX.make Log Message: doh! deleted wrong file! --- NEW FILE: INSTALL_XXX.make --- #!/do/not/make # # To be included from the shared toc makefile. # Creates un/install rules for sets of files. # # Sample usage: # INSTALL_BINS = mybin myotherbin # installs to $(prefix)/bin # INSTALL_LIBS = mylib.a myotherlib.a # installs to $(prefix)/lib # # There's a *whole lot* more to know, if you wanna poke around the code. # # Design note: the traditional xxx-local targets aren't really # necessary. If someone wants to customize install they can simply do # this: # # install: my-install # my-install: # .... # # # For each X in (some list you can find in this makefile) it # creates the following targets are created: # # install-X: # uninstall-X: # install-X-symlink: # # Files will be installed to $(INSTALL_X_DEST) using install # arguments $(INSTALL_X_INSTALL_FLAGS). All of these vars are # set up by default, but may be customized: # # INSTALL_X_DEST = $(prefix)/$(PACKAGE_NAME)/bin # INSTALL_X_INSTALL_FLAGS = -m 0775 # # To add new installation groups to this file do the following: # # - Add an MYNEWGROUP='install/path' entry to the var INSTALL_XXX_PATHS. # # - Add INSTALL_MYNEWGROUP_INSTALL_FLAGS var, following the conventions # set by the other ...INSTALL_FLAGS vars in this file. # # Installation can be further customized by using the toc_make_xxx # call()able functions defined below... # ######################################################################## ifeq (,$(wildcard $(INSTALLER_BIN))) $(error INSTALL_XXX.make requires that the variable INSTALLER_BIN point to a version of install which is vaguely compatible with GNU install. \ Normally it will be set by the toc_core_tests configure test.) endif #INSTALL_BINS_SUFFIX ?= #ifeq (1,$(configure_with_CYGWIN)) #INSTALL_BINS_SUFFIX = .exe #endif ############################################################ # toc_make_install call()able: # $1=file list # $2=destdir. The global $(DESTDIR) is prepended to it # $3=flags for $(INSTALLER_BIN) toc_make_install = test "x$(1)" = x && exit 0; \ dest="$(DESTDIR)$(2)"; \ test -d "$$dest" || mkdir -p "$$dest" || exit; \ for b in $(1) "x"; do test "x$$b" = "xx" && break; \ b=$$(basename $$b); \ target="$$dest/$$b"; \ cmd="$(INSTALLER_BIN) $(3) $$b $$target"; echo $$cmd; $$cmd || exit; \ done ############################################################ # toc_make_install_update: identical to toc_make_install # but does not update the target if it is the same as the source. toc_make_install_update = test x = "x$(1)" && exit 0; \ dest="$(DESTDIR)$(2)"; \ test -d "$$dest" || mkdir -p "$$dest" || exit; \ for b in $(1) ""; do test -z "$$b" && continue; \ b="$$(basename $$b)"; \ target="$$dest/$$b"; \ cmp "$$target" "$$b" > /dev/null 2>&1 && continue; \ cmd="$(INSTALLER_BIN) $(3) $$b $$target"; echo "$$cmd"; $$cmd || exit; \ done ############################################################ # toc_make_uninstall call()able: # removes all files listed in $(1) from target directory $(2) toc_make_uninstall = test "x$(1)" = x && exit 0; \ dest="$(DESTDIR)$(2)"; \ test -e "$$dest" || exit 0; \ for b in $(1) ""; do test -z "$$b" && continue; \ fp="$$dest/$$b"; test -e "$$fp" || continue; \ cmd="rm $$fp"; echo $$cmd; $$cmd || exit $$?; \ done ############################################################ # toc_make_install_symlink call()able: # Works similarly to toc_make_install, but symlinks back to the install source, # instead of copying. Arg $3 is ignored. # Note that symlinks must be linked to absolute paths here, because we cannot # easily/reliably make a relative path from the target directory back to # the install source: toc_make_install_symlink = test "x$(1)" = x && exit 0; \ dest="$(DESTDIR)$(2)"; \ test -d "$$dest" || mkdir -p "$$dest" || exit; \ for b in $(1) ""; do test -z "$$b" && continue; \ target="$$dest/$$b"; \ pwd="$$(pwd)"; \ src="$$pwd/$$b"; \ test "$$target" -ef "$$src" && continue; \ test -f "$$target" && rm "$$target"; \ echo "Symlinking $$target"; ln -s -f "$$src" "$$target" || exit $$?; \ done ############################################################ # toc_make_install_so: installs foo.so.X.Y.Z and symlinks foo.so, foo.so.X and foo.so.X.Y to it, # in traditional/common Unix style. # $1 = so name (foo.so) # $2-4 = Major, Minor, Patch version numbers # $5 = destination directory toc_make_install_so = test "x$(1)" = x && exit 0; \ dest="$(DESTDIR)$(5)"; \ test -d "$$dest" || mkdir -p "$$dest" || exit; \ wholename=$(1).$(2).$(3).$(4); \ target="$$dest"/$$wholename; \ test $$wholename -ef $$target || { \ echo "Installing/symlinking $$target"; \ cmd="$(INSTALLER_BIN) -m 0755 $$wholename $$target"; \ $$cmd || exit; \ }; \ cd "$$dest"; \ for i in $(1) $(1).$(2) $(1).$(2).$(3); do \ test -e $$i && rm $$i; \ cmd="ln -fs $$wholename $$i"; echo $$cmd; \ $$cmd || exit; \ done # symlinking method number 2: # { set -x; \ # ln -fs $(1).$(2).$(3).$(4) $(1).$(2).$(3); \ # ln -fs $(1).$(2).$(3) $(1).$(2); \ # ln -fs $(1).$(2) $(1); \ # } ############# some phony targets... .PHONY: install-. uninstall-. subdirs-install: # implemented elsewhere install: install-. install-subdirs install-update: install-.-update install-subdirs-update install-symlink: install-.-symlink install-subdirs-symlink install-subdirs: subdirs-install install-subdirs-symlink: subdirs-install-symlink install-subdirs-update: subdirs-install-update uninstall-subdirs: subdirs-uninstall uninstall: uninstall-. uninstall-subdirs # implement these to hook in to the start of the install. Untested. :/ install-.: install-.-update: install-.-symlink: uninstall-.: ############# TOC_INSTALL_TARGET_BASENAMES += BINS SBINS LIBS PACKAGE_LIBS LIBEXECS HEADERS PACKAGE_HEADERS PACKAGE_DATA DOCS \ ############ internal shortcuts: INSTALLER_BIN_FLAGS_BINS = -m 0755 INSTALLER_BIN_FLAGS_NONBINS = -m 0644 INSTALLER_BIN_FLAGS_LIBS = -m 0644 INSTALLER_BIN_FLAGS_LIBEXECS = -m 0755 ########### ################# default install flags for the installable file categories: INSTALL_BINS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_BINS) INSTALL_SBINS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_BINS) INSTALL_LIBS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_LIBS) INSTALL_PACKAGE_LIBS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_LIBS) INSTALL_LIBEXECS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_LIBEXECS) INSTALL_HEADERS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_PACKAGE_HEADERS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_PACKAGE_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_DOCS_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN1_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN2_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN3_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN4_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN5_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN6_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN7_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_MAN8_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) INSTALL_PKGCONFIG_INSTALL_FLAGS ?= $(INSTALLER_BIN_FLAGS_NONBINS) ################# ######################################################################## # installation paths, in the format expected by makerules.INSTALL_XXX # They should be relative to ${prefix}. INSTALL_XXX_PATHS += \ BINS=bin \ SBINS=sbin \ LIBS=lib \ PACKAGE_LIBS='lib/$(PACKAGE_NAME)' \ LIBEXECS=lib \ HEADERS=include \ PACKAGE_HEADERS='include/$(PACKAGE_NAME)' \ PACKAGE_DATA='share/$(PACKAGE_NAME)' \ DOCS='share/doc/$(PACKAGE_NAME)' \ MAN1='share/man/man1' \ MAN2='share/man/man2' \ MAN3='share/man/man3' \ MAN4='share/man/man4' \ MAN5='share/man/man5' \ MAN6='share/man/man6' \ MAN7='share/man/man7' \ MAN8='share/man/man8' \ PKGCONFIG='lib/pkgconfig' # INSTALL_XXX_PATHSNotes: # # - LIBEXECS=lib is intentional: i figure that since there is no /usr/libexec # nor /libexec, the traditional usage of LIBEXEC is probably "broken". # # - PKGCONFIG is data files for the pkg-config tool. ######################################################################## ################ Internal use: # Set install paths for the installable file categories # and create installation rules. With make 3.80 we can do this with $(eval), # Make 3.79 is very common, but doesn't support $(eval). INSTALL_MAKEFILE = $(TOC_MAKESDIR)/INSTALL_XXX.make INSTALL_RULES_FILE = $(top_srcdir)/.toc.INSTALL_XXX.make INSTALL_XXX_GENERATOR = $(TOC_MAKESDIR)/makerules.INSTALL_XXX $(INSTALL_RULES_FILE): $(INSTALL_MAKEFILE) $(INSTALL_XXX_GENERATOR) ifeq (1,$(MAKING_CLEAN)) @echo "$(MAKECMDGOALS): skipping INSTALL_XXX rules generation." else @echo "Generating rules for INSTALL_XXX."; \ $(call toc_generate_rules,INSTALL_XXX,\ $(INSTALL_XXX_PATHS) \ ) > $@ endif -include $(INSTALL_RULES_FILE) deps: $(INSTALL_RULES_FILE) ################# |
From: stephan b. <sg...@us...> - 2004-12-27 20:07:27
|
Update of /cvsroot/pclasses/pclasses2/src/s11n In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18328/src/s11n Modified Files: SIO.h Log Message: Removed the COMPLETELY bogus save() overload taking a (const std::ostream &). Index: SIO.h =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/s11n/SIO.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- SIO.h 26 Dec 2004 14:41:07 -0000 1.5 +++ SIO.h 27 Dec 2004 20:07:18 -0000 1.6 @@ -20,9 +20,10 @@ namespace P { /** - The SIO namespace encapsulates the entire client-side s11n-related - API. Clients using s11n proxies and implementing serialization code - may need to use the classes in the P::s11n as well. + The SIO namespace encapsulates the entire client-side + P::s11n-related API. Clients using s11n proxies and implementing + serialization code may need to use the classes in P::s11n or + possibly even P::s11n::io as well. */ namespace SIO { @@ -199,18 +200,6 @@ } /** - Serializes src to a S11nNode && returns serialize(node,dest). - - Returns true on success, false on error. - */ - template <typename SerializableT> - bool save( const SerializableT & src, const std::ostream & dest ) - { - S11nNode n; - return serialize( n, src ) && save( n, dest ); - } - - /** Sets the current Serializer class used by createSerializer(). Pass it a class name of a SerializerInterface type. */ |
From: stephan b. <sg...@us...> - 2004-12-27 19:55:10
|
Update of /cvsroot/pclasses/pclasses2/src/System In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15754 Modified Files: SharedLib.generic.cpp Log Message: removed a now-incorrect comment, which was fixed in SharedLib some days ago Index: SharedLib.generic.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/System/SharedLib.generic.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- SharedLib.generic.cpp 25 Dec 2004 16:02:51 -0000 1.8 +++ SharedLib.generic.cpp 27 Dec 2004 19:55:00 -0000 1.9 @@ -78,7 +78,6 @@ SharedLib * openSharedLib( const std::string & path ) throw(RuntimeError) { //CERR << "openSharedLib("<<path<<")\n"; - // this is ALWAYS throwing, no matter how valid path is: SharedLib * sh = new SharedLib( path ); //CERR << "OPENED openSharedLib("<<path<<")\n"; // ^^^^ if this throws, the mem is deallocated, right? |
From: stephan b. <sg...@us...> - 2004-12-27 19:31:54
|
Update of /cvsroot/pclasses/pclasses2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10969 Modified Files: autogen.sh Log Message: corrected mis-spelled var name Index: autogen.sh =================================================================== RCS file: /cvsroot/pclasses/pclasses2/autogen.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- autogen.sh 22 Dec 2004 18:35:49 -0000 1.1 +++ autogen.sh 27 Dec 2004 19:31:45 -0000 1.2 @@ -5,7 +5,7 @@ fi export WANT_AUTOMAKE=1.8 -export WNAT_AUTOCONF=2.5 +export WANT_AUTOCONF=2.5 if test -n `which autoreconf`; then autoreconf -fi |
From: stephan b. <sg...@us...> - 2004-12-27 19:23:40
|
Update of /cvsroot/pclasses/pclasses2/toc/make In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9386/toc/make Removed Files: headers_symlinks.make Log Message: long obsoleted by SYMLINK_HEADERS.make. --- headers_symlinks.make DELETED --- |
From: stephan b. <sg...@us...> - 2004-12-27 19:22:43
|
Update of /cvsroot/pclasses/pclasses2/toc/make In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9190/toc/make Modified Files: symlinker.make Log Message: Clarified the description. Index: symlinker.make =================================================================== RCS file: /cvsroot/pclasses/pclasses2/toc/make/symlinker.make,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- symlinker.make 22 Dec 2004 19:04:24 -0000 1.1 +++ symlinker.make 27 Dec 2004 19:22:30 -0000 1.2 @@ -1,4 +1,5 @@ -# Makefile snippet to create symlinks. +# Makefile snippet to create symlinks to +# remote files in the current dir. # # sample usage: # default: all |
From: stephan b. <sg...@us...> - 2004-12-27 19:21:58
|
Update of /cvsroot/pclasses/pclasses2/toc/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9030/toc/bin Modified Files: Makefile.toc Log Message: Added *.sh to DIST_FILES> Index: Makefile.toc =================================================================== RCS file: /cvsroot/pclasses/pclasses2/toc/bin/Makefile.toc,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile.toc 23 Dec 2004 00:18:54 -0000 1.1 +++ Makefile.toc 27 Dec 2004 19:21:30 -0000 1.2 @@ -8,7 +8,8 @@ makedist \ mkdep.c \ relativePathToSharedMakefile \ - removeDupeArgs + removeDupeArgs \ + $(wildcard *.sh) |