Tesseract  3.02
tesseract-ocr/ccutil/bits16.h
Go to the documentation of this file.
00001 /**********************************************************************
00002  * File:        bits16.h  (Formerly bits8.h)
00003  * Description: Code for 8 bit field class.
00004  * Author:                                      Phil Cheatle
00005  * Created:                                     Thu Oct 17 10:10:05 BST 1991
00006  *
00007  * (C) Copyright 1991, Hewlett-Packard Ltd.
00008  ** Licensed under the Apache License, Version 2.0 (the "License");
00009  ** you may not use this file except in compliance with the License.
00010  ** You may obtain a copy of the License at
00011  ** http://www.apache.org/licenses/LICENSE-2.0
00012  ** Unless required by applicable law or agreed to in writing, software
00013  ** distributed under the License is distributed on an "AS IS" BASIS,
00014  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015  ** See the License for the specific language governing permissions and
00016  ** limitations under the License.
00017  *
00018  **********************************************************************/
00019 
00020 #ifndef           BITS16_H
00021 #define           BITS16_H
00022 
00023 #include "host.h"
00024 
00025 class DLLSYM BITS16
00026 {
00027   public:
00028     uinT16 val;
00029 
00030     BITS16() {
00031       val = 0;
00032     }                            // constructor
00033 
00034     BITS16(               // constructor
00035            uinT16 init);  // initial val
00036 
00037     void turn_on_bit(                  // flip specified bit
00038                      uinT8 bit_num) {  // bit to flip 0..7
00039       val = val | 01 << bit_num;
00040     };
00041 
00042     void turn_off_bit(                  // flip specified bit
00043                       uinT8 bit_num) {  // bit to flip 0..7
00044       val = val & ~(01 << bit_num);
00045     };
00046 
00047     void set_bit(                // flip specified bit
00048                  uinT8 bit_num,  // bit to flip 0..7
00049                  BOOL8 value) {  // value to flip to
00050       if (value)
00051         val = val | 01 << bit_num;
00052       else
00053         val = val & ~(01 << bit_num);
00054     };
00055 
00056     BOOL8 bit(                        // access bit
00057               uinT8 bit_num) const {  // bit to access
00058       return (val >> bit_num) & 01;
00059     };
00060 };
00061 #endif