97864b324f
This diff modifies the engine package to make Experiment and ExperimentBuilder interfaces rather than structs. The previosuly existing structs are now named experiment{,Builder}. This diff helps https://github.com/ooni/probe/issues/2184 because it allows us to write unit tests more easily. There should be no functional change. While there, I removed a bunch of deprecated functions, which were unnecessarily complicate the implementation and could be easily replaced by passing them a context.Context or context.Background(). |
||
---|---|---|
.. | ||
.gitignore | ||
doc.go | ||
experiment_test.go | ||
experiment.go | ||
README.md | ||
session_integration_test.go | ||
session_test.go | ||
session.go | ||
sessioncontext_test.go | ||
sessioncontext.go | ||
sessionlogger_test.go | ||
sessionlogger.go | ||
task_test.go | ||
task.go | ||
taskemitter_test.go | ||
taskemitter.go | ||
tasklogger_test.go | ||
tasklogger.go | ||
taskmocks_test.go | ||
taskmodel.go | ||
taskrunner_test.go | ||
taskrunner.go | ||
tasksession_test.go | ||
tasksession.go | ||
uuid_test.go | ||
uuid.go | ||
webconnectivity_integration_test.go | ||
webconnectivity_test.go | ||
webconnectivity.go |
Package github.com/ooni/probe-cli/pkg/oonimkall
Package oonimkall implements APIs used by OONI mobile apps. We expose these APIs to mobile apps using gomobile.
We expose two APIs: the task API, which is derived from the
API originally exposed by Measurement Kit, and the session API,
which is a Go API that mobile apps can use via gomobile
.
This package is named oonimkall because it contains a partial reimplementation of the mkall API implemented by Measurement Kit in, e.g., mkall-ios.
The basic tenet of the task API is that you define an experiment task you wanna run using a JSON, then you start a task for it, and you receive events as serialized JSONs. In addition to this functionality, we also include extra APIs used by OONI mobile.
The basic tenet of the session API is that you create an instance
of Session
and use it to perform the operations you need.