def with_params()

in zktraffic/base/client_message.py [0:0]


  def with_params(cls, xid, path, watch, data, offset, size, client, server):
    acls = []
    ephemeral = False
    sequence = False
    data_length, offset = read_number(data, offset)

    if data_length >= 0 and data_length < cls.MAX_PKT_SIZE:
      offset += data_length

      acls_count, offset = read_number(data, offset)
      if acls_count < cls.MAX_ACLS:
        bad_acls = False
        for i in range(0, acls_count):
          perms, offset = read_number(data, offset)

          try:
            scheme, offset = read_string(data, offset)
            cred, offset = read_string(data, offset)
          except StringTooLong:
            bad_acls = True
            break

          acls.append(Acl(perms, scheme, cred))

        if not bad_acls:
          flags, offset = read_number(data, offset)
          ephemeral = flags & 0x1 == 1
          sequence = flags & 0x2 == 2

    return cls(size, xid, path, client, watch, ephemeral, sequence, acls, server)