func (p *poolsi) connect(addr string) { if addr == *myAddr { return } p.RLock() _, has := p.all[addr] p.RUnlock() if has { return } pool := newPool(addr, 5) query := new(Payload) query.Data = make([]byte, 10) x.Check2(rand.Read(query.Data)) conn, err := pool.Get() x.Checkf(err, "Unable to connect") c := NewWorkerClient(conn) resp, err := c.Echo(context.Background(), query) x.Checkf(err, "Unable to Echo") x.AssertTrue(bytes.Equal(resp.Data, query.Data)) x.Check(pool.Put(conn)) fmt.Printf("Connection with %q successful.\n", addr) p.Lock() defer p.Unlock() _, has = p.all[addr] if has { return } p.all[addr] = pool }
func toRDF(buf *bytes.Buffer, item kv) { pl := item.list for _, p := range pl.Postings { x.Check2(buf.WriteString(item.prefix)) if p.Uid == math.MaxUint64 && !bytes.Equal(p.Value, nil) { // Value posting // Convert to appropriate type typ := stype.ValueForType(stype.TypeID(p.ValType)) x.Check(typ.UnmarshalBinary(p.Value)) str, err := typ.MarshalText() x.Check(err) x.Check2(buf.WriteString(fmt.Sprintf("\"%s\"", str))) if p.ValType == uint32(stype.GeoID) { x.Check2(buf.WriteString(fmt.Sprintf("^^<geo:geojson> "))) } else if p.ValType != uint32(stype.BytesID) { x.Check2(buf.WriteString(fmt.Sprintf("^^<xs:%s> ", typ.Type().Name))) } x.Check2(buf.WriteString(" .\n")) return } x.Check2(buf.WriteString(fmt.Sprintf("<_uid_:%#x> .\n", p.Uid))) } }