Symbian Descriptor

symbian_foundation_logo

Symbian đưa ra Descriptor để thay thế cho String trong C/C++. Gọi là “Descriptor” vì chúng tự mô tả bản thân, mỗi đối tượng Descriptor đều cho biết thông tin về mình: độ dài của chuỗi mà nó nắm giữ, kiểu của ký tự, địa chỉ con trỏ trỏ tới ký tự đầu tiên, cách bố trí dữ liệu (data layout).

Descriptor không dùng ký tự NULL cho việc đánh dấu sự kết thúc chuỗi, nên chúng có thể chứa dữ liệu text hoặc nhị phân đều được. Có 2 loại Descriptor chính: Narrow và Wide.

Continue reading “Symbian Descriptor”

Advertisements

Asynchronous Functions và Active Objects

Symbian-Mobile-Phone-OS-Goes-Open-Source_1

Active Objects là một trong những tinh túy của Symbian OS. Cơ chế này giúp cho việc gọi các hàm bất đồng bộ (Asynchronous Functions) trở nên rất hiệu quả và do đó tiết kiệm năng lượng cho thiết bị di động.

Mặc dù trong Symbian OS cho phép tạo nhiều Thread, nhưng việc này vốn khá nguy hiểm (kể cả trên các nền tảng khác), cần thiết lắm ta mới phải dùng, và phải dùng cẩn thận. Một lựa chọn phổ biến là hãy để chương trình chạy trên một Main Thread duy nhất, hướng sự kiện (event-driven) bằng cách dùng Asynchronous Functions và Active Objects.

Trước hết chúng ta tìm hiểu sơ qua thế nào là Synchronous/Asynchronous Functions.

Continue reading “Asynchronous Functions và Active Objects”

Xử lý ngoại lệ trên Symbian (Leave-Symbian exeption)

Bài viết sưu tầm từ trang này.

1. Cơ chế bắt lỗi trên Symbian

Nếu bạn đã quen với lập trình C++ hay Java thì exeption handling là một khái niệm chẳng xa lạ gì. Đây là cơ chế giúp ta quản lý các lỗi phát sinh. Lúc Symbian được thiết kế thì cơ chế exeption chưa được giới thiệu trong C++ hơn nữa sau này khi được giới thiệu thì nó cũng tỏ ra không phù hợp trong môi trường hạn chế về xử lý và bộ nhớ như Symbian bởi chúng làm tăng đáng kể kích thước mã biên dịch và tốn nhiều RAM, lại không thật sự hiệu quả.

Continue reading “Xử lý ngoại lệ trên Symbian (Leave-Symbian exeption)”