CreateIOWrapper() public static method

public static CreateIOWrapper ( RespondToStorage respondToStorage, object io, FileAccess access ) : IOWrapper
respondToStorage RespondToStorage
io object
access FileAccess
return IronRuby.Runtime.IOWrapper
Example #1
0
        public static object Load(ReaderSites /*!*/ sites, RespondToStorage /*!*/ respondToStorage,
                                  RubyScope /*!*/ scope, RubyModule /*!*/ self, object source, [Optional] Proc proc)
        {
            Stream stream = null;

            if (source != null)
            {
                stream = RubyIOOps.CreateIOWrapper(respondToStorage, source, FileAccess.Read);
            }
            if (stream == null || !stream.CanRead)
            {
                throw RubyExceptions.CreateTypeError("instance of IO needed");
            }
            BinaryReader  reader = new BinaryReader(stream);
            MarshalReader loader = new MarshalReader(sites, reader, scope.GlobalScope, proc);

            return(loader.Load());
        }
Example #2
0
        public static object Dump(WriterSites /*!*/ sites, RespondToStorage /*!*/ respondToStorage,
                                  RubyModule /*!*/ self, object obj, object io, [Optional] int?limit)
        {
            Stream stream = null;

            if (io != null)
            {
                stream = RubyIOOps.CreateIOWrapper(respondToStorage, io, FileAccess.Write);
            }
            if (stream == null || !stream.CanWrite)
            {
                throw RubyExceptions.CreateTypeError("instance of IO needed");
            }

            BinaryWriter  writer = new BinaryWriter(stream);
            MarshalWriter dumper = new MarshalWriter(sites, writer, self.Context, limit);

            dumper.Dump(obj);
            return(io);
        }