View Javadoc
1   /*
2    * Copyright (C) 2017, Google Inc. and others
3    *
4    * This program and the accompanying materials are made available under the
5    * terms of the Eclipse Distribution License v. 1.0 which is available at
6    * https://www.eclipse.org/org/documents/edl-v10.php.
7    *
8    * SPDX-License-Identifier: BSD-3-Clause
9    */
10  
11  package org.eclipse.jgit.internal.storage.reftable;
12  
13  class ReftableConstants {
14  	static final byte[] FILE_HEADER_MAGIC = { 'R', 'E', 'F', 'T' };
15  	static final byte VERSION_1 = (byte) 1;
16  
17  	static final int FILE_HEADER_LEN = 24;
18  	static final int FILE_FOOTER_LEN = 68;
19  
20  	static final byte FILE_BLOCK_TYPE = 'R';
21  	static final byte REF_BLOCK_TYPE = 'r';
22  	static final byte OBJ_BLOCK_TYPE = 'o';
23  	static final byte LOG_BLOCK_TYPE = 'g';
24  	static final byte INDEX_BLOCK_TYPE = 'i';
25  
26  	static final int VALUE_NONE = 0x0;
27  	static final int VALUE_1ID = 0x1;
28  	static final int VALUE_2ID = 0x2;
29  	static final int VALUE_SYMREF = 0x3;
30  	static final int VALUE_TYPE_MASK = 0x7;
31  
32  	static final int LOG_NONE = 0x0;
33  	static final int LOG_DATA = 0x1;
34  
35  	static final int MAX_BLOCK_SIZE = (1 << 24) - 1;
36  	static final int MAX_RESTARTS = 65535;
37  
38  	static boolean isFileHeaderMagic(byte[] buf, int o, int n) {
39  		return (n - o) >= FILE_HEADER_MAGIC.length
40  				&& buf[o + 0] == FILE_HEADER_MAGIC[0]
41  				&& buf[o + 1] == FILE_HEADER_MAGIC[1]
42  				&& buf[o + 2] == FILE_HEADER_MAGIC[2]
43  				&& buf[o + 3] == FILE_HEADER_MAGIC[3];
44  	}
45  
46  	static long reverseUpdateIndex(long time) {
47  		return 0xffffffffffffffffL - time;
48  	}
49  
50  	private ReftableConstants() {
51  	}
52  }