Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 1 | // This file was auto-generated by the veyron vdl tool. |
| 2 | // Source: discharger.vdl |
| 3 | |
Ali Ghassemi | 46bb7e0 | 2014-06-19 15:38:48 -0700 | [diff] [blame] | 4 | package security |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 5 | |
| 6 | import ( |
Jiri Simsa | 764efb7 | 2014-12-25 20:57:03 -0800 | [diff] [blame] | 7 | "v.io/core/veyron2/security" |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 8 | |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 9 | // The non-user imports are prefixed with "__" to prevent collisions. |
Jiri Simsa | 764efb7 | 2014-12-25 20:57:03 -0800 | [diff] [blame] | 10 | __veyron2 "v.io/core/veyron2" |
| 11 | __context "v.io/core/veyron2/context" |
| 12 | __ipc "v.io/core/veyron2/ipc" |
Todd Wang | b86b352 | 2015-01-22 13:34:20 -0800 | [diff] [blame] | 13 | __vdl "v.io/core/veyron2/vdl" |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 14 | ) |
| 15 | |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 16 | // DischargerClientMethods is the client interface |
| 17 | // containing Discharger methods. |
| 18 | // |
Asim Shankar | a94e507 | 2014-08-19 18:18:36 -0700 | [diff] [blame] | 19 | // Discharger is the interface for obtaining discharges for ThirdPartyCaveats. |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 20 | type DischargerClientMethods interface { |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 21 | // 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 Shankar | a94e507 | 2014-08-19 18:18:36 -0700 | [diff] [blame] | 24 | // |
Ankur | f044a8d | 2014-09-05 17:05:24 -0700 | [diff] [blame] | 25 | // Caveat and Discharge are of type ThirdPartyCaveat and Discharge |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 26 | // 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 Wang | b86b352 | 2015-01-22 13:34:20 -0800 | [diff] [blame] | 29 | Discharge(ctx *__context.T, Caveat __vdl.AnyRep, Impetus security.DischargeImpetus, opts ...__ipc.CallOpt) (Discharge __vdl.AnyRep, err error) |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 30 | } |
| 31 | |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 32 | // DischargerClientStub adds universal methods to DischargerClientMethods. |
| 33 | type DischargerClientStub interface { |
| 34 | DischargerClientMethods |
| 35 | __ipc.UniversalServiceMethods |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 36 | } |
| 37 | |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 38 | // DischargerClient returns a client stub for Discharger. |
| 39 | func 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 Rosencrantz | bf85d54 | 2014-08-22 13:31:14 -0700 | [diff] [blame] | 43 | client = clientOpt |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 44 | } |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 45 | } |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 46 | return implDischargerClientStub{name, client} |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 47 | } |
| 48 | |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 49 | type implDischargerClientStub struct { |
| 50 | name string |
| 51 | client __ipc.Client |
| 52 | } |
| 53 | |
Matt Rosencrantz | 4f8ac60 | 2014-12-29 14:42:48 -0800 | [diff] [blame] | 54 | func (c implDischargerClientStub) c(ctx *__context.T) __ipc.Client { |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 55 | if c.client != nil { |
| 56 | return c.client |
| 57 | } |
Suharsh Sivakumar | be80c1b | 2015-01-07 18:51:16 -0800 | [diff] [blame] | 58 | return __veyron2.GetClient(ctx) |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 59 | } |
| 60 | |
Todd Wang | b86b352 | 2015-01-22 13:34:20 -0800 | [diff] [blame] | 61 | func (c implDischargerClientStub) Discharge(ctx *__context.T, i0 __vdl.AnyRep, i1 security.DischargeImpetus, opts ...__ipc.CallOpt) (o0 __vdl.AnyRep, err error) { |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 62 | 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 Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 72 | // DischargerServerMethods is the interface a server writer |
| 73 | // implements for Discharger. |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 74 | // |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 75 | // Discharger is the interface for obtaining discharges for ThirdPartyCaveats. |
| 76 | type 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 Wang | b86b352 | 2015-01-22 13:34:20 -0800 | [diff] [blame] | 85 | Discharge(ctx __ipc.ServerContext, Caveat __vdl.AnyRep, Impetus security.DischargeImpetus) (Discharge __vdl.AnyRep, err error) |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 86 | } |
| 87 | |
| 88 | // DischargerServerStubMethods is the server interface containing |
Todd Wang | 1fe7cdd | 2014-11-12 12:51:49 -0800 | [diff] [blame] | 89 | // Discharger methods, as expected by ipc.Server. |
| 90 | // There is no difference between this interface and DischargerServerMethods |
| 91 | // since there are no streaming methods. |
| 92 | type DischargerServerStubMethods DischargerServerMethods |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 93 | |
| 94 | // DischargerServerStub adds universal methods to DischargerServerStubMethods. |
| 95 | type DischargerServerStub interface { |
| 96 | DischargerServerStubMethods |
Todd Wang | 5739dda | 2014-11-16 22:44:02 -0800 | [diff] [blame] | 97 | // Describe the Discharger interfaces. |
| 98 | Describe__() []__ipc.InterfaceDesc |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 99 | } |
| 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. |
| 104 | func DischargerServer(impl DischargerServerMethods) DischargerServerStub { |
| 105 | stub := implDischargerServerStub{ |
| 106 | impl: impl, |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 107 | } |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 108 | // 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 Thellend | 94bc464 | 2014-11-05 18:05:08 -0800 | [diff] [blame] | 114 | } |
Robin Thellend | 94bc464 | 2014-11-05 18:05:08 -0800 | [diff] [blame] | 115 | return stub |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 116 | } |
| 117 | |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 118 | type implDischargerServerStub struct { |
| 119 | impl DischargerServerMethods |
| 120 | gs *__ipc.GlobState |
Matt Rosencrantz | bf85d54 | 2014-08-22 13:31:14 -0700 | [diff] [blame] | 121 | } |
| 122 | |
Todd Wang | b86b352 | 2015-01-22 13:34:20 -0800 | [diff] [blame] | 123 | func (s implDischargerServerStub) Discharge(ctx __ipc.ServerContext, i0 __vdl.AnyRep, i1 security.DischargeImpetus) (__vdl.AnyRep, error) { |
Todd Wang | 1fe7cdd | 2014-11-12 12:51:49 -0800 | [diff] [blame] | 124 | return s.impl.Discharge(ctx, i0, i1) |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 125 | } |
| 126 | |
Robin Thellend | 39ac323 | 2014-12-02 09:50:41 -0800 | [diff] [blame] | 127 | func (s implDischargerServerStub) Globber() *__ipc.GlobState { |
Todd Wang | 702385a | 2014-11-07 01:54:08 -0800 | [diff] [blame] | 128 | return s.gs |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 129 | } |
| 130 | |
Todd Wang | 5739dda | 2014-11-16 22:44:02 -0800 | [diff] [blame] | 131 | func (s implDischargerServerStub) Describe__() []__ipc.InterfaceDesc { |
| 132 | return []__ipc.InterfaceDesc{DischargerDesc} |
| 133 | } |
| 134 | |
| 135 | // DischargerDesc describes the Discharger interface. |
| 136 | var DischargerDesc __ipc.InterfaceDesc = descDischarger |
| 137 | |
| 138 | // descDischarger hides the desc to keep godoc clean. |
| 139 | var descDischarger = __ipc.InterfaceDesc{ |
| 140 | Name: "Discharger", |
Jiri Simsa | 764efb7 | 2014-12-25 20:57:03 -0800 | [diff] [blame] | 141 | PkgPath: "v.io/core/veyron/services/security", |
Todd Wang | 5739dda | 2014-11-16 22:44:02 -0800 | [diff] [blame] | 142 | 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 Wang | b86b352 | 2015-01-22 13:34:20 -0800 | [diff] [blame] | 148 | {"Caveat", ``}, // __vdl.AnyRep |
Todd Wang | 5739dda | 2014-11-16 22:44:02 -0800 | [diff] [blame] | 149 | {"Impetus", ``}, // security.DischargeImpetus |
| 150 | }, |
| 151 | OutArgs: []__ipc.ArgDesc{ |
Todd Wang | b86b352 | 2015-01-22 13:34:20 -0800 | [diff] [blame] | 152 | {"Discharge", ``}, // __vdl.AnyRep |
Todd Wang | 5739dda | 2014-11-16 22:44:02 -0800 | [diff] [blame] | 153 | {"err", ``}, // error |
| 154 | }, |
Todd Wang | 5739dda | 2014-11-16 22:44:02 -0800 | [diff] [blame] | 155 | }, |
| 156 | }, |
Andres Erbsen | 975c883 | 2014-06-18 12:06:07 -0700 | [diff] [blame] | 157 | } |