C++ Class Mapped Google Protocol Buffer Message (六)

2014-11-24 01:21:35 · 作者: · 浏览: 28
atabase& db ) const;

bool persist();
bool update();
bool erase();
#ifdef N_ODB
virtual shared_ptr CreateBuild() { return nullptr;}
#endif
void SendIndication();

protected:

void InternalSendIndcation();
private:
#pragma db id auto
unsigned int id_;

std::string name_;

weak_ptr parent_;

};

#pragma db object callback(dbevent) table("tblZone")
class CFocusZone : public CFocusEntity
{
friend class odb::access;
public:
CFocusZone();
~CFocusZone();

void AddEntity( const shared_ptr & en);
void DelEntity( const shared_ptr & en );


void dbevent( odb::callback_event e, odb::database& db );
void dbevent( odb::callback_event e, odb::database& db ) const;

shared_ptr FindEntity( unsigned int id, bool recursive = false) ;
shared_ptr FindEntity( const std::string & name, bool recursive = false) ;
#ifdef N_ODB
void foreach( const std::function & ) > & callback , bool recursive = false, bool isCallItself = false);
virtual shared_ptr CreateBuild();

#endif
static void SetRootZone( const shared_ptr & rootZone_);

static const shared_ptr & GetRootZone();
protected:
static shared_ptr rootZone;
private:
#pragma db inverse(parent_)
std::set< shared_ptr > members_;
std::set< int > int_members_;
std::set< CFocusEntity > raw_members_;

std::map< int ,shared_ptr > map_members_;
std::map< int ,int > map_int_members_;
std::map< int ,CFocusEntity > map_raw_members_;

#ifdef N_ODB
mutable dv::CMutex members_mutex;
#endif

};

#pragma db object callback(dbevent) table("tblTerminal")
class CFocusTerminal : public CFocusEntity
{
friend class odb::access;
public:
CFocusTerminal();
~CFocusTerminal();

const std::string & GetAddress() const { return address_; }
void SetAddress(const std::string & val) { address_ = val; }

unsigned short GetPort() const { return port_; }
void SetPort(unsigned short val) { port_ = val; }

const std::string & GetUsername() const { return username_; }
void SetUsername(const std::string & val) { username_ = val; }

const std::string & GetPassword() const { return password_; }
void SetPassword(const std::string & val) { password_ = val; }


void dbevent( odb::callback_event e, odb::database& db );
void dbevent( odb::callback_event e, odb::database& db ) const;

void keepalive_init();

void clear_status();

void send_keepalive();

void remote_login();

void release_connect();

bool IsOnline() const { return recv_service_ok_;}
#ifdef N_ODB
void OnRecvMessage( T_Message &recvMsg );
// bool IsDualEnable() const { return IsOnline () && dual_stream_status_ ;}
bool IsLogin() const { return remote_login_ok_; }
//bool IsAdmin() const { return remote_login_ok_ && adminstartor_ok_;}
virtual shared_ptr CreateBuild();
void SetDualEnable( DualLevel level );
//bool IsInConfing() const { return conf_status_.ConfStatus > 0 true : false;}
void SetCommand( unsigned long ulCommand);
void DisConnect();
const T_InformTerConfig & GetTerConfig() const { return ter_config_;}
const T_InformSysStatus & GetSysStatus() const { return sys_status_;}
const T_InformConfStatus & GetConfStatus() const { return conf_status_;}
//const T_InformVideoConfig & GetVideoConfig() const { return video_config_; }
const T_VideoOption & GetVideoOption() const { return video_option_; }
const T_SetupSoftware & GetSoftwareVersion() const { return software_version_