In the librados.cc , I found the following code:
Step 1 .
file : librados.cc
void librados::ObjectWriteOperation::write(uint64_t off, const bufferlist& bl)
{
::ObjectOperation *o = (::ObjectOperation *)impl;
bufferlist c = bl;
o->write(off, c);
}
Step 2 . to find ::ObjectOperation
File : Objecter.h
struct ObjectOperation {
void write( .. ) {} // call add_data
void add_data( .. ) {} // call add_op
void add_op(...) {} // need OSDOp
}
Step 3. to find OSDOp
File : osd_types.h
struct OSDOp { ... }
But , the question is : how to transfer the data to rados-cluster??? I
assume that there will be some socket connection(tcp,etc) to transfer data ,
but I find nothing about socket connection..
Besides, I found something in IoCtxImpl.cc and throught it I found
ceph_tid_t Objecter::_op_submit(Op *op) in Objecter.cc .. It looks like the
real operation is here.
confused..Appreciate any help~!
------------------ ???????? ------------------
??????: "John Spray";<john.sp...@inktank.com>;
????????: 2014??4??29??(??????) ????5:59
??????: "peng"<peng....@qq.com>;
????: "ceph-users"<ceph-users@lists.ceph.com>;
????: Re: [ceph-users] Hey, Where can I find the source code of "
classObjectOperationImpl " ?
It's not a real class, just a type definition used for the
ObjectOperation::impl pointer. The actual object is an ObjectOperation.
src/librados/librados.cc
1797: impl = (ObjectOperationImpl *)new ::ObjectOperation;
John
On Tue, Apr 29, 2014 at 10:49 AM, peng <peng....@qq.com> wrote:
Hey,
I can find a declaration in librados.hpp , but when I try to find the source
code of ObjectOperatoinImpl , I find nothing ..
Is it a ghost class??
Confused.. Appreciate any help .
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com