1 package org.eclipse.aether.transport.http;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.ByteArrayOutputStream;
23 import java.nio.Buffer;
24 import java.nio.ByteBuffer;
25
26 import org.eclipse.aether.spi.connector.transport.TransportListener;
27 import org.eclipse.aether.transfer.TransferCancelledException;
28
29 class RecordingTransportListener
30 extends TransportListener
31 {
32
33 public final ByteArrayOutputStream baos = new ByteArrayOutputStream( 1024 );
34
35 public long dataOffset;
36
37 public long dataLength;
38
39 public int startedCount;
40
41 public int progressedCount;
42
43 public boolean cancelStart;
44
45 public boolean cancelProgress;
46
47 @Override
48 public void transportStarted( long dataOffset, long dataLength )
49 throws TransferCancelledException
50 {
51 startedCount++;
52 progressedCount = 0;
53 this.dataLength = dataLength;
54 this.dataOffset = dataOffset;
55 baos.reset();
56 if ( cancelStart )
57 {
58 throw new TransferCancelledException();
59 }
60 }
61
62 @Override
63 public void transportProgressed( ByteBuffer data )
64 throws TransferCancelledException
65 {
66 progressedCount++;
67 baos.write( data.array(), data.arrayOffset() + ( (Buffer) data ).position(), data.remaining() );
68 if ( cancelProgress )
69 {
70 throw new TransferCancelledException();
71 }
72 }
73
74 }