Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

MCFTPMessageManager.cpp

Go to the documentation of this file.
00001 // MCFTPMessageManager.cpp
00002 //////////////////////////////////////////////////////////////////////
00003 //          (c) Copyright 2002 Brown Deer Technology, LLC.
00004 //                        All rights reserved.
00005 //////////////////////////////////////////////////////////////////////
00006 
00007 #ifdef USE_STD
00008 #include <iostream>
00009 #include <fstream>
00010 #include <cstdlib>
00011 using namespace std;
00012 #else
00013 #include <iostream.h>
00014 #include <fstream.h>
00015 #include <stdlib.h>
00016 #endif
00017 
00018 #include "utility.h"
00019 #include "MCFTPid.h"
00020 
00021 #include "MCFTPMessageManager.h"
00022 
00023 MCFTPMessageManager* MCFTPMessageManager::_ptinstance = 0;
00024 
00025 unsigned int MCFTPMessageManager::_dst_ip = 0;
00026 unsigned int MCFTPMessageManager::_dst_port = 0;
00027 unsigned int MCFTPMessageManager::_src_ip = 0;
00028 unsigned int MCFTPMessageManager::_src_port = 0;
00029 unsigned int MCFTPMessageManager::_mssgnum = 0;
00030 
00031 MCFTPMessageManager* MCFTPMessageManager::instance()
00032 {
00033    if ( _ptinstance == 0 ) _ptinstance = new MCFTPMessageManager;
00034    return _ptinstance;
00035 }
00036 
00037 void MCFTPMessageManager::destroy() { 
00038    if ( _ptinstance != 0 ) { delete _ptinstance; _ptinstance = 0; }
00039 }
00040 
00041 MCFTPMessageManager::MCFTPMessageManager()
00042 {
00043    int ip3,ip2,ip1,ip0;
00044    ifstream ifs;
00045 
00046    ifs.open("mcftpmessagemanager.conf");
00047    if ( !ifs.good() ) {
00048      cerr << "MCFTPMessageManager::ERROR: failed open on " 
00049           << "file mcftpmessagemanager.conf" << endl ;
00050      exit(1);
00051    }
00052    ifs >> ip3 >> ip2 >> ip1 >> ip0;
00053    _dst_ip = iptoint( ip3, ip2, ip1, ip0 );
00054    ifs >> _dst_port;
00055    ifs >> ip3 >> ip2 >> ip1 >> ip0;
00056    _src_ip = iptoint( ip3, ip2, ip1, ip0 );
00057    ifs >> _src_port;
00058    ifs.close();
00059    
00060    ifs.open("mcftpmessagemanager.rc");
00061    if ( ifs.fail() ) {
00062      cerr << "MCFTPMessageManager::ERROR: failed open on " 
00063           << "file mcftpmessagemanager.rc" << endl ;
00064       exit(1);
00065    }
00066    else ifs >> _mssgnum;
00067    ifs.close();
00068 }
00069 
00070 MCFTPMessageManager::~MCFTPMessageManager()
00071 {
00072    ofstream ofs;
00073    ofs.open("mcftpmessagemanager.rc");
00074    if ( ofs.fail() ) 
00075      cerr << "MCFTPMessageManager::ERROR: failed write, mssgnum = " 
00076           << _mssgnum << endl ;
00077    else ofs << _mssgnum;
00078    ofs.close();
00079 }
00080 
00081 MCFTPid MCFTPMessageManager::get_id()
00082 {
00083    MCFTPid id( _dst_ip, _dst_port, _src_ip, _src_port, _mssgnum++ );
00084    return id;
00085 }
00086 
00087 

Generated on Mon May 31 21:38:49 2004 for SR2k4 Assembler by doxygen 1.3.6