gpt4 book ai didi

c++ - 使用 boost::serialization 序列化 TAO/CORBA 对象

转载 作者:搜寻专家 更新时间:2023-10-31 02:19:56 27 4
gpt4 key购买 nike

我在序列化由 corba 生成的类时遇到问题 - 特别是对于任何类型的序列 - TAO::unbouded_value_sequence、TAO::unbouded_basic_string_sequence 等。

对于 CORBA 结构的序列化是否有任何“好的”解决方案,或者我是否对 corba 类的代码进行了逆向工程并尝试为它们中的每一个编写序列化函数?

编辑:

      struct Something;

typedef
TAO_Var_Var_T<
Something
>
Something_var;

typedef
TAO_Out_T<
Something
>
Something_out;


struct Something
{
typedef Something_var _var_type;
typedef Something_out _out_type;

static void _tao_any_destructor (void *);
TAO::String_Manager member1;
};
class SequenceOfSomething;

typedef
TAO_VarSeq_Var_T<
SequenceOfSomething
>
SequenceOfSomething_var;

typedef
TAO_Seq_Out_T<
SequenceOfSomething
>
SequenceOfSomething_out;

class SequenceOfSomething
: public
TAO::unbounded_value_sequence<
Something
>
{
public:
SequenceOfSomething (void);
SequenceOfSomething ( ::CORBA::ULong max);
SequenceOfSomething (
::CORBA::ULong max,
::CORBA::ULong length,
SequenceOfSomething* buffer,
::CORBA::Boolean release = false
);
SequenceOfSomething (const SequenceOfSomething &);
virtual ~SequenceOfSomething (void);

static void _tao_any_destructor (void *);

typedef SequenceOfSomething_var _var_type;
typedef SequenceOfSomething_out _out_type;


};

这是一些从 IDL 定义生成的示例代码。

最佳答案

我安装了 ACE+TAO 框架,然后摆弄了一些东西。¹

看起来从实际的 IDL 出发更容易。

解析 IDL 的代码包含在 SDK 中,因此也许您可以利用它来生成一些序列化代码。

旁注:为什么要对已完全实现 IIOP 序列化的内容进行 Boost 序列化?您可以考虑使用 ACE 序列化 Boost Serializing a binary buffer 吗?如果不是,为什么不呢?


¹ 实际编译代码:http://paste.ubuntu.com/12907686/

关于c++ - 使用 boost::serialization 序列化 TAO/CORBA 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com