diff options
Diffstat (limited to 'src/Java/gtPlusPlus/api/analytics/BlockingFlush.java')
-rw-r--r-- | src/Java/gtPlusPlus/api/analytics/BlockingFlush.java | 67 |
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 |