00001
00007 #ifndef __FASP_MANAGER_LOCATION_H__
00008 #define __FASP_MANAGER_LOCATION_H__
00009
00010 #include "FaspManagerTypes.h"
00011
00012 namespace Aspera
00013 {
00014 namespace FaspManager
00015 {
00016
00021 class Location
00022 {
00023
00024 public:
00025
00027 FASP_MANAGER_API static Location * CreateLocal( );
00028
00034 FASP_MANAGER_API static Location * CreateRemote( const char * host, const char* user, const char* passwd );
00035
00042 FASP_MANAGER_API static Location * CreateRemote( const char* host, const char* user, const char* identity, const char* passphrase );
00043
00052 FASP_MANAGER_API void SetByteRange(u_int64_t start, u_int64_t end);
00053
00055 FASP_MANAGER_API void Destroy( );
00056
00060 FASP_MANAGER_API Location( const Location &loc );
00061
00065 FASP_MANAGER_API virtual bool IsRemote( ) const = 0;
00066
00071 FASP_MANAGER_API virtual char* GetHostname( ) const = 0;
00072
00077 FASP_MANAGER_API virtual char* GetUsername( ) const = 0;
00078
00083 FASP_MANAGER_API virtual char* GetPassword( ) const = 0;
00084
00086 FASP_MANAGER_API virtual char* GetIdentity( ) const = 0;
00087
00094 FASP_MANAGER_API virtual void AddFilepath( char const* path ) = 0;
00095
00099 FASP_MANAGER_API virtual void AddFilepath( char const* source, char const* destination ) = 0;
00100
00101 protected:
00103 FASP_MANAGER_API Location( );
00104
00106 FASP_MANAGER_API virtual ~Location( ) = 0;
00107
00108 };
00109
00110 }
00111 }
00112
00113 #endif