Skip to content

Commit 607713d

Browse files
xaionaro@dx.centerxaionaro@dx.center
authored andcommitted
feat: add ActiveTable() accessor to versionaware.Transport
Expose the current VersionTable through a thread-safe read-locked accessor, enabling callers to perform forward and reverse transaction code lookups without going through ResolveCode.
1 parent eadc220 commit 607713d

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

binder/versionaware/transport.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,5 +1111,13 @@ func (t *Transport) APILevel() int {
11111111
return t.apiLevel
11121112
}
11131113

1114+
// ActiveTable returns the current version table.
1115+
// The returned map must not be modified by the caller.
1116+
func (t *Transport) ActiveTable() VersionTable {
1117+
t.mu.RLock()
1118+
defer t.mu.RUnlock()
1119+
return t.table
1120+
}
1121+
11141122
// Verify Transport implements binder.VersionAwareTransport.
11151123
var _ binder.VersionAwareTransport = (*Transport)(nil)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package versionaware
2+
3+
import (
4+
"testing"
5+
6+
"github.com/AndroidGoLab/binder/binder"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
func TestTransport_ActiveTable(t *testing.T) {
11+
table := VersionTable{
12+
"android.app.IFoo": {
13+
"doThing": binder.FirstCallTransaction + 0,
14+
},
15+
}
16+
tr := &Transport{table: table}
17+
got := tr.ActiveTable()
18+
assert.Equal(t, binder.FirstCallTransaction, got.Resolve("android.app.IFoo", "doThing"))
19+
}

0 commit comments

Comments
 (0)