Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Unified Diff: goopdate/google_update3.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « goopdate/google_update.cc ('k') | goopdate/google_update_idl_ps.def » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: goopdate/google_update3.h
diff --git a/goopdate/google_update3.h b/goopdate/google_update3.h
deleted file mode 100644
index 20a43d1f7e041d01a11929a7a4d7cf181c7b3e20..0000000000000000000000000000000000000000
--- a/goopdate/google_update3.h
+++ /dev/null
@@ -1,244 +0,0 @@
-// Copyright 2009-2010 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// ========================================================================
-
-#ifndef OMAHA_GOOPDATE_GOOGLE_UPDATE3_H_
-#define OMAHA_GOOPDATE_GOOGLE_UPDATE3_H_
-
-#include <atlbase.h>
-#include <atlcom.h>
-#include <atlstr.h>
-#include <vector>
-#include "goopdate/omaha3_idl.h"
-#include "base/scoped_ptr.h"
-#include "omaha/base/atlregmapex.h"
-#include "omaha/base/constants.h"
-#include "omaha/base/error.h"
-#include "omaha/base/exception_barrier.h"
-#include "omaha/base/preprocessor_fun.h"
-#include "omaha/base/user_rights.h"
-#include "omaha/base/utils.h"
-#include "omaha/common/goopdate_utils.h"
-#include "omaha/goopdate/com_proxy.h"
-#include "omaha/goopdate/model.h"
-#include "omaha/goopdate/non_localized_resource.h"
-#include "omaha/goopdate/worker.h"
-#include "third_party/bar/shared_ptr.h"
-
-namespace omaha {
-
-// The ATL Singleton Class Factory does not work very well if errors happen in
-// CreateInstance(), the server continues running. This is because the module
-// count is not incremented or decremented. This class fixes the issue so that
-// on error, the server shuts down as expected.
-template <class T>
-class SingletonClassFactory : public CComClassFactorySingleton<T> {
- public:
- SingletonClassFactory() {}
- virtual ~SingletonClassFactory() {}
-
- STDMETHOD(CreateInstance)(LPUNKNOWN unk, REFIID iid, void** obj) {
- HRESULT hr = CComClassFactorySingleton<T>::CreateInstance(unk, iid, obj);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[SingletonClassFactory::CreateInstance failed][0x%x]")
- _T("[pulsing module count]"), hr));
- LockServer(TRUE);
- LockServer(FALSE);
-
- return hr;
- }
-
- return hr;
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(SingletonClassFactory);
-};
-
-template <bool machine, const TCHAR* const progid, const GUID& clsid,
- UINT registry_resid, const TCHAR* const hkroot>
-struct Update3COMClassMode {
- static bool is_machine() { return machine; }
- static const TCHAR* const prog_id() { return progid; }
- static GUID class_id() { return clsid; }
- static UINT registry_res_id() { return registry_resid; }
- static const TCHAR* const hk_root() { return hkroot; }
-};
-
-#pragma warning(push)
-// C4640: construction of local static object is not thread-safe
-#pragma warning(disable : 4640)
-// C4505: unreferenced IUnknown local functions have been removed
-#pragma warning(disable : 4505)
-
-template <typename T>
-class ATL_NO_VTABLE Update3COMClass
- : public CComObjectRootEx<CComObjectThreadModel>,
- public CComCoClass<Update3COMClass<T> >,
- public IDispatchImpl<IGoogleUpdate3,
- &__uuidof(IGoogleUpdate3),
- &CAtlModule::m_libid,
- kMajorTypeLibVersion,
- kMinorTypeLibVersion>,
- public StdMarshalInfo {
- public:
- typedef Update3COMClass<T> Update3COMClassT;
- typedef SingletonClassFactory<Update3COMClassT> SingletonClassFactoryT;
-
- Update3COMClass() : StdMarshalInfo(T::is_machine()), model_(NULL) {}
- virtual ~Update3COMClass() {}
-
- DECLARE_CLASSFACTORY_EX(SingletonClassFactoryT)
- DECLARE_NOT_AGGREGATABLE(Update3COMClassT)
- DECLARE_PROTECT_FINAL_CONSTRUCT()
-
- DECLARE_REGISTRY_RESOURCEID_EX(T::registry_res_id())
-
- BEGIN_REGISTRY_MAP()
- REGMAP_ENTRY(_T("HKROOT"), T::hk_root())
- REGMAP_EXE_MODULE(_T("MODULE"))
- REGMAP_ENTRY(_T("VERSION"), _T("1.0"))
- REGMAP_ENTRY(_T("PROGID"), T::prog_id())
- REGMAP_ENTRY(_T("DESCRIPTION"), _T("Update3COMClass"))
- REGMAP_UUID(_T("CLSID"), T::class_id())
- END_REGISTRY_MAP()
-
- BEGIN_COM_MAP(Update3COMClassT)
- COM_INTERFACE_ENTRY(IGoogleUpdate3)
- COM_INTERFACE_ENTRY(IDispatch)
- COM_INTERFACE_ENTRY(IStdMarshalInfo)
- END_COM_MAP()
-
- STDMETHODIMP get_Count(long* count) { // NOLINT
- ASSERT1(count);
- ExceptionBarrier barrier;
-
- __mutexScope(model()->lock());
- *count = model()->GetNumberOfAppBundles();
-
- return S_OK;
- }
-
- STDMETHODIMP get_Item(long index, IDispatch** app_bundle_wrapper) { // NOLINT
- ASSERT1(app_bundle_wrapper);
- ExceptionBarrier barrier;
-
- if (::IsUserAnAdmin() && !UserRights::VerifyCallerIsAdmin()) {
- CORE_LOG(LE, (_T("[User is not an admin]")));
- return E_ACCESSDENIED;
- }
-
- __mutexScope(model()->lock());
-
- const size_t num_app_bundles(model()->GetNumberOfAppBundles());
- if (index < 0 || static_cast<size_t>(index) >= num_app_bundles) {
- return HRESULT_FROM_WIN32(ERROR_INVALID_INDEX);
- }
- shared_ptr<AppBundle> app_bundle(model()->GetAppBundle(index));
- return AppBundleWrapper::Create(app_bundle->controlling_ptr(),
- app_bundle.get(),
- app_bundle_wrapper);
- }
-
- // Creates an AppBundle object and its corresponding COM wrapper.
- STDMETHODIMP createAppBundle(IDispatch** app_bundle_wrapper) {
- ASSERT1(app_bundle_wrapper);
- ExceptionBarrier barrier;
-
- __mutexScope(model()->lock());
-
- shared_ptr<AppBundle> app_bundle(model()->CreateAppBundle(T::is_machine()));
- return AppBundleWrapper::Create(app_bundle->controlling_ptr(),
- app_bundle.get(),
- app_bundle_wrapper);
- }
-
- HRESULT FinalConstruct() {
- CORE_LOG(L2, (_T("[Update3COMClass::FinalConstruct]")));
-
- HRESULT hr = InitializeWorker();
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[InitializeWorker failed][0x%x]"), hr));
- return hr;
- }
-
- omaha::interlocked_exchange_pointer(&model_, Worker::Instance().model());
- ASSERT1(model());
-
- return S_OK;
- }
-
- void FinalRelease() {
- CORE_LOG(L2, (_T("[Update3COMClass::FinalRelease]")));
- }
-
- private:
- static HRESULT InitializeWorker() {
- static LLock lock;
- static bool is_initialized = false;
-
- __mutexScope(lock);
-
- if (is_initialized) {
- return S_OK;
- }
-
- CORE_LOG(L2, (_T("[InitializeWorker][%d]"), T::is_machine()));
-
- HRESULT hr = Worker::Instance().Initialize(T::is_machine());
- if (FAILED(hr)) {
- return hr;
- }
-
- is_initialized = true;
- return S_OK;
- }
-
- Model* model() {
- return omaha::interlocked_exchange_pointer(&model_, model_);
- }
-
- // C++ root of the object model. Not owned by this instance.
- mutable Model* volatile model_;
-
- DISALLOW_COPY_AND_ASSIGN(Update3COMClass);
-};
-
-#pragma warning(pop)
-
-extern TCHAR kHKRootUser[];
-extern TCHAR kHKRootMachine[];
-extern TCHAR kHKRootService[];
-extern TCHAR kProgIDUpdate3COMClassUserLocal[];
-extern TCHAR kProgIDUpdate3COMClassMachineLocal[];
-extern TCHAR kProgIDUpdate3COMClassServiceLocal[];
-
-typedef Update3COMClassMode<false,
- kProgIDUpdate3COMClassUserLocal,
- __uuidof(GoogleUpdate3UserClass),
- IDR_LOCAL_SERVER_RGS,
- kHKRootUser> Update3COMClassModeUser;
-
-typedef Update3COMClassMode<true,
- kProgIDUpdate3COMClassServiceLocal,
- __uuidof(GoogleUpdate3ServiceClass),
- IDR_LOCAL_SERVICE_RGS,
- kHKRootService> Update3COMClassModeService;
-
-typedef Update3COMClass<Update3COMClassModeUser> Update3COMClassUser;
-typedef Update3COMClass<Update3COMClassModeService> Update3COMClassService;
-
-} // namespace omaha
-
-#endif // OMAHA_GOOPDATE_GOOGLE_UPDATE3_H_
« no previous file with comments | « goopdate/google_update.cc ('k') | goopdate/google_update_idl_ps.def » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698