Looking to understand *_command API calls better

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

 



Hello ceph-devel,

I'm one of the members of the team currently maintaining, and hopefully 
improving, go-ceph (ceph library bindings for Go) [1].

An issue I keep returning to is the nature of api calls such as:
- rados_mon_command
- rados_mgr_command
- ceph_mds_command
... etc

The argument named cmd for these functions is of type `const char **cmd` and 
is followed by a `size_t cmdlen`. I'd like to better understand the rationale 
for array-of-char* strings and how this is intended to be used.

When I first saw the function I initially thought it was meant to support 
multiple "commands" getting issued at once but later started thinking that a 
single command could be split across multiple strings, and experimentation 
demonstrated that this does indeed work. I've attempted reading the sources 
but nothing jumps out at me to explain this approach. Most callers of these 
functions seem to only use a single "command string". 

I also tried looking to see how the code makes use of the array (or vector 
after the transition to C++) but I will admit I'm not very familiar with C++ 
and get a bit lost in some of the templates and overloading.

Could someone who is familiar with this better explain how this argument and 
it's type is meant to be used?
I want to make sure we're making good use of the apis that ceph provides in 
the wrapper library, or at the very least I want to make sure we're not mis-
using the apis. :-)

Thank you for your time.

1 - https://github.com/ceph/go-ceph

_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



[Index of Archives]     [CEPH Users]     [Ceph Devel]     [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