/// <returns>all refs which were advertised to the client.</returns> public IDictionary <string, Ref> GetAdvertisedRefs() { if (refs == null) { refs = refFilter.Filter(db.GetAllRefs()); } return(refs); }
/// <exception cref="System.IO.IOException"></exception> private void Service() { if (biDirectionalPipe) { SendAdvertisedRefs(new RefAdvertiser.PacketLineOutRefAdvertiser(pckOut)); } else { advertised = new HashSet <ObjectId>(); refs = refFilter.Filter(db.GetAllRefs()); foreach (Ref @ref in refs.Values) { if (@ref.GetObjectId() != null) { advertised.AddItem(@ref.GetObjectId()); } } } RecvWants(); if (wantIds.IsEmpty()) { return; } if (options.Contains(OPTION_MULTI_ACK_DETAILED)) { multiAck = BasePackFetchConnection.MultiAck.DETAILED; } else { if (options.Contains(OPTION_MULTI_ACK)) { multiAck = BasePackFetchConnection.MultiAck.CONTINUE; } else { multiAck = BasePackFetchConnection.MultiAck.OFF; } } if (Negotiate()) { SendPack(); } }