include
resource_retriever
retriever.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2009, Willow Garage, Inc.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
6
* * Redistributions of source code must retain the above copyright notice,
7
* this list of conditions and the following disclaimer.
8
* * Redistributions in binary form must reproduce the above copyright
9
* notice, this list of conditions and the following disclaimer in the
10
* documentation and/or other materials provided with the distribution.
11
* * Neither the names of Stanford University or Willow Garage, Inc. nor the names of its
12
* contributors may be used to endorse or promote products derived from
13
* this software without specific prior written permission.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
* POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
#ifndef RESOURCE_RETRIEVER_RETRIEVER_H
29
#define RESOURCE_RETRIEVER_RETRIEVER_H
30
31
#include <stdint.h>
32
#include <string>
33
#include <boost/shared_array.hpp>
34
#include <stdexcept>
35
36
typedef
void
CURL
;
37
38
namespace
resource_retriever
39
{
40
41
class
Exception
:
public
std::runtime_error
42
{
43
public
:
44
Exception
(
const
std::string& file,
const
std::string& error_msg)
45
:
std
::runtime_error(
"Error retrieving file ["
+ file +
"]: "
+ error_msg)
46
{}
47
};
48
52
struct
MemoryResource
53
{
54
MemoryResource
()
55
:
size
(0)
56
{}
57
58
boost::shared_array<uint8_t>
data
;
59
uint32_t
size
;
60
};
61
66
class
Retriever
67
{
68
public
:
69
Retriever
();
70
~Retriever
();
71
78
MemoryResource
get
(
const
std::string& url);
79
80
private
:
81
Retriever
(
const
Retriever
& ret) =
delete
;
82
83
CURL
*
curl_handle_
;
84
};
85
86
}
// namespace resource_retriever
87
88
#endif // RESOURCE_RETRIEVER_RETRIEVER_H
resource_retriever::MemoryResource::size
uint32_t size
Definition:
retriever.h:59
resource_retriever::MemoryResource::MemoryResource
MemoryResource()
Definition:
retriever.h:54
resource_retriever
Definition:
retriever.h:38
resource_retriever::Exception::Exception
Exception(const std::string &file, const std::string &error_msg)
Definition:
retriever.h:44
resource_retriever::MemoryResource
A combination of a pointer to data in memory along with the data's size.
Definition:
retriever.h:52
resource_retriever::Retriever::Retriever
Retriever()
Definition:
retriever.cpp:69
resource_retriever::MemoryResource::data
boost::shared_array< uint8_t > data
Definition:
retriever.h:58
resource_retriever::Retriever::~Retriever
~Retriever()
Definition:
retriever.cpp:74
resource_retriever::Retriever::get
MemoryResource get(const std::string &url)
Get a file and store it in memory.
Definition:
retriever.cpp:98
boost::shared_array< uint8_t >
resource_retriever::Retriever
Retrieves files from from a url. Caches a CURL handle so multiple accesses to a single url will keep ...
Definition:
retriever.h:66
CURL
void CURL
Definition:
retriever.h:36
std
resource_retriever::Retriever::curl_handle_
CURL * curl_handle_
Definition:
retriever.h:83
resource_retriever::Exception
Definition:
retriever.h:41
resource_retriever
Author(s): Josh Faust
, Ioan Sucan
autogenerated on Wed Dec 20 2023 03:35:35