"in"和"out"在参数方向上是什么意思?
What does "in" and "out" mean in arg direction?
在本教程中,我发现了
class Chat : public QObject
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "demo.Chat")
Q_PROPERTY( QStringList users READ users)
signals:
void userAdded(const QString& user);
void userRemoved(const QString& user);
void messageSent(const Message &message);
public slots:
void addUser(const QString &user);
void removeUser(const QString &user);
void sendMessage(const Message &message);
public:
Chat(QObject* parent = 0);
virtual ~Chat();
QStringList users() const;
private:
QStringList m_users;
};
可以生成
......
<signal name="userRemoved">
<arg name="user" type="s" direction="out"/>
</signal>
<method name="addUser">
<arg name="user" type="s" direction="in"/>
</method>
......
"out"answers"in"在这里是什么意思?
来自D-Bus教程:
方法和信号
每个对象都有成员;两种成员是方法和信号。方法是可以在对象上调用的操作,具有可选的输入(也称为参数或"输入参数"(和输出(也称为返回值或"输出参数"(。信号是从物体向物体的任何感兴趣的观察者的广播;信号可以包含数据有效载荷。
来自D-Bus规范:
方法的[…]参数通常被称为";在";(这意味着在METHOD_CALL中发送(,或";out";(这意味着在METHOD_RETURN中返回(。
<arg>在这种情况下它默认为"0";在";对于方法调用和";out";用于信号。信号只允许";out";所以,虽然可以指定方向,但毫无意义。
direction属性描述参数是为函数输入的,还是将返回给调用方的输出。对于信号,只允许输出参数。一个函数可能有多个out
参数,您可以在这里查看示例。
在您的特定情况下,userRemoved
是通过D-Bus传输新用户的信号,因此user
参数是面向外部的值。然而,addUser
是一个将通过D-Bus调用的函数,user
将是它的输入,它是一个向内的值,将通过D-Bus到达,而不是从该对象发送。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思