Horus Doc || Corba Reference || Corba   Client Server   Stubs C++   Stubs Java   Servant Generator  

HxImageRepManager Class Reference

Subclass of DefaultDataObjectManager that handles images. More...

#include <HxImageRepManager.h>

Inheritance diagram for HxImageRepManager::

HxDefaultDataObjectManager HxDataObjectManager List of all members.

Public Methods

 HxImageRepManager ()
virtual ~HxImageRepManager ()
virtual void setTotalLimit (HxString unit, int value)
 Set limit on given unit. More...

virtual int getTotalLimit (HxString unit)
virtual void setObjectLimit (HxString unit, int value)
 Set limit (per object) on given unit. More...

virtual int getObjectLimit (HxString unit)
virtual int getUsed (HxString unit)
virtual void getUnitList (HxStringListBackInserter slPtr)
 List unit names that this manager can handle. More...


Protected Types

typedef HxDefaultObjectInfo HxImageRepInfo_base

Protected Methods

virtual HxDefaultObjectInfo * createObjectInfo ()
 Factory function that creates objectInfos. More...

virtual void setObjectInfo (PortableServer::Servant servant, HxDefaultObjectInfo *info)
 Function called by "objectCreated". More...

virtual void updateObjectInfo (PortableServer::Servant servant, HxDefaultObjectInfo *info)
 Function called by "objectUsed". More...

virtual void removeObjectInfo (HxDefaultObjectInfo *info)
virtual bool objectExceedsLimit (HxDefaultObjectInfo *info)
virtual bool objectCanGrow ()
virtual bool limitExceeded ()

Protected Attributes

int _usedRows
int _totalRowLimit
int _imageRowLimit
int _usedCols
int _totalColLimit
int _imageColLimit

Detailed Description

Subclass of DefaultDataObjectManager that handles images.


Member Typedef Documentation

typedef HxDefaultObjectInfo HxImageRepManager::HxImageRepInfo_base [protected]
 


Constructor & Destructor Documentation

HxImageRepManager::HxImageRepManager  
 

00020     : HxDefaultDataObjectManager("IDL:HxCorba/ImageRep:1.0", "Images"),
00021      _totalRowLimit(-1), _imageRowLimit(-1), _usedRows(0),
00022      _totalColLimit(-1), _imageColLimit(-1), _usedCols(0)
00023 {
00024 }

HxImageRepManager::~HxImageRepManager   [virtual]
 

00028 {
00029 }


Member Function Documentation

void HxImageRepManager::setTotalLimit HxString    unit,
int    value
[virtual]
 

Set limit on given unit.

All objects together don't have to exceed that limit.

Reimplemented from HxDefaultDataObjectManager.

00121 {
00122     if(unit == ROWS_UNIT) _totalRowLimit = value;
00123     else if(unit == COLS_UNIT) _totalColLimit = value;
00124     HxDefaultDataObjectManager::setTotalLimit(unit, value);
00125 }

int HxImageRepManager::getTotalLimit HxString    unit [virtual]
 

Reimplemented from HxDefaultDataObjectManager.

00129 {
00130     if(unit == ROWS_UNIT) return _totalRowLimit;
00131     else if(unit == COLS_UNIT) return _totalColLimit;
00132     else return HxDefaultDataObjectManager::getTotalLimit(unit);
00133 }

void HxImageRepManager::setObjectLimit HxString    unit,
int    value
[virtual]
 

Set limit (per object) on given unit.

Any object can exceed that limit.

Reimplemented from HxDefaultDataObjectManager.

00105 {
00106     if(unit == ROWS_UNIT) _imageRowLimit = value;
00107     else if(unit == COLS_UNIT) _imageColLimit = value;
00108     HxDefaultDataObjectManager::setObjectLimit(unit, value);
00109 }

int HxImageRepManager::getObjectLimit HxString    unit [virtual]
 

Reimplemented from HxDefaultDataObjectManager.

00113 {
00114     if(unit == ROWS_UNIT) return _imageRowLimit;
00115     else if(unit == COLS_UNIT) return _imageColLimit;
00116     else return HxDefaultDataObjectManager::getObjectLimit(unit);
00117 }

int HxImageRepManager::getUsed HxString    unit [virtual]
 

Reimplemented from HxDefaultDataObjectManager.

00137 {
00138     if(unit == ROWS_UNIT) return _usedRows;
00139     else if(unit == COLS_UNIT) return _usedCols;
00140     else return HxDefaultDataObjectManager::getUsed(unit);
00141 }

void HxImageRepManager::getUnitList HxStringListBackInserter    slPtr [virtual]
 

List unit names that this manager can handle.

Reimplemented from HxDefaultDataObjectManager.

00097 {
00098     HxDefaultDataObjectManager::getUnitList(slPtr);
00099     *slPtr++ = ROWS_UNIT;
00100     *slPtr++ = COLS_UNIT;
00101 }

HxImageRepManager::HxDefaultObjectInfo * HxImageRepManager::createObjectInfo   [protected, virtual]
 

Factory function that creates objectInfos.

Reimplemented from HxDefaultDataObjectManager.

00033 {
00034     return new HxImageRepInfo();
00035 }

void HxImageRepManager::setObjectInfo PortableServer::Servant    servant,
HxDefaultObjectInfo *    info
[protected, virtual]
 

Function called by "objectCreated".

Write object info on struct and update limits.

Reimplemented from HxDefaultDataObjectManager.

00040 {
00041     HxDefaultDataObjectManager::setObjectInfo(servant, info);
00042 
00043     HxImageRepInfo* imageInfo = static_cast<HxImageRepInfo*>(info);
00044 
00045     HxImageRepTiedSvt::TieT* tie = dynamic_cast<HxImageRepTiedSvt::TieT*>(servant);
00046     HxImageRep* img = tie->_tied_object();
00047 
00048     imageInfo->nCols = img->dimensionSize(1);
00049     imageInfo->nRows = img->dimensionSize(2);
00050 
00051     _usedRows += imageInfo->nRows;
00052     _usedCols += imageInfo->nCols;
00053 }

void HxImageRepManager::updateObjectInfo PortableServer::Servant    servant,
HxDefaultObjectInfo *    info
[protected, virtual]
 

Function called by "objectUsed".

Write object info on struct (in case that the object has been modified) and update limits.

Reimplemented from HxDefaultDataObjectManager.

00057 {
00058     HxDefaultDataObjectManager::updateObjectInfo(servant, info);
00059 
00060     // images can not grow: do nothing.
00061 }

void HxImageRepManager::removeObjectInfo HxDefaultObjectInfo *    info [protected, virtual]
 

Reimplemented from HxDefaultDataObjectManager.

00065 {
00066     HxImageRepInfo* imageInfo = static_cast<HxImageRepInfo*>(info);
00067     _usedRows -= imageInfo->nRows;
00068     _usedCols -= imageInfo->nCols;
00069 
00070     HxDefaultDataObjectManager::removeObjectInfo(info);
00071 }

bool HxImageRepManager::objectExceedsLimit HxDefaultObjectInfo *    info [protected, virtual]
 

Reimplemented from HxDefaultDataObjectManager.

00075 {
00076     HxImageRepInfo* imageInfo = static_cast<HxImageRepInfo*>(info);
00077     return ((_imageRowLimit >= 0) && (imageInfo->nRows > _imageRowLimit))
00078         || ((_imageColLimit >= 0) && (imageInfo->nCols > _imageColLimit));
00079 }

bool HxImageRepManager::objectCanGrow   [protected, virtual]
 

Reimplemented from HxDefaultDataObjectManager.

00083 {
00084     return false;
00085 }

bool HxImageRepManager::limitExceeded   [protected, virtual]
 

Reimplemented from HxDefaultDataObjectManager.

00089 {
00090     return HxDefaultDataObjectManager::limitExceeded() || 
00091         ((_totalRowLimit >= 0) && (_usedRows > _totalRowLimit)) || 
00092         ((_totalColLimit >= 0) && (_usedCols > _totalColLimit));
00093 }


Member Data Documentation

int HxImageRepManager::_usedRows [protected]
 

int HxImageRepManager::_totalRowLimit [protected]
 

int HxImageRepManager::_imageRowLimit [protected]
 

int HxImageRepManager::_usedCols [protected]
 

int HxImageRepManager::_totalColLimit [protected]
 

int HxImageRepManager::_imageColLimit [protected]
 


The documentation for this class was generated from the following files:
Generated on Tue Feb 3 14:20:16 2004 for CorbaReference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001