]> git.saurik.com Git - apple/securityd.git/blob - src/reader.h
346f996a481b97a3fdb6f19933f852e77053a050
[apple/securityd.git] / src / reader.h
1 /*
2 * Copyright (c) 2004 Apple Computer, Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
7 *
8 * This file contains Original Code and/or Modifications of Original Code
9 * as defined in and that are subject to the Apple Public Source License
10 * Version 2.0 (the 'License'). You may not use this file except in
11 * compliance with the License. Please obtain a copy of the License at
12 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * file.
14 *
15 * The Original Code and all software distributed under the License are
16 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
17 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
18 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
20 * Please see the License for the specific language governing rights and
21 * limitations under the License.
22 *
23 * @APPLE_LICENSE_HEADER_END@
24 */
25
26
27 //
28 // reader - token reader objects
29 //
30 #ifndef _H_READER
31 #define _H_READER
32
33 #include "securityserver.h"
34 #include "structure.h"
35 #include "token.h"
36 #include "pcsc++.h"
37
38
39 //
40 // A Reader object represents a token (card) reader device attached to the
41 // system.
42 //
43 class Reader : public PerGlobal {
44 public:
45 Reader(const PCSC::ReaderState &state);
46 ~Reader();
47
48 void kill();
49
50 string name() const { return mName; }
51 const PCSC::ReaderState &pcscState() const { return mState; }
52
53 void update(const PCSC::ReaderState &state);
54
55 IFDUMP(void dumpNode());
56
57 protected:
58 void transit(const PCSC::ReaderState &state);
59 void insertToken();
60 void removeToken();
61
62 private:
63 string mName; // PCSC reader name
64 PCSC::ReaderState mState; // name field not valid (use mName)
65 Token *mToken; // token inserted here (also in references)
66 };
67
68
69 #endif //_H_READER