storage/mozStorageRow.h
author Brian Stack <bstack@mozilla.com>
Wed, 12 Apr 2017 21:01:46 -0700
changeset 404168 5748607f3014e8cec573fccebce5dcbf83b6ffd6
parent 316618 5f773a189557c1d6283a0ef218cc2d6b71e20c6e
child 508163 6f3709b3878117466168c40affa7bca0b60cf75b
permissions -rw-r--r--
Bug 591688 - Notify when decision task fails r=dustin,gps This uses the email provided by mozilla-taskcluster to find who to email about failed decision tasks. It also adds some validation of the try syntax that we've previously ignored. Any platforms or build types specified in try sytax that don't exist in the full task graph will throw an error. MozReview-Commit-ID: JOKkLle7hEe

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
 * 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 mozStorageRow_h
#define mozStorageRow_h

#include "mozIStorageRow.h"
#include "nsCOMArray.h"
#include "nsDataHashtable.h"
#include "mozilla/Attributes.h"
class nsIVariant;
struct sqlite3_stmt;

namespace mozilla {
namespace storage {

class Row final : public mozIStorageRow
{
public:
  NS_DECL_THREADSAFE_ISUPPORTS
  NS_DECL_MOZISTORAGEROW
  NS_DECL_MOZISTORAGEVALUEARRAY

  Row() : mNumCols(0) {}

  /**
   * Initializes the object with the given statement.  Copies the values from
   * the statement.
   *
   * @param aStatement
   *        The sqlite statement to pull results from.
   */
  nsresult initialize(sqlite3_stmt *aStatement);

private:
  ~Row() {}

  /**
   * The number of columns in this tuple.
   */
  uint32_t mNumCols;

  /**
   * Stores the data in the tuple.
   */
  nsCOMArray<nsIVariant> mData;

  /**
   * Maps a given name to a column index.
   */
  nsDataHashtable<nsCStringHashKey, uint32_t> mNameHashtable;
};

} // namespace storage
} // namespace mozilla

#endif // mozStorageRow_h