private void WriteEmbeddedPointer <T>(NdrEmbeddedPointer <T> pointer, Action writer)
 {
     if (WriteReferent(pointer))
     {
         _deferred_writes.Add(writer);
     }
 }
        public NdrEmbeddedPointer <T> ReadEmbeddedPointer <T>(Func <T> unmarshal_func, bool full_pointer)
        {
            int referent = ReadInt32();

            if (referent == 0)
            {
                return(null);
            }

            if (full_pointer)
            {
                unmarshal_func = () => ReadFullPointer(referent, unmarshal_func);
            }

            var deferred_reader = NdrEmbeddedPointer <T> .CreateDeferredReader(unmarshal_func);

            _deferred_reads.Add(deferred_reader.Item2);
            return(deferred_reader.Item1);
        }
 public void WriteEmbeddedPointer <T, U, V>(NdrEmbeddedPointer <T> pointer, Action <T, U, V> writer, U arg, V arg2)
 {
     WriteEmbeddedPointer(pointer, () => writer(pointer, arg, arg2));
 }
 public void WriteEmbeddedPointer <T, U>(NdrEmbeddedPointer <T> pointer, Action <T, U> writer, U arg)
 {
     WriteEmbeddedPointer(pointer, () => writer(pointer, arg));
 }
 public void WriteEmbeddedPointer <T>(NdrEmbeddedPointer <T> pointer, Action <T> writer)
 {
     WriteEmbeddedPointer(pointer, () => writer(pointer));
 }