123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #ifndef BASE_MAC_SCOPED_AUTHORIZATIONREF_H_
- #define BASE_MAC_SCOPED_AUTHORIZATIONREF_H_
- #include <Security/Authorization.h>
- #include "base/base_export.h"
- #include "base/compiler_specific.h"
- #include "base/macros.h"
- namespace base {
- namespace mac {
- class BASE_EXPORT ScopedAuthorizationRef {
- public:
- explicit ScopedAuthorizationRef(AuthorizationRef authorization = NULL)
- : authorization_(authorization) {
- }
- ~ScopedAuthorizationRef() {
- if (authorization_) {
- FreeInternal();
- }
- }
- void reset(AuthorizationRef authorization = NULL) {
- if (authorization_ != authorization) {
- if (authorization_) {
- FreeInternal();
- }
- authorization_ = authorization;
- }
- }
- bool operator==(AuthorizationRef that) const {
- return authorization_ == that;
- }
- bool operator!=(AuthorizationRef that) const {
- return authorization_ != that;
- }
- operator AuthorizationRef() const {
- return authorization_;
- }
- AuthorizationRef* get_pointer() { return &authorization_; }
- AuthorizationRef get() const {
- return authorization_;
- }
- void swap(ScopedAuthorizationRef& that) {
- AuthorizationRef temp = that.authorization_;
- that.authorization_ = authorization_;
- authorization_ = temp;
- }
-
-
-
- AuthorizationRef release() WARN_UNUSED_RESULT {
- AuthorizationRef temp = authorization_;
- authorization_ = NULL;
- return temp;
- }
- private:
-
-
-
-
-
- void FreeInternal();
- AuthorizationRef authorization_;
- DISALLOW_COPY_AND_ASSIGN(ScopedAuthorizationRef);
- };
- }
- }
- #endif
|