using System.Diagnostics.Contracts;
using System;

namespace System.Runtime.Serialization
{

    public class ObjectManager
    {

        public void RaiseDeserializationEvent () {

        }
        public void RecordArrayElementFixup (Int64 arrayToBeFixed, Int32[] indices, Int64 objectRequired) {
            Contract.Requires(arrayToBeFixed > 0);
            Contract.Requires(objectRequired > 0);
            Contract.Requires(indices != null);

        }
        public void RecordArrayElementFixup (Int64 arrayToBeFixed, int index, Int64 objectRequired) {

        }
        public void RecordDelayedFixup (Int64 objectToBeFixed, string memberName, Int64 objectRequired) {
            Contract.Requires(objectToBeFixed > 0);
            Contract.Requires(objectRequired > 0);
            Contract.Requires(memberName != null);

        }
        public void RecordFixup (Int64 objectToBeFixed, System.Reflection.MemberInfo member, Int64 objectRequired) {
            Contract.Requires(objectToBeFixed > 0);
            Contract.Requires(objectRequired > 0);
            Contract.Requires(member != null);

        }
        public void DoFixups () {

        }
        public void RegisterObject (object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, System.Reflection.MemberInfo member, Int32[] arrayIndex) {
            Contract.Requires(obj != null);
            Contract.Requires(objectID > 0);

        }
        public void RegisterObject (object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, System.Reflection.MemberInfo member) {

        }
        public void RegisterObject (object obj, Int64 objectID, SerializationInfo info) {

        }
        public void RegisterObject (object obj, Int64 objectID) {

        }
        public object GetObject (Int64 objectID) {
            Contract.Requires(objectID > 0);

          return default(object);
        }
        public ObjectManager (ISurrogateSelector selector, StreamingContext context) {
          return default(ObjectManager);
        }
    }
}
