Index

DXBlobIP

Purpose:

This is the class that is used to represent an XDO for IP. A BLOB (XDO) represents the base or annotation part of an Image Plus for OS/390 document.

Methods:

initialization
   init(LPDISPATCH datastore);

If this method is used it must be called following the creation of a DXBlobIP object (except for methods returning a DXBlobIP object). Initialize xdo with the datastore from IP. The input parameter LPDISPATCH pointer contains a DXDatastoreIP object.

add
   add([VARIANT fileName]);

Adds this object, identified by its PID, to the datastore. The object is added to ImagePlus for OS/390 as an object distribution manager (ODM) document or annotation. The optional parameter is in the form of a String. If no file name is specified, then the content of this object will be added to the persistent store. If a file name is specified, then the content of the file will be added to the persistent store. The filename could be a full path name. With a very large file, this operation is more efficient than calling setContentFromClientFile, followed by add; this will serve to help avoid out-of-memory problems.

addExtension
    addExtension(LPDISPATCH extensionObj);

Add the extension object for this object. The valid extension object names are the same as for setting the extension object, setExtension. The input parameter LPDISPATCH pointer contains a DXStorageManageInfoIP object.

datastore
   LPDISPATCH datastore();

Gets the datastore. The returned LPDISPATCH pointer contains a DXDatastoreIP object.

del
   del([VARIANT flushFlag]);

Deletes the persistent data of this object, identified by its PID, from the datastore. The optional parameter is in the form of BOOL. If flushFlag is true, it will clear the content (in memory), otherwise the current content will be preserved. The default is to clear the current content.

ImagePlus for OS/390 only supports the deletion of ODM annotations, not ODM documents. Before the annotation can be deleted, the following steps must take place:

  1. The document (DDO) to which the annotation belongs must be locked using DXDatastoreIP.checkOut.
  2. The locked document (DDO) to which the annotation belongs must be associated with this BLOB object using setDDO.

This method updates the ODM annotation associated with the locked document (DDO). At this time, deleting the entire annotation object from ODM has limitations. The annotations object is actually set to a null-terminated string of length 1.

Note: The locked document (DDO) will be unlocked upon return, so the DXDatastoreIP.checkIn method need not be called after the update.

getAffiliatedType
   long getAffiliatedType();

Gets the affiliated type. For ImagePlus for OS/390, the possible affiliated types are:

getContent
   BSTR getContent();

Gets the lob data content.

getContentClass
   long getContentClass();

Gets the content class of the lob data content.

getContentToClientFile
   getContentToClientFile(LPCTSTR filename, long fileOption);

Copies the lob data content of this object to the named file.

getCreatedTimestamp
   BSTR getCreatedTimestamp();

Gets the data and time that the ODM base document was created.

getDDO
   LPDISPATCH getDDO();

Gets the document (DDO) associated with the ODM annotation. The returned LPDISPATCH pointer contains a DXDDOIP object.

getDescription
   BSTR getDescription();

Gets the description.

getDocId
   BSTR getDocId();

Gets the document id.

getExtension
    LPDISPATCH  getExtension(LPCTSTR extensionName);

Gets the extension object for this object. The returned LPDISPATCH pointer contains a DXStorageManageInfoIP object. Valid extension names are:

getMimeType
   BSTR getMimeType();

Gets the MIME type representing this object's content class.

getOpenHandler
   BSTR getOpenHandler();

Gets the executable handler program name for this object instance. If no setInstanceOpenHandler call has been made for this object instance, then the class open handler will be returned. Otherwise, the instance open handler will be returned.

getPageCount
   long getPageCount();

Gets the number of pages in the ODM document or annotation represented by this object.

getPartId
   long getPartId();

Gets the part id.

getPidObject
   LPDISPATCH getPidObject();

Gets the PID object. The returned LPDISPATCH pointer contains a DXPidXDOIP object.

getSize
   long getSize();

Gets the size of the object content from the datastore. It will not retrieve the object content from the datastore.

getUpdatedTimestamp
   BSTR getUpdatedTimestamp();

Gets the data and time that the ODM document was last updated.

isContentChanged
   BOOL isContentChanged();

Returns true if content has changed.

isNull
   BOOL isNull();

Returns true is object is null.

isOpenSynchronous
   BOOL isOpenSynchronous();

Returns true if the open handler methods were called with true for the synchronous flag.

isSet
   BOOL isSet();

Returns true if content data is set.

length
   long length();

Returns the length of the lob content of this object.

open
   open([VARIANT fileName]);

If no file name is specified, then the content of the object will be unloaded to a client file with a system generated name and then the appropriate instance or class handler will be invoked against the file. If a file name is specified, then the content of the object will be unloaded to the file specified and the appropriate instance or class handler invoked against the file.

removeExtension
    removeExtension(LPDISPATCH extensionObj);

Remove the extension object from this object. The input parameter LPDISPATCH pointer contains a DXStorageManageInfoIP object.

retrieve
   retrieve([VARIANT fileName]);

Retrieves the persistent data of this object from the datastore. The optional parameter is in the form of a String. If no file name specified, then this object content identified by its PID, will be retrieved from the datastore to the memory buffer of this object. If a file name is specified, then the content of this object will be retrieved from the datastore to the specified file, which can be an absolute pathname. For a very large object, this will serve to help avoid out-of-memory problems.

setAffiliatedType
   setAffiliatedType(long affiliatedType);

Sets the affiliated type of the object. For ImagePlus for OS/390, the possible affiliated types are:

setClassOpenHandler
   setClassOpenHandler(LPCTSTR aHandler, BOOL newSynchronousFlag);

Sets the executable handler program name, and whether this handler should be invoked synchronously or asynchronously for the class.

setContent
   setContent(LPCTSTR content);

Sets the lob data content.

setContentClass
   setContentClass(long aContentClass);

Sets the content class of the lob data.

setContentFromClientFile
   setContentFromClientFile(LPCTSTR filename);

Sets the content lob data from the contents of the given file.

setDDO
   setDDO(LPDISPATCH ddo);

Sets the locked document (DDO) associated with the ODM annotation. The DDO must be locked before making the method call. The input parameter LPDISPATCH pointer contains a DXDDOIP object. The associated DDO is used by the following methods:

setDescription
   setDescription(LPCTSTR name);

Sets the description field for an ODM annotation. This is an optional parameter, and is recognized for the following actions:

setDocId
    setDocId(LPCTSTR itemId);

Sets the document identifier, which is the FAF document ID. For ImagePlus for OS/390, the document ID is required for:

setExtension
     setExtension(LPDISPATCH extensionObj);

Sets the extension object for this object. The input parameter LPDISPATCH pointer contains a DXStorageManageInfoIP object. Valid extension object names are:

Code example:

    Dim dsIP As New DXDatastoreIP
 
    Dim xdo As New DXBlobIP
 
    xdo.init dsIP
 
    xdo.setDocId "GAWCVGGVFUG428UJ"
 
 
    //------- set DXStorageManageInfoIP -------
 
    Dim aSMS As New DXStorageManageInfoIP
 
    aSMS.setCollectionName "IMG.CLLCT003.P20"
 
    xdo.setExtension aSMS
 
    xdo.setContentClass DX_IP_CC_MODCA_IS2
 
    xdo.add

setInstanceOpenHandler
   setInstanceOpenHandler(LPCTSTR aHandler, BOOL newSynchronousFlag);

Sets the executable handler program name, and whether this handler should be invoked synchronously or asynchronously for this object instance.

setNull
   setNull();

Set this object to null.

setPageCount
   setPageCount(long pageCount);

Sets the page count of the object distribution manager (ODM), represented by this binary large object (BLOB). The pageCount value must be greater than 0.

setPartId
   setPartId(long partId);

Sets the part id.

setPidObject
   setPidObject(LPDISPATCH pidXDO);

Sets the PID object. The input parameter LPDISPATCH pointer contains a DXPidXDOIP object.

update
   update([VARIANT fileName]);

Updates the persistent data of this object to the datastore. The optional parameter is in the form of a String. If no file name is specified, the object content in the datastore will be replaced with the content (in memory) of this object. If a file name is specified, then the object content in the datastore will be replaced with the content of the given file. ImagePlus for OS/390 only supports the updating of ODM annotations, not ODM documents. Before the annotation can be updated, the following steps must take place:

  1. The document (DDO) to which the annotation belongs must be locked using the DXDatastoreIP.checkOut method
  2. The locked document (DDO) to which the annotation belongs must be associated with this BLOB object using the setDDO method

This method updates the ODM annotation associated with the locked document (DDO). Note: The locked document (DDO) will be unlocked upon return, so the DXDatastoreIP.checkIn method need not be called after the update.

(c) Copyright International Business Machines Corporation 1996, 2002. IBM Corp. All rights reserved.