FileLoaderImpl.h Source File
Back to the index.
src
include
FileLoaderImpl.h
Go to the documentation of this file.
1
#ifndef FILELOADERIMPL_H
2
#define FILELOADERIMPL_H
3
4
/*
5
* Copyright (C) 2009-2010 Anders Gavare. All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
*
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* 3. The name of the author may not be used to endorse or promote products
16
* derived from this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28
* SUCH DAMAGE.
29
*/
30
31
#include "
misc.h
"
32
33
#include "
Component.h
"
34
#include "
UnitTest.h
"
35
36
37
/**
38
* \brief A file loader.
39
*/
40
class
FileLoaderImpl
41
:
public
ReferenceCountable
42
{
43
public
:
44
/**
45
* \brief Constructs a file loader.
46
*
47
* @param filename The filename to load.
48
*/
49
FileLoaderImpl
(
const
string
& filename)
50
: m_filename(filename)
51
{
52
}
53
54
virtual
~FileLoaderImpl
()
55
{
56
}
57
58
/**
59
* \brief Attempt to detect file type.
60
*
61
* @param buf A buffer containing the header of the file.
62
* @param buflen The length of the buffer.
63
* @param matchness Set to a value between 0.0 and 1.0, indicating the
64
* match certainty.
65
* @return A file type description, if there was a match; otherwise
66
* an empty string.
67
*/
68
virtual
string
DetectFileType
(
unsigned
char
*buf,
size_t
buflen,
float
& matchness)
const
= 0;
69
70
/**
71
* \brief Loads the file into a Component.
72
*
73
* @param component The AddressDataBus component to load the file
74
* into. (This is usually a CPUComponent.)
75
* @param messages An output stream where debug messages can be put.
76
* @return True if loading succeeded, false otherwise.
77
*/
78
virtual
bool
LoadIntoComponent
(
refcount_ptr<Component>
component, ostream& messages)
const
= 0;
79
80
protected
:
81
const
string
&
Filename
()
const
82
{
83
return
m_filename;
84
}
85
86
private
:
87
const
string
m_filename;
88
};
89
90
#endif // FILELOADERIMPL_H
FileLoaderImpl::FileLoaderImpl
FileLoaderImpl(const string &filename)
Constructs a file loader.
Definition:
FileLoaderImpl.h:49
FileLoaderImpl::LoadIntoComponent
virtual bool LoadIntoComponent(refcount_ptr< Component > component, ostream &messages) const =0
Loads the file into a Component.
refcount_ptr< Component >
misc.h
UnitTest.h
Component.h
FileLoaderImpl::~FileLoaderImpl
virtual ~FileLoaderImpl()
Definition:
FileLoaderImpl.h:54
FileLoaderImpl::DetectFileType
virtual string DetectFileType(unsigned char *buf, size_t buflen, float &matchness) const =0
Attempt to detect file type.
FileLoaderImpl
A file loader.
Definition:
FileLoaderImpl.h:40
ReferenceCountable
Base class for reference countable objects.
Definition:
refcount_ptr.h:62
FileLoaderImpl::Filename
const string & Filename() const
Definition:
FileLoaderImpl.h:81
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17