2  *  Copyright (c) 2003-2004,2008 Apple Inc. All Rights Reserved. 
   4  *  @APPLE_LICENSE_HEADER_START@ 
   6  *  This file contains Original Code and/or Modifications of Original Code 
   7  *  as defined in and that are subject to the Apple Public Source License 
   8  *  Version 2.0 (the 'License'). You may not use this file except in 
   9  *  compliance with the License. Please obtain a copy of the License at 
  10  *  http://www.opensource.apple.com/apsl/ and read it before using this 
  13  *  The Original Code and all software distributed under the License are 
  14  *  distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  15  *  EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  16  *  INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 
  17  *  FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  18  *  Please see the License for the specific language governing rights and 
  19  *  limitations under the License. 
  21  *  @APPLE_LICENSE_HEADER_END@ 
  23  *  AuthorizationMechEval.h 
  30 #include <security_utilities/refcount.h> 
  31 #include "agentquery.h" 
  32 #include "AuthorizationRule.h" 
  33 #include "authority.h" 
  37 namespace Authorization 
{ 
  39 class AgentMechanismRef 
: public RefPointer
<QueryInvokeMechanism
> 
  42     AgentMechanismRef(const AuthHostType type
, Session 
&session
); 
  45 class AgentMechanismEvaluator
 
  48     AgentMechanismEvaluator(uid_t uid
, Session 
&session
, const vector
<string
>& inMechanisms
); 
  49     OSStatus 
run(const AuthValueVector 
&inArguments
, const AuthItemSet 
&inHints
, const AuthorizationToken 
&auth
); 
  51     AuthorizationResult 
authinternal(AuthItemSet 
&context
); 
  53     AuthItemSet 
&hints() { return mHints
; } 
  54     AuthItemSet 
&context() { return mContext
; } 
  57     vector
<std::string
> mMechanisms
; 
  58     typedef map
<std::string
, AgentMechanismRef
> ClientMap
; 
  66     AuthItemSet mStickyContext
; 
  69 } /* namespace Authorization */