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 }
//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()} }