Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Answer by seunghyun · 2016-09-21 AM 01:36

안녕하세요. 아이펀팩토리입니다.

  1. 아 그리고 예제대로 object 를 만들어서 캐싱을 하려고 하는데 이게 코드 실행시 바로 시작하게 하면에러가 나네요. 보니까 db 접속을 한 후에야 만들어진 오브젝트 클래스를 로드할 수 있는것 같은데. db 접속시 바로 데이타 캐싱을 할 수 있는 콜백 같은것도 있나요?

"코드 실행 시 바로 시작하게 하면" 은 서버의 Install 함수를 말씀하시는지요? 서버의 Install() 함수에서는 오브젝트 접근이 불가능합니다. 오브젝트는 항상 Event 에서 다루어야 합니다. 서버의 Start() 함수에서 Event::Invoke(오브젝트를 다루는 함수) 를 호출하시면 될 듯 합니다.

Event 관련 설명은 http://www.ifunfactory.com/engine/documents/reference/ko/event.html#event2 를 참고 부탁드립니다.

  1. 그리고 오브젝트로 시간관련 데이타를 생성하려면 string 으로 해야되나요?

아직 시간 타입을 지원하고 있지 않습니다. 따라서 string 이나 integer 형태로 사용하시면 됩니다.

A. integer 로 다루는 방법

int64_t ts = WallClock::GetTimestampInSec();
WallClock::Value value = WallClock::kEpochClock + fun::WallClock::FromSec(ts);

(integer to string 변환은 곧 엔진의 기능으로 추가할 예정입니다.)

B. string 으로 다루는 방법

 string str = boost::posix_time::to_iso_extended_string(WallClock::Now());
WallClock::Value value = boost::date_time::parse_delimited_time<WallClock::Value>(str, 'T');

(위 두 변환은 곧 엔진의 기능으로 추가할 예정입니다.)

  1. 마지막으로 클라이서 서버로 메세지 보내줄때 스키마를 통해 검증을 할수 있는 걸로 알고 있는데. 이런 클래스화된 오브젝트를 통해 스키마 검증도 가능한가요? 가능하다면 어떻게 해야되나요?

아래 두가지 방법을 제공하고 있습니다.

A. http://www.ifunfactory.com/engine/documents/reference/ko/network-subsystem.html#json B. http://www.ifunfactory.com/engine/documents/reference/ko/network-subsystem.html#protocol-validation-by-json-schema

  1. key 2 개 사용

key 가 2 개 이더라도 생성이 되어야 합니다. 문제가 있다면 오류 로그가 남을 것으로 예상되는데요, 로그와 엔진버전을 여기 올려주시면 확인해보겠습니다. 혹시 이벤트 안에서 생성하는 것은 맞는지도 확인 부탁드립니다.

감사합니다.