public override object Deserialize(TextReader tr)
        {
            string value = tr.ReadToEnd();

            IStatusCode sc = CreateAndAssociate() as IStatusCode;

            if (sc != null)
            {
                // Decode the value as needed
                value = Decode(sc, value);

                Match match = Regex.Match(value, @"\d(\.\d+)*");
                if (match.Success)
                {
                    int[]    iparts;
                    string[] parts = match.Value.Split('.');
                    iparts = new int[parts.Length];
                    for (int i = 0; i < parts.Length; i++)
                    {
                        int num;
                        if (!Int32.TryParse(parts[i], out num))
                        {
                            return(false);
                        }
                        iparts[i] = num;
                    }

                    sc.Parts = iparts;
                    return(sc);
                }
            }
            return(null);
        }
Example #2
0
 public override void CopyFrom(ICopyable obj)
 {
     base.CopyFrom(obj);
     if (obj is IStatusCode)
     {
         IStatusCode sc = (IStatusCode)obj;
         Parts = new int[sc.Parts.Length];
         sc.Parts.CopyTo(Parts, 0);
     }
 }
Example #3
0
        /// <summary>
        ///     Copies values from the target object to the
        ///     current object.
        /// </summary>
        /// <param name="obj"></param>
        public override sealed void CopyFrom(ICopyable obj)
        {
            base.CopyFrom(obj);
            var statusCode = obj as IStatusCode;

            if (statusCode != null)
            {
                IStatusCode sc = statusCode;
                Parts = new int[sc.Parts.Length];
                sc.Parts.CopyTo(Parts, 0);
            }
        }
Example #4
0
        public IClassCreatorStrategy CreateClassCreatorStrategy()
        {
            IClassCreatorStrategy classCreatorStrategy = new ClassCreatorStrategyImplementation();
            IStatusCode           code = classCreatorStrategy.SetupClassCreator();

            if (code.GetStatusCode() != 0)
            {
                throw new RuntimeException("Failed to create IDownloadStrategy: " + code.GetStatusCode());
            }

            return(classCreatorStrategy);
        }
        public IDownloadStrategy CreateDownloadStrategy()
        {
            IDownloadStrategy downloadStrategy = new DownloadStrategyImplementation();
            IStatusCode       code             = downloadStrategy.SetupDownloader();

            if (code.GetStatusCode() != 0)
            {
                throw new RuntimeException("Failed to create IDownloadStrategy: " + code.GetStatusCode());
            }

            return(downloadStrategy);
        }
Example #6
0
 public override void CopyFrom(ICopyable obj)
 {
     base.CopyFrom(obj);
     if (obj is IRequestStatus)
     {
         IRequestStatus rs = (IRequestStatus)obj;
         if (rs.StatusCode != null)
         {
             StatusCode = rs.StatusCode.Copy <IStatusCode>();
         }
         Description  = rs.Description;
         rs.ExtraData = rs.ExtraData;
     }
 }
        public override string SerializeToString(object obj)
        {
            IStatusCode sc = obj as IStatusCode;

            if (sc != null)
            {
                string[] vals = new string[sc.Parts.Length];
                for (int i = 0; i < sc.Parts.Length; i++)
                {
                    vals[i] = sc.Parts[i].ToString();
                }
                return(Encode(sc, Escape(string.Join(".", vals))));
            }
            return(null);
        }
Example #8
0
        /// <summary>
        ///     Copies values from the target object to the
        ///     current object.
        /// </summary>
        /// <param name="obj"></param>
        public override sealed void CopyFrom(ICopyable obj)
        {
            base.CopyFrom(obj);
            var requestStatus = obj as IRequestStatus;

            if (requestStatus != null)
            {
                IRequestStatus rs = requestStatus;
                if (rs.StatusCode != null)
                {
                    StatusCode = rs.StatusCode.Copy <IStatusCode>( );
                }
                Description  = rs.Description;
                rs.ExtraData = rs.ExtraData;
            }
        }
Example #9
0
        public override void CopyFrom(ICopyable obj)
        {
            base.CopyFrom(obj);
            if (!(obj is IRequestStatus))
            {
                return;
            }

            var rs = (IRequestStatus)obj;

            if (rs.StatusCode != null)
            {
                StatusCode = rs.StatusCode;
            }
            Description  = rs.Description;
            rs.ExtraData = rs.ExtraData;
        }
Example #10
0
        public override bool Equals(object obj)
        {
            IStatusCode sc = obj as IStatusCode;

            if (sc != null)
            {
                if (m_Parts != null &&
                    sc.Parts != null &&
                    m_Parts.Length == sc.Parts.Length)
                {
                    for (int i = 0; i < m_Parts.Length; i++)
                    {
                        if (!object.Equals(m_Parts[i], sc.Parts[i]))
                        {
                            return(false);
                        }
                    }
                    return(true);
                }
                return(false);
            }

            return(base.Equals(obj));
        }
 /// <summary>
 /// Writes <see cref="IStatusCode" /> using the provided encoder <see cref="IBinaryEncoder" />.
 /// </summary>
 /// <param name="encoder">The encoder - an object implementing the <see cref="IBinaryEncoder" /> interface.</param>
 /// <param name="value">The value to be encoded.</param>
 public abstract void Write(IBinaryEncoder encoder, IStatusCode value);
Example #12
0
 public void Write(IBinaryEncoder encoder, IStatusCode value)
 {
     Assert.AreSame(this, encoder);
     _encoder.Write(this, value);
 }
 public override void Write(IBinaryEncoder encoder, IStatusCode value)
 {
     throw new NotImplementedException();
 }
Example #14
-1
 public override void CopyFrom(ICopyable obj)
 {
     base.CopyFrom(obj);
     if (obj is IRequestStatus)
     {
         IRequestStatus rs = (IRequestStatus)obj;                
         if (rs.StatusCode != null)
             StatusCode = rs.StatusCode.Copy<IStatusCode>();
         Description = rs.Description;
         rs.ExtraData = rs.ExtraData;
     }
 }
 public override void Write(IBinaryEncoder encoder, IStatusCode value)
 {
     throw new NotImplementedException();
 }