GME  13
SocketNetAccessor.cpp
Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: SocketNetAccessor.cpp 471747 2006-11-06 14:31:56Z amassari $
00020  */
00021 
00022 #include <xercesc/util/XMLUniDefs.hpp>
00023 #include <xercesc/util/XMLUni.hpp>
00024 #include <xercesc/util/XMLString.hpp>
00025 #include <xercesc/util/XMLExceptMsgs.hpp>
00026 #include <xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp>
00027 #include <xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp>
00028 
00029 XERCES_CPP_NAMESPACE_BEGIN
00030 
00031 const XMLCh SocketNetAccessor::fgMyName[] =
00032 {
00033     chLatin_S, chLatin_o, chLatin_c, chLatin_k, chLatin_e, chLatin_t,
00034     chLatin_N, chLatin_e, chLatin_t, chLatin_A, chLatin_c, chLatin_c,
00035     chLatin_e, chLatin_s, chLatin_s, chLatin_o, chLatin_r, chNull
00036 };
00037 
00038 
00039 SocketNetAccessor::SocketNetAccessor()
00040 {
00041     // Do any one time initialization here.
00042     // Nothing to do, in this case.
00043 }
00044 
00045 
00046 SocketNetAccessor::~SocketNetAccessor()
00047 {
00048     // Again, nothing to do here.
00049 }
00050 
00051 
00052 BinInputStream* SocketNetAccessor::makeNew(const XMLURL&  urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
00053 {
00054     XMLURL::Protocols  protocol = urlSource.getProtocol();
00055     switch(protocol)
00056     {
00057         case XMLURL::HTTP:
00058         {
00059             UnixHTTPURLInputStream* retStrm =
00060                 new (urlSource.getMemoryManager()) UnixHTTPURLInputStream(urlSource, httpInfo);
00061             return retStrm;            
00062         }
00063 
00064         //
00065         // These are the only protocols we support now. So throw and
00066         // unsupported protocol exception for the others.
00067         //
00068         default :
00069             ThrowXMLwithMemMgr(MalformedURLException, XMLExcepts::URL_UnsupportedProto, urlSource.getMemoryManager());
00070             break;
00071     }
00072     return 0;
00073 }
00074 
00075 XERCES_CPP_NAMESPACE_END
00076