blob: 771c5f17394b3fb49fb10a1d765685341c1ab69f [file] [log] [blame]
Andres Erbsen975c8832014-06-18 12:06:07 -07001// This file was auto-generated by the veyron vdl tool.
2// Source: discharger.vdl
3
Ali Ghassemi46bb7e02014-06-19 15:38:48 -07004package security
Andres Erbsen975c8832014-06-18 12:06:07 -07005
6import (
Jiri Simsa764efb72014-12-25 20:57:03 -08007 "v.io/core/veyron2/security"
Andres Erbsen975c8832014-06-18 12:06:07 -07008
Todd Wang702385a2014-11-07 01:54:08 -08009 // The non-user imports are prefixed with "__" to prevent collisions.
Jiri Simsa764efb72014-12-25 20:57:03 -080010 __veyron2 "v.io/core/veyron2"
11 __context "v.io/core/veyron2/context"
12 __ipc "v.io/core/veyron2/ipc"
Todd Wangb86b3522015-01-22 13:34:20 -080013 __vdl "v.io/core/veyron2/vdl"
Andres Erbsen975c8832014-06-18 12:06:07 -070014)
15
Todd Wang702385a2014-11-07 01:54:08 -080016// DischargerClientMethods is the client interface
17// containing Discharger methods.
18//
Asim Shankara94e5072014-08-19 18:18:36 -070019// Discharger is the interface for obtaining discharges for ThirdPartyCaveats.
Todd Wang702385a2014-11-07 01:54:08 -080020type DischargerClientMethods interface {
Andres Erbsen975c8832014-06-18 12:06:07 -070021 // Discharge is called by a principal that holds a blessing with a third
22 // party caveat and seeks to get a discharge that proves the fulfillment of
23 // this caveat.
Asim Shankara94e5072014-08-19 18:18:36 -070024 //
Ankurf044a8d2014-09-05 17:05:24 -070025 // Caveat and Discharge are of type ThirdPartyCaveat and Discharge
Andres Erbsen975c8832014-06-18 12:06:07 -070026 // respectively. (not enforced here because vdl does not know these types)
27 // TODO(ataly,ashankar): Figure out a VDL representation for ThirdPartyCaveat
28 // and Discharge and use those here?
Todd Wangb86b3522015-01-22 13:34:20 -080029 Discharge(ctx *__context.T, Caveat __vdl.AnyRep, Impetus security.DischargeImpetus, opts ...__ipc.CallOpt) (Discharge __vdl.AnyRep, err error)
Andres Erbsen975c8832014-06-18 12:06:07 -070030}
31
Todd Wang702385a2014-11-07 01:54:08 -080032// DischargerClientStub adds universal methods to DischargerClientMethods.
33type DischargerClientStub interface {
34 DischargerClientMethods
35 __ipc.UniversalServiceMethods
Andres Erbsen975c8832014-06-18 12:06:07 -070036}
37
Todd Wang702385a2014-11-07 01:54:08 -080038// DischargerClient returns a client stub for Discharger.
39func DischargerClient(name string, opts ...__ipc.BindOpt) DischargerClientStub {
40 var client __ipc.Client
41 for _, opt := range opts {
42 if clientOpt, ok := opt.(__ipc.Client); ok {
Matt Rosencrantzbf85d542014-08-22 13:31:14 -070043 client = clientOpt
Andres Erbsen975c8832014-06-18 12:06:07 -070044 }
Andres Erbsen975c8832014-06-18 12:06:07 -070045 }
Todd Wang702385a2014-11-07 01:54:08 -080046 return implDischargerClientStub{name, client}
Andres Erbsen975c8832014-06-18 12:06:07 -070047}
48
Todd Wang702385a2014-11-07 01:54:08 -080049type implDischargerClientStub struct {
50 name string
51 client __ipc.Client
52}
53
Matt Rosencrantz4f8ac602014-12-29 14:42:48 -080054func (c implDischargerClientStub) c(ctx *__context.T) __ipc.Client {
Todd Wang702385a2014-11-07 01:54:08 -080055 if c.client != nil {
56 return c.client
57 }
Suharsh Sivakumarbe80c1b2015-01-07 18:51:16 -080058 return __veyron2.GetClient(ctx)
Todd Wang702385a2014-11-07 01:54:08 -080059}
60
Todd Wangb86b3522015-01-22 13:34:20 -080061func (c implDischargerClientStub) Discharge(ctx *__context.T, i0 __vdl.AnyRep, i1 security.DischargeImpetus, opts ...__ipc.CallOpt) (o0 __vdl.AnyRep, err error) {
Todd Wang702385a2014-11-07 01:54:08 -080062 var call __ipc.Call
63 if call, err = c.c(ctx).StartCall(ctx, c.name, "Discharge", []interface{}{i0, i1}, opts...); err != nil {
64 return
65 }
66 if ierr := call.Finish(&o0, &err); ierr != nil {
67 err = ierr
68 }
69 return
70}
71
Todd Wang702385a2014-11-07 01:54:08 -080072// DischargerServerMethods is the interface a server writer
73// implements for Discharger.
Andres Erbsen975c8832014-06-18 12:06:07 -070074//
Todd Wang702385a2014-11-07 01:54:08 -080075// Discharger is the interface for obtaining discharges for ThirdPartyCaveats.
76type DischargerServerMethods interface {
77 // Discharge is called by a principal that holds a blessing with a third
78 // party caveat and seeks to get a discharge that proves the fulfillment of
79 // this caveat.
80 //
81 // Caveat and Discharge are of type ThirdPartyCaveat and Discharge
82 // respectively. (not enforced here because vdl does not know these types)
83 // TODO(ataly,ashankar): Figure out a VDL representation for ThirdPartyCaveat
84 // and Discharge and use those here?
Todd Wangb86b3522015-01-22 13:34:20 -080085 Discharge(ctx __ipc.ServerContext, Caveat __vdl.AnyRep, Impetus security.DischargeImpetus) (Discharge __vdl.AnyRep, err error)
Todd Wang702385a2014-11-07 01:54:08 -080086}
87
88// DischargerServerStubMethods is the server interface containing
Todd Wang1fe7cdd2014-11-12 12:51:49 -080089// Discharger methods, as expected by ipc.Server.
90// There is no difference between this interface and DischargerServerMethods
91// since there are no streaming methods.
92type DischargerServerStubMethods DischargerServerMethods
Todd Wang702385a2014-11-07 01:54:08 -080093
94// DischargerServerStub adds universal methods to DischargerServerStubMethods.
95type DischargerServerStub interface {
96 DischargerServerStubMethods
Todd Wang5739dda2014-11-16 22:44:02 -080097 // Describe the Discharger interfaces.
98 Describe__() []__ipc.InterfaceDesc
Todd Wang702385a2014-11-07 01:54:08 -080099}
100
101// DischargerServer returns a server stub for Discharger.
102// It converts an implementation of DischargerServerMethods into
103// an object that may be used by ipc.Server.
104func DischargerServer(impl DischargerServerMethods) DischargerServerStub {
105 stub := implDischargerServerStub{
106 impl: impl,
Andres Erbsen975c8832014-06-18 12:06:07 -0700107 }
Todd Wang702385a2014-11-07 01:54:08 -0800108 // Initialize GlobState; always check the stub itself first, to handle the
109 // case where the user has the Glob method defined in their VDL source.
110 if gs := __ipc.NewGlobState(stub); gs != nil {
111 stub.gs = gs
112 } else if gs := __ipc.NewGlobState(impl); gs != nil {
113 stub.gs = gs
Robin Thellend94bc4642014-11-05 18:05:08 -0800114 }
Robin Thellend94bc4642014-11-05 18:05:08 -0800115 return stub
Andres Erbsen975c8832014-06-18 12:06:07 -0700116}
117
Todd Wang702385a2014-11-07 01:54:08 -0800118type implDischargerServerStub struct {
119 impl DischargerServerMethods
120 gs *__ipc.GlobState
Matt Rosencrantzbf85d542014-08-22 13:31:14 -0700121}
122
Todd Wangb86b3522015-01-22 13:34:20 -0800123func (s implDischargerServerStub) Discharge(ctx __ipc.ServerContext, i0 __vdl.AnyRep, i1 security.DischargeImpetus) (__vdl.AnyRep, error) {
Todd Wang1fe7cdd2014-11-12 12:51:49 -0800124 return s.impl.Discharge(ctx, i0, i1)
Andres Erbsen975c8832014-06-18 12:06:07 -0700125}
126
Robin Thellend39ac3232014-12-02 09:50:41 -0800127func (s implDischargerServerStub) Globber() *__ipc.GlobState {
Todd Wang702385a2014-11-07 01:54:08 -0800128 return s.gs
Andres Erbsen975c8832014-06-18 12:06:07 -0700129}
130
Todd Wang5739dda2014-11-16 22:44:02 -0800131func (s implDischargerServerStub) Describe__() []__ipc.InterfaceDesc {
132 return []__ipc.InterfaceDesc{DischargerDesc}
133}
134
135// DischargerDesc describes the Discharger interface.
136var DischargerDesc __ipc.InterfaceDesc = descDischarger
137
138// descDischarger hides the desc to keep godoc clean.
139var descDischarger = __ipc.InterfaceDesc{
140 Name: "Discharger",
Jiri Simsa764efb72014-12-25 20:57:03 -0800141 PkgPath: "v.io/core/veyron/services/security",
Todd Wang5739dda2014-11-16 22:44:02 -0800142 Doc: "// Discharger is the interface for obtaining discharges for ThirdPartyCaveats.",
143 Methods: []__ipc.MethodDesc{
144 {
145 Name: "Discharge",
146 Doc: "// Discharge is called by a principal that holds a blessing with a third\n// party caveat and seeks to get a discharge that proves the fulfillment of\n// this caveat.\n//\n// Caveat and Discharge are of type ThirdPartyCaveat and Discharge\n// respectively. (not enforced here because vdl does not know these types)\n// TODO(ataly,ashankar): Figure out a VDL representation for ThirdPartyCaveat\n// and Discharge and use those here?",
147 InArgs: []__ipc.ArgDesc{
Todd Wangb86b3522015-01-22 13:34:20 -0800148 {"Caveat", ``}, // __vdl.AnyRep
Todd Wang5739dda2014-11-16 22:44:02 -0800149 {"Impetus", ``}, // security.DischargeImpetus
150 },
151 OutArgs: []__ipc.ArgDesc{
Todd Wangb86b3522015-01-22 13:34:20 -0800152 {"Discharge", ``}, // __vdl.AnyRep
Todd Wang5739dda2014-11-16 22:44:02 -0800153 {"err", ``}, // error
154 },
Todd Wang5739dda2014-11-16 22:44:02 -0800155 },
156 },
Andres Erbsen975c8832014-06-18 12:06:07 -0700157}