Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Clojure

Cannot retrieve the latest commit at this time.
Failed to load latest commit information. | |||
![]() |
example | ||
![]() |
src/holler | ||
![]() |
test/holler/test | ||
![]() |
.gitignore | ||
![]() |
README | ||
![]() |
project.clj |
README
# holler A message broadcasting system for Clojure ## Usage Holler provides a broadcast message system for Clojure. There are two inspirations for this. First, my other language is LSL, the internal scripting language for the Second Life environment. While this language has it's limitations, it has a neat message passing scheme. Second, it's a reaction to the horrid Java listener pattern. Forgive the weird names. I didn't want to collide with 'actor' based systems, and 'object' seemed suicidal as well, so I call objects that participate in the system 'doodads'. The metaphor is that there are objects (I call them doodads) which are, at any time, in a space. Each space is itself a doodad. doodads communicate by broadcasting async or sync messages. Other doodads in the space register to listen to messages. The space itself may broadcast and listen to messages. Each doodad has a (possibly non-unique) name. Doodads can talk into any space they have a reference to. Doodads are 'in' one space. (doodad <name> <space> <init-state> (listen <restriction-map> <handler-fn>) (listen <restriction-map> <handler-fn>) ... ) Notice that a doodad is created in a given space. Doodads can be moved to another space (move <new-space>) or killed (move nil) (holler <id> <options> <data>) options can be :wait - block until all receivers have processed this message :space <ref> - message in this space, not in my location ## Installation FIXME: write ## License Copyright (C) 2010 Anne Ogborn This program may be used and distributed under the terms of Lesser GNU Public License. Doing evil with it is strictly prohibited.