<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*************************************************
 * Author: 	Evelyn Lai-Tee Cheok
 *			Department of Electrical Engineering
 *			Center for Telecommunications Research
 *			Schapiro Research Building
 *			Columbia University
 *
 * Email: 	laitee@ctr.columbia.edu
 *
 **************************************************/
import java.lang.*;
import java.io.*;
import java.util.*;
import DataType;

/** Data Handler contains a single important dispatcher function
	for dispatching data received and segmented from it's RTP
	header to the appropriate modules (Whiteboard or Chat Tool)
	for further processing. **/
public class DataHandler {
	MenuWindow main_parent;
	byte data_type;
	int int_data_type;

	/** Constructor function for Data Handler **/
	public DataHandler(MenuWindow parent) {
		main_parent = parent;
	}

	/** Dispatcher function. **/
	public void dispatch(byte[] data_buf) {
		int sketch_buf_len = data_buf.length - 1;
		 byte[] sketch_buf = new byte[sketch_buf_len];
		ByteArrayInputStream byteStream = new ByteArrayInputStream(data_buf);
		DataInputStream dataStream = new DataInputStream(byteStream);

		 try {
			System.out.println("In dataHandler.dispatch");
			data_type = dataStream.readByte();
			System.out.println(" data_type dispatched = " + data_type);
		} catch(java.io.IOException e) {
			System.out.println("IOException in Data_Handler: " + e);
		}

		if (data_type == DataType.ChatToolDataType) {
			try {
				String chatStr = dataStream.readUTF();
				main_parent.chat.processInData(chatStr);
			} catch(java.io.IOException e) {
				System.out.println("IOException in reading chatStr in Data_Handler: " + e);
			}
		} else if (data_type == DataType.WBDataType) {
			try {
				dataStream.readFully(sketch_buf, 0, sketch_buf.length);
			} catch(java.io.IOException e) {
				System.out.println("IOException in reading WB data: " + e);
			}
			main_parent.sketch.processInData(sketch_buf);
		}
	}
}
</pre></body></html>