#include <DirectoryDeltaTransfer.h>
List of all members.
Public Member Functions |
| void | AddUploadsFromSubdirectory (const char *subdir) |
| | Add all files in the specified subdirectory recursively.
|
| void | ClearUploads (void) |
| | Clear all allowed uploads previously set with AddUploadsFromSubdirectory.
|
| | DirectoryDeltaTransfer () |
| unsigned short | DownloadFromSubdirectory (const char *subdir, const char *outputSubdir, bool prependAppDirToOutputSubdir, SystemAddress host, FileListTransferCBInterface *onFileCallback, PacketPriority _priority, char _orderingChannel, FileListProgress *cb) |
| | Downloads files from the matching parameter subdir in AddUploadsFromSubdirectory.
|
| unsigned | GetNumberOfFilesForUpload (void) const |
| | Returns how many files are available for upload.
|
| virtual PluginReceiveResult | OnReceive (Packet *packet) |
| void | SetApplicationDirectory (const char *pathToApplication) |
| | Set the local root directory to base all file uploads and downloads off of.
|
| void | SetDownloadRequestIncrementalReadInterface (IncrementalReadInterface *_incrementalReadInterface, unsigned int _chunkSize) |
| | Normally, if a remote system requests files, those files are all loaded into memory and sent immediately.
|
| void | SetFileListTransferPlugin (FileListTransfer *flt) |
| | This plugin has a dependency on the FileListTransfer plugin, which it uses to actually send the files.
|
| void | SetUploadSendParameters (PacketPriority _priority, char _orderingChannel) |
| | What parameters to use for the RakPeerInterface::Send() call when uploading files.
|
| virtual | ~DirectoryDeltaTransfer () |
Static Public Member Functions |
| static void | DestroyInstance (DirectoryDeltaTransfer *i) |
| static DirectoryDeltaTransfer * | GetInstance (void) |
Protected Member Functions |
| void | OnDownloadRequest (Packet *packet) |
Protected Attributes |
| char | applicationDirectory [512] |
| FileList * | availableUploads |
| unsigned int | chunkSize |
| FileListTransfer * | fileListTransfer |
| IncrementalReadInterface * | incrementalReadInterface |
| char | orderingChannel |
| PacketPriority | priority |
Detailed Description
Definition at line 56 of file DirectoryDeltaTransfer.h.
Constructor & Destructor Documentation
| RakNet::DirectoryDeltaTransfer::DirectoryDeltaTransfer |
( |
| ) |
|
| virtual RakNet::DirectoryDeltaTransfer::~DirectoryDeltaTransfer |
( |
| ) |
[virtual] |
Member Function Documentation
| void RakNet::DirectoryDeltaTransfer::AddUploadsFromSubdirectory |
( |
const char * |
subdir | ) |
|
subdir is appended to pathToApplication in SetApplicationDirectory(). All files in the resultant directory and subdirectories are then hashed so that users can download them.
- Precondition:
- You must call SetFileListTransferPlugin with a valid FileListTransfer plugin
- Parameters:
-
| [in] | subdir | Concatenated with pathToApplication to form the final path from which to allow uploads. |
| void RakNet::DirectoryDeltaTransfer::ClearUploads |
( |
void |
| ) |
|
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/"...
- Precondition:
- You must call SetFileListTransferPlugin with a valid FileListTransfer plugin
- Parameters:
-
| [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() |
| [in] | cb | Callback to get progress updates. Pass 0 to not use. |
- Returns:
- A set ID, identifying this download set. Returns 65535 on host unreachable.
| unsigned RakNet::DirectoryDeltaTransfer::GetNumberOfFilesForUpload |
( |
void |
| ) |
const |
- Returns:
- How many files are available for upload
| void RakNet::DirectoryDeltaTransfer::OnDownloadRequest |
( |
Packet * |
packet | ) |
[protected] |
OnReceive is called for every packet.
- Parameters:
-
| [in] | packet | the packet that is being returned to the user |
- Returns:
- True to allow the game and other plugins to get this message, false to absorb it
Reimplemented from RakNet::PluginInterface2.
| void RakNet::DirectoryDeltaTransfer::SetApplicationDirectory |
( |
const char * |
pathToApplication | ) |
|
- Parameters:
-
| [in] | pathToApplication | This path will be prepended to applicationSubdirectory in AddUploadsFromSubdirectory to find the actual path on disk. |
| void RakNet::DirectoryDeltaTransfer::SetDownloadRequestIncrementalReadInterface |
( |
IncrementalReadInterface * |
_incrementalReadInterface, |
|
|
unsigned int |
_chunkSize |
|
) |
| |
This function allows the files to be read in incremental chunks, saving memory
- Parameters:
-
| [in] | _incrementalReadInterface | If a file in fileList has no data, filePullInterface will be used to read the file in chunks of size chunkSize |
| [in] | _chunkSize | How large of a block of a file to send at once |
| void RakNet::DirectoryDeltaTransfer::SetFileListTransferPlugin |
( |
FileListTransfer * |
flt | ) |
|
So you need an instance of that plugin registered with RakPeerInterface, and a pointer to that interface should be passed here.
- Parameters:
-
| void RakNet::DirectoryDeltaTransfer::SetUploadSendParameters |
( |
PacketPriority |
_priority, |
|
|
char |
_orderingChannel |
|
) |
| |
Member Data Documentation
The documentation for this class was generated from the following file: