module NetSpider.Query
(
Query,
defQuery,
startsFrom,
unifyLinkSamples,
timeInterval,
foundNodePolicy,
FoundNodePolicy,
policyOverwrite,
policyAppend,
secUpTo,
Interval, (<=..<=), (<..<=), (<=..<), (<..<),
Extended(..)
) where
import qualified Data.Interval as Interval
import NetSpider.Interval
( secUpTo,
Interval, (<=..<=), (<..<=), (<=..<), (<..<),
Extended(..)
)
import NetSpider.Timestamp (Timestamp, addSec)
import NetSpider.Unify (LinkSampleUnifier, unifyToOne)
import NetSpider.Query.Internal (FoundNodePolicy(..))
data Query n na fla sla =
Query
{ Query n na fla sla -> [n]
startsFrom :: [n],
Query n na fla sla -> LinkSampleUnifier n na fla sla
unifyLinkSamples :: LinkSampleUnifier n na fla sla,
Query n na fla sla -> Interval Timestamp
timeInterval :: Interval Timestamp,
Query n na fla sla -> FoundNodePolicy n na
foundNodePolicy :: FoundNodePolicy n na
}
defQuery :: (Eq n, Show n)
=> [n]
-> Query n na fla fla
defQuery :: [n] -> Query n na fla fla
defQuery [n]
ns = Query :: forall n na fla sla.
[n]
-> LinkSampleUnifier n na fla sla
-> Interval Timestamp
-> FoundNodePolicy n na
-> Query n na fla sla
Query
{ startsFrom :: [n]
startsFrom = [n]
ns,
unifyLinkSamples :: LinkSampleUnifier n na fla fla
unifyLinkSamples = LinkSampleUnifier n na fla fla
forall n na la. (Eq n, Show n) => LinkSampleUnifier n na la la
unifyToOne,
timeInterval :: Interval Timestamp
timeInterval = Interval Timestamp
forall r. Ord r => Interval r
Interval.whole,
foundNodePolicy :: FoundNodePolicy n na
foundNodePolicy = FoundNodePolicy n na
forall n na. FoundNodePolicy n na
policyOverwrite
}
policyOverwrite :: FoundNodePolicy n na
policyOverwrite :: FoundNodePolicy n na
policyOverwrite = FoundNodePolicy n na
forall n na. FoundNodePolicy n na
PolicyOverwrite
policyAppend :: FoundNodePolicy n na
policyAppend :: FoundNodePolicy n na
policyAppend = FoundNodePolicy n na
forall n na. FoundNodePolicy n na
PolicyAppend