summaryrefslogtreecommitdiff
path: root/XMPFiles/source/FileHandlers/Trivial_Handler.cpp
blob: 3507bebb98d08b1a6e43b9686b181fbd806623b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// =================================================================================================
// Copyright Adobe
// Copyright 2004 Adobe
// All Rights Reserved
//
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
// of the Adobe license agreement accompanying it. 
// =================================================================================================

#include "public/include/XMP_Environment.h"	// ! XMP_Environment.h must be the first included header.

#include "public/include/XMP_Const.h"
#include "public/include/XMP_IO.hpp"

#include "XMPFiles/source/XMPFiles_Impl.hpp"
#include "source/XIO.hpp"

#include "XMPFiles/source/FileHandlers/Trivial_Handler.hpp"

using namespace std;

// =================================================================================================
/// \file Trivial_Handler.cpp
/// \brief Base class for trivial handlers that only process in-place XMP.
///
/// This header ...
///
// =================================================================================================

// =================================================================================================
// Trivial_MetaHandler::~Trivial_MetaHandler
// =========================================

Trivial_MetaHandler::~Trivial_MetaHandler()
{
	// Nothing to do.

}	// Trivial_MetaHandler::~Trivial_MetaHandler

// =================================================================================================
// Trivial_MetaHandler::UpdateFile
// ===============================

void Trivial_MetaHandler::UpdateFile ( bool doSafeUpdate )
{
	IgnoreParam ( doSafeUpdate );
	XMP_Assert ( ! doSafeUpdate );	// Not supported at this level.
	if ( ! this->needsUpdate ) return;

	XMP_IO*      fileRef    = this->parent->ioRef;
	XMP_PacketInfo & packetInfo = this->packetInfo;
	std::string &    xmpPacket  = this->xmpPacket;

	fileRef->Seek ( packetInfo.offset, kXMP_SeekFromStart );
	fileRef->Write ( xmpPacket.c_str(), packetInfo.length );
	XMP_Assert ( xmpPacket.size() == (size_t)packetInfo.length );

	this->needsUpdate = false;

}	// Trivial_MetaHandler::UpdateFile

// =================================================================================================
// Trivial_MetaHandler::WriteTempFile
// ==================================

void Trivial_MetaHandler::WriteTempFile ( XMP_IO* tempRef )
{
	IgnoreParam ( tempRef );

	XMP_Throw ( "Trivial_MetaHandler::WriteTempFile: Not supported", kXMPErr_Unavailable );

}	// Trivial_MetaHandler::WriteTempFile

// =================================================================================================