Program Listing for File apex_string.h

Return to documentation for file (/tmp/ws/src/apex_containers/apex_containers/include/apexutils/apex_string.h)

// Copyright 2017-2018 Apex.AI, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


#ifndef APEXUTILS__APEX_STRING_H_
#define APEXUTILS__APEX_STRING_H_

#include <apexutils/visibility_control.h>
#include <apexutils/apexdef.h>

#ifdef __cplusplus
extern "C"
{
#endif  // __cplusplus

#define APEX_STRING_SIZE (256ULL)

#define MAX_APEX_STRING_LEN (APEX_STRING_SIZE - 1ULL)

typedef struct _apex_string_s
{
  char8_t c_str[APEX_STRING_SIZE];
} apex_string_t;


APEXUTILS_PUBLIC apex_string_t apex_string_create(void);

APEXUTILS_PUBLIC apex_ret_t apex_string_clean(apex_string_t * const str);

APEXUTILS_PUBLIC apex_ret_t apex_string_add_strict(
  apex_string_t * const dst,
  const char8_t * const src);

APEXUTILS_PUBLIC apex_ret_t apex_string_add2_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add3_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add4_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add5_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add6_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add7_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add8_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7,
  const char8_t * const src8
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add9_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7,
  const char8_t * const src8,
  const char8_t * const src9
);

APEXUTILS_PUBLIC apex_ret_t apex_string_add10_strict(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7,
  const char8_t * const src8,
  const char8_t * const src9,
  const char8_t * const src10
);

// "Silent" string add functions, possibly with trimming

APEXUTILS_PUBLIC size64_t apex_string_add(
  apex_string_t * const dst,
  const char8_t * const src);

APEXUTILS_PUBLIC size64_t apex_string_add2(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2
);

APEXUTILS_PUBLIC size64_t apex_string_add3(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3
);

APEXUTILS_PUBLIC size64_t apex_string_add4(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4
);

APEXUTILS_PUBLIC size64_t apex_string_add5(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5
);

APEXUTILS_PUBLIC size64_t apex_string_add6(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6
);

APEXUTILS_PUBLIC size64_t apex_string_add7(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7
);

APEXUTILS_PUBLIC size64_t apex_string_add8(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7,
  const char8_t * const src8
);

APEXUTILS_PUBLIC size64_t apex_string_add9(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7,
  const char8_t * const src8,
  const char8_t * const src9
);

APEXUTILS_PUBLIC size64_t apex_string_add10(
  apex_string_t * const dst,
  const char8_t * const src1,
  const char8_t * const src2,
  const char8_t * const src3,
  const char8_t * const src4,
  const char8_t * const src5,
  const char8_t * const src6,
  const char8_t * const src7,
  const char8_t * const src8,
  const char8_t * const src9,
  const char8_t * const src10
);

#ifdef __cplusplus
}
#endif  // __cplusplus

#endif  // APEXUTILS__APEX_STRING_H_