Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

Unified Diff: webrtc/base/sec_buffer.h

Issue 2373483002: Delete sec_buffer.h. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/base.gyp ('k') | webrtc/base/socketadapters.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/sec_buffer.h
diff --git a/webrtc/base/sec_buffer.h b/webrtc/base/sec_buffer.h
deleted file mode 100644
index 3ef720a9b295e15c000375c97523ee193595e661..0000000000000000000000000000000000000000
--- a/webrtc/base/sec_buffer.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright 2004 The WebRTC Project Authors. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-// @file Contains utility classes that make it easier to use SecBuffers
-
-#ifndef WEBRTC_BASE_SEC_BUFFER_H__
-#define WEBRTC_BASE_SEC_BUFFER_H__
-
-namespace rtc {
-
-// A base class for CSecBuffer<T>. Contains
-// all implementation that does not require
-// template arguments.
-class CSecBufferBase : public SecBuffer {
- public:
- CSecBufferBase() {
- Clear();
- }
-
- // Uses the SSPI to free a pointer, must be
- // used for buffers returned from SSPI APIs.
- static void FreeSSPI(void *ptr) {
- if ( ptr ) {
- SECURITY_STATUS status;
- status = ::FreeContextBuffer(ptr);
- ASSERT(SEC_E_OK == status); // "Freeing context buffer"
- }
- }
-
- // Deletes a buffer with operator delete
- static void FreeDelete(void *ptr) {
- delete [] reinterpret_cast<char*>(ptr);
- }
-
- // A noop delete, for buffers over other
- // people's memory
- static void FreeNone(void *ptr) {
- }
-
- protected:
- // Clears the buffer to EMPTY & NULL
- void Clear() {
- this->BufferType = SECBUFFER_EMPTY;
- this->cbBuffer = 0;
- this->pvBuffer = NULL;
- }
-};
-
-// Wrapper class for SecBuffer to take care
-// of initialization and destruction.
-template <void (*pfnFreeBuffer)(void *ptr)>
-class CSecBuffer: public CSecBufferBase {
- public:
- // Initializes buffer to empty & NULL
- CSecBuffer() {
- }
-
- // Frees any allocated memory
- ~CSecBuffer() {
- Release();
- }
-
- // Frees the buffer appropriately, and re-nulls
- void Release() {
- pfnFreeBuffer(this->pvBuffer);
- Clear();
- }
-
- // This class must not extend the size of SecBuffer, since we use arrays of
- // CSecBuffer in CSecBufferBundle below.
- static_assert(sizeof(CSecBuffer<pfnFreeBuffer>) == sizeof(SecBuffer), "");
-};
-
-// Contains all generic implementation for the
-// SecBufferBundle class
-class SecBufferBundleBase {
- public:
-};
-
-// A template class that bundles a SecBufferDesc with
-// one or more SecBuffers for convenience. Can take
-// care of deallocating buffers appropriately, as indicated
-// by pfnFreeBuffer function.
-// By default does no deallocation.
-template <int num_buffers,
- void (*pfnFreeBuffer)(void *ptr) = CSecBufferBase::FreeNone>
-class CSecBufferBundle : public SecBufferBundleBase {
- public:
- // Constructs a security buffer bundle with num_buffers
- // buffers, all of which are empty and nulled.
- CSecBufferBundle() {
- desc_.ulVersion = SECBUFFER_VERSION;
- desc_.cBuffers = num_buffers;
- desc_.pBuffers = buffers_;
- }
-
- // Frees all currently used buffers.
- ~CSecBufferBundle() {
- Release();
- }
-
- // Accessor for the descriptor
- PSecBufferDesc desc() {
- return &desc_;
- }
-
- // Accessor for the descriptor
- PSecBufferDesc desc() const {
- return &desc_;
- }
-
- // returns the i-th security buffer
- SecBuffer &operator[] (size_t num) {
- ASSERT(num < num_buffers); // "Buffer index out of bounds"
- return buffers_[num];
- }
-
- // returns the i-th security buffer
- const SecBuffer &operator[] (size_t num) const {
- ASSERT(num < num_buffers); // "Buffer index out of bounds"
- return buffers_[num];
- }
-
- // Frees all non-NULL security buffers,
- // using the deallocation function
- void Release() {
- for ( size_t i = 0; i < num_buffers; ++i ) {
- buffers_[i].Release();
- }
- }
-
- private:
- // Our descriptor
- SecBufferDesc desc_;
- // Our bundled buffers, each takes care of its own
- // initialization and destruction
- CSecBuffer<pfnFreeBuffer> buffers_[num_buffers];
-};
-
-} // namespace rtc
-
-#endif // WEBRTC_BASE_SEC_BUFFER_H__
« no previous file with comments | « webrtc/base/base.gyp ('k') | webrtc/base/socketadapters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698