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

传真(Fax)编程

开发平台:

C/C++

  1. /* $Id: JobControl.h,v 1.5 2007/12/05 02:13:53 faxguy Exp $ */
  2. /*
  3.  * Copyright (c) 1994-1996 Sam Leffler
  4.  * Copyright (c) 1994-1996 Silicon Graphics, Inc.
  5.  * HylaFAX is a trademark of Silicon Graphics
  6.  *
  7.  * Permission to use, copy, modify, distribute, and sell this software and 
  8.  * its documentation for any purpose is hereby granted without fee, provided
  9.  * that (i) the above copyright notices and this permission notice appear in
  10.  * all copies of the software and related documentation, and (ii) the names of
  11.  * Sam Leffler and Silicon Graphics may not be used in any advertising or
  12.  * publicity relating to the software without the specific, prior written
  13.  * permission of Sam Leffler and Silicon Graphics.
  14.  * 
  15.  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  16.  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  17.  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  18.  * 
  19.  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  20.  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  21.  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  22.  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  23.  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  24.  * OF THIS SOFTWARE.
  25.  */
  26. #ifndef _JobControl_
  27. #define _JobControl_
  28. /*
  29.  * Destination Controls.
  30.  */
  31. #include "FaxConfig.h"
  32. #include "Str.h"
  33. #include "TimeOfDay.h"
  34. #include "Array.h"
  35. /*
  36.  * Destination controls are defined by sets of parameters
  37.  * and a regular expression.  If the canonical destination
  38.  * phone number matches the regex, then associated parameters
  39.  * are used.
  40.  */
  41. class JobControlInfo
  42.   : public FaxConfig
  43. {
  44. private:
  45.     u_long defined; // parameters that were defined
  46.     u_int maxConcurrentCalls; // max number of parallel calls
  47.     u_int maxSendPages; // max pages in a send job
  48.     u_int maxDials; // max times to dial the phone
  49.     u_int maxTries; // max transmit attempts
  50.     fxStr rejectNotice; // if set, reject w/ this notice
  51.     fxStr modem; // if set, try with it
  52.     TimeOfDay tod; // time of day restrictions
  53.     int usexvres; // use extended resolution
  54.     u_int vres; // use extended resolution
  55.     fxStr args; // arguments for subprocesses
  56.     int priority; // override submission priority with this
  57.     int desireddf; // if set, desireddf value
  58.     int notify; // if set, notify value
  59.     // default returned on no match
  60.     static const JobControlInfo defControlInfo;
  61.     friend class JobControl;
  62. public:
  63.     JobControlInfo();
  64.     JobControlInfo(const fxStr& buffer);
  65.     JobControlInfo(const JobControlInfo& other);
  66.     ~JobControlInfo();
  67.     u_int getMaxConcurrentCalls() const;
  68.     u_int getMaxSendPages() const;
  69.     u_int getMaxDials() const;
  70.     u_int getMaxTries() const;
  71.     const fxStr& getRejectNotice() const;
  72.     const fxStr& getModem() const;
  73.     time_t nextTimeToSend(time_t) const;
  74.     int getUseXVRes() const;
  75.     u_int getVRes() const;
  76.     int getPriority() const;
  77.     int getDesiredDF() const;
  78.     int getNotify() const;
  79.     bool isNotify(u_int what) const;
  80.     const fxStr& getArgs() const;
  81.     virtual bool setConfigItem(const char*, const char*);
  82.     virtual void configError(const char*, ...);
  83.     virtual void configTrace(const char*, ...);
  84. };
  85. inline const fxStr& JobControlInfo::getArgs() const { return args; }
  86. #endif /* _JobControl_ */