随笔分类 -  libjingle

摘要:什么是signal/slot机制? 这是一种注册/回调机制,QT,libjingle中都很常用。它同时也是一种观察者模式的实现。为什么需要signal/slot机制? 表扬好同学之前,先批评下坏同学,就是MFC这个让很多IT童鞋头痛不已的框架。想象一个最常见的场景,拉一个对话框,上面放两个按钮,一个文本框,按钮按一下,文本框上数字增加或是减少一个。如果你来实现要怎么做呢?很简单么,SendMessage or PostMessage不就好了,那消息发给谁呢?爱谁谁么,直接发给文本框,要不统一发给对话框,让它转发不就行了么。无论是哪种方法都是糟糕的设计,难于扩展,难于维护,难于修改。为什么呢?先 阅读全文
posted @ 2011-01-02 21:22 hjtc 阅读(1725) 评论(0) 推荐(1)
摘要:我承认我懒,本来是想写的,发现已经有人写了,那算了。转帖一篇吧:原文链接一. Thread类是libjingle中比较核心的类。 我把他的功能主要分为三块:1. Thread相关函数: 主要是对不同操作系统Thread的统一接口包装。 其中包括了Start(), Stop(), Join()等线程控制函数, 也包括了优先级控制相关的函数, 还有一个定位查找的功能。关于定位查找的功能主要是由ThreadManager控制的, ThreadManager类主要是对Thread进行管理。当然会有一个global的ThreadManager的对象来进行所有Thread对象的注册,定位,查找等操作。 T 阅读全文
posted @ 2010-12-15 14:34 hjtc 阅读(1793) 评论(0) 推荐(0)
摘要:先从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); 注意,CurrentThread是在当前线程已经 阅读全文
posted @ 2010-12-14 13:38 hjtc 阅读(1639) 评论(0) 推荐(0)
摘要:开发是在windows平台下进行的,利用libjingle完成一个基本功能的客户端。 暂时链接Gtalk的服务器,以后会在本地搭建服务器。 libjingle官方下载地址: https://code.google.com/p/libjingle/1. 编译lib 首先用libjingle自带的编译环境生成lib和samples。 安装包里德readme写的很清楚了,按照上面的步骤一步一步来就是了。 注意srtp的安装,必须使用libjingle官方的srtp-cvs.zip,其他版本都是浮云。 2. 在工程中链接libjingle的lib 首先在vs中建立一个空的widnows项目,再把安装包 阅读全文
posted @ 2010-12-08 12:31 hjtc 阅读(3819) 评论(7) 推荐(0)