CvrStgFile Class Referenceabstract

a cover-/stego-file More...

`#include <CvrStgFile.h>`

Inheritance diagram for CvrStgFile:

## Classes

class | Property

## Public Member Functions

| CvrStgFile (void)
virtual | ~CvrStgFile (void)
virtual void | read (BinaryIO *io)
virtual void | write (void)
void | transform (const std::string &fn)
virtual std::list< Property > | getProperties (void) const =0
virtual std::vector< SampleValueAdjacencyList * > | calcSVAdjacencyLists (const std::vector< SampleValue *> &svs) const
virtual std::vector< MatchingAlgorithm * > | getMatchingAlgorithms (Graph *g, Matching *m) const
const std::string & | getName (void) const
bool | is_std (void) const
unsigned long | getCapacity (void) const
std::string | getHRCapacity (void) const
unsigned short | getSamplesPerVertex (void) const
UWORD32 | getRadius (void) const
EmbValue | getEmbValueModulus (void) const
virtual EmbValue | getEmbeddedValue (const SamplePos pos) const
Public Member Functions inherited from CvrStgObject
virtual unsigned long | getNumSamples (void) const =0
virtual SampleValue * | getSampleValue (const SamplePos pos) const =0
virtual void | replaceSample (const SamplePos pos, const SampleValue *s)=0

## Static Public Member Functions

static CvrStgFile * | readFile (const std::string &fn)

## Protected Member Functions

void | setSamplesPerVertex (unsigned short spv)
void | setRadius (UWORD32 r)
void | setEmbValueModulus (EmbValue m)
void | setBinIO (BinaryIO *io)
BinaryIO * | getBinIO (void) const

## Private Types

enum | FILEFORMAT { UNKNOWN, BMP, WAV, AU, JPEG }

## Static Private Member Functions

static FILEFORMAT | guessff (BinaryIO *io)

## Private Attributes

BinaryIO * | BinIO
unsigned short | SamplesPerVertex
UWORD32 | Radius
EmbValue | EmbValueModulus

## Detailed Description

file-format specific constants are handled as follows: CvrStgFile contains a protected set-function (e.g. setSamplesPerVertex), a public get-function (e.g. getSamplesPerVertex() const) and a private variable. The public get function does nothing else than returning the private variable, which must be set as soon as possible (if it is not set, it will contain a null value set in CvrStgFile::CvrStgFile).

## Member Enumeration Documentation

## FILEFORMAT

enum CvrStgFile::FILEFORMAT

private

Enumerator
UNKNOWN |
BMP |
WAV |
AU |
JPEG |

## Constructor & Destructor Documentation

## CvrStgFile()

CvrStgFile::CvrStgFile | ( | void |  | ) |

## ~CvrStgFile()

CvrStgFile::~CvrStgFile | ( | void |  | ) |

virtual

## Member Function Documentation

## calcSVAdjacencyLists()

std::vector< SampleValueAdjacencyList * > CvrStgFile::calcSVAdjacencyLists | ( | const std::vector< SampleValue *> & | svs | ) | const

virtual

calculate a vector a SampleValueAdjacencyLists

Parameters

  svs | a vector of unique(!) sample values where svs[i]->getLabel() == i holds for all i

Returns
  a vector of SampleValueAdjacencyLists where retval[i] only contains sample values with getEmbValue() == i

Every row in the adjacency lists must be sorted in the following order: The first sample value has the least distance to the source sample value, the last has the largest distance. If two sample values in one row have the same distance to the source sample value, the order does not matter.

May be overridden in derived class to provide a faster version.

Reimplemented in WavFile, and BmpFile.

## getBinIO()

BinaryIO* CvrStgFile::getBinIO | ( | void |  | ) | const

inline protected

## getCapacity()

unsigned long CvrStgFile::getCapacity | ( | void |  | ) | const

get the capacity of this cvrstgfile

Returns
  the capacity in bytes

## getEmbeddedValue()

EmbValue CvrStgFile::getEmbeddedValue | ( | const SamplePos | pos | ) | const

virtual

get the value that is embedded in the Sample pos

Parameters

  pos | the position of the sample

Returns
  the value that is embedded in the sample at the given sample position

This is equivalent to getSample(pos)->getEmbeddedValue() and is implemented here like this.

May be overwritten by derived class to provide a faster version.

## getEmbValueModulus()

EmbValue CvrStgFile::getEmbValueModulus | ( | void |  | ) | const

inline

values that are embedded in samples will be in 0...Modulus-1 (this is a file-format specific constant)

## getHRCapacity()

std::string CvrStgFile::getHRCapacity | ( | void |  | ) | const

get the capacity as a human-readable string

## getMatchingAlgorithms()

std::vector< MatchingAlgorithm * > CvrStgFile::getMatchingAlgorithms | ( | Graph * | g,
|  | Matching * | m
| ) |  | const

virtual

get recommended list of matching algorithms

Parameters

  m | an empty matching - will be used in construction of MatchingAlgorithm objects

The MatchingAlgorithm objects returned by this function should be deleted by the caller if they are no longer needed.

Reimplemented in WavFile, AuFile, and BmpFile.

## getName()

const std::string& CvrStgFile::getName | ( | void |  | ) | const

inline

get the name of this cvrstgfile

## getProperties()

virtual std::list<Property> CvrStgFile::getProperties | ( | void |  | ) | const

pure virtual

Implemented in DummyFile, AuFile, WavFile, and BmpFile.

## getRadius()

UWORD32 CvrStgFile::getRadius | ( | void |  | ) | const

inline

get the neighbourhood radius (this is a file-format specific constant)

## getSamplesPerVertex()

unsigned short CvrStgFile::getSamplesPerVertex | ( | void |  | ) | const

inline

get the number of samples per vertex (this is a file-format specific constant)

## guessff()

CvrStgFile::FILEFORMAT CvrStgFile::guessff | ( | BinaryIO * | io | ) |

static private

guesses the file format by looking at the first few bytes

## is_std()

bool CvrStgFile::is_std | ( | void |  | ) | const

inline

## read()

void CvrStgFile::read | ( | BinaryIO * | io | ) |

virtual

Reimplemented in AuFile, WavFile, and BmpFile.

## readFile()

CvrStgFile * CvrStgFile::readFile | ( | const std::string & | fn | ) |

static

this function reads the file with name fn and returns a *File object of the correct type casted to CvrStgFile.

## setBinIO()

void CvrStgFile::setBinIO | ( | BinaryIO * | io | ) |

inline protected

## setEmbValueModulus()

void CvrStgFile::setEmbValueModulus | ( | EmbValue | m | ) |

inline protected

## setRadius()

void CvrStgFile::setRadius | ( | UWORD32 | r | ) |

protected

set Radius to r unless Args.Radius is set (set Radius to Args.Radius.getValue() then)

## setSamplesPerVertex()

void CvrStgFile::setSamplesPerVertex | ( | unsigned short | spv | ) |

inline protected

## transform()

void CvrStgFile::transform | ( | const std::string & | fn | ) |

## write()

void CvrStgFile::write | ( | void |  | ) |

virtual

Reimplemented in AuFile, WavFile, and BmpFile.

## Member Data Documentation

## BinIO

BinaryIO* CvrStgFile::BinIO

private

## EmbValueModulus

EmbValue CvrStgFile::EmbValueModulus

private

## Radius

UWORD32 CvrStgFile::Radius

private

## SamplesPerVertex

unsigned short CvrStgFile::SamplesPerVertex

private

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

- CvrStgFile.h
- CvrStgFile.cc