diff options
author | Dominik Picheta <dominikpicheta@gmail.com> | 2016-06-03 13:22:18 +0100 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@gmail.com> | 2016-06-03 13:22:18 +0100 |
commit | 5390c25b60e79f87aca339f7428575066b0b2d08 (patch) | |
tree | 7e611958493a77890b854a070f4b44a19911902d /examples | |
parent | c1706463dcf35f64f695e23d15b3392155cea021 (diff) | |
download | Nim-5390c25b60e79f87aca339f7428575066b0b2d08.tar.gz |
Modified #3472 to make its API more idiomatic.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/ssl/extradata.nim | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/examples/ssl/extradata.nim b/examples/ssl/extradata.nim index f86dc57f2..1e3b89b02 100644 --- a/examples/ssl/extradata.nim +++ b/examples/ssl/extradata.nim @@ -1,14 +1,26 @@ # Stores extra data inside the SSL context. import net +let ctx = newContext() + # Our unique index for storing foos -let fooIndex = getSslContextExtraDataIndex() +let fooIndex = ctx.getExtraDataIndex() # And another unique index for storing foos -let barIndex = getSslContextExtraDataIndex() +let barIndex = ctx.getExtraDataIndex() echo "got indexes ", fooIndex, " ", barIndex -let ctx = newContext() -assert ctx.getExtraData(fooIndex) == nil -let foo: int = 5 -ctx.setExtraData(fooIndex, cast[pointer](foo)) -assert cast[int](ctx.getExtraData(fooIndex)) == foo +try: + discard ctx.getExtraData(fooIndex) + assert false +except IndexError: + echo("Success") + +type + FooRef = ref object of RootRef + foo: int + +let foo = FooRef(foo: 5) +ctx.setExtraData(fooIndex, foo) +doAssert ctx.getExtraData(fooIndex).FooRef == foo + +ctx.destroyContext() |