Package com.aelitis.azureus.core.messenger.config

Source Code of com.aelitis.azureus.core.messenger.config.PlatformContentNetworkMessenger

/*
* Created on May 6, 2008
* Created by Paul Gardner
*
* Copyright 2008 Vuze, Inc.  All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License only.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*/


package com.aelitis.azureus.core.messenger.config;

import java.util.*;

import org.gudy.azureus2.core3.util.Constants;
import org.json.simple.JSONObject;

import com.aelitis.azureus.core.messenger.*;



public class
PlatformContentNetworkMessenger
{
  private static final String LISTENER_ID = "cnetworks";

  private static final PlatformMessengerConfig  dispatcher =
      new PlatformMessengerConfig( LISTENER_ID, true );

  private static final String OP_LIST_CNETORKS  = "list-networks";


 
  public static List<contentNetworkDetails>
  listNetworks()
 
    throws PlatformMessengerException
  {
    if (true) {
      return new ArrayList<contentNetworkDetails>(0);
    }

    JSONObject parameters = new JSONObject();
   
    parameters.put( "azver", Constants.AZUREUS_VERSION );
   
    Map reply = dispatcher.syncInvoke( OP_LIST_CNETORKS, parameters );

    List<Map>  networks = (List<Map>)reply.get( "networks" );
   
    if ( networks == null ){
     
      throw( new PlatformMessengerException( "No networks returned" ));
    }
   
    List<contentNetworkDetails> result = new ArrayList<contentNetworkDetails>();
   
    for ( Map map: networks ){
     
      result.add( new contentNetworkDetails( map ));
    }
   
    return( result );
  }                        
 
  public static void
  listNetworksAync(final listNetworksListener l, int maxDelayMS)
  {
    if (l != null) {
      l.networkListReturned(new ArrayList<contentNetworkDetails>(0));
      return;
    }

    JSONObject parameters = new JSONObject();

    parameters.put("azver", Constants.AZUREUS_VERSION);

    PlatformMessage message = new PlatformMessage("AZMSG", LISTENER_ID,
        OP_LIST_CNETORKS, parameters, maxDelayMS);

    PlatformMessengerListener listener = new PlatformMessengerListener() {
      // @see com.aelitis.azureus.core.messenger.PlatformMessengerListener#replyReceived(com.aelitis.azureus.core.messenger.PlatformMessage, java.lang.String, java.util.Map)
      public void replyReceived(PlatformMessage message, String replyType,
          Map reply) {
        List<Map> networks = (List<Map>) reply.get("networks");

        List<contentNetworkDetails> result;

        if (networks == null) {
          result = null;
        } else {
 
          result = new ArrayList<contentNetworkDetails>();
 
          for (Map map : networks) {
 
            result.add(new contentNetworkDetails(map));
          }
        }

        if (l != null) {
          l.networkListReturned(result);
        }
      }

      // @see com.aelitis.azureus.core.messenger.PlatformMessengerListener#messageSent(com.aelitis.azureus.core.messenger.PlatformMessage)
      public void messageSent(PlatformMessage message) {
      }
    };

    PlatformMessenger.queueMessage(message, listener);
  }                        
 
  public static class
  contentNetworkDetails
  {
    private Map    details;
   
    protected
    contentNetworkDetails(
      Map    _details )
    {
      details  = _details;
    }
   
    public long
    getID()
    {
      return(((Long)details.get( "id" )).longValue());
    }
   
    public long
    getVersion()
    {
      return(((Long)details.get( "version" )).longValue());
    }
   
    public String
    getName()
    {
      return((String)details.get( "name" ));
    }
   
    public String
    getIconURL()
    {
      return((String)details.get( "iconUrl" ));
    }
   
    public String
    getMainURL()
    {
      return((String)details.get( "baseUrl" ));
    }
   
    public String
    getString()
    {
      return( "id=" + getID() + ";version=" + getVersion() + ";name=" + getName());
    }
  }
 
  public static interface
  listNetworksListener
  {
    public void networkListReturned(List<contentNetworkDetails> list);   
  }
}
TOP

Related Classes of com.aelitis.azureus.core.messenger.config.PlatformContentNetworkMessenger

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.