NoobsDeSroobs

Emerald casting problems.

May 9th, 2015
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. const FrameWork <- class FrameWork
  2. field Nodes : Nodelist
  3. field Objects : array.of[clonable] <- Array.of[clonable].empty
  4. field UpdateTimes : array.of[Time] <- array.of[Time].empty
  5. field PrimaryIndex : Integer <- 0
  6.  
  7. export operation Notify[TimeServer : Boolean]
  8. if TimeServer then
  9. for i : Integer <- 0 while i < Objects.upperbound+1 by i <- i + 1
  10. if i !== PrimaryIndex then
  11. Var currClonable: TimeServer <- View Objects.getelement[i] as TimeServer
  12. Var Prim: TimeServer <- View Objects.getelement[PrimaryIndex] as TimeServer
  13. currClonable$Data <- Array.of[Time].create[prim$data.upperbound+1]
  14. for j : Integer <- 0 while j < prim$data.upperbound+1 by j <- j + 1
  15. currClonable$Data.setelement[j, prim$data.getelement[j]]
  16. end for
  17. end if
  18. end for
  19. else
  20. for i : Integer <- 0 while i < Objects.upperbound+1 by i <- i + 1
  21. if i !== PrimaryIndex then
  22. Var currClonable: NameServer <- View Objects.getelement[i] as NameServer
  23. Var Prim: NameServer <- View Objects.getelement[PrimaryIndex] as NameServer
  24. currClonable$Data <- Array.of[String].create[prim$data.upperbound+1]
  25. for j : Integer <- 0 while j < prim$data.upperbound+1 by j <- j + 1
  26. currClonable$Data.setelement[j, prim$data.getelement[j]]
  27. end for
  28. end if
  29. end for
  30. end if
  31. end notify
  32.  
  33. export operation GetPrimary[] -> [P : clonable]
  34. p <- Objects.getelement[PrimaryIndex]
  35. end GetPrimary
  36.  
  37. end FrameWork
  38.  
  39. const Clonable <- typeobject Clonable
  40. operation Clone[] -> [c : clonable]
  41. end Clonable
  42.  
  43. const TimeServer <- class TimeServer [FW : FrameWork]
  44. field Data : Array.of[time] <- array.of[time].empty
  45.  
  46. export operation Clone[] -> [C : TimeServer]
  47. c$Data <- Array.of[Time].create[Data.upperbound+1]
  48.  
  49. for i : Integer <- 0 while i < Data.upperbound+1 by i <- i + 1
  50. c$Data.setelement[i, Data.getelement[i]]
  51. end for
  52.  
  53.  
  54. end Clone
  55.  
  56. export operation addTime[t : Time]%//Maybe we should add a key?
  57. Data.addupper[t]
  58. FW.Notify[]
  59. end addTime
  60. end TimeServer
  61.  
  62.  
  63. const NameServer <- class NameServer [FW : FrameWork]
  64. field Data : Array.of[String] <- array.of[String].empty
  65.  
  66. export operation Clone[] -> [C : NameServer]
  67. c$Data <- Array.of[String].create[Data.upperbound+1]
  68.  
  69. for i : Integer <- 0 while i < Data.upperbound+1 by i <- i + 1
  70. c$Data.setelement[i, Data.getelement[i]]
  71. end for
  72. end Clone
  73.  
  74. export operation addName[Name : String]%//Maybe we should add a key?
  75. Data.addupper[Name]
  76. FW.notify[]
  77. end addName
  78. end NameServer
  79.  
  80.  
  81. const Client <- object client
  82.  
  83. initially
  84.  
  85. end initially
  86.  
  87. export operation ReplicateMe[o : Clonable, N : Integer] -> [FW : FrameWork]
  88. FW$Objects <- Array.of[clonable].create[n]
  89. FW$UpdateTimes <- Array.of[Time].create[n]
  90. %Add the object into all slots
  91.  
  92. end ReplicateMe
  93. end client
Advertisement
Add Comment
Please, Sign In to add comment