int ModelVirtuals::lookUpOrAdd(const std::vector<CUDFVersionedPackage*>& disj) {
   std::string key = name(disj);
   auto e = virtuals_.find(key);
   if (e == virtuals_.end()) {
     int newVirtual = packages().size() + virtuals_.size();
     virtuals_[key] = newVirtual;
     return newVirtual;
   }
   return e->second;
 }
Esempio n. 2
0
void add_nodes(node_names_t& nodes, node_names_t& deps, const std::string field_name)
{
    dot.printf("/* Field: %s */\n", field_name.c_str());
    for(node_names_t::const_iterator it(nodes.begin()); it != nodes.end(); ++it) {
        if(manager.field_is_defined(it->f_filename, field_name)) {
            wpkg_dependencies::dependencies depends(manager.get_dependencies(it->f_filename, field_name));
            for(int i(0); i < depends.size(); ++i) {
                const wpkg_dependencies::dependencies::dependency_t& dep(depends.get_dependency(i));
                node_names_t packages(find_nodes(nodes, dep.f_name));
                if(packages.empty()) {
                    packages = find_nodes(deps, dep.f_name);
                    if(packages.empty()) {
                        // it's not defined yet, add it as a dependency
                        package_info_t info;
                        info.f_package = dep.f_name;
                        info.f_filename = dep.f_name;
                        info.f_nodecount = node_count;
                        deps.push_back(info);
                        dot.printf("n%d [label=\"%s\",shape=ellipse];\n", node_count, dep.f_name.c_str());
                        ++node_count;
                        packages = find_nodes(deps, dep.f_name);
                    }
                }
                if(dep.f_operator == wpkg_dependencies::dependencies::operator_any) {
                    // if any operator, then version doesn't apply,
                    // put an empty string instead
                    dot.printf("edge [headlabel=\"\"];\n");
                }
                else {
                    std::string op(dep.operator_to_string());
                    if(op.length() == 0) {
                        op = "=";
                    }
                    std::string version(op + " " + dep.f_version);
                    dot.printf("edge [headlabel=\"\\rversion %s\"];\n", version.c_str());
                }
                for(node_names_t::const_iterator pt(packages.begin()); pt != packages.end(); ++pt) {
                    dot.printf("n%d -> n%d;\n", it->f_nodecount, pt->f_nodecount);
                }
            }
        }
    }
}
Esempio n. 3
0
string getDBStructure()
{
	return "----------------------------------------------------------------------\n\
--\n\
--	MOPSLinux package system\n\
--	Database creation script\n\
--	$Id: dbstruct.cpp,v 1.3 2007/11/02 20:19:45 i27249 Exp $\n\
--\n\
----------------------------------------------------------------------\n\
\n\
create table packages (\n\
	package_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
	package_name TEXT NOT NULL,\n\
	package_version TEXT NOT NULL,\n\
	package_arch TEXT NOT NULL,\n\
	package_build TEXT NULL,\n\
	package_compressed_size TEXT NOT NULL,\n\
	package_installed_size TEXT NOT NULL,\n\
	package_short_description TEXT NULL,\n\
	package_description TEXT NULL, \n\
	package_changelog TEXT NULL,\n\
	package_packager TEXT NULL,\n\
	package_packager_email TEXT NULL,\n\
	package_installed INTEGER NOT NULL,\n\
	package_configexist INTEGER NOT NULL,\n\
	package_action INTEGER NOT NULL,\n\
	package_md5 TEXT NOT NULL,\n\
	package_filename TEXT NOT NULL,\n\
	package_betarelease TEXT NOT NULL,\n\
	package_installed_by_dependency INTEGER NOT NULL DEFAULT '0',\n\
	package_type INTEGER NOT NULL DEFAULT '0'\n\
);\n\
create index ppname on packages (package_id, package_name, package_version, package_action, package_installed, package_md5);\n\
\n\
create table files (\n\
	file_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
	file_name TEXT NOT NULL,\n\
	file_type INTEGER NOT NULL,\n\
	packages_package_id INTEGER NOT NULL\n\
);\n\
create index pname on files (file_name, packages_package_id);\n\
\n\
create table conflicts (\n\
	conflict_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
	conflict_file_name TEXT NOT NULL,\n\
	backup_file TEXT NOT NULL,\n\
	conflicted_package_id INTEGER NOT NULL\n\
);\n\
\n\
create table locations (\n\
	location_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
	packages_package_id INTEGER NOT NULL,\n\
	server_url TEXT NOT NULL,\n\
	location_path TEXT NOT NULL\n\
);\n\
create index locpid on locations(packages_package_id, location_path, server_url);\n\
create table tags (\n\
	tags_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
	tags_name TEXT NOT NULL\n\
);\n\
create index ptag on tags (tags_id, tags_name);\n\
\n\
create table tags_links (\n\
	tags_link_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
	packages_package_id INTEGER NOT NULL,\n\
	tags_tag_id INTEGER NOT NULL\n\
);\n\
create index ptaglink on tags_links (packages_package_id, tags_tag_id);\n\
\n\
create table dependencies (\n\
	dependency_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
	packages_package_id INTEGER NOT NULL,\n\
	dependency_condition INTEGER NOT NULL DEFAULT '1',\n\
	dependency_type INTEGER NOT NULL DEFAULT '1',\n\
	dependency_package_name TEXT NOT NULL,\n\
	dependency_package_version TEXT NULL,\n\
	dependency_build_only INTEGER NOT NULL DEFAULT '0' \
);\n\
\n\
create index pdeps on dependencies (packages_package_id, dependency_id, dependency_package_name, dependency_package_version, dependency_condition);\n\
\n\
-- INTERNATIONAL SUPPORT\n\
\n\
--create table descriptions (\n\
--	description_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
--	packages_package_id INTEGER NOT NULL,\n\
--	description_language TEXT NOT NULL,\n\
--	description_text TEXT NOT NULL,\n\
--	short_description_text TEXT NOT NULL\n\
--);\n\
\n\
--create table changelogs (\n\
--	changelog_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
--	packages_package_id INTEGER NOT NULL,\n\
--	changelog_language TEXT NOT NULL,\n\
--	changelog_text TEXT NOT NULL\n\
--);\n\
\n\
-- RATING SYSTEM - SUPPORT FOR FUTURE\n\
--create table ratings (\n\
--	rating_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,\n\
--	rating_value INTEGER NOT NULL,\n\
--	packages_package_name TEXT NOT NULL\n\
--);\n\
";
}
Esempio n. 4
0
// ----------------------------------------------------------------------------------------------
//  M A I N
// ----------------------------------------------------------------------------------------------
void main(void)
{   
    
   port_init(); 
    timer0_init();
   timer0_Delay(1000);
   SPI_masterInit(); 
   LED_RUN_ON;
   LED_ERROR_ON;
  
   CAN_Init(CAN_PARAMS,  CAN_BAUD_500);  
   CAN_setAcceptFilter(CAN_PARAMS, 2, 0x200);
   LED_ERROR_OFF;
   timer0_Delay(1000);
   
  can_msg_out.ID = 0x100;


  can_msg_out.DLEN = 2;

  //рабочий цикл
  while(1)
  { 
  //-------------------------------------
  // собираем пакет
  packages();
  
  //------------------------------------------------------
   //Посылаем пакет
   if ( (timer0_getCounter() - hbit) > 200) { CAN_Msg_Send(CAN_PARAMS,&can_msg_out); hbit = timer0_getCounter(); LED_RUN_SWITCH; }
   
   //Получаем КАН сообщение
   if (CAN_msg_Read(CAN_PARAMS, &can_msg_in)) 
    { 
	 //Обнуляем флаг ошибки
	 if (err_flag) {LED_ERROR_OFF; err_flag = 0;}
	 //Обрабатываем
	 Process_data(); 
	 //Запоминаем, когда последний раз получили	  
	 timestamp1 =  timer0_getCounter();
	}
 
   //если не получили, проверяем тайм аут
   if ( (timer0_getCounter() - timestamp1) > MAX_timeout )
   {
       err_flag = 1;
	
	   //смотрим, горит ли error
	   //если не горит - включаем и запоминаем когда включили
		
		if ( (timer0_getCounter() - timestamp2) > timeout) 
		  if ( (PORTD & BIT(6)) )
		   {
		    LED_ERROR_ON; 
			B1LED_ON;
			B2LED_ON;
		    timestamp2 = timer0_getCounter();
		    if (!kolvo) {timeout = 600;}
			 else 
			  {timeout = 500; }
		   }
		   else
		   {
		    LED_ERROR_OFF;
			B1LED_OFF;
			B2LED_OFF; 
			timestamp2 = timer0_getCounter();
		    if (kolvo) {timeout = 600;kolvo=0;}
			 else 
			  {timeout = 500;kolvo=1; }
		   }
		   
		   
	  } 
 }
}
 bool ModelVirtuals::isVirtual(int p) const {
   return static_cast<unsigned int>(p) >= packages().size();
 }