Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ElectrometerException.cpp 6.36 KiB
//******************************************************************************************
//
//
//		july 24, 2006 :  Source file for the Electrometers exceptions
//					     (available for all models Keithley and Novelec)
//
//
//		author : X.Elattaoui
//
//		ElectrometerException.cpp: interface for the communication exceptions class.
//
//
// $Author: xavela $
//
// $Revision: 1.3 $
//
// $Log: not supported by cvs2svn $
// Revision 1.2  2008/02/15 10:17:57  xavela
// xavier :
// - command abort added for SCPI Keithleys
//
// Revision 1.1  2007/07/09 13:20:37  stephle
// initial import
//
//
//******************************************************************************************

// ============================================================================
// DEPENDENCIES
#include "ElectrometerException.h"

namespace electrometer {

// ============================================================================
// Error::Error
// ============================================================================
Error::Error (void)
  :  reason ("unknown"),
     desc ("unknown error"),
     origin ("unknown"),
     severity (electrometer::ERR)
{

}

// ============================================================================
// Error::Error
// ============================================================================
Error::Error (const char *_reason,
	      const char *_desc,
	      const char *_origin,
	      int _severity)
  :  reason (_reason),
     desc (_desc),
     origin (_origin),
     severity (_severity)
{

}

// ============================================================================
// Error::Error
// ============================================================================
Error::Error (const std::string& _reason,
	      const std::string& _desc,
	      const std::string& _origin,
	      int _severity)
  :  reason (_reason),
     desc (_desc),
     origin (_origin),
     severity (_severity)
{

}

// ============================================================================
// Error::Error
// ============================================================================
Error::Error (const Error& _src)
  :  reason (_src.reason),
     desc (_src.desc),
     origin (_src.origin),
     severity (_src.severity)
{

}

// ============================================================================
// Error::~Error
// ============================================================================
Error::~Error (void)
{

}

// ============================================================================
// Error::operator=
// ============================================================================
Error& Error::operator= (const Error& _src) 
{
  //- no self assign
  if (this == &_src) {
    return *this;
  }

  this->reason	= _src.reason;
  this->desc	= _src.desc;
  this->origin	= _src.origin;
  this->severity = _src.severity;

  return *this;
}

// ============================================================================
// ElectrometerException::ElectrometerException
// ============================================================================
ElectrometerException::ElectrometerException (void)
  : errors(0)
{
  this->push_error(Error());
}

// ============================================================================
// ElectrometerException::ElectrometerException
// ============================================================================
ElectrometerException::ElectrometerException (const char *_reason,
		      const char *_desc,
		      const char *_origin,
		      int _severity) 
  : errors(0)
{

  this->push_error(Error(_reason, _desc, _origin, _severity));
}

// ============================================================================
// ElectrometerException::ElectrometerException
// ============================================================================
ElectrometerException::ElectrometerException (const std::string& _reason,
		      const std::string& _desc,
		      const std::string& _origin,
		      int _severity) 
  : errors(0)
{
  this->push_error(_reason, _desc, _origin,_severity);
}

// ============================================================================
// ElectrometerException::ElectrometerException
// ============================================================================
ElectrometerException::ElectrometerException (const ElectrometerException& _src)
  : errors(0)
{
  for (unsigned int i = 0; i < _src.errors.size();  i++) {
    this->push_error(_src.errors[i]);
  }
}

// ============================================================================
// ElectrometerException::ElectrometerException
// ============================================================================
ElectrometerException& ElectrometerException::operator= (const ElectrometerException& _src)
{
  //- no self assign
  if (this == &_src) {
    return *this;
  }

  this->errors.clear();

  for (unsigned int i = 0; i < _src.errors.size();  i++) {
    this->push_error(_src.errors[i]);
  }

  return *this;
}

// ============================================================================
// ElectrometerException::~ElectrometerException
// ============================================================================
ElectrometerException::~ElectrometerException (void)
{
  this->errors.clear();
}


// ============================================================================
// ElectrometerException::push_error
// ============================================================================
void ElectrometerException::push_error (const char *_reason,
						      const char *_desc,
							  const char *_origin, 
			    int _severity)
{
  this->errors.push_back(Error(_reason, _desc, _origin, _severity));
}

// ============================================================================
// ElectrometerException::push_error
// ============================================================================
void ElectrometerException::push_error (const std::string& _reason,
						      const std::string& _desc,
							  const std::string& _origin, 
			    int _severity)
{
  this->errors.push_back(Error(_reason, _desc, _origin, _severity));
}

// ============================================================================
// ElectrometerException::push_error
// ============================================================================
void ElectrometerException::push_error (const Error& _error)
{
  this->errors.push_back(_error);
}


} // namespace electrometer