- 浏览: 5352 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
liaojun116:
请问楼主有没有这部分的源码?我想用libjingle做一个客户 ...
Libjingle的代码分析
文章列表
先从ThreadManager类说起:
这是一个全局的线程管理类,在thread.cc中定义。
这个类的核心功能在于提供线程对象注册的功能。提供了一个很方便的函数CurrentThread,如下面的场景:
// Check that we're being called from the channel (e.g., worker) thread.
ASSERT(talk_base::ThreadManager::CurrentThread() == channel_thread_);
channel_thread_->Clear(this);
注意,Cu ...
Libjingle中重要概念
- 博客分类:
- libjingle
Libjingle中重要概念
Signals、sigslot简介
Threads、signaling thread和worker thread
Signals、sigslot简介
在复杂的工程中,整个系统被分为数个模块,每个模块提供有限的功能,由上层调用从而组成整个系统,为了保证每个模块的独立性,我们经常限制模块与模块之间直接联系,每个模块只提供有限的API或Com接口,内部完全封装起来。
有时候两个不同的逻辑层的模块需要通信,如果直接include头文件会使项目变的复杂,sigslot的出现为我们提供了一种解决问题的思想,它用“信号”的概念实现不同模块之间的传输问题,sig ...
Libjingle的代码分析
- 博客分类:
- libjingle
Libjingle的工作流程主要分为以下几个步骤:
Libjingle的代码分析
登录Jabber服务器
发送自身的状态和获取好友的状态信息
设置会话管理
发送文件请求、或连接某个用户
确定接收和通信,(指定文件路径)
libjingle使用方法:
libjingle使用的是标准xmpp协议,但是对里面一些内容进行了扩展:
登录Jabber服务器
talk_base::InitializeSSL();初始化SSL链路,如果需要加密的话
XmppPump类;封装了XmppClient并用XmppClient来登陆到服务器上,它主要的函数和消息通知:
pump.client()->Sign ...
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
注意,窗口消息处理程序的四个参数与MSG结构的前四个字段是相同的。第一个参数hwnd是接收消息的窗口的句柄,它与CreateWindow函数的传回值相同。对于与HELLOWIN相似的 ...
建立窗口只需呼叫CreateWindow函数即可。
LoadIcon 加载图标供程序使用。
LoadCursor 加载鼠标光标供程序使用。
GetStockObject 取得一个图形对象(在这个例子中,是取得绘制窗口背景的画刷对象)。
RegisterClass 为程序窗口注册窗口类别。
MessageBox 显示消息框。
CreateWindow 根据窗口类别建立一个窗口。
ShowWindow 在屏幕上显示窗口。
UpdateWindow 指示窗口自我更新。
GetMessage 从消息队列中取得消息。
TranslateMessage 转译某些键盘消息。
DispatchMessage 将 ...