Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   Related Pages  

LocalServer.cc

00001 /*
00002  * Copyright 2003 Michael A. Marsh, Cornell University. All rights reserved.
00003  * This software is released under the modified BSD license.
00004  * See the file LICENSE in the top-level directory for details.
00005  */
00006 //
00007 // $Id: LocalServer.cc,v 1.3 2004/05/19 15:56:55 mmarsh Exp $
00008 //
00009 // $Log: LocalServer.cc,v $
00010 // Revision 1.3  2004/05/19 15:56:55  mmarsh
00011 // *** empty log message ***
00012 //
00013 // Revision 1.2  2003/11/04 22:17:23  mmarsh
00014 // General code cleanup.
00015 //
00016 //
00017 
00018 #include <iostream>
00019 
00020 #include "LocalServer.h"
00021 #include "Socket.h"
00022 #include "SocketBuilder.h"
00023 #include "Message.h"
00024 
00025 using namespace CODEX_Quorum;
00026 
00027 LocalServer::LocalServer( int port, const SocketBuilder& socketBuilder ) :
00028    m_port( port ),
00029    m_socket( 0 ),
00030    m_builder( socketBuilder )
00031 {
00032 }
00033 
00034 LocalServer::~LocalServer()
00035 {
00036    if ( 0 != m_socket )
00037       delete m_socket;
00038 }
00039 
00040 void
00041 LocalServer::enable()
00042 {
00043    if ( 0 != m_socket )
00044    {
00045       cerr << "Service on port " << m_port << " is already enabled." << endl;
00046       return;
00047    }
00048    m_socket = m_builder();
00049    m_socket->setup(m_port, 0);
00050 }
00051 
00052 void
00053 LocalServer::disable()
00054 {
00055    if ( 0 != m_socket )
00056    {
00057       delete m_socket;
00058       m_socket = 0;
00059    }
00060 }
00061 
00062 int
00063 LocalServer::port() const
00064 {
00065    return m_port;
00066 }
00067 
00068 int
00069 LocalServer::set_fd( fd_set* fd_bitmap, SocketBase::StateType s )
00070 {
00071    if ( 0 == m_socket ) return -1;
00072    return m_socket->set_fd( fd_bitmap, s );
00073 }
00074 
00075 bool
00076 LocalServer::isset_fd( const fd_set* fd_bitmap, SocketBase::StateType s )
00077 {
00078    if ( 0 == m_socket ) return false;
00079    return m_socket->isset_fd( fd_bitmap, s );
00080 }
00081 
00082 SocketBase*
00083 LocalServer::socket() const
00084 {
00085    return m_socket;
00086 }

Generated on Wed Jun 2 16:32:55 2004 for COrnell Data EXchange (CODEX) by doxygen1.2.18