구상 끝났으니 구현해야지.
참 간단하고 단순함
[group]
key1=value1
key2=value2
...
keyN=valueN
이게 ini 파일 포맷임.
문자를 하나씩 읽어서
[ 이걸로 시작하면 그룹 파싱 시작하고,
라인끝이
이거니까,
전에 ] 나와야 함.
안 나오면 파싱 에러 매시지 출력 후 종료.
나오면 callback 함수 포인터 실행.
키 밸류도 마찬가지 방법으로 파싱하면 됨.
[ 이걸로 시작하지 않았으면 key,
= 이게 나오면 이후 밸류.
까지임.
개쉽죠잉?
문제는 API 정의임. 함수 이름을 어떻게 해냐 써먹기 좋을까. callback 등록은 어떤 방식으로 하까.
이런게 고민되는거지.
생성자, 소멸자
conf_new(name)
conf_free()
콜백 함수를 등록하는 함수. 자바로치면 add listener
conf_register_callback()
파싱하면서 callback 함수 포인터 실행.
conf_parse()
conf_add_key_value()
conf_key_get_value()
delete 함수도 있어야겠군.
(변경된) 키와 값을 저장.
conf_save()
설정 변경한 후 설정을 필요하다면 다시 로딩할 수 있는 기능을 제공.
conf_reload(name)
- dc official App
나도 짤려면 짤 수는 있는데 현실은 nuget 검색함 ㅋㅋ 귀찬아
루비로 먼저 만들고 c로 포팅하려구. .ini 설정 파일을 변경후, reload 한후, 변경된 value 를 callback 으로 통지하는거 만들어보려구. sax 방식 dom 방식 다 써야 될거 같음. 어떻게 하는게 최상의 방법인지 고민중 ㅋㅋ - dc App
프러세스가 동일할 경우 reload 함수를 호출하는 방식으로 하던가 ini 파일 모니터링 하능 방법 있구, 프로세스가 다를 경우 IPC 활용하여 reload 시키도록.... 아무래도 파일 모니터링은 주기적으로 루프 도니까. - dc App