public abstract class RefAdvertiser extends Object
UploadPack
and ReceivePack
.Modifier and Type | Class and Description |
---|---|
static class |
RefAdvertiser.PacketLineOutRefAdvertiser
Advertiser which frames lines in a
PacketLineOut format. |
Constructor and Description |
---|
RefAdvertiser() |
Modifier and Type | Method and Description |
---|---|
void |
addSymref(String from,
String to)
Add a symbolic ref to capabilities.
|
void |
advertiseCapability(String name)
Add one protocol capability to the initial advertisement.
|
void |
advertiseCapability(String name,
String value)
Add one protocol capability with a value (
"name=value" ). |
void |
advertiseHave(AnyObjectId id)
Advertise one object is available using the magic
.have . |
void |
advertiseId(AnyObjectId id,
String refName)
Advertise one object under a specific name.
|
protected abstract void |
end()
Mark the end of the advertisements.
|
void |
init(Repository src)
Initialize this advertiser with a repository for peeling tags.
|
boolean |
isEmpty() |
Set<ObjectId> |
send(Map<String,Ref> refs)
Format an advertisement for the supplied refs.
|
void |
setDerefTags(boolean deref)
Toggle tag peeling.
|
protected abstract void |
writeOne(CharSequence line)
Write a single advertisement line.
|
public void init(Repository src)
src
- the repository to read from.public void setDerefTags(boolean deref)
deref
- true to show the dereferenced value of a tag as the special
ref $tag^{}
; false to omit it from the output.public void advertiseCapability(String name)
This method must be invoked prior to any of the following:
name
- the name of a single protocol capability supported by the
caller. The set of capabilities are sent to the client in the
advertisement, allowing the client to later selectively enable
features it recognizes.public void advertiseCapability(String name, String value)
"name=value"
).name
- name of the capability.value
- value. If null the capability will not be added.public void addSymref(String from, String to)
This method must be invoked prior to any of the following:
from
- The symbolic ref, e.g. "HEAD"to
- The real ref it points to, e.g. "refs/heads/master"public Set<ObjectId> send(Map<String,Ref> refs) throws IOException
refs
- zero or more refs to format for the client. The collection is
sorted before display if necessary, and therefore may appear
in any order.IOException
- the underlying output stream failed to write out an
advertisement record.public void advertiseHave(AnyObjectId id) throws IOException
.have
.
The magic .have
advertisement is not available for fetching by a
client, but can be used by a client when considering a delta base
candidate before transferring data in a push. Within the record created
by this method the ref name is simply the invalid string .have
.
id
- identity of the object that is assumed to exist.IOException
- the underlying output stream failed to write out an
advertisement record.public boolean isEmpty()
public void advertiseId(AnyObjectId id, String refName) throws IOException
If the advertised object is a tag, this method does not advertise the peeled version of it.
id
- the object to advertise.refName
- name of the reference to advertise the object as, can be any
string not including the NUL byte.IOException
- the underlying output stream failed to write out an
advertisement record.protected abstract void writeOne(CharSequence line) throws IOException
line
- the advertisement line to be written. The line always ends
with LF. Never null or the empty string.IOException
- the underlying output stream failed to write out an
advertisement record.protected abstract void end() throws IOException
IOException
- the underlying output stream failed to write out an
advertisement record.Copyright © 2015 Eclipse JGit Project. All rights reserved.