diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-04-18 18:26:28 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-04-23 22:20:31 +0200 |
commit | b9337e22ce1dbf2eba0e8c8db294ae99f4111f91 (patch) | |
tree | 53ee1bd3dfd213815a21579151983cb997922b05 /include/tools/inetstrm.hxx | |
parent | f4e1642a1761d5eab6ccdd89928869c2b2f1528a (diff) |
execute move of global headers
see https://gerrit.libreoffice.org/#/c/3367/
and Change-Id: I00c96fa77d04b33a6f8c8cd3490dfcd9bdc9e84a for details
Change-Id: I199a75bc4042af20817265d5ef85b1134a96ff5a
Diffstat (limited to 'include/tools/inetstrm.hxx')
-rw-r--r-- | include/tools/inetstrm.hxx | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/include/tools/inetstrm.hxx b/include/tools/inetstrm.hxx new file mode 100644 index 000000000000..d7b4e149d798 --- /dev/null +++ b/include/tools/inetstrm.hxx @@ -0,0 +1,222 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef _TOOLS_INETSTRM_HXX +#define _TOOLS_INETSTRM_HXX + +#include "tools/toolsdllapi.h" +#include <sal/types.h> +#include <tools/string.hxx> + +class INetMessage; +class INetMIMEMessage; +class SvMemoryStream; +class SvStream; + +enum INetStreamStatus +{ + INETSTREAM_STATUS_LOADED = -4, + INETSTREAM_STATUS_WOULDBLOCK = -3, + INETSTREAM_STATUS_OK = -2, + INETSTREAM_STATUS_ERROR = -1 +}; + +class TOOLS_DLLPUBLIC INetIStream +{ + // Not implemented. + INetIStream (const INetIStream& rStrm); + INetIStream& operator= (const INetIStream& rStrm); + +protected: + virtual int GetData (sal_Char *pData, sal_uIntPtr nSize) = 0; + +public: + INetIStream (); + virtual ~INetIStream (void); + + int Read (sal_Char *pData, sal_uIntPtr nSize); +}; + +class INetOStream +{ + // Not implemented. + INetOStream (const INetOStream& rStrm); + INetOStream& operator= (const INetOStream& rStrm); + +protected: + virtual int PutData ( + const sal_Char *pData, sal_uIntPtr nSize) = 0; + +public: + INetOStream (); + virtual ~INetOStream (void); + + int Write (const sal_Char *pData, sal_uIntPtr nSize); +}; + +enum INetMessageStreamState +{ + INETMSG_EOL_BEGIN, + INETMSG_EOL_DONE, + INETMSG_EOL_SCR, + INETMSG_EOL_FCR, + INETMSG_EOL_FLF, + INETMSG_EOL_FSP, + INETMSG_EOL_FESC +}; + +/// Message Generator Interface. +class INetMessageIStream : public INetIStream +{ + INetMessage *pSourceMsg; + sal_Bool bHeaderGenerated; + + sal_uIntPtr nBufSiz; + sal_Char *pBuffer; + sal_Char *pRead; + sal_Char *pWrite; + + SvStream *pMsgStrm; + SvMemoryStream *pMsgBuffer; + sal_Char *pMsgRead; + sal_Char *pMsgWrite; + + virtual int GetData (sal_Char *pData, sal_uIntPtr nSize); + + // Not implemented. + INetMessageIStream (const INetMessageIStream& rStrm); + INetMessageIStream& operator= (const INetMessageIStream& rStrm); + +protected: + virtual int GetMsgLine (sal_Char *pData, sal_uIntPtr nSize); + +public: + INetMessageIStream (sal_uIntPtr nBufferSize = 2048); + virtual ~INetMessageIStream (void); + + INetMessage *GetSourceMessage (void) const { return pSourceMsg; } + void SetSourceMessage (INetMessage *pMsg) { pSourceMsg = pMsg; } + + void GenerateHeader (sal_Bool bGen = sal_True) { bHeaderGenerated = !bGen; } + sal_Bool IsHeaderGenerated (void) const { return bHeaderGenerated; } +}; + +/// Message Parser Interface. +class INetMessageOStream : public INetOStream +{ + INetMessage *pTargetMsg; + sal_Bool bHeaderParsed; + + INetMessageStreamState eOState; + + SvMemoryStream *pMsgBuffer; + + virtual int PutData (const sal_Char *pData, sal_uIntPtr nSize); + + // Not implemented. + INetMessageOStream (const INetMessageOStream& rStrm); + INetMessageOStream& operator= (const INetMessageOStream& rStrm); + +protected: + virtual int PutMsgLine (const sal_Char *pData, sal_uIntPtr nSize); + +public: + INetMessageOStream (void); + virtual ~INetMessageOStream (void); + + INetMessage *GetTargetMessage (void) const { return pTargetMsg; } + void SetTargetMessage (INetMessage *pMsg) { pTargetMsg = pMsg; } + + void ParseHeader (sal_Bool bParse = sal_True) { bHeaderParsed = !bParse; } + sal_Bool IsHeaderParsed (void) const { return bHeaderParsed; } +}; + +class INetMessageIOStream + : public INetMessageIStream, + public INetMessageOStream +{ + // Not implemented. + INetMessageIOStream (const INetMessageIOStream& rStrm); + INetMessageIOStream& operator= (const INetMessageIOStream& rStrm); + +public: + INetMessageIOStream (sal_uIntPtr nBufferSize = 2048); + virtual ~INetMessageIOStream (void); +}; + +enum INetMessageEncoding +{ + INETMSG_ENCODING_7BIT, + INETMSG_ENCODING_8BIT, + INETMSG_ENCODING_BINARY, + INETMSG_ENCODING_QUOTED, + INETMSG_ENCODING_BASE64 +}; + +class TOOLS_DLLPUBLIC INetMIMEMessageStream : public INetMessageIOStream +{ + int eState; + + sal_uIntPtr nChildIndex; + INetMIMEMessageStream *pChildStrm; + + INetMessageEncoding eEncoding; + INetMessageIStream *pEncodeStrm; + INetMessageOStream *pDecodeStrm; + + SvMemoryStream *pMsgBuffer; + + static INetMessageEncoding GetMsgEncoding ( + const String& rContentType); + + // Not implemented. + INetMIMEMessageStream (const INetMIMEMessageStream& rStrm); + INetMIMEMessageStream& operator= (const INetMIMEMessageStream& rStrm); + +protected: + virtual int GetMsgLine (sal_Char *pData, sal_uIntPtr nSize); + virtual int PutMsgLine (const sal_Char *pData, sal_uIntPtr nSize); + +public: + INetMIMEMessageStream (sal_uIntPtr nBufferSize = 2048); + virtual ~INetMIMEMessageStream (void); + + using INetMessageIStream::SetSourceMessage; + void SetSourceMessage (INetMIMEMessage *pMsg) + { + INetMessageIStream::SetSourceMessage ((INetMessage *)pMsg); + } + INetMIMEMessage *GetSourceMessage (void) const + { + return ((INetMIMEMessage *)INetMessageIStream::GetSourceMessage()); + } + + using INetMessageOStream::SetTargetMessage; + void SetTargetMessage (INetMIMEMessage *pMsg) + { + INetMessageOStream::SetTargetMessage ((INetMessage *)pMsg); + } + INetMIMEMessage *GetTargetMessage (void) const + { + return ((INetMIMEMessage *)INetMessageOStream::GetTargetMessage()); + } +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |