'During serialization, the wrapped ``Argument`` is serialized in full
and then popped out of the supplied ``strings`` dictionary, broken into
chunks <= MAX_VALUE_LENGTH which are added back to the ``strings``
dictionary with indexed key names so that the chunks can be put back
together in the correct order during deserialization.
See ``IArgumentType`` for argument and return type documentation.'

def toBox(self, name, strings, objects, proto):

    self.another_argument.toBox(name, strings, objects, proto)
    value = BytesIO(strings.pop(name))
    counter = 0
    while True:
        nextChunk = value.read(MAX_VALUE_LENGTH)
        if (not nextChunk):
            break
        strings[('%s.%d' % (name, counter))] = nextChunk
        counter += 1
