Lines Matching refs:conn
147 _fs_fill (FSFpePtr conn)
153 if (_fs_flush (conn) < 0)
159 while ((conn->inNeed - (conn->inBuf.insert - conn->inBuf.remove)) > 0)
161 avail = conn->inBuf.size - conn->inBuf.insert;
168 bytes_read =_FontTransRead(conn->trans_conn,
169 conn->inBuf.buf + conn->inBuf.insert,
172 conn->inBuf.insert += bytes_read;
182 if (_fs_wait_for_readable (conn, 0) == FSIO_BLOCK)
189 _fs_connection_died (conn);
202 _fs_start_read (FSFpePtr conn, long size, char **buf)
206 conn->inNeed = size;
207 if (fs_inqueued(conn) < size)
209 if (_fs_resize (&conn->inBuf, size) != FSIO_READY)
211 _fs_connection_died (conn);
214 ret = _fs_fill (conn);
217 if (ret == FSIO_BLOCK || fs_inqueued(conn) < size)
221 *buf = conn->inBuf.buf + conn->inBuf.remove;
226 _fs_done_read (FSFpePtr conn, long size)
228 if (conn->inBuf.insert - conn->inBuf.remove < size)
235 conn->inBuf.remove += size;
236 conn->inNeed -= size;
237 _fs_downsize (&conn->inBuf, FS_BUF_MAX);
247 _fs_flush (FSFpePtr conn)
254 if (conn->fs_fd < 0)
257 while ((remain = conn->outBuf.insert - conn->outBuf.remove) > 0)
259 bytes_written = _FontTransWrite(conn->trans_conn,
260 conn->outBuf.buf + conn->outBuf.remove,
264 conn->outBuf.remove += bytes_written;
270 conn->brokenWriteTime = GetTimeInMillis () + FS_FLUSH_POLL;
271 _fs_mark_block (conn, FS_BROKEN_WRITE);
276 _fs_connection_died (conn);
281 if (conn->outBuf.remove == conn->outBuf.insert)
283 _fs_unmark_block (conn, FS_BROKEN_WRITE|FS_PENDING_WRITE);
284 if (conn->outBuf.size > FS_BUF_INC)
285 conn->outBuf.buf = realloc (conn->outBuf.buf, FS_BUF_INC);
286 conn->outBuf.remove = conn->outBuf.insert = 0;
335 _fs_io_reinit (FSFpePtr conn)
337 conn->outBuf.insert = conn->outBuf.remove = 0;
338 _fs_downsize (&conn->outBuf, FS_BUF_INC);
339 conn->inBuf.insert = conn->inBuf.remove = 0;
340 _fs_downsize (&conn->inBuf, FS_BUF_MAX);
344 _fs_io_init (FSFpePtr conn)
346 conn->outBuf.insert = conn->outBuf.remove = 0;
347 conn->outBuf.buf = malloc (FS_BUF_INC);
348 if (!conn->outBuf.buf)
350 conn->outBuf.size = FS_BUF_INC;
352 conn->inBuf.insert = conn->inBuf.remove = 0;
353 conn->inBuf.buf = malloc (FS_BUF_INC);
354 if (!conn->inBuf.buf)
356 free (conn->outBuf.buf);
357 conn->outBuf.buf = 0;
360 conn->inBuf.size = FS_BUF_INC;
366 _fs_io_fini (FSFpePtr conn)
368 if (conn->outBuf.buf)
369 free (conn->outBuf.buf);
370 if (conn->inBuf.buf)
371 free (conn->inBuf.buf);
375 _fs_do_write(FSFpePtr conn, const char *data, long len, long size)
384 if (conn->fs_fd == -1)
387 while (conn->outBuf.insert + size > conn->outBuf.size)
389 if (_fs_flush (conn) < 0)
391 if (_fs_resize (&conn->outBuf, size) < 0)
393 _fs_connection_died (conn);
397 memcpy (conn->outBuf.buf + conn->outBuf.insert, data, len);
399 memset (conn->outBuf.buf + conn->outBuf.insert + len, 0, size - len);
400 conn->outBuf.insert += size;
401 _fs_mark_block (conn, FS_PENDING_WRITE);
409 _fs_write (FSFpePtr conn, const char *data, long len)
411 return _fs_do_write (conn, data, len, len);
418 _fs_write_pad(FSFpePtr conn, const char *data, long len)
420 return _fs_do_write (conn, data, len, len + padlength[len & 3]);
424 _fs_wait_for_readable(FSFpePtr conn, int ms)
432 if (conn->fs_fd < 0)
438 FD_SET(conn->fs_fd, &r_mask);
439 FD_SET(conn->fs_fd, &e_mask);
440 result = Select(conn->fs_fd + 1, &r_mask, NULL, &e_mask, &tv);
450 if (FD_ISSET(conn->fs_fd, &r_mask))