// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package http

import (
	"net/url"
)

// A CookieJar manages storage and use of cookies in HTTP requests. 
//
// Implementations of CookieJar must be safe for concurrent use by multiple
// goroutines.
type CookieJar interface {
	// SetCookies handles the receipt of the cookies in a reply for the 
	// given URL.  It may or may not choose to save the cookies, depending 
	// on the jar's policy and implementation. 
	SetCookies(u *url.URL, cookies []*Cookie)

	// Cookies returns the cookies to send in a request for the given URL.
	// It is up to the implementation to honor the standard cookie use 
	// restrictions such as in RFC 6265. 
	Cookies(u *url.URL) []*Cookie
}

type blackHoleJar struct{}

func (blackHoleJar) SetCookies(u *url.URL, cookies []*Cookie) {}
func (blackHoleJar) Cookies(u *url.URL) []*Cookie             { return nil }
