ReactOS  0.4.14-dev-342-gdc047f9
rpc_server.h
Go to the documentation of this file.
1 /*
2  * RPC server API
3  *
4  * Copyright 2001 Ove K√•ven, TransGaming Technologies
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 #ifndef __WINE_RPC_SERVER_H
22 #define __WINE_RPC_SERVER_H
23 
24 #include "rpc_binding.h"
25 #include "wine/list.h"
26 
27 struct protseq_ops;
28 
29 typedef struct _RpcServerProtseq
30 {
31  const struct protseq_ops *ops; /* RO */
32  struct list entry; /* CS ::server_cs */
33  LPSTR Protseq; /* RO */
34  UINT MaxCalls; /* RO */
35  /* list of listening connections */
36  struct list listeners; /* CS cs */
37  struct list connections; /* CS cs */
39 
40  /* handle to listening thread */
41  HANDLE server_thread; /* CS ::listen_cs */
42  /* mutex for ensuring only one thread can change state at a time */
44  /* set when server thread has finished opening connections */
47 
49 {
50  const char *name;
51  RpcServerProtseq *(*alloc)(void);
53  /* previous array is passed in to allow reuse of memory */
54  void *(*get_wait_array)(RpcServerProtseq *protseq, void *prev_array, unsigned int *count);
56  /* returns -1 for failure, 0 for server state changed and 1 to indicate a
57  * new connection was established */
58  int (*wait_for_new_connection)(RpcServerProtseq *protseq, unsigned int count, void *wait_array);
59  /* opens the endpoint and optionally begins listening */
61 };
62 
63 typedef struct _RpcServerInterface
64 {
65  struct list entry;
73  LONG CurrentCalls; /* number of calls currently executing */
74  /* set when unregistering interface to let the caller of
75  * RpcServerUnregisterIf* know that all calls have finished */
77  BOOL Delete; /* delete when the last call finishes */
79 
81 const struct protseq_ops *rpcrt4_get_protseq_ops(const char *protseq) DECLSPEC_HIDDEN;
82 
85 
86 #endif /* __WINE_RPC_SERVER_H */
RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN(RPC_IF_HANDLE InterfaceUuid, void *Context)
Definition: rpcdce.h:211
HANDLE server_ready_event
Definition: rpc_server.h:45
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
int(* wait_for_new_connection)(RpcServerProtseq *protseq, unsigned int count, void *wait_array)
Definition: rpc_server.h:58
struct list listeners
Definition: rpc_server.h:36
struct _RpcServerInterface RpcServerInterface
GLuint GLuint GLsizei count
Definition: gl.h:1545
struct list entry
Definition: rpc_server.h:32
char * LPSTR
Definition: xmlstorage.h:182
const char * name
Definition: rpc_server.h:50
long RPC_STATUS
Definition: rpc.h:52
const struct protseq_ops * rpcrt4_get_protseq_ops(const char *protseq) DECLSPEC_HIDDEN
HANDLE CallsCompletedEvent
Definition: rpc_server.h:76
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
const struct protseq_ops * ops
Definition: rpc_server.h:31
RPC_IF_CALLBACK_FN * IfCallbackFn
Definition: rpc_server.h:72
struct list connections
Definition: rpc_server.h:37
void(* free_wait_array)(RpcServerProtseq *protseq, void *array)
Definition: rpc_server.h:55
CRITICAL_SECTION cs
Definition: rpc_server.h:38
RPC_MGR_EPV * MgrEpv
Definition: rpc_server.h:68
struct list entry
Definition: rpc_server.h:65
struct endpoint endpoint
Definition: nis.h:15
void(* signal_state_changed)(RpcServerProtseq *protseq)
Definition: rpc_server.h:52
HANDLE server_thread
Definition: rpc_server.h:41
void RPCRT4_destroy_all_protseqs(void) DECLSPEC_HIDDEN
Definition: rpc_server.c:1101
void RPCRT4_ServerFreeAllRegisteredAuthInfo(void) DECLSPEC_HIDDEN
Definition: rpc_server.c:1403
Definition: _list.h:228
RPC_SERVER_INTERFACE * If
Definition: rpc_server.h:66
RPC_STATUS(* open_endpoint)(RpcServerProtseq *protseq, const char *endpoint)
Definition: rpc_server.h:60
#define DECLSPEC_HIDDEN
Definition: precomp.h:8
unsigned int UINT
Definition: ndis.h:50
void RPCRT4_new_client(RpcConnection *conn) DECLSPEC_HIDDEN
Definition: rpc_server.c:628
#define RPC_MGR_EPV
Definition: rpcdce.h:53
struct _RpcServerProtseq RpcServerProtseq
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum GLdouble GLenum GLint GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLenum GLfloat GLenum GLfloat GLenum GLushort const GLubyte GLenum GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLvoid GLenum GLenum GLint GLenum GLint GLenum GLint GLuint GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble const GLfloat GLenum const GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLint GLint GLsizei GLsizei GLenum GLuint GLenum array
Definition: glfuncs.h:320
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31