⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testcoders.cxx

📁 这是国外的resip协议栈
💻 CXX
字号:
#include <stdlib.h>#ifdef WIN32#include <io.h>#else#include <unistd.h>#endif#include <cassert>#include <memory>#include "rutil/compat.hxx"#include "rutil/Random.hxx"#include "rutil/Coders.hxx"#include <iostream>#ifdef __FreeBSD__#define NEW_THROWS 1#else#define NEW_THROWS 0#endifusing namespace std;using namespace resip;Data* randomData(int size){   unsigned char * p = new unsigned char[size];   for(int i = 0 ; i < size; i++)   {	  p[i] = static_cast<unsigned char>(Random::getRandom()&0xff);   }   return new Data(p,size);}void showData(const Data& data){   cout << "Data (n=" << data.size() << "): ";   for(Data::size_type i = 0 ; i < data.size() ; i++)   {      cout << hex << (unsigned int)(((unsigned char *)(data.data()))[i]) << ' ';   }   cout << dec << endl;}void showCoded(const Data& data){   showData(data);}int compareData(const Data &a, const Data& b){   return a == b;}intmain(){   using namespace resip;   assert(sizeof(size_t) == sizeof(void*));  Data testData("The quick brown fox jumped over the lazy dog.");  Data encoded =         Base64Coder::encode(testData);  Data decoded = Base64Coder::decode(encoded);  cout << "encoded: '" << encoded << "'" << endl;  cout << "decoded: '" << decoded << "'" << endl;  testData = Data("1");  encoded =         Base64Coder::encode(testData);  decoded = Base64Coder::decode(encoded);  cout << "encoded: '" << encoded << "'" << endl;  cout << "decoded: '" << decoded << "'" << endl;  int rVal = 0; // test return val  for(int i=1;i<320;i++)  {     Data* originalData = randomData(i);     cout << i << "-------" << endl;     // encrypt this data     Data coded = Base64Coder::encode(*originalData);     showData(*originalData);     Data decoded = Base64Coder::decode(coded);     showData(decoded);     assert(originalData->size() == decoded.size());     cout << "encoded: " << coded << endl;          int b = 0;     if ( *originalData != decoded )     {	cout << i << ": symetry failure (encode/decode) at byte " << -b-1 << endl;	rVal = -1;     }     delete originalData;  }  return rVal;}// Local Variables:// mode:c++// c-file-style:"ellemtel"// c-file-offsets:((case-label . +))// indent-tabs-mode:nil// End/* ==================================================================== * The Vovida Software License, Version 1.0  *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -