]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
nd2: simplify ND provider creation
authorSean Hefty <sean.hefty@intel.com>
Wed, 28 Jul 2010 17:22:00 +0000 (17:22 +0000)
committerSean Hefty <sean.hefty@intel.com>
Wed, 28 Jul 2010 17:22:00 +0000 (17:22 +0000)
Remove the CNDClassFactory implementation and instead create
ND provider objects directly in DllGetClassObject().

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2863 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/ulp/netdirect2/user/nd_main.cpp
trunk/ulp/netdirect2/user/nd_provider.cpp
trunk/ulp/netdirect2/user/nd_provider.h

index 1b9e04982f05c9eb05304d8d0fd6ae3ca3abc1d1..e995d608aa919f9377eb9e7a655c8f251d27b56a 100644 (file)
@@ -72,17 +72,12 @@ STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppv)
 {\r
        UNREFERENCED_PARAMETER(rclsid);\r
 \r
-       if (riid != IID_IClassFactory) {\r
+       if (riid != IID_INDProvider) {\r
                *ppv = NULL;\r
                return E_NOINTERFACE;\r
        }\r
 \r
-       *ppv = new CNDClassFactory();\r
-       if (*ppv == NULL) {\r
-               return E_OUTOFMEMORY;\r
-       }\r
-\r
-       return S_OK;\r
+       return CNDProvider::CreateInstance(ppv);\r
 }\r
 \r
 int WSPStartup(WORD wVersionRequested, LPWSPDATA lpWSPData,\r
index cbc9c22d2c56a40e2dff3dbac54f00e8f55c8310..37362f70bb422d101687558d5379428811ea73dd 100644 (file)
@@ -1,5 +1,6 @@
 /*\r
  * Copyright (c) 2009-2010 Intel Corporation. All rights reserved.\r
+ * Copyright (c) 2010 Microsoft Corporation.  All rights reserved.\r
  *\r
  * This software is available to you under the OpenIB.org BSD license\r
  * below:\r
@@ -64,7 +65,7 @@ CNDProvider::~CNDProvider()
        if (m_pWvProvider) {\r
                m_pWvProvider->Release();\r
        }\r
-       InterlockedDecrement(&m_gRef);\r
+       InterlockedDecrement(&g_nRef);\r
 }\r
 \r
 STDMETHODIMP CNDProvider::\r
@@ -176,55 +177,3 @@ OpenAdapter(REFIID iid, UINT64 adapterId, VOID** ppAdapter)
 \r
        return CNDAdapter::CreateInstance(this, adapterId, ppAdapter);\r
 }\r
-\r
-\r
-//-------------------------\r
-// CNDClassFactory routines\r
-//-------------------------\r
-\r
-STDMETHODIMP CNDClassFactory::\r
-QueryInterface(REFIID riid, LPVOID FAR* ppvObj)\r
-{\r
-       if (riid != IID_IUnknown && riid != IID_IClassFactory) {\r
-               *ppvObj = NULL;\r
-               return E_NOINTERFACE;\r
-       }\r
-\r
-       *ppvObj = this;\r
-       AddRef();\r
-       return ND_SUCCESS;\r
-}\r
-\r
-STDMETHODIMP_(ULONG) CNDClassFactory::\r
-AddRef(void)\r
-{\r
-       return CNDBase::AddRef();\r
-}\r
-\r
-STDMETHODIMP_(ULONG) CNDClassFactory::\r
-Release(void)\r
-{\r
-       return CNDBase::Release();\r
-}\r
-\r
-STDMETHODIMP CNDClassFactory::\r
-CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppObject)\r
-{\r
-       if (pUnkOuter != NULL) {\r
-               return CLASS_E_NOAGGREGATION;\r
-       }\r
-\r
-       if (riid != IID_INDProvider) {\r
-               *ppObject = NULL;\r
-               return E_NOINTERFACE;\r
-       }\r
-\r
-       return CNDProvider::CreateInstance((CNDProvider **) ppObject);\r
-}\r
-\r
-STDMETHODIMP CNDClassFactory::\r
-LockServer(BOOL fLock)\r
-{\r
-       UNREFERENCED_PARAMETER(fLock);\r
-       return S_OK;\r
-}\r
index 0c38d8e54a931605a3f535e51a5974ff75aecb36..10d390084040be87efd3f3212178751a17bb1a30 100644 (file)
@@ -1,5 +1,6 @@
 /*\r
  * Copyright (c) 2009-2010 Intel Corporation. All rights reserved.\r
+ * Copyright (c) 2010 Microsoft Corporation.  All rights reserved.\r
  *\r
  * This software is available to you under the OpenIB.org BSD license\r
  * below:\r
@@ -56,7 +57,7 @@ public:
 \r
        void Delete() {delete this;}\r
        static STDMETHODIMP\r
-       CreateInstance(CNDProvider **ppProvider)\r
+       CreateInstance(VOID** ppProvider)\r
        {\r
                HRESULT hr;\r
                CNDProvider *provider;\r
@@ -90,22 +91,4 @@ private:
        STDMETHODIMP Init();\r
 };\r
 \r
-\r
-class CNDClassFactory : public IClassFactory, public CNDBase\r
-{\r
-public:\r
-       // IUnknown methods\r
-       STDMETHODIMP QueryInterface(REFIID riid, LPVOID FAR* ppvObj);\r
-       STDMETHODIMP_(ULONG) AddRef();\r
-       STDMETHODIMP_(ULONG) Release();\r
-\r
-       // IClassFactory methods\r
-       STDMETHODIMP CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppObject);\r
-       STDMETHODIMP LockServer(BOOL fLock);\r
-\r
-       CNDClassFactory() {};\r
-       ~CNDClassFactory() {};\r
-       void Delete() {delete this;}\r
-};\r
-\r
 #endif // _ND_PROVIDER_H_
\ No newline at end of file