コード例 #1
0
ファイル: INodeDirectory.cs プロジェクト: orf53975/hadoop.net
        internal virtual void SetQuota(BlockStoragePolicySuite bsps, long nsQuota, long ssQuota
                                       , StorageType type)
        {
            DirectoryWithQuotaFeature quota = GetDirectoryWithQuotaFeature();

            if (quota != null)
            {
                // already has quota; so set the quota to the new values
                if (type != null)
                {
                    quota.SetQuota(ssQuota, type);
                }
                else
                {
                    quota.SetQuota(nsQuota, ssQuota);
                }
                if (!IsQuotaSet() && !IsRoot())
                {
                    RemoveFeature(quota);
                }
            }
            else
            {
                QuotaCounts c = ComputeQuotaUsage(bsps);
                DirectoryWithQuotaFeature.Builder builder = new DirectoryWithQuotaFeature.Builder
                                                                ().NameSpaceQuota(nsQuota);
                if (type != null)
                {
                    builder.TypeQuota(type, ssQuota);
                }
                else
                {
                    builder.StorageSpaceQuota(ssQuota);
                }
                AddDirectoryWithQuotaFeature(builder.Build()).SetSpaceConsumed(c);
            }
        }
コード例 #2
0
 private DirectoryWithQuotaFeature(DirectoryWithQuotaFeature.Builder builder)
 {
     this.quota = builder.quota;
     this.usage = builder.usage;
 }