| package quotaBucket |
| |
| import ( |
| "errors" |
| "strings" |
| ) |
| |
| type QuotaBucketType interface { |
| resetCount(bucket *QuotaBucket) error |
| } |
| |
| type SynchronousQuotaBucketType struct{} |
| |
| func (sQuotaBucket SynchronousQuotaBucketType) resetCount(qBucket *QuotaBucket) error { |
| //do nothing. |
| return nil |
| } |
| |
| type AsynchronousQuotaBucketType struct{} |
| |
| func (sQuotaBucket AsynchronousQuotaBucketType) resetCount(qBucket *QuotaBucket) error { |
| //yet to implement |
| return nil |
| } |
| |
| type NonDistributedQuotaBucketType struct{} |
| |
| func (sQuotaBucket NonDistributedQuotaBucketType) resetCount(qBucket *QuotaBucket) error { |
| //yet to implement |
| return nil |
| } |
| |
| func GetQuotaBucketHandler(qBucket string) (QuotaBucketType, error) { |
| var quotaBucketType QuotaBucketType |
| qBucketType := strings.ToLower(strings.TrimSpace(qBucket)) |
| switch qBucketType { |
| case QuotaBucketTypeSynchronous: |
| quotaBucketType = &SynchronousQuotaBucketType{} |
| return quotaBucketType, nil |
| case QuotaBucketTypeAsynchronous: |
| quotaBucketType = &AsynchronousQuotaBucketType{} |
| return quotaBucketType, nil |
| case QuotaBucketTypeNonDistributed: |
| quotaBucketType = &NonDistributedQuotaBucketType{} |
| return quotaBucketType, nil |
| default: |
| return nil, errors.New("Ignoring unrecognized quota type in request: " + qBucket) |
| |
| } |
| } |