找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4735|回复: 0

ACE笔记(5)-ACE_Reactor 机制下的其他事件触发器

[复制链接]
发表于 2008-7-15 23:52:58 | 显示全部楼层 |阅读模式
ACE笔记(5)-ACE_Reactor 机制下的其他事件触发器
from [url=http://blog.csdn.net/anyjack/]http://blog.csdn.net/anyjack/[/url]

检查控制台的输入动作
控制台事件handle :ACE_STDIN
当用户输入回车时会触发信号,执行 handle_signal 方法
通过ACE_OS::read (ACE_STDIN, buffer, sizeof buffer)方法读取用户的输入

检查目录是否发生变化

目录改变事件handle:  
  int change_notification_flags = FILE_NOTIFY_CHANGE_FILE_NAME;
   this->handle_ = ACE_TEXT_FindFirstChangeNotification (directory,  // pointer to name of directory to watch
                                                         FALSE, // flag for monitoring directory or directory tree
                                                         change_notification_flags // filter conditions to watch for
                                                         );
  事件触发后,如想继续保持触发,须调用::FindNextChangeNotification (this->handle_);方法
  如下关闭触发,应调用::FindCloseChangeNotification (this->handle_);方法

目录内容发生改变时会触发信号,执行handle_singnal方法
检查注册表项是否发生了变化
注册表项改变事件HANDLE:
(::RegNotifyChangeKeyValue (this->context_.key (), // handle of key to watch
                                 FALSE, // flag for subkey notification
                                 REG_NOTIFY_CHANGE_NAME, // changes to be reported
                                 this->event_.handle (), // handle of signaled event
                                 TRUE // flag for asynchronous reporting
                                 )
涉及了下面这个主要类:
ACE_Registry::Naming_Context context_;
其提供有
  bind_new_context (temp_context_name,temp_context);  新建一个注册表项                                
  unbind_context (temp_context_name);删除一个注册表项
  方法
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-23 20:54 , Processed in 0.018940 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表