tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

mozStorageRow.h (1312B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
      2 * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
      3 * This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #ifndef mozStorageRow_h
      8 #define mozStorageRow_h
      9 
     10 #include "mozIStorageRow.h"
     11 #include "nsCOMArray.h"
     12 #include "nsTHashMap.h"
     13 class nsIVariant;
     14 struct sqlite3_stmt;
     15 
     16 namespace mozilla {
     17 namespace storage {
     18 
     19 class Row final : public mozIStorageRow {
     20 public:
     21  NS_DECL_THREADSAFE_ISUPPORTS
     22  NS_DECL_MOZISTORAGEROW
     23  NS_DECL_MOZISTORAGEVALUEARRAY
     24 
     25  Row() : mNumCols(0) {}
     26 
     27  /**
     28   * Initializes the object with the given statement.  Copies the values from
     29   * the statement.
     30   *
     31   * @param aStatement
     32   *        The sqlite statement to pull results from.
     33   */
     34  nsresult initialize(sqlite3_stmt* aStatement);
     35 
     36 private:
     37  ~Row() {}
     38 
     39  /**
     40   * The number of columns in this tuple.
     41   */
     42  uint32_t mNumCols;
     43 
     44  /**
     45   * Stores the data in the tuple.
     46   */
     47  nsCOMArray<nsIVariant> mData;
     48 
     49  /**
     50   * Maps a given name to a column index.
     51   */
     52  nsTHashMap<nsCStringHashKey, uint32_t> mNameHashtable;
     53 };
     54 
     55 }  // namespace storage
     56 }  // namespace mozilla
     57 
     58 #endif  // mozStorageRow_h