Filter:Pascal Plain C C++ (DLL/Lib) C++ (VCL) C++ (.NET) C# VB.NET Java
This event is fired when custom encryption is used and the hash needs to be calculated.
byte ISolFSHashEvents.onHashCalculate(byte buffer)
- Sender - reference to the class that called the delegate/event handler.
- Buffer - a reference to the buffer whose hash must be calculated.
- Count - the number of bytes in the buffer to be hashed
- HashBuffer - a reference to the buffer where the hash must be placed to. Buffer size is always 32 bytes.
- Result - out parameter (return value for DLL) where the application places the result of the operation. If you are working with file system, Win32 error code is a good candidate for placing to Result parameter. Otherwise you can use any other error codes, just be sure that 0 means success.
[Java]See Description for details about error reporting in Java.
- [Plain C] UserData - application-defined parameter which is specified when creating the storage and passed back to callback function.
[Java] Return values
The value of the calculated hash. Must be 32-byte long.
The event is fired when the hash of certain data must be calculated. You can use hash algorithms that produce 32 bytes or less as the result. Remember to fill the hash buffer with the same value (for example 0) before you put the hash that has size of less than 32 bytes.
The callback/event handler must be set before the storage is opened.
You need to implement ISolFSHashEvents interface in your code and pass the object, that implements the events, to one of SolFSStorage constructors that accept storageEvents parameter.
ERROR REPORTING: In Java you can't return more than one parameter, so the natural way is to throw an exception. You can throw any exception, and this exception will be passed back to the code, which called one of SolFS functions. So if you use callback mechanism and throw exception from within event handlers, be sure to wrap each call to SolFS methods with try/catch.