(file) Return to SystemLogListenerDestination.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Handler / SystemLogListenerDestination

Diff for /pegasus/src/Pegasus/Handler/SystemLogListenerDestination/SystemLogListenerDestination.cpp between version 1.1 and 1.10

version 1.1, 2005/02/14 21:15:34 version 1.10, 2007/05/25 20:48:46
Line 1 
Line 1 
 //%2005////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
 // IBM Corp.; EMC Corporation, The Open Group. // IBM Corp.; EMC Corporation, The Open Group.
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 // EMC Corporation; VERITAS Software Corporation; The Open Group. // EMC Corporation; VERITAS Software Corporation; The Open Group.
 //  // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 28 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
 // Author: Yi Zhou, Hewlett-Packard Company (yi.zhou@hp.com)  
 //  
 // Modified By:  
 //  
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
Line 46 
Line 43 
 #include <Pegasus/Common/CIMType.h> #include <Pegasus/Common/CIMType.h>
 #include <Pegasus/Common/IndicationFormatter.h> #include <Pegasus/Common/IndicationFormatter.h>
  
 #if defined(PEGASUS_USE_SYSLOGS)  
 #include <syslog.h>  
 #endif  
   
 #include "SystemLogListenerDestination.h" #include "SystemLogListenerDestination.h"
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
Line 66 
Line 59 
     CIMInstance& indication,     CIMInstance& indication,
     CIMInstance& handler,     CIMInstance& handler,
     CIMInstance& subscription,     CIMInstance& subscription,
     ContentLanguages & contentLanguages)      ContentLanguageList& contentLanguages)
 { {
     PEG_METHOD_ENTER (TRC_IND_HANDLER,     PEG_METHOD_ENTER (TRC_IND_HANDLER,
         "SystemLogListenerDestination::handleIndication");         "SystemLogListenerDestination::handleIndication");
  
     String ident_name = "CIM Indication";     String ident_name = "CIM Indication";
     String indicationText;     String indicationText;
     String textFormat = String::EMPTY;  
     CIMValue textFormatValue;  
     CIMValue textFormatParamsValue;  
   
     Array<String> textFormatParams = NULL;  
  
     try     try
     {     {
         // get TextFormat from subscription          PEG_TRACE ((TRC_INDICATION_GENERATION, Tracer::LEVEL3,
         Uint32 textFormatPos =              "SystemLogListenerDestination %s:%s.%s processing %s Indication",
             subscription.findProperty(_PROPERTY_TEXTFORMAT);             (const char*)(nameSpace.getCString()),
              (const char*)(handler.getClassName().getString().getCString()),
         // if the property TextFormat is not found,             (const char*)(handler.getProperty(
         // indication is constructed with default format             handler.findProperty(PEGASUS_PROPERTYNAME_NAME)).
         if (textFormatPos == PEG_NOT_FOUND)             getValue().toString().getCString()),
         {             (const char*)(indication.getClassName().getString().
             indicationText = IndicationFormatter::formatDefaultIndicationText             getCString())));
                              (indication);          // gets formatted indication message
         }          indicationText = IndicationFormatter::getFormattedIndText(
         else              subscription, indication, contentLanguages);
         {  
             textFormatValue = subscription.getProperty(textFormatPos).  
                 getValue();  
   
             // if the value of textFormat is NULL,  
             // indication is constructed with default format  
             if (textFormatValue.isNull())  
             {  
                 indicationText =  
                     IndicationFormatter::formatDefaultIndicationText(indication);  
             }  
             else  
             {  
                 // get TextFormatParameters from subscription  
                 Uint32 textFormatParamsPos = subscription.findProperty(  
                     _PROPERTY_TEXTFORMATPARAMETERS);  
   
                 if (textFormatParamsPos != PEG_NOT_FOUND)  
                 {  
                     textFormatParamsValue = subscription.getProperty(  
                         textFormatParamsPos).getValue();  
                 }  
   
                 // constructs indication with specified format  
                 if ((textFormatValue.getType() == CIMTYPE_STRING) &&  
                     !(textFormatValue.isArray()))  
                 {  
                     textFormatValue.get(textFormat);  
                     if (!textFormatParamsValue.isNull())  
                     {  
                         if ((textFormatParamsValue.getType() ==  
                              CIMTYPE_STRING) &&  
                             (textFormatParamsValue.isArray()))  
                         {  
                             textFormatParamsValue.get(textFormatParams);  
                         }  
                     }  
   
                     indicationText = IndicationFormatter::formatIndicationText  
                                      (textFormat,  
                                       textFormatParams,  
                                       indication,  
                                       contentLanguages);  
                 }  
                 else  
                 {  
                     indicationText =  
                         IndicationFormatter::formatDefaultIndicationText(  
                             indication);  
                 }  
             }  
         }  
  
         // default severity         // default severity
         Uint32 severity = Logger::INFORMATION;         Uint32 severity = Logger::INFORMATION;
Line 153 
Line 89 
         // and maps it to Pegasus logger severity. Otherwise, default value         // and maps it to Pegasus logger severity. Otherwise, default value
         // is used.         // is used.
  
         Uint32 severityPos = indication.findProperty(CIMName          Uint32 severityPos =
             ("PerceivedSeverity"));              indication.findProperty(CIMName("PerceivedSeverity"));
  
         if (severityPos != PEG_NOT_FOUND)         if (severityPos != PEG_NOT_FOUND)
         {         {
Line 198 
Line 134 
  
                     default:                     default:
                     {                     {
                         Tracer::trace(TRC_IND_HANDLER, Tracer::LEVEL4,                          PEG_TRACE((TRC_IND_HANDLER, Tracer::LEVEL4,
                             "PerceivedSeverity = %d is not a valid value."                             "PerceivedSeverity = %d is not a valid value."
                             " Using default severity.", perceivedSeverity);                              " Using default severity.", perceivedSeverity));
                         break;                         break;
                     }                     }
                 }                 }
             }             }
         }         }
  
          PEG_TRACE ((TRC_INDICATION_GENERATION, Tracer::LEVEL3,
              "SystemLogListenerDestination writing %s Indication to system log",
              (const char*)(indication.getClassName().getString().getCString())));
         // writes the formatted indication to a system log file         // writes the formatted indication to a system log file
         _writeToSystemLog(ident_name, severity, indicationText);         _writeToSystemLog(ident_name, severity, indicationText);
          PEG_TRACE ((TRC_INDICATION_GENERATION, Tracer::LEVEL3,
              "%s Indication written to system log successfully",
              (const char*)(indication.getClassName().getString().getCString())));
     }     }
     catch (CIMException & c)     catch (CIMException & c)
     {     {
Line 227 
Line 168 
     }     }
     catch (...)     catch (...)
     {     {
         PEG_TRACE_STRING(TRC_IND_HANDLER, Tracer::LEVEL4,          PEG_TRACE_CSTRING(TRC_IND_HANDLER, Tracer::LEVEL4,
             "Failed to deliver indication to system log file.");             "Failed to deliver indication to system log file.");
         PEG_METHOD_EXIT();         PEG_METHOD_EXIT();
  
         throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,          throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED, MessageLoaderParms(
             MessageLoaderParms("Handler.SystemLogListenerDestination."              "Handler.SystemLogListenerDestination.SystemLogListenerDestination."
             "SystemLogListenerDestination.FAILED_TO_DELIVER_INDICATION_TO_SYSTEM_LOG",                  "FAILED_TO_DELIVER_INDICATION_TO_SYSTEM_LOG",
             "Failed to deliver indication to system log file."));             "Failed to deliver indication to system log file."));
     }     }
  
Line 250 
Line 191 
  
 #if defined(PEGASUS_USE_SYSLOGS) #if defined(PEGASUS_USE_SYSLOGS)
  
     // Open the syslog      System::syslog(identifier, severity, formattedText.getCString());
     System::openlog(identifier);  
   
     System::syslog(severity, (const char *)formattedText.getCString());  
   
     // Close the syslog  
     System::closelog();  
  
 #else #else
  
       PEG_TRACE ((TRC_INDICATION_GENERATION, Tracer::LEVEL3,
          "SystemLogListenerDestination writing to PegasusStandard.log"));
     // PEGASUS_USE_SYSLOGS is not defined, writes the formatted     // PEGASUS_USE_SYSLOGS is not defined, writes the formatted
     // indications into PegasusStandard.log file     // indications into PegasusStandard.log file
     Logger::put (Logger::STANDARD_LOG , identifier, severity,     Logger::put (Logger::STANDARD_LOG , identifier, severity,
Line 271 
Line 208 
  
 } }
  
 // This is the dynamic entry point into this dynamic module. The name of  PEGASUS_NAMESPACE_END
 // this handler is "SystemLogListenerDestination" which is appended to "PegasusCreateHandler_"  
 // to form a symbol name. This function is called by the HandlerTable  PEGASUS_USING_PEGASUS;
 // to load this handler.  
  
 extern "C" PEGASUS_EXPORT CIMHandler*  // This is the entry point into this dynamic module.
     PegasusCreateHandler_SystemLogListenerDestination() {  
   extern "C" PEGASUS_EXPORT CIMHandler* PegasusCreateHandler(
       const String& handlerName)
   {
       if (handlerName == "SystemLogListenerDestination")
       {
     return new SystemLogListenerDestination;     return new SystemLogListenerDestination;
 } }
  
 PEGASUS_NAMESPACE_END      return 0;
   }


Legend:
Removed from v.1.1  
changed lines
  Added in v.1.10

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2