generic_message_bus.js 852 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. var RTL$ = {
  2. extend: function (cons, base){
  3. function Type(){}
  4. Type.prototype = base.prototype;
  5. cons.prototype = new Type();
  6. cons.prototype.constructor = cons;
  7. },
  8. assert: function (condition){
  9. if (!condition)
  10. throw new Error("assertion failed");
  11. }
  12. };
  13. var m = function (){
  14. function Message(){
  15. }
  16. RTL$.extend(Derived1, Message);
  17. function Derived1(){
  18. Message.call(this);
  19. this.derivedField1 = false;
  20. }
  21. RTL$.extend(Derived2, Message);
  22. function Derived2(){
  23. Message.call(this);
  24. this.derivedField2 = false;
  25. }
  26. var d1 = new Derived1();
  27. var d2 = new Derived2();
  28. function handleMessage(msg/*VAR Message*/){
  29. if (msg instanceof Derived1){
  30. RTL$.assert(msg.derivedField1);
  31. }
  32. else if (msg instanceof Derived2){
  33. RTL$.assert(msg.derivedField2);
  34. }
  35. }
  36. handleMessage(d1);
  37. handleMessage(d2);
  38. }();