source: trunk/src/wsock32/new/asyncthread.h@ 3204

Last change on this file since 3204 was 3198, checked in by sandervl, 26 years ago

* empty log message *

File size: 1.6 KB
Line 
1/* $Id: asyncthread.h,v 1.1 2000-03-22 20:01:04 sandervl Exp $ */
2
3/*
4 * Async thread help functions
5 *
6 * Copyright 2000 Sander van Leeuwen (sandervl@xs4all.nl)
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 */
10#ifndef __ASYNCTHREAD_H__
11#define __ASYNCTHREAD_H__
12
13#include <vmutex.h>
14
15#define ASYNCCNV _Optlink
16
17typedef void (* ASYNCCNV ASYNCTHREADPROC)(void *);
18
19enum AsyncRequestType {
20 ASYNC_GETHOSTBYNAME,
21 ASYNC_GETHOSTBYADDR,
22 ASYNC_GETPROTOBYNAME,
23 ASYNC_GETPROTOBYNUMBER,
24 ASYNC_GETSERVBYNAME,
25 ASYNC_GETSERVBYPORT
26} ;
27
28typedef struct _ASYNCTHREADPARM
29{
30 BOOL fActive;
31 BOOL fCancelled;
32 AsyncRequestType request;
33 LHANDLE hAsyncTaskHandle;
34 HANDLE hThread; //handle of thread that started the async request
35 ASYNCTHREADPROC asyncProc;
36 VMutex *parmmutex;
37 HWND hwnd;
38 DWORD msg;
39 LPSTR buf;
40 DWORD buflen;
41 union {
42 struct {
43 LPSTR name;
44 } gethostbyname;
45 struct {
46 LPSTR addr;
47 int len;
48 int type;
49 } gethostbyaddr;
50 struct {
51 LPSTR name;
52 } getprotobyname;
53 struct {
54 int number;
55 } getprotobynumber;
56 struct {
57 LPSTR name;
58 LPSTR proto;
59 } getservbyname;
60 struct {
61 int port;
62 LPSTR proto;
63 } getservbyport;
64 } u;
65 _ASYNCTHREADPARM *next;
66} ASYNCTHREADPARM, *PASYNCTHREADPARM;
67
68ULONG QueueAsyncJob(ASYNCTHREADPROC asyncproc, PASYNCTHREADPARM pThreadParm);
69void RemoveFromQueue(PASYNCTHREADPARM pThreadParm);
70
71void EnableAsyncEvent(SOCKET s, ULONG flags);
72BOOL QueryAsyncEvent(SOCKET s, HWND *pHwnd, int *pMsg, ULONG *plEvent);
73
74#endif //__ASYNCTHREAD_H__
Note: See TracBrowser for help on using the repository browser.