package php.runtime.memory.support.operation;
import php.runtime.Memory;
import php.runtime.env.Environment;
import php.runtime.env.TraceInfo;
import php.runtime.ext.core.classes.stream.MiscStream;
import php.runtime.ext.core.classes.stream.Stream;
import php.runtime.memory.ObjectMemory;
import php.runtime.memory.support.MemoryOperation;
import java.io.OutputStream;
import java.io.PrintStream;
public class OutputStreamMemoryOperation extends MemoryOperation<OutputStream> {
@Override
public Class<?>[] getOperationClasses() {
return new Class<?>[] { OutputStream.class };
}
@Override
public OutputStream convert(Environment env, TraceInfo trace, Memory arg) throws Throwable {
return Stream.getOutputStream(env, arg);
}
@Override
public Memory unconvert(Environment env, TraceInfo trace, OutputStream arg) throws Throwable {
return ObjectMemory.valueOf(new MiscStream(env, arg));
}
@Override
public void releaseConverted(Environment env, TraceInfo info, OutputStream arg) {
Stream.closeStream(env, arg);
}
}