mrpin-amf 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/README.rdoc +52 -0
  4. data/Rakefile +59 -0
  5. data/benchmark.rb +86 -0
  6. data/doc/amf3-speification.pdf +0 -0
  7. data/ext/rocketamf_ext/class_mapping.c +483 -0
  8. data/ext/rocketamf_ext/constants.h +52 -0
  9. data/ext/rocketamf_ext/deserializer.c +776 -0
  10. data/ext/rocketamf_ext/deserializer.h +28 -0
  11. data/ext/rocketamf_ext/extconf.rb +18 -0
  12. data/ext/rocketamf_ext/remoting.c +184 -0
  13. data/ext/rocketamf_ext/rocketamf_ext.c +38 -0
  14. data/ext/rocketamf_ext/serializer.c +834 -0
  15. data/ext/rocketamf_ext/serializer.h +29 -0
  16. data/ext/rocketamf_ext/utility.h +4 -0
  17. data/lib/amf/common/hash_with_type.rb +20 -0
  18. data/lib/amf/ext.rb +22 -0
  19. data/lib/amf/pure/amf_constants.rb +42 -0
  20. data/lib/amf/pure/deserializer.rb +354 -0
  21. data/lib/amf/pure/errors/all_files.rb +2 -0
  22. data/lib/amf/pure/errors/amf_error.rb +5 -0
  23. data/lib/amf/pure/errors/amf_error_incomplete.rb +5 -0
  24. data/lib/amf/pure/helpers/all_files.rb +8 -0
  25. data/lib/amf/pure/helpers/cache_objects.rb +18 -0
  26. data/lib/amf/pure/helpers/cache_strings.rb +14 -0
  27. data/lib/amf/pure/helpers/io_helper_base.rb +19 -0
  28. data/lib/amf/pure/helpers/io_helper_read.rb +67 -0
  29. data/lib/amf/pure/helpers/io_helper_write.rb +49 -0
  30. data/lib/amf/pure/mapping/class_mapper.rb +159 -0
  31. data/lib/amf/pure/mapping/mapping_set.rb +49 -0
  32. data/lib/amf/pure/serializer.rb +318 -0
  33. data/lib/amf/pure.rb +16 -0
  34. data/lib/amf.rb +140 -0
  35. data/mrpin-amf.gemspec +24 -0
  36. data/spec/fixtures/objects/complex/amf3-associative-array.bin +1 -0
  37. data/spec/fixtures/objects/complex/amf3-byte-array.bin +0 -0
  38. data/spec/fixtures/objects/complex/amf3-date.bin +0 -0
  39. data/spec/fixtures/objects/complex/amf3-dictionary.bin +0 -0
  40. data/spec/fixtures/objects/complex/amf3-dynamic-object.bin +2 -0
  41. data/spec/fixtures/objects/complex/amf3-empty-array.bin +1 -0
  42. data/spec/fixtures/objects/complex/amf3-empty-dictionary.bin +0 -0
  43. data/spec/fixtures/objects/complex/amf3-hash.bin +2 -0
  44. data/spec/fixtures/objects/complex/amf3-mixed-array.bin +10 -0
  45. data/spec/fixtures/objects/complex/amf3-primitive-array.bin +1 -0
  46. data/spec/fixtures/objects/complex/amf3-typed-object.bin +2 -0
  47. data/spec/fixtures/objects/encoding/amf3-complex-encoded-string-array.bin +1 -0
  48. data/spec/fixtures/objects/encoding/amf3-encoded-string-ref.bin +0 -0
  49. data/spec/fixtures/objects/references/amf3-array-ref.bin +1 -0
  50. data/spec/fixtures/objects/references/amf3-byte-array-ref.bin +1 -0
  51. data/spec/fixtures/objects/references/amf3-date-ref.bin +0 -0
  52. data/spec/fixtures/objects/references/amf3-empty-array-ref.bin +1 -0
  53. data/spec/fixtures/objects/references/amf3-empty-string-ref.bin +1 -0
  54. data/spec/fixtures/objects/references/amf3-graph-member.bin +0 -0
  55. data/spec/fixtures/objects/references/amf3-object-ref.bin +0 -0
  56. data/spec/fixtures/objects/references/amf3-string-ref.bin +0 -0
  57. data/spec/fixtures/objects/references/amf3-trait-ref.bin +3 -0
  58. data/spec/fixtures/objects/simple/amf3-0.bin +0 -0
  59. data/spec/fixtures/objects/simple/amf3-bigNum.bin +0 -0
  60. data/spec/fixtures/objects/simple/amf3-false.bin +1 -0
  61. data/spec/fixtures/objects/simple/amf3-float.bin +0 -0
  62. data/spec/fixtures/objects/simple/amf3-large-max.bin +0 -0
  63. data/spec/fixtures/objects/simple/amf3-large-min.bin +0 -0
  64. data/spec/fixtures/objects/simple/amf3-max.bin +1 -0
  65. data/spec/fixtures/objects/simple/amf3-min.bin +0 -0
  66. data/spec/fixtures/objects/simple/amf3-null.bin +1 -0
  67. data/spec/fixtures/objects/simple/amf3-string.bin +1 -0
  68. data/spec/fixtures/objects/simple/amf3-symbol.bin +1 -0
  69. data/spec/fixtures/objects/simple/amf3-true.bin +1 -0
  70. data/spec/helpers/class_mapping_test.rb +4 -0
  71. data/spec/helpers/class_mapping_test2.rb +3 -0
  72. data/spec/helpers/fixtures.rb +34 -0
  73. data/spec/helpers/other_class.rb +4 -0
  74. data/spec/helpers/ruby_class.rb +4 -0
  75. data/spec/helpers/test_ruby_class.rb +4 -0
  76. data/spec/spec-class_mapping.rb +98 -0
  77. data/spec/spec_deserializer.rb +239 -0
  78. data/spec/spec_fast_class_mapping.rb +147 -0
  79. data/spec/spec_helper.rb +8 -0
  80. data/spec/spec_serializer.rb +267 -0
  81. metadata +146 -0
@@ -0,0 +1,52 @@
1
+ // AMF0 Type Markers
2
+ #define AMF0_NUMBER_MARKER 0x00
3
+ #define AMF0_BOOLEAN_MARKER 0x01
4
+ #define AMF0_STRING_MARKER 0x02
5
+ #define AMF0_OBJECT_MARKER 0x03
6
+ #define AMF0_MOVIE_CLIP_MARKER 0x04
7
+ #define AMF0_NULL_MARKER 0x05
8
+ #define AMF0_UNDEFINED_MARKER 0x06
9
+ #define AMF0_REFERENCE_MARKER 0x07
10
+ #define AMF0_HASH_MARKER 0x08
11
+ #define AMF0_OBJECT_END_MARKER 0x09
12
+ #define AMF0_STRICT_ARRAY_MARKER 0x0A
13
+ #define AMF0_DATE_MARKER 0x0B
14
+ #define AMF0_LONG_STRING_MARKER 0x0C
15
+ #define AMF0_UNSUPPORTED_MARKER 0x0D
16
+ #define AMF0_RECORDSET_MARKER 0x0E
17
+ #define AMF0_XML_MARKER 0x0F
18
+ #define AMF0_TYPED_OBJECT_MARKER 0x10
19
+ #define AMF0_AMF3_MARKER 0x11
20
+
21
+ // AMF3 Type Markers
22
+ #define AMF3_UNDEFINED_MARKER 0x00
23
+ #define AMF3_NULL_MARKER 0x01
24
+ #define AMF3_FALSE_MARKER 0x02
25
+ #define AMF3_TRUE_MARKER 0x03
26
+ #define AMF3_INTEGER_MARKER 0x04
27
+ #define AMF3_DOUBLE_MARKER 0x05
28
+ #define AMF3_STRING_MARKER 0x06
29
+ #define AMF3_XML_DOC_MARKER 0x07
30
+ #define AMF3_DATE_MARKER 0x08
31
+ #define AMF3_ARRAY_MARKER 0x09
32
+ #define AMF3_OBJECT_MARKER 0x0A
33
+ #define AMF3_XML_MARKER 0x0B
34
+ #define AMF3_BYTE_ARRAY_MARKER 0x0C
35
+ #define AMF3_VECTOR_INT_MARKER 0x0D
36
+ #define AMF3_VECTOR_UINT_MARKER 0x0E
37
+ #define AMF3_VECTOR_DOUBLE_MARKER 0x0F
38
+ #define AMF3_VECTOR_OBJECT_MARKER 0x10
39
+ #define AMF3_DICT_MARKER 0x11
40
+
41
+ // Other AMF3 Markers
42
+ #define AMF3_EMPTY_STRING 0x01
43
+ #define AMF3_DYNAMIC_OBJECT 0x0B
44
+ #define AMF3_CLOSE_DYNAMIC_OBJECT 0x01
45
+ #define AMF3_CLOSE_DYNAMIC_ARRAY 0x01
46
+
47
+ // Other Constants
48
+ #define MAX_INTEGER 268435455
49
+ #define MIN_INTEGER -268435456
50
+ #define INITIAL_STREAM_LENGTH 128 // Initial buffer length for serializer output
51
+ #define MAX_STREAM_LENGTH 10*1024*1024 // Let's cap it at 10MB for now
52
+ #define MAX_ARRAY_PREALLOC 100000