Provider.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:4k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.direct.Provider
  3.  * @extends Ext.util.Observable
  4.  * <p>Ext.direct.Provider is an abstract class meant to be extended.</p>
  5.  * 
  6.  * <p>For example ExtJs implements the following subclasses:</p>
  7.  * <pre><code>
  8. Provider
  9. |
  10. +---{@link Ext.direct.JsonProvider JsonProvider} 
  11.     |
  12.     +---{@link Ext.direct.PollingProvider PollingProvider}   
  13.     |
  14.     +---{@link Ext.direct.RemotingProvider RemotingProvider}   
  15.  * </code></pre>
  16.  * @abstract
  17.  */
  18. Ext.direct.Provider = Ext.extend(Ext.util.Observable, {    
  19.     /**
  20.      * @cfg {String} id
  21.      * The unique id of the provider (defaults to an {@link Ext#id auto-assigned id}).
  22.      * You should assign an id if you need to be able to access the provider later and you do
  23.      * not have an object reference available, for example:
  24.      * <pre><code>
  25. Ext.Direct.addProvider(
  26.     {
  27.         type: 'polling',
  28.         url:  'php/poll.php',
  29.         id:   'poll-provider'
  30.     }
  31. );
  32.      
  33. var p = {@link Ext.Direct Ext.Direct}.{@link Ext.Direct#getProvider getProvider}('poll-provider');
  34. p.disconnect();
  35.      * </code></pre>
  36.      */
  37.         
  38.     /**
  39.      * @cfg {Number} priority
  40.      * Priority of the request. Lower is higher priority, <tt>0</tt> means "duplex" (always on).
  41.      * All Providers default to <tt>1</tt> except for PollingProvider which defaults to <tt>3</tt>.
  42.      */    
  43.     priority: 1,
  44.     /**
  45.      * @cfg {String} type
  46.      * <b>Required</b>, <tt>undefined</tt> by default.  The <tt>type</tt> of provider specified
  47.      * to {@link Ext.Direct Ext.Direct}.{@link Ext.Direct#addProvider addProvider} to create a
  48.      * new Provider. Acceptable values by default are:<div class="mdetail-params"><ul>
  49.      * <li><b><tt>polling</tt></b> : {@link Ext.direct.PollingProvider PollingProvider}</li>
  50.      * <li><b><tt>remoting</tt></b> : {@link Ext.direct.RemotingProvider RemotingProvider}</li>
  51.      * </ul></div>
  52.      */    
  53.  
  54.     // private
  55.     constructor : function(config){
  56.         Ext.apply(this, config);
  57.         this.addEvents(
  58.             /**
  59.              * @event connect
  60.              * Fires when the Provider connects to the server-side
  61.              * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}.
  62.              */            
  63.             'connect',
  64.             /**
  65.              * @event disconnect
  66.              * Fires when the Provider disconnects from the server-side
  67.              * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}.
  68.              */            
  69.             'disconnect',
  70.             /**
  71.              * @event data
  72.              * Fires when the Provider receives data from the server-side
  73.              * @param {Ext.direct.Provider} provider The {@link Ext.direct.Provider Provider}.
  74.              * @param {event} e The {@link Ext.Direct#eventTypes Ext.Direct.Event type} that occurred.
  75.              */            
  76.             'data',
  77.             /**
  78.              * @event exception
  79.              * Fires when the Provider receives an exception from the server-side
  80.              */                        
  81.             'exception'
  82.         );
  83.         Ext.direct.Provider.superclass.constructor.call(this, config);
  84.     },
  85.     /**
  86.      * Returns whether or not the server-side is currently connected.
  87.      * Abstract method for subclasses to implement.
  88.      */
  89.     isConnected: function(){
  90.         return false;
  91.     },
  92.     /**
  93.      * Abstract methods for subclasses to implement.
  94.      */
  95.     connect: Ext.emptyFn,
  96.     
  97.     /**
  98.      * Abstract methods for subclasses to implement.
  99.      */
  100.     disconnect: Ext.emptyFn
  101. });