NSF.h
上传用户:weiyuanprp
上传日期:2020-05-20
资源大小:1169k
文件大小:2k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1. /* $Id: NSF.h,v 1.2 2006/03/21 23:57:32 faxguy Exp $ */
  2. /* 
  3.  * This file does not exist in the original HylaFAX distribution.
  4.  * Created by Dmitry Bely, April 2000
  5.  */
  6. /*
  7.  * Copyright (c) 1994-1996 Sam Leffler
  8.  * Copyright (c) 1994-1996 Silicon Graphics, Inc.
  9.  * HylaFAX is a trademark of Silicon Graphics
  10.  *
  11.  * Permission to use, copy, modify, distribute, and sell this software and 
  12.  * its documentation for any purpose is hereby granted without fee, provided
  13.  * that (i) the above copyright notices and this permission notice appear in
  14.  * all copies of the software and related documentation, and (ii) the names of
  15.  * Sam Leffler and Silicon Graphics may not be used in any advertising or
  16.  * publicity relating to the software without the specific, prior written
  17.  * permission of Sam Leffler and Silicon Graphics.
  18.  * 
  19.  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  20.  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  21.  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  22.  * 
  23.  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  24.  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  25.  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  26.  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  27.  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  28.  * OF THIS SOFTWARE.
  29.  */
  30. #ifndef NSF_H
  31. #define NSF_H
  32. #include "Str.h"
  33. class NSF {
  34.     fxStr nsf;
  35.     fxStr hexNsf;
  36.     fxStr vendor;
  37.     fxStr model;
  38.     fxStr stationId;
  39.     bool  vendorDecoded;
  40.     bool  stationIdDecoded;
  41. public:
  42.     NSF();
  43.     NSF( const char* hexNSF, bool useHex );
  44.     NSF( const u_char* rawData, int size, const u_char* revTab );
  45.     /*
  46.      * We are happy with default copy constructor and copy assignment,
  47.      * so do not explicitly define them (but will use)
  48.      */
  49.     const fxStr& getRawNsf(){ return nsf; }
  50.     const fxStr& getHexNsf(){ return hexNsf; }
  51.     bool  vendorFound(){ return vendorDecoded; }
  52.     bool  stationIdFound(){ return stationIdDecoded; }
  53.     const char* getVendor(){ return (const char*)vendor; }
  54.     const char* getModel(){ return (const char*)model; }
  55.     const char* getStationId(){ return (const char*)stationId; }
  56. private:
  57.     void clear();
  58.     void loadHexData( const char* hexNSF, bool useHex );
  59.     void loadRawData( const u_char* rawData, int size, const u_char* revTab );
  60.     void findStationId( bool reverseOrder, u_int vendorIdSize );
  61.     void decode();
  62. };
  63. #endif /* NSF_H */