go-deep-proto

module
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2024 License: AGPL-3.0

README

Go Deep Proto

This is the generated code for the common APIs for DEEP. This is generated from the project intergra/deep-proto.

Usage

The usage of these packages differs between server and clients. Please see GRPC docs for more guidance.

Client

To use this as a client:

import (
    tp "github.com/intergral/go-deep-proto/tracepoint/v1"
    pb "github.com/intergral/go-deep-proto/poll/v1"
)

func sendPoll(){
    // create grpc connection
    var opts []grpc.DialOption
    ...
    conn, err := grpc.Dial(*serverAddr, opts...)
    defer conn.Close()

    // create client
    client := pb.NewPollConfigClient(conn)
	// send poll request
	response, err := client.Poll(context.Background(), &pb.PollRequest{})
}

func sendSnapshot(){
	// create grpc connection
    var opts []grpc.DialOption
    ...
    conn, err := grpc.Dial(*serverAddr, opts...)
    defer conn.Close()

	// create client
    client := tp.NewSnapshotServiceClient(conn)
	// send snapshot
	response, err := client.Send(context.Background(), &pb.PollRequest{})
}

Server

To use this as a server:

import (
    tp "github.com/intergral/go-deep-proto/tracepoint/v1"
    pb "github.com/intergral/go-deep-proto/poll/v1"
)

type TPServer struct {}

func (TPServer) Send(ctx context.Context, in *tp.Snapshot) (*tp.SnapshotResponse, error) {
    // process new snapshot
    return &tp.SnapshotResponse{}, nil
}

type PollServer struct {}

func (PollServer) Poll(ctx context.Context, pollRequest *pb.PollRequest) (*pb.PollResponse, error) {
	// process new poll request
	returng &pb.PollResponse{}, nil
}

func setup() {
	// setup network
    lis, err := net.Listen("tcp", fmt.Sprintf("localhost:%d", *port))
	// setup grpc server
    var opts []grpc.ServerOption
    grpcServer := grpc.NewServer(opts...)
	// register services
    pb.RegisterPollConfigServer(t.Server.GRPC, PollServer())
    tp.RegisterSnapshotServiceServer(t.Server.GRPC, TPServer())
	// start server
	grpcServer.Serve(lis)
}


Documentation

The documentation for this project is available here.

Licensing

This project is licensed as AGPL-3.0-only.

Directories

Path Synopsis
common
v1
poll
v1
resource
v1
tracepoint
v1

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL