git-svn-id: svn://db.shs.com.ru/pip@399 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2017-04-18 11:05:06 +00:00
parent d380fec57c
commit b1b23bf89c
5 changed files with 12 additions and 9 deletions

View File

@@ -99,6 +99,8 @@ PIVariant::Type PIVariant::typeFromName(const PIString & tname) {
if (s == "float") return PIVariant::pivFloat;
if (s == "double" || s == "real") return PIVariant::pivDouble;
if (s == "ldouble" || s == "longdouble") return PIVariant::pivLDouble;
if (s == "complexd" || s == "complex<double>") return PIVariant::pivComplexd;
if (s == "complexld" || s == "complex<ldouble>" || s == "complex<longdouble>") return PIVariant::pivComplexld;
if (s == "pibitarray" || s == "bitarray") return PIVariant::pivBitArray;
if (s == "pibytearray" || s == "bytearray" || s == "vector<uchar>" || s == "pivector<uchar>" || s == "vector<unsignedchar>" || s == "pivector<unsignedchar>" ||
s == "vector<char>" || s == "pivector<char>") return PIVariant::pivByteArray;
@@ -138,6 +140,8 @@ PIString PIVariant::typeName(PIVariant::Type type) {
case PIVariant::pivFloat: return "Float";
case PIVariant::pivDouble: return "Double";
case PIVariant::pivLDouble: return "LDouble";
case PIVariant::pivComplexd: return "Complexd";
case PIVariant::pivComplexld: return "Complexld";
case PIVariant::pivBitArray: return "BitArray";
case PIVariant::pivByteArray: return "ByteArray";
case PIVariant::pivString: return "String";

View File

@@ -187,6 +187,8 @@ public:
pivFloat /** float */ ,
pivDouble /** double */ ,
pivLDouble /** ldouble */ ,
pivComplexd /** complexd */ ,
pivComplexld /** complexld */ ,
pivBitArray /** PIBitArray */ ,
pivByteArray /** PIByteArray */ ,
pivString /** PIString */ ,

View File

@@ -161,7 +161,6 @@ private:
};
#ifdef PIP_FFTW_FLOAT
template<> inline const PIVector<complex<float> > & PIFFTW<float>::calcFFT(const PIVector<complex<float> > & in) {return ((_PIFFTW_P_float_*)p)->calcFFT(in);}
template<> inline const PIVector<complex<float> > & PIFFTW<float>::calcFFT(const PIVector<float> & in) {return ((_PIFFTW_P_float_*)p)->calcFFTR(in);}
template<> inline const PIVector<complex<float> > & PIFFTW<float>::calcFFTinverse(const PIVector<complex<float> > & in) {return ((_PIFFTW_P_float_*)p)->calcFFTI(in);}
@@ -170,7 +169,6 @@ template<> inline void PIFFTW<float>::newP(void *& _p) {_p = new _PIFFTW_P_float
template<> inline void PIFFTW<float>::deleteP(void *& _p) {if (_p) delete (_PIFFTW_P_float_*)_p; _p = 0;}
typedef PIFFTW<float> PIFFTWf;
#endif // PIP_FFTW_FLOAT
template<> inline const PIVector<complex<double> > & PIFFTW<double>::calcFFT(const PIVector<complex<double> > & in) {return ((_PIFFTW_P_double_*)p)->calcFFT(in);}
@@ -183,7 +181,6 @@ template<> inline void PIFFTW<double>::deleteP(void *& _p) {if (_p) delete (_PIF
typedef PIFFTW<double> PIFFTWd;
#ifdef PIP_FFTW_LDOUBLE
template<> inline const PIVector<complex<ldouble> > & PIFFTW<ldouble>::calcFFT(const PIVector<complex<ldouble> > & in) {return ((_PIFFTW_P_ldouble_*)p)->calcFFT(in);}
template<> inline const PIVector<complex<ldouble> > & PIFFTW<ldouble>::calcFFT(const PIVector<ldouble> & in) {return ((_PIFFTW_P_ldouble_*)p)->calcFFTR(in);}
template<> inline const PIVector<complex<ldouble> > & PIFFTW<ldouble>::calcFFTinverse(const PIVector<complex<ldouble> > & in) {return ((_PIFFTW_P_ldouble_*)p)->calcFFTI(in);}
@@ -192,6 +189,5 @@ template<> inline void PIFFTW<ldouble>::newP(void *& _p) {_p = new _PIFFTW_P_ldo
template<> inline void PIFFTW<ldouble>::deleteP(void *& _p) {if (_p) delete (_PIFFTW_P_ldouble_*)_p; _p = 0;}
typedef PIFFTW<ldouble> PIFFTWld;
#endif // PIP_FFTW_LDOUBLE
#endif // PIFFT_H

View File

@@ -28,12 +28,10 @@
class PIP_EXPORT PIMutex
{
public:
//! Constructs unlocked mutex
explicit PIMutex();
explicit PIMutex(const PIMutex & );
//! Destroy mutex
~PIMutex();
@@ -55,6 +53,7 @@ public:
bool isLocked() const;
private:
explicit PIMutex(const PIMutex & );
void operator =(const PIMutex & );
void init();
@@ -62,7 +61,6 @@ private:
PRIVATE_DECLARATION
bool inited_;
volatile bool locked;
};

View File

@@ -39,7 +39,10 @@ public:
}
~PIPipelineThread() {
stop();
if (!waitForFinish(1000)) terminate();
if (!waitForFinish(1000)) {
piCoutObj << "terminating self thread";
terminate();
}
}
template <typename T>
void connectTo(PIPipelineThread<Tout, T> * next) {