aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Communication/PMR/IO/FileDownloadResponse.pb-c.c
blob: ece7642233e244c2685fb8b150f3f7e5bcc46cd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: FileDownloadResponse.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "FileDownloadResponse.pb-c.h"
void   file_download_response__init
                     (FileDownloadResponse         *message)
{
  static const FileDownloadResponse init_value = FILE_DOWNLOAD_RESPONSE__INIT;
  *message = init_value;
}
size_t file_download_response__get_packed_size
                     (const FileDownloadResponse *message)
{
  assert(message->base.descriptor == &file_download_response__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t file_download_response__pack
                     (const FileDownloadResponse *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &file_download_response__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t file_download_response__pack_to_buffer
                     (const FileDownloadResponse *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &file_download_response__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
FileDownloadResponse *
       file_download_response__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (FileDownloadResponse *)
     protobuf_c_message_unpack (&file_download_response__descriptor,
                                allocator, len, data);
}
void   file_download_response__free_unpacked
                     (FileDownloadResponse *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &file_download_response__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor file_download_response__field_descriptors[2] =
{
  {
    "DownloadID",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(FileDownloadResponse, downloadid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "MaxChunkLength",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT64,
    offsetof(FileDownloadResponse, has_maxchunklength),
    offsetof(FileDownloadResponse, maxchunklength),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned file_download_response__field_indices_by_name[] = {
  0,   /* field[0] = DownloadID */
  1,   /* field[1] = MaxChunkLength */
};
static const ProtobufCIntRange file_download_response__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor file_download_response__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "FileDownloadResponse",
  "FileDownloadResponse",
  "FileDownloadResponse",
  "",
  sizeof(FileDownloadResponse),
  2,
  file_download_response__field_descriptors,
  file_download_response__field_indices_by_name,
  1,  file_download_response__number_ranges,
  (ProtobufCMessageInit) file_download_response__init,
  NULL,NULL,NULL    /* reserved[123] */
};
n class="p">.IsStartOrEmptyTag || me.IsEndTag) && me.Parent is AXmlElement) { me.Parent.OnChanging(); } } /// <summary> Raises Changed event </summary> protected void OnChanged() { AXmlParser.Log("Changed {0}", this); if (Changed != null) { Changed(this, new AXmlObjectEventArgs() { Object = this } ); } AXmlDocument doc = this.Document; if (doc != null) { doc.OnObjectChanged(this); } // As a convenience, also rasie an event for the parent element AXmlTag me = this as AXmlTag; if (me != null && (me.IsStartOrEmptyTag || me.IsEndTag) && me.Parent is AXmlElement) { me.Parent.OnChanged(); } } List<SyntaxError> syntaxErrors; /// <summary> /// The error that occured in the context of this node (excluding nested nodes) /// </summary> public IEnumerable<SyntaxError> MySyntaxErrors { get { if (syntaxErrors == null) { return new SyntaxError[] {}; } else { return syntaxErrors; } } } /// <summary> /// The error that occured in the context of this node and all nested nodes. /// It has O(n) cost. /// </summary> public IEnumerable<SyntaxError> SyntaxErrors { get { return GetSelfAndAllChildren().SelectMany(obj => obj.MySyntaxErrors); } } internal void AddSyntaxError(SyntaxError error) { DebugAssert(error.Object == this, "Must own the error"); if (this.syntaxErrors == null) this.syntaxErrors = new List<SyntaxError>(); syntaxErrors.Add(error); } /// <summary> Throws exception if condition is false </summary> /// <remarks> Present in release mode - use only for very cheap aserts </remarks> protected static void Assert(bool condition, string message) { if (!condition) { throw new InternalException("Assertion failed: " + message); } } /// <summary> Throws exception if condition is false </summary> [Conditional("DEBUG")] protected static void DebugAssert(bool condition, string message) { if (!condition) { throw new InternalException("Assertion failed: " + message); } } /// <summary> Recursively gets self and all nested nodes. </summary> [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Using a method makes the API look more LINQ-like and indicates that the returned collection is computed every time.")] public virtual IEnumerable<AXmlObject> GetSelfAndAllChildren() { return new AXmlObject[] { this }; } /// <summary> Get all ancestors of this node </summary> [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Using a method makes the API look more LINQ-like and indicates that the returned collection is computed every time.")] public IEnumerable<AXmlObject> GetAncestors() { AXmlObject curr = this.Parent; while(curr != null) { yield return curr; curr = curr.Parent; } } /// <summary> Call appropriate visit method on the given visitor </summary> public abstract void AcceptVisitor(IAXmlVisitor visitor); /// <summary> The parser tree object this object was updated from </summary> /// <remarks> Initialized to 'this' </remarks> internal AXmlObject LastUpdatedFrom { get; private set; } internal bool IsCached { get; set; } /// <summary> Is call to UpdateDataFrom is allowed? </summary> internal bool CanUpdateDataFrom(AXmlObject source) { return this.GetType() == source.GetType() && this.StartOffset == source.StartOffset && (this.LastUpdatedFrom == source || !this.IsCached); } /// <summary> Copy all data from the 'source' to this object </summary> /// <remarks> Returns true if any updates were done </remarks> internal virtual bool UpdateDataFrom(AXmlObject source) { Assert(this.GetType() == source.GetType(), "Source has different type"); DebugAssert(this.StartOffset == source.StartOffset, "Source has different StartOffset"); if (this.LastUpdatedFrom == source) { DebugAssert(this.EndOffset == source.EndOffset, "Source has different EndOffset"); return false; } Assert(!this.IsCached, "Can not update cached item"); Assert(source.IsCached, "Must update from cache"); this.LastUpdatedFrom = source; this.StartOffset = source.StartOffset; // In some cases we are just updating objects of that same // type and position and hoping to be luckily right this.EndOffset = source.EndOffset; // Do not bother comparing - assume changed if non-null if (this.syntaxErrors != null || source.syntaxErrors != null) { // May be called again in derived class - oh, well, does not matter OnChanging(); this.Document.Parser.TrackedSegments.RemoveSyntaxErrorsOf(this); if (source.syntaxErrors == null) { this.syntaxErrors = null; } else { this.syntaxErrors = new List<SyntaxError>(); foreach(var error in source.MySyntaxErrors) { // The object differs, so create our own copy // The source still might need it in the future and we do not want to break it this.AddSyntaxError(error.Clone(this)); } } this.Document.Parser.TrackedSegments.AddSyntaxErrorsOf(this); OnChanged(); } return true; } /// <summary> Verify that the item is consistent. Only in debug build. </summary> [Conditional("DEBUG")] internal virtual void DebugCheckConsistency(bool allowNullParent) { } /// <inheritdoc/> public override string ToString() { return string.Format(CultureInfo.InvariantCulture, "{0}({1}-{2})", this.GetType().Name.Remove(0, 4), this.StartOffset, this.EndOffset); } #region Helpper methods /// <summary> The part of name before ":" </summary> /// <returns> Empty string if not found </returns> protected static string GetNamespacePrefix(string name) { if (string.IsNullOrEmpty(name)) return string.Empty; int colonIndex = name.IndexOf(':'); if (colonIndex != -1) { return name.Substring(0, colonIndex); } else { return string.Empty; } } /// <summary> The part of name after ":" </summary> /// <returns> Whole name if ":" not found </returns> protected static string GetLocalName(string name) { if (string.IsNullOrEmpty(name)) return string.Empty; int colonIndex = name.IndexOf(':'); if (colonIndex != -1) { return name.Remove(0, colonIndex + 1); } else { return name ?? string.Empty; } } #endregion } }