标签: tao

C++ CORBA (ACE/TAO) 问题

我使用 ACE TAO 作为 CORBA 实现。我想知道是否有人知道设置最大消息大小和最大连接数的任何选项。

omniORB有两个选项,giopMaxMsgSize并且maxGIOPConnectionPerServer

即使 TAO 有ORBMaxMessageSize并且ORBLingerTimeout它导致我的服务器崩溃。我什至不知道这些是否是正确的选择。

这就是 TAO 调试输出的内容。

TAO (30232|3086943952) ORB_Core: Unable to initialize Codeset Manager
TAO (30232|3086943952) - Completed initializing the process-wide service context
TAO (30232|3086943952) - Default ORB services initialization begins
TAO (30232|3086943952) - Default ORB services initialization completed
TAO (30232|3086943952) - We are the default ORB ...
TAO (30232|3086943952) - Initializing the orb-specific services
TAO (30232|3086943952) - Setting primary connection timeout hook
TAO …
Run Code Online (Sandbox Code Playgroud)

c++ corba tao ace

5
推荐指数
0
解决办法
2449
查看次数

关于glBindTexture的问题

这是我用来绘制精灵的方法:

public void DrawSprite(Sprite sprite)
        {
            Gl.glBegin(Gl.GL_TRIANGLES);
            {
                for (int i = 0; i < Sprite.VertexAmount; i++)
                {
                    Gl.glBindTexture(Gl.GL_TEXTURE_2D, sprite.Texture.Id);
                    DrawImmediateModeVertex(
                    sprite.VertexPositions[i],
                    sprite.VertexColors[i],
                    sprite.VertexUVs[i]);
                }
            }
            Gl.glEnd();
        }
Run Code Online (Sandbox Code Playgroud)

DrawImmediateModeVertex - 绘制一个顶点.

我应该Gl.glBindTexture退出for循环吗?当我渲染纹理时也会发生奇怪的事情,即使我提供了具有不同纹理ID的精灵,每次只绘制一个相同的纹理.

opengl tao

2
推荐指数
1
解决办法
827
查看次数

Orber(Erlang ORB)在TAO orb抛出时无法捕获用户定义的异常

我有一个C++ CORBA服务器,它实现了抛出用户定义的异常的接口.

当客户端和服务器都在C++中实现时(使用TAO orb和omniORB进行测试),我很容易捕获到特定的异常.

但是当我从Erlang(使用orber)调用相同的方法时,异常显示为一般异常,而不是特定的用户定义异常.

为了测试这个,我只使用了一个简单的IDL -

interface Messenger {

    exception cirrus_error{
            short error_code;
            string error_desc;
    };

    boolean send_message(in string user_name,
                       in string subject,
                       inout string message) raises (cirrus_error);
};
Run Code Online (Sandbox Code Playgroud)

如果服务器和客户端都在C++中 - 我得到的异常是(对于测试我将其编码为始终抛出用户异常)

CORBA exception: cirrus_error (IDL:Messenger/cirrus_error:1.0)
Run Code Online (Sandbox Code Playgroud)

但是当通过Erlang调用时 - 我得到了 -

** exception throw: {'EXCEPTION',{'UNKNOWN',[],1330446337,'COMPLETED_MAYBE'}}
 in function  corba:raise/1
Run Code Online (Sandbox Code Playgroud)

在说明Orber应用程序以启用正确行为时,是否需要执行一些特殊操作?

编辑 - 这是我从erlang调用服务器的方式 -

在Erlang提示符下,这就是我所做的 -

1> orber:jump_start().

2> O = corba:string_to_object(IORStr).

3> 'Messenger':send_message(O, "s", "t", "f").
** exception throw: {'EXCEPTION',{'UNKNOWN',[],1330446337,'COMPLETED_MAYBE'}}
     in function  corba:raise/1 
Run Code Online (Sandbox Code Playgroud)

erlang tao omniorb

2
推荐指数
1
解决办法
85
查看次数

标签 统计

tao ×3

ace ×1

c++ ×1

corba ×1

erlang ×1

omniorb ×1

opengl ×1