forked from tikv/client-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCDCEvent.java
More file actions
64 lines (52 loc) · 1.57 KB
/
CDCEvent.java
File metadata and controls
64 lines (52 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package org.tikv.cdc;
import org.tikv.kvproto.Cdcpb.Event.Row;
class CDCEvent {
enum CDCEventType {
ROW,
RESOLVED_TS,
ERROR
}
public final long regionId;
public final CDCEventType eventType;
public final long resolvedTs;
public final Row row;
public final Throwable error;
private CDCEvent(
final long regionId,
final CDCEventType eventType,
final long resolvedTs,
final Row row,
final Throwable error) {
this.regionId = regionId;
this.eventType = eventType;
this.resolvedTs = resolvedTs;
this.row = row;
this.error = error;
}
public static CDCEvent rowEvent(final long regionId, final Row row) {
return new CDCEvent(regionId, CDCEventType.ROW, 0, row, null);
}
public static CDCEvent resolvedTsEvent(final long regionId, final long resolvedTs) {
return new CDCEvent(regionId, CDCEventType.RESOLVED_TS, resolvedTs, null, null);
}
public static CDCEvent error(final long regionId, final Throwable error) {
return new CDCEvent(regionId, CDCEventType.ERROR, 0, null, error);
}
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
builder.append("CDCEvent[").append(eventType.toString()).append("] {");
switch (eventType) {
case ERROR:
builder.append("error=").append(error.getMessage());
break;
case RESOLVED_TS:
builder.append("resolvedTs=").append(resolvedTs);
break;
case ROW:
builder.append("row=").append(row);
break;
}
return builder.append("}").toString();
}
}