/*
* RED5 Open Source Flash Server - http://code.google.com/p/red5/
*
* Copyright 2006-2012 by respective authors (see below). All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.red5.server.service;
import org.red5.io.amf3.IDataInput;
import org.red5.io.amf3.IDataOutput;
import org.red5.io.amf3.IExternalizable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ExternalizableClass implements IExternalizable {
private Logger log = LoggerFactory.getLogger(this.getClass());
private boolean[] a = new boolean[2];
private byte[] b = new byte[5];
private double c;
private float d;
private int[] e = new int[3];
private String[] f = new String[2];
private Object ob;
private short[] g = new short[3];
private long[] h = new long[2];
private String i;
private String j;
public void readExternal(IDataInput input) {
log.info("readExternal: {}", this);
a[0] = input.readBoolean();
a[1] = input.readBoolean();
b[0] = input.readByte();
b[1] = input.readByte();
b[2] = input.readByte();
b[3] = input.readByte();
b[4] = input.readByte();
// TODO: input.readBytes
c = input.readDouble();
d = input.readFloat();
e[0] = input.readInt();
e[1] = input.readInt();
e[2] = input.readInt();
f[0] = input.readMultiByte(7, "iso-8859-1");
f[1] = input.readMultiByte(14, "utf-8");
ob = input.readObject();
g[0] = input.readShort();
g[1] = input.readShort();
g[2] = input.readShort();
h[0] = input.readUnsignedInt();
h[1] = input.readUnsignedInt();
i = input.readUTF();
j = input.readUTFBytes(12);
}
public void writeExternal(IDataOutput output) {
log.info("writeExternal: {}", this);
output.writeBoolean(a[0]);
output.writeBoolean(a[1]);
output.writeByte(b[0]);
output.writeByte(b[1]);
output.writeByte(b[2]);
output.writeByte(b[3]);
output.writeByte(b[4]);
output.writeDouble(c);
output.writeFloat(d);
output.writeInt(e[0]);
output.writeInt(e[1]);
output.writeInt(e[2]);
output.writeMultiByte(f[0], "iso-8859-1");
output.writeMultiByte(f[1], "utf-8");
output.writeObject(ob);
output.writeShort(g[0]);
output.writeShort(g[1]);
output.writeShort(g[2]);
output.writeUnsignedInt(h[0]);
output.writeUnsignedInt(h[1]);
output.writeUTF(i);
output.writeUTFBytes(j);
}
}