Object
This class represents all the messages either received by chunks from attach
# File lib/docker/messages.rb, line 6 def initialize(stdout_messages=[], stderr_messages=[], all_messages=[], buffer="") @stdout_messages = stdout_messages @stderr_messages = stderr_messages @all_messages = all_messages @buffer = buffer end
# File lib/docker/messages.rb, line 16 def add_message(source, message) case source when 1 stdout_messages << message when 2 stderr_messages << message end all_messages << message end
# File lib/docker/messages.rb, line 42 def append(messages) @stdout_messages += messages.stdout_messages @stderr_messages += messages.stderr_messages @all_messages += messages.all_messages end
Method to break apart application/vnd.docker.raw-stream headers
# File lib/docker/messages.rb, line 49 def decipher_messages(body) raw_text = buffer + body.dup messages = Docker::Messages.new while !raw_text.empty? messages.get_message(raw_text) end messages end
# File lib/docker/messages.rb, line 26 def get_message(raw_text) header = raw_text.slice!(0,8) if header.length < 8 @buffer = header return end type, length = header.unpack("CxxxN") message = raw_text.slice!(0,length) if message.length < length @buffer = header + message else add_message(type, message) end end
Generated with the Darkfish Rdoc Generator 2.