You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.1 KiB
61 lines
2.1 KiB
/***************************************************************************
|
|
stardatasink.cpp - description
|
|
-------------------
|
|
begin : Son Feb 10 2002
|
|
copyright : (C) 2002 by Thomas Kabelmann
|
|
email : tk78@gmx.de
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "stardatasink.h"
|
|
|
|
#include "dms.h"
|
|
#include "kstarsdata.h"
|
|
|
|
StarDataSink::StarDataSink(KStarsData *parent, const char *name) : TQObject(parent, name) {
|
|
ksData = parent;
|
|
receivedBlocks = 0;
|
|
nameListCount = ksData->ObjNames.count();
|
|
}
|
|
|
|
StarDataSink::~StarDataSink(){
|
|
}
|
|
|
|
int StarDataSink::readyToReceive(){
|
|
// return a value != NULL, to show that the object is ready for receiveing data.
|
|
return 1;
|
|
}
|
|
|
|
void StarDataSink::eof() {
|
|
// update skymap at the end of reloading
|
|
emit updateSkymap();
|
|
// clear cached finddialog if new objects were appended to the list
|
|
if (nameListCount != ksData->ObjNames.count()) emit clearCache();
|
|
// end of data transmission
|
|
emit done();
|
|
}
|
|
|
|
void StarDataSink::receive( const uchar *data, int entries ) {
|
|
receivedBlocks++;
|
|
// Pointer was send as const uchar* so it must be converted explicitly to TQString*
|
|
TQString *line = (TQString *) data;
|
|
int counter = -1;
|
|
while (++counter < entries) { // run counter from 0 to entries -1
|
|
ksData->processStar(line, true);
|
|
line++;
|
|
}
|
|
|
|
// update the skymap every tenth block
|
|
if (receivedBlocks % 10 == 0) emit updateSkymap();
|
|
}
|
|
|
|
#include "stardatasink.moc"
|