Ejemplo n.º 1
0
  /*package*/ void packet(Packet packet) {
    logger.fine(String.format("writing packet %s", packet));
    final Manager self = this;

    if (!self.encoding) {
      self.encoding = true;
      this.encoder.encode(
          packet,
          new Parser.Encoder.Callback() {
            @Override
            public void call(Object[] encodedPackets) {
              for (Object packet : encodedPackets) {
                if (packet instanceof String) {
                  self.engine.write((String) packet);
                } else if (packet instanceof byte[]) {
                  self.engine.write((byte[]) packet);
                }
              }
              self.encoding = false;
              self.processPacketQueue();
            }
          });
    } else {
      self.packetBuffer.add(packet);
    }
  }