コード例 #1
0
ファイル: BindRequest.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 ImportedServiceHashTag:
                 {
                     MemoryStream stream = null;
                     if (!pStream.ReadPrefixed(out stream)) return false;
                     uint hash = 0;
                     while (stream.ReadFixed32(out hash)) mImportedServiceHashes.Add(hash);
                     break;
                 }
             case ExportedServiceTag:
                 {
                     BoundService boundService = new BoundService();
                     if (!pStream.ReadPackable(boundService)) return false;
                     mExportedServices.Add(boundService);
                     break;
                 }
             default: return false;
         }
     }
     return true;
 }
コード例 #2
0
ファイル: LogonResult.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 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
ファイル: ErrorInfo.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 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;
        }
コード例 #4
0
ファイル: ConnectRequest.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 ClientIdTag:
                 mHasClientId = true;
                 if (!pStream.ReadPackable(mClientId)) return false;
                 break;
             case BindRequestTag:
                 mHasBindRequest = true;
                 if (!pStream.ReadPackable(mBindRequest)) 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 ContentHandleTag:
                 {
                     ContentHandle contentHandle = new ContentHandle();
                     if (!pStream.ReadPackable(contentHandle)) return false;
                     mContentHandles.Add(contentHandle);
                     break;
                 }
             default: return false;
         }
     }
     return true;
 }
コード例 #6
0
ファイル: ObjectAddress.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 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;
 }
コード例 #7
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;
 }
コード例 #8
0
ファイル: ConnectResponse.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 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;
 }