Пример #1
0
BOOL GetMonitorListByFile(CMonitorList &lstMonitor,const char *FileTitle)
{
	CString strFileName;

	strFileName.Format("%s/MonitorManager/%s.txt",g_strRootPath.getText(),FileTitle);
	puts(strFileName);

	FILE *pf=fopen(strFileName.getText(),"r+");
	char buf[256]={0};
	if(pf)
	{
		CString strid="";
		LoadConfig lc;
		lc.LoadAll();	
		while(!feof(pf))
		{
			char *p=fgets(buf,255,pf);
			//puts(p);


			if(p!=NULL)
			{
				strid=p;
				strid.Replace("\r","");
				strid.Replace("\n","");
				Monitor *pM=new Monitor;
				try{

					if(lc.CreateSingleMonitor(pM,strid.getText()))
					{
						puts("Create ok");
						lstMonitor.push_back(pM);
						puts("push ok");
					}
					else
					{
						puts("Create failed");
						delete pM;
					}
					memset(buf,0,256);
				}catch(...)
				{
					delete pM;
				}

			}else
				break;

		} 
		fclose(pf);  
	}else
		throw MSException("Open file failed");

	return (lstMonitor.size()>0);

}
Пример #2
0
bool MakeMonitorListByBuf(CMonitorList &lstMonitor,const char *buf)
{
	if(g_pOption==NULL)
		return false;

	const char *pt=buf;
	string str;
	LoadConfig lc;
	lc.m_pOption=g_pOption;

	lc.LoadAll();	

	do{

		str=pt;
		if(str.empty())
			break;
		Monitor *pM=new Monitor();
		if(pM==NULL)
			break;
		try{
			if(lc.CreateSingleMonitor(pM,str.c_str()))
			{
				puts("Create ok");
				lstMonitor.push_back(pM);
				puts("push ok");
			}
			else
			{
				puts("Create failed");
				delete pM;
			}


		}catch(...)
		{
			puts("Create exception");
			delete pM;
		}


		pt+=str.size()+1;

	}while(pt[0]!='\0');

	return true;
}
Пример #3
0
int SerialData::Serial(FILE *pf,CMonitorList &MonitorList,Groups *pGroups,Subsequent *pSubsequent,TASKMAP &TaskMap,bool out)
{
	if(pf==NULL)
		return -2;

	STRINGMAP strmap;

	if(out)
	{
		fputs("//****SiteView ECC serial data file****\r\n",pf);
		fputs("//****Data version 7.01****\r\n",pf);
		fputs("[MonitorList_Begin]\r\n",pf);

		CMonitorList::iterator it;
		for(it=MonitorList.begin();it!=MonitorList.end();it++)
		{
			strmap.clear();
			if(!(*it)->ToTextMap(strmap))
				continue;
			fputs("[Monitor_Begin]\r\n",pf);
			SerialStringMap(strmap,pf);
			fputs("[Monitor_End]\r\n",pf);
		}
		fputs("[MonitorList_End]\r\n",pf);

		strmap.clear();
		if(!pGroups->ToTextMap(strmap))
		{
			fclose(pf);
			return -3;
		}

		fputs("[Groups_Begin]\r\n",pf);
		SerialStringMap(strmap,pf);
		fputs("[Groups_End]\r\n",pf);

		strmap.clear();
		if(!pSubsequent->ToTextMap(strmap))
		{
			fclose(pf);
			return -4;
		}

		fputs("[Subsequent_Begin]\r\n",pf);
		SerialStringMap(strmap,pf);
		fputs("[Subsequent_End]\r\n",pf);

		fputs("[TaskMap_Begin]\r\n",pf);

		TASKMAP::iterator tit;
		Task *ptask=NULL;
		while(TaskMap.findnext(tit))
		{
	    	strmap.clear();
			if((ptask=(*tit).getvalue())==NULL)
				continue;
			if(!ptask->ToTextMap(strmap))
				continue;
			fputs("[Task_Begin]\r\n",pf);
			SerialStringMap(strmap,pf);
			fputs("[Task_End]\r\n",pf);

		}

		fputs("[TaskMap_End]\r\n",pf);

		fclose(pf);


	}else
	{
		string sline;
		char line[2048]={0};
		char *pc=NULL;
		pc=fgets(line,2048,pf);
		if(pc==NULL)
			return -5;
		sline=line;
		int pos=0;
		if((pos=(int)sline.find("//"))!=0)
			return -6;
		if((pos=(int)sline.find("SiteView ECC serial data file"))<0)
			return -7;
		pc=fgets(line,2048,pf);
		if(pc==NULL)
			return -10;

		sline=line;
		if((pos=(int)sline.find("//"))!=0)
			return -8;
		if((pos=(int)sline.find("Data version 7.01"))<0)
			return -9;

		int i=0;
		bool flag=false;

		while(fgets(line,2048,pf)!=NULL)
		{
			sline=line;
			switch(i)
			{
			case	0:
				if((pos=(int)sline.find("[MonitorList_Begin]"))!=0)
				{
					continue;
				}
				else
				{
					flag=true;
					while(true)
					{
						bool mflag=false;
						strmap.clear();
						while((pc=fgets(line,2048,pf))!=NULL)
						{
							sline=line;
							if((pos=(int)sline.find("[Monitor_Begin]"))!=0)
							{
								if((pos=(int)sline.find("[MonitorList_End]"))==0)
								{
									flag=false;
									i++;
									break;
								}
								continue;
							}
							else
								break;
						}
						if(pc==NULL)
							return -11;
						if(!flag)
							break;

						while((pc=fgets(line,2048,pf))!=NULL)
						{
							sline=line;
							if((pos=(int)sline.find("[Monitor_End]"))==0)
							{
								mflag=true;
								break;
							}
							CovertStringToMap(sline,strmap);
						}
						if(pc==NULL)
							return -12;
						if(mflag)
						{
							Monitor *pm=new Monitor();
							if(Univ::seid!=1)
								pm->m_isRefresh= true;
							if(pm->FromTextMap(strmap))
								MonitorList.push_back(pm);
						}
					}
				}
				break;
			case		1:
				if((pos=(int)sline.find("[Groups_Begin]"))!=0)
				{
					continue;
				}else
				{
					strmap.clear();
					flag=false;
					while((pc=fgets(line,2048,pf))!=NULL)
					{
						sline=line;
						if((pos=(int)sline.find("[Groups_End]"))==0)
						{
							i++;
							flag=true;
							break;
						}
						CovertStringToMap(sline,strmap);
					}
					if(pc==NULL)
						return -13;
					if(flag)
						pGroups->FromTextMap(strmap);

				}
				break;
			case	2:
				if((pos=(int)sline.find("[Subsequent_Begin]"))!=0)
				{
					continue;
				}else
				{
					strmap.clear();
					flag=false;
					while((pc=fgets(line,2048,pf))!=NULL)
					{
						sline=line;
						if((pos=(int)sline.find("[Subsequent_End]"))==0)
						{
							i++;
							flag=true;
							break;
						}
						CovertStringToMap(sline,strmap);
					}
					if(pc==NULL)
						return -13;
					if(flag)
						pSubsequent->FromTextMap(strmap);
				}
				break;
			case	3:
				if((pos=(int)sline.find("[TaskMap_Begin]"))!=0)
				{
					continue;
				}else
				{
					flag=true;
					while(true)
					{
						bool mflag=false;
						strmap.clear();
						while((pc=fgets(line,2048,pf))!=NULL)
						{
							sline=line;
							if((pos=(int)sline.find("[Task_Begin]"))!=0)
							{
								if((pos=(int)sline.find("[TaskMap_End]"))==0)
								{
									flag=false;
									i++;
									break;
								}
								continue;
							}
							else
								break;
						}
						if(pc==NULL)
							return -11;
						if(!flag)
						{
							return 0;
						}

						while((pc=fgets(line,2048,pf))!=NULL)
						{
							sline=line;
							if((pos=(int)sline.find("[Task_End]"))==0)
							{
								mflag=true;
								break;
							}
							CovertStringToMap(sline,strmap);
						}
						if(pc==NULL)
							return -12;
						if(mflag)
						{
							Task *pm=new Task();
							if(pm->FromTextMap(strmap))
								TaskMap[pm->m_taskname.c_str()]=pm;
						}


					}
				}
				break;
			case	4:
				return 0;
			default :break;
			}

		}

	}

	return 0;

}