C12Adapter Opensource C++ Interface
MEC12BadProcedureResult Class Reference

Exception which is thrown for the erroneous ANSI C12 procedure response code. More...

Inheritance diagram for MEC12BadProcedureResult:

Public Types

enum  ResultCodeEnum {
  RESULT_OK = 0x00,
  RESULT_NOT_COMPLETED = 0x01,
  RESULT_INVALID_PARAMETER = 0x02,
  RESULT_SETUP_CONFLICT = 0x03,
  RESULT_IGNORE_DUE_TIMING = 0x04,
  RESULT_NO_AUTHORIZATION = 0x05,
  RESULT_UNKNOWN_PROCEDURE = 0x06
}
 Known results of procedure execution, as defined by C12.19. More...
 
- Public Types inherited from MException
enum  KindType {
  ErrorNone = 0,
  ErrorInformation = 1,
  ErrorWarning = 2,
  Error = 3,
  ErrorFatal = 4,
  ErrorCommunication = 5,
  ErrorSystem = 6,
  ErrorSocket = 7,
  ErrorConfiguration = 8,
  ErrorSecurity = 9,
  ErrorMeter = 10,
  ErrorSoftware = 15,
  ErrorUser = 20
}
 Enumeration that stands for the kind of the exception. More...
 
enum  { MaximumVisibleParameterLength = 64 }
 

Public Member Functions

 MEC12BadProcedureResult (ResultCodeEnum resultCode)
 Constructor that takes the procedure result code defined by the ANSI protocol.
 
 MEC12BadProcedureResult (const MEC12BadProcedureResult &)
 Copy constructor.
 
virtual ~MEC12BadProcedureResult ()
 Destructor.
 
MEC12BadProcedureResultoperator= (const MEC12BadProcedureResult &ex)
 Assignment operator. More...
 
virtual MExceptionNewClone () const
 Clone the exception, so the new exception has the same final type. More...
 
virtual M_NORETURN_FUNC void Rethrow ()
 Rethrows this exception. More...
 
ResultCodeEnum GetProcedureResultCode () const
 
void SetProcedureResultCode (ResultCodeEnum code)
 
- Public Member Functions inherited from MCOMException
 MCOMException (MErrorEnum::Type code, MConstLocalChars str,...)
 Constructor that takes the message code and the arguments that correspond to the message code. More...
 
 MCOMException (const MCOMException &ex)
 Copy constructor.
 
virtual ~MCOMException ()
 Destructor.
 
MCOMExceptionoperator= (const MCOMException &ex)
 Assignment operator. More...
 
- Public Member Functions inherited from MException
 MException ()
 Object constructor. More...
 
 MException (const MStdString &message, MErrorEnum::Type code=MErrorEnum::ClientApplicationError, KindType kind=MException::ErrorUser)
 Object constructor with code, kind and variable number of parameters. More...
 
 MException (const MException &ex)
 Object copy constructor. More...
 
virtual ~MException ()
 Object destructor.
 
void InitAll (MException::KindType kind, MErrorEnum::Type code, const MStdString &message)
 Initialize all exception fields with the exact given data.
 
MExceptionoperator= (const MException &ex)
 Assignment operator. More...
 
virtual MStdString AsSimplifiedString () const
 Return a possibly simplified string that specifies information about exception. More...
 
virtual MStdString AsString () const
 Return the string that specifies extended information about exception. More...
 
MStdString GetMessageString () const
 Returns the message that is stored in this exception object. More...
 
void SetMessageString (const MStdString &msg)
 Sets the new message to exception. More...
 
MStdString GetKindAsString () const
 Return a string that represents the exception error kind. More...
 
MStdString GetFileName () const
 Get the file name where the error took place, if this information is available.
 
unsigned GetFileLineNumber () const
 Get the line number within file where the error took place.
 
void UpdateFileNameAndLineNumber (MFileNameAndLineNumber fl)
 Set file name and line number where the compile error took place, if the exception does not have this information already.
 
void UpdateFileAndLine (const MStdString &file, unsigned line)
 If not set already, set file name and line number associated with this exception. More...
 
void AddFileAndLineToStack (const MStdString &file, unsigned line)
 Add file name and line number context associated with this exception into stack. More...
 
void AddFileNameAndLineNumberToStack (MFileNameAndLineNumber fl)
 Add file name and line number context associated with this exception into stack. More...
 
const MFileNameAndLineNumber::VectorTypeGetStack () const
 Get the stack of file names and line numbers.
 
MStdStringVector GetCallStack () const
 Get the stack of file names and line numbers as collection of strings.
 
void Append (const MStdString &)
 Append the specified string to the end of the exception string. More...
 
void Prepend (const MStdString &)
 Prepend the specified string before the beginning of the exception string. More...
 
MErrorEnum::Type GetCode () const
 
void SetCode (MErrorEnum::Type code)
 
KindType GetKind () const
 
void SetKind (KindType kind)
 
void Init (KindType kind, MErrorEnum::Type code, MConstLocalChars str,...)
 Initialize the exception with the given message code and kind from which the message string is fetched from the resource. More...
 
void Init (KindType kind, MErrorEnum::Type code, const char *str,...)
 Initialize the exception with the given message code and kind from which the message string is fetched from the resource. More...
 
void Init (MErrorEnum::Type code, MConstLocalChars str,...)
 Initialize the exception with the given message code and kind from which the message string is fetched from the resource. More...
 
void Init (MErrorEnum::Type code, const char *str,...)
 Initialize the exception with the given message code and kind from which the message string is fetched from the resource. More...
 
void InitVA (KindType kind, MErrorEnum::Type code, MConstLocalChars str, va_list va)
 Initialize the exception with the given message code from the VA list argument. More...
 
void InitVA (KindType kind, MErrorEnum::Type code, const char *str, va_list va)
 Initialize the exception with the given message code from the VA list argument. More...
 
void InitVA (MErrorEnum::Type code, MConstLocalChars str, va_list va)
 Initialize the exception with the given message code from the VA list argument. More...
 
void InitVA (MErrorEnum::Type code, const char *str, va_list va)
 Initialize the exception with the given message code from the VA list argument. More...
 
MFileNameAndLineNumber GetFileNameAndLineNumber () const
 
void SetFileNameAndLineNumber (MFileNameAndLineNumber fl)
 
void AppendToString (MConstLocalChars str,...)
 
void AppendToString (const char *str,...)
 
void PrependBeforeString (MConstLocalChars str,...)
 
void PrependBeforeString (const char *str,...)
 
- Public Member Functions inherited from MObject
virtual ~MObject ()
 Object destructor.
 
virtual const MClassGetClass () const =0
 Get the final class of the object. More...
 
virtual unsigned GetEmbeddedSizeof () const
 For embedded object types, return the size of the class. More...
 
bool IsEmbeddedObject () const
 Tell if the object is of embedded kind. More...
 
SHOW_INTERNAL MVariant Call (const MStdString &name, const MVariant &params)
 Call the object service with parameters, given as variant. More...
 
MVariant Call0 (const MStdString &name)
 Call the object service with no parameters. More...
 
MVariant Call1 (const MStdString &name, const MVariant &p1)
 Call the object service with one parameter. More...
 
MVariant Call2 (const MStdString &name, const MVariant &p1, const MVariant &p2)
 Call the object service with two parameter. More...
 
MVariant Call3 (const MStdString &name, const MVariant &p1, const MVariant &p2, const MVariant &p3)
 Call the object service with three parameter. More...
 
MVariant Call4 (const MStdString &name, const MVariant &p1, const MVariant &p2, const MVariant &p3, const MVariant &p4)
 Call the object service with four parameter. More...
 
MVariant Call5 (const MStdString &name, const MVariant &p1, const MVariant &p2, const MVariant &p3, const MVariant &p4, const MVariant &p5)
 Call the object service with five parameter. More...
 
MVariant Call6 (const MStdString &name, const MVariant &p1, const MVariant &p2, const MVariant &p3, const MVariant &p4, const MVariant &p5, const MVariant &p6)
 Call the object service with six parameter. More...
 
virtual MVariant CallV (const MStdString &name, const MVariant::VariantVector &params)
 Call the object service with parameters, given as variant vector. More...
 
virtual bool IsPropertyPresent (const MStdString &name) const
 Tell if the property with the given name exists.
 
virtual bool IsServicePresent (const MStdString &name) const
 Tell if the service with the given name exists.
 
virtual MVariant GetProperty (const MStdString &name) const
 Get the property value using name of the property. More...
 
virtual void SetProperty (const MStdString &name, const MVariant &value)
 Set the property using name of the property, and value. More...
 
virtual MStdStringVector GetAllPropertyNames () const
 Return the list of publicly available properties, persistent or not. More...
 
virtual MStdStringVector GetAllPersistentPropertyNames () const
 Return the list of persistent properties. More...
 
virtual void SetPersistentPropertiesToDefault ()
 Set the persistent properties of the object to their default values. More...
 
virtual MVariant GetPersistentPropertyDefaultValue (const MStdString &name) const
 Get the default value of persistent property with the name given. More...
 
virtual void SetPersistentPropertyToDefault (const MStdString &name)
 Set the persistent property with the name given to default value. More...
 
virtual const char * GetType () const
 Get the name of the type for the object (could be the same as class name).
 
virtual void SetType (const MStdString &)
 Intentionally, it will set the name of the type for the object, but the service will not allow setting the name to anything other than the current name. More...
 
virtual void Validate ()
 Validate internal structures of the object. More...
 

Static Public Member Functions

static MEC12BadProcedureResultNew ()
 Create a new exception of this type, all parameters are clear.
 
static M_NORETURN_FUNC void Throw (ResultCodeEnum resultCode)
 Throws this exception with the parameters given. More...
 
- Static Public Member Functions inherited from MCOMException
static MCOMExceptionNew ()
 Create a new exception of this type, all parameters are clear.
 
static M_NORETURN_FUNC void ThrowInvalidOperationInForeground ()
 Throws this exception with the parameters that signify the the operation is invalid due to background work.
 
static void CheckIfExpectedDataSizeDifferent (unsigned receivedLength, unsigned expectedLength)
 If the given two values are different then throw an error. More...
 
static M_NORETURN_FUNC void Throw (MErrorEnum::Type code, MConstLocalChars str,...)
 
static M_NORETURN_FUNC void Throw (MErrorEnum::Type code, const char *str,...)
 
static M_NORETURN_FUNC void Throw (MException::KindType kind, MErrorEnum::Type code, MConstLocalChars str,...)
 
static M_NORETURN_FUNC void Throw (MException::KindType kind, MErrorEnum::Type code, const char *str,...)
 
- Static Public Member Functions inherited from MException
static MExceptionNew ()
 Create a new exception of this type, all parameters are clear.
 
static M_NORETURN_FUNC void ThrowUnknownError ()
 Throws this exception as unknown error. More...
 
static M_NORETURN_FUNC void ThrowCannotIndexItem (MConstChars itemName=NULL)
 Throws this exception as error that signifies the item cannot be indexed.
 
static M_NORETURN_FUNC void ThrowNotSupportedForThisType ()
 Throws this exception as error that signifies the operation is not supported for such type.
 
static M_NORETURN_FUNC void ThrowNoValue ()
 Throws this exception as error that signifies the value is absent.
 
static M_NORETURN_FUNC void ThrowNoValue (MFileNameAndLineNumber fl)
 Throws this exception as error that signifies the value given in file and line is absent.
 
static M_NORETURN_FUNC void ThrowBadTimeValue (MConstChars str=NULL)
 Throws this exception as error that signifies the time value is bad.
 
static M_NORETURN_FUNC void ThrowDivisionByZero ()
 Throws this exception as division by zero.
 
static M_NORETURN_FUNC void ThrowCallOutOfSequence ()
 Throws an error that the call is made out of sequence.
 
static M_NORETURN_FUNC void ThrowBadFileFormat (const MStdString &fileName)
 Throws file has bad format.
 
static M_NORETURN_FUNC void ThrowUnexpectedChar (int ch)
 Throws an exception that complains about an unexpected character. More...
 
static M_NORETURN_FUNC void ThrowStringTooLong (int stringLength, int maximumPossibleLength)
 Throws an exception that tells that the string is bigger than the maximum length. More...
 
static M_NORETURN_FUNC void ThrowUnsupportedType (int typetag)
 Throws an error that the given variant type is not supported.
 
static M_NORETURN_FUNC void Throw (const MStdString &message, MErrorEnum::Type code=MErrorEnum::ClientApplicationError)
 Throw this exception with the user message given as parameter. More...
 
static MStdString SimplifyMessageString (const MStdString &message)
 Attempt to simplify the error message string given. More...
 
static MStdString GetKindAsStringStatic (KindType kind)
 Return a string that represents the exception error kind using kind as parameter. More...
 
static MStdString VisualizeParameter (const MVariant &v)
 Make the given variant suitable for showing in error message. More...
 
static char * VisualizeVariantParameter (char *buff, const MVariant &v)
 Make the given variant parameter suitable for showing in error message. More...
 
static char * VisualizeStringParameter (char *buff, const MStdString &v)
 Make the given string parameter suitable for showing in error message. More...
 
static char * VisualizeCharsParameter (char *buff, const char *v)
 Make the given zero terminated string parameter suitable for showing in error message. More...
 
static char * VisualizeCharsParameter (char *buff, const char *v, unsigned len)
 Make the given not zero terminated character parameter suitable for showing in error message. More...
 
static M_NORETURN_FUNC void ThrowSyntaxError (MConstChars offendingString)
 
static M_NORETURN_FUNC void ThrowSyntaxError (MConstChars offendingString, size_t offendingStringLength)
 
static M_NORETURN_FUNC void ThrowUnknownItem (MException::KindType kind, MConstChars name)
 
static M_NORETURN_FUNC void ThrowUnknownItem (MConstChars name)
 
static M_NORETURN_FUNC void ThrowUnknownItem (MException::KindType kind, const MStdString &name)
 
static M_NORETURN_FUNC void ThrowUnknownItem (const MStdString &name)
 
static M_NORETURN_FUNC void Throw (MErrorEnum::Type code, MConstLocalChars str,...)
 
static M_NORETURN_FUNC void Throw (MErrorEnum::Type code, const char *str,...)
 
static M_NORETURN_FUNC void Throw (KindType kind, MErrorEnum::Type code, MConstLocalChars str,...)
 
static M_NORETURN_FUNC void Throw (KindType kind, MErrorEnum::Type code, const char *str,...)
 
- Static Public Member Functions inherited from MObject
static const MClassGetStaticClass ()
 Get the declared class of this particular object. More...
 
static bool IsClassPresent (const MStdString &name)
 Tells if the given class name is available. More...
 

Additional Inherited Members

- Static Public Attributes inherited from MException
static const char s_itemIsUnknownErrorString []
 Constant string "Item '%s' is unknown", shared through many libraries.
 
- Static Public Attributes inherited from MObject
static const MClass s_class
 Class of MObject.
 
- Protected Member Functions inherited from MObject
 MObject ()
 Object constructor, protected as the class is abstract.
 
void DoSetPersistentPropertiesToDefault (const MClass *staticClass)
 Set the persistent properties to their default values for one object provided the class for that object. More...
 
- Protected Attributes inherited from MException
MErrorEnum::Type m_code
 Message code for this exception.
 
KindType m_kind
 The kind type for this exception.
 
MStdString m_message
 Message string that represents this exception.
 
MFileNameAndLineNumber m_fileNameAndLineNumber
 File name and line number where the compile error took place. More...
 
MFileNameAndLineNumber::VectorType m_stack
 Stack of file names and line numbers.
 

Detailed Description

Exception which is thrown for the erroneous ANSI C12 procedure response code.

This is an application-level protocol error.

Member Enumeration Documentation

Known results of procedure execution, as defined by C12.19.

Enumerator
RESULT_OK 

Okay, procedure completed, never thrown code.

Corresponds to MException::GetCode value MErrorEnum::C12ProcedureResultOK

RESULT_NOT_COMPLETED 

Procedure accepted but not fully completed, retryable code.

Corresponds to MException::GetCode value MErrorEnum::C12ProcedureNotCompleted

RESULT_INVALID_PARAMETER 

Invalid parameter for known procedure.

Corresponds to MException::GetCode value MErrorEnum::C12ProcedureInvalidParameter

RESULT_SETUP_CONFLICT 

Conflict with the current device setup.

Corresponds to MException::GetCode value MErrorEnum::C12ProcedureDeviceConflict

RESULT_IGNORE_DUE_TIMING 

Had to ignore the procedure due to timing constraint.

Corresponds to MException::GetCode value MErrorEnum::C12ProcedureTimingConstraint

RESULT_NO_AUTHORIZATION 

No authorization to perform this procedure.

Corresponds to MException::GetCode value MErrorEnum::C12ProcedureNoAuthorization

RESULT_UNKNOWN_PROCEDURE 

Unrecognized or unsupported procedure.

Corresponds to MException::GetCode value MErrorEnum::C12ProcedureUnknown

Member Function Documentation

ResultCodeEnum MEC12BadProcedureResult::GetProcedureResultCode ( ) const
inline

Access the procedure result code, received by the time the procedure was executed unsuccessfully.

virtual MException* MEC12BadProcedureResult::NewClone ( ) const
virtual

Clone the exception, so the new exception has the same final type.

Returns
New exception, which is the same as this.
See also
Rethrow() Rethrows the cloned exception with respect to the final exception type.

Reimplemented from MCOMException.

MEC12BadProcedureResult& MEC12BadProcedureResult::operator= ( const MEC12BadProcedureResult ex)
inline

Assignment operator.

Be careful while using the assignment operator when dealing with children of this class, as the properties of a child might not be copied correctly.

Parameters
exException from which to copy this exception.
Returns
Reference to this object.
virtual M_NORETURN_FUNC void MEC12BadProcedureResult::Rethrow ( )
virtual

Rethrows this exception.

This polymorphic call is necessary if a generic exception is caught by its base, and had to be saved for future throwing. Simple "throw *ex" will not work in this case, as it will call the copy constructor of the declared exception, not the final class copy constructor.

See also
NewClone() Clones the exception so the new exception has the same final type.

Reimplemented from MCOMException.

void MEC12BadProcedureResult::SetProcedureResultCode ( ResultCodeEnum  code)
inline

Access the procedure result code, received by the time the procedure was executed unsuccessfully.

static M_NORETURN_FUNC void MEC12BadProcedureResult::Throw ( ResultCodeEnum  resultCode)
static

Throws this exception with the parameters given.

Analog of the following code:

but saves memory, if there are many throws in the source code. The following is the usage: