office-gobmx/include/svl/inettype.hxx
Philipp Hofer 01baeab998 tdf#123936 Formatting files in module include with clang-format
Change-Id: I0507dd797cd5a35e0ae14f4b69ee4e172d08a71a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105681
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
2020-11-21 13:19:17 +01:00

232 lines
10 KiB
C++

/* -*- 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 INCLUDED_SVL_INETTYPE_HXX
#define INCLUDED_SVL_INETTYPE_HXX
#include <svl/svldllapi.h>
#include <tools/inetmime.hxx>
/** Definitions for frequently used media type names.
*/
#define CONTENT_TYPE_STR_APP_OCTSTREAM "application/octet-stream"
#define CONTENT_TYPE_STR_APP_PDF "application/pdf"
#define CONTENT_TYPE_STR_APP_RTF "application/rtf"
#define CONTENT_TYPE_STR_APP_VND_CALC "application/vnd.stardivision.calc"
#define CONTENT_TYPE_STR_APP_VND_CHART "application/vnd.stardivision.chart"
#define CONTENT_TYPE_STR_APP_VND_DRAW "application/vnd.stardivision.draw"
#define CONTENT_TYPE_STR_APP_VND_IMAGE "application/vnd.stardivision.image"
#define CONTENT_TYPE_STR_APP_VND_IMPRESSPACKED "application/vnd.stardivision.impress-packed"
#define CONTENT_TYPE_STR_APP_VND_IMPRESS "application/vnd.stardivision.impress"
#define CONTENT_TYPE_STR_APP_VND_MAIL "application/vnd.stardivision.mail"
#define CONTENT_TYPE_STR_APP_VND_MATH "application/vnd.stardivision.math"
#define CONTENT_TYPE_STR_APP_VND_NEWS "application/vnd.stardivision.news"
#define CONTENT_TYPE_STR_APP_VND_OUTTRAY "application/vnd.stardivision.outtray"
#define CONTENT_TYPE_STR_APP_VND_TEMPLATE "application/vnd.stardivision.template"
#define CONTENT_TYPE_STR_APP_VND_WRITER_GLOBAL "application/vnd.stardivision.writer-global"
#define CONTENT_TYPE_STR_APP_VND_WRITER_WEB "application/vnd.stardivision.writer-web"
#define CONTENT_TYPE_STR_APP_VND_WRITER "application/vnd.stardivision.writer"
#define CONTENT_TYPE_STR_APP_FRAMESET "application/x-frameset"
#define CONTENT_TYPE_STR_APP_GALLERY_THEME "application/x-gallery-theme"
#define CONTENT_TYPE_STR_APP_GALLERY "application/x-gallery"
#define CONTENT_TYPE_STR_APP_JAR "application/x-jar"
#define CONTENT_TYPE_STR_APP_MACRO "application/x-macro"
#define CONTENT_TYPE_STR_APP_MSEXCEL_TEMPL "application/x-msexcel-template"
#define CONTENT_TYPE_STR_APP_MSEXCEL "application/x-msexcel"
#define CONTENT_TYPE_STR_APP_MSPPOINT_TEMPL "application/x-mspowerpoint-template"
#define CONTENT_TYPE_STR_APP_MSPPOINT "application/x-mspowerpoint"
#define CONTENT_TYPE_STR_APP_MSWORD_TEMPL "application/x-msword-template"
#define CONTENT_TYPE_STR_APP_MSWORD "application/x-msword"
#define CONTENT_TYPE_STR_APP_STARCALC "application/x-starcalc"
#define CONTENT_TYPE_STR_APP_STARCHART "application/x-starchart"
#define CONTENT_TYPE_STR_APP_STARDRAW "application/x-stardraw"
#define CONTENT_TYPE_STR_APP_STARHELP "application/x-starhelp"
#define CONTENT_TYPE_STR_APP_STARIMAGE "application/x-starimage"
#define CONTENT_TYPE_STR_APP_STARIMPRESS "application/x-starimpress"
#define CONTENT_TYPE_STR_APP_STARMAIL_SDM "application/x-starmail-sdm"
#define CONTENT_TYPE_STR_APP_STARMAIL_SMD "application/x-starmail-smd"
#define CONTENT_TYPE_STR_APP_STARMATH "application/x-starmath"
#define CONTENT_TYPE_STR_APP_STARWRITER_GLOB "application/x-starwriter-global"
#define CONTENT_TYPE_STR_APP_STARWRITER "application/x-starwriter"
#define CONTENT_TYPE_STR_APP_CDE_CALENDAR_APP "application/x-sun-ae-file"
#define CONTENT_TYPE_STR_APP_ZIP "application/x-zip-compressed"
#define CONTENT_TYPE_STR_AUDIO_AIFF "audio/aiff"
#define CONTENT_TYPE_STR_AUDIO_BASIC "audio/basic"
#define CONTENT_TYPE_STR_AUDIO_MIDI "audio/midi"
#define CONTENT_TYPE_STR_AUDIO_VORBIS "audio/vorbis"
#define CONTENT_TYPE_STR_AUDIO_WAV "audio/wav"
#define CONTENT_TYPE_STR_AUDIO_WEBM "audio/webm"
#define CONTENT_TYPE_STR_X_CNT_FSYSBOX ".chaos/fsys-box"
#define CONTENT_TYPE_STR_X_CNT_FSYSFOLDER ".chaos/fsys-folder"
#define CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFOLDER ".chaos/fsys-special-folder"
#define CONTENT_TYPE_STR_IMAGE_GENERIC "image/generic"
#define CONTENT_TYPE_STR_IMAGE_GIF "image/gif"
#define CONTENT_TYPE_STR_IMAGE_JPEG "image/jpeg"
#define CONTENT_TYPE_STR_IMAGE_PCX "image/pcx"
#define CONTENT_TYPE_STR_IMAGE_PNG "image/png"
#define CONTENT_TYPE_STR_IMAGE_TIFF "image/tiff"
#define CONTENT_TYPE_STR_IMAGE_BMP "image/x-MS-bmp"
#define CONTENT_TYPE_STR_INET_MSG_RFC822 "message/rfc822"
#define CONTENT_TYPE_STR_INET_MULTI_ALTERNATIVE "multipart/alternative"
#define CONTENT_TYPE_STR_INET_MULTI_DIGEST "multipart/digest"
#define CONTENT_TYPE_STR_INET_MULTI_MIXED "multipart/mixed"
#define CONTENT_TYPE_STR_INET_MULTI_PARALLEL "multipart/parallel"
#define CONTENT_TYPE_STR_INET_MULTI_RELATED "multipart/related"
#define CONTENT_TYPE_STR_TEXT_ICALENDAR "text/calendar"
#define CONTENT_TYPE_STR_TEXT_HTML "text/html"
#define CONTENT_TYPE_STR_TEXT_PLAIN "text/plain"
#define CONTENT_TYPE_STR_TEXT_XMLICALENDAR "text/x-icalxml"
#define CONTENT_TYPE_STR_TEXT_URL "text/x-url"
#define CONTENT_TYPE_STR_TEXT_VCALENDAR "text/x-vCalendar"
#define CONTENT_TYPE_STR_TEXT_VCARD "text/x-vCard"
#define CONTENT_TYPE_STR_VIDEO_MSVIDEO "video/x-msvideo"
#define CONTENT_TYPE_STR_VIDEO_THEORA "video/theora"
#define CONTENT_TYPE_STR_VIDEO_VDO "video/vdo"
#define CONTENT_TYPE_STR_VIDEO_WEBM "audio/webm"
#define CONTENT_TYPE_STR_X_STARMAIL "x-starmail"
#define CONTENT_TYPE_STR_X_VRML "x-world/x-vrml"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER "application/vnd.sun.xml.writer"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_CALC "application/vnd.sun.xml.calc"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESS "application/vnd.sun.xml.impress"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_DRAW "application/vnd.sun.xml.draw"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_CHART "application/vnd.sun.xml.chart"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_MATH "application/vnd.sun.xml.math"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER_GLOBAL "application/vnd.sun.xml.writer-global"
#define CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESSPACKED "application/vnd.sun.xml.impress-packed"
/** Definitions for matching parts of URIs.
*/
#define INETTYPE_URL_PROT_DATA "data"
#define INETTYPE_URL_PROT_FILE "file"
#define INETTYPE_URL_PROT_HTTP "http"
#define INETTYPE_URL_PROT_HTTPS "https"
#define INETTYPE_URL_PROT_MACRO "macro"
#define INETTYPE_URL_PROT_MAILTO "mailto"
#define INETTYPE_URL_PROT_PRIVATE "private"
enum INetContentType
{
CONTENT_TYPE_UNKNOWN,
CONTENT_TYPE_APP_OCTSTREAM,
CONTENT_TYPE_APP_PDF,
CONTENT_TYPE_APP_RTF,
CONTENT_TYPE_APP_MSWORD,
CONTENT_TYPE_APP_MSWORD_TEMPL,
CONTENT_TYPE_APP_STARCALC,
CONTENT_TYPE_APP_STARCHART,
CONTENT_TYPE_APP_STARDRAW,
CONTENT_TYPE_APP_STARHELP,
CONTENT_TYPE_APP_STARIMAGE,
CONTENT_TYPE_APP_STARIMPRESS,
CONTENT_TYPE_APP_STARMATH,
CONTENT_TYPE_APP_STARWRITER,
CONTENT_TYPE_APP_ZIP,
CONTENT_TYPE_AUDIO_AIFF,
CONTENT_TYPE_AUDIO_BASIC,
CONTENT_TYPE_AUDIO_MIDI,
CONTENT_TYPE_AUDIO_VORBIS,
CONTENT_TYPE_AUDIO_WAV,
CONTENT_TYPE_AUDIO_WEBM,
CONTENT_TYPE_IMAGE_GIF,
CONTENT_TYPE_IMAGE_JPEG,
CONTENT_TYPE_IMAGE_PCX,
CONTENT_TYPE_IMAGE_PNG,
CONTENT_TYPE_IMAGE_TIFF,
CONTENT_TYPE_IMAGE_BMP,
CONTENT_TYPE_TEXT_HTML,
CONTENT_TYPE_TEXT_PLAIN,
CONTENT_TYPE_TEXT_URL,
CONTENT_TYPE_TEXT_VCARD,
CONTENT_TYPE_VIDEO_MSVIDEO,
CONTENT_TYPE_VIDEO_THEORA,
CONTENT_TYPE_VIDEO_VDO,
CONTENT_TYPE_VIDEO_WEBM,
CONTENT_TYPE_X_CNT_FSYSBOX,
CONTENT_TYPE_X_CNT_FSYSFOLDER,
CONTENT_TYPE_X_STARMAIL,
CONTENT_TYPE_X_VRML,
CONTENT_TYPE_APP_GALLERY,
CONTENT_TYPE_APP_GALLERY_THEME,
CONTENT_TYPE_APP_STARWRITER_GLOB,
CONTENT_TYPE_APP_STARMAIL_SDM,
CONTENT_TYPE_APP_STARMAIL_SMD,
CONTENT_TYPE_APP_VND_CALC,
CONTENT_TYPE_APP_VND_CHART,
CONTENT_TYPE_APP_VND_DRAW,
CONTENT_TYPE_APP_VND_IMAGE,
CONTENT_TYPE_APP_VND_IMPRESS,
CONTENT_TYPE_APP_VND_MAIL,
CONTENT_TYPE_APP_VND_MATH,
CONTENT_TYPE_APP_VND_WRITER,
CONTENT_TYPE_APP_VND_WRITER_GLOBAL,
CONTENT_TYPE_APP_VND_WRITER_WEB,
CONTENT_TYPE_APP_FRAMESET,
CONTENT_TYPE_APP_MACRO,
CONTENT_TYPE_X_CNT_FSYSSPECIALFOLDER,
CONTENT_TYPE_APP_VND_TEMPLATE,
CONTENT_TYPE_IMAGE_GENERIC,
CONTENT_TYPE_APP_VND_NEWS,
CONTENT_TYPE_APP_VND_OUTTRAY,
CONTENT_TYPE_APP_MSEXCEL,
CONTENT_TYPE_APP_MSEXCEL_TEMPL,
CONTENT_TYPE_APP_MSPPOINT,
CONTENT_TYPE_APP_MSPPOINT_TEMPL,
CONTENT_TYPE_TEXT_VCALENDAR,
CONTENT_TYPE_TEXT_ICALENDAR,
CONTENT_TYPE_TEXT_XMLICALENDAR,
CONTENT_TYPE_APP_CDE_CALENDAR_APP,
CONTENT_TYPE_INET_MESSAGE_RFC822,
CONTENT_TYPE_INET_MULTIPART_ALTERNATIVE,
CONTENT_TYPE_INET_MULTIPART_DIGEST,
CONTENT_TYPE_INET_MULTIPART_PARALLEL,
CONTENT_TYPE_INET_MULTIPART_RELATED,
CONTENT_TYPE_INET_MULTIPART_MIXED,
CONTENT_TYPE_APP_VND_IMPRESSPACKED,
CONTENT_TYPE_APP_JAR,
CONTENT_TYPE_APP_VND_SUN_XML_WRITER,
CONTENT_TYPE_APP_VND_SUN_XML_CALC,
CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS,
CONTENT_TYPE_APP_VND_SUN_XML_DRAW,
CONTENT_TYPE_APP_VND_SUN_XML_CHART,
CONTENT_TYPE_APP_VND_SUN_XML_MATH,
CONTENT_TYPE_APP_VND_SUN_XML_WRITER_GLOBAL,
CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED,
CONTENT_TYPE_LAST = CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED
};
class SVL_DLLPUBLIC INetContentTypes
{
public:
static INetContentType GetContentType(OUString const& rTypeName);
static OUString GetContentType(INetContentType eTypeID);
static INetContentType GetContentType4Extension(OUString const& rExtension);
static INetContentType GetContentTypeFromURL(OUString const& rURL);
static bool GetExtensionFromURL(OUString const& rURL, OUString& rExtension);
static bool parse(OUString const& rMediaType, OUString& rType, OUString& rSubType,
INetContentTypeParameterList* pParameters = nullptr);
};
#endif // INCLUDED_SVL_INETTYPE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */