本文整理汇总了C++中ConnectionWriter类的典型用法代码示例。如果您正苦于以下问题:C++ ConnectionWriter类的具体用法?C++ ConnectionWriter怎么用?C++ ConnectionWriter使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ConnectionWriter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: printf
bool RFModuleHelper::read(ConnectionReader& connection) {
Bottle cmd, response;
if (!cmd.read(connection)) { return false; }
printf("command received: %s\n", cmd.toString().c_str());
bool result = owner.safeRespond(cmd,response);
if (response.size()>=1) {
ConnectionWriter *writer = connection.getWriter();
if (writer!=0) {
if (response.get(0).toString()=="many" && writer->isTextMode()) {
for (int i=1; i<response.size(); i++) {
Value& v = response.get(i);
if (v.isList()) {
v.asList()->write(*writer);
} else {
Bottle b;
b.add(v);
b.write(*writer);
}
}
} else {
response.write(*writer);
}
//printf("response sent: %s\n", response.toString().c_str());
}
}
return result;
}
示例2: respond
bool DeviceResponder::read(ConnectionReader& connection) {
Bottle cmd, response;
if (!cmd.read(connection)) { return false; }
//printf("command received: %s\n", cmd.toString().c_str());
respond(cmd,response);
if (response.size()>=1) {
ConnectionWriter *writer = connection.getWriter();
if (writer!=NULL) {
if (response.get(0).toString()=="many"&&writer->isTextMode()) {
for (int i=1; i<response.size(); i++) {
Value& v = response.get(i);
if (v.isList()) {
v.asList()->write(*writer);
} else {
Bottle b;
b.add(v);
b.write(*writer);
}
}
} else {
response.write(*writer);
}
//printf("response sent: %s\n", response.toString().c_str());
}
} else {
ConnectionWriter *writer = connection.getWriter();
if (writer!=NULL) {
response.clear();
response.addVocab(Vocab::encode("nak"));
response.write(*writer);
}
}
return true;
}
示例3: write
bool Value::write(ConnectionWriter& connection) {
if (!proxy) {
connection.appendInt(BOTTLE_TAG_LIST);
connection.appendInt(0);
return !connection.isError();
}
connection.appendInt(BOTTLE_TAG_LIST);
connection.appendInt(1);
return proxy->write(connection);
}
示例4: write
virtual bool write(ConnectionWriter& connection)
{
connection.appendBlock((char*)&datum, sizeof(double));
connection.appendBlock((char*)&payloadSize, sizeof(int));
if (payloadSize>0)
connection.appendBlock((char *)payload, payloadSize);
return !connection.isError();
}
示例5: write
bool BufferedConnectionWriter::write(ConnectionWriter& connection) const
{
stopWrite();
size_t i;
for (i = 0; i < header_used; i++) {
yarp::os::ManagedBytes& b = *(header[i]);
connection.appendBlock(b.get(), b.used());
}
for (i = 0; i < lst_used; i++) {
yarp::os::ManagedBytes& b = *(lst[i]);
connection.appendBlock(b.get(), b.used());
}
return !connection.isError();
}
示例6: length
bool yarp::os::SizedWriter::write(ConnectionWriter& connection) const
{
for (size_t i = 0; i < length(); i++) {
connection.appendBlock((char*)data(i), length(i));
}
return true;
}
示例7: write
bool Stamp::write(ConnectionWriter& connection) {
connection.appendInt(BOTTLE_TAG_LIST); // nested structure
connection.appendInt(2); // with two elements
connection.appendInt(BOTTLE_TAG_INT);
connection.appendInt(sequenceNumber);
connection.appendInt(BOTTLE_TAG_DOUBLE);
connection.appendDouble(timeStamp);
connection.convertTextMode();
return !connection.isError();
}
示例8: write
bool PortCommand::write(ConnectionWriter& writer) {
//ACE_DEBUG((LM_DEBUG,"PortCommand::writeBlock"));
//ACE_OS::printf("Writing port command, text mode %d\n", writer.isTextMode());
if (!writer.isTextMode()) {
int len = 0;
if (ch=='\0') {
len = (int)str.length()+1;
}
yAssert(header.length()==8);
char *base = header.get();
Bytes b(base,4);
NetType::netInt(len,b);
base[4] = '~';
base[5] = ch;
base[6] = 0;
base[7] = 1;
writer.appendBlock(header.bytes().get(),header.bytes().length());
if (ch=='\0') {
writer.appendBlock(str.c_str(),str.length()+1);
}
} else {
if (ch!='\0') {
char buf[] = "X";
buf[0] = ch;
writer.appendString(ConstString(buf).c_str(),'\n');
} else {
writer.appendString(str.c_str(),'\n');
}
}
return !writer.isError();
}
示例9: write
bool BottleImpl::write(ConnectionWriter& writer) {
// could simplify this if knew lengths of blocks up front
if (writer.isTextMode()) {
//writer.appendLine(toString());
writer.appendString(toString().c_str(),'\n');
} else {
#ifdef USE_YARP1_PREFIX
if (!nested) {
String name = "YARP2";
writer.appendInt(name.length()+1);
writer.appendString(name.c_str(),'\0');
}
#endif
synch();
/*
if (!nested) {
// No byte count any more, to facilitate nesting
//YMSG(("bottle byte count %d\n",byteCount()));
//writer.appendInt(byteCount()+sizeof(NetInt32));
writer.appendInt(StoreList::code + speciality);
}
*/
//writer.appendBlockCopy(Bytes((char*)getBytes(),byteCount()));
writer.appendBlock((char*)getBytes(),byteCount());
}
return !writer.isError();
}
示例10: writeRaw
bool StoreBlob::writeRaw(ConnectionWriter& writer) const
{
writer.appendInt32(static_cast<std::int32_t>(x.length()));
writer.appendBlock(x.c_str(), x.length());
return true;
}
示例11:
bool StoreFloat64::writeRaw(ConnectionWriter& writer) const
{
writer.appendFloat64(x);
return true;
}
示例12: writeRaw
bool StoreDouble::writeRaw(ConnectionWriter& writer) {
//writer.appendBlockCopy(Bytes((char*)&x,sizeof(x)));
NetFloat64 flt = x;
writer.appendBlock((char*)&flt,sizeof(flt));
return true;
}
示例13: write
virtual bool write(ConnectionWriter& connection) {
printf("Writing an integer\n");
connection.appendInt(val);
return true;
}
示例14: write
virtual bool write(ConnectionWriter& connection) {
ct = 0;
send.write(connection);
connection.setReplyHandler(*this);
return true;
}
示例15: write
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~
// SERIALIZATION methods
//~~~~~~~~~~~~~~~~~~~~~~
bool dynContact::write(ConnectionWriter& connection) const{
// represent a dynContact as a list of 4 elements that are:
// - a list of 3 int, i.e. contactId, bodyPart, linkNumber
// - a list of 3 double, i.e. the CoP
// - a list of 3 double, i.e. the force
// - a list of 3 double, i.e. the moment
connection.appendInt(BOTTLE_TAG_LIST);
connection.appendInt(4);
// list of 3 int, i.e. contactId, bodyPart, linkNumber
connection.appendInt(BOTTLE_TAG_LIST + BOTTLE_TAG_INT);
connection.appendInt(3);
connection.appendInt(contactId);
connection.appendInt(bodyPart); // left_arm, right_arm, ...
connection.appendInt(linkNumber);
// list of 3 double, i.e. the CoP
connection.appendInt(BOTTLE_TAG_LIST + BOTTLE_TAG_DOUBLE);
connection.appendInt(3);
for(int i=0;i<3;i++) connection.appendDouble(CoP[i]);
// list of 3 double, i.e. the force
connection.appendInt(BOTTLE_TAG_LIST + BOTTLE_TAG_DOUBLE);
connection.appendInt(3);
for(int i=0;i<3;i++) connection.appendDouble(F[i]);
// list of 3 double, i.e. the moment
connection.appendInt(BOTTLE_TAG_LIST + BOTTLE_TAG_DOUBLE);
connection.appendInt(3);
for(int i=0;i<3;i++) connection.appendDouble(Mu[i]);
// if someone is foolish enough to connect in text mode,
// let them see something readable.
connection.convertTextMode();
return !connection.isError();
}