// Path: dragonite-sdk/src/main/java/com/vecsight/dragonite/sdk/exception/ConnectionNotAliveException.java
// public class ConnectionNotAliveException extends DragoniteException {
// 
//     public ConnectionNotAliveException() {
//         super("Connection is not alive");
//     }
// 
//     public ConnectionNotAliveException(final String msg) {
//         super(msg);
//     }
// 
// }
// 
// Path: dragonite-sdk/src/main/java/com/vecsight/dragonite/sdk/exception/IncorrectSizeException.java
// public class IncorrectSizeException extends DragoniteException {
// 
//     public IncorrectSizeException(final String msg) {
//         super(msg);
//     }
// 
// }
// 
// Path: dragonite-sdk/src/main/java/com/vecsight/dragonite/sdk/exception/SenderClosedException.java
// public class SenderClosedException extends DragoniteException {
// 
//     public SenderClosedException() {
//         super("Sender closed");
//     }
// 
//     public SenderClosedException(final String msg) {
//         super(msg);
//     }
// 
// }


import com.vecsight.dragonite.sdk.exception.ConnectionNotAliveException;
import com.vecsight.dragonite.sdk.exception.IncorrectSizeException;
import com.vecsight.dragonite.sdk.exception.SenderClosedException;
import java.io.IOException;
import java.net.SocketAddress;
/*
 * The Dragonite Project
 * -------------------------
 * See the LICENSE file in the root directory for license information.
 */


package com.vecsight.dragonite.sdk.socket;



public abstract class DragoniteSocket {

    public abstract byte[] read() throws InterruptedException, ConnectionNotAliveException;

// Path: dragonite-sdk/src/main/java/com/vecsight/dragonite/sdk/exception/ConnectionNotAliveException.java
// public class ConnectionNotAliveException extends DragoniteException {
// 
//     public ConnectionNotAliveException() {
//         super("Connection is not alive");
//     }
// 
//     public ConnectionNotAliveException(final String msg) {
//         super(msg);
//     }
// 
// }
// 
// Path: dragonite-sdk/src/main/java/com/vecsight/dragonite/sdk/exception/IncorrectSizeException.java
// public class IncorrectSizeException extends DragoniteException {
// 
//     public IncorrectSizeException(final String msg) {
//         super(msg);
//     }
// 
// }
// 
// Path: dragonite-sdk/src/main/java/com/vecsight/dragonite/sdk/exception/SenderClosedException.java
// public class SenderClosedException extends DragoniteException {
// 
//     public SenderClosedException() {
//         super("Sender closed");
//     }
// 
//     public SenderClosedException(final String msg) {
//         super(msg);
//     }
// 
// }


// Path: dragonite-sdk/src/main/java/com/vecsight/dragonite/sdk/socket/DragoniteSocket.java
import com.vecsight.dragonite.sdk.exception.ConnectionNotAliveException;
import com.vecsight.dragonite.sdk.exception.IncorrectSizeException;
import com.vecsight.dragonite.sdk.exception.SenderClosedException;
import java.io.IOException;
import java.net.SocketAddress;

/*
 * The Dragonite Project
 * -------------------------
 * See the LICENSE file in the root directory for license information.
 */


package com.vecsight.dragonite.sdk.socket;



public abstract class DragoniteSocket {

    public abstract byte[] read() throws InterruptedException, ConnectionNotAliveException;

    public abstract void send(byte[] bytes) throws InterruptedException, IncorrectSizeException, IOException, SenderClosedException;