774
社区成员




class ServiceBusAttachment:public BusAttachment
{
public:
ServiceBusAttachment(const char* appname,bool f);
void advertiseService(const TransportMask mask,MyBusListener& busListener);
void createInterface();
private:
void requestName();
void advertiseName(TransportMask mask);
void createSession(const TransportMask mask,MyBusListener& busListener);
};
class MyBusListener : public BusListener, public SessionPortListener, public SessionListener
{
public:
virtual bool AcceptSessionJoiner(SessionPort sessionPort, const char* joiner, const SessionOpts& opts);
virtual void SessionJoined(SessionPort sessionPort, SessionId id, const char* joiner);
virtual void NameOwnerChanged(const char* busName, const char* previousOwner, const char* newOwner);
};
class MyBusObject : public BusObject
{
public:
MyBusObject(BusAttachment& bus, const char* path);
QStatus SendCmdSignal(const char* cmd);
void ChatSignalHandler(const InterfaceDescription::Member* member, const char* srcPath, ajn::Message& msg);
void Cat(const InterfaceDescription::Member* member,ajn::Message& msg);
private:
const InterfaceDescription::Member* chatSignalMember;
const InterfaceDescription::Member* commandSendedSignalMember;
};
QStatus status = ER_OK;
servicebus = new ServiceBusAttachment("myapp",true);
servicebus->createInterface();
servicebus->RegisterBusListener(busListener);
servicebus->Start();
MyBusObject myobj(*servicebus, objPath);
s_obj = &myobj;
servicebus->RegisterBusObject(*s_obj);
servicebus->Connect();
const TransportMask SERVICE_TRANSPORT_TYPE = TRANSPORT_ANY;
servicebus->advertiseService(SERVICE_TRANSPORT_TYPE,busListener);