|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jinterop.dcom.core.JIComObjectImplWrapper
public class JIComObjectImplWrapper
Internal Framework class.
Field Summary | |
---|---|
protected IJIComObject |
comObject
|
Fields inherited from interface org.jinterop.dcom.core.IJIComObject |
---|
IID |
Constructor Summary | |
---|---|
protected |
JIComObjectImplWrapper(IJIComObject comObject)
|
Method Summary | |
---|---|
void |
addRef()
Increases the reference count on the COM server by 5 (currently hard coded). |
java.lang.Object[] |
call(JICallBuilder obj)
Executes a method call on the actual COM object represented by this interface. |
java.lang.Object[] |
call(JICallBuilder obj,
int timeout)
Refer IJIComObject.call(JICallBuilder) for details on this method. |
JISession |
getAssociatedSession()
Returns session associated with this object. |
int |
getInstanceLevelSocketTimeout()
Returns the socket timeout set at the instance level. |
java.lang.String |
getInterfaceIdentifier()
Returns the IID of this object |
java.lang.String |
getIpid()
Unique 128 bit uuid representing the interface on the COM server. |
IJIUnreferenced |
getUnreferencedHandler()
Returns the IJIUnreferenced handler associated with this object. |
java.lang.Object[] |
internal_getConnectionInfo(java.lang.String identifier)
Framework Internal Returns the ConnectionPoint (IJIComObject) and it's Cookie. |
org.jinterop.dcom.core.JIInterfacePointer |
internal_getInterfacePointer()
Framework Internal Returns self Interface pointer. |
java.lang.Object[] |
internal_removeConnectionInfo(java.lang.String identifier)
Framework Internal Returns and Removes the connection info from the internal map. |
java.lang.String |
internal_setConnectionInfo(IJIComObject connectionPoint,
java.lang.Integer cookie)
Adds a connection point information and it's cookie to the connectionPointMap internally. |
void |
internal_setDeffered(boolean deffered)
Framework Internal |
boolean |
isDispatchSupported()
Returns true if IDispatch interface is supported
by this object. |
boolean |
isLocalReference()
Returns true if this COM object represents a local Java reference obtained by
JIObjectFactory.buildObject(JISession, JILocalCoClass) . |
IJIComObject |
queryInterface(java.lang.String iid)
Retrieve interface references based on iid . |
void |
registerUnreferencedHandler(IJIUnreferenced unreferenced)
Adds a IJIUnreferenced handler. |
void |
release()
Decreases the reference count on the COM server by 5 (currently hard coded). |
void |
setInstanceLevelSocketTimeout(int timeout)
Sets a timeout for all socket level operations done on this object. |
java.lang.String |
toString()
|
void |
unregisterUnreferencedHandler()
Removes the IJIUnreferenced handler associated with this object. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final IJIComObject comObject
Constructor Detail |
---|
protected JIComObjectImplWrapper(IJIComObject comObject)
Method Detail |
---|
public IJIComObject queryInterface(java.lang.String iid) throws JIException
IJIComObject
Retrieve interface references based on iid
. Make sure to
narrow before casting to the expected type.
For example when expecting an IJIEnumVariant
:-
IJIComObject object2 = variant.getObjectAsComObject();
IJIEnumVariant enumVariant = (IJIEnumVariant)JIObjectFactory.narrowObject(object2.queryInterface(IJIEnumVariant.IID));
Throws IllegalStateException if IJIComObject.isLocalReference()
returns true
.
queryInterface
in interface IJIComObject
iid
- string representation of the IID.
JIException
JIObjectFactory.narrowObject(IJIComObject)
public void addRef() throws JIException
IJIComObject
Increases the reference count on the COM server by 5
(currently hard coded). The developer should refrain from calling this API,
as referencing is maintained internally by the system though he is not
obligated to do so. If the IJIComObject.release()
is not called in conjunction
with addRef
then the COM Instance will not get garbage collected
at the server.
addRef
in interface IJIComObject
JIException
public void release() throws JIException
IJIComObject
Decreases the reference count on the COM server by 5
(currently hard coded). The developer should refrain from calling this API,
as referencing is maintained internally by the system though he is not
obligated to do so. If the release
is not called in conjunction
with IJIComObject.addRef()
then the COM Instance will not get garbage collected at
the server.
release
in interface IJIComObject
JIException
public java.lang.String getIpid()
IJIComObject
IJIUnreferenced
handler implementation to this COM Object.
Under NO circumstances should a reference to this COM object be stored any where for only purposes of "unreferenced" handling. This would hinder the way in which objects are garbage collected by the framework and this object would be forever "live".
getIpid
in interface IJIComObject
public java.lang.Object[] call(JICallBuilder obj) throws JIException
IJIComObject
Executes a method call on the actual COM object represented by this interface.
All the data like parameter information, operation number etc. are prepared and
sent via the JICallBuilder
.
JICallBuilder obj = new JICallBuilder();
obj.reInit();
obj.setOpnum(0); //methods are sequentially indexed from 0 in the IDL
obj.addInParamAsString(new JIString("j-Interop Rocks",JIFlags.FLAG_REPRESENTATION_STRING_LPCTSTR), JIFlags.FLAG_NULL);
obj.addInParamAsPointer(new JIPointer(new JIString("Pretty simple ;)",JIFlags.FLAG_REPRESENTATION_STRING_LPCTSTR)), JIFlags.FLAG_NULL);
Object[] result = comObject.call(obj);
If return values are expected then set up the Out Params also in the
JICallBuilder
.
The call timeout used here , by default is the instance level timeout. If no
instance level timeout has been specified(or is 0) then the global timeout set in
JISession
will be used.
call
in interface IJIComObject
obj
- call builder carrying all information necessary to make the call successfully.
JICallBuilder
.
JIException
IJIComObject.setInstanceLevelSocketTimeout(int)
,
JISession.setGlobalSocketTimeout(int)
public org.jinterop.dcom.core.JIInterfacePointer internal_getInterfacePointer()
IJIComObject
internal_getInterfacePointer
in interface IJIComObject
public JISession getAssociatedSession()
IJIComObject
getAssociatedSession
in interface IJIComObject
public java.lang.String getInterfaceIdentifier()
getInterfaceIdentifier
in interface IJIComObject
public boolean isDispatchSupported()
IJIComObject
true
if IDispatch
interface is supported
by this object.
isDispatchSupported
in interface IJIComObject
true
if IDispatch
is supported, false
otherwise.IJIDispatch
public java.lang.String internal_setConnectionInfo(IJIComObject connectionPoint, java.lang.Integer cookie)
IJIComObject
internal_setConnectionInfo
in interface IJIComObject
public java.lang.Object[] internal_getConnectionInfo(java.lang.String identifier)
IJIComObject
internal_getConnectionInfo
in interface IJIComObject
public java.lang.Object[] internal_removeConnectionInfo(java.lang.String identifier)
IJIComObject
internal_removeConnectionInfo
in interface IJIComObject
public IJIUnreferenced getUnreferencedHandler()
IJIComObject
IJIUnreferenced
handler associated with this object.
getUnreferencedHandler
in interface IJIComObject
public void registerUnreferencedHandler(IJIUnreferenced unreferenced)
IJIComObject
IJIUnreferenced
handler. The handler will be invoked when this comObject goes
out of reference and is removed from it's session by the library. Only a single handler can be
added for each object. If a handler for this object already exists , it would be replaced by this
call.
registerUnreferencedHandler
in interface IJIComObject
unreferenced
- handler to get notification when reference count for this object hits 0 and is
garbage collected by the library's runtime.public void unregisterUnreferencedHandler()
IJIComObject
IJIUnreferenced
handler associated with this object. No exception will
be thrown if one does not exist for this object.
unregisterUnreferencedHandler
in interface IJIComObject
public java.lang.Object[] call(JICallBuilder obj, int timeout) throws JIException
IJIComObject
Refer IJIComObject.call(JICallBuilder)
for details on this method.
call
in interface IJIComObject
obj
- call builder carrying all information necessary to make the call successfully.timeout
- timeout for this call in milliseconds, overrides the instance level
timeout. Passing 0 here will use the global socket timeout.
JICallBuilder
.
JIException
JISession.setGlobalSocketTimeout(int)
public int getInstanceLevelSocketTimeout()
IJIComObject
IJIComObject.call(JICallBuilder)
, IJIComObject.queryInterface(String)
etc.
getInstanceLevelSocketTimeout
in interface IJIComObject
public void setInstanceLevelSocketTimeout(int timeout)
IJIComObject
Sets a timeout for all socket level operations done on this
object. Calling this overrides the global socket timeout at the
JISession
level. To unset a previous timeout, pass 0 as a
parameter.
setInstanceLevelSocketTimeout
in interface IJIComObject
timeout
- timeout for this call in millisecondsJISession.setGlobalSocketTimeout(int)
public void internal_setDeffered(boolean deffered)
IJIComObject
internal_setDeffered
in interface IJIComObject
public boolean isLocalReference()
IJIComObject
true
if this COM object represents a local Java reference obtained by
JIObjectFactory.buildObject(JISession, JILocalCoClass)
.
isLocalReference
in interface IJIComObject
true
if this is a local reference , false
otherwise.public java.lang.String toString()
toString
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |