コード例 #1
0
 /**
  * Increments either the java or native reference count
  *
  * @param address
  * @param nativeRef
  */
 protected void incrementRefCount(long address, boolean nativeRef) {
   if (address != NITFObject.INVALID_ADDRESS) {
     if (trackedObjects.containsKey(address)) {
       TrackedObject trackedObject = trackedObjects.get(address);
       trackedObject.reference(nativeRef);
       log.debug("Incremented ref count: " + trackedObject.toString());
     } else {
       log.error("Unable to track unkown object: " + address);
     }
   } else {
     log.error("Cannot reference invalid address");
   }
 }
コード例 #2
0
 /**
  * Increments the java reference count of an object
  *
  * @param object
  */
 protected void incrementRefCount(DestructibleObject object) {
   if (object != null && object.isValid()) {
     long address = object.getAddress();
     if (trackedObjects.containsKey(address)) {
       TrackedObject trackedObject = trackedObjects.get(address);
       trackedObject.reference(false);
       log.debug("Incremented ref count: " + trackedObject.toString());
     } else {
       TrackedObject trackedObject = new TrackedObject(object);
       trackedObjects.put(address, trackedObject);
       log.debug("Tracking new object: " + trackedObject.toString());
     }
   } else {
     log.error("Cannot reference invalid object");
   }
 }
コード例 #3
0
 /**
  * Decrements the reference count of an object, and destructs the object if the count is now < 1
  *
  * @param object
  */
 protected void decrementRefCount(long address, boolean nativeRef) {
   if (address != NITFObject.INVALID_ADDRESS) {
     // if its in here, update its count, if not, forget about it
     if (trackedObjects.containsKey(address)) {
       TrackedObject trackedObject = trackedObjects.get(address);
       trackedObject.unReference(nativeRef);
       log.debug("Decremented ref count: " + trackedObject.toString());
       if (trackedObject.canDestroy()) {
         if (trackedObject.destroy()) {
           trackedObjects.remove(address);
           log.debug("Destroyed object: " + trackedObject.toString());
         } else {
           log.error("Unable to destroy object: " + trackedObject.toString());
         }
       }
     } else {
       log.warn("Unable to decrement reference count for untracked address: " + address);
     }
   } else {
     log.error("Cannot reference invalid address");
   }
 }
コード例 #4
0
 protected String getObjectInfo(long address) {
   TrackedObject trackedObject = trackedObjects.get(address);
   return trackedObject != null ? trackedObject.toString() : null;
 }