Skip to content

Commit

Permalink
Move Examples.Publisher doc to lib/zenohex/examples/README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
pojiro committed Feb 16, 2024
1 parent 6b551fa commit e9c5112
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 46 deletions.
65 changes: 65 additions & 0 deletions lib/zenohex/examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Zenohex.Examples

This README shows how to use following each example implementations.

- [Zenohex.Examples.Publisher](#publisher)
- [Zenohex.Examples.Subscriber](#subscriber)
- [Zenohex.Examples.PullSubscriber](#pullsubscriber)
- [Zenohex.Examples.Queryable](#queryable)
- [Zenohex.Examples.Session](#session)
- [Zenohex.Examples.Storage](#storage)

## Publisher

This Publisher is made of `Supervisor` and `GenServer`.
If you would like to see the codes, check the followings.

- Supervisor
- [lib/zenohex/examples/publisher.ex](lib/zenohex/examples/publisher.ex)
- GenServer
- [lib/zenohex/examples/publisher/impl.ex](lib/zenohex/examples/publisher/impl.ex)

### Start Publisher

```elixir
iex> alias Zenohex.Examples.Publisher
# if not specify session and key_expr, they are made internally. key_expr is "zenohex/examples/pub"
iex> Publisher.start_link()
# you can also inject your session and key_expr from outside
iex> Publisher.start_link(%{session: your_session, key_expr: "your_key/expression"})
```

### Put data

```elixir
iex> Publisher.put(42) # integer
iex> Publisher.put(42.42) # float
iex> Publisher.put("42") # binary
```

### Delete data

```elixir
iex> Publisher.delete()
```

see. #16

### Change Publisher options

```elixir
iex> Publisher.congestion_control(:block)
iex> Publisher.priority(:real_time)
```

see. Supported options, `[Zenohex.Publisher.Options](lib/zenohex/publisher.es)`

### Subscriber

### PullSubscriber

### Queryable

### Session

### Storage
47 changes: 2 additions & 45 deletions lib/zenohex/examples/publisher.ex
Original file line number Diff line number Diff line change
@@ -1,54 +1,11 @@
defmodule Zenohex.Examples.Publisher do
mix_config = Mix.Project.config()
version = mix_config[:version]
base_url = "https://github.com/b5g-ex/zenohex/tree/v#{version}/lib/examples"

@moduledoc """
This is the example Publisher implementation using Zenohex.
This Publisher is made of `m:Supervisor` and `m:GenServer`.
If you would like to see the codes, check the followings.
* Supervisor
* [lib/zenohex/examples/publisher.ex](#{base_url}/publisher.ex)
* GenServer
* [lib/zenohex/examples/publisher/impl.ex](#{base_url}/publisher/impl.ex)
## Getting Started
### Start Publisher
iex> alias Zenohex.Examples.Publisher
# if not specify session and key_expr, they are made internally. key_expr is "zenohex/examples/pub"
iex> Publisher.start_link()
# you can also inject your session and key_expr from outside
iex> Publisher.start_link(%{session: your_session, key_expr: "your_key/expression"})
### Put data
iex> Publisher.put(42) # integer
iex> Publisher.put(42.42) # float
iex> Publisher.put("42") # binary
### Delete data
iex> Publisher.delete()
### Change Publisher options
iex> Publisher.congestion_control(:block)
iex> Publisher.priority(:real_time)
see. Supported options, `m:Zenohex.Publisher.Options`
"""
@moduledoc false

use Supervisor

alias Zenohex.Examples.Publisher

@doc """
Start Publisher.
"""
@doc "Start Publisher."
def start_link(args \\ %{}) when is_map(args) do
session = Map.get(args, :session) || Zenohex.open!()
key_expr = Map.get(args, :key_expr, "zenohex/examples/pub")
Expand Down
1 change: 0 additions & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ defmodule Zenohex.MixProject do
Zenohex.Subscriber.Options
],
Examples: [
Zenohex.Examples.Publisher,
Zenohex.Examples.Subscriber,
Zenohex.Examples.PullSubscriber,
Zenohex.Examples.Session,
Expand Down

0 comments on commit e9c5112

Please sign in to comment.