void CConnections::Serialize( CArchive& archive )
{
	int iCount=0;
	POSITION pos;
	CString sKey;
	CConnection* pConnection;
	WORD wType;
	int i=0;
	
	// call base class function first
	// base class is CObject in this case
	CObject::Serialize( archive );
	
	
	// now do the stuff for our specific class
	if( archive.IsStoring() ){
		iCount=GetCount();
		archive <<iCount;
		
		pos = GetStartPosition();
		
		while (NULL!=pos) {
			GetNextAssoc(pos,sKey,pConnection);
			//Serialize each connection 
			archive <<sKey<< pConnection->Type();
			pConnection->Serialize(archive);
		}
		
	} 
	
	else {
		archive >>iCount;
		
		for (i=0;i<iCount;i++){
			archive >>sKey>>wType;
			pConnection= Add(sKey,wType);
			pConnection->Serialize(archive);
			if (CConnection::AUTO==pConnection->Type()) {
				if (!pConnection->AutoPtr()->m_pIModbusSrv) {
					Remove(sKey);
				}
			}
			
		}
	}
	
}