MCPcopy Create free account
hub / github.com/F-Stack/f-stack / csv_handler

Function csv_handler

tools/libxo/encoder/csv/enc_csv.c:747–822  ·  view source on GitHub ↗

* The callback from libxo, passing us operations/events as they * happen. */

Source from the content-addressed store, hash-verified

745 * happen.
746 */
747static int
748csv_handler (XO_ENCODER_HANDLER_ARGS)
749{
750 int rc = 0;
751 csv_private_t *csv = private;
752 xo_buffer_t *xbp = csv ? &csv->c_data : NULL;
753
754 csv_dbg(xop, csv, "op %s: [%s] [%s]\n", xo_encoder_op_name(op),
755 name ?: "", value ?: "");
756 fflush(stdout);
757
758 /* If we don't have private data, we're sunk */
759 if (csv == NULL && op != XO_OP_CREATE)
760 return -1;
761
762 switch (op) {
763 case XO_OP_CREATE: /* Called when the handle is init'd */
764 rc = csv_create(xop);
765 break;
766
767 case XO_OP_OPTIONS:
768 rc = csv_options(xop, csv, value, ':');
769 break;
770
771 case XO_OP_OPTIONS_PLUS:
772 rc = csv_options(xop, csv, value, '+');
773 break;
774
775 case XO_OP_OPEN_LIST:
776 case XO_OP_CLOSE_LIST:
777 break; /* Ignore these ops */
778
779 case XO_OP_OPEN_CONTAINER:
780 case XO_OP_OPEN_LEAF_LIST:
781 rc = csv_open_level(xop, csv, name, 0);
782 break;
783
784 case XO_OP_OPEN_INSTANCE:
785 rc = csv_open_level(xop, csv, name, 1);
786 break;
787
788 case XO_OP_CLOSE_CONTAINER:
789 case XO_OP_CLOSE_LEAF_LIST:
790 case XO_OP_CLOSE_INSTANCE:
791 rc = csv_close_level(xop, csv, name);
792 break;
793
794 case XO_OP_STRING: /* Quoted UTF-8 string */
795 case XO_OP_CONTENT: /* Other content */
796 rc = csv_data(xop, csv, name, value, flags);
797 break;
798
799 case XO_OP_FINISH: /* Clean up function */
800 break;
801
802 case XO_OP_FLUSH: /* Clean up function */
803 rc = write(1, xbp->xb_bufp, xbp->xb_curp - xbp->xb_bufp);
804 if (rc > 0)

Callers

nothing calls this directly

Calls 10

csv_dbgFunction · 0.85
xo_encoder_op_nameFunction · 0.85
csv_createFunction · 0.85
csv_optionsFunction · 0.85
csv_open_levelFunction · 0.85
csv_close_levelFunction · 0.85
csv_dataFunction · 0.85
xo_buf_resetFunction · 0.85
csv_destroyFunction · 0.85
writeFunction · 0.50

Tested by

no test coverage detected