def METHOD_NAME(self):
    """int and long values are written using variable-length, zig-zag
    coding."""
    c = self.fo.read(1)
    # We do EOF checking only here, since most reader start here
    if not c:
        raise StopIteration
    b = ord(c)
    n = b & 0x7F
    shift = 7
    while (b & 0x80) != 0:
        b = ord(self.fo.read(1))
        n |= (b & 0x7F) << shift
        shift += 7
    return (n >> 1) ^ -(n & 1)