Import upstream 0.7.1
[manu/suphp.git] / src / API.hpp
index 47f71e3..5d84ebe 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    suPHP - (c)2002-2005 Sebastian Marsching <sebastian@marsching.com>
+    suPHP - (c)2002-2008 Sebastian Marsching <sebastian@marsching.com>
 
     This file is part of suPHP.
 
@@ -39,153 +39,165 @@ namespace suPHP {
      * Class encapsulating system-specific API.
      */
     class API {
-       
+        
     public:
-       /**
-        * Get environment variable
-        */
-       virtual Environment getProcessEnvironment() =0;
-       
-       /**
-        * Get UserInfo from username
-        */
-       virtual UserInfo getUserInfo(const std::string username) 
-           throw (LookupException) =0;
-       
-       /**
-        * Get UserInfo from UID
-        */
-       virtual UserInfo getUserInfo(const int uid) =0;
-
-       /**
-        * Get GroupInfo from groupname
-        */
-       virtual GroupInfo getGroupInfo(const std::string groupname)
-           throw (LookupException) =0;
-       
-       /**
-        * Get GroupInfo from GID
-        */
-       virtual GroupInfo getGroupInfo(const int gid) =0;
-       
-       /**
-        * Get UserInfo for effective UID
-        */
-       virtual UserInfo getEffectiveProcessUser() =0;
-
-       /**
-        * Get UserInfo for real UID
-        */
-       virtual UserInfo getRealProcessUser() =0;
-       
-       /**
-        * Get GroupInfo for effective GID
-        */
-       virtual GroupInfo getEffectiveProcessGroup() =0;
-
-       /**
-        * Get GroupInfo for real GID
-        */
-       virtual GroupInfo getRealProcessGroup() =0;
-
-       /**
-        * Get Logger implementation
-        */
-       virtual Logger& getSystemLogger() =0;
-
-       /**
-        * Set UID of current process
-        */
-       virtual void setProcessUser(const UserInfo& user) const
-           throw (SystemException) =0;
-       
-       /**
-        * Set GID of current process
-        */
-       virtual void setProcessGroup(const GroupInfo& group) const
-           throw (SystemException) =0;
-
-       /**
-        * Returns username from UserInfo
-        */
-       virtual std::string UserInfo_getUsername(const UserInfo& uinfo) const 
-           throw (LookupException) =0;
-       
-       /**
-        * Returns group from UserInfo
-        */
-       virtual GroupInfo UserInfo_getGroupInfo(const UserInfo& uinfo) const
-           throw (LookupException) =0;
-       
-       /**
-        * Checks whether UserInfo objects represents the super-user
-        */
-       virtual bool UserInfo_isSuperUser(const UserInfo& uinfo) const =0;
-
-       /**
-        * Returns groupname from GroupInfo
-        */
-       virtual std::string GroupInfo_getGroupname(const GroupInfo& ginfo) 
-           const throw (LookupException) =0;
-       
-       /**
-        * Checks whether file exists
-        */
-       virtual bool File_exists(const File& file) const =0;
-
-       /**
-        * Returns real path to file
-        */
-       virtual std::string File_getRealPath(const File& file) const 
-           throw (SystemException) =0;
-
-       /**
-        * Checks for a permission bit
-        */
-       virtual bool File_hasPermissionBit(const File& file, FileMode perm) 
-           const throw (SystemException) =0;
-
-       /**
-        * Returns UID of file
-        */
-       virtual UserInfo File_getUser(const File& file) const
-           throw (SystemException) =0;
-
-       /**
-        * Returns GID of file
-        */
-       virtual GroupInfo File_getGroup(const File& file) const
-           throw (SystemException) =0;
-       
-       /**
-        * Runs another program (replaces current process)
-        */
-       virtual void execute(std::string program, const CommandLine& cline, 
-                       const Environment& env) const
-           throw (SystemException) =0;
-
-       /**
-        * Returns current working directory
-        */
-       virtual std::string getCwd() const throw (SystemException) =0;
-
-
-       /**
-        * Sets current working directory
-        */
-       virtual void setCwd(const std::string& dir) const 
-           throw (SystemException) =0;
-       
-       /**
-        * Sets umask
-        */
-       virtual void setUmask(int umask) const throw (SystemException) =0;
-
-       /**
+        /**
+         * Get environment variable
+         */
+        virtual Environment getProcessEnvironment() =0;
+        
+        /**
+         * Get UserInfo from username
+         */
+        virtual UserInfo getUserInfo(const std::string username) 
+            throw (LookupException) =0;
+        
+        /**
+         * Get UserInfo from UID
+         */
+        virtual UserInfo getUserInfo(const int uid) =0;
+
+        /**
+         * Get GroupInfo from groupname
+         */
+        virtual GroupInfo getGroupInfo(const std::string groupname)
+            throw (LookupException) =0;
+        
+        /**
+         * Get GroupInfo from GID
+         */
+        virtual GroupInfo getGroupInfo(const int gid) =0;
+        
+        /**
+         * Get UserInfo for effective UID
+         */
+        virtual UserInfo getEffectiveProcessUser() =0;
+
+        /**
+         * Get UserInfo for real UID
+         */
+        virtual UserInfo getRealProcessUser() =0;
+        
+        /**
+         * Get GroupInfo for effective GID
+         */
+        virtual GroupInfo getEffectiveProcessGroup() =0;
+
+        /**
+         * Get GroupInfo for real GID
+         */
+        virtual GroupInfo getRealProcessGroup() =0;
+
+        /**
+         * Get Logger implementation
+         */
+        virtual Logger& getSystemLogger() =0;
+
+        /**
+         * Set UID of current process
+         */
+        virtual void setProcessUser(const UserInfo& user) const
+            throw (SystemException) =0;
+        
+        /**
+         * Set GID of current process
+         */
+        virtual void setProcessGroup(const GroupInfo& group) const
+            throw (SystemException) =0;
+
+        /**
+         * Returns username from UserInfo
+         */
+        virtual std::string UserInfo_getUsername(const UserInfo& uinfo) const 
+            throw (LookupException) =0;
+        
+        /**
+         * Returns group from UserInfo
+         */
+        virtual GroupInfo UserInfo_getGroupInfo(const UserInfo& uinfo) const
+            throw (LookupException) =0;
+        
+        /**
+         * Returns home directory from UserInfo
+         */
+        virtual std::string UserInfo_getHomeDirectory(const UserInfo& uinfo) const
+            throw (LookupException) =0;
+        
+        /**
+         * Checks whether UserInfo objects represents the super-user
+         */
+        virtual bool UserInfo_isSuperUser(const UserInfo& uinfo) const =0;
+
+        /**
+         * Returns groupname from GroupInfo
+         */
+        virtual std::string GroupInfo_getGroupname(const GroupInfo& ginfo) 
+            const throw (LookupException) =0;
+        
+        /**
+         * Checks whether file exists
+         */
+        virtual bool File_exists(const File& file) const =0;
+
+        /**
+         * Returns real path to file
+         */
+        virtual std::string File_getRealPath(const File& file) const 
+            throw (SystemException) =0;
+
+        /**
+         * Checks for a permission bit
+         */
+        virtual bool File_hasPermissionBit(const File& file, FileMode perm) 
+            const throw (SystemException) =0;
+
+        /**
+         * Returns UID of file
+         */
+        virtual UserInfo File_getUser(const File& file) const
+            throw (SystemException) =0;
+
+        /**
+         * Returns GID of file
+         */
+        virtual GroupInfo File_getGroup(const File& file) const
+            throw (SystemException) =0;
+        
+        /**
+         * Checks whether a file is a symlink
+         */
+        virtual bool File_isSymlink(const File& file) const 
+            throw (SystemException) =0;
+        
+        /**
+         * Runs another program (replaces current process)
+         */
+        virtual void execute(std::string program, const CommandLine& cline, 
+                        const Environment& env) const
+            throw (SystemException) =0;
+
+        /**
+         * Returns current working directory
+         */
+        virtual std::string getCwd() const throw (SystemException) =0;
+
+
+        /**
+         * Sets current working directory
+         */
+        virtual void setCwd(const std::string& dir) const 
+            throw (SystemException) =0;
+        
+        /**
+         * Sets umask
+         */
+        virtual void setUmask(int umask) const throw (SystemException) =0;
+
+        /**
          * Changes root directory for the current process
-        */
-       virtual void chroot(const std::string& dir) const
-           throw (SystemException) =0;
+         */
+        virtual void chroot(const std::string& dir) const
+            throw (SystemException) =0;
     };
 };