1b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// found in the LICENSE file.
4b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
5b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "net/quic/spdy_utils.h"
6b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
7b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
8b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "net/spdy/spdy_frame_builder.h"
9b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "net/spdy/spdy_framer.h"
10b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#include "net/spdy/spdy_protocol.h"
11b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
12b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)using std::string;
13b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
14b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace net {
15b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
16b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// static
17b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)string SpdyUtils::SerializeUncompressedHeaders(const SpdyHeaderBlock& headers) {
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  int length = SpdyFramer::GetSerializedLength(kDefaultSpdyMajorVersion,
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                               &headers);
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SpdyFrameBuilder builder(length, kDefaultSpdyMajorVersion);
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SpdyFramer::WriteHeaderBlock(&builder, kDefaultSpdyMajorVersion, &headers);
22b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  scoped_ptr<SpdyFrame> block(builder.take());
23b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  return string(block->data(), length);
24b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
25b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
26b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}  // namespace net
27