#--
-# $Id: eet.rb 46 2005-05-25 20:10:37Z tilman $
+# $Id: eet.rb 47 2005-05-30 19:19:07Z tilman $
#
# Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
#
end
class Chunk # :nodoc:
- attr_reader :tag, :data
-
- def initialize(tag, data)
- if tag.to_str.include?(0)
- raise(ArgumentError,
- "tag must not contain binary zeroes")
- end
-
- @tag = tag.to_str.dup.freeze
- @data = data.to_str.dup.freeze
-
- # libeet uses a signed 32bit integer to store the
- # chunk size, so make sure we don't overflow it
- if (@tag.length + 1 + @data.length) >= (1 << 31)
- raise(ArgumentError, "tag or data too long")
- end
- end
-
def Chunk.deserialize(data)
if data.to_str.empty?
raise(ArgumentError, "buffer is empty")