ARC SDK
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
svn-area
arc1-clean
src
hed
libs
data
DataPointIndex.h
1
// -*- indent-tabs-mode: nil -*-
2
3
#ifndef __ARC_DATAPOINTINDEX_H__
4
#define __ARC_DATAPOINTINDEX_H__
5
6
#include <list>
7
#include <string>
8
9
#include <arc/data/DataHandle.h>
10
#include <arc/data/DataPoint.h>
11
12
namespace
Arc {
13
15
21
class
DataPointIndex
22
:
public
DataPoint
{
23
public
:
24
virtual
~
DataPointIndex
();
25
26
virtual
const
URL
&
CurrentLocation
()
const
;
27
virtual
const
std::string&
CurrentLocationMetadata
()
const
;
28
virtual
DataPoint
*
CurrentLocationHandle
()
const
;
29
virtual
DataStatus
CompareLocationMetadata
()
const
;
30
virtual
bool
NextLocation
();
31
virtual
bool
LocationValid
()
const
;
32
virtual
bool
HaveLocations
()
const
;
33
virtual
bool
LastLocation
();
34
virtual
DataStatus
RemoveLocation
();
35
virtual
DataStatus
RemoveLocations
(
const
DataPoint
& p);
36
virtual
DataStatus
ClearLocations
();
37
virtual
DataStatus
AddLocation
(
const
URL
&
url
,
const
std::string& meta);
38
virtual
void
SortLocations
(
const
std::string& pattern,
39
const
URLMap
& url_map);
40
41
virtual
bool
IsIndex
()
const
;
42
virtual
bool
IsStageable
()
const
;
43
virtual
bool
AcceptsMeta
()
const
;
44
virtual
bool
ProvidesMeta
()
const
;
45
virtual
void
SetMeta
(
const
DataPoint
& p);
46
virtual
void
SetCheckSum
(
const
std::string& val);
47
virtual
void
SetSize
(
const
unsigned
long
long
int
val);
48
virtual
bool
Registered
()
const
;
49
50
virtual
void
SetTries
(
const
int
n);
51
52
// the following are relayed to the current location
53
virtual
long
long
int
BufSize
()
const
;
54
virtual
int
BufNum
()
const
;
55
virtual
bool
Local
()
const
;
56
virtual
bool
ReadOnly
()
const
;
57
virtual
DataStatus
PrepareReading
(
unsigned
int
timeout,
58
unsigned
int
& wait_time);
59
virtual
DataStatus
PrepareWriting
(
unsigned
int
timeout,
60
unsigned
int
& wait_time);
61
virtual
DataStatus
StartReading
(
DataBuffer
& buffer);
62
virtual
DataStatus
StartWriting
(
DataBuffer
& buffer,
63
DataCallback
*space_cb = NULL);
64
virtual
DataStatus
StopReading
();
65
virtual
DataStatus
StopWriting
();
66
virtual
DataStatus
FinishReading
(
bool
error =
false
);
67
virtual
DataStatus
FinishWriting
(
bool
error =
false
);
68
virtual
std::vector<URL>
TransferLocations
()
const
;
69
70
virtual
DataStatus
Check
(
bool
check_meta);
71
72
virtual
DataStatus
Remove
();
73
74
virtual
void
ReadOutOfOrder
(
bool
v);
75
virtual
bool
WriteOutOfOrder
();
76
77
virtual
void
SetAdditionalChecks
(
bool
v);
78
virtual
bool
GetAdditionalChecks
()
const
;
79
80
virtual
void
SetSecure
(
bool
v);
81
virtual
bool
GetSecure
()
const
;
82
83
virtual
DataPointAccessLatency
GetAccessLatency
()
const
;
84
85
virtual
void
Passive
(
bool
v);
86
87
virtual
void
Range
(
unsigned
long
long
int
start = 0,
88
unsigned
long
long
int
end = 0);
89
90
virtual
int
AddCheckSumObject
(
CheckSum
*cksum);
91
92
virtual
const
CheckSum
*
GetCheckSumObject
(
int
index)
const
;
93
94
protected
:
95
bool
resolved;
96
bool
registered;
97
DataPointIndex
(
const
URL
& url,
const
UserConfig
&
usercfg
, PluginArgument* parg);
98
99
private
:
100
// Following members must be kept synchronised hence they are private
102
std::list<URLLocation> locations;
103
std::list<URLLocation>::iterator location;
104
DataHandle
*h;
105
void
SetHandle();
106
};
107
108
}
// namespace Arc
109
110
#endif // __ARC_DATAPOINTINDEX_H__
Generated on Fri Jul 5 2013 14:37:45 for ARC SDK by
1.8.3.1-20130209