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

传真(Fax)编程

开发平台:

C/C++

  1. /* $Id: CallID.c++,v 1.2 2006/04/18 19:15:55 faxguy Exp $ */
  2. /*
  3.  * Copyright (c) 2004 iFAX Solutions, Inc.
  4.  * HylaFAX is a trademark of Silicon Graphics
  5.  *
  6.  * Permission to use, copy, modify, distribute, and sell this software and 
  7.  * its documentation for any purpose is hereby granted without fee, provided
  8.  * that (i) the above copyright notices and this permission notice appear in
  9.  * all copies of the software and related documentation, and (ii) the names of
  10.  * Sam Leffler and Silicon Graphics may not be used in any advertising or
  11.  * publicity relating to the software without the specific, prior written
  12.  * permission of Sam Leffler and Silicon Graphics.
  13.  * 
  14.  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  15.  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  16.  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  17.  * 
  18.  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  19.  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  20.  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  21.  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  22.  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  23.  * OF THIS SOFTWARE.
  24.  */
  25. #include "CallID.h"
  26. const u_int CallID::NUMBER = 0;
  27. const u_int CallID::NAME = 1;
  28. CallID::CallID (int howmany)
  29.     : _id(howmany)
  30. {
  31. }
  32. CallID::~CallID (void)
  33. {
  34. }
  35. /*
  36.  * We need to manyally copy the array, becasue fxArray implementation doesn't
  37.  * do deep copy on the array, and we get double frees/corruption
  38.  */
  39. void CallID::operator= (const CallID& a)
  40. {
  41.     _id.resize(a._id.length());
  42.     for (u_int i = 0; i < _id.length(); i++)
  43. _id[i] = a._id[i];
  44. }
  45. void CallID::resize(int i)
  46. {
  47.     _id.resize(i);
  48. }
  49. size_t CallID::makeString(fxStr& output)
  50. {
  51.     output.resize(0);
  52.     for (size_t i = 0; i < _id.length(); i++)
  53.     {
  54. if (i)
  55.     output.append('n');
  56. output.append(_id[i]);
  57.     }
  58.     return _id.length();
  59. }
  60. const char* CallID::id (int i) const
  61. {
  62.     fxAssert((u_int)i<_id.length(), "Invalid CallID[] index");
  63.     return _id[i];
  64. }
  65. int CallID::length (int i) const
  66. {
  67.     fxAssert((u_int)i<_id.length(), "Invalid CallID[] index");
  68.     return _id[i].length();
  69. }
  70. fxStr& CallID::operator [](int i)
  71. {
  72.     fxAssert((u_int)i<_id.length(), "Invalid CallID[] index");
  73.     return _id[i];
  74. }
  75. bool CallID::isEmpty (void) const
  76. {
  77.     for (u_int i = 0; i < _id.length(); i++)
  78.     {
  79. if (_id[i].length() != 0)
  80.     return false;
  81.     }
  82.     return true;
  83. }
  84. size_t CallID::size (void) const
  85. {
  86.     return _id.length();
  87. }