(file) Return to System.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/System.h between version 1.33 and 1.59.2.1

version 1.33, 2003/08/04 13:30:39 version 1.59.2.1, 2006/04/21 17:33:34
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // 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.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // 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 23 
Line 31 
 // //
 // Author: Mike Brasher (mbrasher@bmc.com) // Author: Mike Brasher (mbrasher@bmc.com)
 // //
 // Modified By:  // Modified By: Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
 //     Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)  //              Dave Rosckes (rosckes@us.ibm.com)
 //  //              Robert Kieninger, IBM (kieningr@de.ibm.com) for Bug#667
 // Modified By: Dave Rosckes (rosckes@us.ibm.com)  //              David Dillard, VERITAS Software Corp.
   //                  (david.dillard@veritas.com)
   //              Sean Keenan, Hewlett-Packard Company (sean.keenan@hp.com)
   //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 37 
Line 48 
 #include <Pegasus/Common/String.h> #include <Pegasus/Common/String.h>
 #include <Pegasus/Common/Linkage.h> #include <Pegasus/Common/Linkage.h>
 #include <Pegasus/Common/Logger.h> #include <Pegasus/Common/Logger.h>
   #include <sys/stat.h>
   
   
   #if defined(PEGASUS_OS_TYPE_WINDOWS)
   #ifndef mode_t
   typedef unsigned long mode_t;
   #endif
   #endif
   
   #ifdef PEGASUS_OS_TYPE_UNIX
   # ifndef PEGASUS_OS_OS400
   #  include <unistd.h>
   # endif
   # define PEGASUS_UID_T uid_t
   # define PEGASUS_GID_T gid_t
   #else
   # define PEGASUS_UID_T Uint32
   # define PEGASUS_GID_T Uint32
   #endif
  
 // //
 // Protocal Type // Protocal Type
Line 55 
Line 85 
 /** This is an opaque type which is returned by System::loadDynamicSymbol(). /** This is an opaque type which is returned by System::loadDynamicSymbol().
     Values of this type may be casted to the appropriate target type.     Values of this type may be casted to the appropriate target type.
 */ */
 #if !defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) && !defined(PEGASUS_PLATFORM_OS400_ISERIES_IBM)  #if !defined(PEGASUS_PLATFORM_ZOS_ZSERIES_IBM) && !defined(PEGASUS_PLATFORM_OS400_ISERIES_IBM) && !defined(PEGASUS_PLATFORM_AIX_RS_IBMCXX)
 typedef struct DynamicSymbolHandle_* DynamicSymbolHandle; typedef struct DynamicSymbolHandle_* DynamicSymbolHandle;
 #else #else
 extern "C" {typedef int (* DynamicSymbolHandle)(void);} extern "C" {typedef int (* DynamicSymbolHandle)(void);}
Line 82 
Line 112 
     */     */
     static void getCurrentTime(Uint32& seconds, Uint32& milliseconds);     static void getCurrentTime(Uint32& seconds, Uint32& milliseconds);
  
       /** Similar to getCurrentTime() above but get microseconds (rather than
           milliseconds).
       */
       static void getCurrentTimeUsec(Uint32& seconds, Uint32& microseconds);
   
     /** getCurrentASCIITime Gets time/date in a fixed format. The format is     /** getCurrentASCIITime Gets time/date in a fixed format. The format is
         YY MM DD-HH:MM:SS         YY MM DD-HH:MM:SS
         @return Returns String with the ASCII time date.         @return Returns String with the ASCII time date.
Line 114 
Line 149 
  
     static Boolean copyFile(const char* fromPath, const char* toPath);     static Boolean copyFile(const char* fromPath, const char* toPath);
  
     /** Unix issue:<br><br><b>RTLD_<bah></b> issue. Currently Pegasus uses RTLD_NOW during      /** Unix issue:<br><br><b>RTLD_<blah></b> issue. Currently Pegasus uses RTLD_GLOBAL during
         loading of the library if supported by OS.  Previous to 2.2, Pegasus used RTLD_GLOBAL on Linux          loading of the library if supported by OS.  Previous to 2.2, Pegasus used RTLD_GLOBAL on Linux. In between 2.3 and 2.4, it used RTDL_NOW. In 2.5 it is using RTLD_GLOBAL. Please consult doc/ProviderLoading.txt for more information.
         - that behaviour is now deprecated.  
     */     */
     static DynamicLibraryHandle loadDynamicLibrary(const char* fileName);     static DynamicLibraryHandle loadDynamicLibrary(const char* fileName);
  
Line 131 
Line 165 
     static String getHostName();     static String getHostName();
     static String getFullyQualifiedHostName ();     static String getFullyQualifiedHostName ();
     static String getSystemCreationClassName ();     static String getSystemCreationClassName ();
       static String getHostIP(const String &hostName);
   
       static Uint32 _acquireIP(const char* hostname);
  
     static Uint32 lookupPort(     static Uint32 lookupPort(
         const char * serviceName,         const char * serviceName,
         Uint32 defaultPort);         Uint32 defaultPort);
  
       /**
           Attempts to validate that the input hostName represents the same host as
           the host represented by the value returned by the
           getFullyQualifiedHostName() method.
   
           Note: this method is modeled on the
           CIMClientRep::compareObjectPathtoCurrentConnection() method
           (Revision 1.44 of pegasus/src/Pegasus/Client/CIMClientRep.cpp)
   
           @param  hostName  the host name to validate
   
           @return  True if the input hostName can be validated to represent the
                    same host;
                    False otherwise
        */
       static Boolean sameHost (const String & hostName);
   
     static String getEffectiveUserName();     static String getEffectiveUserName();
  
     /**     /**
Line 176 
Line 230 
     @param userName     User name to be checked.     @param userName     User name to be checked.
     @return             true if the user is a privileged user, else false     @return             true if the user is a privileged user, else false
     */     */
     static Boolean isPrivilegedUser(const String userName);      static Boolean isPrivilegedUser(const String& userName);
  
     /**     /**
     This function returns the privileged user name on the system.     This function returns the privileged user name on the system.
Line 186 
Line 240 
     static String getPrivilegedUserName();     static String getPrivilegedUserName();
  
     /**     /**
       This function is used to verify whether the specified user is a member
       of the specified user group.
   
       @param userName     User name to be verified.
   
       @param groupName    User group name.
   
       @return             true if the user is a member of the user group,
                           false otherwise.
   
       @throw              InternalSystemError - If there is an error
                           accessing the specified user or group information.
       */
       static Boolean isGroupMember(const char* userName, const char* groupName);
   
       /**
           Gets the user and group IDs associated with the specified user.
           @param userName  User name for which to look up user and group IDs.
           @param uid       User ID for the specified user name.
           @param gid       Group ID for the specified user name.
           @return          True if the user and group IDs were retrieved
                            successfully, false otherwise.
       */
   #ifndef PEGASUS_OS_OS400
       static Boolean lookupUserId(
           const char* userName,
           PEGASUS_UID_T& uid,
           PEGASUS_GID_T& gid);
   #endif
   
       /**
           Changes the process user context to the specified user and group ID.
           @param uid       User ID to set as the process user context.
           @param gid       Group ID to set as the process group context.
           @return          True if the user context is successfully changed,
                            false otherwise.
       */
   #ifndef PEGASUS_OS_OS400
       static Boolean changeUserContext(
           const PEGASUS_UID_T& uid,
           const PEGASUS_GID_T& gid);
   #endif
   
       /**
     This function is used to get the process ID of the calling process.     This function is used to get the process ID of the calling process.
  
     @return             Process ID     @return             Process ID
Line 220 
Line 318 
     // Is absolute path?     // Is absolute path?
     static Boolean is_absolute_path(const char *path);     static Boolean is_absolute_path(const char *path);
  
 #if defined(PEGASUS_OS_HPUX)      /** Changes file permissions on the given file.
     static Boolean bindVerbose;          @param path path of the file.
 #endif          @param mode the bit-wise inclusive OR of the values for the desired
           permissions.
     /** This function is an abstraction for the openlog interface used in the Logger          @return true on success, false on error and errno is set appropriately.
         class.  Each platform intending to use system logs should support this interface      */
       static Boolean changeFilePermissions(const char* path, mode_t mode);
   
       /** Checks whether the specified file is a regular file owned by the
           effective user for the current process.
           @param path Path of the file to check.
           @return True if the file is owned by the effective user for the
           current process, false otherwise.
     */     */
     static void openlog(const String);      static Boolean verifyFileOwnership(const char* path);
  
     /** This function is an abstraction for the syslog interface used in the Logger      /**
         class.  Each platform intending to use system logs should support this interface          Flag indicating whether shared libraries are loaded with the
     */          BIND_VERBOSE option.
     static void syslog(Uint32, const char *);  
  
     /** This function is an abstraction for the closelog interface used in the Logger          THIS FLAG IS USED ON HP-UX ONLY.
         class.  Each platform intending to use system logs should support this interface  
     */     */
     static void closelog();      static Boolean bindVerbose;
   
       /**
           Writes a message to the system log.  This method encapsulates the
           semantics of opening the system log, writing the specified message,
           and closing the log.
   
           @param ident An identifier to be prepended to the log messages
           (typically a program name).
           @param severity A severity value to be associated with the message.
           Severity values are defined in Logger.h.
           @param message A message to be written to the system log.
       */
       static void syslog(
           const String& ident,
           Uint32 severity,
           const char* message);
  
     // System ID constants for Logger::put and Logger::trace     // System ID constants for Logger::put and Logger::trace
     static const String CIMSERVER;     static const String CIMSERVER;
   
       // System ID constants for Logger::put and Logger::trace
       static const String CIMLISTENER;
   
 }; };
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.33  
changed lines
  Added in v.1.59.2.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2