Focus on ACE
订阅 ace-china
电子邮件:
浏览存于
groups.google.com
上的
所有帖子
C++博客
首页
新随笔
联系
聚合
管理
64 Posts :: 3 Stories :: 22 Comments :: 0 Trackbacks
公告
欢迎大家跟我交流
gTalk: 2005119@gmail.com
我的统计
您是第
位访客
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
(74)
ACE(28)
C++&OOP(19)
Miscellaneous(23)
TAO(4)
随笔档案
(64)
2012年7月 (1)
2009年9月 (1)
2008年7月 (1)
2007年12月 (1)
2007年1月 (1)
2006年12月 (1)
2006年8月 (5)
2006年7月 (5)
2006年6月 (10)
2006年5月 (8)
2006年4月 (29)
2006年3月 (1)
文章档案
(3)
2006年5月 (1)
2006年4月 (2)
收藏夹
(4)
ACE Favorites (3)
Favorites (1)
ACE论坛
ACE Usergroups
ACE中文用户组
Huihoo ACE/TAO论坛区
网上邻居
Carrey的Blog
Huyi的Blog
Lsmodel的Blog
阿彪的Blog
编辑空间
豆豆爹的Blog
天下奇毒的Blog
我的另一个blog
小明的Blog
最新随笔
1. 欢迎访问我的新网站
2. 优先级反转
3. 如何在Windows,Visual C++下获取、配置和构建ACE及TAO?
4. 欢迎访问www.ace-tao.org/bbs
5. 使用vs2005(vc8)编译log4cpp-0.3.5rc3
6. TAO(The ACE ORB)简介
7. ACE小技巧:在ACE_Acceptor框架中,自定义服务处理器的创建
8. 小技巧: 当ACE_Svc_Handler关闭时使用的默认行为
9. 小技巧: ACE_Svc_Handler的初始化
10. 有人知道CSDN邮件列表的退订方式吗?
搜索
积分与排名
积分 - 135485
排名 - 188
最新随笔
1. 欢迎访问我的新网站
2. 优先级反转
3. 如何在Windows,Visual C++下获取、配置和构建ACE及TAO?
4. 欢迎访问www.ace-tao.org/bbs
5. 使用vs2005(vc8)编译log4cpp-0.3.5rc3
6. TAO(The ACE ORB)简介
7. ACE小技巧:在ACE_Acceptor框架中,自定义服务处理器的创建
8. 小技巧: 当ACE_Svc_Handler关闭时使用的默认行为
9. 小技巧: ACE_Svc_Handler的初始化
10. 有人知道CSDN邮件列表的退订方式吗?
最新评论
1. re: 再次获得互斥体,为什么没有死锁
@slay78
II楼 正解,linux 上不想死锁,可以用ACE_Recursive_Thread_Mutex
--hai
2. re: ACE电子书下载
看了书就下载了,怎么不提供密码啊
--peace
3. re: ACE电子书下载[未登录]
解压要密码!!!!!!!
--小明
4. re: C++编码不规范出现的错误一例的解析
sec<0 || sec>59
是不对的.应该是
sec<0 || sec>60
--mymtom
5. re: 有人知道CSDN邮件列表的退订方式吗?
直接过滤掉,Gmail就有这个功能
--HelloWorld
阅读排行榜
1. socket编程:SO_REUSEADDR例解 (转)(24346)
2. 在Visual Studio 2005下使用CPPUnit向导(5189)
3. 使用vs2005(vc8)编译log4cpp-0.3.5rc3(4199)
4. TAO(The ACE ORB)简介(4017)
5. 小技巧: ACE_Svc_Handler的初始化(3801)
评论排行榜
1. 今天喜得两本书,需要的请留言(5)
2. 将ACE事件循环与MFC UI集成的一种实现(3)
3. 再次获得互斥体,为什么没有死锁(3)
4. 巧用虚友元函数(原创)(3)
5. ACE电子书下载(2)
ACE_Hash_Map的使用示例
//
TestHaspMap.cpp : Defines the entry point for the console application.
//
#include
"
stdafx.h
"
#include
"
ACE
/Basic_Types.h
"
#include
"
ACE
/Map_Manager.h
"
#include
"
ACE
/SString.h
"
#include
"
ACE
/Log_Msg.h
"
#include
"
ACE
/Null_Mutex.h
"
class
PhoneNumber
{
public
:
PhoneNumber(
const
char
*
number):number_(number)
{
}
const
char
*
getNumber(
void
)
{
return
number_.c_str();
}
private
:
ACE_SString number_;
};
typedef ACE_UINT16 CONNECTION_ID;
typedef ACE_Null_Mutex MAP_MUTEX;
typedef ACE_Map_Manager
<
CONNECTION_ID,PhoneNumber
*
, MAP_MUTEX
>
CONNECTION_MAP;
typedef ACE_Map_Iterator
<
CONNECTION_ID, PhoneNumber
*
, MAP_MUTEX
>
CONNECTION_MAP_ITERATOR;
typedef ACE_Map_Entry
<
CONNECTION_ID, PhoneNumber
*>
CONNECTION_MAP_ENTRY;
typedef ACE_Map_Manager
<
CONNECTION_ID,CONNECTION_MAP
*
,MAP_MUTEX
>
MAP_MAP;
typedef ACE_Map_Iterator
<
CONNECTION_ID, CONNECTION_MAP
*
, MAP_MUTEX
>
MAP_MAP_ITERATOR;
typedef ACE_Map_Entry
<
CONNECTION_ID, CONNECTION_MAP
*>
MAP_MAP_ENTRY;
int
ACE_TMAIN(
int
argc, _TCHAR
*
argv[])
{
CONNECTION_MAP connection_map;
PhoneNumber me(
"
13717928***
"
);
PhoneNumber office(
"
010-82378***
"
);
PhoneNumber home(
"
13366686**
"
);
int
result
=
-
1
;
result
=
connection_map.bind(
1
,
&
me);
ACE_ASSERT(result
==
0
);
result
=
connection_map.bind(
2
,
&
office);
ACE_ASSERT(result
==
0
);
result
=
connection_map.bind(
3
,
&
home);
ACE_ASSERT(result
==
0
);
result
=
connection_map.bind(
5
,
&
home);
ACE_ASSERT(result
==
0
);
connection_map.unbind(
3
);
CONNECTION_MAP_ITERATOR it(connection_map);
for
(CONNECTION_MAP_ENTRY
*
i
=
0
;
it.next (i)
!=
0
;
it.advance ())
{
PhoneNumber
*
phone
=
i
->
int_id_;
ACE_DEBUG((LM_INFO,ACE_TEXT(
"
连接号码 %d, 电话号码 %s\n
"
),
i
->
ext_id_,
phone
->
getNumber()));
}
PhoneNumber
*
any_phone
=
0
;
CONNECTION_ID any_id
=
5
;
result
=
connection_map.find(any_id,any_phone);
if
( result
!=
-
1
)
{
ACE_DEBUG((LM_INFO,ACE_TEXT(
"
连接号码 %d, 电话号码 %s\n
"
),
any_id,
any_phone
->
getNumber()));
}
else
{
ACE_DEBUG((LM_INFO,ACE_TEXT(
"
连接号码 %d, 电话号码 %s\n
"
),
any_id,
"
not found.
"
));
}
MAP_MAP map_map;
map_map.bind(
1
,
&
connection_map);
size_t n
=
map_map.current_size();
MAP_MAP_ITERATOR map_it(map_map);
for
(MAP_MAP_ENTRY
*
j
=
0
;
map_it.next (j)
!=
0
;
map_it.advance ())
{
CONNECTION_MAP
*
cur_map
=
j
->
int_id_;
size_t count
=
cur_map
->
current_size();
PhoneNumber
*
any_phone2
=
0
;
if
(cur_map
->
find(
2
,any_phone2)
!=-
1
)
{
ACE_DEBUG((LM_INFO,ACE_TEXT(
"
内部map中电话号码 %s\n
"
),
any_phone2
->
getNumber()));
}
}
return
0
;
}
posted on 2006-07-13 13:39
Stone Jiang
阅读(3307)
评论(1)
编辑
收藏
引用
所属分类:
ACE
Feedback
#
re: ACE_Hash_Map的使用示例
2006-09-18 11:48
x11
ft,这是ACE_Map不是ACE_Hash_Map啊
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
ACE小技巧:在ACE_Acceptor框架中,自定义服务处理器的创建
小技巧: 当ACE_Svc_Handler关闭时使用的默认行为
小技巧: ACE_Svc_Handler的初始化
ACE_Hash_Map的使用示例
关于ACE_Thread_Mutex的回复
再次获得互斥体,为什么没有死锁
ACE应用程序链接错误 error LNK2019 的解决办法
Visual C++下ACE动态服务配置入门
关于ACE_Task::last_thread()
在Linux下安装ACE菜鸟指南
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © Stone Jiang