/* * This file is a component of thundr, a software library from 3wks. * Read more: http://www.3wks.com.au/thundr * Copyright (C) 2013 3wks, <thundr@3wks.com.au> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.threewks.thundr.bigquery; import java.io.IOException; public interface BigQueryPushService { /** * Register an event converter. * * @param converter the converter to register. */ public <T> void registerEventConverter(EventConverter<T> converter); /** * Track an event in BigQuery. Assumes an event converter has been registered * otherwise an exception will be thrown. * * @param event the event to track. */ public <T> void trackEvent(T event); /** * Process any outstanding tasks and send the data to the BigQuery API. * * @return the number of tasks processed. * @throws IOException if anything goes wrong. */ public int processTasks() throws IOException; }