本文整理汇总了C++中ContentType类的典型用法代码示例。如果您正苦于以下问题:C++ ContentType类的具体用法?C++ ContentType怎么用?C++ ContentType使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ContentType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: appendAnyPart
void Multipart::appendAnyPart( EString &r, const Bodypart * bp,
ContentType * ct, bool avoidUtf8 ) const
{
ContentType * childct = bp->header()->contentType();
EString::Encoding e = EString::Binary;
ContentTransferEncoding * cte
= bp->header()->contentTransferEncoding();
if ( cte )
e = cte->encoding();
if ( ( childct && childct->type() == "message" ) ||
( ct && ct->type() == "multipart" && ct->subtype() == "digest" &&
!childct ) )
{
if ( childct && childct->subtype() != "rfc822" )
appendTextPart( r, bp, childct );
else
r.append( bp->message()->rfc822( avoidUtf8 ) );
}
else if ( !childct || childct->type().lower() == "text" ) {
appendTextPart( r, bp, childct );
}
else if ( childct->type() == "multipart" ) {
bp->appendMultipart( r, avoidUtf8 );
}
else {
r.append( bp->data().encoded( e, 72 ) );
}
}
示例2: load
bool MediaPlayer::load(const URL& url, const ContentType& contentType, const String& keySystem)
{
m_contentMIMEType = contentType.type().lower();
m_contentTypeCodecs = contentType.parameter(codecs());
m_url = url;
m_keySystem = keySystem.lower();
m_contentMIMETypeWasInferredFromExtension = false;
#if ENABLE(MEDIA_SOURCE)
m_mediaSource = 0;
#endif
// If the MIME type is missing or is not meaningful, try to figure it out from the URL.
if (m_contentMIMEType.isEmpty() || m_contentMIMEType == applicationOctetStream() || m_contentMIMEType == textPlain()) {
if (m_url.protocolIsData())
m_contentMIMEType = mimeTypeFromDataURL(m_url.string());
else {
String lastPathComponent = url.lastPathComponent();
size_t pos = lastPathComponent.reverseFind('.');
if (pos != notFound) {
String extension = lastPathComponent.substring(pos + 1);
String mediaType = MIMETypeRegistry::getMediaMIMETypeForExtension(extension);
if (!mediaType.isEmpty()) {
m_contentMIMEType = mediaType;
m_contentMIMETypeWasInferredFromExtension = true;
}
}
}
}
loadWithNextMediaEngine(0);
return m_currentMediaEngine;
}
示例3: substituer
void substituer(MimeEntity * mimeEntity, const string url, const string affectations, const string affectations_html) {
// Substitue _URL_ et _AFFECTATIONS_ dans toutes les parties text/plain et text/html
ContentType contentType = mimeEntity->header().contentType();
if (
contentType.type() == "text" and (
contentType.subtype() == "plain" or
contentType.subtype() == "html")
)
{
Body& body = mimeEntity->body();
string::size_type position;
while((position = body.find("_URL_")) != string::npos) {
body.replace(position, sizeof("_URL_") - 1, url);
}
while((position = body.find("_AFFECTATIONS_")) != string::npos) {
body.replace(position, sizeof("_AFFECTATIONS_") - 1, (contentType.subtype() == "html" ? affectations_html : affectations));
}
} else {
MimeEntityList::iterator sous_partie_iterator = mimeEntity->body().parts().begin(),
fin = mimeEntity->body().parts().end();
for(;sous_partie_iterator!=fin;++sous_partie_iterator) {
substituer(*sous_partie_iterator, url, affectations, affectations_html);
}
}
}
示例4: load
void MediaPlayer::load(const String& url, const ContentType& contentType)
{
String type = contentType.type().lower();
String typeCodecs = contentType.parameter(codecs());
// If the MIME type is missing or is not meaningful, try to figure it out from the URL.
if (type.isEmpty() || type == applicationOctetStream() || type == textPlain()) {
if (protocolIs(url, "data"))
type = mimeTypeFromDataURL(url);
else {
size_t pos = url.reverseFind('.');
if (pos != notFound) {
String extension = url.substring(pos + 1);
String mediaType = MIMETypeRegistry::getMediaMIMETypeForExtension(extension);
if (!mediaType.isEmpty())
type = mediaType;
}
}
}
m_url = url;
m_contentMIMEType = type;
m_contentTypeCodecs = typeCodecs;
loadWithNextMediaEngine(0);
}
示例5: fromString
ContentType ContentType::fromString(const QString & value)
{
ContentType contentType;
contentType.parse(value);
return contentType;
}
示例6: supportsType
MediaPlayer::SupportsType MediaPlayer::supportsType(ContentType contentType)
{
String type = contentType.type();
String codecs = contentType.parameter("codecs");
MediaPlayerFactory* engine = chooseBestEngineForTypeAndCodecs(type, codecs);
if (!engine)
return IsNotSupported;
return engine->supportsTypeAndCodecs(type, codecs);
}
示例7: header
EString::Encoding Bodypart::contentTransferEncoding() const
{
ContentTransferEncoding * cte = header()->contentTransferEncoding();
if ( !cte && parent() ) {
ContentType * ct = parent()->header()->contentType();
if ( !ct || ( ct->type() != "multipart" &&
ct->type() != "message" ) )
cte = parent()->header()->contentTransferEncoding();
}
if ( cte )
return cte->encoding();
return EString::Binary;
}
示例8: addSourceBuffer
MediaSourcePrivate::AddStatus MockMediaSourcePrivate::addSourceBuffer(const ContentType& contentType, RefPtr<SourceBufferPrivate>& outPrivate)
{
MediaEngineSupportParameters parameters;
parameters.isMediaSource = true;
parameters.type = contentType.type();
parameters.codecs = contentType.parameter(ASCIILiteral("codecs"));
if (MockMediaPlayerMediaSource::supportsType(parameters) == MediaPlayer::IsNotSupported)
return NotSupported;
m_sourceBuffers.append(MockSourceBufferPrivate::create(this));
outPrivate = m_sourceBuffers.last();
return Ok;
}
示例9: load
bool MediaPlayer::load(const URL& url, const ContentType& contentType, MediaSourcePrivateClient* mediaSource)
{
ASSERT(!m_reloadTimer.isActive());
ASSERT(mediaSource);
m_mediaSource = mediaSource;
m_contentMIMEType = contentType.type().convertToASCIILowercase();
m_contentTypeCodecs = contentType.parameter(codecs());
m_url = url;
m_keySystem = emptyString();
m_contentMIMETypeWasInferredFromExtension = false;
loadWithNextMediaEngine(0);
return m_currentMediaEngine;
}
示例10: supportsType
MediaPlayer::SupportsType MediaPlayer::supportsType(const ContentType& contentType)
{
String type = contentType.type().lower();
String typeCodecs = contentType.parameter(codecs());
// 4.8.10.3 MIME types - The canPlayType(type) method must return the empty string if type is a type that the
// user agent knows it cannot render or is the type "application/octet-stream"
if (type == applicationOctetStream())
return IsNotSupported;
MediaPlayerFactory* engine = bestMediaEngineForTypeAndCodecs(type, typeCodecs);
if (!engine)
return IsNotSupported;
return engine->supportsTypeAndCodecs(type, typeCodecs);
}
示例11: i
void Message::fix8BitHeaderFields()
{
EString charset;
EString fallback = "us-ascii";
bool conflict = false;
List<Bodypart>::Iterator i( allBodyparts() );
while ( i ) {
ContentType * ct = 0;
if ( i->header() )
ct = i->header()->contentType();
if ( ct && ct->type() == "text" ) {
EString cs = ct->parameter( "charset" ).lower();
if ( cs == "windows-1252" )
cs = "iso-8859-1";
if ( cs.isEmpty() )
; // no conclusion from this part
else if ( charset.isEmpty() )
charset = cs; // use this charset...?
else if ( cs != charset )
conflict = true;
if ( ct && ct->subtype() == "html" )
fallback = "iso-8859-1";
}
++i;
}
Codec * c = 0;
if ( !charset.isEmpty() )
c = Codec::byName( charset );
else
c = Codec::byString( badFields( header() ) );
if ( !c )
c = Codec::byName( fallback );
if ( conflict || !c )
c = new AsciiCodec;
header()->fix8BitFields( c );
i = allBodyparts()->first();
while ( i ) {
if ( i->header() )
i->header()->fix8BitFields( c );
if ( i->message() && i->message()->header() )
i->message()->header()->fix8BitFields( c );
++i;
}
}
示例12: contentType
int contentType()
{
ContentType* type = ContentType::Parse("text/plain ; charset = utf-8");
//Check it is parsed corretly
if (!type)
return Error("ContentType not parsed correctly\n");
Debug("ContentType: \"%s\"\n" , type->ToString().c_str());
//Clone
ContentType* cloned = type->Clone();
Debug("ContentType: \"%s\"\n" , cloned->ToString().c_str());
delete cloned;
delete type;
}
示例13: header
EString Message::body() const
{
EString r;
ContentType *ct = header()->contentType();
if ( ct && ct->type() == "multipart" ) {
appendMultipart( r );
}
else {
// XXX: Is this the right place to restore this linkage?
Bodypart * firstChild = children()->first();
if ( firstChild ) {
firstChild->setHeader( header() );
appendAnyPart( r, firstChild, ct );
}
}
return r;
}
示例14: load
void MediaPlayer::load(const String& url, const ContentType& contentType)
{
String type = contentType.type();
String codecs = contentType.parameter("codecs");
// if we don't know the MIME type, see if the extension can help
if (type.isEmpty() || type == "application/octet-stream" || type == "text/plain") {
int pos = url.reverseFind('.');
if (pos >= 0) {
String extension = url.substring(pos + 1);
String mediaType = MIMETypeRegistry::getMediaMIMETypeForExtension(extension);
if (!mediaType.isEmpty())
type = mediaType;
}
}
MediaPlayerFactory* engine = 0;
if (!type.isEmpty())
engine = chooseBestEngineForTypeAndCodecs(type, codecs);
// if we didn't find an engine that claims the MIME type, just use the first engine
if (!engine && !installedMediaEngines().isEmpty())
engine = installedMediaEngines()[0];
// don't delete and recreate the player unless it comes from a different engine
if (engine && m_currentMediaEngine != engine) {
m_currentMediaEngine = engine;
m_private.clear();
m_private.set(engine->constructor(this));
#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
m_private->setMediaPlayerProxy(m_playerProxy);
#endif
m_private->setAutobuffer(autobuffer());
m_private->setPreservesPitch(preservesPitch());
}
if (m_private)
m_private->load(url);
else
m_private.set(createNullMediaPlayer(this));
}
示例15: header
void Multipart::appendMultipart( EString &r, bool avoidUtf8 ) const
{
ContentType * ct = header()->contentType();
EString delim = ct->parameter( "boundary" );
if ( ! this )
::log( "Fetch::bodyStructure - FATAL, cannnot determine message", Log::Error );
else {
if ( this->parent() && this->parent()->isMessage() ) {
Message *msg = (Message *)this->parent();
if ( msg->hasPGPsignedPart() ) {
appendAnyPart( r, children()->first(), ct, avoidUtf8 );
return;
}
} else if ( this->isMessage() ) {
Message *msg = (Message *)this;
if ( msg->hasPGPsignedPart() ) {
appendAnyPart( r, children()->first(), ct, avoidUtf8 );
return;
}
}
}
List<Bodypart>::Iterator it( children() );
r.append( "--" + delim );
while ( it ) {
r.append( crlf );
Bodypart * bp = it;
++it;
r.append( bp->header()->asText( avoidUtf8 ) );
r.append( crlf );
appendAnyPart( r, bp, ct, avoidUtf8 );
r.append( crlf );
r.append( "--" );
r.append( delim );
}
r.append( "--" );
r.append( crlf );
}