예제 #1
0
        public bool Read(MemoryStream pStream)
        {
            EMessageKeyType type = EMessageKeyType.Variable;
            uint tag = 0;
            while (pStream.ReadKey(out type, out tag))
            {
                switch (tag)
                {
                    case ObjectAddressTag:
                        if (!pStream.ReadPackable(mObjectAddress)) return false;
                        break;
                    case StatusTag:
                        if (!pStream.ReadVariable(out mStatus)) return false;
                        break;
                    case ServiceHashTag:
                        if (!pStream.ReadVariable(out mServiceHash)) return false;
                        break;
                    case MethodIdTag:
                        if (!pStream.ReadVariable(out mMethodId)) return false;
                        break;
                    default: return false;
                }
            }

            return true;
        }
예제 #2
0
 public bool Read(MemoryStream pStream)
 {
     EMessageKeyType type = EMessageKeyType.Variable;
     uint tag = 0;
     while (pStream.ReadKey(out type, out tag))
     {
         switch (tag)
         {
             case ErrorCodeTag:
                 if (!pStream.ReadVariable(out mErrorCode)) return false;
                 break;
             case AccountTag:
                 mHasAccount = true;
                 if (!pStream.ReadPackable(mAccount)) return false;
                 break;
             case GameAccountTag:
                 {
                     EntityId entityId = new EntityId();
                     if (!pStream.ReadPackable(entityId)) return false;
                     mGameAccounts.Add(entityId);
                     break;
                 }
             default: return false;
         }
     }
     return true;
 }
예제 #3
0
 public bool Read(MemoryStream pStream)
 {
     EMessageKeyType type = EMessageKeyType.Variable;
     uint tag = 0;
     while (pStream.ReadKey(out type, out tag))
     {
         switch (tag)
         {
             case LabelTag:
                 if (!pStream.ReadVariable(out mLabel)) return false;
                 break;
             case EpochTag:
                 if (!pStream.ReadVariable(out mEpoch)) return false;
                 break;
             default: return false;
         }
     }
     return true;
 }
예제 #4
0
 public bool Read(MemoryStream pStream)
 {
     EMessageKeyType type = EMessageKeyType.Variable;
     uint tag = 0;
     while (pStream.ReadKey(out type, out tag))
     {
         switch (tag)
         {
             case HashTag:
                 if (!pStream.ReadFixed32(out mHash)) return false;
                 break;
             case IdTag:
                 if (!pStream.ReadVariable(out mId)) return false;
                 break;
             default: return false;
         }
     }
     return true;
 }
예제 #5
0
 public bool Read(MemoryStream pStream)
 {
     EMessageKeyType type = EMessageKeyType.Variable;
     uint tag = 0;
     while (pStream.ReadKey(out type, out tag))
     {
         switch (tag)
         {
             case HostTag:
                 if (!pStream.ReadPackable(mHost)) return false;
                 break;
             case ObjectIdTag:
                 mHasObjectId = true;
                 if (!pStream.ReadVariable(out mObjectId)) return false;
                 break;
             default: return false;
         }
     }
     return true;
 }
예제 #6
0
파일: Header.cs 프로젝트: Astaelan/Tristram
 public bool Read(MemoryStream pStream)
 {
     EMessageKeyType type = EMessageKeyType.Variable;
     uint tag = 0;
     while (pStream.ReadKey(out type, out tag))
     {
         switch (tag)
         {
             case ServiceIdTag:
                 if (!pStream.ReadVariable(out mServiceId)) return false;
                 break;
             case MethodIdTag:
                 mHasMethodId = true;
                 if (!pStream.ReadVariable(out mMethodId)) return false;
                 break;
             case TokenTag:
                 if (!pStream.ReadVariable(out mToken)) return false;
                 break;
             case ObjectIdTag:
                 mHasObjectId = true;
                 if (!pStream.ReadVariable(out mObjectId)) return false;
                 break;
             case SizeTag:
                 mHasSize = true;
                 if (!pStream.ReadVariable(out mSize)) return false;
                 break;
             case StatusTag:
                 mHasStatus = true;
                 if (!pStream.ReadVariable(out mStatus)) return false;
                 break;
             case ErrorTag:
                 {
                     ErrorInfo errorInfo = new ErrorInfo();
                     if (!pStream.ReadPackable(errorInfo)) return false;
                     mErrors.Add(errorInfo);
                     break;
                 }
             default: return false;
         }
     }
     return true;
 }
예제 #7
0
 public bool Read(MemoryStream pStream)
 {
     EMessageKeyType type = EMessageKeyType.Variable;
     uint tag = 0;
     while (pStream.ReadKey(out type, out tag))
     {
         switch (tag)
         {
             case ServerIdTag:
                 if (!pStream.ReadPackable(mServerId)) return false;
                 break;
             case ClientIdTag:
                 mHasClientId = true;
                 if (!pStream.ReadPackable(mClientId)) return false;
                 break;
             case BindResultTag:
                 mHasBindResult = true;
                 if (!pStream.ReadVariable(out mBindResult)) return false;
                 break;
             case BindResponseTag:
                 mHasBindResponse = true;
                 if (!pStream.ReadPackable(mBindResponse)) return false;
                 break;
             case ConnectionMeteringContentHandlesTag:
                 mHasConnectionMeteringContentHandles = true;
                 if (!pStream.ReadPackable(mConnectionMeteringContentHandles)) return false;
                 break;
             default: return false;
         }
     }
     return true;
 }
예제 #8
0
 public bool Read(MemoryStream pStream)
 {
     EMessageKeyType type = EMessageKeyType.Variable;
     uint tag = 0;
     while (pStream.ReadKey(out type, out tag))
     {
         switch (tag)
         {
             case ProgramTag:
                 mHasProgram = true;
                 if (!pStream.ReadPrefixed(Encoding.GetEncoding(1252), out mProgram)) return false;
                 break;
             case PlatformTag:
                 mHasPlatform = true;
                 if (!pStream.ReadPrefixed(Encoding.GetEncoding(1252), out mPlatform)) return false;
                 break;
             case LocaleTag:
                 mHasLocale = true;
                 if (!pStream.ReadPrefixed(Encoding.GetEncoding(1252), out mLocale)) return false;
                 break;
             case EmailTag:
                 mHasEmail = true;
                 if (!pStream.ReadPrefixed(Encoding.GetEncoding(1252), out mEmail)) return false;
                 break;
             case VersionTag:
                 mHasVersion = true;
                 if (!pStream.ReadPrefixed(Encoding.GetEncoding(1252), out mVersion)) return false;
                 break;
             case ApplicationVersionTag:
                 mHasApplicationVersion = true;
                 if (!pStream.ReadVariable(out mApplicationVersion)) return false;
                 break;
             case CookieOnlyTag:
                 {
                     uint cookieOnly = 0;
                     mHasCookieOnly = true;
                     if (!pStream.ReadVariable(out cookieOnly)) return false;
                     mCookieOnly = Convert.ToBoolean(cookieOnly);
                     break;
                 }
             case UnknownTag:
                 mHasUnknown = true;
                 pStream.ReadFixed32(out mUnknown);
                 break;
             default: return false;
         }
     }
     return true;
 }