Hi there, I don't know 100%. Subscriptions are prefix based. The way structs work in C is that they are packed according to member order. If your first struct member was a cstring (char *, null-terminated), then the subscription prefix should match that okay. I'm not sure how C++ strings are represented. It might still work if they hold the char buffer at the front.
I hope that helps. I'm not that qualified to answer, really. Cheers, Luke On Fri, Aug 9, 2013 at 11:06 AM, Roy Liu <[email protected]> wrote: > Anyone knows? > I can not find documents about the filter format according to different > data type. > > > On Thu, Aug 8, 2013 at 10:30 PM, <[email protected]> wrote: > >> Hi, everyone >> >> On PUB side: wd is struct type message and I send it to the subscriber. >> typedef struct tag_StructData >> { >> string name; >> }StructData; >> >> StructData wd; >> // Prepare our context and publisher >> zmq::context_t context (1); >> zmq::socket_t publisher (context, ZMQ_PUB); >> int msgSize = sizeof(wd); >> zmq::message_t message(msgSize); >> memcpy ((void *) message.data(), &wd, msgSize); >> publisher.send(message); >> >> >> On SUB side: >> // Receive Everything >> subscriber.setsockopt(ZMQ_SUBSCRIBE, NULL, 0); >> >> *// How to set a filter to receive the struct message with the specified >> name, for example "ABC".* >> >> >> //string msg; >> StructData *msg; >> while(true){ >> zmq::message_t m; >> subscriber.recv(&m); >> msg = (StructData *)m.data(); >> cout << msg->Symbol << endl; >> } >> >> >> Thanks. >> >> -- >> Best Regards, >> Roy Liu >> >> > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > > -- --------------------------------------------------- Dr Lucas Hope - lucas.r.hope@skype Machine Learning and Software Engineering Consultant Melbourne, Australia
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
