red5 io包代码

Posted on 2006-09-08 13:03 学者 阅读(441) 评论(0) 编辑 收藏

IO 是最基本的基类 后面的很多功能扩展他。
BaseStreamableFileService.java
package org.red5.io;

 

import java.io.File;
import java.io.IOException;


public abstract class BaseStreamableFileService implements IStreamableFileService {

 public abstract String getPrefix();

 public abstract String getExtension();

 public String prepareFilename(String name) {
  if (name.startsWith(getPrefix() + ":")) {
   name = name.substring(getPrefix().length() + 1);
   if (!name.endsWith(getExtension()))
    name = name + getExtension();
  }
  
  return name;
 }

 public boolean canHandle(File file) {
  return file.exists() && file.getAbsolutePath().toLowerCase().endsWith(getExtension());
 }

 public abstract IStreamableFile getStreamableFile(File file) throws IOException;

}


StreamableFileFactory.java

package org.red5.io;

 

import java.io.File;
import java.util.HashSet;
import java.util.Set;

public class StreamableFileFactory implements IStreamableFileFactory {

 private Set<IStreamableFileService> services = new HashSet<IStreamableFileService>();
 
 public void setServices(Set<IStreamableFileService> services) {
  this.services = services;
 }
 
 public IStreamableFileService getService(File fp) {
  // Return first service that can handle the passed file
  for (IStreamableFileService service : this.services) {
   if (service.canHandle(fp))
    return service;
  }
  
  return null;
 }
 
 public Set<IStreamableFileService> getServices() {
  return services;
 }
}


org.red5.io Interfaces  接口

IoConstants  
IStreamableFile
IStreamableFileFactory
IStreamableFileService
ITag  扩展了 org.apache.mina.common.ByteBuffer 包
ITagReader
ITagWriter

Classes   2个基类
BaseStreamableFileService
StreamableFileFactory

posts - 20, comments - 39, trackbacks - 0, articles - 0

Copyright © 学者