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

Unified Diff: goopdate/app_bundle.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/app.cc ('k') | goopdate/app_bundle.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: goopdate/app_bundle.h
diff --git a/goopdate/app_bundle.h b/goopdate/app_bundle.h
deleted file mode 100644
index 82fbd7292ad53294865209dd518577ccd17ebbd3..0000000000000000000000000000000000000000
--- a/goopdate/app_bundle.h
+++ /dev/null
@@ -1,298 +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.
-// ========================================================================
-
-// Defines the AppBundle COM object exposed by the model.
-
-#ifndef OMAHA_GOOPDATE_APP_BUNDLE_H_
-#define OMAHA_GOOPDATE_APP_BUNDLE_H_
-
-#include <windows.h>
-#include <atlbase.h>
-#include <atlcom.h>
-#include <atlstr.h>
-#include <vector>
-#include "base/basictypes.h"
-#include "base/scoped_ptr.h"
-#include "goopdate/omaha3_idl.h"
-#include "omaha/base/constants.h"
-#include "omaha/base/debug.h"
-#include "omaha/base/scoped_any.h"
-#include "omaha/goopdate/com_wrapper_creator.h"
-#include "omaha/goopdate/model_object.h"
-#include "omaha/net/proxy_auth.h"
-#include "third_party/bar/shared_ptr.h"
-
-namespace omaha {
-
-// TODO(omaha): needs to figure out a smaller public interface that
-// Worker expose for the model. AppBundle needs to delegate calls to Worker,
-// such as Pause, Resume, Update, Install, etc...
-
-class App;
-class Model;
-class WebServicesClientInterface;
-class UserWorkItem;
-
-namespace fsm {
-
-class AppBundleState;
-class AppBundleStateInit;
-
-} // namespace fsm
-
-// AppBundle instances are reference-counted using shared pointers. Lifetime
-// of an AppBundle instance is controlled by both external and internal
-// outstanding references. External reference are the COM wrappers that depend
-// on the AppBundle, including its children in the object model.
-// Internal references to the AppBundle are maintained by several objects that
-// depend on the bundle objects.
-class AppBundle
- : public ModelObject,
- public enable_shared_from_this<AppBundle> {
- public:
- AppBundle(bool is_machine, Model* model);
- virtual ~AppBundle();
-
- // IAppBundle.
- STDMETHOD(get_displayName)(BSTR* display_name);
- STDMETHOD(put_displayName)(BSTR display_name);
- STDMETHOD(get_displayLanguage)(BSTR* language);
- STDMETHOD(put_displayLanguage)(BSTR language);
- STDMETHOD(get_installSource)(BSTR* install_source);
- STDMETHOD(put_installSource)(BSTR install_source);
- STDMETHOD(get_originURL)(BSTR* origin_url);
- STDMETHOD(put_originURL)(BSTR origin_url);
- STDMETHOD(get_offlineDirectory)(BSTR* offline_dir);
- STDMETHOD(put_offlineDirectory)(BSTR offline_dir);
- STDMETHOD(get_sessionId)(BSTR* session_id);
- STDMETHOD(put_sessionId)(BSTR session_id);
- STDMETHOD(get_priority)(long* priority); // NOLINT
- STDMETHOD(put_priority)(long priority); // NOLINT
- STDMETHOD(get_Count)(long* count); // NOLINT
- STDMETHOD(get_Item)(long index, App** app); // NOLINT
- STDMETHOD(put_altTokens)(ULONG_PTR impersonation_token,
- ULONG_PTR primary_token,
- DWORD caller_proc_id);
- STDMETHOD(put_parentHWND)(ULONG_PTR hwnd);
- STDMETHOD(initialize)();
- STDMETHOD(createApp)(BSTR app_id, App** app);
- STDMETHOD(createInstalledApp)(BSTR app_id, App** app);
- STDMETHOD(createAllInstalledApps)();
- STDMETHOD(checkForUpdate)();
- STDMETHOD(download)();
- STDMETHOD(install)();
- STDMETHOD(updateAllApps)();
- STDMETHOD(stop)();
- STDMETHOD(pause)();
- STDMETHOD(resume)();
- STDMETHOD(isBusy)(VARIANT_BOOL* is_busy);
- STDMETHOD(downloadPackage)(BSTR app_id, BSTR package_name);
- STDMETHOD(get_currentState)(VARIANT* current_state);
-
- // Creates an App for each uninstalled app and adds it to
- HRESULT CreateUninstalledApp(const CString& app_id, App** app);
-
- // Marks an asynchronous operation complete.
- void CompleteAsyncCall();
-
- bool IsBusy() const;
-
- // Returns a shared pointer to this instance of the class under the
- // assumption that the instance is already managed by a shared pointer.
- // This shared pointer controls the lifetime of the app bundle object and
- // all its children.
- ControllingPtr controlling_ptr();
-
- void set_user_work_item(UserWorkItem* user_work_item);
-
- const CString& install_source() const { return install_source_; }
-
- const CString& origin_url() const { return origin_url_; }
-
- // Gets the impersonation token of the current COM caller.
- HANDLE impersonation_token() const;
-
- // Gets the primary token of the current COM caller.
- HANDLE primary_token() const;
-
- size_t GetNumberOfApps() const;
-
- App* GetApp(size_t index);
-
- WebServicesClientInterface* update_check_client();
-
- bool is_machine() const;
-
- bool is_auto_update() const;
- void set_is_auto_update(bool is_auto_update);
-
- bool is_offline_install() const;
-
- const CString& offline_dir() const;
-
- const CString& session_id() const;
-
- CString display_language() const;
-
- int priority() const;
-
- ProxyAuthConfig GetProxyAuthConfig() const;
-
- // Gathers accumulated event logs from all child apps and clears the
- // log buffer in each app.
- CString FetchAndResetLogText();
-
- private:
- // Sets the state for unit testing.
- friend void SetAppBundleStateForUnitTest(AppBundle* app_bundle,
- fsm::AppBundleState* state);
-
- // TODO(omaha): missing unit test.
- // Sends the ping if the applications in the bundle have accumulated
- // any ping events.
- HRESULT SendPingEvents();
-
- // These methods capture the current COM caller tokens.
- HRESULT CaptureCallerImpersonationToken();
- HRESULT CaptureCallerPrimaryToken();
-
- void ChangeState(fsm::AppBundleState* app_bundle_state);
-
- bool is_pending_non_blocking_call() const;
-
- CString display_name_;
- CString install_source_;
- CString origin_url_;
-
- bool is_machine_;
-
- // True if the bundle is an update bundle.
- bool is_auto_update_;
-
- int priority_;
-
- HWND parent_hwnd_;
-
- CString offline_dir_;
-
- // Contains the session ID - a unique marker that we include with each
- // server communication (update checks, pings, etc.) in a single Omaha task.
- // Clients are expected to set this on a bundle before calling initialize();
- // if they don't, we will randomly generate one.
- CString session_id_;
-
- // The current non-blocking command object if any of them is executing.
- // The class only checks whether the pointer is NULL to determine if a
- // non-blocking call is pending. We use a pointer because it can be useful
- // for debugging.
- UserWorkItem* user_work_item_;
-
- scoped_ptr<WebServicesClientInterface> update_check_client_;
-
- // The apps in the bundle. Do not add to it directly; use AddApp() instead.
- std::vector<App*> apps_;
-
- // Uninstalled apps. Not accessible and only used to store Apps for
- // uninstalled app IDs so that app uninstall pings can be sent along with
- // other pings.
- std::vector<App*> uninstalled_apps_;
-
- scoped_ptr<fsm::AppBundleState> app_bundle_state_;
-
- // Impersonation and primary tokens set by the client. Typically only
- // set by the gupdatem service. The gupdatem service exposes a narrow
- // interface to medium integrity clients. When a medium integrity client calls
- // into the gupdatem service, the gupdatem service captures the token of the
- // caller, and then calls put_altTokens() on the gupdate service, so that the
- // gupdate service can use it for future download() and install() requests.
- CAccessToken alt_impersonation_token_;
- CAccessToken alt_primary_token_;
-
- // The current COM caller's impersonation token.
- CAccessToken impersonation_token_;
-
- // The current COM caller's primary token. Lazy initialized at the install()
- // entry point.
- CAccessToken primary_token_;
-
- // COM caller's display language.
- CString display_language_;
-
- friend class fsm::AppBundleState;
- friend class fsm::AppBundleStateInit;
-
- friend class AppBundleTest;
- friend class WorkerTest;
-
- DISALLOW_COPY_AND_ASSIGN(AppBundle);
-};
-
-class ATL_NO_VTABLE AppBundleWrapper
- : public ComWrapper<AppBundleWrapper, AppBundle>,
- public IDispatchImpl<IAppBundle,
- &__uuidof(IAppBundle),
- &CAtlModule::m_libid,
- kMajorTypeLibVersion,
- kMinorTypeLibVersion> {
- public:
- AppBundleWrapper();
- virtual ~AppBundleWrapper();
-
- // IAppBundle.
- STDMETHOD(get_displayName)(BSTR* display_name);
- STDMETHOD(put_displayName)(BSTR display_name);
- STDMETHOD(get_displayLanguage)(BSTR* language);
- STDMETHOD(put_displayLanguage)(BSTR language);
- STDMETHOD(get_installSource)(BSTR* install_source);
- STDMETHOD(put_installSource)(BSTR install_source);
- STDMETHOD(get_originURL)(BSTR* origin_url);
- STDMETHOD(put_originURL)(BSTR origin_url);
- STDMETHOD(get_offlineDirectory)(BSTR* offline_dir);
- STDMETHOD(put_offlineDirectory)(BSTR offline_dir);
- STDMETHOD(get_sessionId)(BSTR* session_id);
- STDMETHOD(put_sessionId)(BSTR session_id);
- STDMETHOD(get_priority)(long* priority); // NOLINT
- STDMETHOD(put_priority)(long priority); // NOLINT
- STDMETHOD(get_Count)(long* count); // NOLINT
- STDMETHOD(get_Item)(long index, IDispatch** app_disp); // NOLINT
- STDMETHOD(put_altTokens)(ULONG_PTR impersonation_token,
- ULONG_PTR primary_token,
- DWORD caller_proc_id);
- STDMETHOD(put_parentHWND)(ULONG_PTR hwnd);
- STDMETHOD(initialize)();
- STDMETHOD(createApp)(BSTR app_id, IDispatch** app_disp);
- STDMETHOD(createInstalledApp)(BSTR app_id, IDispatch** app_disp);
- STDMETHOD(createAllInstalledApps)();
- STDMETHOD(checkForUpdate)();
- STDMETHOD(download)();
- STDMETHOD(install)();
- STDMETHOD(updateAllApps)();
- STDMETHOD(stop)();
- STDMETHOD(pause)();
- STDMETHOD(resume)();
- STDMETHOD(isBusy)(VARIANT_BOOL* is_busy);
- STDMETHOD(downloadPackage)(BSTR app_id, BSTR package_name);
- STDMETHOD(get_currentState)(VARIANT* current_state);
-
- private:
- BEGIN_COM_MAP(AppBundleWrapper)
- COM_INTERFACE_ENTRY(IAppBundle)
- COM_INTERFACE_ENTRY(IDispatch)
- END_COM_MAP()
-};
-
-} // namespace omaha
-
-#endif // OMAHA_GOOPDATE_APP_BUNDLE_H_
« no previous file with comments | « goopdate/app.cc ('k') | goopdate/app_bundle.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698