From 6174d989e8b2a7777e37fc45ed296b693dd9dfc4 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 25 Aug 2005 15:50:45 +0000 Subject: [PATCH] removed libjson git-svn-id: svn://svn.open-ils.org/ILS/trunk@1727 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- OpenSRF/src/libjson/Doxyfile | 1153 --------------------- OpenSRF/src/libjson/Makefile | 48 - OpenSRF/src/libjson/README.html | 32 - OpenSRF/src/libjson/arraylist.c | 94 -- OpenSRF/src/libjson/arraylist.h | 52 - OpenSRF/src/libjson/bits.h | 38 - OpenSRF/src/libjson/debug.c | 75 -- OpenSRF/src/libjson/debug.h | 33 - OpenSRF/src/libjson/json.h | 30 - OpenSRF/src/libjson/json_object.c | 504 --------- OpenSRF/src/libjson/json_object.h | 301 ------ OpenSRF/src/libjson/json_object_private.h | 25 - OpenSRF/src/libjson/json_tokener.c | 434 -------- OpenSRF/src/libjson/json_tokener.h | 70 -- OpenSRF/src/libjson/json_util.c | 84 -- OpenSRF/src/libjson/json_util.h | 13 - OpenSRF/src/libjson/linkhash.c | 225 ---- OpenSRF/src/libjson/linkhash.h | 270 ----- OpenSRF/src/libjson/oilsMessage.c | 87 -- OpenSRF/src/libjson/oils_method.c | 36 - OpenSRF/src/libjson/ossupport.c | 33 - OpenSRF/src/libjson/ossupport.h | 26 - OpenSRF/src/libjson/printbuf.c | 106 -- OpenSRF/src/libjson/printbuf.h | 43 - OpenSRF/src/libjson/test1.c | 134 --- OpenSRF/src/libjson/test2.c | 19 - 26 files changed, 3965 deletions(-) delete mode 100644 OpenSRF/src/libjson/Doxyfile delete mode 100644 OpenSRF/src/libjson/Makefile delete mode 100644 OpenSRF/src/libjson/README.html delete mode 100644 OpenSRF/src/libjson/arraylist.c delete mode 100644 OpenSRF/src/libjson/arraylist.h delete mode 100644 OpenSRF/src/libjson/bits.h delete mode 100644 OpenSRF/src/libjson/debug.c delete mode 100644 OpenSRF/src/libjson/debug.h delete mode 100644 OpenSRF/src/libjson/json.h delete mode 100644 OpenSRF/src/libjson/json_object.c delete mode 100644 OpenSRF/src/libjson/json_object.h delete mode 100644 OpenSRF/src/libjson/json_object_private.h delete mode 100644 OpenSRF/src/libjson/json_tokener.c delete mode 100644 OpenSRF/src/libjson/json_tokener.h delete mode 100644 OpenSRF/src/libjson/json_util.c delete mode 100644 OpenSRF/src/libjson/json_util.h delete mode 100644 OpenSRF/src/libjson/linkhash.c delete mode 100644 OpenSRF/src/libjson/linkhash.h delete mode 100644 OpenSRF/src/libjson/oilsMessage.c delete mode 100644 OpenSRF/src/libjson/oils_method.c delete mode 100644 OpenSRF/src/libjson/ossupport.c delete mode 100644 OpenSRF/src/libjson/ossupport.h delete mode 100644 OpenSRF/src/libjson/printbuf.c delete mode 100644 OpenSRF/src/libjson/printbuf.h delete mode 100644 OpenSRF/src/libjson/test1.c delete mode 100644 OpenSRF/src/libjson/test2.c diff --git a/OpenSRF/src/libjson/Doxyfile b/OpenSRF/src/libjson/Doxyfile deleted file mode 100644 index a964501a66..0000000000 --- a/OpenSRF/src/libjson/Doxyfile +++ /dev/null @@ -1,1153 +0,0 @@ -# Doxyfile 1.3.8 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = json-c - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = 0.1 - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of source -# files, where putting all generated files in the same directory would otherwise -# cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, -# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, -# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, -# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, -# Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = NO - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is used -# as the annotated text. Otherwise, the brief description is used as-is. If left -# blank, the following values are used ("$name" is automatically replaced with the -# name of the entity): "The $name class" "The $name widget" "The $name file" -# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited -# members of a class in the documentation of that class as if those members were -# ordinary class members. Constructors, destructors and assignment operators of -# the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources -# only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp -# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm - -FILE_PATTERNS = *.h - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories -# that are symbolic links (a Unix filesystem feature) are excluded from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. - -EXCLUDE_PATTERNS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_PREDEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse the -# parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or -# super classes. Setting the tag to NO turns the diagrams off. Note that this -# option is superseded by the HAVE_DOT option below. This is only a fallback. It is -# recommended to install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found on the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_WIDTH = 1024 - -# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height -# (in pixels) of the graphs generated by dot. If a graph becomes larger than -# this value, doxygen will try to truncate the graph, so that it fits within -# the specified constraint. Beware that most browsers cannot cope with very -# large images. - -MAX_DOT_GRAPH_HEIGHT = 1024 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes that -# lay further from the root node will be omitted. Note that setting this option to -# 1 or 2 may greatly reduce the computation time needed for large code bases. Also -# note that a graph may be further truncated if the graph's image dimensions are -# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). -# If 0 is used for the depth value (the default), the graph is not depth-constrained. - -MAX_DOT_GRAPH_DEPTH = 0 - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/OpenSRF/src/libjson/Makefile b/OpenSRF/src/libjson/Makefile deleted file mode 100644 index d17ec0583d..0000000000 --- a/OpenSRF/src/libjson/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# $Id$ - -CFLAGS += -g -O2 -Wall -std=gnu99 -D_GNU_SOURCE -D_REENTRANT -I ../../include -fPIC - -DEST_INCLUDE = libjson - -LIB_OBJS = debug.o \ - linkhash.o \ - printbuf.o \ - arraylist.o \ - json_object.o \ - json_tokener.o - -TESTS = test1 test2 - -all: tests - -lib: $(LIB_OBJS) - gcc -shared -W1 $(LIB_OBJS) -o $(TMPDIR)/libjson.so - mkdir -p $(TMPDIR)/$(DEST_INCLUDE)/ - cp *.h $(TMPDIR)/$(DEST_INCLUDE)/ - -install: - mkdir -p $(INCLUDEDIR)/$(DEST_INCLUDE)/ - cp $(TMPDIR)/$(DEST_INCLUDE)/*.h $(INCLUDEDIR)/$(DEST_INCLUDE)/ - cp $(TMPDIR)/libjson.so $(LIBDIR)/libjson.so - - -tests: $(TESTS) - -test1: test1.o lib - gcc -ljson $(LD_OPTS) $(LDLIBS) test1.o -o test1 -test2: test2.o lib - gcc -ljson $(LD_OPTS) $(LDLIBS) test2.o -o test2 - - -clean: - rm -f *.o *~ $(TESTS) - -cex.o: cex.c -debug.o: debug.c -linkhash.o: linkhash.c -arraylist.o: arraylist.c -json_object.o: json_object.c -json_tokener.o: json_tokener.c -test1.o: test1.c -test2.o: test2.c - diff --git a/OpenSRF/src/libjson/README.html b/OpenSRF/src/libjson/README.html deleted file mode 100644 index 5b9a8dcbea..0000000000 --- a/OpenSRF/src/libjson/README.html +++ /dev/null @@ -1,32 +0,0 @@ -

JSON-C - A JSON implementation in C

-

Latest release: json-c-0.1.tar.gz

- -

JSON-C implements a reference counting object model that allows you -to easily construct JSON objects in C, output them as JSON formatted strings -and parse JSON formatted strings back into the C representation of JSON -objects.

- -

Minimal documentation exists here, -Although you are probably better reading the example code in test1.c.

- -

JSON-C currently depends on some gcc 3.0+ features so can probably only be - compiled with gcc 3.0+. It also uses some specifc glibc functions such as - vasprintf. Patches welcome to port to other compilers / platforms.

- -

Please send bug reports to michael@metaparadigm.com

- -

Anonymous CVS

-

# export CVSROOT=:pserver:anoncvs@cvs.metaparadigm.com:/cvsroot
-# cvs login
-Logging in to :pserver:anoncvs@cvs.metaparadigm.com:2401/cvsroot
-CVS password: <enter 'anoncvs'>
-# cvs co json-c

- -

Copyright Metaparadigm Pte. Ltd. 2004. Michael Clark

- -

This program is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public (LGPL) -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version.

- -
diff --git a/OpenSRF/src/libjson/arraylist.c b/OpenSRF/src/libjson/arraylist.c deleted file mode 100644 index 6b42046df3..0000000000 --- a/OpenSRF/src/libjson/arraylist.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#include -#include -#include - -#include "bits.h" -#include "arraylist.h" - - -struct array_list* -array_list_new(array_list_free_fn *free_fn) -{ - struct array_list *this; - - if(!(this = calloc(1, sizeof(struct array_list)))) return NULL; - this->size = ARRAY_LIST_DEFAULT_SIZE; - this->length = 0; - this->free_fn = free_fn; - if(!(this->array = calloc(sizeof(void*), this->size))) { - free(this); - return NULL; - } - return this; -} - -extern void -array_list_free(struct array_list *this) -{ - int i; - for(i = 0; i < this->length; i++) - if(this->array[i]) this->free_fn(this->array[i]); - free(this->array); - free(this); -} - -void* -array_list_get_idx(struct array_list *this, int i) -{ - if(i >= this->length) return NULL; - return this->array[i]; -} - -static int array_list_expand_internal(struct array_list *this, int max) -{ - void *t; - int new_size; - - if(max < this->size) return 0; - new_size = max(this->size << 1, max); - if(!(t = realloc(this->array, new_size*sizeof(void*)))) return -1; - this->array = t; - bzero(this->array + this->size, (new_size-this->size)*sizeof(void*)); - this->size = new_size; - return 0; -} - -int -array_list_put_idx(struct array_list *this, int idx, void *data) -{ - if(array_list_expand_internal(this, idx)) return -1; - if(this->array[idx]) this->free_fn(this->array[idx]); - this->array[idx] = data; - if(this->length <= idx) this->length = idx + 1; - return 0; -} - -int -array_list_add(struct array_list *this, void *data) -{ - return array_list_put_idx(this, this->length, data); -} - -int -array_list_length(struct array_list *this) -{ - return this->length; -} diff --git a/OpenSRF/src/libjson/arraylist.h b/OpenSRF/src/libjson/arraylist.h deleted file mode 100644 index b137e16a87..0000000000 --- a/OpenSRF/src/libjson/arraylist.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _arraylist_h_ -#define _arraylist_h_ - -#define ARRAY_LIST_DEFAULT_SIZE 32 - -typedef void (array_list_free_fn) (void *data); - -struct array_list -{ - void **array; - int length; - int size; - array_list_free_fn *free_fn; -}; - -extern struct array_list* -array_list_new(array_list_free_fn *free_fn); - -extern void -array_list_free(struct array_list *this); - -extern void* -array_list_get_idx(struct array_list *this, int i); - -extern int -array_list_put_idx(struct array_list *this, int i, void *data); - -extern int -array_list_add(struct array_list *this, void *data); - -extern int -array_list_length(struct array_list *this); - -#endif diff --git a/OpenSRF/src/libjson/bits.h b/OpenSRF/src/libjson/bits.h deleted file mode 100644 index b9d1b88d35..0000000000 --- a/OpenSRF/src/libjson/bits.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _bits_h_ -#define _bits_h_ - -#define min(x,y) ({ \ - typeof(x) _x = (x); \ - typeof(y) _y = (y); \ - (void) (&_x == &_y); \ - _x < _y ? _x : _y; }) - -#define max(x,y) ({ \ - typeof(x) _x = (x); \ - typeof(y) _y = (y); \ - (void) (&_x == &_y); \ - _x > _y ? _x : _y; }) - -#define hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9) -#define error_ptr(error) ((void*)error) -#define is_error(ptr) ((unsigned long)ptr > (unsigned long)-4000L) - -#endif diff --git a/OpenSRF/src/libjson/debug.c b/OpenSRF/src/libjson/debug.c deleted file mode 100644 index 62128570d9..0000000000 --- a/OpenSRF/src/libjson/debug.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "debug.h" - - -static int _syslog = 0; -static int _debug = 0; - -void mc_set_debug(int debug) { _debug = debug; } -int mc_get_debug() { return _debug; } - -extern void mc_set_syslog(int syslog) -{ - _syslog = syslog; -} - -void mc_abort(const char *msg, ...) -{ - va_list ap; - va_start(ap, msg); - if(_syslog) vsyslog(LOG_ERR, msg, ap); - else vprintf(msg, ap); - exit(1); -} - - -void mc_debug(const char *msg, ...) -{ - va_list ap; - if(_debug) { - va_start(ap, msg); - if(_syslog) vsyslog(LOG_DEBUG, msg, ap); - else vprintf(msg, ap); - } -} - -void mc_error(const char *msg, ...) -{ - va_list ap; - va_start(ap, msg); - if(_syslog) vsyslog(LOG_ERR, msg, ap); - else vfprintf(stderr, msg, ap); -} - -void mc_info(const char *msg, ...) -{ - va_list ap; - va_start(ap, msg); - if(_syslog) vsyslog(LOG_INFO, msg, ap); - else vfprintf(stderr, msg, ap); -} diff --git a/OpenSRF/src/libjson/debug.h b/OpenSRF/src/libjson/debug.h deleted file mode 100644 index 7d8d10b7fc..0000000000 --- a/OpenSRF/src/libjson/debug.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _DEBUG_H_ -#define _DEBUG_H_ - -#define errstr strerror(errno) - -extern void mc_set_debug(int debug); -extern int mc_get_debug(); - -extern void mc_set_syslog(int syslog); -extern void mc_abort(const char *msg, ...); -extern void mc_debug(const char *msg, ...); -extern void mc_error(const char *msg, ...); -extern void mc_info(const char *msg, ...); - -#endif diff --git a/OpenSRF/src/libjson/json.h b/OpenSRF/src/libjson/json.h deleted file mode 100644 index 34ce5e6ae8..0000000000 --- a/OpenSRF/src/libjson/json.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _json_h_ -#define _json_h_ - -#include "bits.h" -#include "debug.h" -#include "linkhash.h" -#include "arraylist.h" -#include "json_util.h" -#include "json_object.h" -#include "json_tokener.h" - -#endif diff --git a/OpenSRF/src/libjson/json_object.c b/OpenSRF/src/libjson/json_object.c deleted file mode 100644 index 0694fa41f7..0000000000 --- a/OpenSRF/src/libjson/json_object.c +++ /dev/null @@ -1,504 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#include -#include -#include - -#include "debug.h" -#include "printbuf.h" -#include "linkhash.h" -#include "arraylist.h" -#include "json_object.h" -#include "ossupport.h" -#include "json_object_private.h" - - -/* #define REFCOUNT_DEBUG */ - -char *json_number_chars = "0123456789.+-e"; -char *json_hex_chars = "0123456789abcdef"; - -#ifdef REFCOUNT_DEBUG -static char* json_type_name[] = { - "null", - "boolean", - "double", - "int", - "object", - "array", - "string", -}; -#endif - -static void json_object_generic_delete(struct json_object* this); -static struct json_object* json_object_new(enum json_type o_type); - - -/* ref count debugging */ - -#ifdef REFCOUNT_DEBUG - -static struct lh_table *json_object_table; - -static void json_object_init() __attribute__ ((constructor)); -static void json_object_init() { - mc_debug("json_object_init: creating object table\n"); - json_object_table = lh_kptr_table_new(128, "json_object_table", NULL); -} - -static void json_object_fini() __attribute__ ((destructor)); -static void json_object_fini() { - struct lh_entry *ent; - if(mc_get_debug() && json_object_table->count) { - mc_debug("json_object_fini: %d referenced objects at exit\n", - json_object_table->count); - lh_foreach(json_object_table, ent) { - struct json_object* obj = (struct json_object*)ent->v; - mc_debug("\t%s:%p\n", json_type_name[obj->o_type], obj); - } - } - mc_debug("json_object_fini: freeing object table\n"); - lh_table_free(json_object_table); -} -#endif - - -/* string escaping */ - -static int json_escape_str(struct printbuf *pb, char *str) -{ - int pos = 0, start_offset = 0; - char c; - do { - c = str[pos]; - switch(c) { - case '\b': - case '\n': - case '\r': - case '\t': - case '"': - - if(pos - start_offset > 0) - printbuf_memappend(pb, str + start_offset, pos - start_offset); - - if(c == '\b') printbuf_memappend(pb, "\\b", 2); - else if(c == '\n') printbuf_memappend(pb, "\\n", 2); - else if(c == '\r') printbuf_memappend(pb, "\\r", 2); - else if(c == '\t') printbuf_memappend(pb, "\\t", 2); - else if(c == '"') printbuf_memappend(pb, "\\\"", 2); - - start_offset = ++pos; - break; - - default: - if(c && c < ' ') { - if(pos - start_offset > 0) - printbuf_memappend(pb, str + start_offset, pos - start_offset); - - sprintbuf(pb, "\\u00%c%c", - json_hex_chars[c >> 4], json_hex_chars[c & 0xf]); - - start_offset = ++pos; - - } else if(c) pos++; - } - } while(c); - - if(pos - start_offset > 0) - printbuf_memappend(pb, str + start_offset, pos - start_offset); - - return 0; -} - - -/* reference counting */ - -extern struct json_object* json_object_get(struct json_object *this) -{ - if(this) { - this->_ref_count++; - } - return this; -} - -extern void json_object_put(struct json_object *this) -{ - if(this) { - this->_ref_count--; - if(!this->_ref_count) this->_delete(this); - } -} - - -/* generic object construction and destruction parts */ - -static void json_object_generic_delete(struct json_object* this) -{ -#ifdef REFCOUNT_DEBUG - mc_debug("json_object_delete_%s: %p\n", - json_type_name[this->o_type], this); - lh_table_delete(json_object_table, this); -#endif - printbuf_free(this->_pb); - free(this); -} - -static struct json_object* json_object_new(enum json_type o_type) -{ - struct json_object *this = calloc(sizeof(struct json_object), 1); - if(!this) return NULL; - this->o_type = o_type; - this->_ref_count = 1; - this->_delete = &json_object_generic_delete; -#ifdef REFCOUNT_DEBUG - lh_table_insert(json_object_table, this, this); - mc_debug("json_object_new_%s: %p\n", json_type_name[this->o_type], this); -#endif - return this; -} - - -/* type checking functions */ - -int json_object_is_type(struct json_object *this, enum json_type type) -{ - return (this->o_type == type); -} - -enum json_type json_object_get_type(struct json_object *this) -{ - return this->o_type; -} - - -/* json_object_to_json_string */ - -char* json_object_to_json_string(struct json_object *this) -{ - if(!this) return "null"; - if(!this->_pb) { - if(!(this->_pb = printbuf_new())) return NULL; - } else { - printbuf_reset(this->_pb); - } - if(this->_to_json_string(this, this->_pb) < 0) return NULL; - return this->_pb->buf; -} - - -/* json_object_object */ - -static int json_object_object_to_json_string(struct json_object* this, - struct printbuf *pb) -{ - int i=0; - sprintbuf(pb, "{"); - json_object_object_foreach(this, key, val) { - if(i) sprintbuf(pb, ","); - sprintbuf(pb, " \""); - json_escape_str(pb, key); - sprintbuf(pb, "\": "); - if(val == NULL) sprintbuf(pb, "null"); - else val->_to_json_string(val, pb); - i++; - } - return sprintbuf(pb, " }"); -} - -static void json_object_lh_entry_free(struct lh_entry *ent) -{ - free(ent->k); - json_object_put((struct json_object*)ent->v); -} - -static void json_object_object_delete(struct json_object* this) -{ - lh_table_free(this->o.c_object); - json_object_generic_delete(this); -} - -struct json_object* json_object_new_object() -{ - struct json_object *this = json_object_new(json_type_object); - if(!this) return NULL; - this->_delete = &json_object_object_delete; - this->_to_json_string = &json_object_object_to_json_string; - this->o.c_object = lh_kchar_table_new(JSON_OBJECT_DEF_HASH_ENTIRES, - NULL, &json_object_lh_entry_free); - return this; -} - -struct lh_table* json_object_get_object(struct json_object *this) -{ - if(!this) return NULL; - switch(this->o_type) { - case json_type_object: - return this->o.c_object; - default: - return NULL; - } -} - -void json_object_object_add(struct json_object* this, char *key, - struct json_object *val) -{ - lh_table_delete(this->o.c_object, key); - lh_table_insert(this->o.c_object, strdup(key), val); -} - -struct json_object* json_object_object_get(struct json_object* this, char *key) -{ - return (struct json_object*) lh_table_lookup(this->o.c_object, key); -} - -void json_object_object_del(struct json_object* this, char *key) -{ - lh_table_delete(this->o.c_object, key); -} - - -/* json_object_boolean */ - -static int json_object_boolean_to_json_string(struct json_object* this, - struct printbuf *pb) -{ - if(this->o.c_boolean) return sprintbuf(pb, "true"); - else return sprintbuf(pb, "false"); -} - -struct json_object* json_object_new_boolean(boolean b) -{ - struct json_object *this = json_object_new(json_type_boolean); - if(!this) return NULL; - this->_to_json_string = &json_object_boolean_to_json_string; - this->o.c_boolean = b; - return this; -} - -boolean json_object_get_boolean(struct json_object *this) -{ - if(!this) return FALSE; - switch(this->o_type) { - case json_type_boolean: - return this->o.c_boolean; - case json_type_int: - return (this->o.c_int != 0); - case json_type_double: - return (this->o.c_double != 0); - case json_type_string: - if(strlen(this->o.c_string)) return TRUE; - default: - return TRUE; - } -} - - -/* json_object_int */ - -static int json_object_int_to_json_string(struct json_object* this, - struct printbuf *pb) -{ - return sprintbuf(pb, "%d", this->o.c_int); -} - -struct json_object* json_object_new_int(int i) -{ - struct json_object *this = json_object_new(json_type_int); - if(!this) return NULL; - this->_to_json_string = &json_object_int_to_json_string; - this->o.c_int = i; - return this; -} - -int json_object_get_int(struct json_object *this) -{ - int cint; - - if(!this) return 0; - switch(this->o_type) { - case json_type_int: - return this->o.c_int; - case json_type_double: - return this->o.c_double; - case json_type_boolean: - return this->o.c_boolean; - case json_type_string: - if(sscanf(this->o.c_string, "%d", &cint) == 1) return cint; - default: - return 0; - } -} - - -/* json_object_double */ - -static int json_object_double_to_json_string(struct json_object* this, - struct printbuf *pb) -{ - return sprintbuf(pb, "%lf", this->o.c_double); -} - -struct json_object* json_object_new_double(double d) -{ - struct json_object *this = json_object_new(json_type_double); - if(!this) return NULL; - this->_to_json_string = &json_object_double_to_json_string; - this->o.c_double = d; - return this; -} - -double json_object_get_double(struct json_object *this) -{ - double cdouble; - - if(!this) return 0.0; - switch(this->o_type) { - case json_type_double: - return this->o.c_double; - case json_type_int: - return this->o.c_int; - case json_type_boolean: - return this->o.c_boolean; - case json_type_string: - if(sscanf(this->o.c_string, "%lf", &cdouble) == 1) return cdouble; - default: - return 0.0; - } -} - - -/* json_object_string */ - -static int json_object_string_to_json_string(struct json_object* this, - struct printbuf *pb) -{ - sprintbuf(pb, "\""); - json_escape_str(pb, this->o.c_string); - sprintbuf(pb, "\""); - return 0; -} - -static void json_object_string_delete(struct json_object* this) -{ - free(this->o.c_string); - json_object_generic_delete(this); -} - -struct json_object* json_object_new_string(char *s) -{ - struct json_object *this = json_object_new(json_type_string); - if(!this) return NULL; - this->_delete = &json_object_string_delete; - this->_to_json_string = &json_object_string_to_json_string; - this->o.c_string = strdup(s); - return this; -} - -struct json_object* json_object_new_string_len(char *s, int len) -{ - struct json_object *this = json_object_new(json_type_string); - if(!this) return NULL; - this->_delete = &json_object_string_delete; - this->_to_json_string = &json_object_string_to_json_string; - this->o.c_string = strndup(s, len); - return this; -} - -char* json_object_get_string(struct json_object *this) -{ - if(!this) return NULL; - switch(this->o_type) { - case json_type_string: - return this->o.c_string; - default: - return json_object_to_json_string(this); - } -} - - -/* json_object_array */ - -static int json_object_array_to_json_string(struct json_object* this, - struct printbuf *pb) -{ - sprintbuf(pb, "["); - for(int i=0; i < json_object_array_length(this); i++) { - if(i) sprintbuf(pb, ", "); - else sprintbuf(pb, " "); - struct json_object *val = json_object_array_get_idx(this, i); - if(val == NULL) sprintbuf(pb, "null"); - else val->_to_json_string(val, pb); - } - return sprintbuf(pb, " ]"); -} - -static void json_object_array_entry_free(void *data) -{ - json_object_put((struct json_object*)data); -} - -static void json_object_array_delete(struct json_object* this) -{ - array_list_free(this->o.c_array); - json_object_generic_delete(this); -} - -struct json_object* json_object_new_array() -{ - struct json_object *this = json_object_new(json_type_array); - if(!this) return NULL; - this->_delete = &json_object_array_delete; - this->_to_json_string = &json_object_array_to_json_string; - this->o.c_array = array_list_new(&json_object_array_entry_free); - return this; -} - -struct array_list* json_object_get_array(struct json_object *this) -{ - if(!this) return NULL; - switch(this->o_type) { - case json_type_array: - return this->o.c_array; - default: - return NULL; - } -} - -int json_object_array_length(struct json_object *this) -{ - return array_list_length(this->o.c_array); -} - -int json_object_array_add(struct json_object *this,struct json_object *val) -{ - return array_list_add(this->o.c_array, val); -} - -int json_object_array_put_idx(struct json_object *this, int idx, - struct json_object *val) -{ - return array_list_put_idx(this->o.c_array, idx, val); -} - -struct json_object* json_object_array_get_idx(struct json_object *this, - int idx) -{ - return (struct json_object*)array_list_get_idx(this->o.c_array, idx); -} - diff --git a/OpenSRF/src/libjson/json_object.h b/OpenSRF/src/libjson/json_object.h deleted file mode 100644 index a4e4ff39df..0000000000 --- a/OpenSRF/src/libjson/json_object.h +++ /dev/null @@ -1,301 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _json_object_h_ -#define _json_object_h_ - -#define JSON_OBJECT_DEF_HASH_ENTIRES 16 - -#undef FALSE -#define FALSE ((boolean)0) - -#undef TRUE -#define TRUE ((boolean)1) - -extern char *json_number_chars; -extern char *json_hex_chars; - -/* forward structure definitions */ - -typedef int boolean; -struct printbuf; -struct lh_table; -struct array_list; -struct json_object; -typedef struct json_object json; - -/* supported object types */ - -enum json_type { - json_type_null, - json_type_boolean, - json_type_double, - json_type_int, - json_type_object, - json_type_array, - json_type_string, -}; - -/* reference counting functions */ - -/** - * Increment the reference count of json_object - * @param this the json_object instance - */ -extern struct json_object* json_object_get(struct json_object *this); - -/** - * Decrement the reference count of json_object and free if it reaches zero - * @param this the json_object instance - */ -extern void json_object_put(struct json_object *this); - - -/** - * Check if the json_object is of a given type - * @param this the json_object instance - * @param type one of: - json_type_boolean, - json_type_double, - json_type_int, - json_type_object, - json_type_array, - json_type_string, - */ -extern int json_object_is_type(struct json_object *this, enum json_type type); - -/** - * Get the type of the json_object - * @param this the json_object instance - * @returns type being one of: - json_type_boolean, - json_type_double, - json_type_int, - json_type_object, - json_type_array, - json_type_string, - */ -extern enum json_type json_object_get_type(struct json_object *this); - - -/** Stringify object to json format - * @param this the json_object instance - * @returns a string in JSON format - */ -extern char* json_object_to_json_string(struct json_object *this); - - -/* object type methods */ - -/** Create a new empty object - * @returns a json_object of type json_type_object - */ -extern struct json_object* json_object_new_object(); - -/** Get the hashtable of a json_object of type json_type_object - * @param this the json_object instance - * @returns a linkhash - */ -extern struct lh_table* json_object_get_object(struct json_object *this); - -/** Add an object field to a json_object of type json_type_object - * - * The reference count will *not* be incremented. This is to make adding - * fields to objects in code more compact. If you want to retain a reference - * to an added object you must wrap the passed object with json_object_get - * - * @param this the json_object instance - * @param key the object field name (a private copy will be duplicated) - * @param val a json_object or NULL member to associate with the given field - */ -extern void json_object_object_add(struct json_object* this, char *key, - struct json_object *val); - -/** Get the json_object associate with a given object field - * @param this the json_object instance - * @param key the object field name - * @returns the json_object associated with the given field name - */ -extern struct json_object* json_object_object_get(struct json_object* this, - char *key); - -/** Delete the given json_object field - * - * The reference count will be decremented for the deleted object - * - * @param this the json_object instance - * @param key the object field name - */ -extern void json_object_object_del(struct json_object* this, char *key); - -/** Iterate through all keys and values of an object - * @param this the json_object instance - * @param key the local name for the char* key variable defined in the body - * @param val the local name for the json_object* object variable defined in the body - */ -#define json_object_object_foreach(obj,key,val) \ -char *key; struct json_object *val; \ -for(struct lh_entry *entry = json_object_get_object(obj)->head; ({ if(entry) { key = (char*)entry->k; val = (struct json_object*)entry->v; } ; entry; }); entry = entry->next ) - - -/* Array type methods */ - -/** Create a new empty json_object of type json_type_array - * @returns a json_object of type json_type_array - */ -extern struct json_object* json_object_new_array(); - -/** Get the arraylist of a json_object of type json_type_array - * @param this the json_object instance - * @returns an arraylist - */ -extern struct array_list* json_object_get_array(struct json_object *this); - -/** Get the length of a json_object of type json_type_array - * @param this the json_object instance - * @returns an int - */ -extern int json_object_array_length(struct json_object *this); - -/** Add an element to the end of a json_object of type json_type_array - * - * The reference count will *not* be incremented. This is to make adding - * fields to objects in code more compact. If you want to retain a reference - * to an added object you must wrap the passed object with json_object_get - * - * @param this the json_object instance - * @param val the json_object to be added - */ -extern int json_object_array_add(struct json_object *this, - struct json_object *val); - -/** Insert or replace an element at a specified index in an array (a json_object of type json_type_array) - * - * The reference count will *not* be incremented. This is to make adding - * fields to objects in code more compact. If you want to retain a reference - * to an added object you must wrap the passed object with json_object_get - * - * The reference count of a replaced object will be decremented. - * - * The array size will be automatically be expanded to the size of the - * index if the index is larger than the current size. - * - * @param this the json_object instance - * @param idx the index to insert the element at - * @param val the json_object to be added - */ -extern int json_object_array_put_idx(struct json_object *this, int idx, - struct json_object *val); - -/** Get the element at specificed index of the array (a json_object of type json_type_array) - * @param this the json_object instance - * @param idx the index to get the element at - * @returns the json_object at the specified index (or NULL) - */ -extern struct json_object* json_object_array_get_idx(struct json_object *this, - int idx); - -/* boolean type methods */ - -/** Create a new empty json_object of type json_type_boolean - * @param b a boolean TRUE or FALSE (0 or 1) - * @returns a json_object of type json_type_boolean - */ -extern struct json_object* json_object_new_boolean(boolean b); - -/** Get the boolean value of a json_object - * - * The type is coerced to a boolean if the passed object is not a boolean. - * integer and double objects will return FALSE if there value is zero - * or TRUE otherwise. If the passed object is a string it will return - * TRUE if it has a non zero length. If any other object type is passed - * TRUE will be returned if the object is not NULL. - * - * @param this the json_object instance - * @returns a boolean - */ -extern boolean json_object_get_boolean(struct json_object *this); - - -/* int type methods */ - -/** Create a new empty json_object of type json_type_int - * @param i the integer - * @returns a json_object of type json_type_int - */ -extern struct json_object* json_object_new_int(int i); - -/** Get the int value of a json_object - * - * The type is coerced to a int if the passed object is not a int. - * double objects will return their integer conversion. Strings will be - * parsed as an integer. If no conversion exists then 0 is returned. - * - * @param this the json_object instance - * @returns an int - */ -extern int json_object_get_int(struct json_object *this); - - -/* double type methods */ - -/** Create a new empty json_object of type json_type_double - * @param d the double - * @returns a json_object of type json_type_double - */ -extern struct json_object* json_object_new_double(double d); - -/** Get the double value of a json_object - * - * The type is coerced to a double if the passed object is not a double. - * integer objects will return their dboule conversion. Strings will be - * parsed as a double. If no conversion exists then 0.0 is returned. - * - * @param this the json_object instance - * @returns an double - */ -extern double json_object_get_double(struct json_object *this); - - -/* string type methods */ - -/** Create a new empty json_object of type json_type_string - * - * A copy of the string is made and the memory is managed by the json_object - * - * @param s the string - * @returns a json_object of type json_type_string - */ -extern struct json_object* json_object_new_string(char *s); - -extern struct json_object* json_object_new_string_len(char *s, int len); - -/** Get the string value of a json_object - * - * If the passed object is not of type json_type_string then the JSON - * representation of the object is returned. - * - * The returned string memory is managed by the json_object and will - * be freed when the reference count of the json_object drops to zero. - * - * @param this the json_object instance - * @returns a string - */ -extern char* json_object_get_string(struct json_object *this); - -#endif diff --git a/OpenSRF/src/libjson/json_object_private.h b/OpenSRF/src/libjson/json_object_private.h deleted file mode 100644 index 91ce99c7ef..0000000000 --- a/OpenSRF/src/libjson/json_object_private.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _json_object_private_h_ -#define _json_object_private_h_ - -typedef void (json_object_delete_fn)(struct json_object *o); -typedef int (json_object_to_json_string_fn)(struct json_object *o, - struct printbuf *pb); - -struct json_object -{ - enum json_type o_type; - json_object_delete_fn *_delete; - json_object_to_json_string_fn *_to_json_string; - int _ref_count; - struct printbuf *_pb; - union data { - boolean c_boolean; - double c_double; - int c_int; - struct lh_table *c_object; - struct array_list *c_array; - char *c_string; - } o; -}; - -#endif diff --git a/OpenSRF/src/libjson/json_tokener.c b/OpenSRF/src/libjson/json_tokener.c deleted file mode 100644 index 277c88f291..0000000000 --- a/OpenSRF/src/libjson/json_tokener.c +++ /dev/null @@ -1,434 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#include -#include -#include -#include - -#include "json_tokener.h" -#include "bits.h" -#include "debug.h" -#include "printbuf.h" -#include "linkhash.h" -#include "arraylist.h" -#include "json_object.h" -#include "ossupport.h" -#include "json_object_private.h" - - - -static struct json_object* json_tokener_do_parse(struct json_tokener *this); - -struct json_object* json_tokener_parse(char * s) -{ - struct json_tokener tok; - struct json_object* obj; - - tok.source = s; - tok.pos = 0; - tok.pb = printbuf_new(); - obj = json_tokener_do_parse(&tok); - printbuf_free(tok.pb); - return obj; -} - -static struct json_object* json_tokener_do_parse(struct json_tokener *this) -{ - enum json_tokener_state state, saved_state; - enum json_tokener_error err = json_tokener_success; - struct json_object *current = NULL, *obj; - char *obj_field_name = NULL; - char quote_char; - int deemed_double, start_offset; - - state = json_tokener_state_eatws; - saved_state = json_tokener_state_start; - - char c; - do { - c = this->source[this->pos]; - switch(state) { - - case json_tokener_state_eatws: - if(isspace(c)) { - this->pos++; - } else if(c == '/') { - state = json_tokener_state_comment_start; - start_offset = this->pos++; - } else { - state = saved_state; - } - break; - - case json_tokener_state_start: - switch(c) { - case '{': - state = json_tokener_state_eatws; - saved_state = json_tokener_state_object; - current = json_object_new_object(); - this->pos++; - break; - case '[': - state = json_tokener_state_eatws; - saved_state = json_tokener_state_array; - current = json_object_new_array(); - this->pos++; - break; - case 'N': - case 'n': - state = json_tokener_state_null; - start_offset = this->pos++; - break; - case '"': - case '\'': - quote_char = c; - printbuf_reset(this->pb); - state = json_tokener_state_string; - start_offset = ++this->pos; - break; - case 'T': - case 't': - case 'F': - case 'f': - state = json_tokener_state_boolean; - start_offset = this->pos++; - break; - case '0' ... '9': - case '-': - deemed_double = 0; - state = json_tokener_state_number; - start_offset = this->pos++; - break; - default: - err = json_tokener_error_parse_unexpected; - goto out; - } - break; - - case json_tokener_state_finish: - goto out; - - case json_tokener_state_null: - if(strncasecmp("null", this->source + start_offset, - this->pos - start_offset)) - return error_ptr(-json_tokener_error_parse_null); - if(this->pos - start_offset == 4) { - current = NULL; - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else { - this->pos++; - } - break; - - case json_tokener_state_comment_start: - if(c == '*') { - state = json_tokener_state_comment; - } else if(c == '/') { - state = json_tokener_state_comment_eol; - } else { - err = json_tokener_error_parse_comment; - goto out; - } - this->pos++; - break; - - case json_tokener_state_comment: - if(c == '*') state = json_tokener_state_comment_end; - this->pos++; - break; - - case json_tokener_state_comment_eol: - if(c == '\n') { - if(mc_get_debug()) { - char *tmp = strndup(this->source + start_offset, - this->pos - start_offset); - mc_debug("json_tokener_comment: %s\n", tmp); - free(tmp); - } - state = json_tokener_state_eatws; - } - this->pos++; - break; - - case json_tokener_state_comment_end: - if(c == '/') { - if(mc_get_debug()) { - char *tmp = strndup(this->source + start_offset, - this->pos - start_offset + 1); - mc_debug("json_tokener_comment: %s\n", tmp); - free(tmp); - } - state = json_tokener_state_eatws; - } else { - state = json_tokener_state_comment; - } - this->pos++; - break; - - case json_tokener_state_string: - if(c == quote_char) { - printbuf_memappend(this->pb, this->source + start_offset, - this->pos - start_offset); - current = json_object_new_string(this->pb->buf); - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else if(c == '\\') { - saved_state = json_tokener_state_string; - state = json_tokener_state_string_escape; - } - this->pos++; - break; - - case json_tokener_state_string_escape: - switch(c) { - case '"': - case '\\': - case '/': - printbuf_memappend(this->pb, this->source + start_offset, - this->pos - start_offset - 1); - start_offset = this->pos++; - state = saved_state; - break; - case 'b': - case 'n': - case 'r': - case 't': - printbuf_memappend(this->pb, this->source + start_offset, - this->pos - start_offset - 1); - if(c == 'b') printbuf_memappend(this->pb, "\b", 1); - else if(c == 'n') printbuf_memappend(this->pb, "\n", 1); - else if(c == 'r') printbuf_memappend(this->pb, "\r", 1); - else if(c == 't') printbuf_memappend(this->pb, "\t", 1); - start_offset = ++this->pos; - state = saved_state; - break; - case 'u': - printbuf_memappend(this->pb, this->source + start_offset, - this->pos - start_offset - 1); - start_offset = ++this->pos; - state = json_tokener_state_escape_unicode; - break; - default: - err = json_tokener_error_parse_string; - goto out; - } - break; - - case json_tokener_state_escape_unicode: - - if(strchr(json_hex_chars, c)) { - this->pos++; - - if(this->pos - start_offset == 4) { - unsigned char utf_out[3]; - unsigned int ucs_char = - (hexdigit(*(this->source + start_offset)) << 12) + - (hexdigit(*(this->source + start_offset + 1)) << 8) + - (hexdigit(*(this->source + start_offset + 2)) << 4) + - hexdigit(*(this->source + start_offset + 3)); - - if (ucs_char < 0x80) { - utf_out[0] = ucs_char; - printbuf_memappend(this->pb, utf_out, 1); - } else if (ucs_char < 0x800) { - utf_out[0] = 0xc0 | (ucs_char >> 6); - utf_out[1] = 0x80 | (ucs_char & 0x3f); - printbuf_memappend(this->pb, utf_out, 2); - } else { - utf_out[0] = 0xe0 | (ucs_char >> 12); - utf_out[1] = 0x80 | ((ucs_char >> 6) & 0x3f); - utf_out[2] = 0x80 | (ucs_char & 0x3f); - printbuf_memappend(this->pb, utf_out, 3); - } - start_offset = this->pos; - state = saved_state; - } - } else { - err = json_tokener_error_parse_string; - goto out; - } - break; - - case json_tokener_state_boolean: - if(strncasecmp("true", this->source + start_offset, - this->pos - start_offset) == 0) { - if(this->pos - start_offset == 4) { - current = json_object_new_boolean(1); - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else { - this->pos++; - } - } else if(strncasecmp("false", this->source + start_offset, - this->pos - start_offset) == 0) { - if(this->pos - start_offset == 5) { - current = json_object_new_boolean(0); - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else { - this->pos++; - } - } else { - err = json_tokener_error_parse_boolean; - goto out; - } - break; - - case json_tokener_state_number: - if(!c || !strchr(json_number_chars, c)) { - int numi; - double numd; - char *tmp = strndup(this->source + start_offset, - this->pos - start_offset); - if(!deemed_double && sscanf(tmp, "%d", &numi) == 1) { - current = json_object_new_int(numi); - } else if(deemed_double && sscanf(tmp, "%lf", &numd) == 1) { - current = json_object_new_double(numd); - } else { - free(tmp); - err = json_tokener_error_parse_number; - goto out; - } - free(tmp); - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else { - if(c == '.' || c == 'e') deemed_double = 1; - this->pos++; - } - break; - - case json_tokener_state_array: - if(c == ']') { - this->pos++; - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else { - obj = json_tokener_do_parse(this); - if(is_error(obj)) { - err = (enum json_tokener_error)obj; - goto out; - } - json_object_array_add(current, obj); - saved_state = json_tokener_state_array_sep; - state = json_tokener_state_eatws; - } - break; - - case json_tokener_state_array_sep: - if(c == ']') { - this->pos++; - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else if(c == ',') { - this->pos++; - saved_state = json_tokener_state_array; - state = json_tokener_state_eatws; - } else { - json_object_put(current); - return error_ptr(-json_tokener_error_parse_array); - } - break; - - case json_tokener_state_object: - state = json_tokener_state_object_field_start; - start_offset = this->pos; - break; - - case json_tokener_state_object_field_start: - if(c == '}') { - this->pos++; - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else if (c == '"' || c == '\'') { - quote_char = c; - printbuf_reset(this->pb); - state = json_tokener_state_object_field; - start_offset = ++this->pos; - } - break; - - case json_tokener_state_object_field: - if(c == quote_char) { - printbuf_memappend(this->pb, this->source + start_offset, - this->pos - start_offset); - obj_field_name = strdup(this->pb->buf); - saved_state = json_tokener_state_object_field_end; - state = json_tokener_state_eatws; - } else if(c == '\\') { - saved_state = json_tokener_state_object_field; - state = json_tokener_state_string_escape; - } - this->pos++; - break; - - case json_tokener_state_object_field_end: - if(c == ':') { - this->pos++; - saved_state = json_tokener_state_object_value; - state = json_tokener_state_eatws; - } else { - return error_ptr(-json_tokener_error_parse_object); - } - break; - - case json_tokener_state_object_value: - obj = json_tokener_do_parse(this); - if(is_error(obj)) { - err = (enum json_tokener_error)obj; - goto out; - } - json_object_object_add(current, obj_field_name, obj); - free(obj_field_name); - obj_field_name = NULL; - saved_state = json_tokener_state_object_sep; - state = json_tokener_state_eatws; - break; - - case json_tokener_state_object_sep: - if(c == '}') { - this->pos++; - saved_state = json_tokener_state_finish; - state = json_tokener_state_eatws; - } else if(c == ',') { - this->pos++; - saved_state = json_tokener_state_object; - state = json_tokener_state_eatws; - } else { - err = json_tokener_error_parse_object; - goto out; - } - break; - - } - } while(c); - - if(state != json_tokener_state_finish && - saved_state != json_tokener_state_finish) - err = json_tokener_error_parse_eof; - - out: - free(obj_field_name); - if(err == json_tokener_success) return current; - mc_debug("json_tokener_do_parse: error=%d state=%d char=%c\n", - err, state, c); - json_object_put(current); - return error_ptr(-err); -} diff --git a/OpenSRF/src/libjson/json_tokener.h b/OpenSRF/src/libjson/json_tokener.h deleted file mode 100644 index 7bfa35657c..0000000000 --- a/OpenSRF/src/libjson/json_tokener.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _json_tokener_h_ -#define _json_tokener_h_ - -#include "json_object.h" - -enum json_tokener_error { - json_tokener_success, - json_tokener_error_parse_unexpected, - json_tokener_error_parse_null, - json_tokener_error_parse_boolean, - json_tokener_error_parse_number, - json_tokener_error_parse_array, - json_tokener_error_parse_object, - json_tokener_error_parse_string, - json_tokener_error_parse_comment, - json_tokener_error_parse_eof, -}; - -enum json_tokener_state { - json_tokener_state_eatws, - json_tokener_state_start, - json_tokener_state_finish, - json_tokener_state_null, - json_tokener_state_comment_start, - json_tokener_state_comment, - json_tokener_state_comment_eol, - json_tokener_state_comment_end, - json_tokener_state_string, - json_tokener_state_string_escape, - json_tokener_state_escape_unicode, - json_tokener_state_boolean, - json_tokener_state_number, - json_tokener_state_array, - json_tokener_state_array_sep, - json_tokener_state_object, - json_tokener_state_object_field_start, - json_tokener_state_object_field, - json_tokener_state_object_field_end, - json_tokener_state_object_value, - json_tokener_state_object_sep, -}; - -struct json_tokener -{ - char *source; - int pos; - struct printbuf *pb; -}; - -extern struct json_object* json_tokener_parse(char *s); - -#endif diff --git a/OpenSRF/src/libjson/json_util.c b/OpenSRF/src/libjson/json_util.c deleted file mode 100644 index f014b7a35c..0000000000 --- a/OpenSRF/src/libjson/json_util.c +++ /dev/null @@ -1,84 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#include "json_util.h" -#include "json_tokener.h" -#include "bits.h" -#include "debug.h" -#include "printbuf.h" -#include "linkhash.h" -#include "arraylist.h" -#include "json_object.h" -#include "ossupport.h" -#include "json_object_private.h" - - - -struct json_object* json_object_from_file(char *filename) -{ - struct printbuf *pb; - struct json_object *obj; - char buf[JSON_FILE_BUF_SIZE]; - int fd, ret; - - if((fd = open(filename, O_RDONLY)) < 0) { - mc_error("json_object_from_file: error reading file %s: %s\n", - filename, strerror(errno)); - return error_ptr(-1); - } - if(!(pb = printbuf_new())) { - mc_error("json_object_from_file: printbuf_new failed\n"); - return error_ptr(-1); - } - while((ret = read(fd, buf, JSON_FILE_BUF_SIZE)) > 0) { - printbuf_memappend(pb, buf, ret); - } - close(fd); - if(ret < 0) { - mc_abort("json_object_from_file: error reading file %s: %s\n", - filename, strerror(errno)); - printbuf_free(pb); - return error_ptr(-1); - } - obj = json_tokener_parse(pb->buf); - printbuf_free(pb); - return obj; -} - -int json_object_to_file(char *filename, struct json_object *obj) -{ - char *json_str; - int fd, ret, wpos, wsize; - - if(!obj) { - mc_error("json_object_to_file: object is null\n"); - return -1; - } - - if((fd = open(filename, O_WRONLY | O_TRUNC | O_CREAT, 0644)) < 0) { - mc_error("json_object_to_file: error opening file %s: %s\n", - filename, strerror(errno)); - return -1; - } - if(!(json_str = json_object_to_json_string(obj))) return -1; - wsize = strlen(json_str); - wpos = 0; - while(wpos < wsize) { - if((ret = write(fd, json_str + wpos, wsize-wpos)) < 0) { - close(fd); - mc_error("json_object_to_file: error writing file %s: %s\n", - filename, strerror(errno)); - return -1; - } - wpos += ret; - } - - close(fd); - return 0; -} diff --git a/OpenSRF/src/libjson/json_util.h b/OpenSRF/src/libjson/json_util.h deleted file mode 100644 index 32a0428376..0000000000 --- a/OpenSRF/src/libjson/json_util.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _json_util_h_ -#define _json_util_h_ - -#include "json_object.h" - - -#define JSON_FILE_BUF_SIZE 4096 - -/* utlitiy functions */ -extern struct json_object* json_object_from_file(char *filename); -extern int json_object_to_file(char *filename, struct json_object *obj); - -#endif diff --git a/OpenSRF/src/libjson/linkhash.c b/OpenSRF/src/libjson/linkhash.c deleted file mode 100644 index 64f15a06d9..0000000000 --- a/OpenSRF/src/libjson/linkhash.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#include -#include -#include -#include - -#include "linkhash.h" - - -void lh_abort(const char *msg, ...) -{ - va_list ap; - va_start(ap, msg); - vprintf(msg, ap); - exit(1); -} - - -unsigned long lh_ptr_hash(void *k) -{ - return ((long)k * LH_PRIME) >> 4; -} - - -int lh_ptr_equal(void *k1, void *k2) -{ - return (k1 == k2); -} - - -unsigned long lh_char_hash(void *k) -{ - unsigned int h = 0; - const char* data = k; - - while( *data!=0 ) h = h*129 + (unsigned int)(*data++) + LH_PRIME; - - return h; -} - - -int lh_char_equal(void *k1, void *k2) -{ - return (strcmp((char*)k1, (char*)k2) == 0); -} - - -struct lh_table* lh_table_new(int size, char *name, - lh_entry_free_fn *free_fn, - lh_hash_fn *hash_fn, - lh_equal_fn *equal_fn) -{ - int i; - struct lh_table *t; - - t = calloc(1, sizeof(struct lh_table)); - if(!t) lh_abort("lh_table_new: calloc failed\n"); - t->count = 0; - t->size = size; - t->name = name; - t->table = calloc(size, sizeof(struct lh_entry)); - if(!t->table) lh_abort("lh_table_new: calloc failed\n"); - t->free_fn = free_fn; - t->hash_fn = hash_fn; - t->equal_fn = equal_fn; - for(i = 0; i < size; i++) t->table[i].k = LH_EMPTY; - return t; -} - - -struct lh_table* lh_kchar_table_new(int size, char *name, - lh_entry_free_fn *free_fn) -{ - return lh_table_new(size, name, free_fn, lh_char_hash, lh_char_equal); -} - - -struct lh_table* lh_kptr_table_new(int size, char *name, - lh_entry_free_fn *free_fn) -{ - return lh_table_new(size, name, free_fn, lh_ptr_hash, lh_ptr_equal); -} - - -void lh_table_resize(struct lh_table *t, int new_size) -{ - struct lh_table *new_t; - struct lh_entry *ent; - - new_t = lh_table_new(new_size, t->name, NULL, t->hash_fn, t->equal_fn); - ent = t->head; - while(ent) { - lh_table_insert(new_t, ent->k, ent->v); - ent = ent->next; - } - free(t->table); - t->table = new_t->table; - t->size = new_size; - t->head = new_t->head; - t->tail = new_t->tail; - t->resizes++; - free(new_t); -} - - -void lh_table_free(struct lh_table *t) -{ - struct lh_entry *c; - for(c = t->head; c != NULL; c = c->next) { - if(t->free_fn) { - t->free_fn(c); - } - } - free(t->table); - free(t); -} - - -int lh_table_insert(struct lh_table *t, void *k, void *v) -{ - unsigned long h, n; - - t->inserts++; - if(t->count > t->size * 0.66) lh_table_resize(t, t->size * 2); - - h = t->hash_fn(k); - n = h % t->size; - - while( 1 ) { - if(t->table[n].k == LH_EMPTY || t->table[n].k == LH_FREED) break; - t->collisions++; - if(++n == t->size) n = 0; - } - - t->table[n].k = k; - t->table[n].v = v; - t->count++; - - if(t->head == NULL) { - t->head = t->tail = &t->table[n]; - t->table[n].next = t->table[n].prev = NULL; - } else { - t->tail->next = &t->table[n]; - t->table[n].prev = t->tail; - t->table[n].next = NULL; - t->tail = &t->table[n]; - } - - return 0; -} - - -struct lh_entry* lh_table_lookup_entry(struct lh_table *t, void *k) -{ - unsigned long h = t->hash_fn(k); - unsigned long n = h % t->size; - - t->lookups++; - while( 1 ) { - if(t->table[n].k == LH_EMPTY) return NULL; - if(t->table[n].k != LH_FREED && - t->equal_fn(t->table[n].k, k)) return &t->table[n]; - if(++n == t->size) n = 0; - } - return NULL; -} - - -void* lh_table_lookup(struct lh_table *t, void *k) -{ - struct lh_entry *e = lh_table_lookup_entry(t, k); - if(e) return e->v; - return NULL; -} - - -int lh_table_delete_entry(struct lh_table *t, struct lh_entry *e) -{ - int n = e - t->table; - if(t->table[n].k == LH_EMPTY || t->table[n].k == LH_FREED) return -1; - t->count--; - if(t->free_fn) t->free_fn(e); - t->table[n].v = NULL; - t->table[n].k = LH_FREED; - if(t->tail == &t->table[n] && t->head == &t->table[n]) { - t->head = t->tail = NULL; - } else if (t->head == &t->table[n]) { - t->head->next->prev = NULL; - t->head = t->head->next; - } else if (t->tail == &t->table[n]) { - t->tail->prev->next = NULL; - t->tail = t->tail->prev; - } else { - t->table[n].prev->next = t->table[n].next; - t->table[n].next->prev = t->table[n].prev; - } - t->table[n].next = t->table[n].prev = NULL; - return 0; -} - - -int lh_table_delete(struct lh_table *t, void *k) -{ - struct lh_entry *e = lh_table_lookup_entry(t, k); - if(!e) return -1; - return lh_table_delete_entry(t, e); -} - diff --git a/OpenSRF/src/libjson/linkhash.h b/OpenSRF/src/libjson/linkhash.h deleted file mode 100644 index 3439894c50..0000000000 --- a/OpenSRF/src/libjson/linkhash.h +++ /dev/null @@ -1,270 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _linkhash_h_ -#define _linkhash_h_ - -/** - * golden prime used in hash functions - */ -#define LH_PRIME 0x9e370001UL - -/** - * sentinel pointer value for empty slots - */ -#define LH_EMPTY (void*)-1 - -/** - * sentinel pointer value for freed slots - */ -#define LH_FREED (void*)-2 - - -struct lh_entry; - - -/** - * callback function prototypes - */ -typedef void (lh_entry_free_fn) (struct lh_entry *e); -/** - * callback function prototypes - */ -typedef unsigned long (lh_hash_fn) (void *k); -/** - * callback function prototypes - */ -typedef int (lh_equal_fn) (void *k1, void *k2); - -/** - * An entry in the hash table - */ -struct lh_entry { - /** - * The key. - */ - void *k; - /** - * The value. - */ - void *v; - /** - * The next entry - */ - struct lh_entry *next; - /** - * The previous entry. - */ - struct lh_entry *prev; -}; - - -/** - * The hash table structure. - */ -struct lh_table { - /** - * Size of our hash. - */ - int size; - /** - * Numbers of entries. - */ - int count; - - /** - * Number of collisions. - */ - int collisions; - - /** - * Number of resizes. - */ - int resizes; - - /** - * Number of lookups. - */ - int lookups; - - /** - * Number of inserts. - */ - int inserts; - - /** - * Number of deletes. - */ - int deletes; - - /** - * Name of the hash table. - */ - char *name; - - /** - * The first entry. - */ - struct lh_entry *head; - - /** - * The last entry. - */ - struct lh_entry *tail; - - struct lh_entry *table; - - /** - * A pointer onto the function responsible for freeing an entry. - */ - lh_entry_free_fn *free_fn; - lh_hash_fn *hash_fn; - lh_equal_fn *equal_fn; -}; - - -/** - * Pre-defined hash and equality functions - */ -extern unsigned long lh_ptr_hash(void *k); -extern int lh_ptr_equal(void *k1, void *k2); - -extern unsigned long lh_char_hash(void *k); -extern int lh_char_equal(void *k1, void *k2); - - -/** - * Convenience list iterator. - */ -#define lh_foreach(table, entry) \ -for(entry = table->head; entry; entry = entry->next) - -/** - * lh_foreach_safe allows calling of deletion routine while iterating. - */ -#define lh_foreach_safe(table, entry, tmp) \ -for(entry = table->head; entry && ((tmp = entry->next) || 1); entry = tmp) - - - -/** - * Create a new linkhash table. - * @param size initial table size. The table is automatically resized - * although this incurs a performance penalty. - * @param name the table name. - * @param free_fn callback function used to free memory for entries - * when lh_table_free or lh_table_delete is called. - * If NULL is provided, then memory for keys and values - * must be freed by the caller. - * @param hash_fn function used to hash keys. 2 standard ones are defined: - * lh_ptr_hash and lh_char_hash for hashing pointer values - * and C strings respectively. - * @param equal_fn comparison function to compare keys. 2 standard ones defined: - * lh_ptr_hash and lh_char_hash for comparing pointer values - * and C strings respectively. - * @return a pointer onto the linkhash table. - */ -extern struct lh_table* lh_table_new(int size, char *name, - lh_entry_free_fn *free_fn, - lh_hash_fn *hash_fn, - lh_equal_fn *equal_fn); - -/** - * Convenience function to create a new linkhash - * table with char keys. - * @param size initial table size. - * @param name table name. - * @param free_fn callback function used to free memory for entries. - * @return a pointer onto the linkhash table. - */ -extern struct lh_table* lh_kchar_table_new(int size, char *name, - lh_entry_free_fn *free_fn); - - -/** - * Convenience function to create a new linkhash - * table with ptr keys. - * @param size initial table size. - * @param name table name. - * @param free_fn callback function used to free memory for entries. - * @return a pointer onto the linkhash table. - */ -extern struct lh_table* lh_kptr_table_new(int size, char *name, - lh_entry_free_fn *free_fn); - - -/** - * Free a linkhash table. - * If a callback free function is provided then it is called for all - * entries in the table. - * @param t table to free. - */ -extern void lh_table_free(struct lh_table *t); - - -/** - * Insert a record into the table. - * @param t the table to insert into. - * @param k a pointer to the key to insert. - * @param v a pointer to the value to insert. - */ -extern int lh_table_insert(struct lh_table *t, void *k, void *v); - - -/** - * Lookup a record into the table. - * @param t the table to lookup - * @param k a pointer to the key to lookup - * @return a pointer to the record structure of the value or NULL if it does not exist. - */ -extern struct lh_entry* lh_table_lookup_entry(struct lh_table *t, void *k); - -/** - * Lookup a record into the table - * @param t the table to lookup - * @param k a pointer to the key to lookup - * @return a pointer to the found value or NULL if it does not exist. - */ -extern void* lh_table_lookup(struct lh_table *t, void *k); - - -/** - * Delete a record from the table. - * If a callback free function is provided then it is called for the - * for the item being deleted. - * @param t the table to delete from. - * @param e a pointer to the entry to delete. - * @return 0 if the item was deleted. - * @return -1 if it was not found. - */ -extern int lh_table_delete_entry(struct lh_table *t, struct lh_entry *e); - - -/** - * Delete a record from the table. - * If a callback free function is provided then it is called for the - * for the item being deleted. - * @param t the table to delete from. - * @param k a pointer to the key to delete. - * @return 0 if the item was deleted. - * @return -1 if it was not found. - */ -extern int lh_table_delete(struct lh_table *t, void *k); - - -#endif diff --git a/OpenSRF/src/libjson/oilsMessage.c b/OpenSRF/src/libjson/oilsMessage.c deleted file mode 100644 index cddb05baf7..0000000000 --- a/OpenSRF/src/libjson/oilsMessage.c +++ /dev/null @@ -1,87 +0,0 @@ -#include -#include -#include "json.h" - - -struct oils_method_struct { - char* method_name; - struct oils_param_struct* params; - char (*to_json_string) (struct oils_method_struct*); -}; -typedef struct oils_method_struct oils_method; - -struct oils_param_struct { - struct oils_param_struct* next; - void* param; - char (*to_json_string) (struct oils_param_struct*); -}; -typedef struct oils_param_struct oils_param; - - -oils_method* oils_method_init( char* name ); -int oils_method_add( oils_method*, oils_param* param ); -oils_param* oils_param_init( void* param ); -char* oils_method_to_json( oils_method* ); -char* oils_param_to_json( oils_param* ); -int main(); - - - -oils_method* oils_method_init( char* name ) { - - if( name == NULL ) - perror( "null method name" ); - - oils_method* method = (oils_method*) malloc(sizeof(oils_method)); - memset( method, 0, sizeof(oils_method)); - - method->method_name = strdup( name ); - - return method; -} - -int oils_method_add( oils_method* method, oils_param* param ) { - - if( method->params == NULL ) { - method->params = param; - return 1; - } - - while(1) { - if( method->params->next == NULL ) { - method->params->next = param; - return 1; - } - method->params = method->params->next; - } - - return 0; -} - -oils_param* oils_param_init( void* param ) { - - if( param == NULL ) - perror( "Null param" ); - - oils_param* par = (oils_param*) malloc(sizeof(oils_param)); - memset( par, 0, sizeof(oils_param)); - - par->param = param; - return par; -} - - -json_object* oils_method_to_json( oils_method* method ) { - struct json_object *method_obj; - -} - - -json_object* oils_param_to_json( oils_param* param ) { - -} - -int main() { - printf( "Hello world\n" ); - -} diff --git a/OpenSRF/src/libjson/oils_method.c b/OpenSRF/src/libjson/oils_method.c deleted file mode 100644 index 6a95dc42ac..0000000000 --- a/OpenSRF/src/libjson/oils_method.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include - -#include "json.h" - - -int main(int argc, char **argv) -{ - - - json *oils_method, *oils_param; - - /* build the param array */ - oils_param = json_object_new_array(); - json_object_array_add(oils_param, json_object_new_int(1)); - json_object_array_add(oils_param, - json_object_new_string("hi")); - - /* build the method and add the params */ - oils_method = json_object_new_object(); - json_object_object_add( oils_method, "name", json_object_new_string("add")); - json_object_object_add( oils_method, "params", oils_param ); - - /* print the whole method */ - printf( "oils_method: %s\n", json_object_to_json_string( oils_method ) ); - - /* retrieve and print the params */ - json* params = json_object_object_get(oils_method, "params" ); - printf( "Params:\n" ); - printf( "%d\n", json_object_get_int( json_object_array_get_idx( params, 0 ))); - printf( "%s\n", json_object_get_string( json_object_array_get_idx( params, 1 ))); - - - return 0; -} diff --git a/OpenSRF/src/libjson/ossupport.c b/OpenSRF/src/libjson/ossupport.c deleted file mode 100644 index d737596de1..0000000000 --- a/OpenSRF/src/libjson/ossupport.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id$ - * - * Copyright Marc Butler 2005. - * Marc Butler - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#include -#include -#include "ossupport.h" - -#ifdef __APPLE_CC__ -/** - * Synthesize strndup for MacOS X. - */ -char * strndup(const char *s, size_t len) -{ - char *copy = malloc(sizeof (char) * (len + 1)); - strncpy(copy, s, len); - return copy; -} -#endif /* __APPLE_CC__ */ diff --git a/OpenSRF/src/libjson/ossupport.h b/OpenSRF/src/libjson/ossupport.h deleted file mode 100644 index 7a0e70236c..0000000000 --- a/OpenSRF/src/libjson/ossupport.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * $Id$ - * - * Copyright Marc Butler 2005. - * Marc Butler - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _ossupport_h_ -#define _ossupport_h_ - -#ifdef __APPLE_CC__ -char * strndup(const char *s, size_t len); -#endif /* __APPLE_CC__ */ - -#endif diff --git a/OpenSRF/src/libjson/printbuf.c b/OpenSRF/src/libjson/printbuf.c deleted file mode 100644 index 68c425c87b..0000000000 --- a/OpenSRF/src/libjson/printbuf.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#include -#include -#include -#include - -#include "bits.h" -#include "debug.h" -#include "printbuf.h" - - -struct printbuf* printbuf_new() -{ - struct printbuf *p; - - if(!(p = calloc(1, sizeof(struct printbuf)))) return NULL; - p->size = 32; - p->bpos = 0; - if(!(p->buf = malloc(p->size))) { - free(p); - return NULL; - } - return p; -} - - -int printbuf_memappend(struct printbuf *p, char *buf, int size) -{ - char *t; - if(p->size - p->bpos <= size) { - int new_size = max(p->size * 2, p->bpos + size + 8); -#if 0 - mc_debug("printbuf_memappend: realloc " - "bpos=%d wrsize=%d old_size=%d new_size=%d\n", - p->bpos, size, p->size, new_size); -#endif - if(!(t = realloc(p->buf, new_size))) return -1; - p->size = new_size; - p->buf = t; - } - memcpy(p->buf + p->bpos, buf, size); - p->bpos += size; - p->buf[p->bpos]= '\0'; - return size; -} - - -int sprintbuf(struct printbuf *p, const char *msg, ...) -{ - va_list ap; - char *t; - int size; - char buf[128]; - - /* user stack buffer first */ - va_start(ap, msg); - size = vsnprintf(buf, 128, msg, ap); - va_end(ap); - /* if string is greater than stack buffer, then use dynamic string - with vasprintf. Note: some implementation of vsnprintf return -1 - if output is truncated whereas some return the number of bytes that - would have been writeen - this code handles both cases. */ - if(size == -1 || size > 127) { - int ret; - va_start(ap, msg); - if((size = vasprintf(&t, msg, ap)) == -1) return -1; - va_end(ap); - ret = printbuf_memappend(p, t, size); - free(t); - return ret; - } else { - return printbuf_memappend(p, buf, size); - } -} - - -void printbuf_reset(struct printbuf *p) -{ - p->buf[0] = '\0'; - p->bpos = 0; -} - -void printbuf_free(struct printbuf *p) -{ - if(p) { - free(p->buf); - free(p); - } -} diff --git a/OpenSRF/src/libjson/printbuf.h b/OpenSRF/src/libjson/printbuf.h deleted file mode 100644 index 0eacdb137c..0000000000 --- a/OpenSRF/src/libjson/printbuf.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * $Id$ - * - * Copyright Metaparadigm Pte. Ltd. 2004. - * Michael Clark - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public (LGPL) - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details: http://www.gnu.org/ - * - */ - -#ifndef _printbuf_h_ -#define _printbuf_h_ - -struct printbuf { - char *buf; - int bpos; - int size; -}; - -extern struct printbuf* -printbuf_new(); - -extern int -printbuf_memappend(struct printbuf *p, char *buf, int size); - -extern int -sprintbuf(struct printbuf *p, const char *msg, ...); - -extern void -printbuf_reset(struct printbuf *p); - -extern void -printbuf_free(struct printbuf *p); - -#endif diff --git a/OpenSRF/src/libjson/test1.c b/OpenSRF/src/libjson/test1.c deleted file mode 100644 index b65a7cdb5a..0000000000 --- a/OpenSRF/src/libjson/test1.c +++ /dev/null @@ -1,134 +0,0 @@ -#include -#include -#include - -#include "json.h" - - -int main(int argc, char **argv) -{ - struct json_object *my_string, *my_int, *my_object, *my_array; - struct json_object *new_obj; - - my_string = json_object_new_string("\t"); - printf("my_string=%s\n", json_object_get_string(my_string)); - printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string)); - json_object_put(my_string); - - my_string = json_object_new_string("foo"); - printf("my_string=%s\n", json_object_get_string(my_string)); - printf("my_string.to_string()=%s\n", json_object_to_json_string(my_string)); - - my_int = json_object_new_int(9); - printf("my_int=%d\n", json_object_get_int(my_int)); - printf("my_int.to_string()=%s\n", json_object_to_json_string(my_int)); - - my_array = json_object_new_array(); - json_object_array_add(my_array, json_object_new_int(1)); - json_object_array_add(my_array, json_object_new_int(2)); - json_object_array_add(my_array, json_object_new_int(3)); - json_object_array_put_idx(my_array, 4, json_object_new_int(5)); - printf("my_array=\n"); - for(int i=0; i < json_object_array_length(my_array); i++) { - struct json_object *obj = json_object_array_get_idx(my_array, i); - printf("\t[%d]=%s\n", i, json_object_to_json_string(obj)); - } - printf("my_array.to_string()=%s\n", json_object_to_json_string(my_array)); - - my_object = json_object_new_object(); - json_object_object_add(my_object, "abc", json_object_new_int(12)); - json_object_object_add(my_object, "foo", json_object_new_string("bar")); - json_object_object_add(my_object, "bool0", json_object_new_boolean(0)); - json_object_object_add(my_object, "bool1", json_object_new_boolean(1)); - json_object_object_add(my_object, "baz", json_object_new_string("bang")); - json_object_object_add(my_object, "baz", json_object_new_string("fark")); - json_object_object_del(my_object, "baz"); - json_object_object_add(my_object, "arr", my_array); - printf("my_object=\n"); - json_object_object_foreach(my_object, key, val) { - printf("\t%s: %s\n", key, json_object_to_json_string(val)); - } - printf("my_object.to_string()=%s\n", json_object_to_json_string(my_object)); - - new_obj = json_tokener_parse("\"\003\""); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("/* hello */\"foo\""); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("// hello\n\"foo\""); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("\"\\u0041\\u0042\\u0043\""); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("null"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("True"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("12"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("12.3"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("[\"\\n\"]"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("[\"\\nabc\\n\"]"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("[null]"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("[]"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("[\"abc\",null,\"def\",12]"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("{}"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("{ \"foo\": \"bar\" }"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("{ \"foo\": \"bar\", \"baz\": null, \"bool0\": true }"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("{ \"foo\": [null, \"foo\"] }"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("{ \"abc\": 12, \"foo\": \"bar\", \"bool0\": false, \"bool1\": true, \"arr\": [ 1, 2, 3, null, 5 ] }"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - new_obj = json_tokener_parse("foo"); - if(is_error(new_obj)) printf("got error as expected\n"); - - json_object_put(my_string); - json_object_put(my_int); - json_object_put(my_object); - //json_object_put(my_array); - - return 0; -} diff --git a/OpenSRF/src/libjson/test2.c b/OpenSRF/src/libjson/test2.c deleted file mode 100644 index b7bdf62888..0000000000 --- a/OpenSRF/src/libjson/test2.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include - -#include "json.h" - - -int main(int argc, char **argv) -{ - struct json_object *new_obj; - - mc_set_debug(1); - - new_obj = json_tokener_parse("/* more difficult test case */ { \"glossary\": { \"title\": \"example glossary\", \"GlossDiv\": { \"title\": \"S\", \"GlossList\": [ { \"ID\": \"SGML\", \"SortAs\": \"SGML\", \"GlossTerm\": \"Standard Generalized Markup Language\", \"Acronym\": \"SGML\", \"Abbrev\": \"ISO 8879:1986\", \"GlossDef\": \"A meta-markup language, used to create markup languages such as DocBook.\", \"GlossSeeAlso\": [\"GML\", \"XML\", \"markup\"] } ] } } }"); - printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); - json_object_put(new_obj); - - return 0; -} -- 2.43.2