Since sockaddr_tipc has an union, a memcmp() is not enough for comparison,
because a currently unused chunk of memory could be different but the
addresses are conceptually the same.
New accessor methods are added to composed objects to access to the object
members using the struct. For example, you can access to a sockaddr tipc
portid via sockaddr.port_id() method, and mutate the original sockaddr:
Now subscr has 2 constructors, depending on how you want to handle the
user "handle" (arbitrary string). One constructor treats the user handle
as plain binary data, and copies that data without regarding its contents
(you must provide the size of the data to copy).
The other constructor treats the user handle as a C string (NULL
terminated string). You don't have to provide a size for the string, at
most N bytes are copied, being N the capacity of user handle field.
This patch improves the internet addresses. It adds a new constructor (to
create an address from a string), setters and getters to handle byte
ordering better and a couple of address constants (any and broadcast).
Reverse iteration was broken in basic_buffer, and thus commented out. Now
the reverse iterators are defined properly and all seems to work fine
according to the added test cases for reverse iteration.
commit-check is a special make rule to run all sort of time-consuming
checks before committing (like building the documentation and run the test
cases). This is ideal for a git pre-commit hook, to avoid committing
broken stuff.
Now make all (and default) does nothing, because is a source-only library.
Alberto Bertogli [Fri, 14 Nov 2008 19:02:55 +0000 (17:02 -0200)]
Add a new valgrind suppression
To cover from this boost-related valgrind warning we can do nothing about
(and seems relatively harmless):
==25072== Syscall param sigaltstack(ss) points to uninitialised byte(s)
==25072== at 0x585ABF7: sigaltstack (in /lib/libc-2.8.90.so)
==25072== by 0x4E44D35: boost::detail::signal_handler::~signal_handler() (in /usr/lib/libboost_unit_test_framework.so.1.35.0)
==25072== by 0x4E45560: boost::execution_monitor::catch_signals(boost::unit_test::callback0<int> const&) (in /usr/lib/libboost_unit_test_framework.so.1.35.0)
==25072== by 0x4E4564B: boost::execution_monitor::execute(boost::unit_test::callback0<int> const&) (in /usr/lib/libboost_unit_test_framework.so.1.35.0)
==25072== by 0x4E4C052: boost::unit_test::framework::run(unsigned long, bool) (in /usr/lib/libboost_unit_test_framework.so.1.35.0)
==25072== by 0x4E5B023: boost::unit_test::unit_test_main(bool (*)(), int, char**) (in /usr/lib/libboost_unit_test_framework.so.1.35.0)
==25072== by 0x41AFC3: main (in /home/alb/devel/integratech/switchit/mios/posixx/test/test_suite)
==25072== Address 0x7feffea50 is on thread 1's stack
==25072==
Add posix::basic_buffer template and posix::buffer class
posixx::basic_buffer provides easy to use, STL-container-lke and
exception-safe class to manipulate buffers. It's a pseudo-static array
(you can resize it but you can't append or insert/remove arbitrary
elements). It's parametrized to support different kinds of allocators (not
in the STL-sense, it uses a realloc-like function).
posix::buffer is just a posix::basic_buffer< &realloc >.
Use -I instead of -isystem when including our own headers for testing
Use -isystem makes GCC emulate that our own headers are system headers,
giving them the lowest priority when it search for a particular header
included with <>. This could be problematic in certain building
environments.
Avoid rebuilding of doc, (mem)test and install targets
This patch improves the Makefiles to avoid unnecessary rebuilding of some
targets, like doc/test/memtest/install, which only need to be "rebuilt"
when the sources has changed.
This is implemented using empty target files to record events, as
described in the GNU make manual[1].
Improve handling of CFLAGS and LDFLAGS make variables
The Makefile now uses 3 flavors of C/LDFLAGS variables: LOCAL_*, LI_* and
the plain ones.
LOCAL_* are used for mandatory local flags, like -std=C++98 and such,
LI_* are reserved for special "local-install" flags (set by the
super-repository). Plain C/LDFLAGS can be set by the user at make-time as
usual.