OSDN Git Service

Version 0.6.96. add lock function @X.EventDispatcher.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 10_XCallback.js
index a57ce6c..ce295d6 100644 (file)
@@ -39,47 +39,18 @@ var callbackHash;
 var functionHash;\r
 \r
 X.Callback = {\r
-       \r
        NONE             : X_Callback_NONE,\r
        UN_LISTEN        : X_Callback_UN_LISTEN,\r
        STOP_PROPAGATION : X_Callback_STOP_PROPAGATION,\r
        STOP_NOW         : X_Callback_STOP_NOW,\r
        PREVENT_DEFAULT  : X_Callback_PREVENT_DEFAULT,\r
-       MONOPOLY         : X_Callback_MONOPOLY,\r
-       \r
-       create : X_Callback_create,\r
-       \r
-       sys_monitor : function(){\r
-               return {\r
-                       'Live callback' : X_Callback_LIVE_LIST.length,\r
-                       'Pool callback' : X_Callback_POOL_LIST.length\r
-               };\r
-       },\r
-       \r
-       sys_gc : function(){\r
-               var list = X_Callback_POOL_LIST,\r
-                       f;\r
-               while( 0 < list.length ){\r
-                       f = list.shift();\r
-                       X_Callback_correct( f );\r
-                       delete f[ 'kill' ];\r
-                       delete f[ 'same' ];\r
-               };\r
-       }\r
+       MONOPOLY         : X_Callback_MONOPOLY\r
 };\r
 \r
-X_TEMP.onSystemReady.push( X_Callback_handleSystemEvent );\r
-\r
 // ------------------------------------------------------------------------- //\r
 // --- implements ---------------------------------------------------------- //\r
 // ------------------------------------------------------------------------- //\r
 \r
-function X_Callback_handleSystemEvent( e ){\r
-       switch( e ){\r
-               case '':\r
-       };\r
-};\r
-\r
 function X_Callback_create( thisObject, opt_callback, opt_args /* [ listener || ( context + function ) || function ][ args... ] */ ){\r
        var obj = X_Callback_classifyCallbackArgs( thisObject, opt_callback, opt_args ),\r
                l, ret, _obj;\r
@@ -93,11 +64,9 @@ function X_Callback_create( thisObject, opt_callback, opt_args /* [ listener ||
                _obj.s = obj.s;\r
        } else {\r
                ret = X_Closure_actualClosure( obj );\r
-               ret.kill = X_Callback_kill;\r
-               ret.same = X_Callback_same;\r
        };\r
        X_Callback_LIVE_LIST[ X_Callback_LIVE_LIST.length ] = ret;\r
-       return ret;     \r
+       return ret;\r
 };\r
 \r
 function X_Closure_actualClosure( obj ){\r
@@ -200,20 +169,6 @@ function X_Callback_proxyCallback( xfunc, _args ){
        return X_Callback_NONE;\r
 };\r
 \r
-function X_Callback_same( arg1, arg2, arg3 ){\r
-       var hash;\r
-       \r
-       if( arg1 && arg1[ 'kill' ] === X_Callback_kill ) return this === arg1;\r
-       \r
-       hash = X_Callback_classifyCallbackArgs( arg1, arg2, arg3 );\r
-       \r
-       return hash && this.k === hash.k && this.x === hash.x && this.f === hash.f && this.s === hash.s;\r
-};\r
-\r
-function X_Callback_kill(){\r
-       X_Callback_correct( this );\r
-};\r
-\r
 function X_Callback_correct( f ){\r
        var i = X_Callback_LIVE_LIST.indexOf( f ),\r
                obj;\r
@@ -231,6 +186,24 @@ function X_Callback_correct( f ){
 };\r
 \r
 \r
+// sys\r
+X_TEMP.X_Callback_onSystemReady = function( sys ){\r
+       delete X_TEMP.X_Callback_onSystemReady;\r
+       sys.monitor( X_Callback_monitor );\r
+       sys.gc( X_Callback_gc );\r
+};\r
+\r
+function X_Callback_monitor(){\r
+       return {\r
+               'Callback:Live' : X_Callback_LIVE_LIST.length,\r
+               'Callback:Pool' : X_Callback_POOL_LIST.length\r
+       };\r
+};\r
+function X_Callback_gc(){\r
+       X_Callback_POOL_LIST.length = 0; // ?\r
+};\r
+\r
+X_TEMP.onSystemReady.push( X_TEMP.X_Callback_onSystemReady );\r
 \r
 \r
 console.log( 'X.Core.Callback' );\r