コード例 #1
0
ファイル: Publication.cpp プロジェクト: 2013-8-15/Firmware
void PublicationBase::update(void *data)
{
	if (_handle != nullptr) {
		int ret = orb_publish(getMeta(), getHandle(), data);

		if (ret != PX4_OK) { warnx("publish fail"); }

	} else {
		orb_advert_t handle;

		if (_priority > 0) {
			handle = orb_advertise_multi(
					 getMeta(), data,
					 &_instance, _priority);

		} else {
			handle = orb_advertise(getMeta(), data);
		}

		if (int64_t(handle) != PX4_ERROR) {
			setHandle(handle);

		} else {
			warnx("advert fail");
		}
	}
}
コード例 #2
0
Subscription<T>::Subscription(
	List<SubscriptionBase *> * list,
	const struct orb_metadata *meta, unsigned interval) :
	T(), // initialize data structure to zero
	SubscriptionBase(list, meta) {
	setHandle(orb_subscribe(getMeta()));
	orb_set_interval(getHandle(), interval);
}
コード例 #3
0
ファイル: Subscription.cpp プロジェクト: A11011/PX4Firmware
SubscriptionBase::SubscriptionBase(const struct orb_metadata *meta,
				   unsigned interval, unsigned instance) :
	_meta(meta),
	_instance(instance),
	_handle()
{
	if (_instance > 0) {
		_handle =  orb_subscribe_multi(
				   getMeta(), instance);

	} else {
		_handle =  orb_subscribe(getMeta());
	}

	if (_handle < 0) { warnx("sub failed"); }

	orb_set_interval(getHandle(), interval);
}
コード例 #4
0
int main(int argc, char** argv) {
    QApplication app(argc, argv);
    const auto handler = new Bridge(nullptr);

    QString str;
    QTextStream output(&str);
    getMeta(handler, output);

    qDebug() << qPrintable(str);

    return 0;
}
コード例 #5
0
void getMeta(const QObject* object, QTextStream& output) {
    const auto metaObject = object->metaObject();
    // properties
    const auto propertyCount = metaObject->propertyCount();
    for (int i = 0; i < propertyCount; i++) {
        const auto property = metaObject->property(i);

        if (QString(property.typeName()).endsWith("*")) {
            const auto propertyObject = object->property(property.name());
            getMeta(qvariant_cast<QObject*>(propertyObject), output);
            output << "Object" << " "
            << property.typeName() << " "
            << qPrintable(QString(metaObject->className()) + "::" + property.name())
            << endl;
        } else {
            output << "Property" << " "
            << property.typeName() << " "
            << qPrintable(QString(metaObject->className()) + "::" + property.name())
            << endl;
        }
    }

    // methods
    const auto methodCount = metaObject->methodCount();
    for (int i = 0; i < methodCount; i++) {
        const auto method = metaObject->method(i);
        switch (method.methodType()) {
            case QMetaMethod::Slot: {
                if (method.access() == QMetaMethod::Public) {
                    output << "Slot" << " "
                    << method.typeName() << " "
                    << qPrintable(QString(metaObject->className()) + "::" + method.methodSignature().constData())
                    << endl;
                }
                break;
            }
            case QMetaMethod::Signal: {
                output << "Signal" << " "
                << method.typeName() << " "
                << qPrintable(QString(metaObject->className()) + "::" + method.methodSignature().constData())
                << endl;
                break;
            }
            default: {

            }
        }
    }
}
コード例 #6
0
ファイル: fsfat.c プロジェクト: p054/filesystem
static int read_directory(const char *path, void *buf, fuse_fill_dir_t filler, 
		off_t offset, struct fuse_file_info *fi) {
    	filler(buf, ".", NULL, 0);
    	filler(buf, "..", NULL, 0);
	fmeta *meta;
	int metaNum = getMeta(path, &meta);
	if (metaNum == -1) return -ENOENT;
	char *data;
	int size = readData(meta, &data);
    	int i = 0, n = size/sizeof(int);
	while (i < n) {
		filler(buf, fs.meta[((int*)data)[i]].name, NULL, 0);
		i++;
	}
    	return 0;
}
コード例 #7
0
ファイル: fsfat.c プロジェクト: p054/filesystem
int mkdir_op(const char *path, mode_t mode) {
	return create_file(path, mode | S_IFDIR);

static int unlink(const char* path) {
    if (deleteFile(path) != 0) return -1;
    return 0;
}

static int write(const char *path, const char *buf, size_t off_t offset, struct fuse_file_info *fi) {
	fmeta *meta;
	int metaNum = getMeta(path, &meta);
	if (metaNum == -1) return -ENOENT;
	int s = writeData(meta, buf, nbytes, offset);
	if (s != -1) {
		writeMeta(metaNum);
		return s;
	}
	return -1;
}
コード例 #8
0
ファイル: classifier.cpp プロジェクト: AutumnLight/orange
void TExampleForMissing::resetExample()
{ 
  checkProperty(dataDescription);

  DCs.clear();
  DKs.clear();

  float averageWeight=1;

  TVarList::const_iterator vi(domain->attributes->begin()), vie(domain->attributes->end());
  TExample::iterator ei(begin()), bei(ei);
  vector<float>::const_iterator ai(dataDescription->averages.begin()), aei(dataDescription->averages.end());
  for(; vi!=vie; ei++, vi++) {
    if ((*ei).isSpecial()) {
      if ((*vi)->varType==TValue::FLOATVAR)
        *ei=TValue(*ai);
      else if (dataDescription->missingWeight && (*ei).isDK()) {
        DKs.push_back(ei-bei);
        averageWeight/=float((*vi)->noOfValues());
      }
      else
        DCs.push_back(ei-bei);

      (*vi)->firstValue(*ei);
    }
    if (ai!=aei)
      ai++;
  }

  if (dataDescription->missingWeight) {
    float weight = dataDescription->originalWeight ? getMeta(dataDescription->originalWeight).floatV : 1;
    if (dataDescription->domainDistributions) {
      TDomainDistributions::const_iterator di(dataDescription->domainDistributions->begin());
      ITERATE(vector<int>, ci, DKs) {
        // DKs contain only discrete variables, so it is safe to cast
        const TDiscDistribution &dist = CAST_TO_DISCDISTRIBUTION(*(di+*ci));
        if (dist.abs)
          weight *= dist.front() / dist.abs;
      }
    }
コード例 #9
0
ファイル: medialib.cpp プロジェクト: mstorsjo/vlc
int MediaLibrary::controlMedia( int query, va_list args )
{
    auto mediaId = va_arg( args, int64_t );
    auto m = m_ml->media( mediaId );
    if ( m == nullptr )
        return VLC_EGENERIC;
    switch( query )
    {
        case VLC_ML_MEDIA_INCREASE_PLAY_COUNT:
            if ( m->increasePlayCount() == false )
                return VLC_EGENERIC;
            return VLC_SUCCESS;
        case VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_PREF:
        {
            auto meta = va_arg( args, int );
            auto res = va_arg( args, char** );
            return getMeta( *m, meta, res );
        }
        case VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_PREF:
        {
            auto meta = va_arg( args, int );
            auto value = va_arg( args, const char* );
            return setMeta( *m, meta, value );
        }
        case VLC_ML_MEDIA_SET_THUMBNAIL:
        {
            auto mrl = va_arg( args, const char* );
            m->setThumbnail( mrl );
            return VLC_SUCCESS;
        }
        case VLC_ML_MEDIA_GENERATE_THUMBNAIL:
        {
            auto res = m_ml->requestThumbnail( m );
            return res == true ? VLC_SUCCESS : VLC_EGENERIC;
        }
        case VLC_ML_MEDIA_ADD_EXTERNAL_MRL:
        {
            auto mrl = va_arg( args, const char* );
            auto type = va_arg( args, int );
            medialibrary::IFile::Type mlType;
            switch ( type )
            {
                case VLC_ML_FILE_TYPE_UNKNOWN:
                // The type can't be main since this is added to an existing media
                // which must already have a file
                case VLC_ML_FILE_TYPE_MAIN:
                case VLC_ML_FILE_TYPE_PLAYLIST:
                    return VLC_EGENERIC;
                case VLC_ML_FILE_TYPE_PART:
                    mlType = medialibrary::IFile::Type::Part;
                    break;
                case VLC_ML_FILE_TYPE_SOUNDTRACK:
                    mlType = medialibrary::IFile::Type::Soundtrack;
                    break;
                case VLC_ML_FILE_TYPE_SUBTITLE:
                    mlType = medialibrary::IFile::Type::Subtitles;
                    break;
                default:
                    vlc_assert_unreachable();
            }
            if ( m->addExternalMrl( mrl, mlType ) == nullptr )
                return VLC_EGENERIC;
            return VLC_SUCCESS;
        }
        default:
            vlc_assert_unreachable();
    }
}
コード例 #10
0
ファイル: gsvwrapper.cpp プロジェクト: veijopes/gsvw
void GSVWrapper::processQueue()
{
    if (requestQueue.isEmpty()) {
        qDebug() <<  "GSVWrapper::processQueue(): requestQueue is empty";
        return;
    } else {
        qDebug() << "GSVWrapper::processQueue()";
        printRequests(); // Debug
    }

    foreach(QSharedPointer<Request> req, requestQueue) {
        switch (req->state()) {
        case Request::Unready:
            req->setState(Request::Running);
            switch (req->type()) {
            case Request::Pano: {
                    qDebug() << "Requesting panorama" << req->lat << req->lng;
                    if (req->getMetadata() != 0) {
                        // Metadata is already fetched
                        QVector2D v = getZoomLevel(req->zoomLevel);
                        qDebug() << QString("Zoomlevel %1 max x = %2 and max y = %3").arg(req->zoomLevel).arg(v.x()).arg(v.y());

                        // Here is tile logic
                        for (int x = 0; x < v.x(); x++) {
                            for (int y = 0; y < v.y(); y++) {

                                QImage tile = filehandler.getTile(req->getMetadata()->lat.toDouble(),
                                                                  req->getMetadata()->lng.toDouble(),
                                                                  x, y, req->zoomLevel);
                                if (tile.isNull()) { // Must get tile from network
                                    networkhandler.getTile(req->id,
                                                           req->getMetadata()->pano_id,
                                                           req->zoomLevel,
                                                           x, y, req->priority);
                                } else { // Tile found from cache
                                    // Save tile to current panorama
                                    Tile *t = new Tile(x, y, req->zoomLevel, tile);
                                    req->getPanorama()->addTile(*t);

                                    emit tileReady(tile, req->lat, req->lng, x, y, req->zoomLevel);
                                }
                            }
                        }

                    } else { // Panorama request, but must fetch first metadata
                        qDebug() << "Get metadata first for" << req->id;
                        getMeta(req);
                    }
                }
                break;
            case Request::Meta:
                qDebug() << "Requesting metafield" << req->fieldName;
                networkhandler.getMeta(req->id, req->lat, req->lng);
                break;
            default:
                qDebug() << "GSVWrapper::handleMetadata: Error: Unkown request type";
                break;
            }
            break;
            case Request::Running:
            break;
            case Request::Ready:
            break;
            default:
            qDebug() << "Unknown request state";
            break;
        }
    }

    removeReadyRequests();
}