Skip to content

Instantly share code, notes, and snippets.

View Horusiath's full-sized avatar

Bartosz Sypytkowski Horusiath

View GitHub Profile

FSharp

type IReaderWriter =
  abstract member Read : unit -> unit
  abstract member Write : unit -> unit
  
type IReader =
  abstract member Read : unit -> unit

type SomeClass1(x: int, y: float) =

public sealed class GetState { }
public sealed class Increment { }
public sealed class Changed { }
public class TestCaseActor : UntypedPersistentActor
{
private int state = 0;
public override string PersistenceId { get; } = "yolo";
@Horusiath
Horusiath / EnumerableActorRef.cs
Last active December 15, 2015 16:51
This is example of returning responses from actor refs in form of the enumerable.
public static class EnumerablePatterns
{
public static IEnumerable<T> Query<T>(this ICanTell self, object message = null)
{
var provider = ResolveProvider(self);
if (provider == null)
throw new NotSupportedException("Unable to resolve the target Provider");
var enumerable = new BlockingCollection<T>();
var path = provider.TempPath();
@Horusiath
Horusiath / Sample.fs
Last active December 30, 2015 13:54
Akka.Persistence.FSharp aggregate/view cooperation
open System
open Akka
open Akka.Actor
open Akka.FSharp
open Akka.Persistence.FSharp
let system = System.create "persistence-sys" <| Configuration.parse """
akka {
persistence {
journal {
@Horusiath
Horusiath / Example.cs
Created February 27, 2016 07:37
Akka.NET layered hierarchy with custom supervisor strategy
public class CustomException : Exception { }
public class Boom { }
public class Grandpa : ReceiveActor
{
public Grandpa()
{
var parent = Context.ActorOf(Props.Create<Parent>(), "parent");
ReceiveAny(x => parent.Forward(x));
}
@Horusiath
Horusiath / graphql.fs
Created April 15, 2016 17:09
New API example
/// These are all of the possible kinds of types
type GraphQLType =
interface
end
/// These types may be used as input types for arguments and directives
and InputType<'Inner> =
interface
end
// wrapper function over TestKit.ActorOfAsTestActorRef
let spawnAsTestRef (tck:Tck) (props: Props<'T>) : IActorRef<'T> =
typed (tck.ActorOfAsTestActorRef<FunActor<'T>>(props.ToProps(), tck.TestActor) :> IActorRef)
[<Fact>]
let ``Parent should create child`` () = testDefault <| fun tck ->
// child actor definition
let child (ctx: Actor<_>) msg = ctx.Sender() <! "hello" |> ignored
// parent actor defintion
let rec parent (ctx: Actor<_>) =
open System
open Akka.Actor
open Akka.FSharp
open Akka.TestKit
open Akka.TestKit.Xunit2
type Tck = TestKit
/// <summary>
/// Runs a test case function in context of TestKit aware actor system.
org.jboss.netty.handler.codec.frame.TooLongFrameException: Maximum frame size of 67108864 exceeded
at com.facebook.nifty.codec.DefaultThriftFrameDecoder.tryDecodeFramedMessage(DefaultThriftFrameDecoder.java:102) [nifty-core-0.18.0.jar!/:nifty-parent-0.18.0]
at com.facebook.nifty.codec.DefaultThriftFrameDecoder.decode(DefaultThriftFrameDecoder.java:68) [nifty-core-0.18.0.jar!/:nifty-parent-0.18.0]
at com.facebook.nifty.codec.DefaultThriftFrameDecoder.decode(DefaultThriftFrameDecoder.java:33) [nifty-core-0.18.0.jar!/:nifty-parent-0.18.0]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425) [netty-3.10.5.Final.jar!/:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) [netty-3.10.5.Final.jar!/:na]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.10.5.Final.jar!/:na]
at com.facebook.nifty.codec.DefaultThriftFrameCode
2016-06-01 09:00:19.722 ERROR 14028 --- [ thrift-io-0] c.f.nifty.core.NiftyExceptionLogger : Exception triggered on channel connected to /0:0:0:0:0:0:0:1:33153
org.jboss.netty.handler.codec.frame.TooLongFrameException: Maximum frame size of 67108864 exceeded
at com.facebook.nifty.codec.DefaultThriftFrameDecoder.tryDecodeFramedMessage(DefaultThriftFrameDecoder.java:102) [nifty-core-0.18.0.jar!/:nifty-parent-0.18.0]
at com.facebook.nifty.codec.DefaultThriftFrameDecoder.decode(DefaultThriftFrameDecoder.java:68) [nifty-core-0.18.0.jar!/:nifty-parent-0.18.0]
at com.facebook.nifty.codec.DefaultThriftFrameDecoder.decode(DefaultThriftFrameDecoder.java:33) [nifty-core-0.18.0.jar!/:nifty-parent-0.18.0]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425) [netty-3.10.5.Final.jar!/:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) [netty-3.10.5.Final.jar!/:na]
at org.jboss.netty.channel.S