001/* 002 GRANITE DATA SERVICES 003 Copyright (C) 2011 GRANITE DATA SERVICES S.A.S. 004 005 This file is part of Granite Data Services. 006 007 Granite Data Services is free software; you can redistribute it and/or modify 008 it under the terms of the GNU Library General Public License as published by 009 the Free Software Foundation; either version 2 of the License, or (at your 010 option) any later version. 011 012 Granite Data Services is distributed in the hope that it will be useful, but 013 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License 015 for more details. 016 017 You should have received a copy of the GNU Library General Public License 018 along with this library; if not, see <http://www.gnu.org/licenses/>. 019*/ 020 021package org.granite.tide.data; 022 023 024/** 025 * Interface for data update dispatchers. 026 * The dispatch is a three step process : 027 * 028 * <ul> 029 * <li>Initialization in the constructor (specific for each implementation), at initialization of <code>DataContext</code></li> 030 * <li><code>observe()</code> builds the server selector depending on the data that are processed</li> 031 * <li><code>publish()</code> handles the actual publishing</li> 032 * </ul> 033 * 034 * @see DataContext 035 * 036 * @author William Drai 037 */ 038public interface DataDispatcher { 039 040 public static final String TIDE_DATA_SUBTOPIC = "tideDataTopic"; 041 public static final String GDS_SESSION_ID = "GDSSessionID"; 042 public static final String TIDE_DATA_TYPE_KEY = "type"; 043 public static final String TIDE_DATA_TYPE_VALUE = "DATA"; 044 public static final String SERVER_DISPATCHER_GDS_SESSION_ID = "__GDS_SERVER_DISPATCHER__"; 045 046 public void observe(); 047 048 public void publish(Object[][] dataUpdates); 049}