xtdwnuisea 发表于 2010-1-8 17:17:35

modern

的确是强人呀, 你说的是对的, 服务配置框架已经帮我们把stream与module结合起来了;

在CCM_App工程中遇到一个问题, 在make_stream()刚建立好流后, 立即压入消息是不对的, 我以前错了两个地方:
1. 就是您说的:没有自己调度消息
2. 在make_stream()函数中刚 new完流就进行消息压入;

现在我在make_stream()中创建一个线程,等Module全部压入流以后,再在我的工作线程中向流中压入消息; 这样就没有问题了;

与你进行深层次交流真是一件大快人心的事呀:) 非常感谢您在这件事情上对我的提醒与深度交流!

[ 本帖最后由 xtdwnuisea 于 2010-1-8 17:19 编辑 ]

federation123 发表于 2010-1-11 09:51:03

公司曾经使用stream来开发一个通讯系统,但当软件开发完成以后,才发现会出现shutdown
楼上各位要小心下面的情况。
SEGV during shutdown with ACE Streamsfrom [Chad Beaulac]

Subject: SEGV during shutdown with ACE StreamsFrom: Chad BeaulacDate: Thu, 29 May 2008 06:08:19 -0700 PDTNewsgroups: comp.soft-sys.ace
file:///F:/project/P-软总线/V-版本/DDS/SEGV%20during%20shutdown%20with%20ACE%20Streams.files/banner_en.jpg     ACE VERSION: 5.6.3, 5.6.4, 5.6.5    HOST MACHINE and OPERATING SYSTEM:      Fedora Core 7 and 8, AS 4.5    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:    COMPILER NAME AND VERSION (AND PATCHLEVEL):    same    THE $ACE_ROOT/ace/config.h FILE:    #define ACE_HAS_REACTOR_NOTIFICATION_QUEUE    #include "ace/config-linux.h"    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:    no_hidden_visibility = 1    include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU    AREA/CLASS/EXAMPLE AFFECTED:    $ACE_ROOT/examples/ASX/CCM_App    ./server -f svc.conf    DOES THE PROBLEM AFFECT:      COMPILATION? no      LINKING? no      EXECUTION? yes      OTHER (please specify)?   ACE and the example application are affected    SYNOPSIS:    When you hit Ctrl-C or Ctrl-D to stop the example server program,it core dumps with a SEGV during shutdown.    DESCRIPTION:    I have a processing framework for real-time processing systems andI'd like to convert it to use the ACE Streams framework whereapplicable. A SEGV during shutdown isn't acceptable in my office so Ican't use the Streams framework yet.    REPEAT BY:    Run $ACE_ROOT/examples/ASX/CCM_App/server -f $ACE_ROOT/examples/ASX/CCM_App/svc.conf    SAMPLE FIX/WORKAROUND:    none at this time

Joe 发表于 2010-1-11 16:07:48

原帖由 xtdwnuisea 于 2010-1-7 15:20 发表 http://www.acejoy.com/bbs/images/common/back.gif
CCM_App 这个项目我已经能运行起来

问一下楼主,为什么这个例子运行会出错呢,window系统

我用server.exe -d -f svc.conf运行的

Joe 发表于 2010-1-12 15:07:46

static ACE_Service_Manager "-d -p 4911"

dynamic Test_Task Service_Object *CCM_App:_make_Test_Task() "-p 3000"

#stream dynamic CCM_App STREAM *CCM_App:make_stream() active
{
dynamic Device_Adapter Module *CCM_App:make_da()
dynamic Event_Analyzer Module *CCM_App:make_ea()
dynamic Multicast_Router Module *CCM_App:make_mr() "-p 3001"
}

#stream CCM_App
{
remove Device_Adapter
remove Event_Analyzer
remove Multicast_Router
}

remove CCM_App
remove Test_Task


如果svc.conf是这样的就不会出错,也就是说将三个Module加载到Service configraturor中是不会出错;
但是不能将Stream加载到Service configraturor中,也不能将三个Module加载到Stream中;
我就用ACE version 5.6的自带的例子ACE_wrappers\examples\ASX\CCM_App;
不知道是我哪里没有弄对,希望两位能给指点一下,感谢

xtdwnuisea 发表于 2010-2-1 18:11:56

Module可以加载到Stream中
Stream可以加载到service configure中


在主应用程序中,还可以使用迭代的方式,取到service configure中Stream的指定,向stream中压入消息, 这个贴子在modern
的帮助下,一直讨论的这个话题


关于如何迭代,在test项目中还有例子;

[ 本帖最后由 xtdwnuisea 于 2010-2-1 18:13 编辑 ]

acecoder 发表于 2010-4-20 09:58:10

"在主应用程序中,还可以使用迭代的方式,取到service configure中Stream的指定,向stream中压入消息" 他最后这么说,我会迭代,但我只能得到名字,而不能 取到service configure中Stream的指定,向stream中压入消息,      因为我取到名字后,使用ACE_Dynamic_Service,只能得到ACE_Service_Object派生类对象。而ACE_Stream不行。
页: 1 2 [3]
查看完整版本: 关于service configure 和 streams 能结合起来吗?