Example #1
0
func newImport(desc *servicedescriptor.ServiceDescriptor, cfg *config.Config) (n int) {
	n = getNextImport()
	i := aursir4go.NewImport(desc, cfg)
	imports[n] = i
	request[n] = map[string]*eventual2go.Future{}
	listen_results[n] = eventual2go.NewCollector()
	listen_results[n].AddStream(i.Results())
	i.Run()
	return
}
Example #2
0
//export CallAll
func CallAll(i C.int, function *C.char, parameter *C.char) *C.char {
	imp := imports[int(i)]
	if imp != nil {
		req := imp.NewRequestBin(C.GoString(function), []byte(C.GoString(parameter)), messages.ONE2MANY)

		isRes := func(uuid string) eventual2go.Filter {
			return func(d eventual2go.Data) bool {
				return d.(*messages.Result).Request.UUID == uuid
			}
		}

		n2n_streams[int(i)][req.UUID] = eventual2go.NewCollector()
		n2n_streams[int(i)][req.UUID].AddStream(imp.Results().Where(isRes(req.UUID)))
		imp.Deliver(req)
		return C.CString(req.UUID)
	}
	return nil
}
func NewPeerCollector() *PeerCollector {
	return &PeerCollector{eventual2go.NewCollector()}
}
func NewStringSliceCollector() *StringSliceCollector {
	return &StringSliceCollector{eventual2go.NewCollector()}
}
func NewResultCollector() *ResultCollector {
	return &ResultCollector{eventual2go.NewCollector()}
}
func NewNodeCollector() *NodeCollector {
	return &NodeCollector{eventual2go.NewCollector()}
}
func NewIntCollector() *IntCollector {
	return &IntCollector{eventual2go.NewCollector()}
}
func NewBoolCollector() *BoolCollector {
	return &BoolCollector{eventual2go.NewCollector()}
}
func NewSignalCollector() *SignalCollector {
	return &SignalCollector{eventual2go.NewCollector()}
}
func NewUUIDCollector() *UUIDCollector {
	return &UUIDCollector{eventual2go.NewCollector()}
}
func NewMessageCollector() *MessageCollector {
	return &MessageCollector{eventual2go.NewCollector()}
}