#ifndef __gwl_h__
#define __gwl_h__
//gwl名字空間的開始
#define gwl_begin namespace gwl
//使用名字空間gwl
#define _gwl using namespace gwl;
#include
#include
#include
#include
#include
gwl_begin
using namespace std;
typedef basic_string
,allocator
> gstring;
#ifdef _unicode
#define gout wcout
#else
#define gout cout
#endif
//構建基本錯誤描述
enum ;
typedef vector
gerrortype;
class gwlerrorinfo
public:
static const gerrortype& gwlerrors()
};#define errs gwlerrorinfo::gwlerrors()
////為子型別識別定義乙個巨集.它把物件本身當做乙個異常丟擲
#define who virtual void who()
//類element,是程式設計元素的抽象,被抽象得只有乙個特性:被認出身分
class element
virtual void who() =0;
element(){}
protected:
explicit element(const element&){}
element& operator = (const element&)
};//
//類company,用來把一些有關聯的處理機組織到一起
//它相當於現實中的公司或機構
class company:public element
who};
////所有資料的基型別,但它沒有任何資料內容.
//它是對資料的高度抽象, 抽象到只有它是能被處理這一點特性了.
class data:public element;
////版本資訊
class versioninfo:public data
bool operator == (const versioninfo& right)
unsigned int major;
unsigned int minor;
gstring companyname;
who};
////錯誤資訊的可攜式別.規定id為零表示沒有錯誤.
class errorinfo:public data
errorinfo(unsigned int _id = ok)
errorinfo& operator =( errorinfo& right)
unsigned int id;
gstring info;
whoprivate:
};//
//對資料進行分類的模板.
template
class localdata:public data
;//
//對錯誤型別分類的模板.
template
class localerror:public errorinfo
localerror(unsigned int _id):errorinfo(_id){}
who
};
////資料群落
//通過資料群落中處理, 使用者可以方便的實現自己想要的相關資料處理.
template
class datacommunity:public data
virtual void get(processor& match){}
};//
//處理機的基型別, processor
//它是系統中"資料處理塊"的高度抽象. 抽象到只能處理資料了.
class processor:public element
virtual void set(data& data) //資料流入
virtual void get(data& data) //資料流出
virtual void bind(data* data)
virtual void debind(data* data)
virtual const errorinfo& lasterror();
protected:
//防止因賦值操作和拷貝構造所帶來的混亂
processor& operator =(processor&)
explicit processor(processor& o){}//這是也防止混亂的.
////巨集cenozoic,用來新生乙個處理機
#define cenozoic(new_processor_name)/
class new_processor_name:public processor/
;//定義乙個從windows動態鏈結庫進行處理機真正實現的建立方針
/template
class windll
~windll()
processor* create(tchar* path)
private:
hmodule libhandle;//處理機工廠所在的庫的控制代碼
////處理機匹配器.它有以下功能
//功能1:對處理機名柄進行智慧型包裝
//功能2:對處理所能處理的資料進行匹配
template
class envionment = windll>
class match
~match()
}operator bool()
//單項資料輸入
matchtype& operator >> (datatype& data)
//單項資料輸出
matchtype& operator << (datatype& data)
//資料群落輸出
matchtype& operator<< (datacomm& dataset)
// 資料群落輸入
matchtype& operator >>(datacomm& dataset)
const errorinfo& lasterror()
private:
processor *handle;
envionment
envionment;
};gwl_end
#endif //__gwl_h__
仿基因程式設計的C 原始碼
ifndef gwl h define gwl h gwl名字空間的開始 define gwl begin namespace gwl 使用名字空間gwl define gwl using namespace gwl include include include include include g...
仿基因程式設計的C 原始碼
ifndef gwl h define gwl h gwl名字空間的開始 define gwl begin namespace gwl 使用名字空間gwl define gwl using namespace gwl include include include include include g...
仿基因程式設計的C 原始碼
ifndef gwl h define gwl h gwl名字空間的開始 define gwl begin namespace gwl 使用名字空間gwl define gwl using namespace gwl include include include include include g...