K2Informatics.Erlnet.OtpInputStream.read_fun C# (CSharp) Method

read_fun() public method

public read_fun ( ) : OtpErlangFun
return OtpErlangFun
        public OtpErlangFun read_fun()
        {
            int tag = read1skip_version();
            if (tag == OtpExternal.funTag)
            {
                int nFreeVars = read4BE();
                OtpErlangPid pid = read_pid();
                String module = read_atom();
                long index = read_long();
                long uniq = read_long();
                OtpErlangObject[] freeVars = new OtpErlangObject[nFreeVars];
                for (int i = 0; i < nFreeVars; ++i)
                {
                    freeVars[i] = read_any();
                }
                return new OtpErlangFun(pid, module, index, uniq, freeVars);
            }
            else if (tag == OtpExternal.newFunTag)
            {
                read4BE();
                int arity = read1();
                byte[] md5 = new byte[16];
                readN(md5);
                int index = read4BE();
                int nFreeVars = read4BE();
                String module = read_atom();
                long oldIndex = read_long();
                long uniq = read_long();
                OtpErlangPid pid = read_pid();
                OtpErlangObject[] freeVars = new OtpErlangObject[nFreeVars];
                for (int i = 0; i < nFreeVars; ++i)
                {
                    freeVars[i] = read_any();
                }
                return new OtpErlangFun(pid, module, arity, md5, index, oldIndex, uniq, freeVars);
            }
            else
            {
                throw new OtpErlangDecodeException("Wrong tag encountered, expected fun, got " + tag);
            }
        }

Usage Example

Ejemplo n.º 1
0
 public OtpErlangFun(OtpInputStream buf)
 {
     OtpErlangFun f = buf.read_fun();
     pid = f.pid;
     module = f.module;
     arity = f.arity;
     md5 = f.md5;
     index = f.index;
     old_index = f.old_index;
     uniq = f.uniq;
     freeVars = f.freeVars;
 }