Adobe.com
Contents Suites Classes Class Index Member Index

ai::IDataFilter Class Reference

A stack-based wrapper class over AIDataFilterSuite. More...

#include <IAIDataFilter.hpp>

Inheritance diagram for ai::IDataFilter:
ai::BaseDataFilter ai::A85DataFilter ai::AsyncDataFilter ai::BlockDataFilter ai::BufferDataFilter ai::FileDataFilter ai::ResourceDataFilter ai::ScopedDataFilter ai::VMDataFilter ai::ZDataFilter ai::ZStdDataFilter

List of all members.

Public Types

enum  Mode { kRead, kWrite, kAppend }
 

Data Filter Modes.

More...
enum  Error { kInvalidFilterModeError = 'IFME' }

Public Member Functions

virtual AIDataFilterGetFilter () const AINOEXCEPT=0
 Returns the effective AIDataFilter, use it to pass to various SDK APIs which requires AIDataFilter.
virtual AIDataFilterReleaseFilter () AINOEXCEPT=0
 Releases and returns the effective AIDataFilter without unlinking the filter.
virtual AIDataFilterGetFirstFilter () const AINOEXCEPT=0
 Returns the first filter in this chain, don't use it in a normal case.
virtual ai::LiteralString GetAIMode () const AINOEXCEPT=0
 Returns filter mode to be passed on to AIDataFilter APIs.
virtual Mode GetMode () const AINOEXCEPT=0
 Returns the filter mode enum value.
virtual void Read (char *store, size_t &count)=0
 AIDataFilterSuite::ReadDataFilter
virtual void Write (const char *store, size_t count)=0
 AIDataFilterSuite::WriteDataFilter
virtual void Seek (sizediff_t newPos)=0
 AIDataFilterSuite::SeekDataFilter
virtual sizediff_t Mark () const =0
 AIDataFilterSuite::MarkDataFilter
virtual ContentType ReadFilterContent ()=0
 Returns the entire content of the filter.
virtual size_t ContentSize ()=0
 Returns the size of the content in bytes.
virtual void Link (std::unique_ptr< IDataFilter > nextFilter)=0
 Link a new data filter to the current chain.
virtual ~IDataFilter ()

Detailed Description

A stack-based wrapper class over AIDataFilterSuite.

Prefer this class over directly accessing the AIDataFilterSuite APIs. Create various convenient, stack-based various data filters and link them together for different needs

Most of the methods throw ai::Error if any error is encountered. Check for AINOEXCEPT in method signature which doesn't throw any error.

Usage Examples:

Create a File Data filter auto dataFilter = ai::CreateFileDataFilter(filePath, IDataFilter::Mode::kRead, 0, 0);

Create a linked Zlib Compression filter for compressed write and uncompressed read Option 1: Link while Creation auto dataFilter = ai::CreateFileDataFilter(filePath, IDataFilter::Mode::kRead, 0, 0, ai::CreateZDataFilter(IDataFilter::Mode::kRead) );

Option 2: Link After Creation dataFilter->Link(ai::CreateZDataFilter(IDataFilter::Mode::kRead));

Read from filter char buff[1024] = {}; size_t buffSize(sizeof(buff)); dataFilter->Read(buff, buffSize);

Write to filter dataFilter->Write(buff, buffSize);


Member Enumeration Documentation

Enumerator:
kInvalidFilterModeError 

If read calls are made on write/append filter or write calls are made on read filters.

Data Filter Modes.

Enumerator:
kRead 

Read Mode.

kWrite 

Write Mode.

kAppend 

Append Mode.


Constructor & Destructor Documentation

virtual ai::IDataFilter::~IDataFilter (  )  [virtual]

Member Function Documentation

virtual size_t ai::IDataFilter::ContentSize (  )  [pure virtual]

Returns the size of the content in bytes.

The size gets computed with forward and backward seeking. Not all DataFilter support seeking.

Implemented in ai::BaseDataFilter.

virtual ai::LiteralString ai::IDataFilter::GetAIMode (  )  const [pure virtual]

Returns filter mode to be passed on to AIDataFilter APIs.

Implemented in ai::BaseDataFilter.

virtual AIDataFilter* ai::IDataFilter::GetFilter (  )  const [pure virtual]

Returns the effective AIDataFilter, use it to pass to various SDK APIs which requires AIDataFilter.

Implemented in ai::BaseDataFilter.

virtual AIDataFilter* ai::IDataFilter::GetFirstFilter (  )  const [pure virtual]

Returns the first filter in this chain, don't use it in a normal case.

It is used to chain two filter chains together

Implemented in ai::BaseDataFilter.

virtual Mode ai::IDataFilter::GetMode (  )  const [pure virtual]

Returns the filter mode enum value.

Implemented in ai::BaseDataFilter.

virtual void ai::IDataFilter::Link ( std::unique_ptr< IDataFilter nextFilter  )  [pure virtual]

Link a new data filter to the current chain.

No need to specifically unlink. Unlink is called in the destructor AIDataFilterSuite::LinkDataFilter

virtual sizediff_t ai::IDataFilter::Mark (  )  const [pure virtual]
virtual void ai::IDataFilter::Read ( char *  store,
size_t &  count 
) [pure virtual]
virtual ContentType ai::IDataFilter::ReadFilterContent (  )  [pure virtual]

Returns the entire content of the filter.

Use it only for small files. When the entire content of the filter can be read in a continuous dynamic memory.

Implemented in ai::BaseDataFilter.

virtual AIDataFilter* ai::IDataFilter::ReleaseFilter (  )  [pure virtual]

Releases and returns the effective AIDataFilter without unlinking the filter.

This should only be used when the AIDataFilter is owned by another IDataFilter.

Implemented in ai::BaseDataFilter.

virtual void ai::IDataFilter::Seek ( sizediff_t  newPos  )  [pure virtual]
virtual void ai::IDataFilter::Write ( const char *  store,
size_t  count 
) [pure virtual]

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


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2014 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks