One last thing, there are encoders/decoders that were generated (maybe I didn’t
use the correct / for protoc). Attached is the c# file that was generated.
From: Marc Gravell <[email protected]>
Sent: Sunday, February 21, 2021 2:40 PM
To: Herbert Falk <[email protected]>
Cc: Protocol Buffers <[email protected]>
Subject: Re: [protobuf] Unable to get Client Service to work
I'm a little confused here...
Normally, assuming that this is using the Google implementation, you would
have, in your generated code:
- a generated concrete client proxy
- a generated abstract server stub
The client code would "new" the client proxy (the yellow code). Your server
code would declare a type that subclasses the abstract stub, and register
*that*. You wouldn't need to declare your own client/server core types. Have
you perhaps simply not generated the right client/server stubs?
On Sun, 21 Feb 2021, 16:01 Herbert Falk, <[email protected]> wrote:
I have the following *.proto file:
package CredentialExchange;
option go_package = "gitlab.com/openfmb/psm/ops/protobuf/go-/CredentialExchange
<http://gitlab.com/openfmb/psm/ops/protobuf/go-/CredentialExchange> ";
option java_package = "pcitek.CredentialExchange";
option java_multiple_files = true;
option csharp_namespace = "pcitek.CredentialExchange";
import "uml.proto";
// The greeting service definition.
service CredExchangeSend {
// Sends a Credential Exchange message
rpc Cred (Management) returns (Management) ;
}
// MISSING DOCUMENTATION!!!
message sendCredentialsRequest
{
// MISSING DOCUMENTATION!!!
bytes encrypted = 1 [(uml.option_required_field) = true,
(uml.option_multiplicity_min) = 1];
}
// MISSING DOCUMENTATION!!!
message Management
{
option (uml.option_openfmb_profile) = true;
// Version of the redundancy protocol
uint32 version = 1 [(uml.option_required_field) = true,
(uml.option_multiplicity_min) = 1];
// Is a number that can be used to correlate request/responses
uint32 messageID = 2 [(uml.option_required_field) = true,
(uml.option_multiplicity_min) = 1];
// Date and Time at which the message was started to be encoded.
string utcTimeOfMessage = 3 [(uml.option_required_field) = true,
(uml.option_multiplicity_min) = 1];
// MISSING DOCUMENTATION!!!
sendCredentialsRequest sendCredentialsRequest = 4;
}
I am trying to stage a Client Service for CredExchangeSend.
My current service declaration is:
public class CredentialExchangeService
{
public Task<pcitek.CredentialExchange.Management> rxd(
pcitek.CredentialExchange.Management request)
{
PCItek.Redundancy.CredentialExInt.decode(request);
return (null);
}
}
For the actual send, I need to pass in the actual Management class filled in.
This is what I am trying to do:
namespace pcitek.CredentialExchange
{
public class sendCredentials
{
public async Task Send(pcitek.CredentialExchange.Management info)
{
string address = Redundancy.getRedundancyPeerAddress();
using var channel = GrpcChannel.ForAddress(address+":5001");
//
var client = new pcitek.CredentialExchange.sendCredentials(channel)
}
}
}
The yellow'd statement fails because sendCredentials is not known. Please note
I also have: mapped a receiver service to:
endpoints.MapGrpcService<PCItek.Redundancy.services.CredentialExchangeService>();
Any help would be appreciated.
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected]
<mailto:[email protected]> .
To view this discussion on the web visit
https://groups.google.com/d/msgid/protobuf/d9500f87-994e-49a7-a30f-658f77652109n%40googlegroups.com
<https://groups.google.com/d/msgid/protobuf/d9500f87-994e-49a7-a30f-658f77652109n%40googlegroups.com?utm_medium=email&utm_source=footer>
.
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/protobuf/014c01d7088b%24a8b576a0%24fa2063e0%24%40gmail.com.
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: CredentialExchange.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace pcitek.CredentialExchange {
/// <summary>Holder for reflection information generated from
CredentialExchange.proto</summary>
public static partial class CredentialExchangeReflection {
#region Descriptor
/// <summary>File descriptor for CredentialExchange.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static CredentialExchangeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChhDcmVkZW50aWFsRXhjaGFuZ2UucHJvdG8SEkNyZWRlbnRpYWxFeGNoYW5n",
"ZRoJdW1sLnByb3RvIjUKFnNlbmRDcmVkZW50aWFsc1JlcXVlc3QSGwoJZW5j",
"cnlwdGVkGAEgASgMQgiItRgBkLUYASLTAQoKTWFuYWdlbWVudBIZCgd2ZXJz",
"aW9uGAEgASgNQgiItRgBkLUYARIbCgltZXNzYWdlSUQYAiABKA1CCIi1GAGQ",
"tRgBEiIKEHV0Y1RpbWVPZk1lc3NhZ2UYAyABKAlCCIi1GAGQtRgBEhcKBW5v",
"bmNlGAQgASgMQgiItRgBkLUYARJKChZzZW5kQ3JlZGVudGlhbHNSZXF1ZXN0",
"GAUgASgLMiouQ3JlZGVudGlhbEV4Y2hhbmdlLnNlbmRDcmVkZW50aWFsc1Jl",
"cXVlc3Q6BMDzGAEyWgoQQ3JlZEV4Y2hhbmdlU2VuZBJGCgRDcmVkEh4uQ3Jl",
"ZGVudGlhbEV4Y2hhbmdlLk1hbmFnZW1lbnQaHi5DcmVkZW50aWFsRXhjaGFu",
"Z2UuTWFuYWdlbWVudEJ1ChlwY2l0ZWsuQ3JlZGVudGlhbEV4Y2hhbmdlUAFa",
"OmdpdGxhYi5jb20vb3BlbmZtYi9wc20vb3BzL3Byb3RvYnVmL2dvLS9DcmVk",
"ZW50aWFsRXhjaGFuZ2WqAhlwY2l0ZWsuQ3JlZGVudGlhbEV4Y2hhbmdlYgZw",
"cm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::pcitek.UmlReflection.Descriptor,
},
new pbr::GeneratedClrTypeInfo(null, null, new
pbr::GeneratedClrTypeInfo[] {
new
pbr::GeneratedClrTypeInfo(typeof(global::pcitek.CredentialExchange.sendCredentialsRequest),
global::pcitek.CredentialExchange.sendCredentialsRequest.Parser, new[]{
"Encrypted" }, null, null, null, null),
new
pbr::GeneratedClrTypeInfo(typeof(global::pcitek.CredentialExchange.Management),
global::pcitek.CredentialExchange.Management.Parser, new[]{ "Version",
"MessageID", "UtcTimeOfMessage", "Nonce", "SendCredentialsRequest" }, null,
null, null, null)
}));
}
#endregion
}
#region Messages
/// <summary>
/// MISSING DOCUMENTATION!!!
/// </summary>
public sealed partial class sendCredentialsRequest :
pb::IMessage<sendCredentialsRequest>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<sendCredentialsRequest> _parser =
new pb::MessageParser<sendCredentialsRequest>(() => new
sendCredentialsRequest());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<sendCredentialsRequest> Parser { get {
return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return
global::pcitek.CredentialExchange.CredentialExchangeReflection.Descriptor.MessageTypes[0];
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public sendCredentialsRequest() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public sendCredentialsRequest(sendCredentialsRequest other) : this() {
encrypted_ = other.encrypted_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public sendCredentialsRequest Clone() {
return new sendCredentialsRequest(this);
}
/// <summary>Field number for the "encrypted" field.</summary>
public const int EncryptedFieldNumber = 1;
private pb::ByteString encrypted_ = pb::ByteString.Empty;
/// <summary>
/// MISSING DOCUMENTATION!!!
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pb::ByteString Encrypted {
get { return encrypted_; }
set {
encrypted_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as sendCredentialsRequest);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(sendCredentialsRequest other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Encrypted != other.Encrypted) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (Encrypted.Length != 0) hash ^= Encrypted.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Encrypted.Length != 0) {
output.WriteRawTag(10);
output.WriteBytes(Encrypted);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Encrypted.Length != 0) {
output.WriteRawTag(10);
output.WriteBytes(Encrypted);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (Encrypted.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(Encrypted);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(sendCredentialsRequest other) {
if (other == null) {
return;
}
if (other.Encrypted.Length != 0) {
Encrypted = other.Encrypted;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields,
other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields,
input);
break;
case 10: {
Encrypted = input.ReadBytes();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields,
ref input);
break;
case 10: {
Encrypted = input.ReadBytes();
break;
}
}
}
}
#endif
}
/// <summary>
/// MISSING DOCUMENTATION!!!
/// </summary>
public sealed partial class Management : pb::IMessage<Management>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Management> _parser = new
pb::MessageParser<Management>(() => new Management());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<Management> Parser { get { return _parser;
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return
global::pcitek.CredentialExchange.CredentialExchangeReflection.Descriptor.MessageTypes[1];
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Management() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Management(Management other) : this() {
version_ = other.version_;
messageID_ = other.messageID_;
utcTimeOfMessage_ = other.utcTimeOfMessage_;
nonce_ = other.nonce_;
sendCredentialsRequest_ = other.sendCredentialsRequest_ != null ?
other.sendCredentialsRequest_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Management Clone() {
return new Management(this);
}
/// <summary>Field number for the "version" field.</summary>
public const int VersionFieldNumber = 1;
private uint version_;
/// <summary>
/// Version of the redundancy protocol
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public uint Version {
get { return version_; }
set {
version_ = value;
}
}
/// <summary>Field number for the "messageID" field.</summary>
public const int MessageIDFieldNumber = 2;
private uint messageID_;
/// <summary>
/// Is a number that can be used to correlate request/responses
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public uint MessageID {
get { return messageID_; }
set {
messageID_ = value;
}
}
/// <summary>Field number for the "utcTimeOfMessage" field.</summary>
public const int UtcTimeOfMessageFieldNumber = 3;
private string utcTimeOfMessage_ = "";
/// <summary>
/// Date and Time at which the message was started to be encoded.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string UtcTimeOfMessage {
get { return utcTimeOfMessage_; }
set {
utcTimeOfMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "nonce" field.</summary>
public const int NonceFieldNumber = 4;
private pb::ByteString nonce_ = pb::ByteString.Empty;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pb::ByteString Nonce {
get { return nonce_; }
set {
nonce_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "sendCredentialsRequest" field.</summary>
public const int SendCredentialsRequestFieldNumber = 5;
private global::pcitek.CredentialExchange.sendCredentialsRequest
sendCredentialsRequest_;
/// <summary>
/// MISSING DOCUMENTATION!!!
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::pcitek.CredentialExchange.sendCredentialsRequest
SendCredentialsRequest {
get { return sendCredentialsRequest_; }
set {
sendCredentialsRequest_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Management);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(Management other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Version != other.Version) return false;
if (MessageID != other.MessageID) return false;
if (UtcTimeOfMessage != other.UtcTimeOfMessage) return false;
if (Nonce != other.Nonce) return false;
if (!object.Equals(SendCredentialsRequest, other.SendCredentialsRequest))
return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (Version != 0) hash ^= Version.GetHashCode();
if (MessageID != 0) hash ^= MessageID.GetHashCode();
if (UtcTimeOfMessage.Length != 0) hash ^= UtcTimeOfMessage.GetHashCode();
if (Nonce.Length != 0) hash ^= Nonce.GetHashCode();
if (sendCredentialsRequest_ != null) hash ^=
SendCredentialsRequest.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Version != 0) {
output.WriteRawTag(8);
output.WriteUInt32(Version);
}
if (MessageID != 0) {
output.WriteRawTag(16);
output.WriteUInt32(MessageID);
}
if (UtcTimeOfMessage.Length != 0) {
output.WriteRawTag(26);
output.WriteString(UtcTimeOfMessage);
}
if (Nonce.Length != 0) {
output.WriteRawTag(34);
output.WriteBytes(Nonce);
}
if (sendCredentialsRequest_ != null) {
output.WriteRawTag(42);
output.WriteMessage(SendCredentialsRequest);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Version != 0) {
output.WriteRawTag(8);
output.WriteUInt32(Version);
}
if (MessageID != 0) {
output.WriteRawTag(16);
output.WriteUInt32(MessageID);
}
if (UtcTimeOfMessage.Length != 0) {
output.WriteRawTag(26);
output.WriteString(UtcTimeOfMessage);
}
if (Nonce.Length != 0) {
output.WriteRawTag(34);
output.WriteBytes(Nonce);
}
if (sendCredentialsRequest_ != null) {
output.WriteRawTag(42);
output.WriteMessage(SendCredentialsRequest);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (Version != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Version);
}
if (MessageID != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MessageID);
}
if (UtcTimeOfMessage.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(UtcTimeOfMessage);
}
if (Nonce.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeBytesSize(Nonce);
}
if (sendCredentialsRequest_ != null) {
size += 1 +
pb::CodedOutputStream.ComputeMessageSize(SendCredentialsRequest);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Management other) {
if (other == null) {
return;
}
if (other.Version != 0) {
Version = other.Version;
}
if (other.MessageID != 0) {
MessageID = other.MessageID;
}
if (other.UtcTimeOfMessage.Length != 0) {
UtcTimeOfMessage = other.UtcTimeOfMessage;
}
if (other.Nonce.Length != 0) {
Nonce = other.Nonce;
}
if (other.sendCredentialsRequest_ != null) {
if (sendCredentialsRequest_ == null) {
SendCredentialsRequest = new
global::pcitek.CredentialExchange.sendCredentialsRequest();
}
SendCredentialsRequest.MergeFrom(other.SendCredentialsRequest);
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields,
other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields,
input);
break;
case 8: {
Version = input.ReadUInt32();
break;
}
case 16: {
MessageID = input.ReadUInt32();
break;
}
case 26: {
UtcTimeOfMessage = input.ReadString();
break;
}
case 34: {
Nonce = input.ReadBytes();
break;
}
case 42: {
if (sendCredentialsRequest_ == null) {
SendCredentialsRequest = new
global::pcitek.CredentialExchange.sendCredentialsRequest();
}
input.ReadMessage(SendCredentialsRequest);
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields,
ref input);
break;
case 8: {
Version = input.ReadUInt32();
break;
}
case 16: {
MessageID = input.ReadUInt32();
break;
}
case 26: {
UtcTimeOfMessage = input.ReadString();
break;
}
case 34: {
Nonce = input.ReadBytes();
break;
}
case 42: {
if (sendCredentialsRequest_ == null) {
SendCredentialsRequest = new
global::pcitek.CredentialExchange.sendCredentialsRequest();
}
input.ReadMessage(SendCredentialsRequest);
break;
}
}
}
}
#endif
}
#endregion
}
#endregion Designer generated code