Главная » Просмотр файлов » Symbian OS Explained - Effective C++ Programming For Smartphones (2005)

Symbian OS Explained - Effective C++ Programming For Smartphones (2005) (779885), страница 72

Файл №779885 Symbian OS Explained - Effective C++ Programming For Smartphones (2005) (Symbian Books) 72 страницаSymbian OS Explained - Effective C++ Programming For Smartphones (2005) (779885) страница 722018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 72)

. .starting procedures 180Archimedes 151ARM 2, 228–9arraysclient–server processes173–215concepts 91–109, 173,329–30, 338dynamic arrays 91–109,220–4, 293–7fixed-length arrays 104–6granularity considerations91–2, 106–8, 321ASCII data 69, 82assembler listings, code 331ASSERT 46, 58, 97, 102, 142,145–8, 257–64, 271–6,296–7assertionsbenefits 259–60concepts 14, 46, 58, 79, 83–4,97, 102–3, 122–6, 142,145–8, 251–2, 255–64,271–6, 296–7, 308definitions 255–6documentation issues 259–60panics 251–2, 255–64assignment operators, CBase4–6, 314–15asynchronous service xii,111–26, 127–50, 158–66,168, 179–88, 192–215active objects 111–26,127–50, 212–13client–server processes 168,179–88, 192–215definition 168event handlers 112–26,129–50request completions 138responsibilities 131, 133–5At 95–7, 98–109Attach 173–215audiosee also multimediauser expectations xii, xviiiautomatic variablescoding conventions xv–xvi,327–8scoping uses 327–8auto_ptr<>, C++ 46”back to front”comparisons, ifstatements 20–1backward compatibility, concepts278–9bafl.lib 103–4BAFL see Symbian OS, BasicApplication FrameworkLibrarybase classessee also TDes.

. .concepts 4, 8, 50, 56–73,78–9, 171base user library 218batteries xii, xviiiBegin 105Berra, Yogi 167binary compatibility, concepts280–1binary datadescriptors 56, 106dynamic buffers 106–8binary typessee also DLLsconcepts 217–31, 293–4EXEs xvii, 164–5, 169, 182,190, 217–31, 293–4,301–3targettype 186, 219–31,240–1thread-local storage 223–5UID. . . 219, 226–31, 240–6writable global/static data220–5bitfields, TBool 2–3bitfields usage, good coding style326–7”blocking” 111–12Bluetooth xviiiINDEXbuffer descriptorssee also descriptors; TBuf. . .concepts 59, 63–73buffers, dynamic buffers 91,106–9bugs see errorsbuilt-in types, T classes 3, 314C++built-in types 3, 314casts 46–7complexity issues xix, 318–19concepts xiii–xix, 3–4, 13, 15,29, 46–7, 194, 218–31,236–7, 283–4, 287–92,293–7, 299–316, 315, 317destructors 3–4exception handling 13, 15, 29,46–7good coding style 317–31strings 55templates 46, 293–7throw 3, 13, 15, 19, 27C32.exe 182C classescoding conventions xv–xvi, 1,4–6, 54concepts xv–xvi, 1, 4–5,9–10, 29–31, 54, 291–2destructors 4–5, 9–10, 315leaves 29–30C suffix, concepts xv–xvii,xvi–xvii, 34–5, 56–7CActive 26, 115–26, 128–50,178–9, 237–46CActiveScheduler 121–6,128–50, 159–66, 204–15CActiveSchedulerWait136–50callback interfaces 8–9, 146–9calling client, concepts 169–88camcorders xiicameras xii, xviiisee also imagesCancel 115–26, 133–50,160–6CancelGetData 140–3CApaDataRecognizerType218–19capitalization coding conventionsxvCArrayFixBase 103–4CArrayFixFlat 92–3, 103–4CArrayFixSeg 92, 103CArrayPakFlat 93CArrayPtrFlat 93CArrayPtrSeg 94–6, 98–9,100–9CArrayVar 94–6CArrayVarBase 94–6CArrayVarFlat 93–6CArrayVarSeg 92, 93–6CArrayX 91–109, 321see also dynamic arraysconcepts 91–109, 321inheritance class hierarchies 94naming scheme 92–3performance overheads 92,321RArray contrasts 102–3suffixes 92–6casts, cleanup stack 41, 46–7, 70CAsyncTask 158–61catch,C++ 13, 15CBase classcleanup stack 34–44, 50–3concepts 4–5, 8–11, 30,34–41, 50–3, 60, 92–109,115, 133, 139, 144, 154,176, 193, 221, 236–7,250–1, 269, 282–3, 290,314–15, 322–4copy constructors 4–6,314–15instantiating example 30virtual destructors 9–10zero initialization 5, 53, 103,322CBufBase 94–6, 102–9CBufFlat 94–6, 106–8CBufSeg 94–6, 106–8CCleanup 37–8CCleanupStack::PushL,concepts 5, 10, 15–16, 18,20, 23–7, 31–46, 52CCryptoInterface 235–46CDesC8Array 104CDesC16Array 104353CDesCXArrayFlat 104CDesCXArraySeg 104CDynamicArray 293–7CExampleTimer 120–6CExtensibleClass 290–1CFileObject 23–5change issuessee also compatibility.

. .best practices 289–92concepts 277–92guidelines 281–92permitted changes 287–92ChangeSecurityDetailsL322–4char 63charconv.lib 81CHardwareCrypto 235–46checklist, code 333–8CHerculeanServer 205–15CHerculeanSession 205–15CHerculesData 194–215CIdle 146–8classessee also C. . .; M. . .; R. . .; T. .

.;individual class namesactive objects 115–26change issues 279–92checklist 333–4cleanup stack 36–44, 49–54,321–8client–server processes170–88, 190–215coding conventions xv–xvii,1–12, 19, 54, 56–7, 66,175, 236, 249, 300–1,312–15compatibility issues 279–92,314comprehensibility requirements312–16comprehensivenessrequirements 299–316concepts xv–xvii, 1–12,49–54, 279–92, 299–316,333–4container classes 91–109descriptors 56–73, 87–8design considerations299–316354classes (continued )dynamic arrays 91–109,293–7fundamental types 1–3layout conventions xvii, 300–1naming criteria 312–14private internals 287selection criteria 299–316size changes 281–3subclasses 51, 136, 239–40test classes 265–76types xv–xvii, 1–12, 299–316Cleanup 40–1, 140–3cleanup stackC suffixes xvi–xvii, 34–5casts 41, 46–7, 70CBase class 34–44, 50–3checklist 335–6classes 36–44, 49–54, 321–8concepts xvi–xvii, 3–5, 7,18–20, 29–47, 49–54,66–7, 321–31, 335–6creation processes 36–7customized cleanup 39–46examples 31–49, 66–7good coding style 325–31good practices 32–5, 321–8leaves 27, 29–47, 49–54,77–8, 335–6member variables 34non-CBase classes 38–44panics 34–8, 43, 71–2,250–3, 267–8pointers 35–44, 53portability issues 46trap harness 34–5, 44–6, 205,253uses 31–5working details 35–8CleanupClosePushL 42,43–4, 46, 196–215CleanupDeletePushL 42–3,46CleanupReleasePushL 11,41–2, 46CleanupStack 5, 7, 10, 15–16,18, 20, 23–7, 31–46, 66–7INDEXCleanupStack::Pop 15–16,23–4, 31–46, 52–3, 221–31,250–1CleanupStack::PopAndDestroy 20, 31–46, 66–7,78, 97, 102, 195–215,221–31, 245–6, 250–1CleanupStack::PushL,concepts 5, 7, 10, 15–16,18, 20, 23–7, 31–46, 52,77–8, 135, 148, 195–215,245–6, 250–3, 271–6,323–4Client 174–215client.dll 190client–server processes 113–14,167–215, 233–46, 261–4access example 214active schedulers 178–9,204–15arrays 173–215asynchronous/synchronousrequests 168, 179–88,192–215classes 170–88, 190–215communication mechanics170complexity issues 190, 203concepts 113–14, 167–215,233–46, 261–4connection limits 180, 184creation procedures 178–80,187–215death-thread cleanup 181descriptors 192–215disconnections 180–1,205–15ECOM xiv, 219, 233–46examples 172–3, 186–215functionality extensions 186–7Hercules example 190–215implementation methods171–215leaves 187, 204–15local servers 182–3malicious clients 169mechanics 168–70overheads 183–5performance improvements185performance overheads 183–5practical considerations 167,189–215protocols 169–88request submissions 186–7,190–215server-side code 182, 193–215sessions 170–215starting procedures 178–80,186–215subsessions 180, 183–5theory 167–88threads 168–215timer class 213uses 168CLivingPerson 271–6CloneL,concepts 6, 314–15CLongRunningApplication144–8Close 6–7, 10–11, 19, 30,41–4, 98–109, 122–6,154–66, 180–215, 236–46,252, 315CloseSubSession 183–215cntsrv.dll 228cntsrv.exe 228codesee also programmingassembler listings 331binary types 217–31, 293–4bitfields usage 326–7checklist 333–8comments 334compatibility issues 277–92,314complexity issues xix, 55,82–90, 318–19conventions xiv–xvii, 1–12,19, 26–7, 54, 56–7, 66,175, 236, 249, 300–1,312–15debugging/testing/logging-coderemoval 320good practices 32–5, 75–90,289–92, 317–38heap-usage tips 320–5layout xvii, 300–1INDEXLeaveScan 15–16, 26–7, 85listings 331memory leaks 265–76, 314,320–5optimize-late tips 330–1performance issues 21, 22–3,25–6, 30, 45, 151–2,183–5, 317–31recursive code 325–6refactored code 319–20requirements xix, 32–5,289–92, 317–31reuse benefits 319scoping uses 327–8size-reduction benefits 317–20stack-usage tips 325–31sub-expressions 328–30comments, checklist 334CommitL 17, 185–215ComparePassword 311–12compatibility issues 277–92, 314access specifiers 287–8, 289accessibility issues 283–4API documented semantics286API extensions 287backward compatibility 278–9best practices 289–92binary compatibility 280–1change considerations 277–92classes 279–80concepts 277–92, 314exported functions 283–4exports 283–4, 288forward compatibility 278–9guidelines 281–92inlined functions 289, 302pass by value/reference 286–7,303–8permitted changes 287–92size changes 281–3source considerations 279–80virtual functions 284–5,290–1widened inputs/narrowedoutputs 288–9Complete 175–215comprehensibility requirements,design issues 312–16comprehensiveness requirements,design issues 299–316Compress 107–8computer-generated functions314–15concrete descriptor objects 3,8–10, 12see also Hbuf.

. .; TBuf. . .;TPtr. . .CONE 123–4, 135Confucius 277Connect 54, 169–88, 198–215console tests, concepts 273–6const 61, 69–73, 78, 222–31,286, 289, 304–12constants, coding conventions xviCONST_CAST 46–7ConstructL xvi, 34–5, 50–4,95–6, 121–6, 195–215,221–31, 237–46, 279–92,322–4, 328constructorsactive objects 115–16,128–30, 132–3checklist 334computer-generated functions314–15concepts 4–6, 17–20, 49–54,206–15, 282, 299–300,315–16, 334default constructors 4, 51–2leaves 17–20, 27, 47, 49–54two-phase construction 17–20,30, 49–54, 66, 159–66,241–2, 299–300, 314–15contacts xviii, 228–9container classessee also arraysconcepts 91–109, 329–30,338context switches 112–14cooperative multitasking, activeobjects 149–50, 151–2Copy 56, 80–2, 105–9, 314–15copy constructors 4–6, 314–15CBase 4–6, 314–15CopyL,concepts 6, 314–15cordless phones xiiCount 105, 329–40355CountResources 176–215CPassword 309–12CPeriodic 148–9CPointer 300–1CPtrC8Array 104CPtrC16Array 104crashes 169Create 6, 153–5, 165CreateImplementationL235–46CreateL 176–215CreateSession 171–215CreateSubSession 183–215creation processes, cleanup stack36–7CResolver 244–6CServer 171–215CServiceProvider 139–43CSession 176–215CSharableSession 171,175–215CShutdown 213CSoftwareCrypto 235–46CSpreadSheet 44–6CStateMachine 139–43CString 55CSwipeCard 322–4CTask 220–31CTaskManager 95–109,220–31CTest 266–76CTestClass 256–64CTestClass::NewL 14–15,18–20CTimer 213CTrapCleanup 36–8curly brackets, coding conventionsxvii, 21cursor flashing 148custom serverssee also plug-insconcepts 233–4customized cleanup, concepts39–46D prefixes, concepts 175Dali, Salvador 299data considerations, memberfunctions 309–12356databases, rollbacks/recoveries44–6Davies, Charles xi–xiiDbgTestInvariant 270–6deallocations, memory 19, 31–2,35debugging xviii, 17, 33, 83–4,120–6, 214, 230, 247–9,255–76, 320see also testing facilities__ASSERT_DEBUG macro xvii,83–4, 255–64active objects 120–6assertions 255–64code-removal benefits 320concepts 120–6, 247–9,255–76, 320console tests 273–6heap-checking macros 214,265–76invariance macros 257–8,270–6just-in-time debugging 248–9macros xvii, 83–4, 255–64,265–76panics 247–9default constructors 4, 51–2Delete 5, 9–10, 18, 30–1,41–4, 53, 95–7, 172–215DeleteAll 105DeleteL 106–8DeleteTask 95–109deletionschecklist 335D suffixes xviiDes 62–4, 66–8, 82–4, 310–12descriptors 3, 12, 55–73, 75–90,103–4, 192–215, 321–5,337–8see also buffer.

. .; heap. . .;pointer. . .; strings; TBuf. . .; TDes. . .; TPtr. . .binary data 56, 106checklist 337–8classes 56–73, 87–8, 321–5client–server processes192–215common methods 78–82complexity issues 55, 82–90INDEXconcepts 55–73, 75–90,103–4, 192–215, 321–5,337–8dynamic arrays 103–4examples 60–90externalization/internalizationmethods 84–6, 194–215good practices 75–90, 321–5,337–8inheritance class hierarchies68, 73literals 55–6, 61–2, 69–73,274manipulation classes 87–8mistakes 82–90modifiable/non-modifiablecontrasts 56–9parameters 75–8problems 78–90return types 75–8selection criteria 75–8thin template classes 87–8,293–7types 59–73vptr 57width issues 56–8, 79–86, 104design considerations, classes299–316DestroyTaskManager 221–31destructorsactive objects 119–20, 133C++ 3–4C classes 4–5, 9–10, 315checklist 335computer-generated functions314–15concepts 3–5, 9–10, 17–20,29–31, 38–44, 52–3, 315,335ECOM 234–5, 239–40leaves 17–20, 29–31, 50,52–3M classes 9–10, 41–2R classes 19, 315T classes 4, 9–10, 19, 29,39–46, 315two-phase construction 52–3virtual destructors 9–10,38–44, 282, 315digital audio players xiidirectories 226–31, 242–6disconnections, client–serverprocesses 180–1, 205–15DismountFileSystem 186Dll::SetTLS 224–5DLLs 81, 165, 168–9, 186, 190,202, 205, 217–31, 233–46,250, 279–92, 293–4, 301–3compatibility issues 279–92concepts 217–31, 233–46,279–92, 293–4, 301–3directories 226, 242–6ECOM architecture 233–46loader 226polymorphic DLLs 186,218–19, 233–46static DLLs 218–23, 301thread-local storage 223–5writable global/static data220–5DoAsyncTask 158–66DoCancel 115–26, 132–50,159–66documentation issues 24, 55,259–60documented semantics, APIchanges 286DoRecognizeL 219DoRollBack 45–6DoSetupAndCombineL 328DoSomething 284DoTaskStep 144–8DServer 175–215DSession 171, 175–215DThread 176–215Duplicate 154–66dynamic arrays 91–109, 220–4,293–7CArrayX 91–109, 321concepts 91–109, 293–7definition 91–2descriptors 103–4examples 95–109granularity considerations91–2, 106–8, 321RArray 91–2, 97–109,197–8, 293–7, 321dynamic buffersINDEXbinary data 106–8concepts 91, 106–9dynamically linked libraries (DLLs)81, 165, 168–9, 186, 190,202, 205, 217–31, 233–46,250, 279–92, 301–3dynamic_cast,C++ 46–7e32base.h 4, 5, 31, 37, 115,178, 249e32base.in1 41, 42e32def.h 47, 69, 255, 265e32des8.h 56e32des16.h 56e32des.h 69e32des.in1 69E32Dll 223–4E32Main 217–18, 228–9e32std.h 15, 56, 86, 153, 156,163–4, 173–4, 193, 212, 294e32std.in1 17, 294e32test.h 273E32USER-CBASE 250EActivePriorityWsEvents132–50EAutoAttach 173–215ECOM xiv, 219, 233–46architecture 233–6concepts xiv, 219, 233–46concrete classes 240–6definition 233–4destructors 234–5, 239–40examples 235–46factory methods 234–46implementation procedures235, 240–6instantiation 234–46interface features 235, 236–7resolution 234, 238–46resource files 242–6ECOM.lib 234–46ECOMIIC 240–6EDllProcessDetach 224–5EDllThreadDetach 224–5EExc.

Характеристики

Тип файла
PDF-файл
Размер
2,53 Mb
Материал
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее