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

斩波器

我在序列化corba生成的类时遇到问题-尤其是任何序列-TAO :: unbouded_value_sequence,TAO :: unbouded_basic_string_sequence等。

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

编辑:

      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定义生成的一些示例代码。

斩波器

感谢@sehe,这似乎可以正常工作:

namespace boost { namespace serialization {

    template <typename Archive, typename T>
        inline void save(Archive& ar, const TAO::unbounded_value_sequence<T>& varSequence, unsigned int /*version*/)
        {
            size_t length = varSequence.length();
            ar & length
               & boost::serialization::make_array(varSequence.get_buffer(), varSequence.length());
        }

    template <typename Archive, typename T>
        void load(Archive& ar, TAO::unbounded_value_sequence<T>& varSequence, unsigned int /*version*/)
        {
            size_t length;
            ar & length;

            varSequence.length(length);
            ar & boost::serialization::make_array(varSequence.get_buffer(), varSequence.length());
        }

    template <typename Archive, typename T>
        inline void serialize(Archive& ar, TAO::unbounded_value_sequence<T>& varSequence, const unsigned int version)
        {
            split_free(ar, varSequence, version); 
        }

    template <class Archive>
        inline void serialize(Archive& ar, SequenceOfSomething& seq, unsigned int version)
        {
            ar & base_object<TAO::unbounded_value_sequence<Something>>(seq);
        }
} }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

如何在CORBA(ACE / TAO)中使用Boost序列化

来自分类Dev

如何使用boost :: serialization使用对象向量作为属性序列化对象

来自分类Dev

如何使用System.Runtime.Serialization.Json序列化对象列表?

来自分类Dev

如何使用boost使用shared_ptr成员序列化对象

来自分类Dev

使用boost :: serialization序列化包含boost adjacency_list作为成员的类

来自分类Dev

C ++中的boost :: serialization,Python中的反序列化

来自分类Dev

使用Gson的序列化对象引用

来自分类Dev

如何使用angularjs序列化对象

来自分类Dev

使用BufferedImages序列化对象的ArrayList

来自分类Dev

如何使用反序列化的对象?

来自分类Dev

使用Gson的序列化对象引用

来自分类Dev

使用XmlDocument属性序列化对象

来自分类Dev

使用Alamofire序列化JSON对象

来自分类Dev

使用对象列表反/序列化

来自分类Dev

无法使用boost :: serialization和shared_ptr反序列化

来自分类Dev

Java SerialIzation:反序列化对象时出现“ ClassNotFoundException”

来自分类Dev

JMS序列化器使用不同视图序列化对象中的对象

来自分类Dev

如何使用对象的值反序列化对象

来自分类Dev

如何使用.net支持对象序列化和反序列化以更改类结构?

来自分类Dev

如何使用可序列化对象数组反序列化类

来自分类Dev

使用json.net对对象属性进行条件序列化/反序列化

来自分类Dev

使用JSON序列化程序反序列化Mongo DB对象ID

来自分类Dev

使用BinaryFormatter序列化/反序列化对象列表

来自分类Dev

使用writeValueAsString序列化的对象后杰克逊反序列化失败

来自分类Dev

使用远程对象的代理类型对序列化序列化

来自分类Dev

如何使用XStream序列化/反序列化类型层次结构中的对象?

来自分类Dev

使用JSON序列化程序反序列化Mongo DB对象ID

来自分类Dev

使用xsd.exe反序列化-如何反序列化对象而不是DataSet?

Related 相关文章

  1. 1

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

  2. 2

    如何在CORBA(ACE / TAO)中使用Boost序列化

  3. 3

    如何使用boost :: serialization使用对象向量作为属性序列化对象

  4. 4

    如何使用System.Runtime.Serialization.Json序列化对象列表?

  5. 5

    如何使用boost使用shared_ptr成员序列化对象

  6. 6

    使用boost :: serialization序列化包含boost adjacency_list作为成员的类

  7. 7

    C ++中的boost :: serialization,Python中的反序列化

  8. 8

    使用Gson的序列化对象引用

  9. 9

    如何使用angularjs序列化对象

  10. 10

    使用BufferedImages序列化对象的ArrayList

  11. 11

    如何使用反序列化的对象?

  12. 12

    使用Gson的序列化对象引用

  13. 13

    使用XmlDocument属性序列化对象

  14. 14

    使用Alamofire序列化JSON对象

  15. 15

    使用对象列表反/序列化

  16. 16

    无法使用boost :: serialization和shared_ptr反序列化

  17. 17

    Java SerialIzation:反序列化对象时出现“ ClassNotFoundException”

  18. 18

    JMS序列化器使用不同视图序列化对象中的对象

  19. 19

    如何使用对象的值反序列化对象

  20. 20

    如何使用.net支持对象序列化和反序列化以更改类结构?

  21. 21

    如何使用可序列化对象数组反序列化类

  22. 22

    使用json.net对对象属性进行条件序列化/反序列化

  23. 23

    使用JSON序列化程序反序列化Mongo DB对象ID

  24. 24

    使用BinaryFormatter序列化/反序列化对象列表

  25. 25

    使用writeValueAsString序列化的对象后杰克逊反序列化失败

  26. 26

    使用远程对象的代理类型对序列化序列化

  27. 27

    如何使用XStream序列化/反序列化类型层次结构中的对象?

  28. 28

    使用JSON序列化程序反序列化Mongo DB对象ID

  29. 29

    使用xsd.exe反序列化-如何反序列化对象而不是DataSet?

热门标签

归档