Exiv2::HttpIo::HttpImpl Class Reference

Internal Pimpl structure of class HttpIo. More...

Inheritance diagram for Exiv2::HttpIo::HttpImpl:
[legend]

## Public Member Functions

| HttpImpl (const std::string &path, size_t blockSize)
| Constructor.
long | getFileLength ()
| Get the length (in bytes) of the remote file. More...
void | getDataByRange (long lowBlock, long highBlock, std::string &response)
| Get the data by range. More...
void | writeRemote (const byte *data, size_t size, long from, long to)
| Submit the data to the remote machine. The data replace a part of the remote file. The replaced part of remote file is indicated by from and to parameters. More...
Public Member Functions inherited from Exiv2::RemoteIo::Impl
| Impl (const std::string &path, size_t blockSize)
| Constructor.
virtual | ~Impl ()
| Destructor. Releases all managed memory.
virtual size_t | populateBlocks (size_t lowBlock, size_t highBlock)
| Get the data from the remote machine and write them to the memory blocks. More...

## Public Attributes

Exiv2::Uri | hostInfo_
| the host information extracted from the path
Public Attributes inherited from Exiv2::RemoteIo::Impl
std::string | path_
| (Standard) path
size_t | blockSize_
| Size of the block memory.
BlockMap * | blocksMap_
| An array contains all blocksMap.
size_t | size_
| The file size.
long | idx_
| Index into the memory area.
bool | isMalloced_
| Was the blocksMap_ allocated?
bool | eof_
| EOF indicator.
Protocol | protocol_
| the protocol of url
uint32_t | totalRead_
| bytes requested from host

## Protected Member Functions

| HttpImpl (const HttpImpl &rhs)
| Copy constructor.
HttpImpl & | operator= (const HttpImpl &rhs)
| Assignment.

## Detailed Description

Internal Pimpl structure of class HttpIo.

## Member Function Documentation

## getDataByRange()

void Exiv2::HttpIo::HttpImpl::getDataByRange | ( | long | lowBlock,
|  | long | highBlock,
|  | std::string & | response
| ) |  |

virtual

Get the data by range.

Parameters

  lowBlock | The start block index.
  highBlock | The end block index.
  response | The data from the server.

Exceptions

  Error | if the server returns the error code.

Note
  Set lowBlock = -1 and highBlock = -1 to get the whole file content.

Implements Exiv2::RemoteIo::Impl.

References Exiv2::http(), and Exiv2::Internal::stringFormat().

## getFileLength()

long Exiv2::HttpIo::HttpImpl::getFileLength | ( |  | ) |

virtual

Get the length (in bytes) of the remote file.

Returns
  Return -1 if the size is unknown. Otherwise it returns the length of remote file (in bytes).

Exceptions

  Error | if the server returns the error code.

Implements Exiv2::RemoteIo::Impl.

References Exiv2::http(), and Exiv2::Internal::stringFormat().

## writeRemote()

void Exiv2::HttpIo::HttpImpl::writeRemote | ( | const byte * | data,
|  | size_t | size,
|  | long | from,
|  | long | to
| ) |  |

virtual

Submit the data to the remote machine. The data replace a part of the remote file. The replaced part of remote file is indicated by from and to parameters.

Parameters

  data | The data are submitted to the remote machine.
  size | The size of data.
  from | The start position in the remote file where the data replace.
  to | The end position in the remote file where the data replace.

Note
  The data are submitted to the remote machine via POST. This requires the script file on the remote machine to receive the data and edit the remote file. The server-side script may be specified with the environment string EXIV2_HTTP_POST. The default value is "/exiv2.php". More info is available at http://dev.exiv2.org/wiki/exiv2

Exceptions

  Error | if it fails.

Implements Exiv2::RemoteIo::Impl.

References Exiv2::base64encode(), Exiv2::getEnv(), Exiv2::Uri::Host, Exiv2::http(), Exiv2::Uri::Parse(), Exiv2::Uri::Path, Exiv2::Uri::Port, Exiv2::RemoteIo::size(), Exiv2::Internal::stringFormat(), and Exiv2::urlencode().

The documentation for this class was generated from the following file:

- basicio.cpp