Tesseract 3.02

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
bits16.h
Go to the documentation of this file.
1 /**********************************************************************
2 * File: bits16.h (Formerly bits8.h)
3 * Description: Code for 8 bit field class.
4 * Author: Phil Cheatle
5 * Created: Thu Oct 17 10:10:05 BST 1991
6 *
7 * (C) Copyright 1991, Hewlett-Packard Ltd.
8 ** Licensed under the Apache License, Version 2.0 (the "License");
9 ** you may not use this file except in compliance with the License.
10 ** You may obtain a copy of the License at
11 ** http://www.apache.org/licenses/LICENSE-2.0
12 ** Unless required by applicable law or agreed to in writing, software
13 ** distributed under the License is distributed on an "AS IS" BASIS,
14 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 ** See the License for the specific language governing permissions and
16 ** limitations under the License.
17 *
18 **********************************************************************/
19
20 #ifndef BITS16_H
21 #define BITS16_H
22
23 #include "host.h"
24
25 class DLLSYM BITS16
26 {
27 public:
28 uinT16 val;
29
30 BITS16() {
31 val = 0;
32 } // constructor
33
34 BITS16( // constructor
35 uinT16 init); // initial val
36
37 void turn_on_bit( // flip specified bit
38 uinT8 bit_num) { // bit to flip 0..7
39 val = val | 01 << bit_num;
40 };
41
42 void turn_off_bit( // flip specified bit
43 uinT8 bit_num) { // bit to flip 0..7
44 val = val & ~(01 << bit_num);
45 };
46
47 void set_bit( // flip specified bit
48 uinT8 bit_num, // bit to flip 0..7
49 BOOL8 value) { // value to flip to
50 if (value)
51 val = val | 01 << bit_num;
52 else
53 val = val & ~(01 << bit_num);
54 };
55
56 BOOL8 bit( // access bit
57 uinT8 bit_num) const { // bit to access
58 return (val >> bit_num) & 01;
59 };
60 };
61 #endif