Lines Matching refs:conn
143 _fs_fill (FSFpePtr conn)
149 if (_fs_flush (conn) < 0)
155 while ((conn->inNeed - (conn->inBuf.insert - conn->inBuf.remove)) > 0)
157 avail = conn->inBuf.size - conn->inBuf.insert;
164 bytes_read =_FontTransRead(conn->trans_conn,
165 conn->inBuf.buf + conn->inBuf.insert,
168 conn->inBuf.insert += bytes_read;
178 if (_fs_wait_for_readable (conn, 0) == FSIO_BLOCK)
185 _fs_connection_died (conn);
198 _fs_start_read (FSFpePtr conn, long size, char **buf)
202 conn->inNeed = size;
203 if (fs_inqueued(conn) < size)
205 if (_fs_resize (&conn->inBuf, size) != FSIO_READY)
207 _fs_connection_died (conn);
210 ret = _fs_fill (conn);
213 if (ret == FSIO_BLOCK || fs_inqueued(conn) < size)
217 *buf = conn->inBuf.buf + conn->inBuf.remove;
222 _fs_done_read (FSFpePtr conn, long size)
224 if (conn->inBuf.insert - conn->inBuf.remove < size)
231 conn->inBuf.remove += size;
232 conn->inNeed -= size;
233 _fs_downsize (&conn->inBuf, FS_BUF_MAX);
243 _fs_flush (FSFpePtr conn)
250 if (conn->fs_fd < 0)
253 while ((remain = conn->outBuf.insert - conn->outBuf.remove) > 0)
255 bytes_written = _FontTransWrite(conn->trans_conn,
256 conn->outBuf.buf + conn->outBuf.remove,
260 conn->outBuf.remove += bytes_written;
266 conn->brokenWriteTime = GetTimeInMillis () + FS_FLUSH_POLL;
267 _fs_mark_block (conn, FS_BROKEN_WRITE);
272 _fs_connection_died (conn);
277 if (conn->outBuf.remove == conn->outBuf.insert)
279 _fs_unmark_block (conn, FS_BROKEN_WRITE|FS_PENDING_WRITE);
280 if (conn->outBuf.size > FS_BUF_INC)
281 conn->outBuf.buf = realloc (conn->outBuf.buf, FS_BUF_INC);
282 conn->outBuf.remove = conn->outBuf.insert = 0;
331 _fs_io_reinit (FSFpePtr conn)
333 conn->outBuf.insert = conn->outBuf.remove = 0;
334 _fs_downsize (&conn->outBuf, FS_BUF_INC);
335 conn->inBuf.insert = conn->inBuf.remove = 0;
336 _fs_downsize (&conn->inBuf, FS_BUF_MAX);
340 _fs_io_init (FSFpePtr conn)
342 conn->outBuf.insert = conn->outBuf.remove = 0;
343 conn->outBuf.buf = malloc (FS_BUF_INC);
344 if (!conn->outBuf.buf)
346 conn->outBuf.size = FS_BUF_INC;
348 conn->inBuf.insert = conn->inBuf.remove = 0;
349 conn->inBuf.buf = malloc (FS_BUF_INC);
350 if (!conn->inBuf.buf)
352 free (conn->outBuf.buf);
353 conn->outBuf.buf = 0;
356 conn->inBuf.size = FS_BUF_INC;
362 _fs_io_fini (FSFpePtr conn)
364 if (conn->outBuf.buf)
365 free (conn->outBuf.buf);
366 if (conn->inBuf.buf)
367 free (conn->inBuf.buf);
371 _fs_do_write(FSFpePtr conn, const char *data, long len, long size)
380 if (conn->fs_fd == -1)
383 while (conn->outBuf.insert + size > conn->outBuf.size)
385 if (_fs_flush (conn) < 0)
387 if (_fs_resize (&conn->outBuf, size) < 0)
389 _fs_connection_died (conn);
393 memcpy (conn->outBuf.buf + conn->outBuf.insert, data, len);
395 memset (conn->outBuf.buf + conn->outBuf.insert + len, 0, size - len);
396 conn->outBuf.insert += size;
397 _fs_mark_block (conn, FS_PENDING_WRITE);
405 _fs_write (FSFpePtr conn, const char *data, long len)
407 return _fs_do_write (conn, data, len, len);
414 _fs_write_pad(FSFpePtr conn, const char *data, long len)
416 return _fs_do_write (conn, data, len, len + padlength[len & 3]);
420 _fs_wait_for_readable(FSFpePtr conn, int ms)
428 if (conn->fs_fd < 0)
434 FD_SET(conn->fs_fd, &r_mask);
435 FD_SET(conn->fs_fd, &e_mask);
436 result = Select(conn->fs_fd + 1, &r_mask, NULL, &e_mask, &tv);
446 if (FD_ISSET(conn->fs_fd, &r_mask))