aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/api/analytics/BlockingFlush.java')
-rw-r--r--src/Java/gtPlusPlus/api/analytics/BlockingFlush.java67
1 files changed, 0 insertions, 67 deletions
diff --git a/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java b/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java
deleted file mode 100644
index dddb37fefb..0000000000
--- a/src/Java/gtPlusPlus/api/analytics/BlockingFlush.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package gtPlusPlus.api.analytics;
-
-import com.segment.analytics.Analytics;
-import com.segment.analytics.Callback;
-import com.segment.analytics.MessageTransformer;
-import com.segment.analytics.Plugin;
-import com.segment.analytics.messages.Message;
-import com.segment.analytics.messages.MessageBuilder;
-import java.util.concurrent.Phaser;
-
-/**
- * The {@link Analytics} class doesn't come with a blocking {@link Analytics#flush()} implementation
- * out of the box. It's trivial to build one using a {@link Phaser} that monitors requests and is
- * able to block until they're uploaded.
- *
- * <pre><code>
- * BlockingFlush mBlockingFlush = BlockingFlush.create();
- * Analytics mHelper = Analytics.builder(writeKey)
- * .plugin(mBlockingFlush)
- * .build();
- *
- * // Do some work.
- *
- * mHelper.flush(); // Trigger a flush.
- * mBlockingFlush.block(); // Block until the flush completes.
- * mHelper.shutdown(); // Shut down after the flush is complete.
- * </code></pre>
- */
-public class BlockingFlush {
-
- public static BlockingFlush create() {
- return new BlockingFlush();
- }
-
- BlockingFlush() {
- this.phaser = new Phaser(1);
- }
-
- final Phaser phaser;
-
- public Plugin plugin() {
- return new Plugin() {
- @Override public void configure(Analytics.Builder builder) {
- builder.messageTransformer(new MessageTransformer() {
- @Override public boolean transform(MessageBuilder builder) {
- phaser.register();
- return true;
- }
- });
-
- builder.callback(new Callback() {
- @Override public void success(Message message) {
- phaser.arrive();
- }
-
- @Override public void failure(Message message, Throwable throwable) {
- phaser.arrive();
- }
- });
- }
- };
- }
-
- public void block() {
- phaser.arriveAndAwaitAdvance();
- }
-} \ No newline at end of file