git-svn-id: svn://db.shs.com.ru/libs@491 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -36,22 +36,27 @@ const uchar header_transfer = 0x81;
|
||||
|
||||
__Core_Initializer__::__Core_Initializer__() {
|
||||
count_++;
|
||||
//piCout << "try create Core" << count_;
|
||||
piCout << "try create Core" << count_;
|
||||
if (count_ > 1) return;
|
||||
//piCout << "create Core";
|
||||
piCout << "create Core";
|
||||
__instance__ = new CDCore();
|
||||
}
|
||||
|
||||
|
||||
__Core_Initializer__::~__Core_Initializer__() {
|
||||
count_--;
|
||||
//piCout << "try delete Core" << count_;
|
||||
piCout << "try delete Core" << count_;
|
||||
if (count_ < 0) {
|
||||
count_ = 0;
|
||||
return;
|
||||
}
|
||||
if (count_ > 0) return;
|
||||
//piCout << "delete Core";
|
||||
if (__instance__ != 0) {
|
||||
piCout << "delete Core ...";
|
||||
if (__instance__) {
|
||||
delete __instance__;
|
||||
__instance__ = 0;
|
||||
}
|
||||
piCout << "delete Core ok";
|
||||
}
|
||||
|
||||
|
||||
@@ -59,9 +64,7 @@ __Core_Initializer__::~__Core_Initializer__() {
|
||||
|
||||
CDCore::CDCore() {
|
||||
setName("CDCore");
|
||||
sendt.setName("CDCore_send_thread");
|
||||
datatr.setName("CDCore_datatransfer");
|
||||
x_timer.setName("CDCore_X_timer");
|
||||
x_timer.setName("__S__.CDCore.x_timer");
|
||||
datatr.setPacketSize(960);
|
||||
CONNECTU(&connection, dataReceivedEvent, this, dataReceived);
|
||||
CONNECTU(PICout::Notifier::object(), finished, this, piCoutFinished);
|
||||
@@ -78,9 +81,9 @@ CDCore::CDCore() {
|
||||
initRoot(&c_);
|
||||
initRoot(&m_);
|
||||
|
||||
CONNECTU(&sendt, started, this, sendThread)
|
||||
CONNECTU(&datatr, sendRequest, this, dtSendRequest)
|
||||
CONNECTU(&datatr, receiveFinished, this, dtReceiveFinished)
|
||||
CONNECTU(&sendt, started, this, sendThread)
|
||||
CONNECTU(&x_timer, tickEvent, this, xTimerTick)
|
||||
|
||||
/*k_[1] = KType(1, "123", "120+3", "comment");
|
||||
@@ -96,16 +99,17 @@ CDCore::CDCore() {
|
||||
|
||||
|
||||
CDCore::~CDCore() {
|
||||
piCout << "~CDCore";
|
||||
piCout << "~CDCore ...";
|
||||
x_timer.stop(false);
|
||||
piCout << "~CDCore 1";
|
||||
datatr.stop();
|
||||
piCout << "~datatr.stop()";
|
||||
x_timer.stop();
|
||||
piCout << "~x_timer.stop()";
|
||||
sendt.stop(true);
|
||||
piCout << "~sendt.stop()";
|
||||
// sendt.waitForFinish(10);
|
||||
piCout << "~CDCore 2";
|
||||
sendt.stop();
|
||||
piCout << "~CDCore 3";
|
||||
sendt.waitForFinish(10);
|
||||
piCout << "~CDCore 4";
|
||||
connection.stop();
|
||||
piCout << "~connection.stop()";
|
||||
piCout << "~CDCore ok";
|
||||
}
|
||||
|
||||
|
||||
@@ -305,6 +309,17 @@ CDCore * CDCore::instance() {
|
||||
}
|
||||
|
||||
|
||||
bool CDCore::destroy() {
|
||||
if (!__Core_Initializer__::__instance__) return false;
|
||||
piCout << "delete Core ...";
|
||||
delete __Core_Initializer__::__instance__;
|
||||
piCout << "delete Core ok";
|
||||
__Core_Initializer__::__instance__ = 0;
|
||||
__Core_Initializer__::count_ = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void CDUtils::CDCore::K_DirectChange(PIDeque<int> path, PIString value) {
|
||||
piCoutObj << "K_DirectChange";
|
||||
PacketKDirectChange p;
|
||||
|
||||
Reference in New Issue
Block a user