// BinSocketInputSource.cpp
// ---------------------------------------------------------------------------
//  Includes
// ---------------------------------------------------------------------------
#include <iostream.h>
#include <string.h>
#include <stdlib.h>

#include <stdio.h>

#include <xercesc/util/BinFileInputStream.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/framework/BinSocketInputSource.hpp>
#include <xercesc/util/NetAccessors/Socket/BinSocketInputStream.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLURL.hpp>
XERCES_CPP_NAMESPACE_BEGIN

// ---------------------------------------------------------------------------
//  BinSocketInputSource: Constructors and Destructor
// ---------------------------------------------------------------------------

BinSocketInputSource::BinSocketInputSource(const XMLCh* const hostAddress)
{
    XMLCh* tmpBuf = XMLString::replicate(hostAddress);
	m_pRetStrm = NULL ;
    setSystemId(tmpBuf);
}

BinSocketInputSource::~BinSocketInputSource()
{
	if ( m_pRetStrm != NULL ) {
	  m_pRetStrm->Cleanup();
	}
}


// ---------------------------------------------------------------------------
//  BinSocketInputSource: InputSource interface implementation
// ---------------------------------------------------------------------------
BinInputStream* BinSocketInputSource::makeStream() const
{
	printf("makeStream systemid=%s\n", XMLString::transcode(getSystemId()));
    BinSocketInputStream* m_pRetStrm ;// the stream used for input.    
    m_pRetStrm = new BinSocketInputStream(getSystemId());
    return (BinInputStream*)m_pRetStrm;
}

XERCES_CPP_NAMESPACE_END

