Exiv2
Classes | Namespaces | Macros | Functions
basicio.hpp File Reference

Simple binary IO abstraction. More...

#include "types.hpp"
#include "futils.hpp"
#include <string>
#include <memory>
#include <fstream>
#include <fcntl.h>
#include <ctime>
#include <cstring>
+ Include dependency graph for basicio.hpp:
+ This graph shows which files directly or indirectly include this file:

Classes

class  Exiv2::BasicIo
 An interface for simple binary IO. More...
 
class  Exiv2::IoCloser
 Utility class that closes a BasicIo instance upon destruction. Meant to be used as a stack variable in functions that need to ensure BasicIo instances get closed. Useful when functions return errors from many locations. More...
 
class  Exiv2::FileIo
 Provides binary file IO by implementing the BasicIo interface. More...
 
class  Exiv2::MemIo
 Provides binary IO on blocks of memory by implementing the BasicIo interface. A copy-on-write implementation ensures that the data passed in is only copied when necessary, i.e., as soon as data is written to the MemIo. The original data is only used for reading. If writes are performed, the changed data can be retrieved using the read methods (since the data used in construction is never modified). More...
 
class  Exiv2::XPathIo
 Provides binary IO for the data from stdin and data uri path. More...
 
class  Exiv2::BlockMap
 Utility class provides the block mapping to the part of data. This avoids allocating a single contiguous block of memory to the big data. More...
 
class  Exiv2::RemoteIo
 Provides remote binary file IO by implementing the BasicIo interface. This is an abstract class. The logics for remote access are implemented in HttpIo, CurlIo, SshIo which are the derived classes of RemoteIo. More...
 
class  Exiv2::HttpIo
 Provides the http read/write access for the RemoteIo. More...
 

Namespaces

 Exiv2
 Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of the objects of this namespace.
 

Macros

#define EXV_XPATH_MEMIO   0
 
#define EXV_USE_CURL   0
 
#define EXV_USE_SSH   0
 

Functions

DataBuf Exiv2::readFile (const std::string &path)
 Read file path into a DataBuf, which is returned. More...
 
long Exiv2::writeFile (const DataBuf &buf, const std::string &path)
 Write DataBuf buf to file path. More...
 
std::string Exiv2::ReplaceStringInPlace (std::string subject, const std::string &search, const std::string &replace)
 replace each substring of the subject that matches the given search string with the given replacement. More...
 

Detailed Description

Simple binary IO abstraction.

Version
Rev
3091
Author
Brad Schick (brad) brad@robotbattle.com
Date
04-Dec-04, brad: created