storage/IStorageBindingParamsInternal.h
author Bobby Holley <bobbyholley@gmail.com>
Sat, 01 Dec 2018 03:05:56 +0000
changeset 449094 ef8f344dca811b76a6b556d13b3aa7f5452fb5b2
parent 448947 6f3709b3878117466168c40affa7bca0b60cf75b
child 472056 e1993a1f09ac53cd1a04fdf6a87f8cad8e44f73e
permissions -rw-r--r--
Bug 1510490 - Measure shader cache memory usage and remove total_gpu_bytes. r=mattwoodrow The latter causes confusion in the memory reports because it gets summed up and thus effectively doubles the reported texture memory usage. I've decided it's best to drop, and so might as well do that while we're already messing around with the memory reports and the associated boilerplate. Depends on D13439 Differential Revision: https://phabricator.services.mozilla.com/D13440

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=2 sts=2 expandtab
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_storage_IStorageBindingParamsInternal_h_
#define mozilla_storage_IStorageBindingParamsInternal_h_

#include "nsISupports.h"

struct sqlite3_stmt;
class mozIStorageError;

namespace mozilla {
namespace storage {

#define ISTORAGEBINDINGPARAMSINTERNAL_IID            \
  {                                                  \
    0x4c43d33a, 0xc620, 0x41b8, {                    \
      0xba, 0x1d, 0x50, 0xc5, 0xb1, 0xe9, 0x1a, 0x04 \
    }                                                \
  }

/**
 * Implementation-only interface for mozIStorageBindingParams.  This defines the
 * set of methods required by the asynchronous execution code in order to
 * consume the contents stored in mozIStorageBindingParams instances.
 */
class IStorageBindingParamsInternal : public nsISupports {
 public:
  NS_DECLARE_STATIC_IID_ACCESSOR(ISTORAGEBINDINGPARAMSINTERNAL_IID)

  /**
   * Binds our stored data to the statement.
   *
   * @param aStatement
   *        The statement to bind our data to.
   * @return nullptr on success, or a mozIStorageError object if an error
   *         occurred.
   */
  virtual already_AddRefed<mozIStorageError> bind(sqlite3_stmt *aStatement) = 0;
};

NS_DEFINE_STATIC_IID_ACCESSOR(IStorageBindingParamsInternal,
                              ISTORAGEBINDINGPARAMSINTERNAL_IID)

#define NS_DECL_ISTORAGEBINDINGPARAMSINTERNAL \
  already_AddRefed<mozIStorageError> bind(sqlite3_stmt *aStatement) override;

}  // namespace storage
}  // namespace mozilla

#endif  // mozilla_storage_IStorageBindingParamsInternal_h_