이번 포스트에서는 Content Shell의 main 함수가 구현되어 있는 shell_main.cc 파일을 살펴보겠다.
파일을 보면 main 함수는 단 10줄로 구현되어있다... 정말 깔끔한 코드!!
그것도 리눅스와 관련이 없는 코드들을 제외하면 단 2줄의 코드가 호출될 뿐이다.. 아름답다...ㅠ
위 코드 이미지를 보면, ShellMainDelegate 객체 인스턴스를 생성하고, ContentMain 이란 함수에
이 인스턴스를 넘겨주는 것으로 브라우저를 실행시키고 있다.
Delegate 이름이 붙은것으로 미루어 delegate 패턴이 사용하고 있음을 짐작하게 한다.
아마 ContentMain() 함수에서 플랫폼관련 초기화 부분(ex, UI)은 이 ShellMainDelegate 인스턴스에 위임(delegate) 하고 있을 것 같다.
ShellMainDelegate 클래스는 content::ContentMainDelegate 를 구현(Implement) 한 클래스이다.
Content Module은 Content Module을 기반으로 브라우저를 구현할 때 필요한 요소들을
ContentMainDelegate 인터페이스 클래스를 구현하여 ContentMain() 함수에 전달하는 방식으로 사용하도록 하고있다.
Chromium(chrome) 브라우저도 마찬가지로 ContentMainDelegate 클래스를 구현하여 구성이되어있을 것이다.
다음 포스트에서는 ShellMainDelegate 클래스에 대해 알아보자.
댓글 없음:
댓글 쓰기