#include <DirectoryDeltaTransfer.h>
Public Member Functions | |
DirectoryDeltaTransfer () | |
Constructor. | |
virtual | ~DirectoryDeltaTransfer () |
Destructor. | |
void | SetFileListTransferPlugin (FileListTransfer *flt) |
void | SetApplicationDirectory (const char *pathToApplication) |
void | SetUploadSendParameters (PacketPriority _priority, char _orderingChannel) |
void | AddUploadsFromSubdirectory (const char *subdir) |
unsigned short | DownloadFromSubdirectory (const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel) |
void | ClearUploads (void) |
Clear all allowed uploads previously set with AddUploadsFromSubdirectory. | |
unsigned | GetNumberOfFilesForUpload (void) const |
void | SetCompressOutgoingSends (bool compress) |
virtual void | OnAttach (RakPeerInterface *peer) |
virtual void | Update (RakPeerInterface *peer) |
virtual PluginReceiveResult | OnReceive (RakPeerInterface *peer, Packet *packet) |
virtual void | OnShutdown (RakPeerInterface *peer) |
void DirectoryDeltaTransfer::SetFileListTransferPlugin | ( | FileListTransfer * | flt | ) |
This plugin has a dependency on the FileListTransfer plugin, which it uses to actually send the files. So you need an instance of that plugin registered with RakPeerInterface, and a pointer to that interface should be passed here.
[in] | flt | A pointer to a registered instance of FileListTransfer |
void DirectoryDeltaTransfer::SetApplicationDirectory | ( | const char * | pathToApplication | ) |
Set the local root directory to base all file uploads and downloads off of.
[in] | pathToApplication | This path will be prepended to applicationSubdirectory in AddUploadsFromSubdirectory to find the actual path on disk. |
void DirectoryDeltaTransfer::SetUploadSendParameters | ( | PacketPriority | _priority, | |
char | _orderingChannel | |||
) |
What parameters to use for the RakPeerInterface::Send() call when uploading files.
[in] | _priority | See RakPeerInterface::Send() |
[in] | _orderingChannel | See RakPeerInterface::Send() |
void DirectoryDeltaTransfer::AddUploadsFromSubdirectory | ( | const char * | subdir | ) |
Add all files in the specified subdirectory recursively subdir is appended to pathToApplication in SetApplicationDirectory(). All files in the resultant directory and subdirectories are then hashed so that users can download them.
[in] | subdir | Concatenated with pathToApplication to form the final path from which to allow uploads. |
unsigned short DirectoryDeltaTransfer::DownloadFromSubdirectory | ( | const char * | subdir, | |
const char * | outputSubdir, | |||
bool | prependAppDirToOutputSubdir, | |||
SystemAddress | host, | |||
FileListTransferCBInterface * | onFileCallback, | |||
PacketPriority | _priority, | |||
char | _orderingChannel | |||
) |
Downloads files from the matching parameter subdir in AddUploadsFromSubdirectory. subdir must contain all starting characters in subdir in AddUploadsFromSubdirectory Therefore, AddUploadsFromSubdirectory("Levels/Level1/"); would allow you to download using DownloadFromSubdirectory("Levels/Level1/Textures/"... but it would NOT allow you to download from DownloadFromSubdirectory("Levels/"... or DownloadFromSubdirectory("Levels/Level2/"...
[in] | subdir | A directory passed to AddUploadsFromSubdirectory on the remote system. The passed dir can be more specific than the remote dir. |
[in] | outputSubdir | The directory to write the output to. Usually this will match subdir but it can be different if you want. |
[in] | prependAppDirToOutputSubdir | True to prepend outputSubdir with pathToApplication when determining the final output path. Usually you want this to be true. |
[in] | host | The address of the remote system to send the message to. |
[in] | onFileCallback | Callback to call per-file (optional). When fileIndex+1==setCount in the callback then the download is done |
[in] | _priority | See RakPeerInterface::Send() |
[in] | _orderingChannel | See RakPeerInterface::Send() |
unsigned DirectoryDeltaTransfer::GetNumberOfFilesForUpload | ( | void | ) | const |
Returns how many files are available for upload
void DirectoryDeltaTransfer::SetCompressOutgoingSends | ( | bool | compress | ) |
Set if we should compress outgoing sends or not Defaults to false, because this results in a noticeable freeze on large requests You can set this to true if you only send small files though
[in] | compress | True to compress, false to not. |
void DirectoryDeltaTransfer::OnAttach | ( | RakPeerInterface * | peer | ) | [virtual] |
Called when the interface is attached
[in] | peer | the instance of RakPeer that is calling Receive |
Reimplemented from PluginInterface.
void DirectoryDeltaTransfer::Update | ( | RakPeerInterface * | peer | ) | [virtual] |
Update is called every time a packet is checked for .
[in] | peer | - the instance of RakPeer that is calling Receive |
Reimplemented from PluginInterface.
PluginReceiveResult DirectoryDeltaTransfer::OnReceive | ( | RakPeerInterface * | peer, | |
Packet * | packet | |||
) | [virtual] |
OnReceive is called for every packet.
[in] | peer | the instance of RakPeer that is calling Receive |
[in] | packet | the packet that is being returned to the user |
Reimplemented from PluginInterface.
void DirectoryDeltaTransfer::OnShutdown | ( | RakPeerInterface * | peer | ) | [virtual] |
Called when RakPeer is shutdown
[in] | peer | the instance of RakPeer that is calling Receive |
Reimplemented from PluginInterface.