From: Jason Dillaman <dillaman@redhat.com>
To: Mykola Golub <mgolub@mirantis.com>
Cc: ceph-devel@vger.kernel.org, Josh Durgin <jdurgin@redhat.com>
Subject: Re: CEPH_RBD_API: options on image create
Date: Thu, 15 Oct 2015 08:47:58 -0400 (EDT) [thread overview]
Message-ID: <1121018324.46808736.1444913278970.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20151015123300.GC7834@gmail.com>
>
> But we don't need them to match between different platforms, no? Is
> linking 64bit code with 32bit possible (supported)?
>
> Also, for this particular (char*) case, length would actually be the
> length of the string, not the pointer length. From my example:
>
> const char* journal_object_pool = "journal";
> r = rbd_image_options_set(opts, RBD_OPTION_JOURNAL_OBJECT_POOL,
> journal_object_pool, strlen(journal_object_pool) +
> 1);
>
My original example was a string of length 4 vs a 4-byte int, but you said you were thinking of sizeof(type) instead. I think this style of interface is great if you need to pass any arbitrary data along, but will we ever expect to pass along anything besides a string or an (u)int(32/64)?
On the flip-side, what will the C++ interface look like? An equivalent API would imply passing a boost::any. While certainly future-proof, something about that doesn't sit right with me as an API. I think I would lean more towards something like xyz_set(const std::string&), xyz_set(uint64_t), et al.
I've been witness to too many type-casting issues in the past (in fact just hit one last night within CephContext), which makes me lean more towards having the compiler be able to enforce type-correctness.
--
Jason
next prev parent reply other threads:[~2015-10-15 12:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-30 6:50 CEPH_RBD_API: options on image create Mykola Golub
2015-10-14 19:34 ` Jason Dillaman
2015-10-15 3:12 ` Josh Durgin
2015-10-15 6:56 ` Mykola Golub
2015-10-15 6:33 ` Mykola Golub
2015-10-15 12:05 ` Jason Dillaman
2015-10-15 12:33 ` Mykola Golub
2015-10-15 12:47 ` Jason Dillaman [this message]
2015-10-15 13:28 ` Mykola Golub
2015-10-15 13:45 ` Sage Weil
2015-10-15 18:29 ` Josh Durgin
2015-10-16 5:32 ` Mykola Golub
2015-10-24 13:16 ` Mykola Golub
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1121018324.46808736.1444913278970.JavaMail.zimbra@redhat.com \
--to=dillaman@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=jdurgin@redhat.com \
--cc=mgolub@mirantis.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.