static void infinoted_plugin_document_stream_chat_add_message( InfinotedPluginDocumentStreamStream* stream, const gchar* message, gsize len) { g_assert(stream->user != NULL); inf_signal_handlers_block_by_func( G_OBJECT(stream->buffer), G_CALLBACK(infinoted_plugin_document_stream_chat_add_message_cb), stream ); inf_chat_buffer_add_message( INF_CHAT_BUFFER(stream->buffer), stream->user, message, len, time(NULL), 0 ); inf_signal_handlers_unblock_by_func( G_OBJECT(stream->buffer), G_CALLBACK(infinoted_plugin_document_stream_chat_add_message_cb), stream ); }
static void inf_test_chat_input_cb(InfNativeSocket* fd, InfIoEvent io, gpointer user_data) { InfTestChat* test; char buffer[1024]; test = (InfTestChat*)user_data; if(io & INF_IO_ERROR) { } if(io & INF_IO_INCOMING) { if(fgets(buffer, sizeof(buffer), stdin) == NULL) { inf_standalone_io_loop_quit(test->io); } else if(strlen(buffer) != sizeof(buffer) || buffer[sizeof(buffer)-2] == '\n') { buffer[strlen(buffer)-1] = '\0'; if(test->buffer != NULL && test->self != NULL) { inf_chat_buffer_add_message( test->buffer, test->self, buffer, strlen(buffer), time(NULL), 0 ); } } } }