carrier.h
来自「一个语言识别引擎」· C头文件 代码 · 共 74 行
H
74 行
// -*- 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.
*
*/
#ifndef _YARP2_CARRIER_
#define _YARP2_CARRIER_
#include <yarp/ShiftStream.h>
#include <yarp/Bytes.h>
#include <yarp/SizedWriter.h>
namespace yarp {
class Carrier;
class Protocol;
}
/**
* Class representing one specific protocol for sending and receiving
* YARP messages. YARP communication occurs through a series of
* defined phases that make it easy to duplicate output. Any process
* that goes through the same phases can be described as a Carrier and
* then made available (through the Carriers class) for connections.
*/
class yarp::Carrier : public ShiftStream {
public:
virtual Carrier *create() = 0;
virtual String getName() = 0;
virtual bool checkHeader(const Bytes& header) = 0;
virtual void setParameters(const Bytes& header) = 0;
virtual void getHeader(const Bytes& header) = 0;
virtual bool isConnectionless() = 0;
virtual bool canAccept() = 0;
virtual bool canOffer() = 0;
virtual bool isTextMode() = 0;
virtual bool requireAck() = 0;
virtual bool supportReply() = 0;
// all remaining may throw IOException
//virtual void close() = 0; // from ShiftStream
// sender
virtual void prepareSend(Protocol& proto) = 0;
virtual void sendHeader(Protocol& proto) = 0;
virtual void expectReplyToHeader(Protocol& proto) = 0;
virtual void sendIndex(Protocol& proto) = 0;
virtual void write(Protocol& proto, SizedWriter& writer) = 0;
// receiver
virtual void expectExtraHeader(Protocol& proto) = 0;
virtual void respondToHeader(Protocol& proto) = 0;
virtual void expectIndex(Protocol& proto) = 0;
virtual void expectSenderSpecifier(Protocol& proto) = 0;
virtual void sendAck(Protocol& proto) = 0;
virtual void expectAck(Protocol& proto) = 0;
virtual bool isActive() = 0;
virtual String toString() = 0;
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?