00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "operations.hh"
00026 using namespace std;
00027
00028 COperation::COperation() :
00029 FOperation(OPERATION_NONE),
00030 FDimension(-1)
00031 {}
00032
00033 COperation::COperation(TOperation AOperationType, int ADimension) :
00034 FOperation(AOperationType),
00035 FSubOperation(SUB_OPERATION_NONE),
00036 FDimension(ADimension)
00037 {}
00038
00039 COperation::COperation(TOperation AOperationType,
00040 TSubOperation ASubOperationType, int ADimension) :
00041 FOperation(AOperationType),
00042 FSubOperation(ASubOperationType),
00043 FDimension(ADimension)
00044 {}
00045
00046 COperation::COperation(const COperation & AOperation) :
00047 FOperation (AOperation.FOperation),
00048 FSubOperation(AOperation.FSubOperation),
00049 FDimension (AOperation.FDimension)
00050 {}
00051
00052 COperation::~COperation()
00053 {}
00054
00055 TOperation COperation::getType() const
00056 { return FOperation; }
00057
00058 void COperation::setType(TOperation AOperation)
00059 { FOperation = AOperation; }
00060
00061 TSubOperation COperation::getSubType() const
00062 { return FSubOperation; }
00063
00064 void COperation::setSubType(TSubOperation ASubOperation)
00065 { FSubOperation = ASubOperation; }
00066
00067 int COperation::getDimension() const
00068 { return FDimension; }
00069
00070 void COperation::setDimension(int ADimension)
00071 { FDimension = ADimension; }
00072
00073 void COperation::set(TOperation AOperationType, int ADimension)
00074 {
00075 FOperation = AOperationType;
00076 FSubOperation = SUB_OPERATION_NONE;
00077 FDimension = ADimension;
00078 }
00079
00080 void COperation::set(TOperation AOperationType,
00081 TSubOperation ASubOperationType, int ADimension)
00082 {
00083 FOperation = AOperationType;
00084 FSubOperation = ASubOperationType;
00085 FDimension = ADimension;
00086 }
00087
00088 COperation& COperation::operator=(const COperation& AOperation)
00089 {
00090 FOperation = AOperation.FOperation;
00091 FSubOperation = AOperation.FSubOperation;
00092 FDimension = AOperation.FDimension;
00093 return *this;
00094 }
00095
00096 ostream& operator<<(ostream& AStream, const COperation& AOperation)
00097 {
00098 AStream<<AOperation.FOperation <<" "
00099 <<AOperation.FSubOperation<<" "
00100 <<AOperation.FDimension;
00101 return AStream;
00102 }
00103
00104 istream& operator>>(istream& AStream, COperation& AOperation)
00105 {
00106 int op, subOp;
00107
00108 AStream>>op>>subOp>>AOperation.FDimension;
00109 AOperation.FOperation = (TOperation) op;
00110 AOperation.FSubOperation = (TSubOperation) subOp;
00111 return AStream;
00112 }
00113