Added bacfile_read_offset() API to read offsets into a file during a restore after a backup.
This commit is contained in:
@@ -550,6 +550,32 @@ bacfile_read(uint32_t object_instance, uint8_t *buffer, uint32_t buffer_size)
|
|||||||
return (uint32_t)file_size;
|
return (uint32_t)file_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Read the entire file into a buffer
|
||||||
|
* @param object_instance - object-instance number of the object
|
||||||
|
* @param offset - offset in bytes from the beginning of the file
|
||||||
|
* @param buffer - data store from the file
|
||||||
|
* @param buffer_size - in bytes
|
||||||
|
* @return number of bytes read, or 0 if not successful
|
||||||
|
*/
|
||||||
|
uint32_t bacfile_read_offset(
|
||||||
|
uint32_t object_instance,
|
||||||
|
int32_t offset,
|
||||||
|
uint8_t *buffer,
|
||||||
|
uint32_t buffer_size)
|
||||||
|
{
|
||||||
|
const char *pathname = NULL;
|
||||||
|
long file_size = 0;
|
||||||
|
|
||||||
|
pathname = bacfile_pathname(object_instance);
|
||||||
|
if (pathname) {
|
||||||
|
file_size = bacfile_read_stream_data_callback(
|
||||||
|
pathname, offset, buffer, buffer_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (uint32_t)file_size;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Write the entire file from a buffer
|
* @brief Write the entire file from a buffer
|
||||||
* @param object_instance - object-instance number of the object
|
* @param object_instance - object-instance number of the object
|
||||||
|
|||||||
@@ -119,6 +119,12 @@ BACNET_STACK_EXPORT
|
|||||||
uint32_t
|
uint32_t
|
||||||
bacfile_read(uint32_t object_instance, uint8_t *buffer, uint32_t buffer_size);
|
bacfile_read(uint32_t object_instance, uint8_t *buffer, uint32_t buffer_size);
|
||||||
BACNET_STACK_EXPORT
|
BACNET_STACK_EXPORT
|
||||||
|
uint32_t bacfile_read_offset(
|
||||||
|
uint32_t object_instance,
|
||||||
|
int32_t offset,
|
||||||
|
uint8_t *buffer,
|
||||||
|
uint32_t buffer_size);
|
||||||
|
BACNET_STACK_EXPORT
|
||||||
uint32_t bacfile_write(
|
uint32_t bacfile_write(
|
||||||
uint32_t object_instance, const uint8_t *buffer, uint32_t buffer_size);
|
uint32_t object_instance, const uint8_t *buffer, uint32_t buffer_size);
|
||||||
BACNET_STACK_EXPORT
|
BACNET_STACK_EXPORT
|
||||||
|
|||||||
Reference in New Issue
Block a user