Hi Kenton,
Thank you for your reply! But I have further difficulties. I successfully
create and load builder:
In my class:
protected: ::capnp::MallocMessageBuilder mBuilder;
Then I Try to get random access to the fields (I need it for my custom
QAbstractItemModel).
In order that I use following code:
QModelIndex hCapnpModel::index(int row, int column, const QModelIndex & parent)
const
{ if((column < 0) || (column >= 30)) return QModelIndex();
capnp::SegmentArrayMessageReader lReader(mBuilder.getSegmentsForOutput());
//capnp::SegmentArrayMessageReader
lReader(((::capnp::MessageBuilder&)mBuilder).getSegmentsForOutput());
DokmsList::Reader lRoot = lReader.getRoot<DokmsList>(); ::capnp::List<
::Dokms::Dokm>::Reader lList = lRoot.getDokmsList(); if((row < 0) || (row >=
lList.size())) return QModelIndex(); return createIndex(row, column);
}
In this function I need just number of rows, but in different function (data())
I access
to the rows. So I really need some solution of the problem.
Problem occurs in line:
capnp::SegmentArrayMessageReader lReader(mBuilder.getSegmentsForOutput());
I got following error from VC++:
..\hqpanelCapnp\hcapnpmodel.cpp(141): error C2662: 'kj::ArrayPtr<const
kj::ArrayPtr<const capnp::word>>
capnp::MessageBuilder::getSegmentsForOutput(void)': cannot convert 'this'
pointer from 'const capnp::MallocMessageBuilder' to 'capnp::MessageBuilder &'
..\hqpanelCapnp\hcapnpmodel.cpp(141): note: Conversion loses qualifiers
..\hqpanelCapnp\hcapnpmodel.cpp(141): error C2512:
'capnp::SegmentArrayMessageReader::SegmentArrayMessageReader': no
appropriate default constructor available
I think that (for unknown reason) VC++ thinks that mBuilder is const object so
it is
different from capnp::MessageBuilder.
Now I am wonder how to fix it?
best regards
Jacek
--
You received this message because you are subscribed to the Google Groups
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
Visit this group at https://groups.google.com/group/capnproto.