В настоящее время я пишу приложение с использованием Vala, которое требует от меня отправлять данные по сети. Чтобы помочь в создании пакетов (и обновлении протокола в более поздние даты), я создал структуры, которые я передаю методу как void *. Эти структуры представляют, как устроен пакет, и позволяют мне очень легко создавать пакет для отправки, не слишком много путаться. Проблема с этим, однако, заключается в том, что оболочка Vala для GLib.OutputStream.write() не принимает счет (хотя исходный метод делает). Vala принимает размер uint8 [], переданный ему, и предоставляет это оригинальному методу. Есть ли простой способ обойти это, без редактирования GIO vapi? Возможно, очень дешевый способ лить void * в uint8 [] при поставке размера? Я нацелен на очень высокую производительность здесь, так как приложение будет необходимо поддерживать тысячи подключений одновременно. Заранее благодарю за любую помощь.Запись количества байтов в GLib.OutputStream в Vala
~ Майкл
Спасибо :) Я попробую. Однако нет способа сделать все это через Валу? Я имею в виду, я не возражаю против использования заголовка, так как на самом деле я действительно использую этот код. Мне просто интересно, можно ли это сделать без необходимости кода C :) –