Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
9313fa63
Commit
9313fa63
authored
Nov 08, 2018
by
Felix Lange
Committed by
Péter Szilágyi
Nov 08, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
event/filter: delete unused package (#18063)
parent
d0675e9d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
203 deletions
+0
-203
filter.go
event/filter/filter.go
+0
-95
filter_test.go
event/filter/filter_test.go
+0
-60
generic_filter.go
event/filter/generic_filter.go
+0
-48
No files found.
event/filter/filter.go
deleted
100644 → 0
View file @
d0675e9d
// Copyright 2014 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
// Package filter implements event filters.
package
filter
import
"reflect"
type
Filter
interface
{
Compare
(
Filter
)
bool
Trigger
(
data
interface
{})
}
type
FilterEvent
struct
{
filter
Filter
data
interface
{}
}
type
Filters
struct
{
id
int
watchers
map
[
int
]
Filter
ch
chan
FilterEvent
quit
chan
struct
{}
}
func
New
()
*
Filters
{
return
&
Filters
{
ch
:
make
(
chan
FilterEvent
),
watchers
:
make
(
map
[
int
]
Filter
),
quit
:
make
(
chan
struct
{}),
}
}
func
(
f
*
Filters
)
Start
()
{
go
f
.
loop
()
}
func
(
f
*
Filters
)
Stop
()
{
close
(
f
.
quit
)
}
func
(
f
*
Filters
)
Notify
(
filter
Filter
,
data
interface
{})
{
f
.
ch
<-
FilterEvent
{
filter
,
data
}
}
func
(
f
*
Filters
)
Install
(
watcher
Filter
)
int
{
f
.
watchers
[
f
.
id
]
=
watcher
f
.
id
++
return
f
.
id
-
1
}
func
(
f
*
Filters
)
Uninstall
(
id
int
)
{
delete
(
f
.
watchers
,
id
)
}
func
(
f
*
Filters
)
loop
()
{
out
:
for
{
select
{
case
<-
f
.
quit
:
break
out
case
event
:=
<-
f
.
ch
:
for
_
,
watcher
:=
range
f
.
watchers
{
if
reflect
.
TypeOf
(
watcher
)
==
reflect
.
TypeOf
(
event
.
filter
)
{
if
watcher
.
Compare
(
event
.
filter
)
{
watcher
.
Trigger
(
event
.
data
)
}
}
}
}
}
}
func
(
f
*
Filters
)
Match
(
a
,
b
Filter
)
bool
{
return
reflect
.
TypeOf
(
a
)
==
reflect
.
TypeOf
(
b
)
&&
a
.
Compare
(
b
)
}
func
(
f
*
Filters
)
Get
(
i
int
)
Filter
{
return
f
.
watchers
[
i
]
}
event/filter/filter_test.go
deleted
100644 → 0
View file @
d0675e9d
// Copyright 2014 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package
filter
import
(
"testing"
"time"
)
// Simple test to check if baseline matching/mismatching filtering works.
func
TestFilters
(
t
*
testing
.
T
)
{
fm
:=
New
()
fm
.
Start
()
// Register two filters to catch posted data
first
:=
make
(
chan
struct
{})
fm
.
Install
(
Generic
{
Str1
:
"hello"
,
Fn
:
func
(
data
interface
{})
{
first
<-
struct
{}{}
},
})
second
:=
make
(
chan
struct
{})
fm
.
Install
(
Generic
{
Str1
:
"hello1"
,
Str2
:
"hello"
,
Fn
:
func
(
data
interface
{})
{
second
<-
struct
{}{}
},
})
// Post an event that should only match the first filter
fm
.
Notify
(
Generic
{
Str1
:
"hello"
},
true
)
fm
.
Stop
()
// Ensure only the mathcing filters fire
select
{
case
<-
first
:
case
<-
time
.
After
(
100
*
time
.
Millisecond
)
:
t
.
Error
(
"matching filter timed out"
)
}
select
{
case
<-
second
:
t
.
Error
(
"mismatching filter fired"
)
case
<-
time
.
After
(
100
*
time
.
Millisecond
)
:
}
}
event/filter/generic_filter.go
deleted
100644 → 0
View file @
d0675e9d
// Copyright 2014 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package
filter
type
Generic
struct
{
Str1
,
Str2
,
Str3
string
Data
map
[
string
]
struct
{}
Fn
func
(
data
interface
{})
}
// self = registered, f = incoming
func
(
self
Generic
)
Compare
(
f
Filter
)
bool
{
var
strMatch
=
true
filter
:=
f
.
(
Generic
)
if
(
len
(
self
.
Str1
)
>
0
&&
filter
.
Str1
!=
self
.
Str1
)
||
(
len
(
self
.
Str2
)
>
0
&&
filter
.
Str2
!=
self
.
Str2
)
||
(
len
(
self
.
Str3
)
>
0
&&
filter
.
Str3
!=
self
.
Str3
)
{
strMatch
=
false
}
for
k
:=
range
self
.
Data
{
if
_
,
ok
:=
filter
.
Data
[
k
];
!
ok
{
return
false
}
}
return
strMatch
}
func
(
self
Generic
)
Trigger
(
data
interface
{})
{
self
.
Fn
(
data
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment