ArClientFileFromClient Class Reference

#include <ArClientFileUtils.h>

List of all members.


Detailed Description

Class for putting files to the server.

This class will interact with the ArServerFileFromClient and put a file on to the server. If you want to find out what files are on the server use ArClientFileLister.

When get a file it doesn't happen right away, but when the file is received (or failes) the fileGotten callbacks will be called, 0 as the int for the callback means everything is good, positive error messages are from the server (0 = good (got file), 1 = getting file, 2 = tried to go outside allowed area, 3 = bad directory, 4 = empty file name (or other problem with fileName), 5 = can't write temp file, 6 = error moving file from temp to perm, 7 = another client putting file, 8 = timeout (no activity for 15 seconds) and another client wanted to put the file, 9 = client adding to, finishing, or canceling a file the server doesn't have), negative would be from this class but there aren't any of those yet


Public Types

enum  SendSpeed { SPEED_AUTO, SPEED_FAST, SPEED_SLOW }
 Enum that describes the speed to send at. More...

Public Member Functions

void addFileSentCallback (ArFunctor1< int > *functor, ArListPos::Pos position=ArListPos::LAST)
 Adds a callback for when we get the desired file (or fail).
 ArClientFileFromClient (ArClientBase *client)
 Constructor.
void cancelPut (void)
 Cancels putting a file.
const char * getClientFileName (void)
 Gets the filename we're taking from the client.
const char * getDirectory (void)
 Gets the directory we're putting to.
const char * getFileName (void)
 Gets the filename we're putting.
ArTime getLastCompletedSend (void)
 Gets the last time we finished putting a file.
ArTime getLastStartedSend (void)
 Gets the last time we started putting a file.
bool isAvailable (void)
 Sees if the server supports what this class needs.
bool isAvailableFast (void)
 Sees if the server supports what this class needs to send fast.
bool isAvailableSetTimestamp (void)
 Sees if the server supports the ability to set the file timestamp.
bool isAvailableSlow (void)
 Sees if the server supports what this class needs to send slowly.
bool isWaitingForReturn (void)
 If we're waiting for completion now.
bool putFileToDirectory (const char *directory, const char *fileName, const char *clientFileName, SendSpeed sendSpeed=SPEED_AUTO, bool isSetTimestamp=false)
 Puts the specified client file on the server in the given directory and file.
void remFileSentCallback (ArFunctor1< int > *functor)
 Removes a callback for when we get the desired file (or fail).
virtual ~ArClientFileFromClient ()
 Destructor.

Protected Member Functions

void callFileSentCallbacks (int val)
void netPutFile (ArNetPacket *packet)

Protected Attributes

ArMutex myCallbackMutex
ArClientBasemyClient
std::string myClientFileName
std::string myCommandName
ArMutex myDataMutex
std::string myDirectory
FILE * myFile
std::string myFileName
std::list< ArFunctor1< int > * > myFileSentCallbacks
bool myInterleaved
bool myIsWaitingForReturn
ArTime myLastCompletedSend
ArTime myLastStartedSend
ArFunctor1C< ArClientFileFromClient,
ArNetPacket * > 
myPutFileCB
bool myReadyForNextPacket
bool myTimestamp
std::string myWholeFileName


Member Enumeration Documentation

enum ArClientFileFromClient::SendSpeed

Enum that describes the speed to send at.

Enumerator:
SPEED_AUTO  Send it fast if available, if not then send it slow.
SPEED_FAST  Send it fast.
SPEED_SLOW  Send it slow.


The documentation for this class was generated from the following file:
Generated on Thu Aug 6 09:40:12 2009 for ArNetworking by  doxygen 1.5.1