This class provides a simple interface to provide access to a Remote Computer's files in the same way that FTP does.
The difference is that this uses Delta Compression for all file transfers.
Imagine that you have already downloaded a huge file from the server but that you know the file on the Server has been changed and you want the updated version.
This class will compare your Local File to the Remote File and only download the differences in the files.
This class is for Peer to Peer or Client/Server File transfer across slow mediums.
It is intended for use in Backup/Archiving Applications.
The Client/Server simply creates an instance of CRDOS which sets up a thread listening to Windows Socket 14.
Any computer wanting a file from another computer simply calls CRDOS::Get(...) with appropriate arguments.
The minimal data transfer is a result of Delta Compression:
if the computer asking for the file already has a similar file (an older version),
the data transmission simply describes the changes needed to convert the old file into the new file.
In addition, the Data Blocks transmitted are LZW compressed if the system thinks its worth doing.
Communication is by Windows Sockets, so the computers may be linked using the Internet.
The following functions are implemented:
|SetServer: ||Tries to connect to the Remote Server. If successful, returns the the Remote Server's Current Directory.|
|CD: ||Changes the Remote Server's Current Directory.|
|PWD: ||Print Working Directory (the Remote Server's)|
|DIR: ||Returns a CString containing a listing of the Files and Folders in the Remote Server's Current Directory.|
Directories are first in the list and have '+' as the first character.
The list is sorted alphabetically.
|Tree: ||Makes the Server create a file describing the Directory tree from its Current Directory. (See CFO in DTree.h)|
|Find: ||Returns a CFO of a Remote File (if found)|
|Fetch: ||Copies a file from the Remote Server to a specified file on the local computer (like SaveAs)|
|Put: ||Sends a file to the Remote Server.|
|Get: ||Copies a file from the Remote Server (No name changing).|
|Delete: ||Deletes a file on the Remote Server.|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.