VLogTest.cxx
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:7k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. /* ====================================================================
  2.  * The Vovida Software License, Version 1.0 
  3.  * 
  4.  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved.
  5.  * 
  6.  * Redistribution and use in source and binary forms, with or without
  7.  * modification, are permitted provided that the following conditions
  8.  * are met:
  9.  * 
  10.  * 1. Redistributions of source code must retain the above copyright
  11.  *    notice, this list of conditions and the following disclaimer.
  12.  * 
  13.  * 2. Redistributions in binary form must reproduce the above copyright
  14.  *    notice, this list of conditions and the following disclaimer in
  15.  *    the documentation and/or other materials provided with the
  16.  *    distribution.
  17.  * 
  18.  * 3. The names "VOCAL", "Vovida Open Communication Application Library",
  19.  *    and "Vovida Open Communication Application Library (VOCAL)" must
  20.  *    not be used to endorse or promote products derived from this
  21.  *    software without prior written permission. For written
  22.  *    permission, please contact vocal@vovida.org.
  23.  *
  24.  * 4. Products derived from this software may not be called "VOCAL", nor
  25.  *    may "VOCAL" appear in their name, without prior written
  26.  *    permission of Vovida Networks, Inc.
  27.  * 
  28.  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
  29.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  30.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
  31.  * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
  32.  * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
  33.  * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
  34.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  35.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  36.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  37.  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  38.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  39.  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  40.  * DAMAGE.
  41.  * 
  42.  * ====================================================================
  43.  * 
  44.  * This software consists of voluntary contributions made by Vovida
  45.  * Networks, Inc. and many individuals on behalf of Vovida Networks,
  46.  * Inc.  For more information on Vovida Networks, Inc., please see
  47.  * <http://www.vovida.org/>.
  48.  *
  49.  */
  50. static const char* const VLogTest_cxx_Version = 
  51. "$Id: VLogTest.cxx,v 1.2 2001/04/10 22:55:47 icahoon Exp $";
  52. #include "Application.hxx"
  53. #include "CpPriorityLog.hxx"
  54. #include "VLog.hxx"
  55. #include <map>
  56. using Vocal::Application;
  57. using Vocal::Logging::VLog;
  58. using Vocal::Logging::CpPriorityLog;
  59. using Vocal::ReturnCode;
  60. using Vocal::SUCCESS;
  61. class VLogTest : public Application
  62. {
  63.     public:
  64.      VLogTest() {}
  65. ~VLogTest() {}
  66.      ReturnCode       init(int, char **, char **);
  67. void          uninit();
  68.      ReturnCode       run();
  69. };
  70. Application * Application::create()
  71. {
  72.     return ( new VLogTest );
  73. }
  74. ReturnCode
  75. VLogTest::init(int argc, char ** argv, char ** arge)
  76. {
  77.     if ( argc > 1 )
  78.     {
  79.         VLog::init(LOG_VERBOSE, argv[1]);
  80.     }
  81.     else
  82.     {
  83.      VLog::init(LOG_VERBOSE);
  84.     }
  85.     return ( SUCCESS );
  86. }
  87. void
  88. VLogTest::uninit()
  89. {
  90.     VLog::uninit();
  91. }
  92. ReturnCode
  93. VLogTest::run()
  94. {
  95.     cpLogSetPriority(LOG_DEBUG_STACK);
  96.     
  97.     CpPriorityLog debugLog("Debug", LOG_DEBUG);
  98.     
  99.     ostream & out = debugLog.get();
  100.     debugLog.preWrite();
  101.     out << "Testing.";
  102.     debugLog.end();
  103.     
  104.     if ( debugLog.isOn() )
  105.     {
  106.      ostream & out = debugLog.get();
  107. debugLog.preWrite();
  108.         out << "This is a test of the VLog system. This is "
  109.             << "only a test. For more information, please consult the "
  110.             << "VLog system documentation. Again, this is only a test.";
  111. debugLog.postWrite();
  112. debugLog.end();
  113.     }
  114.     debugLog.off();
  115.     
  116.     if ( debugLog.isOn() )
  117.     {
  118.      ostream & out = debugLog.get();
  119.         debugLog.preWrite();
  120.         out << "This is a test of the VLog system. This is "
  121.             << "only a test. For more information, please consult the "
  122.             << "VLog system documentation. Again, this is only a test.";
  123.         debugLog.postWrite();
  124.         debugLog.end();
  125.     }
  126.     VLog    log;
  127.     
  128.     VEMERG(log)     << "Emergency." << VEMERG_END(log);
  129.     VALERT(log)     << "Alert."     << VALERT_END(log);
  130.     VCRIT(log)     << "Critical."  << VCRIT_END(log);
  131.     VERR(log)     << "Error."     << VERR_END(log);
  132.     VWARN(log)     << "Warning."   << VWARN_END(log);
  133.     VNOTICE(log)    << "Notice."    << VNOTICE_END(log);
  134.     VINFO(log)     << "Info."     << VINFO_END(log);
  135.     VDEBUG(log)     << "Debug."     << VDEBUG_END(log);
  136.     VDEBUG_STACK(log)   << "Debug Stack."       << VDEBUG_STACK_END(log);
  137.     VDEBUG_OPER(log)    << "Debug Oper."        << VDEBUG_OPER_END(log);
  138.     VDEBUG_HB(log)      << "Debug Heartbeat."   << VDEBUG_HB_END(log);
  139.     VTRACE(log)     << "Trace."     << VTRACE_END(log);
  140.     VVERBOSE(log)   << "Verbose."   << VVERBOSE_END(log);
  141.     log.logOff(LOG_EMERG);
  142.     log.logOff(LOG_ALERT);
  143.     log.logOff(LOG_CRIT);
  144.     log.logOff(LOG_NOTICE);
  145.     log.logOff(LOG_WARNING);
  146.     log.logOff(LOG_NOTICE);
  147.     log.logOff(LOG_INFO);
  148.     log.logOff(LOG_DEBUG);
  149.     log.logOn(LOG_DEBUG_STACK);
  150.     log.logOn(LOG_DEBUG_OPER);
  151.     log.logOn(LOG_DEBUG_HB);
  152.     log.logOn(LOG_TRACE);
  153.     log.logOn(LOG_VERBOSE);
  154.     VEMERG(log)     << "Emergency 2." << VEMERG_END(log);
  155.     VALERT(log)     << "Alert 2."     << VALERT_END(log);
  156.     VCRIT(log)     << "Critical 2."  << VCRIT_END(log);
  157.     VERR(log)     << "Error 2."     << VERR_END(log);
  158.     VWARN(log)     << "Warning 2."   << VWARN_END(log);
  159.     VNOTICE(log)    << "Notice 2."    << VNOTICE_END(log);
  160.     VINFO(log)     << "Info 2."      << VINFO_END(log);
  161.     VDEBUG(log)     << "Debug 2."     << VDEBUG_END(log);
  162.     VDEBUG_STACK(log)   << "Debug Stack 2."     << VDEBUG_STACK_END(log);
  163.     VDEBUG_OPER(log)    << "Debug Oper 2."      << VDEBUG_OPER_END(log);
  164.     VDEBUG_HB(log)      << "Debug Heartbeat 2." << VDEBUG_HB_END(log);
  165.     VTRACE(log)     << "Trace 2."     << VTRACE_END(log);
  166.     VVERBOSE(log)   << "Verbose 2."     << VVERBOSE_END(log);
  167.     VLog::off(LOG_EMERG);
  168.     VLog::off(LOG_ALERT);
  169.     VLog::off(LOG_CRIT);
  170.     VLog::off(LOG_NOTICE);
  171.     VLog::off(LOG_WARNING);
  172.     VLog::off(LOG_NOTICE);
  173.     VLog::off(LOG_INFO);
  174.     VLog::off(LOG_DEBUG);
  175.     VLog::off(LOG_DEBUG_STACK);
  176.     VLog::off(LOG_DEBUG_OPER);
  177.     VLog::off(LOG_DEBUG_HB);
  178.     VLog::off(LOG_TRACE);
  179.     VLog::off(LOG_VERBOSE);
  180.     VLog    log1;
  181.     VEMERG(log1)    << "Emergency 3." << VEMERG_END(log1);
  182.     VALERT(log1)    << "Alert 3."     << VALERT_END(log1);
  183.     VCRIT(log1)     << "Critical 3."  << VCRIT_END(log1);
  184.     VERR(log1)     << "Error 3."     << VERR_END(log1);
  185.     VWARN(log1)     << "Warning 3."   << VWARN_END(log1);
  186.     VNOTICE(log1)   << "Notice 3."    << VNOTICE_END(log1);
  187.     VINFO(log1)     << "Info 3."      << VINFO_END(log1);
  188.     VDEBUG(log1)    << "Debug 3."     << VDEBUG_END(log1);
  189.     VDEBUG_STACK(log1)  << "Debug Stack 3."     << VDEBUG_STACK_END(log);
  190.     VDEBUG_OPER(log1)   << "Debug Oper 3."      << VDEBUG_OPER_END(log);
  191.     VDEBUG_HB(log1)     << "Debug Heartbeat 3." << VDEBUG_HB_END(log);
  192.     VTRACE(log1)    << "Trace 3."     << VTRACE_END(log);
  193.     VVERBOSE(log1)  << "Verbose 3."   << VVERBOSE_END(log);
  194.     
  195.     return ( 0 );
  196. }
  197. int main(int argc, char ** argv, char ** arge)
  198. {
  199.     return ( Application::main(argc, argv, arge) );
  200. }