История изменений
Исправление Sadler, (текущая версия) :
Делись :)
Не, сначала либа должна достаточно вырасти, а то мало кому будет интересна. Сейчас она умеет только:
- bind-ить midi-out в 2 строки и играть на него.
- multithreaded TCP server в 3 строки + 1 класс.
- классы для нот, аккордов, тональностей.
- класс GameWindow для создания окна с Canvas, двойной буферизацией и всеми необходимыми listener'ами в несколько строк.
- несколько простых классов для алгоритмов, вроде поиска максимального объекта.
- static-класс Console для удобного чтения консольного ввода (содержит поля in, out, err).
- static-класс Logger с функцией log(Exception e) выводящей дефолтовый лог об исключении. Думаю, надо перекинуть в Console.
- WaveFile, умеющий читать и писать wave-файлы как множество float (этот класс не мой, просто очень понравился).
Так выглядит абстрактный кусок public-api сервера, например:
public abstract class TCPServer { public abstract TCPServerConnection onConnecting(Socket socket); public abstract void onConnected(TCPServerConnection connection); public abstract void onData(TCPServerConnection connection); public abstract void onDisconnect(TCPServerConnection connection); public abstract void onError(Exception e); public abstract boolean onStop(); }
Исключения не throw-аются, а передаются как результат функций, либо в специальную функцию onError (для сервера). Вызвано тем, что метод намного более компактный, нежели классический.
Исходная версия Sadler, :
Делись :)
Не, сначала либа должна достаточно вырасти, а то мало кому будет интересна. Сейчас она умеет только:
- bind-ить midi-out в 2 строки и играть на него.
- multithreaded TCP server в 3 строки + 1 класс.
- классы для нот, аккордов, тональностей.
- класс GameWindow для создания окна с Canvas, двойной буферизацией и всеми необходимыми listener'ами в несколько строк.
- несколько простых классов для алгоритмов, вроде поиска максимального объекта.
- static-класс Console для удобного чтения консольного ввода (содержит поля in, out, err).
- static-класс Logger с функцией log(Exception e) выводящей дефолтовый лог об исключении. Думаю, надо перекинуть в Console.
- WaveFile, умеющий читать и писать wave-файлы как множество float (этот класс не мой, просто очень понравился).
Так выглядит public-api сервера, например:
public abstract class TCPServer { public abstract TCPServerConnection onConnecting(Socket socket); public abstract void onConnected(TCPServerConnection connection); public abstract void onData(TCPServerConnection connection); public abstract void onDisconnect(TCPServerConnection connection); public abstract void onError(Exception e); public abstract boolean onStop(); }
Исключения не throw-аются, а передаются как результат функций, либо в специальную функцию onError (для сервера). Вызвано тем, что метод намного более компактный, нежели классический.