ARC SDK
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
svn-area
nordugrid-arc-tags-4.1.0
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
virtual
void
ClearTransferLocations
();
70
71
virtual
DataStatus
Check
(
bool
check_meta);
72
73
virtual
DataStatus
Remove
();
74
75
virtual
void
ReadOutOfOrder
(
bool
v);
76
virtual
bool
WriteOutOfOrder
();
77
78
virtual
void
SetAdditionalChecks
(
bool
v);
79
virtual
bool
GetAdditionalChecks
()
const
;
80
81
virtual
void
SetSecure
(
bool
v);
82
virtual
bool
GetSecure
()
const
;
83
84
virtual
DataPointAccessLatency
GetAccessLatency
()
const
;
85
86
virtual
void
Passive
(
bool
v);
87
88
virtual
void
Range
(
unsigned
long
long
int
start = 0,
89
unsigned
long
long
int
end = 0);
90
91
virtual
int
AddCheckSumObject
(
CheckSum
*cksum);
92
93
virtual
const
CheckSum
*
GetCheckSumObject
(
int
index)
const
;
94
95
protected
:
96
bool
resolved;
97
bool
registered;
98
DataPointIndex
(
const
URL
& url,
const
UserConfig
&
usercfg
, PluginArgument* parg);
99
100
private
:
101
// Following members must be kept synchronised hence they are private
103
std::list<URLLocation> locations;
104
std::list<URLLocation>::iterator location;
105
DataHandle
*h;
106
void
SetHandle();
107
};
108
109
}
// namespace Arc
110
111
#endif // __ARC_DATAPOINTINDEX_H__
Generated on Thu May 22 2014 12:42:17 for ARC SDK by
1.8.3.1