Esempio n. 1
0
	FlowVRCegRenderer::FlowVRCegRenderer( flowvr::OutputPort *port,
										  unsigned int nIdPrefix )
	: Renderer()
	, m_port(port)
	, m_writer( new flowvr::render::ChunkRenderWriter )
	, m_nId(0)
	, m_nIdPrefix(nIdPrefix)
	, m_nIdVs(0)
	, m_nIdPs(0)
	, m_identifierString( "FlowVRCegRenderer" )
	, m_defaultRenderTarget( NULL )
	, m_renderingRoot( NULL )
	, m_dispSize(640,480)
	, m_dispDPI(96,96)
	, m_nFBOId(0)
	, m_currentTarget(NULL)
	{

		m_defaultRenderTarget = new FlowVRCegTextureTarget(m_nFBOId++, *this, "defaultRenderTarget" );
		m_renderingRoot = new RenderingRoot( *m_defaultRenderTarget );

		m_nIdVs = generateID();
		m_nIdPs = generateID();

		if( !m_writer->loadVertexShader( m_nIdVs, "shaders/texture_menu_v.cg" ) )
			m_nIdVs = 0;

		if( !m_writer->loadPixelShader ( m_nIdPs, "shaders/texture_menu_p.cg" ) )
			m_nIdPs = 0;
	}
Esempio n. 2
0
void MainWindow::on_btnAdd_clicked(){
    QString id ;
    QString item;
    QDate date;
    int money;
    if (ui->leItem->text() != ""){
        item = ui->leItem->text();
        money = ui->spMoney->value();
        date = ui->date->date();
        id = generateID();
        if (addMoneyDB(item,money,date,id)){
            QDateTime curnentDateTime = QDateTime::currentDateTime();
            addItemMoneyTree(item,money,date,id);
            addEventDB(curnentDateTime,"Added: " + item
                       + " $ "+ QString::number(money)
                       + " $ " + date.toString("dd/MM/yyyy"));
            ui->leItem->setText("");
            ui->spMoney->setValue(0);
            log->addEvent(curnentDateTime.toString("yyyy-MM-dd hh:mm:ss")
                          + " | Added: " + item
                          + " $ " + QString::number(money)
                          + " $ " + date.toString("dd/MM/yyyy"));
        }
        else {
            QMessageBox::critical(this,"ERROR","An Error occur, cannot add new item");
            qDebug() << "ERROR: Cannot add new item";
        }
    }
    else {
        QMessageBox::critical(this,"ERROR","Item field cannot be empty");
        qDebug() << "ERROR: Item field cannot be empty";
    }
}
Esempio n. 3
0
Timer *TimerManager::createIndefiniteFreq(TimerObserver *pObs, float frequency)
{
	Timer *pTimer = new Timer(generateID(), 0, 0.0f, 1.0f / frequency);
	pTimer->registerObserver(pObs);
	addTimer(pTimer);
	return pTimer;
}
Esempio n. 4
0
Timer *TimerManager::createIndefinite(TimerObserver *pObs, float interval)
{
	Timer *pTimer = new Timer(generateID(), 0, 0.0f, interval);
	pTimer->registerObserver(pObs);
	addTimer(pTimer);
	return pTimer;
}
Esempio n. 5
0
Timer *TimerManager::createShotLimitedFreq(TimerObserver *pObs, float frequency, float shots)
{
	Timer *pTimer = new Timer(generateID(), shots, 0.0f, 1.0f / frequency);
	pTimer->registerObserver(pObs);
	addTimer(pTimer);
	return pTimer;
}
Esempio n. 6
0
Timer *TimerManager::createShotLimited(TimerObserver *pObs, float interval, float shots)
{
	Timer *pTimer = new Timer(generateID(), shots, 0.0f, interval);
	pTimer->registerObserver(pObs);
	addTimer(pTimer);
	return pTimer;
}
Esempio n. 7
0
Timer *TimerManager::createTimeLimited(TimerObserver *pObs, int shotCount, float time)
{
	Timer *pTimer = new Timer(generateID(), 0, time, time / (float)shotCount);
	pTimer->registerObserver(pObs);
	addTimer(pTimer);
	return pTimer;
}
Esempio n. 8
0
Timer *TimerManager::createOneShot(TimerObserver *pObs, float time)
{
	Timer *pTimer = new Timer(generateID(), 1, 0.0f, time);
	pTimer->registerObserver(pObs);
	addTimer(pTimer);
	return pTimer;
}
Esempio n. 9
0
void GFF4Struct::loadStructs(GFF4File &parent, Field &field) {
	if (field.offset == 0xFFFFFFFF)
		return;

	const GFF4File::StructTemplate &tmplt = parent.getStructTemplate(field.structIndex);

	Common::SeekableReadStream &data = parent.getStream(field.offset);

	const uint32 structCount = getListCount(data, field);
	const uint32 structSize  = field.isReference ? 4 : tmplt.size;
	const uint32 structStart = data.pos();

	field.structs.resize(structCount, 0);
	for (uint32 i = 0; i < structCount; i++) {
		const uint32 offset = getDataOffset(field.isReference, structStart + i * structSize);
		if (offset == 0xFFFFFFFF)
			continue;

		GFF4Struct *strct = parent.findStruct(generateID(offset, &tmplt));
		if (!strct)
			strct = new GFF4Struct(parent, offset, tmplt);

		strct->_refCount++;

		field.structs[i] = strct;
	}
}
Esempio n. 10
0
TilePoint Tile::pat_xBond(Point3 p, TileParam& t) {
	TilePattern* pat = t.pattern;

	if (!pat) return TilePoint();

	float edges[4];
	int id = 0;
	int id2 = 0;
	
	// Tile top and bottom
	float rand = 3.14f;
	int row = rowcol(edges[3], edges[1], id, p.y, pat->totalHeight, pat->heights, t.tileHeight, t.tileHeightVar, rand);
	if (row == -1) return TilePoint();

	// Tile sides
	rand = edges[3] * 1.325f + 31.41213f;
	float offset = pat->rows[row].offset * t.tileWidth;
	if (offset < 0) offset *= -id;

	row = rowcol(edges[0], edges[2], id2, p.x + offset, pat->rows[row].totalWidth, pat->rows[row].tiles, t.tileWidth, t.tileWidthVar, rand);		
	if (row == -1) return TilePoint();

	edges[0] -= offset;
	edges[2] -= offset;

	id = generateID(id2, id);

	// Draw it
	return drawTile(p, edges, t, id);	
}
Esempio n. 11
0
    virtual co::Object* createObject( const uint32_t type )
    {
        co::Object *object = 0;
        switch( type )
        {
        case SMI_FRAME_SETTINGS:
            object = new FrameSettings();
            break;
        case SMI_RENDER_SETTINGS:
            object = new RenderSettings();
            break;
        case SMI_CAMERA_SETTINGS:
            object = new CameraSettings();
            break;
        case SMI_VOLUME_SETTINGS:
            object = new VolumeSettings();
            break;
        case SMI_VR_PARAMETERS:
            object = new VolumeRendererParameters();
            break;
        }

        if( object )
        {
            object->setID( generateID( type ) );
        }

        return object;
    }
Esempio n. 12
0
    bool button(int x, int y, int w, int h, std::string text,
                std::string textureFile, Vector4 color) {
        float height = h;
        float width = w;
        int ID = generateID();
        bool showHintText = false;
        checkUIRegion(ID, x, y, w, h);
        if (state.hotItem == ID) {
            if (state.activeItem == ID) {
            } else {
                showHintText = true;
                height = h * (0.96f + 0.04f * cos(timeAnimationAcc / 90.0f));
                width = w * (0.96f + 0.04f * cos(timeAnimationAcc / 90.0f));
            }
        }

        float offset_x = (w - width) / 2.0f;
        float offset_y = (h - height) / 2.0f;

        RenderItem item = generateRenderItem(
            RENDER_ITEM_BUTTON, textureFile, text, x, y, width, height,
            offset_x, offset_y, color, showHintText);

        addToRenderQueue(item);
        return checkUIHit(ID);
    }
Esempio n. 13
0
TilePoint Tile::pat_herring(Point3 p, TileParam& t) {
	float s = t.tileWidth * 2.f;	
	float h = t.tileWidth * .5f;
	float x = p.x / s;
	float y = p.y / s;
	int xi = FASTFLOOR(x);
	int yi = FASTFLOOR(y);
	x = xi * s;
	y = yi * s;
	int x_id = (int)((p.x - x) / h) % 4;
	int y_id = (int)((p.y - y) / h) % 4;	
	int id = x_id + 4 * y_id;

	//Point3 center = Point3(pat_herring_x[id]*h+x, pat_herring_y[id]*h+y, p.z);

	float edges[4];

	if (!pat_herring_dir[id]) {
		edges[0] = (pat_herring_x[id]-1.f) * h + x;
		edges[2] = edges[0] + t.tileWidth;
		edges[3] = (pat_herring_y[id]-.5f) * h + y;
		edges[1] = edges[3] + h;
	} else {
		edges[0] = (pat_herring_x[id]-.5f) * h + x;
		edges[2] = edges[0] + h;
		edges[3] = (pat_herring_y[id]-1.f) * h + y;
		edges[1] = edges[3] + t.tileWidth;	
	}

	int tid = generateID(xi*4 + (pat_herring_dir[id] ? 0 : pat_herring_id[id]),
						 yi*4 + (pat_herring_dir[id] ? pat_herring_id[id] : 0));			
	
	return drawTile(p, edges, t, tid, pat_herring_dir[id]);
}
Esempio n. 14
0
    bool checkbox(int x, int y, int w, int h, std::string text, bool& checked,
                  std::string textureFile, Vector4 color) {
        float height = h;
        float width = w;
        int ID = generateID();
        bool showHintText = false;
        checkUIRegion(ID, x, y, w, h);
        if (state.hotItem == ID) {
            if (state.activeItem == ID) {
            } else {
                showHintText = true;
                height = h * (0.96f + 0.04f * cos(timeAnimationAcc / 90.0f));
                width = w * (0.96f + 0.04f * cos(timeAnimationAcc / 90.0f));
            }
        }
        float offset_x = (w - width) / 2.0f;
        float offset_y = (h - height) / 2.0f;
        if (!checked) {
            float oldAplha = color.a;
            color *= 0.5f;
            color.a = oldAplha;
        }
        RenderItem item = generateRenderItem(
            RENDER_ITEM_CHECKBOX, textureFile, text, x, y, width, height,
            offset_x, offset_y, color, showHintText);

        addToRenderQueue(item);
        if (checkUIHit(ID)) {
            checked = !checked;
            return true;
        }
        return false;
    }
Esempio n. 15
0
BookItem::BookItem(BookItem* parent, const QString& boxLabel)
{
	box = true;
	parent_item = parent;
	MY_ASSERT(parent);
	label = boxLabel;
	id = generateID();
}
Esempio n. 16
0
//=======================
//       PRIVATE SLOTS
//=======================
//GENERIC SERVER SIGNALS
// New Connection Signals
void WebServer::NewSocketConnection(){
  WebSocket *sock = 0;
  if(WSServer!=0){
    if(WSServer->hasPendingConnections()){ 
      QWebSocket *ws = WSServer->nextPendingConnection();
      if( !allowConnection(ws->peerAddress()) ){ ws->close(); }
      else{ sock = new WebSocket( ws, generateID(), AUTH); }
    }
  }else if(TCPServer!=0){
    if(TCPServer->hasPendingConnections()){ 
	QSslSocket *ss = TCPServer->nextPendingConnection();
	if( !allowConnection(ss->peerAddress()) ){ ss->close(); }    
	else{ sock = new WebSocket( ss, generateID(), AUTH); }
    }
  }
  if(sock==0){ return; } //no new connection
  //qDebug() << "New Socket Connection";	
  connect(sock, SIGNAL(SocketClosed(QString)), this, SLOT(SocketClosed(QString)) );
  connect(EVENTS, SIGNAL(NewEvent(EventWatcher::EVENT_TYPE, QJsonValue)), sock, SLOT(EventUpdate(EventWatcher::EVENT_TYPE, QJsonValue)) );
  OpenSockets << sock;
}
Esempio n. 17
0
	Texture& FlowVRCegRenderer::createTexture(const Size& size)
	{
		FlowVRCegTexture *t = new FlowVRCegTexture( *this, generateID(), "" );
		if( t )
		{
			m_textures.push_back( t );
			return *t;
		}

		// should not reach this point
		throw std::exception();
	}
int TextureResourcer::createTextureFromWIC(ID3D11Device* device, ID3D11DeviceContext* deviceContext, const char* filename, TextureHandle* texHandle)
{
    ID3D11Resource* texture = nullptr;
    ID3D11ShaderResourceView* textureView = nullptr;
    WCHAR* wfilename = convertMultiByteToWCHAR(filename);
    HRESULT hr = CreateWICTextureFromFile(device, deviceContext, wfilename, &texture, &textureView);
    delete[] wfilename;
    //HRESULT hr = DirectX::CreateDDSTextureFromFile( device, , nullptr, &textureView );

    if(!textureView)
    {
        assert(false);
        DebugAssert(textureView, "Failed to load texture: ", filename);
    }
    

    D3D11_SHADER_RESOURCE_VIEW_DESC desc;
    textureView->GetDesc(&desc);
    

    if(hr)
        return hr;

    //generate id (which is really an array index)
    int index = generateID();
    
    //get size
    unsigned int width;
    unsigned int height;
    GetTextureSizeD3D(texture, &width, &height);

    //ensure sizing in textures storage
    if(textures.size() <= (unsigned int)index)
        textures.resize(index+1);

    //add to storage
    TextureData& data = textures[index];
    data.ID = index;
    data.name = filename;
    data.width = width;
    data.height = height;
    data.textureResource = texture;
    data.textureView = textureView;

    //reference by name
    textureNameToId[filename] = index;

    TextureHandle hTex = {index};
    *texHandle = hTex;

    return hr;
}
Esempio n. 19
0
GFF4Struct::GFF4Struct(GFF4File &parent, const Field &genericParent) :
	_parent(&parent), _label(0), _refCount(0), _fieldCount(0) {

	_id = generateID(genericParent.offset);
	parent.registerStruct(_id, this);

	try {
		load(parent, genericParent);
	} catch (...) {
		parent.unregisterStruct(_id);
		throw;
	}
}
Esempio n. 20
0
GFF4Struct::GFF4Struct(GFF4File &parent, uint32 offset, const GFF4File::StructTemplate &tmplt) :
	_parent(&parent), _label(tmplt.label), _refCount(0), _fieldCount(0) {

	_id = generateID(offset, &tmplt);
	parent.registerStruct(_id, this);

	try {
		load(parent, offset, tmplt);
	} catch (...) {
		parent.unregisterStruct(_id);
		throw;
	}
}
Esempio n. 21
0
void GFF4Struct::loadGeneric(GFF4File &parent, Field &field) {
	field.offset = getDataOffset(field.isList, field.offset);
	if (field.offset == 0xFFFFFFFF)
		return;

	GFF4Struct *strct = parent.findStruct(generateID(field.offset));
	if (!strct)
		strct = new GFF4Struct(parent, field);

	strct->_refCount++;

	field.structs.push_back(strct);
}
Esempio n. 22
0
BookItem::BookItem(BookItem* parent, const BookDescription& bd, const QString& uid)
{
	box = false;
	parent_item = parent;
	MY_ASSERT(parent);
	label = bd.toTextString();
	if(uid.isEmpty()) {
		id = generateID();
	} else {
		id = uid;
	}
	book_descr = bd;
}
Esempio n. 23
0
GeneratedGrid GridGenerator::randomGrid()  {
    Grid::idarray_t id = generateID();
    double angle_z = _YawAngle_dis(_re);
    double angle_y = _PitchAngle_dis(_re);
    double angle_x = sampleRollAngle();
    double radius = 0;
    do {
        radius = _Radius_dis(_re);
    } while (radius < 24 && radius > 26);
    auto center_cords = [&]() { return int(round(_Center_dis(_re))); };
    cv::Point2i center{center_cords(), center_cords()};
    return GeneratedGrid(id, center, radius, angle_x, angle_y, angle_z);
}
Esempio n. 24
0
	Texture& FlowVRCegRenderer::createTexture(const String& filename,
								   const String& resourceGroup)
	{
		FlowVRCegTexture *t = new FlowVRCegTexture( *this, generateID(), std::string(filename.c_str()) );
		if( t )
		{
			t->loadFromFile(filename, resourceGroup);
			m_textures.push_back(t);
			return *t;
		}

		// should not reach this point
		throw std::exception();
	}
Esempio n. 25
0
//creates an instance of the property populated with the node data
Property::Property(Property* prop, node* v){
	id = generateID();
	cout << "Property created " << id << endl;

	if (prop->argumentType == PTypeAnalog){

		cout << " ***** FOR DEBUGGING PURPOSE ONLY ***** " << endl;
		AnalogProperty* ap = (AnalogProperty*)prop; 
		Property* arg = prop->argument;
		AnalogProperty* ap2 = (AnalogProperty*)(prop->argument);

		argument = new AnalogProperty((AnalogProperty*)(prop->argument), v);
	}else if(argumentType == PTypeBoolean){
		//todo
	}
	argumentType = prop->argumentType;
}
Esempio n. 26
0
	metadata()
	{
		// Create root directory info
		stat *rootdir = new stat();
		rootdir->st_uid = geteuid();
		rootdir->st_gid = getegid();
		rootdir->st_mode = 0755 | S_IFDIR;
		rootdir->st_nlink = 2;
		rootdir->st_blksize = 4096;
		rootdir->st_blocks = 1;
		rootdir->st_size = 512;
		rootdir->fid = generateID();
		time_t now = time(NULL);
		rootdir->st_mtime = now;
		rootdir->st_ctime = now;
		rootdir->type = FILETYPE_DIRTY;
		dirs[rootdir->fid] = new dir();
	};
int TextureResourcer::createTextureFromWIC(ID3D11Device* device, ID3D11DeviceContext* deviceContext, const uint8_t * binaryData, int binaryLength, TextureHandle* texHandle)
{
    ID3D11Resource* texture = nullptr;
    ID3D11ShaderResourceView* textureView = nullptr;
    HRESULT hr = CreateWICTextureFromMemory(device, deviceContext, binaryData ,binaryLength, &texture, &textureView);
    //HRESULT hr = DirectX::CreateDDSTextureFromFile( device, , nullptr, &textureView );

    

    D3D11_SHADER_RESOURCE_VIEW_DESC desc;
    textureView->GetDesc(&desc);
    

    if(hr)
        return hr;

    //generate id (which is really an array index)
    int index = generateID();
    
    //get size
    unsigned int width;
    unsigned int height;
    GetTextureSizeD3D(texture, &width, &height);

    //ensure sizing in textures storage
    if(textures.size() <= (unsigned int)index)
        textures.resize(index+1);

    //add to storage
    TextureData& data = textures[index];
    data.ID = index;
    data.name = "";
    data.width = width;
    data.height = height;
    data.textureResource = texture;
    data.textureView = textureView;

    TextureHandle hTex = {index};
    *texHandle = hTex;

    return hr;
}
Esempio n. 28
0
	void FileStore::scan(const string & a_path) {
		if (!fs::exists(a_path)) 
			return;
		if (fs::is_directory(a_path)) {
			fs::directory_iterator end; // default construction yields past-the-end
			for (fs::directory_iterator curr(a_path); curr != end; ++curr) {
				fs::path p = curr->path();
				string s = p.string();
				scan(s);
			}
		} else if (fs::is_regular_file(a_path)) {
			if (pathExists(a_path))
				return;
			TagLib::FileRef file_ref(a_path.c_str(), false);
			if (!file_ref.isNull() && file_ref.tag()) {
				cerr << "indexing " << a_path << endl;
				TagLib::Tag *t = file_ref.tag();
				string artist = t->artist().to8Bit(true);
				string album = t->album().to8Bit(true);
				string title = t->title().to8Bit(true);
				string genre = t->genre().to8Bit(true);
				string year = t->year() > 0 ? lexical_cast<string>(t->year()) : "";
				string track = t->track() > 0 ? lexical_cast<string>(t->track()) : "";
				string uri = "file://" + a_path;
				shared_ptr<UUID> fileID(generateID());
				addField(*fileID, ARTIST, artist);
				addField(*fileID, ARTIST, artist);
				addField(*fileID, ALBUM, album);
				addField(*fileID, YEAR, year);
				addField(*fileID, TITLE, title);
				addField(*fileID, GENRE, genre);
				addField(*fileID, TRACK, track);
				addField(*fileID, URI, uri);
			}
		}
	}
Esempio n. 29
0
bool	CContentDownloader::Startup( const bool _bPreview, bool _bReadOnlyInstance )
{
	g_Log->Info( "Attempting to start contentdownloader...", _bPreview );
	Shepherd::initializeShepherd();

	Shepherd::setRedirectServerName( g_Settings()->Get( "settings.content.redirectserver", std::string(REDIRECT_SERVER) ).c_str() );
	
	std::string root = g_Settings()->Get( "settings.content.sheepdir", g_Settings()->Root() + "content" );
	
	if (root.empty())
	{
		root = g_Settings()->Root() + "content";
		g_Settings()->Set( "settings.content.sheepdir", root );
	}
	
	Shepherd::setRootPath( root.c_str() );
	Shepherd::setCacheSize( g_Settings()->Get( "settings.content.cache_size", 2000 ), 0 );
	Shepherd::setCacheSize( g_Settings()->Get( "settings.content.cache_size_gold", 2000 ), 1 );
	if (g_Settings()->Get( "settings.content.unlimited_cache", true) == true)
		Shepherd::setCacheSize( 0, 0 );
	if (g_Settings()->Get( "settings.content.unlimited_cache_gold", true) == true)
		Shepherd::setCacheSize( 0, 1 );
	Shepherd::setPassword( g_Settings()->Get( "settings.content.password_md5", std::string("") ).c_str() );
	Shepherd::setUniqueID( g_Settings()->Get( "settings.content.unique_id", generateID() ).c_str() );
	Shepherd::setUseProxy( g_Settings()->Get( "settings.content.use_proxy", false ) );
	Shepherd::setRegistered( g_Settings()->Get( "settings.content.registered", false ) );
	Shepherd::setProxy( g_Settings()->Get( "settings.content.proxy", std::string("") ).c_str() );
	Shepherd::setProxyUserName( g_Settings()->Get( "settings.content.proxy_username", std::string("") ).c_str() );
	Shepherd::setProxyPassword( g_Settings()->Get( "settings.content.proxy_password", std::string("") ).c_str() );

	Shepherd::setSaveFrames( g_Settings()->Get( "settings.generator.save_frames", false ) );
	SheepGenerator::setNickName( g_Settings()->Get( "settings.generator.nickname", std::string("") ).c_str() );
	SheepGenerator::setURL( g_Settings()->Get( "settings.generator.user_url", std::string("") ).c_str() );

    m_gDownloader = NULL;
		
	if( g_Settings()->Get( "settings.content.download_mode", true ) && _bReadOnlyInstance == false)
	{
		m_gDownloader = new SheepDownloader();
		g_Log->Info( "Starting download thread..." );
		m_gDownloadThread = new boost::thread( boost::bind( &SheepDownloader::shepherdCallback, m_gDownloader ) );
#ifdef WIN32
		SetThreadPriority( (HANDLE)m_gDownloadThread->native_handle(), THREAD_PRIORITY_BELOW_NORMAL );
		SetThreadPriorityBoost( (HANDLE)m_gDownloadThread->native_handle(), TRUE );
#else
		struct sched_param sp;
		sp.sched_priority = 6; //Background NORMAL_PRIORITY_CLASS - THREAD_PRIORITY_BELOW_NORMAL
		pthread_setschedparam( (pthread_t)m_gDownloadThread->native_handle(), SCHED_RR, &sp );
#endif
	}
	else
		g_Log->Warning( "Downloading disabled." );

	if( g_Settings()->Get( "settings.generator.enabled", true ) && _bReadOnlyInstance == false)
	{
		//	Create the generators based on the number of processors.
		uint32 ncpus = 1;
		if( g_Settings()->Get( "settings.generator.all_cores", false ) )
		{
#ifdef WIN32
			SYSTEM_INFO sysInfo;
			GetSystemInfo( &sysInfo );
			ncpus = (uint32)sysInfo.dwNumberOfProcessors;
#else
	#ifdef MAC
			ncpus = static_cast<uint32>(MPProcessors());
        #else
#ifdef LINUX_GNU
			ncpus = sysconf( _SC_NPROCESSORS_ONLN );
#endif
	#endif
#endif
		}

		if (ncpus > 1)
			--ncpus;
		uint32 i;
		for( i=0; i<ncpus; i++ )
		{
			g_Log->Info( "Starting generator for core %d...", i );
			gGenerators.push_back( new SheepGenerator() );
			gGenerators[i]->setGeneratorId( i );
		}

		g_Log->Info( "Starting generator threads..." );

		for( i=0; i<gGenerators.size(); i++ )
		{
			gGeneratorThreads.push_back( new boost::thread( boost::bind( &SheepGenerator::shepherdCallback, gGenerators[i] ) ) );
#ifdef WIN32
			SetThreadPriority( (HANDLE)gGeneratorThreads[i]->native_handle(), THREAD_PRIORITY_IDLE );
			SetThreadPriorityBoost( (HANDLE)gGeneratorThreads[i]->native_handle(), FALSE );
#else
			struct sched_param sp;
			sp.sched_priority = 1; //THREAD_PRIORITY_IDLE - THREAD_PRIORITY_IDLE
			pthread_setschedparam( (pthread_t)gGeneratorThreads[i]->native_handle(), SCHED_RR, &sp );
#endif
		}
	}
	else
		g_Log->Warning( "Generators disabled..." );

	g_Log->Info( "...success" );

	return true;
}
Esempio n. 30
0
int EntryController::add(tm date, std::string category, std::string description, float amount)
{
	int id = generateID();
	addData(new Entry(id, mktime(&date), category, description, amount));
	return id;
}