Examples of DeflaterReader


Examples of org.hornetq.utils.DeflaterReader

      // We won't know the real size of the message since we are compressing while reading the streaming.
      // This counter will be passed to the deflater to be updated for every byte read
      AtomicLong messageSize = new AtomicLong();

      DeflaterReader deflaterReader = null;

      if (session.isCompressLargeMessages())
      {
         msgI.putBooleanProperty(Message.HDR_LARGE_COMPRESSED, true);
         deflaterReader = new DeflaterReader(inputStreamParameter, messageSize);
         input = deflaterReader;
      }

      long totalSize = 0;

      boolean headerSent = false;

      while (!lastPacket)
      {
         byte[] buff = new byte[minLargeMessageSize];

         int pos = 0;

         do
         {
            int numberOfBytesRead;

            int wanted = minLargeMessageSize - pos;

            try
            {
               numberOfBytesRead = input.read(buff, pos, wanted);
            }
            catch (IOException e)
            {
               throw HornetQClientMessageBundle.BUNDLE.errorReadingBody(e);
            }

            if (numberOfBytesRead == -1)
            {
               lastPacket = true;

               break;
            }

            pos += numberOfBytesRead;
         }
         while (pos < minLargeMessageSize);

         totalSize += pos;

         final SessionSendContinuationMessage chunk;

         if (lastPacket)
         {
            if (!session.isCompressLargeMessages())
            {
               messageSize.set(totalSize);
            }

            // This is replacing the last packet by a smaller packet
            byte[] buff2 = new byte[pos];

            System.arraycopy(buff, 0, buff2, 0, pos);

            buff = buff2;

            // This is the case where the message is being converted as a regular message
            if (!headerSent && session.isCompressLargeMessages() && buff2.length < minLargeMessageSize)
            {
               msgI.getBodyBuffer().resetReaderIndex();
               msgI.getBodyBuffer().resetWriterIndex();
               msgI.putLongProperty(Message.HDR_LARGE_BODY_SIZE, deflaterReader.getTotalSize());

               msgI.getBodyBuffer().writeBytes(buff, 0, pos);
               sendRegularMessage(msgI, sendBlocking, credits, handler);
               return;
            }
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      // This counter will be passed to the deflater to be updated for every byte read
      AtomicLong messageSize = new AtomicLong();

      if (session.isCompressLargeMessages())
      {
         input = new DeflaterReader(inputStreamParameter, messageSize);
      }

      long totalSize = 0;

      while (!lastPacket)
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      // This counter will be passed to the deflater to be updated for every byte read
      AtomicLong messageSize = new AtomicLong();

      if (session.isCompressLargeMessages())
      {
         input = new DeflaterReader(inputStreamParameter, messageSize);
      }

      long totalSize = 0;

      while (!lastPacket)
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      // This counter will be passed to the deflater to be updated for every byte read
      AtomicLong messageSize = new AtomicLong();

      if (session.isCompressLargeMessages())
      {
         input = new DeflaterReader(inputStreamParameter, messageSize);
      }

      long totalSize = 0;

      while (!lastPacket)
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      // We won't know the real size of the message since we are compressing while reading the streaming.
      // This counter will be passed to the deflater to be updated for every byte read
      AtomicLong messageSize = new AtomicLong();

      DeflaterReader deflaterReader = null;

      if (session.isCompressLargeMessages())
      {
         msgI.putBooleanProperty(Message.HDR_LARGE_COMPRESSED, true);
         deflaterReader = new DeflaterReader(inputStreamParameter, messageSize);
         input = deflaterReader;
      }

      long totalSize = 0;

      boolean headerSent = false;

      while (!lastPacket)
      {
         byte[] buff = new byte[minLargeMessageSize];

         int pos = 0;

         do
         {
            int numberOfBytesRead;

            int wanted = minLargeMessageSize - pos;

            try
            {
               numberOfBytesRead = input.read(buff, pos, wanted);
            }
            catch (IOException e)
            {
               throw HornetQClientMessageBundle.BUNDLE.errorReadingBody(e);
            }

            if (numberOfBytesRead == -1)
            {
               lastPacket = true;

               break;
            }

            pos += numberOfBytesRead;
         }
         while (pos < minLargeMessageSize);

         totalSize += pos;

         final SessionSendContinuationMessage chunk;

         if (lastPacket)
         {
            if (!session.isCompressLargeMessages())
            {
               messageSize.set(totalSize);
            }

            // This is replacing the last packet by a smaller packet
            byte[] buff2 = new byte[pos];

            System.arraycopy(buff, 0, buff2, 0, pos);

            buff = buff2;

            // This is the case where the message is being converted as a regular message
            if (!headerSent && session.isCompressLargeMessages() && buff2.length < minLargeMessageSize)
            {
               msgI.getBodyBuffer().resetReaderIndex();
               msgI.getBodyBuffer().resetWriterIndex();
               msgI.putLongProperty(Message.HDR_LARGE_BODY_SIZE, deflaterReader.getTotalSize());

               msgI.getBodyBuffer().writeBytes(buff, 0, pos);
               sendRegularMessage(msgI, sendBlocking, credits);
               return;
            }
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      byte[] input = inputString.getBytes("UTF-8");

      ByteArrayInputStream inputStream = new ByteArrayInputStream(input);
     
      AtomicLong counter = new AtomicLong(0);
      DeflaterReader reader = new DeflaterReader(inputStream, counter);

      ArrayList<Integer> zipHolder = new ArrayList<Integer>();
      int b = reader.read();
     
      while (b != -1)
      {
         zipHolder.add(b);
         b = reader.read();
      }
     
      assertEquals(input.length, counter.get());
     
      byte[] allCompressed = new byte[zipHolder.size()];
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      byte[] input = inputString.getBytes("UTF-8");

      ByteArrayInputStream inputStream = new ByteArrayInputStream(input);
      AtomicLong counter = new AtomicLong(0);
   
      DeflaterReader reader = new DeflaterReader(inputStream, counter);

      byte[] buffer = new byte[7];
      ArrayList<Integer> zipHolder = new ArrayList<Integer>();
     
      int n = reader.read(buffer);
      while (n != -1)
      {
         for (int i = 0; i < n; i++)
         {
            zipHolder.add((int)buffer[i]);
         }
         n = reader.read(buffer);
      }
     
      assertEquals(input.length, counter.get());
     
      byte[] allCompressed = new byte[zipHolder.size()];
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

   private void adjustLargeCompression(boolean regular, TestLargeMessageInputStream stream, int step) throws IOException
   {
      int absoluteStep = Math.abs(step);
      while (true)
      {
         DeflaterReader compressor = new DeflaterReader(stream, new AtomicLong());
         try
         {
            byte[] buffer = new byte[1048 * 50];

            int totalCompressed = 0;
            int n = compressor.read(buffer);
            while (n != -1)
            {
               totalCompressed += n;
               n = compressor.read(buffer);
            }

            // check compressed size
            if (regular && (totalCompressed < stream.getMinLarge()))
            {
               // ok it can be sent as regular
               stream.resetAdjust(0);
               break;
            }
            else if ((!regular) && (totalCompressed > stream.getMinLarge()))
            {
               // now it cannot be sent as regular
               stream.resetAdjust(0);
               break;
            }
            else
            {
               stream.resetAdjust(regular ? -absoluteStep : absoluteStep);
            }
         }
         finally
         {
            compressor.close();
         }
      }
   }
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      // This counter will be passed to the deflater to be updated for every byte read
      AtomicLong messageSize = new AtomicLong();

      if (session.isCompressLargeMessages())
      {
         input = new DeflaterReader(inputStreamParameter, messageSize);
      }

      long totalSize = 0;

      while (!lastPacket)
View Full Code Here

Examples of org.hornetq.utils.DeflaterReader

      byte[] input = inputString.getBytes("UTF-8");

      ByteArrayInputStream inputStream = new ByteArrayInputStream(input);

      AtomicLong counter = new AtomicLong(0);
      DeflaterReader reader = new DeflaterReader(inputStream, counter);

      ArrayList<Integer> zipHolder = new ArrayList<Integer>();
      int b = reader.read();

      while (b != -1)
      {
         zipHolder.add(b);
         b = reader.read();
      }

      assertEquals(input.length, counter.get());

      byte[] allCompressed = new byte[zipHolder.size()];
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.