Переглянути джерело

added objectHandler and generalize 'owner'

Nicolas Cannasse 18 роки тому
батько
коміт
55f1b95db3
1 змінених файлів з 9 додано та 2 видалено
  1. 9 2
      std/mtwin/web/Handler.hx

+ 9 - 2
std/mtwin/web/Handler.hx

@@ -142,12 +142,12 @@ class Handler<T> {
 		}
 	}
 
-	function owner( cb:T->Void ) : T->Void {
+	function owner<K>( cb:T->K ) : T->K {
 		var me = this;
 		return function(u:T){
 			if (!me.isOwner(u))
 				throw ActionReservedToObjectOwner;
-			cb(u);
+			return cb(u);
 		}
 	}
 
@@ -158,6 +158,13 @@ class Handler<T> {
 		}
 	}
 
+	function objectHandler( cb : T -> Handler<Dynamic>, ?lock : Bool ) {
+		var me = this;
+		return object(function(u:T) {
+			me.handler(cb(u))();
+		},lock);
+	}
+
 	// action declarators
 
 	function free( n:String, ?t:String, ?cb:Void->Void ){