[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.226.187.60: ~ $
sha1-array API
==============

The sha1-array API provides storage and manipulation of sets of SHA-1
identifiers. The emphasis is on storage and processing efficiency,
making them suitable for large lists. Note that the ordering of items is
not preserved over some operations.

Data Structures
---------------

`struct sha1_array`::

	A single array of SHA-1 hashes. This should be initialized by
	assignment from `SHA1_ARRAY_INIT`.  The `sha1` member contains
	the actual data. The `nr` member contains the number of items in
	the set.  The `alloc` and `sorted` members are used internally,
	and should not be needed by API callers.

Functions
---------

`sha1_array_append`::
	Add an item to the set. The sha1 will be placed at the end of
	the array (but note that some operations below may lose this
	ordering).

`sha1_array_lookup`::
	Perform a binary search of the array for a specific sha1.
	If found, returns the offset (in number of elements) of the
	sha1. If not found, returns a negative integer. If the array is
	not sorted, this function has the side effect of sorting it.

`sha1_array_clear`::
	Free all memory associated with the array and return it to the
	initial, empty state.

`sha1_array_for_each_unique`::
	Efficiently iterate over each unique element of the list,
	executing the callback function for each one. If the array is
	not sorted, this function has the side effect of sorting it.

Examples
--------

-----------------------------------------
void print_callback(const unsigned char sha1[20],
		    void *data)
{
	printf("%s\n", sha1_to_hex(sha1));
}

void some_func(void)
{
	struct sha1_array hashes = SHA1_ARRAY_INIT;
	unsigned char sha1[20];

	/* Read objects into our set */
	while (read_object_from_stdin(sha1))
		sha1_array_append(&hashes, sha1);

	/* Check if some objects are in our set */
	while (read_object_from_stdin(sha1)) {
		if (sha1_array_lookup(&hashes, sha1) >= 0)
			printf("it's in there!\n");

	/*
	 * Print the unique set of objects. We could also have
	 * avoided adding duplicate objects in the first place,
	 * but we would end up re-sorting the array repeatedly.
	 * Instead, this will sort once and then skip duplicates
	 * in linear time.
	 */
	sha1_array_for_each_unique(&hashes, print_callback, NULL);
}
-----------------------------------------

Filemanager

Name Type Size Permission Actions
api-allocation-growing.html File 17.55 KB 0644
api-allocation-growing.txt File 1019 B 0644
api-argv-array.html File 19.44 KB 0644
api-argv-array.txt File 2.12 KB 0644
api-builtin.html File 19.43 KB 0644
api-builtin.txt File 2 KB 0644
api-config.html File 23.39 KB 0644
api-config.txt File 5.18 KB 0644
api-credentials.html File 27.9 KB 0644
api-credentials.txt File 8.87 KB 0644
api-decorate.html File 16.23 KB 0644
api-decorate.txt File 60 B 0644
api-diff.html File 24.32 KB 0644
api-diff.txt File 5.22 KB 0644
api-directory-listing.html File 20.75 KB 0644
api-directory-listing.txt File 2.71 KB 0644
api-gitattributes.html File 21.9 KB 0644
api-gitattributes.txt File 3.62 KB 0644
api-grep.html File 16.31 KB 0644
api-grep.txt File 76 B 0644
api-hash.html File 18.42 KB 0644
api-hash.txt File 1.4 KB 0644
api-hashmap.html File 35.57 KB 0644
api-hashmap.txt File 7.71 KB 0644
api-history-graph.html File 24.08 KB 0644
api-history-graph.txt File 5.9 KB 0644
api-in-core-index.html File 16.96 KB 0644
api-in-core-index.txt File 457 B 0644
api-index-skel.txt File 431 B 0644
api-index.html File 18.45 KB 0644
api-index.sh File 611 B 0644
api-index.txt File 1.68 KB 0644
api-lockfile.html File 20.05 KB 0644
api-lockfile.txt File 2.92 KB 0644
api-merge.html File 21.36 KB 0644
api-merge.txt File 3.3 KB 0644
api-object-access.html File 16.73 KB 0644
api-object-access.txt File 342 B 0644
api-parse-options.html File 31.03 KB 0644
api-parse-options.txt File 9.36 KB 0644
api-quote.html File 16.42 KB 0644
api-quote.txt File 145 B 0644
api-ref-iteration.html File 19.71 KB 0644
api-ref-iteration.txt File 2.41 KB 0644
api-remote.html File 21.26 KB 0644
api-remote.txt File 3.3 KB 0644
api-revision-walking.html File 19.76 KB 0644
api-revision-walking.txt File 2.39 KB 0644
api-run-command.html File 28.25 KB 0644
api-run-command.txt File 8.08 KB 0644
api-setup.html File 16.51 KB 0644
api-setup.txt File 180 B 0644
api-sha1-array.html File 19.39 KB 0644
api-sha1-array.txt File 2.25 KB 0644
api-sigchain.html File 17.74 KB 0644
api-sigchain.txt File 1.34 KB 0644
api-strbuf.html File 32.15 KB 0644
api-strbuf.txt File 10.17 KB 0644
api-string-list.html File 26.42 KB 0644
api-string-list.txt File 6.84 KB 0644
api-tree-walking.html File 23.17 KB 0644
api-tree-walking.txt File 4.27 KB 0644
api-xdiff-interface.html File 16.3 KB 0644
api-xdiff-interface.txt File 139 B 0644
index-format.html File 27.12 KB 0644
index-format.txt File 6.29 KB 0644
pack-format.html File 24.08 KB 0644
pack-format.txt File 5.54 KB 0644
pack-heuristics.html File 42.74 KB 0644
pack-heuristics.txt File 17.77 KB 0644
pack-protocol.html File 43.12 KB 0644
pack-protocol.txt File 20.99 KB 0644
protocol-capabilities.html File 25.41 KB 0644
protocol-capabilities.txt File 7.09 KB 0644
protocol-common.html File 20.08 KB 0644
protocol-common.txt File 2.7 KB 0644
racy-git.html File 26.85 KB 0644
racy-git.txt File 8.63 KB 0644
send-pack-pipeline.html File 18.73 KB 0644
send-pack-pipeline.txt File 1.92 KB 0644
shallow.html File 18.86 KB 0644
shallow.txt File 2.3 KB 0644
trivial-merge.html File 21.62 KB 0644
trivial-merge.txt File 4.16 KB 0644