C vs C++ APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For librados and librbd there are currently C and C++ bindings.  The nice 
thing about the C++ bindings is the interface is cleaner (class-based) and 
they expose the native bufferlists.  On the other hand, things get messy 
when there are multiple .so's exposing C++ bindings (librados currently, 
now librbd, potentially a libceph.hpp too).  For example, where does 
bufferlist.h et al go?  (Currently /usr/include/rados/bufferlist.h.)

I see a few options...

 - stack the libraries (librbd and libceph depend on librados), even 
though internally they do not.  Export the needed C++ symbols from 
librados for the others to use (e.g. ceph::buffer_total_alloc).

 - push the bufferlist/spinlock/atomic stuff into a libceph-common that 
the others depend on.

 - drop the C++ interfaces.  probably fine, and less dangerous because we 
don't have to worry about bufferlist implementation drifting between the 
library user and library.  OTOH, we currently use it for most of our 
internal rados/rbd tools.

sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux