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 |