#include <AutopatcherRepositoryInterface.h>
Public Member Functions | |
virtual bool | GetChangelistSinceDate (const char *applicationName, FileList *addedFiles, FileList *deletedFiles, double sinceDate)=0 |
virtual bool | GetPatches (const char *applicationName, FileList *input, FileList *patchList)=0 |
virtual bool | GetMostRecentChangelistWithPatches (RakNet::RakString &applicationName, FileList *patchedFiles, FileList *updatedFiles, FileList *updatedFileHashes, FileList *deletedFiles, double *priorRowPatchTime, double *mostRecentRowPatchTime)=0 |
virtual const char * | GetLastError (void) const =0 |
virtual const int | GetIncrementalReadChunkSize (void) const =0 |
virtual bool RakNet::AutopatcherRepositoryInterface::GetChangelistSinceDate | ( | const char * | applicationName, | |
FileList * | addedFiles, | |||
FileList * | deletedFiles, | |||
double | sinceDate | |||
) | [pure virtual] |
Get list of files added and deleted since a certain date. This is used by AutopatcherServer and not usually explicitly called.
[in] | applicationName | A null terminated string identifying the application |
[out] | addedFiles | A list of the current versions of filenames with hashes as their data that were created after sinceData |
[out] | deletedFiles | A list of the current versions of filenames that were deleted after sinceData |
[in] | An | input date, in whatever format your repository uses |
[out] | currentDate | The current server date, in whatever format your repository uses |
Implemented in RakNet::AutopatcherPostgreRepository, and RakNet::AutopatcherMySQLRepository.
virtual const int RakNet::AutopatcherRepositoryInterface::GetIncrementalReadChunkSize | ( | void | ) | const [pure virtual] |
Implemented in RakNet::AutopatcherPostgreRepository, and RakNet::AutopatcherMySQLRepository.
virtual const char* RakNet::AutopatcherRepositoryInterface::GetLastError | ( | void | ) | const [pure virtual] |
Implemented in RakNet::AutopatcherPostgreRepository, and RakNet::AutopatcherMySQLRepository.
virtual bool RakNet::AutopatcherRepositoryInterface::GetMostRecentChangelistWithPatches | ( | RakNet::RakString & | applicationName, | |
FileList * | patchedFiles, | |||
FileList * | updatedFiles, | |||
FileList * | updatedFileHashes, | |||
FileList * | deletedFiles, | |||
double * | priorRowPatchTime, | |||
double * | mostRecentRowPatchTime | |||
) | [pure virtual] |
For the most recent update, return files that were patched, added, or deleted. For files that were patched, return both the patch in patchedFiles and the current version in updatedFiles The cache will be used if the client last patched between priorRowPatchTime and mostRecentRowPatchTime No files changed will be returned to the client if the client last patched after mostRecentRowPatchTime
[in,out] | applicationName | Name of the application to get patches for. If empty, uses the most recently updated application, and the string will be updated to reflect this name. |
[out] | patchedFiles | Given the most recent update, if a file was patched, add it to this list. The context data for each file will be PC_HASH_WITH_PATCH. The first 4 bytes of data should be a hash of the file being patched. The second 4 bytes should be the hash of the file after the patch. The remaining bytes should be the patch itself. |
[out] | updatedFiles | The current value of the file. List should have the same length and order as patchedFiles |
[out] | updatedFileHashes | The hash of the current value of the file. List should have the same length and order as patchedFiles |
[out] | deletedFiles | Files that were deleted in the last patch. |
[out] | priorRowPatchTime | When the patch before the most recent patch took place. 0 means never. |
[out] | mostRecentRowPatchTime | When the most recent patch took place. 0 means never. |
Implemented in RakNet::AutopatcherPostgreRepository, and RakNet::AutopatcherMySQLRepository.
virtual bool RakNet::AutopatcherRepositoryInterface::GetPatches | ( | const char * | applicationName, | |
FileList * | input, | |||
FileList * | patchList | |||
) | [pure virtual] |
Get patches (or files) for every file in input, assuming that input has a hash for each of those files.
[in] | applicationName | A null terminated string identifying the application |
[in] | input | A list of files with SHA1_LENGTH byte hashes to get from the database. |
[out] | patchList | You should return list of files with either the filedata or the patch. This is a subset of input. The context data for each file will be either PC_WRITE_FILE (to just write the file) or PC_HASH_WITH_PATCH (to patch). If PC_HASH_WITH_PATCH, then the file contains a SHA1_LENGTH byte patch followed by the hash. The datalength is patchlength + SHA1_LENGTH |
[out] | currentDate | The current server date, in whatever format your repository uses |
Implemented in RakNet::AutopatcherPostgreRepository, and RakNet::AutopatcherMySQLRepository.