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

This commit is contained in:
2016-09-26 09:23:27 +00:00
parent 7264ef12f6
commit 54895bfd78
3 changed files with 20 additions and 21 deletions

View File

@@ -169,8 +169,7 @@ bool PIVariant::toBool() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real() != 0;} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real() != 0;}
case PIVariant::pivString: {PIString r; ba >> r; return r.toBool();} case PIVariant::pivString: {PIString r; ba >> r; return r.toBool();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return false; return r.front().toBool();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return false; return r.front().toBool();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<bool>(*this);
return getAsValue<bool>(*this);
default: break; default: break;
} }
return false; return false;
@@ -203,8 +202,7 @@ int PIVariant::toInt() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();}
case PIVariant::pivString: {PIString r; ba >> r; return r.toInt();} case PIVariant::pivString: {PIString r; ba >> r; return r.toInt();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0; return r.front().toInt();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0; return r.front().toInt();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<int>(*this);
return getAsValue<int>(*this);
default: break; default: break;
} }
return 0; return 0;
@@ -236,8 +234,8 @@ llong PIVariant::toLLong() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();}
case PIVariant::pivString: {PIString r; ba >> r; return r.toLLong();} case PIVariant::pivString: {PIString r; ba >> r; return r.toLLong();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0L; return r.front().toLLong();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0L; return r.front().toLLong();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<llong>(*this);
return getAsValue<llong>(*this); default: break;
} }
return 0L; return 0L;
} }
@@ -268,8 +266,8 @@ float PIVariant::toFloat() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();}
case PIVariant::pivString: {PIString r; ba >> r; return r.toFloat();} case PIVariant::pivString: {PIString r; ba >> r; return r.toFloat();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0.f; return r.front().toFloat();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0.f; return r.front().toFloat();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<float>(*this);
return getAsValue<float>(*this); default: break;
} }
return 0.f; return 0.f;
} }
@@ -300,8 +298,8 @@ double PIVariant::toDouble() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();}
case PIVariant::pivString: {PIString r; ba >> r; return r.toDouble();} case PIVariant::pivString: {PIString r; ba >> r; return r.toDouble();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0.; return r.front().toDouble();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0.; return r.front().toDouble();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<double>(*this);
return getAsValue<double>(*this); default: break;
} }
return 0.; return 0.;
} }
@@ -332,8 +330,8 @@ ldouble PIVariant::toLDouble() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();}
case PIVariant::pivString: {PIString r; ba >> r; return r.toLDouble();} case PIVariant::pivString: {PIString r; ba >> r; return r.toLDouble();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0.; return r.front().toLDouble();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return 0.; return r.front().toLDouble();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<float>(*this);
return getAsValue<float>(*this); default: break;
} }
return 0.; return 0.;
} }
@@ -364,8 +362,8 @@ complexd PIVariant::toComplexd() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();}
case PIVariant::pivString: {PIString r; ba >> r; return r.toDouble();} case PIVariant::pivString: {PIString r; ba >> r; return r.toDouble();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return complexd_0; return r.front().toDouble();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return complexd_0; return r.front().toDouble();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<complexd>(*this);
return getAsValue<complexd>(*this); default: break;
} }
return complexd_0; return complexd_0;
} }
@@ -396,8 +394,8 @@ complexld PIVariant::toComplexld() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();} case PIVariant::pivComplexld: {complexld r; ba >> r; return r.real();}
case PIVariant::pivString: {PIString r; ba >> r; return r.toLDouble();} case PIVariant::pivString: {PIString r; ba >> r; return r.toLDouble();}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return complexld_0; return r.front().toLDouble();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return complexld_0; return r.front().toLDouble();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<complexld>(*this);
return getAsValue<complexld>(*this); default: break;
} }
return complexld_0; return complexld_0;
} }
@@ -484,8 +482,8 @@ PIString PIVariant::toString() const {
case PIVariant::pivComplexld: {complexld r; ba >> r; return PIString::fromNumber(r.real());} case PIVariant::pivComplexld: {complexld r; ba >> r; return PIString::fromNumber(r.real());}
case PIVariant::pivString: {PIString r; ba >> r; return r;} case PIVariant::pivString: {PIString r; ba >> r; return r;}
case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return PIString(); return r.front();} case PIVariant::pivStringList: {PIStringList r; ba >> r; if (r.isEmpty()) return PIString(); return r.front();}
case PIVariant::pivCustom: case PIVariant::pivCustom: return getAsValue<PIString>(*this);
return getAsValue<PIString>(*this); default: break;
} }
return PIString(); return PIString();
} }

View File

@@ -134,7 +134,7 @@ PIString PIPeer::PeerInfo::fastestAddress() const {
REGISTER_DEVICE(PIPeer) REGISTER_DEVICE(PIPeer)
PIPeer::PIPeer(const PIString & n): PIIODevice(), diag_d(false), diag_s(false), eth_tcp_srv(PIEthernet::TCP_Server), eth_tcp_cli(PIEthernet::TCP_Client) { PIPeer::PIPeer(const PIString & n): PIIODevice(), eth_tcp_srv(PIEthernet::TCP_Server), eth_tcp_cli(PIEthernet::TCP_Client), diag_s(false), diag_d(false) {
destroyed = false; destroyed = false;
PIMutexLocker mbl(mc_mutex); PIMutexLocker mbl(mc_mutex);
PIMutexLocker ethl(eth_mutex); PIMutexLocker ethl(eth_mutex);

View File

@@ -64,8 +64,8 @@ void PIProcess::startProc(bool detached) {
//cout << "run" << endl; //cout << "run" << endl;
PIString str; PIString str;
/// arguments convertion /// arguments convertion
int as = 0;
#ifdef WINDOWS #ifdef WINDOWS
int as = 0;
//args.pop_front(); //args.pop_front();
piForeachC (PIString & i, args) piForeachC (PIString & i, args)
as += i.lengthAscii() + 3; as += i.lengthAscii() + 3;
@@ -135,7 +135,8 @@ void PIProcess::startProc(bool detached) {
if (g_out) tf_out = freopen(f_out.path().data(), "w", stdout); if (g_out) tf_out = freopen(f_out.path().data(), "w", stdout);
if (g_err) tf_err = freopen(f_err.path().data(), "w", stderr); if (g_err) tf_err = freopen(f_err.path().data(), "w", stderr);
#ifndef WINDOWS #ifndef WINDOWS
if (!wd.isEmpty()) as = chdir(wd.data()); int as2;
if (!wd.isEmpty()) as2 = chdir(wd.data());
#endif #endif
#ifdef WINDOWS #ifdef WINDOWS
GetStartupInfoA(&si); GetStartupInfoA(&si);