gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

Subsystem.php (1000B)


      1 <?php
      2 
      3 namespace Ssh;
      4 
      5 use RuntimeException;
      6 
      7 /**
      8  * Abstract class for the SSH subsystems as Sftp and Publickey
      9  *
     10  * @author Antoine Hérault <antoine.herault@gmail.com>
     11  */
     12 abstract class Subsystem extends AbstractResourceHolder
     13 {
     14     protected $session;
     15     protected $resource;
     16 
     17     /**
     18      * Constructor
     19      *
     20      * @param  mixed $session A Session instance or a SSH session resource
     21      */
     22     public function __construct($session)
     23     {
     24         if (!$session instanceof Session && !is_resource($session)) {
     25             throw new \InvalidArgumentException('The session must be either a Session instance or a SSH session resource.');
     26         }
     27 
     28         $this->session = $session;
     29     }
     30 
     31     /**
     32      * Returns the SSH session resource
     33      *
     34      * @return resource
     35      */
     36     public function getSessionResource()
     37     {
     38         if ($this->session instanceof Session) {
     39             return $this->session->getResource();
     40         } else {
     41             return $this->session;
     42         }
     43     }
     44 }