public static BundleList getInstance() { if (sInstance == null) { sInstance = new BundleList(); } sInstance.syncWithOsgi(); return sInstance; }
/** Format the data to StringBuffer verbosely */ public void format_verbose(StringBuffer buf) { buf.append(String.format("bundle id %d:\n", bundleid_)); buf.append(String.format(" source: %s\n", source_.str())); buf.append(String.format(" dest: %s\n", dest_.str())); buf.append(String.format(" custodian: %s\n", custodian_.str())); buf.append(String.format(" replyto: %s\n", replyto_.str())); buf.append(String.format(" prevhop: %s\n", prevhop_.str())); buf.append(String.format(" payload_length: %d bytes\n", payload_.length())); buf.append(String.format(" priority: %s\n", priority_.toString())); buf.append(String.format(" custody_requested: %s\n", (custody_requested_))); buf.append(String.format(" local_custody: %s\n", local_custody_)); buf.append(String.format(" singleton_dest: %s\n", singleton_dest_)); buf.append(String.format(" receive_rcpt: %s\n", receive_rcpt_)); buf.append(String.format(" custody_rcpt: %s\n", custody_rcpt_)); buf.append(String.format(" forward_rcpt: %s\n", forward_rcpt_)); buf.append(String.format(" delivery_rcpt: %s\n", delivery_rcpt_)); buf.append(String.format(" deletion_rcpt: %s\n", deletion_rcpt_)); buf.append(String.format(" app_acked_rcpt: %s\n", app_acked_rcpt_)); buf.append( String.format(" creation_ts: %d.%d\n", creation_ts_.seconds(), creation_ts_.seqno())); buf.append(String.format(" expiration: %d \n", expiration_)); buf.append(String.format(" is_fragment: %s\n", is_fragment_)); buf.append(String.format(" is_admin: %s\n", is_admin_)); buf.append(String.format(" do_not_fragment: %s\n", do_not_fragment_)); buf.append(String.format(" orig_length: %d\n", orig_length_)); buf.append(String.format(" frag_offset: %d\n", frag_offset_)); buf.append("\n"); buf.append("forwarding log:\n"); fwdlog_.dump(buf); buf.append("\n"); lock_.lock(); try { buf.append(String.format("queued on %d lists:\n", mappings_.size())); Iterator<BundleList> map_itr = mappings_.iterator(); while (map_itr.hasNext()) { BundleList list = map_itr.next(); buf.append(String.format("\t%s\n", list.name())); } buf.append("\nblocks:"); Iterator<BlockInfo> block_itr = recv_blocks_.iterator(); while (block_itr.hasNext()) { BlockInfo block = block_itr.next(); buf.append(String.format("type %s", block.type().toString())); if (block.data_offset() == 0) buf.append("(runt)"); else { if (!block.complete()) { buf.append("(incomplete)"); } buf.append(String.format("data length: %d", block.full_length())); } } } finally { lock_.unlock(); } buf.append("\n"); }