cmake: fix for VERSION define in acconfig.h

set the VERSION cmake variable in the root CMakeLists.txt
add the value of VERSION to the #cmakedefine in config-h.in.cmake
cmake: add libcephfs target

added WITH_LIBCEPHFS option to enable libcephfs
commented out 'cephfs' tool because the target conflicted with libcephfs
removed Boost_USE_STATIC_LIBS because libcephfs needs the shared version
Some CHeck includes fixed
cmake: Fix include and lib tests.

The NAMES directives for these were invalid for the
corresponding file/object types, for some reason.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
cmake:  fix @libdir@ in mkcephfs.in.

Also find ceph_common.sh in BINDIR, where it now is and where
it always should have been.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Simple Client/Server/Dispatcher

This commit implements an simple bi-directional
communications example using SimpleMessenger, a
new SimpleDispatcher Dispatcher subclass, and new
address helpers.

A new CEPH_GENERIC_SERVER entity type and support for
communication with generic servers is added.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/CMakeLists.txt
Move Connection decl to Connection.h

This is an important class in it's own right, and more closely
related to Messenger and Pipe than Message.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/msg/Message.h
Extend Connection Derivation to Match Messenger

The declaration of class Messenger as a vitual base class
nicely anticipates derivation of new message transports, but
the implementation of Connection contained artifacts (the Pipe
members) of the SimpleMessenger implementation, which is in
error.

This change solves the problem by making Connection virutal, and
pairing SimpleMessenger with a new PipeConnection, which derives
from Connection.

For performance reasons, static_cast<foo_child *>(foo *) is used
where dynamic_cast<foo_child *>(foo *) is logically intended.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
XioMessenger and Friends.

RDMA messaging using Accelio (libxio) primitives.

XioMessenger derives from a new SimplePolicyMessenger,
which encapsulates Policy primitives based on those currently
in SimpleMessenger.

XioConnection derives from Connection, and encapsulates an
endpoint as usual.

A new concrete class XioMsg is created to encapsulate
a logical message sequence.

The new XioPortal abstraction represents an Accelio portal,
a responder thread context.

Refactored, including:

Redefine request/response model.

The response is now just a completion hook, permitting the
request side to finalize resources.  Endpoints "reply" by sending
new messages, as they originally did.

Add OFED and LEVELDB prefixes.

Fix XioConnection underrun.

Dispatcher::ms_dispatch needs ref +1 on the corresponding
connection.  Just assigning through a ConnectionRef by
reference isn't getting a reference automatically, so just
take one before dispatching.

Notice connection failures, exit.

Fix completion hook and xio_release_req.

The new workflow requires xio_msg completions to be done
in Message completion.

The xio_release_req routine unregisters memory and frees
locally-allocated xio_msg structures.

Implement is_connected().

Remove incorrect free in on_msg XIO_MSG_TYPE_RSP case.  Cleanups.

Implement on_msg_error cleanup and improve disconnection handling.

s/ReplyHook/CompletionHook/;

The CompletionHook is now solely for Message completions.

Remove virtual int reply(Message *) from CompletionHook.

Wrap more xio msg workflow calls with Connection::sp.

This is not so far preventing faults at full rate.

Also remove mapped connections from the entity map when
torn down.

Also remove reply from CompletionHook implementation
(mixed).

Signed-off-by: Matt Benjamin <matt@linuxbox.com>