Esempio n. 1
0
        /// <exception cref="System.IO.IOException"/>
        private void ProcessDirectoryDiff(DataInputStream @in, ImageVisitor v, string currentINodeName
                                          )
        {
            v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotDirDiff);
            int snapshotId = @in.ReadInt();

            v.Visit(ImageVisitor.ImageElement.SnapshotDiffSnapshotid, snapshotId);
            v.Visit(ImageVisitor.ImageElement.SnapshotDirDiffChildrenSize, @in.ReadInt());
            // process snapshotINode
            bool useRoot = @in.ReadBoolean();

            if (!useRoot)
            {
                if (@in.ReadBoolean())
                {
                    v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotInodeDirectoryAttributes
                                            );
                    if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.OptimizeSnapshotInodes,
                                                       imageVersion))
                    {
                        ProcessINodeDirectoryAttributes(@in, v, currentINodeName);
                    }
                    else
                    {
                        ProcessINode(@in, v, true, currentINodeName, true);
                    }
                    v.LeaveEnclosingElement();
                }
            }
            // process createdList
            int createdSize = @in.ReadInt();

            v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotDirDiffCreatedlist, ImageVisitor.ImageElement
                                    .SnapshotDirDiffCreatedlistSize, createdSize);
            for (int i = 0; i < createdSize; i++)
            {
                string createdNode = FSImageSerialization.ReadString(@in);
                v.Visit(ImageVisitor.ImageElement.SnapshotDirDiffCreatedInode, createdNode);
            }
            v.LeaveEnclosingElement();
            // process deletedList
            int deletedSize = @in.ReadInt();

            v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotDirDiffDeletedlist, ImageVisitor.ImageElement
                                    .SnapshotDirDiffDeletedlistSize, deletedSize);
            for (int i_1 = 0; i_1 < deletedSize; i_1++)
            {
                v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotDirDiffDeletedInode);
                ProcessINode(@in, v, false, currentINodeName, true);
                v.LeaveEnclosingElement();
            }
            v.LeaveEnclosingElement();
            v.LeaveEnclosingElement();
        }
Esempio n. 2
0
 public override void FromInputStream(DataInputStream reader)
 {
     ProtocolVersion = reader.ReadInt();
     HasDeviceGuid   = reader.ReadBoolean();
     if (HasDeviceGuid)
     {
         //We have a device GUID
         DeviceGuid = Guid.Parse(reader.ReadUTF().ToUpper());
     }
 }
Esempio n. 3
0
 public void Invoke(HttpSessionState session, DataInputStream input)
 {
     _result = HttpProcessor.GetClient <AskServiceSoapClient>(session).SubmitQuestion(
         input.ReadString(),
         input.ReadString(),
         input.ReadString(),
         input.ReadInt32(),
         input.ReadInt32(),
         input.ReadStringArray(),
         input.ReadInt32(),
         input.ReadBoolean());
 }
Esempio n. 4
0
        /* (non-Javadoc)
         * @see org.gogpsproject.Streamable#write(java.io.DataOutputStream)
         */
        public void read(DataInputStream dai, bool oldVersion)
        {
            int v = 1;

            if (!oldVersion)
            {
                v = dai.ReadInt();
            }

            if (v == 1)
            {
                health = dai.ReadLong();
                utcA1  = dai.ReadDouble();
                utcA0  = dai.ReadDouble();
                utcTOW = dai.ReadLong();
                utcWNT = dai.ReadInt();
                utcLS  = dai.ReadInt();
                utcWNF = dai.ReadInt();
                utcDN  = dai.ReadInt();
                utcLSF = dai.ReadInt();
                for (int i = 0; i < alpha.Count(); i++)
                {
                    alpha[i] = dai.ReadFloat();
                }
                for (int i = 0; i < beta.Count(); i++)
                {
                    beta[i] = dai.ReadFloat();
                }
                validHealth    = dai.ReadBoolean();
                validUTC       = dai.ReadBoolean();
                validKlobuchar = dai.ReadBoolean();
                long l = dai.ReadLong();
                refTime = new Time(l > 0 ? l : JavaSystem.CurrentTimeMillis());
            }
            else
            {
                throw new IOException("Unknown format version:" + v);
            }
        }
Esempio n. 5
0
        private static MetadataJavaField ReadJavaField(this DataInputStream stream)
        {
            var field = new MetadataJavaField
            {
                Name        = stream.ReadUtfAndIntern(), Type = stream.ReadUtfAndIntern(),
                AccessFlags = stream.ReadAccessFlagsParameter()
            };

            var hasConstantValue = stream.ReadBoolean();

            if (hasConstantValue)
            {
                field.ConstantValue = stream.ReadArray(stream.ReadByte);
            }

            return(field);
        }
Esempio n. 6
0
 protected internal virtual void Read(DataInputStream file)
 {
     try
     {
         int size = file.ReadInt();
         index = new HashIndex <string>();
         for (int i = 0; i < size; i++)
         {
             string tag      = file.ReadUTF();
             bool   inClosed = file.ReadBoolean();
             index.Add(tag);
             if (inClosed)
             {
                 closed.Add(tag);
             }
         }
     }
     catch (IOException e)
     {
         Sharpen.Runtime.PrintStackTrace(e);
     }
 }
Esempio n. 7
0
        /// <exception cref="System.IO.IOException"/>
        private void ProcessFileDiff(DataInputStream @in, ImageVisitor v, string currentINodeName
                                     )
        {
            int snapshotId = @in.ReadInt();

            v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotFileDiff, ImageVisitor.ImageElement
                                    .SnapshotDiffSnapshotid, snapshotId);
            v.Visit(ImageVisitor.ImageElement.SnapshotFileSize, @in.ReadLong());
            if (@in.ReadBoolean())
            {
                v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotInodeFileAttributes);
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.OptimizeSnapshotInodes,
                                                   imageVersion))
                {
                    ProcessINodeFileAttributes(@in, v, currentINodeName);
                }
                else
                {
                    ProcessINode(@in, v, true, currentINodeName, true);
                }
                v.LeaveEnclosingElement();
            }
            v.LeaveEnclosingElement();
        }
Esempio n. 8
0
 public override void FromInputStream(DataInputStream reader)
 {
     Globals.status = reader.ReadBoolean();
     Debug.WriteLine("RECEBIDO. " + Globals.status.ToString());
 }
Esempio n. 9
0
        /// <summary>Process an INode</summary>
        /// <param name="in">image stream</param>
        /// <param name="v">visitor</param>
        /// <param name="skipBlocks">skip blocks or not</param>
        /// <param name="parentName">the name of its parent node</param>
        /// <param name="isSnapshotCopy">whether or not the inode is a snapshot copy</param>
        /// <exception cref="System.IO.IOException"/>
        private void ProcessINode(DataInputStream @in, ImageVisitor v, bool skipBlocks, string
                                  parentName, bool isSnapshotCopy)
        {
            bool supportSnapshot = NameNodeLayoutVersion.Supports(LayoutVersion.Feature.Snapshot
                                                                  , imageVersion);
            bool supportInodeId = NameNodeLayoutVersion.Supports(LayoutVersion.Feature.AddInodeId
                                                                 , imageVersion);

            v.VisitEnclosingElement(ImageVisitor.ImageElement.Inode);
            string pathName = ReadINodePath(@in, parentName);

            v.Visit(ImageVisitor.ImageElement.InodePath, pathName);
            long inodeId = INodeId.GrandfatherInodeId;

            if (supportInodeId)
            {
                inodeId = @in.ReadLong();
                v.Visit(ImageVisitor.ImageElement.InodeId, inodeId);
            }
            v.Visit(ImageVisitor.ImageElement.Replication, @in.ReadShort());
            v.Visit(ImageVisitor.ImageElement.ModificationTime, FormatDate(@in.ReadLong()));
            if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.FileAccessTime, imageVersion
                                               ))
            {
                v.Visit(ImageVisitor.ImageElement.AccessTime, FormatDate(@in.ReadLong()));
            }
            v.Visit(ImageVisitor.ImageElement.BlockSize, @in.ReadLong());
            int numBlocks = @in.ReadInt();

            ProcessBlocks(@in, v, numBlocks, skipBlocks);
            if (numBlocks >= 0)
            {
                // File
                if (supportSnapshot)
                {
                    // make sure subtreeMap only contains entry for directory
                    Sharpen.Collections.Remove(subtreeMap, inodeId);
                    // process file diffs
                    ProcessFileDiffList(@in, v, parentName);
                    if (isSnapshotCopy)
                    {
                        bool underConstruction = @in.ReadBoolean();
                        if (underConstruction)
                        {
                            v.Visit(ImageVisitor.ImageElement.ClientName, FSImageSerialization.ReadString(@in
                                                                                                          ));
                            v.Visit(ImageVisitor.ImageElement.ClientMachine, FSImageSerialization.ReadString(
                                        @in));
                        }
                    }
                }
                ProcessPermission(@in, v);
            }
            else
            {
                if (numBlocks == -1)
                {
                    // Directory
                    if (supportSnapshot && supportInodeId)
                    {
                        dirNodeMap[inodeId] = pathName;
                    }
                    v.Visit(ImageVisitor.ImageElement.NsQuota, numBlocks == -1 ? @in.ReadLong() : -1);
                    if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.DiskspaceQuota, imageVersion
                                                       ))
                    {
                        v.Visit(ImageVisitor.ImageElement.DsQuota, numBlocks == -1 ? @in.ReadLong() : -1);
                    }
                    if (supportSnapshot)
                    {
                        bool snapshottable = @in.ReadBoolean();
                        if (!snapshottable)
                        {
                            bool withSnapshot = @in.ReadBoolean();
                            v.Visit(ImageVisitor.ImageElement.IsWithsnapshotDir, bool.ToString(withSnapshot));
                        }
                        else
                        {
                            v.Visit(ImageVisitor.ImageElement.IsSnapshottableDir, bool.ToString(snapshottable
                                                                                                ));
                        }
                    }
                    ProcessPermission(@in, v);
                }
                else
                {
                    if (numBlocks == -2)
                    {
                        v.Visit(ImageVisitor.ImageElement.Symlink, Text.ReadString(@in));
                        ProcessPermission(@in, v);
                    }
                    else
                    {
                        if (numBlocks == -3)
                        {
                            // reference node
                            bool isWithName = @in.ReadBoolean();
                            int  snapshotId = @in.ReadInt();
                            if (isWithName)
                            {
                                v.Visit(ImageVisitor.ImageElement.SnapshotLastSnapshotId, snapshotId);
                            }
                            else
                            {
                                v.Visit(ImageVisitor.ImageElement.SnapshotDstSnapshotId, snapshotId);
                            }
                            bool firstReferred = @in.ReadBoolean();
                            if (firstReferred)
                            {
                                // if a subtree is linked by multiple "parents", the corresponding dir
                                // must be referred by a reference node. we put the reference node into
                                // the subtreeMap here and let its value be false. when we later visit
                                // the subtree for the first time, we change the value to true.
                                subtreeMap[inodeId] = false;
                                v.VisitEnclosingElement(ImageVisitor.ImageElement.SnapshotRefInode);
                                ProcessINode(@in, v, skipBlocks, parentName, isSnapshotCopy);
                                v.LeaveEnclosingElement();
                            }
                            else
                            {
                                // referred inode
                                v.Visit(ImageVisitor.ImageElement.SnapshotRefInodeId, @in.ReadLong());
                            }
                        }
                    }
                }
            }
            v.LeaveEnclosingElement();
        }
Esempio n. 10
0
        /* (non-Javadoc)
         * @see ImageLoader#processImage(java.io.DataInputStream, ImageVisitor, boolean)
         */
        /// <exception cref="System.IO.IOException"/>
        public override void LoadImage(DataInputStream @in, ImageVisitor v, bool skipBlocks
                                       )
        {
            bool done = false;

            try
            {
                v.Start();
                v.VisitEnclosingElement(ImageVisitor.ImageElement.FsImage);
                imageVersion = @in.ReadInt();
                if (!CanLoadVersion(imageVersion))
                {
                    throw new IOException("Cannot process fslayout version " + imageVersion);
                }
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.AddLayoutFlags, imageVersion
                                                   ))
                {
                    LayoutFlags.Read(@in);
                }
                v.Visit(ImageVisitor.ImageElement.ImageVersion, imageVersion);
                v.Visit(ImageVisitor.ImageElement.NamespaceId, @in.ReadInt());
                long numInodes = @in.ReadLong();
                v.Visit(ImageVisitor.ImageElement.GenerationStamp, @in.ReadLong());
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.SequentialBlockId, imageVersion
                                                   ))
                {
                    v.Visit(ImageVisitor.ImageElement.GenerationStampV2, @in.ReadLong());
                    v.Visit(ImageVisitor.ImageElement.GenerationStampV1Limit, @in.ReadLong());
                    v.Visit(ImageVisitor.ImageElement.LastAllocatedBlockId, @in.ReadLong());
                }
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.StoredTxids, imageVersion
                                                   ))
                {
                    v.Visit(ImageVisitor.ImageElement.TransactionId, @in.ReadLong());
                }
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.AddInodeId, imageVersion
                                                   ))
                {
                    v.Visit(ImageVisitor.ImageElement.LastInodeId, @in.ReadLong());
                }
                bool supportSnapshot = NameNodeLayoutVersion.Supports(LayoutVersion.Feature.Snapshot
                                                                      , imageVersion);
                if (supportSnapshot)
                {
                    v.Visit(ImageVisitor.ImageElement.SnapshotCounter, @in.ReadInt());
                    int numSnapshots = @in.ReadInt();
                    v.Visit(ImageVisitor.ImageElement.NumSnapshotsTotal, numSnapshots);
                    for (int i = 0; i < numSnapshots; i++)
                    {
                        ProcessSnapshot(@in, v);
                    }
                }
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.FsimageCompression, imageVersion
                                                   ))
                {
                    bool isCompressed = @in.ReadBoolean();
                    v.Visit(ImageVisitor.ImageElement.IsCompressed, isCompressed.ToString());
                    if (isCompressed)
                    {
                        string codecClassName = Text.ReadString(@in);
                        v.Visit(ImageVisitor.ImageElement.CompressCodec, codecClassName);
                        CompressionCodecFactory codecFac = new CompressionCodecFactory(new Configuration(
                                                                                           ));
                        CompressionCodec codec = codecFac.GetCodecByClassName(codecClassName);
                        if (codec == null)
                        {
                            throw new IOException("Image compression codec not supported: " + codecClassName);
                        }
                        @in = new DataInputStream(codec.CreateInputStream(@in));
                    }
                }
                ProcessINodes(@in, v, numInodes, skipBlocks, supportSnapshot);
                subtreeMap.Clear();
                dirNodeMap.Clear();
                ProcessINodesUC(@in, v, skipBlocks);
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.DelegationToken, imageVersion
                                                   ))
                {
                    ProcessDelegationTokens(@in, v);
                }
                if (NameNodeLayoutVersion.Supports(LayoutVersion.Feature.Caching, imageVersion))
                {
                    ProcessCacheManagerState(@in, v);
                }
                v.LeaveEnclosingElement();
                // FSImage
                done = true;
            }
            finally
            {
                if (done)
                {
                    v.Finish();
                }
                else
                {
                    v.FinishAbnormally();
                }
            }
        }
 public bool FileReadBool()
 {
     return(InputStream.ReadBoolean());
 }