00001 /* 00002 * Copyright (c) 2001, University of Amsterdam, The Netherlands. 00003 * All rights reserved. 00004 * 00005 * Author(s): 00006 * Marc Navarro (mnavarro@wins.uva.nl) 00007 */ 00008 00009 #ifndef HxImageRepManager_h 00010 #define HxImageRepManager_h 00011 00012 #include "HxDefaultDataObjectManager.h" 00013 00014 00016 class HxImageRepManager : public HxDefaultDataObjectManager 00017 { 00018 public: 00019 HxImageRepManager(); 00020 virtual ~HxImageRepManager(); 00021 00022 virtual void setTotalLimit(HxString unit, int value); 00023 virtual int getTotalLimit(HxString unit); 00024 virtual void setObjectLimit(HxString unit, int value); 00025 virtual int getObjectLimit(HxString unit); 00026 virtual int getUsed(HxString unit); 00027 00028 virtual void getUnitList(HxStringListBackInserter slPtr); 00029 00030 protected: 00031 00032 int _usedRows; 00033 int _totalRowLimit; 00034 int _imageRowLimit; 00035 int _usedCols; 00036 int _totalColLimit; 00037 int _imageColLimit; 00038 00039 typedef HxDefaultObjectInfo HxImageRepInfo_base; 00040 00041 struct HxImageRepInfo : public HxImageRepInfo_base 00042 { 00043 int nRows; 00044 int nCols; 00045 }; 00046 00047 virtual HxDefaultObjectInfo* createObjectInfo(); 00048 virtual void setObjectInfo(PortableServer::Servant servant, HxDefaultObjectInfo* info); 00049 virtual void updateObjectInfo(PortableServer::Servant servant, HxDefaultObjectInfo* info); 00050 virtual void removeObjectInfo(HxDefaultObjectInfo* info); 00051 00052 virtual bool objectExceedsLimit(HxDefaultObjectInfo* info); 00053 virtual bool objectCanGrow(); 00054 virtual bool limitExceeded(); 00055 }; 00056 00057 #endif //HxImageRepManager_h 00058