BRAT 2.4.5
Class index
Full class index
brahmlib
BRAHMS
ROOT page
//
//
//

//
// $Id: BrDbParameter.cxx,v 1.3 2001/10/08 10:40:48 cholm Exp $
// $Author: cholm $
// $Date: 2001/10/08 10:40:48 $
// $Copyright: 2000 Brahms Collaboration 
//

#include <BrDbParameter.h>
#ifndef BRAT_BrException
#include "BrException.h"
#endif
#ifndef WIN32 
#include <cstdlib>
#include <iostream>
#else 
#include <cstdlib>
#include <iostream.h>
#endif

ClassImp(BrDbParameter);
 
//____________________________________________________________________
const Char_t* BrDbParameter::kTableName = "Parameter";

//____________________________________________________________________
 BrDbParameter::BrDbParameter(void) 
{
  // Empty default constructor.
}

//____________________________________________________________________
 BrDbParameter::BrDbParameter(const Char_t* name, 
			 Int_t         referenceId,
			 const Char_t* typeName,
			 Int_t         policy,
			 const Char_t* comment)
  : fReferenceID(referenceId), fPolicy(policy)
{
  // Constructor.
  SetName(name);
  SetTypeName(typeName);
  SetComment(comment);
}

//____________________________________________________________________
 BrDbQuery* BrDbParameter::Create(void)
{
  // Returns a SQL query string suitable for creation of this table in
  // a database. 

  return BrDbQuery::Create(BrDbParameter::kTableName,
			   "name        VARCHAR(64) NOT NULL, "
			   "referenceID INT NOT NULL, "
			   "typeName    VARCHAR(32) NOT NULL, "
			   "policy      INT DEFAULT 0, "
			   "comment     VARCHAR(255)");   
}

//____________________________________________________________________
 BrDbParameter* BrDbParameter::SingleInstance(TSQLRow* row)
{
  // Returns an instance of a BrDbParameter. User needs to store this
  // object imidiatly. 
  if (!row) return 0;
  BrDbParameter* param = new BrDbParameter(row->GetField(1),
					   strtol(row->GetField(2),NULL,0),
					   row->GetField(3),
					   strtol(row->GetField(4),NULL,0),
					   row->GetField(5));
  param->SetDBID(strtol(row->GetField(0),NULL,0));
  return param;
}

//____________________________________________________________________
 TObjArray* BrDbParameter::MultipleInstance(TSQLResult* res)
{
  // Returns an (1D) array of BrDbParameter's matching Query that made
  // the TSQLResult. User need to store this immediately. 
  Int_t count = (res) ? res->GetRowCount() : 0;
  TObjArray* table = new TObjArray(count);

  for (Int_t i = 0; i < count; i++)
    table->Add(BrDbParameter::SingleInstance(res->Next()));
  
  return table;
}

//____________________________________________________________________
 BrDbQuery* BrDbParameter::Insert(void) 
{
  return BrDbQuery::Insert(BrDbParameter::kTableName,
			   Form("%d, '%s', %d, '%s', %d, '%s'", 
				GetDBID(), 
				fName, fReferenceID,
				fTypeName, fPolicy, fComment));
}

//____________________________________________________________________
 void BrDbParameter::SetName(const Char_t* name)
{
  if (strlen(name) > 64) {
    strncpy(fName, name, 63);
    fName[63] = '0';
  }
  else 
    strcpy(fName, name);
}

//____________________________________________________________________
 void BrDbParameter::SetTypeName(const Char_t* typeName)
{
  if (strlen(typeName) > 32) {
    strncpy(fTypeName, typeName, 31);
    fName[31] = '0';
  }
  else 
    strcpy(fTypeName, typeName);
}

//____________________________________________________________________
 void BrDbParameter::SetComment(const Char_t* comment)
{
  if (strlen(comment) > 254) {
    strncpy(fComment, comment, 254);
    fComment[254] = '0';
  }
  else 
    strcpy(fComment, comment);
}

//____________________________________________________________________
//
// EOF

This page automatically generated by script docBrat by Christian Holm

Copyright ; 2002 BRAHMS Collaboration <brahmlib@rcf.rhic.bnl.gov>
Last Update on by

Validate HTML
Validate CSS