/* * Copyright (C) 2008 Steve Ratcliffe * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * * Author: Steve Ratcliffe * Create date: 23-Jun-2008 */ package uk.me.parabola.tdbfmt; import java.io.IOException; import uk.me.parabola.io.FileBlock; import uk.me.parabola.io.StructuredOutputStream; /** * @author Steve Ratcliffe */ public class TBlock extends FileBlock { private static final int BLOCK_ID = 'T'; private long sum; public TBlock() { super(BLOCK_ID); } /** * This is to overridden in a subclass. */ protected void writeBody(StructuredOutputStream os) throws IOException { // If you change A,B,C or D the maps // will not load, you can change the rest without easily visible // problems although I suppose they must do something. // // A,B,C,D is a standard crc32 sum of the rest of the file. // (Andrzej Popowsk) os.write2(0); os.write((int) (sum >> 24)); // A os.write3(0); os.write3(0); os.write((int) (sum >> 16)); // B os.write2(0); os.write((int) (sum >> 8)); // C os.write4(0); os.write((int) sum); // D os.write2(0); } public void setSum(long sum) { this.sum = sum; } }