create text/ subdir for all text-format code

Currently all we have is an encoder but eventually a decoder will also go here.

PiperOrigin-RevId: 485911424
pull/13171/head
Eric Salo 2 years ago committed by Copybara-Service
parent 9b8785ebd3
commit 0bb466356d
  1. 3
      BUILD
  2. 2
      python/message.c
  3. 3
      upb/text/encode.c
  4. 69
      upb/text/encode.h
  5. 40
      upb/text_encode.h

@ -531,9 +531,10 @@ cc_library(
cc_library(
name = "textformat",
srcs = [
"upb/text_encode.c",
"upb/text/encode.c",
],
hdrs = [
"upb/text/encode.h",
"upb/text_encode.h",
],
copts = UPB_DEFAULT_COPTS,

@ -34,7 +34,7 @@
#include "python/repeated.h"
#include "upb/reflection/def.h"
#include "upb/reflection/message.h"
#include "upb/text_encode.h"
#include "upb/text/encode.h"
#include "upb/util/required_fields.h"
static const upb_MessageDef* PyUpb_MessageMeta_GetMsgdef(PyObject* cls);

@ -25,13 +25,12 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "upb/text_encode.h"
#include "upb/text/encode.h"
#include <ctype.h>
#include <float.h>
#include <inttypes.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "upb/internal/vsnprintf_compat.h"

@ -0,0 +1,69 @@
/*
* Copyright (c) 2009-2021, Google LLC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Google LLC nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef UPB_TEXT_ENCODE_H_
#define UPB_TEXT_ENCODE_H_
#include "upb/reflection/def.h"
// Must be last.
#include "upb/port_def.inc"
#ifdef __cplusplus
extern "C" {
#endif
enum {
// When set, prints everything on a single line.
UPB_TXTENC_SINGLELINE = 1,
// When set, unknown fields are not printed.
UPB_TXTENC_SKIPUNKNOWN = 2,
// When set, maps are *not* sorted (this avoids allocating tmp mem).
UPB_TXTENC_NOSORT = 4
};
/* Encodes the given |msg| to text format. The message's reflection is given in
* |m|. The symtab in |symtab| is used to find extensions (if NULL, extensions
* will not be printed).
*
* Output is placed in the given buffer, and always NULL-terminated. The output
* size (excluding NULL) is returned. This means that a return value >= |size|
* implies that the output was truncated. (These are the same semantics as
* snprintf()). */
size_t upb_TextEncode(const upb_Message* msg, const upb_MessageDef* m,
const upb_DefPool* ext_pool, int options, char* buf,
size_t size);
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "upb/port_undef.inc"
#endif /* UPB_TEXT_ENCODE_H_ */

@ -25,45 +25,11 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// This header is deprecated, use upb/text/encode.h instead
#ifndef UPB_TEXTENCODE_H_
#define UPB_TEXTENCODE_H_
#include "upb/reflection/def.h"
// Must be last.
#include "upb/port_def.inc"
#ifdef __cplusplus
extern "C" {
#endif
enum {
/* When set, prints everything on a single line. */
UPB_TXTENC_SINGLELINE = 1,
/* When set, unknown fields are not printed. */
UPB_TXTENC_SKIPUNKNOWN = 2,
/* When set, maps are *not* sorted (this avoids allocating tmp mem). */
UPB_TXTENC_NOSORT = 4
};
/* Encodes the given |msg| to text format. The message's reflection is given in
* |m|. The symtab in |symtab| is used to find extensions (if NULL, extensions
* will not be printed).
*
* Output is placed in the given buffer, and always NULL-terminated. The output
* size (excluding NULL) is returned. This means that a return value >= |size|
* implies that the output was truncated. (These are the same semantics as
* snprintf()). */
size_t upb_TextEncode(const upb_Message* msg, const upb_MessageDef* m,
const upb_DefPool* ext_pool, int options, char* buf,
size_t size);
#ifdef __cplusplus
} /* extern "C" */
#endif
#include "upb/port_undef.inc"
#include "upb/text/encode.h"
#endif /* UPB_TEXTENCODE_H_ */

Loading…
Cancel
Save