swift xmpp代码学习

来源:互联网 发布:中国8个一线城市 知乎 编辑:程序博客网 时间:2024/05/17 18:23


命名约束: 

信号槽

Signal                 Slot

signalName  -> handleSingleName

不管是boost::Signal或是Qt的signal slot机制,槽一般的命名约束就是handleXXX

enable_shared_from_this

如果采用boost::enable_shared_from_this typedef 一个ref名字

class SWIFTEN_API BoostConnection : public Connectionpublic EventOwnerpublic boost::enable_shared_from_this<BoostConnection> {

public:

typedef boost::shared_ptr<BoostConnectionref;

这是Boost引用计数智能指针的实现.可通过this指针获取到share_ptr

 Signal定义也是接口的一部分:

Swiften采用泛化的接口定义,Boost::Signal定义(以后简称回调定义)也是接口定义一部分;这估计也是导致swiften无法在swig中翻译成Java的最大原因, swift有单独的利用Swift架构实现的Java库名曰stoke!

/// 服务器接口类

class SWIFTEN_API ConnectionServer {

public:

enum Error {

Conflict,

UnknownError

};

/// 接口

virtual void start() = 0;

virtual void stop() = 0;

...

/// 有新用户连接上回调

boost::signal<void (boost::shared_ptr<Connection>)> onNewConnection;

};

Boost::Signal是个一对多的函数回调,当事件触发时(比如调用onNewConnection),他会以此调用

0 0
原创粉丝点击