streamconnectionreader.cpp

来自「一个语言识别引擎」· C++ 代码 · 共 67 行

CPP
67
字号
// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-

/*
 * Copyright (C) 2006 Paul Fitzpatrick
 * CopyPolicy: Released under the terms of the GNU GPL v2.0.
 *
 */


#include <yarp/BufferedConnectionWriter.h>
#include <yarp/StreamConnectionReader.h>
#include <yarp/NetType.h>
#include <yarp/BufferedConnectionWriter.h>

#include <yarp/os/Bottle.h>

using namespace yarp;
using namespace yarp::os;

yarp::os::ConnectionWriter *StreamConnectionReader::getWriter() {
    if (str==NULL) {
        return NULL;
    }
    if (writer==NULL) {
        writer = new BufferedConnectionWriter;
        YARP_ASSERT(writer!=NULL);
        writer->reset(isTextMode());
    }
    writer->clear();
    return writer;
}


void StreamConnectionReader::flushWriter() {
    if (writer!=NULL) {
        if (str!=NULL) {
            writer->write(str->getOutputStream());
            writer->clear();
        }
    }
}


StreamConnectionReader::~StreamConnectionReader() {
    if (writer!=NULL) {
        delete writer;
        writer = NULL;
    }
}


bool StreamConnectionReader::convertTextMode() {
    Bottle bot;
    if (isTextMode()) {
        bot.read(*this);
        BufferedConnectionWriter writer;
        bot.write(writer);
        String s = writer.toString();
        altStream.reset(s);
        in = &altStream;
    }

    return true;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?