pat 정보를 json 파일로 저장 후 webbrowser에서 확인

Program Lang./C++ 2016. 7. 21. 18:57

앞 장에서 pat(program associate table)을 MySQL로 저장해서 확인해 보았지만 최종적으로 webbrower에서 

확인하기에는 Node.js 같은 것을 붙여야 하고 일이 커져서 일단 아래와 같이 구현해 본다.


MFC 나 C#등을 이용해서 UI를 짜면 되지만 실제 보여주는 UI는 webbrowser에서 보여지는 것을 보고 싶다.

그래서 일단 c++ native application에서 pat 정보를 parsing완료하면 json 포멧으로

저장한다. 저장 위치는 webserver root directory 이다.


저장된 값은 webbrowser를 실행하고 해당 URL을 입력해서 출력되는 것을 확인한다.


1. 선수 작업

먼저 c++ json parser and writer가 필요하다. 난 boost spirit을 이용한다.

아래 참고 사이트에서 소스를 받아서 빌드하면 잘 된다. 난 cmake만을 사용하므로 cmake로 돌리고

헤더 파일과 static library만을 내 project에 포함시키고 아래 소스 트리에서 json_spirit 폴더에 해당함.

내 project CMakeLists.txt파일에서 json_spirit 헤더와 라이블러리 패스만 잡아줌.

json_spirit 폴더 내의 CMakeLists.txt 파일은 내꺼 프로젝트와 상관없고 원래 있었던 것으로 연동안됨.


2. 소스 트리

.

├── CMakeLists.txt

├── json_spirit

│   ├── CMakeFiles

│   │   ├── CMakeDirectoryInformation.cmake

│   │   ├── json_spirit.dir

│   │   │   ├── CXX.includecache

│   │   │   ├── DependInfo.cmake

│   │   │   ├── build.make

│   │   │   ├── cmake_clean.cmake

│   │   │   ├── cmake_clean_target.cmake

│   │   │   ├── depend.internal

│   │   │   ├── depend.make

│   │   │   ├── flags.make

│   │   │   ├── json_spirit_reader.cpp.o

│   │   │   ├── json_spirit_value.cpp.o

│   │   │   ├── json_spirit_writer.cpp.o

│   │   │   ├── link.txt

│   │   │   └── progress.make

│   │   └── progress.marks

│   ├── CMakeLists.txt

│   ├── Makefile

│   ├── cmake_install.cmake

│   ├── json_spirit.h

│   ├── json_spirit.vcproj

│   ├── json_spirit_error_position.h

│   ├── json_spirit_reader.cpp

│   ├── json_spirit_reader.h

│   ├── json_spirit_reader_template.h

│   ├── json_spirit_stream_reader.h

│   ├── json_spirit_utils.h

│   ├── json_spirit_value.cpp

│   ├── json_spirit_value.h

│   ├── json_spirit_writer.cpp

│   ├── json_spirit_writer.h

│   ├── json_spirit_writer_options.h

│   ├── json_spirit_writer_template.h

│   └── libjson_spirit.a

├── pat.cpp

├── pat.h

├── pat_json.txt

├── psi_glob.h

├── remove.sh

├── section.cpp

├── section.h

├── test.cpp

└── types.h


3. 헤더 파일

보여지지 않는 파일은 기존 pat class와 동일하고 단지 변경 사항만 여기에 보여준다.

pat정보를 json으로 저장하기 위한 함수 선언이 추가되었다.



4. 본체

pat_json.txt 파일을 apache 서버 설정 루트 디렉토르로 만들어서 저장한다.



5. 테스트

webbrowser로 결과를 확인하는 내용은 아래 post에 정리해 두었다.


http://chipmaker.tistory.com/category/Program%20Lang./javascript/



6. pat_json.txt 파일 구조

6개의 프로그램 정보가 배열 형태의 json 포멧으로 저장되어 있다.

하나의 프로그램의 형식은 pat.h에 정의한 struct 구성과 동일하다. 


7. 전체 소스 (github link)


https://github.com/heesoon/mpeg/tree/master/test/pat_json


8. 참고 자료


[boost spirit json parser and writer]

http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented

'Program Lang. > C++' 카테고리의 다른 글

sdt json version  (0) 2016.07.22
pmt json version  (0) 2016.07.22
5. sdt (service description table) class  (0) 2016.07.20
4. pmt class  (0) 2016.07.19
3. pat info. save to MySQL with cpp connector  (0) 2016.07.19
: