utils.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package rt2
  2. import (
  3. "fw/cp"
  4. "fw/cp/node"
  5. "fw/rt2/context"
  6. "fw/rt2/frame"
  7. "fw/rt2/nodeframe"
  8. "fw/rt2/scope"
  9. )
  10. var utils nodeframe.NodeFrameUtils
  11. //func DataOf(f frame.Frame) map[interface{}]interface{} { panic(100) }
  12. func RegOf(f frame.Frame) map[interface{}]interface{} { return utils.DataOf(f) }
  13. func ValueOf(f frame.Frame) map[cp.ID]scope.Value { return utils.ValueOf(f) }
  14. func NodeOf(f frame.Frame) node.Node { return utils.NodeOf(f) }
  15. func Push(f, p frame.Frame) { utils.Push(f, p) }
  16. func New(n node.Node) frame.Frame { return utils.New(n) }
  17. func ThisScope(f frame.Frame) scope.Manager {
  18. return f.Domain().Discover(context.SCOPE).(scope.Manager)
  19. }
  20. func ScopeFor(f frame.Frame, id cp.ID, fn ...scope.ValueOf) (ret scope.Manager) {
  21. /* glob := f.Domain().Discover(context.UNIVERSE).(context.Domain)
  22. ml := glob.Discover(context.MOD).(rtm.List)
  23. for _, m := range ml.AsList() {
  24. md := glob.Discover(m.Name).(context.Domain)
  25. sc := md.Discover(context.SCOPE).(scope.Manager)
  26. //fmt.Println(m.Name, sc.Exists(id), id)
  27. if sc.Exists(id) {
  28. assert.For(ret == nil, 40) //только в одном скоупе!
  29. ret = sc
  30. break
  31. }
  32. }
  33. assert.For(ret != nil, 60, id)
  34. if len(fn) == 1 {
  35. ret.Select(id, fn...)
  36. }*/
  37. return
  38. }
  39. func ReplaceDomain(f frame.Frame, d context.Domain) { utils.ReplaceDomain(f, d) }
  40. func Assert(f frame.Frame, ok frame.Assert) { utils.Assert(f, ok) }