1+ /******************************************************************************
2+ * Copyright (c) 2019, Simverge Software LLC. All rights reserved.
3+ *
4+ * Redistribution and use in source and binary forms, with or without
5+ * modification, are permitted provided that the following
6+ * conditions are met:
7+ *
8+ * 1. Redistributions of source code must retain the above copyright notice,
9+ * this list of conditions and the following disclaimer.
10+ * 2. Redistributions in binary form must reproduce the above copyright notice,
11+ this list of conditions and the following disclaimer in the documentation
12+ * and/or other materials provided with the distribution.
13+ * 3. Neither the name of Simverge Software LLC nor the names of its
14+ * contributors may be used to endorse or promote products derived from this
15+ * software without specific prior written permission.
16+ *
17+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27+ * POSSIBILITY OF SUCH DAMAGE.
28+ *****************************************************************************/
29+
30+ #include "test_pdalc_utils.h"
31+
32+ #include <stdlib.h>
33+ #include <stdio.h>
34+
35+ const char * PDALReadPipelineJson (const char * path )
36+ {
37+ FILE * file = fopen (path , "rb" );
38+ char * json = NULL ;
39+
40+ if (file )
41+ {
42+ fseek (file , 0 , SEEK_END );
43+ size_t length = (size_t ) ftell (file );
44+ fseek (file , 0 , SEEK_SET );
45+ json = malloc (length + 1 );
46+
47+ if (json && fread (json , 1 , length , file ) == length )
48+ {
49+ json [length ] = '\0' ;
50+ }
51+ else
52+ {
53+ free (json );
54+ json = NULL ;
55+ }
56+
57+ fclose (file );
58+ file = NULL ;
59+ }
60+
61+ return json ;
62+ }
63+
64+ PDALPipelinePtr * PDALLoadPipeline (const char * path )
65+ {
66+ PDALPipelinePtr * pipeline = NULL ;
67+ const char * json = PDALReadPipelineJson (path );
68+
69+ if (json )
70+ {
71+ pipeline = PDALCreatePipeline (json );
72+
73+ if (!PDALExecutePipeline (pipeline ))
74+ {
75+ PDALDisposePipeline (pipeline );
76+ pipeline = NULL ;
77+ }
78+
79+ free (json );
80+ json = NULL ;
81+ }
82+
83+ return pipeline ;
84+ }
0 commit comments