#include "SshBasics.h" // SshPolymorphism: // Demonstrates polymorphism and RTTI for Ssh objects. void SshPolymorphism(SshSession& session) { constexpr const char *path = "/readme.txt"; Array channels; channels.Create(session); channels.Create(session); channels.Create(session); for(Ssh& channel : channels){ if(channel.Is()) { LOG("\nFound: Scp object"); LOG("-----------------\n"); LOG(channel.To().LoadFile(path)); } else if(channel.Is()) { LOG("\nFound: Sftp object"); LOG("------------------\n"); LOG(channel.To().GetInfo(path).GetName()); } else if(channel.Is()) { LOG("\nFound: Exec object"); LOG("------------------\n"); String out, err; channel.To().Execute("ls -l", out, err); LOG(out); LOG(err); } if(channel.IsError()) { LOG("Operation failed. Reason: " << channel.GetErrorDesc()); } } }