Skip to content

Commit 507dd44

Browse files
committed
Added support for resultConsumedAfter
1 parent 14ace3c commit 507dd44

File tree

6 files changed

+45
-0
lines changed

6 files changed

+45
-0
lines changed

driver/src/main/java/org/neo4j/driver/internal/InternalStatementResult.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ public void resultAvailableAfter(long l)
144144
{
145145
summaryBuilder.resultAvailableAfter( l );
146146
}
147+
148+
@Override
149+
public void resultConsumedAfter(long l)
150+
{
151+
summaryBuilder.resultConsumedAfter( l );
152+
}
147153
};
148154
}
149155

driver/src/main/java/org/neo4j/driver/internal/net/SocketResponseHandler.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public void handleSuccessMessage( Map<String,Value> meta )
9191
collectProfile( collector, meta.get( "profile" ) );
9292
collectNotifications( collector, meta.get( "notifications" ) );
9393
collectResultAvailableAfter( collector, meta.get("result_available_after"));
94+
collectResultConsumedAfter( collector, meta.get("result_consumed_after"));
9495
collector.doneSuccess();
9596
}
9697

@@ -102,6 +103,14 @@ private void collectResultAvailableAfter( StreamCollector collector, Value resul
102103
}
103104
}
104105

106+
private void collectResultConsumedAfter( StreamCollector collector, Value resultConsumedAfter )
107+
{
108+
if (resultConsumedAfter != null)
109+
{
110+
collector.resultConsumedAfter(resultConsumedAfter.asLong());
111+
}
112+
}
113+
105114
private void collectNotifications( StreamCollector collector, Value notifications )
106115
{
107116
if ( notifications != null )

driver/src/main/java/org/neo4j/driver/internal/spi/StreamCollector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,12 @@ public void resultAvailableAfter( long l )
150150
{
151151

152152
}
153+
154+
@Override
155+
public void resultConsumedAfter( long l )
156+
{
157+
158+
}
153159
}
154160

155161
// TODO: This should be modified to simply have head/record/tail methods
@@ -177,5 +183,7 @@ public void resultAvailableAfter( long l )
177183
void doneIgnored();
178184

179185
void resultAvailableAfter( long l );
186+
187+
void resultConsumedAfter( long l );
180188
}
181189

driver/src/main/java/org/neo4j/driver/internal/summary/SummaryBuilder.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class SummaryBuilder implements StreamCollector
4444
private ProfiledPlan profile;
4545
private List<Notification> notifications = null;
4646
private long resultAvailableAfter;
47+
private long resultConsumedAfter;
4748

4849
public SummaryBuilder( Statement statement )
4950
{
@@ -156,6 +157,12 @@ public void resultAvailableAfter( long l )
156157
this.resultAvailableAfter = l;
157158
}
158159

160+
@Override
161+
public void resultConsumedAfter( long l )
162+
{
163+
this.resultConsumedAfter = l;
164+
}
165+
159166
public ResultSummary build()
160167
{
161168
return new ResultSummary()
@@ -213,6 +220,12 @@ public long resultAvailableAfter( TimeUnit timeUnit )
213220
{
214221
return timeUnit.convert( resultAvailableAfter, TimeUnit.MILLISECONDS );
215222
}
223+
224+
@Override
225+
public long resultConsumedAfter( TimeUnit timeUnit )
226+
{
227+
return timeUnit.convert( resultConsumedAfter, TimeUnit.MILLISECONDS );
228+
}
216229
};
217230
}
218231
}

driver/src/main/java/org/neo4j/driver/v1/summary/ResultSummary.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,12 @@ public interface ResultSummary
9999
* @return The time it took for the server to have the result available in the provided time unit.
100100
*/
101101
long resultAvailableAfter( TimeUnit unit );
102+
103+
/**
104+
* The time it took the server to consume the result.
105+
*
106+
* @param unit The unit of the duration.
107+
* @return The time it took for the server to consume the result in the provided time unit.
108+
*/
109+
long resultConsumedAfter( TimeUnit unit );
102110
}

driver/src/test/java/org/neo4j/driver/v1/integration/SummaryIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public void shouldContainBasicMetadata() throws Throwable
7474
assertFalse( summary.hasProfile() );
7575
assertThat( summary, equalTo( result.consume() ) );
7676
assertThat( summary.resultAvailableAfter( TimeUnit.MILLISECONDS ), greaterThan( 0L ) );
77+
assertThat( summary.resultConsumedAfter( TimeUnit.MILLISECONDS ), greaterThan( 0L ) );
7778
}
7879

7980
@Test

0 commit comments

Comments
 (0)