Purpose:
The DKBlobDL class is one of the concrete subclasses of dkBlob. DKBlobDL defines the public interface for BLOB parts in Content Manager. It inherits the public interface of dkBlob (and therefore from dkXDO and dkXDOBase) and implements any abstract functions present in the interfaces of those base classes.
Heirarchy:
dkDataObjectBase dkXDOBase dkXDO dkBlob DKBlobDL
Class summary:
public: DKString dumpContent (); DKBlobDL (); DKBlobDL (DKDatastoreDL* dsDL); DKBlobDL (DKDatastoreDL* dsDL, const DKString& data); DKBlobDL (const DKBlobDL& blob); virtual ~DKBlobDL (); virtual DKString getObjectType () const; virtual void setNull (); virtual DKBoolean isNull () const; virtual dkXDOBase& operator= (const dkXDOBase& xdo); virtual DKBoolean operator== (const dkXDOBase& xdo) const; virtual DKBoolean operator!= (const dkXDOBase& xdo) const; virtual void deletingValue (); virtual void open (); virtual void setPidObject (const DKPidXDO* pid); virtual const DKPidXDO* getPidObject (); virtual void setDatastore(dkDatastore* ds); virtual dkXDO& add (); virtual dkXDO& retrieve (); virtual dkXDO& update (); virtual dkXDO& del (); virtual dkXDO& copyData (const dkXDO& xdo); virtual DKBoolean compareData (const dkXDO& xdo); virtual DKBoolean isContentChanged () const; virtual DKBoolean isSet () const; virtual dkXDO* cloneSkeleton (); virtual DKString getContent () const; virtual dkXDO& setContent (const DKString& data); virtual long size(); virtual dkBlob& getContentToClientFile (const char* fName, int fOpt) const; virtual dkBlob& setContentFromClientFile (const char* fName); virtual dkBlob& operator += (const dkBlob& blob); virtual dkBlob& operator += (const DKString& data); virtual long length () const; virtual long indexOf (const DKString& data, long startPos = 1) const; virtual long indexOf (const dkBlob& blob, long startPos = 1) const; virtual DKString subString (long startPos, long len) const; virtual dkBlob& remove (long startPos, long len); virtual dkBlob& insert (const DKString& data, long startPos); virtual dkBlob& insert (const dkBlob& blob, long startPos); virtual void open (const char* fName); virtual void setClassOpenHandler (const char* hOpen, DKBoolean sysFlag); virtual void setInstanceOpenHandler (const char* hOpen, DKBoolean sysFlag); virtual DKString getOpenHandler (); virtual DKBoolean isOpenSynchronous (); virtual dkBlob& add (const char* fName); virtual dkBlob& retrieve (const char* fName); virtual dkBlob& update (const char* fName); virtual dkBlob& del (DKBoolean flush); virtual long retrieveAsync(long readLength, DKBoolean concateFlag); virtual long retrieveAsyncNext(); virtual void retrieveAsyncEnd(); DKString getItemId () const; void setItemId (const char* itemId); unsigned long getPartId () const; void setPartId (unsigned long partId); DKString getRepType () const; void setRepType (const char* repType); unsigned long getContentClass (); void setContentClass (unsigned long ccls); virtual unsigned long getAffiliatedType (); virtual void setAffiliatedType (unsigned long affType); virtual DKString getMimeType(); virtual void setMimeType(const char* mimeType); virtual void setContentType(const char* contentType); DKAnnotation& getAffiliatedData (); void setAffiliatedData (const DKAnnotation& affData); DKString mimeType (); DKString getCreatedTimestamp (); DKString getUpdatedTimestamp (); void setUpdatedTimestamp (const DKString& timestamp); long getRetrievalAction (); void setRetrievalAction (long action); long getSize (); void setSize (long size); DKString getSearchEngine (); void setSearchEngine (const DKString& searchEngine); DKString getSearchIndex (); void setSearchIndex (const DKString& searchIndex); DKString getSearchInfo (); void setSearchInfo (const DKString& searchInfo); void setToBeIndexed (); virtual DKBlobDL& operator= (const DKBlobDL& aDKBlobDL); virtual DKBlobDL& operator+ (const DKBlobDL& blob) const; virtual DKBlobDL& operator+ (const DKString& data) const; friend DKBlobDL& operator+ (const DKString& data, const DKBlobDL& blob); virtual DKBlobDL& subLob (long startPos, long len) const; DKBoolean getIndexFlag (); void setIndexFlag (DKBoolean flag); void setAffTocFlag (DKBoolean flag); virtual long getRank (); virtual void setRank (long r); virtual void getOption (long option, DKAny& value); virtual void setOption (long option, DKAny& value); DKBoolean isCategoryOf (long cat); long retrieveObjectState (long object); void addExtension (const DKString& name, const dkExtension* object); void removeExtension (const DKString& name); void setExtension (const DKString& name, const dkExtension* object); const dkExtension* getExtension (const DKString& name); void changeStorage (); virtual DKBoolean isMultiStreamBlob (); virtual void setMultiStreamBlob (DKBoolean tf); virtual DKBoolean isMultiStreamFlagSet (); virtual void setMultiStreamFlag (DKBoolean tf); unsigned long listStreamName (DKString* &stringArray) const; const DKString& getStreamContent (const DKString& streamName) const; dkBlob& setStreamContent (const DKString& streamName, const DKString& data); long streamLength (const DKString& streamName) const; const DKAnnotationDL* getAnnotationData (); void setAnnotationData (const DKAnnotationDL* p); };
Members:
DKBlobDL (); DKBlobDL (DKDatastoreDL* dsDL); DKBlobDL (DKDatastoreDL* dsDL, const DKString& data); DKBlobDL (const DKBlobDL& blob); virtual ~DKBlobDL ();
virtual DKString getObjectType () const;
virtual void setNull ();
virtual DKBoolean isNull () const;
virtual dkXDOBase& operator= (const dkXDOBase& xdo);
virtual DKBoolean operator== (const dkXDOBase& xdo) const;
virtual DKBoolean operator!= (const dkXDOBase& xdo) const;
virtual void deletingValue ();
virtual void open ();
virtual void setPidObject (const DKPidXDO* pid);
virtual const DKPidXDO* getPidObject ();
virtual void setDatastore(dkDatastore* ds);
virtual dkXDO& add ();
virtual dkXDO& retrieve ();
virtual dkXDO& update ();
virtual dkXDO& del ();
virtual dkXDO& copyData (const dkXDO& xdo);
virtual DKBoolean compareData (const dkXDO& xdo);
virtual DKBoolean is ContentChanged () const;
virtual DKBoolean isSet () const;
virtual dkXDO& cloneSkeleton ();
virtual DKString getContent () const;
virtual dkXDO& setContent (const DKString& data);
virtual long size();
virtual dkBlob& getContentToClientFile (const char* fName, int fOpt) const;
virtual dkBlob& setContentFromClientFile (const char* fName);
virtual dkBlob& operator += (const dkBlob& blob);
virtual dkBlob& operator += (const DKString& data);
virtual long length () const;
virtual long indexOf (const DKString& data,long startPos = 1) const;
virtual long indexOf (const dkBlob& blob,long startPos = 1) const;
virtual DKString subString (long startPos, long len) const;
virtual dkBlob& remove (long startPos, long len);
virtual dkBlob& insert (const DKString& data, long startPos); virtual dkBlob& insert (const dkBlob& blob, long startPos);
virtual void open (const char* fName);
virtual void setClassOpenHandler (const char* hOpen, DKBoolean sysFlag);
virtual void setInstanceOpenHandler (const char* hOpen, DKBoolean sysFlag);
virtual DKString getOpenHandler ();
virtual DKBoolean isOpenSynchronous ();
virtual dkBlob& add (const char* fName);
virtual dkBlob& retrieve (const char* fName);
virtual dkBlob& update (const char* fName);
virtual dkBlob& del (DKBoolean flush);
Parameters
virtual long retrieveAsync(long readLength, DKBoolean concateFlag);
virtual long retrieveAsyncNext();
virtual void retrieveAsyncEnd();
DKString getItemId () const;
void setItemId (const char* itemId);
unsigned long getPartId () const;
void setPartId (unsigned long partId);
DKString getRepType () const;
void setRepType (const char* repType);
unsigned long getContentClass ();
void setContentClass (unsigned long ccls);
virtual unsigned long getAffiliatedType ();
virtual void setAffiliatedType (unsigned long affType);
virtual DKString getMimeType();
virtual void setMimeType(const char* mimeType);
virtual void setContentType(const char* contentType);
DKAnnotation& getAffiliatedData ();
void setAffiliatedData (const DKAnnotation& affData);
DKString mimeType ();
DKString getCreatedTimestamp ();
void setCreatedTimestamp (const DKString& timestamp);
DKString getUpdatedTimestamp ();
void setUpdatedTimestamp (const DKString& timestamp);
long getRetrievalAction ();
void setRetrievalAction (long action);
long getSize ();
void setSize (long size);
DKString getSearchEngine ();
void setSearchEngine (const DKString& searchEngine);
DKString getSearchIndex ();
void setSearchIndex (const DKString& searchIndex);
DKString getSearchInfo ();
void setSearchInfo (const DKString& searchInfo);
void setToBeIndexed ();
virtual DKBlobDL& operator= (const DKBlobDL& aDKBlobDL);
virtual DKBlobDL& operator+ (const DKBlobDL& blob) const;
virtual DKBlobDL& operator+ (const DKString& data) const;
friend DKBlobDL& operator+ (const DKString& data,const DKBlobDL& blob);
virtual DKBlobDL& subLob (long startPos, long len) const;
DKBoolean getIndexFlag ();
void setIndexFlag (DKBoolean flag);
void setAffTocFlag (DKBoolean flag);
long getRank ();
void setRank (long r);
Valid options:
Valid values for non-media objects:
Valid values for media objects:
Valid values are:
Restrictions -- For media objects, only the following values are valid:
Example code:
DKDatastoreDL dsDL; DKBlobDL* axdo = new DKBlobDL(&dsDL); DKAny opt; axdo->getOption(DK_DL_OPT_DELETE_OPTION, opt); long lopt = opt; if (lopt == DK_DL_DELETE_OBJECT_ONLY) cout << "delete option(DK_DL_DELETE_OBJECT_ONLY) =" << lopt << endl;
void getOption (long option, DKAny& value);
Valid options:
Valid values for non-media objects:
Valid values for media objects:
Valid values are:
Restrictions -- For media objects,only the following values are valid:
Example code:
DKDatastoreDL dsDL; DKBlobDL* axdo = new DKBlobDL(&dsDL); DKAny delOpt = DK_DL_DELETE_NO_DROPITEM_MEDIA_AVAIL; axdo->setOption(DK_DL_OPT_DELETE_OPTION, delOpt); void setOption (long option, DKAny& value);
Valid category names are:
Example code:
DKDatastoreDL dsDL; DKBlobDL* axdo = new DKBlobDL(&dsDL); DKBoolean flag = axdo->isObjectCategory(DK_DL_INDEXED_OBJECT); if (flag) { DKSearchEngineInfoDL* srchInfo = (DKSearchEngineInfoDL*)axdo->getExtension ("DKSearchEngineInfoDL"); cout << "ServerName=" << srchInfo-> getServerName() << endl; cout << "srchEngine=" << srchInfo-> getSearchEngine() << endl; cout << "srchIndex=" << srchInfo-> getSearchIndex() << endl; cout << "TextIndex=" << srchInfo-> getTextIndex() << endl; cout << "indexedState=" << axdo-> retrieveObjectState (DK_DL_INDEXED_OBJECT) << endl; }
DKBoolean isCategoryOf (long cat);
Valid category names are:
Valid status:
Valid status:
long retrieveObjectState (long object);
void addExtension(const char* extensionName, const dkExtension* extensionObj);
void removeExtension (const DKString& name);
Class summary:
DKDatastoreDL dsDL; DKBlobDL* axdo = new DKBlobDL(&dsDL); //--- set DKSearchEngineInfoDL ----- DKSearchEngineInfoDL aSrchEx; aSrchEx.setSearchEngine("SM"); aSrchEx.setSearchIndex("TM-TMINDEX"); aSrchEx.setSearchInfo("ENU"); axdo->setExtension("DKSearchEngineInfoDL", (dkExtension*)&aSrchEx); //------- set DKAnnotationDL ------- DKAnnotationDL ann; ann.setPart(9); ann.setPageNumber(9); ann.setX(49); ann.setY(19); axdo->setExtension("DKAnnotationDL", (dkExtension*)&ann); axdo->setAffiliatedType(DK_DL_ANNOTATION); //------- set DKMediaStreamInfoDL ------- DKMediaStreamInfoDL aVS; aVS.setMediaFullFileName("/home/VIDEOS/surgery1.mpg"); aVS.setMediaObjectOption(DK_DL_VS_SINGLE_OBJECT); aVS.setMediaHostName("vcharger1a.stl.ibm.com"); aVS.setMediaUserId("root"); aVS.setMediaPassword("video2"); aVS.setMediaCopyRate(0); aVS.setMediaInvalidCommands(20); aVS.setMediaDurSeconds(30); aVS.setMediaDurFrames(46); aVS.setMediaFrameRate(2900); aVS.setMediaBitRate(1536000); aVS.setMediaNumberOfUsers(1); aVS.setMediaAssetGroup("AG"); aVS.setMediaType("MPEG2"); aVS.setMediaResolution("SIF"); aVS.setMediaStandard("NTSC"); aVS.setMediaFormat("SYSTEM"); axdo->setExtension("DKMediaStreamInfoDL", (dkExtension*)&aVS); axdo->setContentClass(DK_DL_CC_IBMVSS); //------- set DKStorageManageInfoDL ------- DKStorageManageInfoDL aSMS; aSMS.setCollectionName("CBR.TESTCOLLECT1"); aSMS.setRetention(555); aSMS.setManagementClass("TESTMGT1");; aSMS.setStorageClass("FIXED"); aSMS.setStoreSite("OBJSRVRN"); axdo->setExtension("DKStorageManageInfoDL", (dkExtension*)&aSMS);
void setExtension (const DKString& name, const dkExtension* object);
const dkExtension* getExtension (const DKString& name);
The collection name, the management class name and the storage class name will be all converted to upper case by the system. These names must be valid on the object server where you store the object. If you change the collection name and specify a null string as the class name, the function places the object in the default class for the specified collection.
You cannot move the object from one server to another using this function, therefore, you cannot change the StoreSite. If the change causes any physical movement of the object, it might be deferred until the storage management cycle runs on the server.
Class summary:
DKDatastoreDL dsDL; DKBlobDL* axdo = new DKBlobDL(&dsDL); //------- set DKMediaStreamInfoDL ------- DKStorageManageInfoDL aSMS; aSMS.setCollectionName("CBR.COLLECT3"); aSMS.setRetention(888); aSMS.setManagementClass("MGTCLASS");; aSMS.setStorageClass("FIXED"); axdo->setExtension("DKStorageManageInfoDL", (dkExtension*)&asMS); cout <<"about to call changeStorage()...."<<endl; axdo->changeStorage(); cout <<"changeStorage() success...."<<endl;
void changeStorage ();
virtual DKBoolean isMultiStreamBlob ();
virtual void setMultiStreamBlob (DKBoolean tf);
virtual DKBoolean isMultiStreamFlagSet ();
virtual void setMultiStreamFlag (DKBoolean tf);
unsigned long listStreamName (DKString* &stringArray) const;
const DKString& getStreamContent (const DKString& streamName) const;
dkBlob& setStreamContent (const DKString& streamName, const DKString& data);
long streamLength (const DKString& streamName) const;
const DKAnnotationDL* getAnnotationData ();
void setAnnotationData (const DKAnnotationDL* p);
Exceptions:
(c) Copyright International Business Machines Corporation 1996, 2003. IBM Corp. All rights reserved.