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

传真(Fax)编程

开发平台:

C/C++

  1. /* $Id: SNPPJob.h,v 1.1.1.1 2005/11/11 21:32:03 faxguy Exp $ */
  2. /*
  3.  * Copyright (c) 1995-1996 Sam Leffler
  4.  * Copyright (c) 1995-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 _SNPPJob_
  27. #define _SNPPJob_
  28. #include "Str.h"
  29. #include "Array.h"
  30. class SNPPClient;
  31. typedef u_int PageNotify;
  32. class SNPPJob : public fxObj {
  33. public:
  34.     enum { // email notification control
  35. no_notice, // no messages
  36. when_done, // when job is completed
  37. when_requeued // when job is requeued or completed
  38.     };
  39. private:
  40.     fxStr jobid; // job ID
  41.     PageNotify notify; // job notification control
  42.     fxStr mailbox; // mail address for notification
  43.     fxStr pin; // pager identification number
  44.     fxStr passwd; // password (opt)
  45.     fxStr subject; // message subject
  46.     time_t holdTime; // job's time to be sent
  47.     u_int retryTime; // retry time for failures (secs)
  48.     u_int maxRetries; // max number times to try send
  49.     u_int maxDials; // max number times to dial telephone
  50.     u_int serviceLevel; // delivery service type
  51.     bool queued; // queued delivery
  52.     u_int parseTime(const char* v);
  53. public:
  54.     SNPPJob();
  55.     SNPPJob(const SNPPJob& other);
  56.     virtual ~SNPPJob();
  57.     virtual bool createJob(SNPPClient& client, fxStr& emsg);
  58.     const fxStr& getJobID(void) const;
  59.     /*
  60.      * Job notification.
  61.      */
  62.     bool setNotification(const char*);// email notification
  63.     void setNotification(PageNotify);
  64.     PageNotify getNotification() const;
  65.     void setMailbox(const char*); // email notification address
  66.     const fxStr& getMailbox() const;
  67.     /*
  68.      * Job scheduling controls.
  69.      */
  70.     void setQueued(bool); // queued or synchronous wait
  71.     bool getQueued() const;
  72.     void setRetryTime(u_int); // job retry time (seconds)
  73.     void setRetryTime(const char* v);
  74.     u_int getRetryTime() const;
  75. // time to initiate tranmission
  76.     bool setHoldTime(const char*, fxStr& emsg);
  77.     void setHoldTime(u_int);
  78.     u_int getHoldTime() const;
  79.     void setMaxTries(u_int); // maximum attempts to send
  80.     u_int getMaxTries() const;
  81.     void setMaxDials(u_int); // maximum phone call attempts
  82.     u_int getMaxDials() const;
  83.     /*
  84.      * Page delivery information.
  85.      */
  86.     void setPIN(const char*); // pager identification number
  87.     const fxStr& getPIN() const;
  88.     void setPassword(const char*); // transmit password
  89.     const fxStr& getPasswd() const;
  90.     void setSubject(const char*); // message subject
  91.     const fxStr& getSubject() const;
  92.     void setServiceLevel(u_int); // service delivery level
  93.     u_int getServiceLevel() const;
  94. };
  95. fxDECLARE_ObjArray(SNPPJobArray, SNPPJob)
  96. inline const fxStr& SNPPJob::getJobID(void) const { return jobid; }
  97. inline PageNotify SNPPJob::getNotification() const { return notify; }
  98. inline const fxStr& SNPPJob::getMailbox() const { return mailbox; }
  99. inline u_int SNPPJob::getRetryTime() const { return retryTime; }
  100. inline u_int SNPPJob::getHoldTime() const { return holdTime; }
  101. inline u_int SNPPJob::getMaxTries() const { return maxRetries; }
  102. inline u_int SNPPJob::getMaxDials() const { return maxDials; }
  103. inline const fxStr& SNPPJob::getPIN() const { return pin; }
  104. inline const fxStr& SNPPJob::getPasswd() const { return passwd; }
  105. inline bool SNPPJob::getQueued() const { return queued; }
  106. inline const fxStr& SNPPJob::getSubject(void) const { return subject; }
  107. inline u_int SNPPJob::getServiceLevel() const { return serviceLevel; }
  108. #endif /* _SNPPJob_ */