Remove stale HPC Pack 2008 Beta 1 objects
[mirror/winof/.git] / ulp / nd / user / NdListen.h
1 /*\r
2  * Copyright (c) 2008 Microsoft Corporation.  All rights reserved.\r
3  *\r
4  * This software is available to you under the OpenIB.org BSD license\r
5  * below:\r
6  *\r
7  *     Redistribution and use in source and binary forms, with or\r
8  *     without modification, are permitted provided that the following\r
9  *     conditions are met:\r
10  *\r
11  *      - Redistributions of source code must retain the above\r
12  *        copyright notice, this list of conditions and the following\r
13  *        disclaimer.\r
14  *\r
15  *      - Redistributions in binary form must reproduce the above\r
16  *        copyright notice, this list of conditions and the following\r
17  *        disclaimer in the documentation and/or other materials\r
18  *        provided with the distribution.\r
19  *\r
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
21  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
22  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
23  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
24  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
25  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
26  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
27  * SOFTWARE.\r
28  *\r
29  * $Id:$\r
30  */\r
31 \r
32 #pragma once\r
33 #include "ndspi.h"\r
34 #include <iba/ib_al.h>\r
35 \r
36 \r
37 namespace NetworkDirect\r
38 {\r
39 \r
40 HRESULT GetPdataForPassive(\r
41     __in UINT8* pSrc,\r
42     __in SIZE_T SrcLength,\r
43     __out_bcount_part_opt(*pPrivateDataLength, *pPrivateDataLength) void* pPrivateData,\r
44     __inout SIZE_T* pPrivateDataLength\r
45     );\r
46 \r
47 HRESULT GetPdataForActive(\r
48     __in UINT8* pSrc,\r
49     __in SIZE_T SrcLength,\r
50     __out_bcount_part_opt(*pPrivateDataLength, *pPrivateDataLength) void* pPrivateData,\r
51     __inout SIZE_T* pPrivateDataLength\r
52     );\r
53 \r
54 class CAdapter;\r
55 \r
56 class CListen :\r
57     public INDListen\r
58 {\r
59 private:\r
60     CListen(void);\r
61     ~CListen(void);\r
62 \r
63     HRESULT Initialize(\r
64         __in CAdapter* pParent,\r
65         __in SIZE_T Backlog,\r
66         __in INT Protocol,\r
67         __in USHORT Port,\r
68         __out_opt USHORT* pAssignedPort\r
69         );\r
70 \r
71 public:\r
72     static HRESULT Create(\r
73         __in CAdapter* pParent,\r
74         __in SIZE_T Backlog,\r
75         __in INT Protocol,\r
76         __in USHORT Port,\r
77         __out_opt USHORT* pAssignedPort,\r
78         __deref_out INDListen** ppListen\r
79         );\r
80 \r
81     // *** IUnknown methods ***\r
82     HRESULT STDMETHODCALLTYPE QueryInterface(\r
83         REFIID riid,\r
84         LPVOID FAR* ppvObj\r
85         );\r
86 \r
87     ULONG STDMETHODCALLTYPE AddRef(void);\r
88 \r
89     ULONG STDMETHODCALLTYPE Release(void);\r
90 \r
91     // *** INDOverlapped methods ***\r
92     HRESULT STDMETHODCALLTYPE CancelOverlappedRequests(void);\r
93 \r
94     HRESULT STDMETHODCALLTYPE GetOverlappedResult(\r
95         __inout OVERLAPPED *pOverlapped,\r
96         __out SIZE_T *pNumberOfBytesTransferred,\r
97         __in BOOL bWait\r
98         );\r
99 \r
100     // *** INDListen methods ***\r
101     HRESULT STDMETHODCALLTYPE GetConnectionRequest(\r
102         __inout INDConnector* pConnector,\r
103         __inout OVERLAPPED* pOverlapped\r
104         );\r
105 \r
106 private:\r
107     volatile LONG m_nRef;\r
108 \r
109     CAdapter* m_pParent;\r
110 \r
111     UINT8 m_Protocol;\r
112     net32_t m_cid;\r
113 };\r
114 \r
115 } // namespace\r