আপনি কি অন্য সার্ভারে mod_pagespeed পোর্ট করতে চান বা অন্য সিস্টেমে এটিকে সংহত করতে চান? দারুণ! আমরা মডুলার হতে mod_pagespeed তৈরি করেছি এবং অ্যাপাচি থেকে প্রায় সম্পূর্ণ স্বাধীন। শুধুমাত্র Apache-নির্দিষ্ট কোড net/instaweb/apache ডিরেক্টরিতে রয়েছে।
আপনি যদি আমাদের উত্সটি দেখেন তবে আমাদের মূল কোডটি net/instaweb/ এ রয়েছে:
- util/ এবং http/ -এ আমাদের অনেক মৌলিক টুল রয়েছে, যার মধ্যে রয়েছে বিমূর্ত বেস ক্লাস যেমন
MessageHandler,Timer, এবংUrlFetcher। কিছু উদাহরণ বাস্তবায়ন আছে, কিন্তু আপনাকে এর মধ্যে অনেকের নিজের বাস্তবায়ন করতে হবে। - htmlparse/ এর মূল HTML পার্সার রয়েছে। আপনি যে সব মোকাবেলা করা উচিত নয়.
- রিরাইটার/ এর রিরাইটিং ফিল্টার এবং ফ্রেমওয়ার্ক আছে। কেন্দ্রীয় ইন্টিগ্রেশন পয়েন্ট হল এখানে আংশিক বিমূর্ত শ্রেণী,
RewriteDriverFactory। আপনার ইন্টিগ্রেশন প্রচেষ্টা এটিকে সাবক্লাস করে এবং এর বিশুদ্ধ ভার্চুয়াল পদ্ধতি প্রয়োগ করে শুরু হবে।
আপনাকে সম্ভবত নিম্নলিখিত ক্লাসগুলির জন্য একটি পোর্ট বাস্তবায়ন করতে হবে ( অ্যাপাচি/ ডিরেক্টরিতে উদাহরণ বাস্তবায়ন দেখুন):
- MessageHandler - ত্রুটি হ্যান্ডলিং (উদাহরণস্বরূপ FileMessageHandler এবং ApacheMessageHandler দেখুন)
- ফাইলসিস্টেম (উদাহরণ দেখুন StdioFileSystem এবং AprFileSystem )
- বিমূর্ত কন্ডভার (উদাহরণ দেখুন PthreadCondvar এবং AprCondvar )
- AbstractMutex (উদাহরণ দেখুন PthreadMutex এবং AprMutex )
- পরিসংখ্যান - বিভিন্ন বৈশ্বিক পরিসংখ্যানের উপর নজর রাখুন (উদাহরণ দেখুন SimpleStats এবং AprStatistics )
- টাইমার (উদাহরণ দেখুন মকটাইমার এবং এপ্রিল টাইমার)
- UrlFetcher - URL দ্বারা সম্পদের জন্য ফেচার (উদাহরণ দেখুন WgetUrlFetcher এবং SyncFetcherAdapter )
- UrlAsyncFetcher - একই কিন্তু একটি কলব্যাক ইন্টারফেসের সাথে (উদাহরণ দেখুন WgetUrlAsyncFetcher এবং SerfUrlAsyncFetcher ; পরবর্তীটি UrlPollableAsyncFetcher- এর উপরে নির্মিত একটি অ্যাসিঙ্ক্রোনাস ইভেন্ট মডেলকে সমর্থন করে)
- RewriteDriverFactory - একটি বাস্তবায়নের জন্য নির্দিষ্ট সমস্ত বিকল্প এবং ক্লাস পরিচালনা করে (উদাহরণ দেখুন ApacheRewriteDriverFactory )
তারপর প্রকৃতপক্ষে কোডটি চালু করতে, আপনাকে আপনার সমস্ত অবজেক্ট তৈরি করতে একটি FooRewriteDriverFactory তৈরি করতে হবে, এবং তারপরে StartParseWithType(url, content_type) , সার্ভারের প্রতিটি ফ্লাশের মধ্যে ParseText(টেক্সট) এবং প্রতিটি অনুরোধের জন্য FinishParse() তৈরি করতে হবে।
আপনি যদি এটি খুঁজছেন বা কোনো সমস্যা হচ্ছে তাহলে দয়া করে আমাদের ডেভেলপমেন্ট মেলিং লিস্টে লিখুন। আমরা গ্যারান্টি দিচ্ছি না যে কোনো অভ্যন্তরীণ ইন্টারফেস একই থাকবে, তাই আমরা সহজেই আপনার পোর্ট ভেঙে ফেলতে পারি যদি আমরা না জানি যে আপনি সেগুলি ব্যবহার করছেন।