jcifs_1.3.3.examples.TestRandomAccess Maven / Gradle / Ivy
Go to download
JCIFS is an Open Source client library that implements the CIFS/SMB networking protocol in 100% Java
import jcifs.smb.*;
public class TestRandomAccess {
public static class TestRecord extends SmbTableFileRecord {
boolean f1; /* 1 byte */
byte f2; /* 1 byte */
int f3; /* 1 byte */
short f4; /* 2 bytes */
int f5; /* 2 bytes */
char f6; /* 2 bytes */
int f7; /* 4 bytes */
long f8; /* 8 bytes */
float f9; /* 4 bytes */
double f10; /* 8 bytes */
String f11; /* 95 bytes max */
/* 128 bytes total */
public TestRecord() {
}
public TestRecord( boolean f1, byte f2, int f3, short f4,
int f5, char f6, int f7, long f8,
float f9, double f10, String f11 ) {
this.f1 = f1;
this.f2 = f2;
this.f3 = f3;
this.f4 = f4;
this.f5 = f5;
this.f6 = f6;
this.f7 = f7;
this.f8 = f8;
this.f9 = f9;
this.f10 = f10;
this.f11 = f11;
}
public void encode( SmbTableFile tf ) throws SmbException {
tf.writeBoolean( f1 );
tf.writeByte( f2 );
tf.writeByte( f3 );
tf.writeShort( f4 );
tf.writeShort( f5 );
tf.writeChar( f6 );
tf.writeInt( f7 );
tf.writeLong( f8 );
tf.writeFloat( f9 );
tf.writeDouble( f10 );
tf.writeUTF( f11 );
}
public void decode( SmbTableFile tf ) throws SmbException {
f1 = tf.readBoolean();
f2 = tf.readByte();
f3 = tf.readUnsignedByte();
f4 = tf.readShort();
f5 = tf.readUnsignedShort();
f6 = tf.readChar();
f7 = tf.readInt();
f8 = tf.readLong();
f9 = tf.readFloat();
f10 = tf.readDouble();
f11 = tf.readUTF();
}
public boolean equals( Object obj ) {
if( obj instanceof TestRecord ) {
TestRecord r = (TestRecord)obj;
return r.f1 == f1 &&
r.f2 == f2 &&
r.f3 == f3 &&
r.f4 == f4 &&
r.f5 == f5 &&
r.f6 == f6 &&
r.f7 == f7 &&
r.f8 == f8 &&
r.f9 == f9 &&
r.f10 == f10 &&
f11.equals( r.f11 );
}
return false;
}
}
public static void main( String[] argv ) throws Exception {
if( argv.length < 2 ) {
System.err.println( "usage: TestRandomAccess (1 for read or 2 for write with )" );
return;
}
SmbTableFile stf;
int op = Integer.parseInt( argv[1] );
TestRecord r1 = new TestRecord( true, (byte)0x12, 0x34, (short)0x1122,
0x3344, '\u04c1', 0x11112222, 0x1111111122222222L,
0.1122f, 3344.1, "The surface is smooth like glass" );
if( op == 3 ) {
stf = new SmbTableFile( argv[0], "rw", 0, 128 );
int newLength = Integer.parseInt( argv[2] );
stf.setLength( newLength );
System.out.println( "truncated to " + newLength );
} else if( op == 1 ) {
SmbFile file = new SmbFile( argv[0], null, SmbFile.FILE_SHARE_READ );
stf = new SmbTableFile( file, "rw", 128 );
stf.insert( r1 );
System.out.println( "rowid: " + r1.rowid );
} else {
if( argv.length < 3 ) {
System.err.println( "usage: TestRandomAccess (1 for read or 2 for write with )" );
return;
}
stf = new SmbTableFile( argv[0], "r", 0, 128 );
TestRecord r2 = new TestRecord();
r2.rowid = Integer.parseInt( argv[2] );
stf.get( r2 );
System.out.println( "r1.equals( r2 ) = " + r1.equals( r2 ));
}
stf.close();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy