1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /**
- * Copyright 2015 Paul Querna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
- package cacheobject
- // Repersents a potential Reason to not cache an object.
- //
- // Applications may wish to ignore specific reasons, which will make them non-RFC
- // compliant, but this type gives them specific cases they can choose to ignore,
- // making them compliant in as many cases as they can.
- type Reason int
- const (
- // The request method was POST and an Expiration header was not supplied.
- ReasonRequestMethodPOST Reason = iota
- // The request method was PUT and PUTs are not cachable.
- ReasonRequestMethodPUT
- // The request method was DELETE and DELETEs are not cachable.
- ReasonRequestMethodDELETE
- // The request method was CONNECT and CONNECTs are not cachable.
- ReasonRequestMethodCONNECT
- // The request method was OPTIONS and OPTIONS are not cachable.
- ReasonRequestMethodOPTIONS
- // The request method was TRACE and TRACEs are not cachable.
- ReasonRequestMethodTRACE
- // The request method was not recognized by cachecontrol, and should not be cached.
- ReasonRequestMethodUnkown
- // The request included an Cache-Control: no-store header
- ReasonRequestNoStore
- // The request included an Authorization header without an explicit Public or Expiration time: http://tools.ietf.org/html/rfc7234#section-3.2
- ReasonRequestAuthorizationHeader
- // The response included an Cache-Control: no-store header
- ReasonResponseNoStore
- // The response included an Cache-Control: private header and this is not a Private cache
- ReasonResponsePrivate
- // The response failed to meet at least one of the conditions specified in RFC 7234 section 3: http://tools.ietf.org/html/rfc7234#section-3
- ReasonResponseUncachableByDefault
- )
- func (r Reason) String() string {
- switch r {
- case ReasonRequestMethodPOST:
- return "ReasonRequestMethodPOST"
- case ReasonRequestMethodPUT:
- return "ReasonRequestMethodPUT"
- case ReasonRequestMethodDELETE:
- return "ReasonRequestMethodDELETE"
- case ReasonRequestMethodCONNECT:
- return "ReasonRequestMethodCONNECT"
- case ReasonRequestMethodOPTIONS:
- return "ReasonRequestMethodOPTIONS"
- case ReasonRequestMethodTRACE:
- return "ReasonRequestMethodTRACE"
- case ReasonRequestMethodUnkown:
- return "ReasonRequestMethodUnkown"
- case ReasonRequestNoStore:
- return "ReasonRequestNoStore"
- case ReasonRequestAuthorizationHeader:
- return "ReasonRequestAuthorizationHeader"
- case ReasonResponseNoStore:
- return "ReasonResponseNoStore"
- case ReasonResponsePrivate:
- return "ReasonResponsePrivate"
- case ReasonResponseUncachableByDefault:
- return "ReasonResponseUncachableByDefault"
- }
- panic(r)
- }
|