如何处理* .IDL文件中的循环依赖?

时间:2012-08-03 09:17:32

标签: c++ include corba circular-dependency idl

我有两个* .IDL文件,我必须处理循环依赖:

#ifndef __USER_IDL__
#define __USER_IDL__

#include "Group.idl"

interface User
{
    typedef<sequence> Groups;
        Groups getGroups(); 
    void setGroups(in Groups u);
};

#endif

#ifndef __GROUP_IDL__
#define __GROUP_IDL__

#include "User.idl"

interface Group
{
    typedef<sequence> Users;
        Users getUser();    
    void setUsers(in Users u);
};

#endif

我需要将其保存在单独的文件中,如何解决?

查看我的文件:http://www32.zippyshare.com/v/32255598/file.html(我在那里添加了一个Makefile,所以只需运行命令:“make all”) - 我得到的错误是:

  

omniidl -bcxx User.idl Group.idl:8:接口主体中的语法错误   Group.idl:8:查找“用户”时出错:找不到“用户”   Group.idl:9:查找“用户”时出错:找不到“用户”   Group.idl:10:查找“用户”时出错:找不到“用户”   User.idl:8:接口主体中的语法错误User.idl:8:错误   查找“群组”:未找到“群组”User.idl:9:查找错误   'Groups':'Groups'未找到User.idl:10:查找错误   '群组':'群组'未找到omniidl:8个错误。

1 个答案:

答案 0 :(得分:2)

您可以转发声明接口,例如使用

接口组;

而不是在用户idl文件中删除Group.idl的包含