0
我正在學習使用CORBA編寫數字媒體管理。 我不知道如何實現方法VMSgetMediaAvailable()引發(ServerException)。CORBA VMS如何編寫該方法?
這裏是VMS.idl:
module VMS {
enum Genre { g_undefined, SciFi, Comedy, Action, Horror, Docu };
enum StatusType { s_undefined, available, lent };
struct VMSMedia {
long ObjectId;
long ProviderId;
Genre Type;
string Title;
string ProductionCountry;
short ProductionYear;
short Length;
StatusType Status;
};
struct VMSProvider {
long ObjectId;
string Name;
string FirstName;
long ZIPCode; /* short does not work */
string Address;
};
exception ServerException {
string reason;
};
typedef sequence<VMSMedia> VMSMediaSeq;
typedef sequence<VMSProvider> VMSProviderSeq;
interface VMSRepository {
readonly attribute long currentMaxProviderId;
readonly attribute long currentMaxMediaId;
oneway void save();
oneway void addProvider (in VMSProvider p);
oneway void delProvider (in long id);
VMSProvider getProvider (in long id)
raises (ServerException);
VMSProviderSeq getProviders()
raises (ServerException);
oneway void addMedia (in VMSMedia p);
oneway void delMedia (in long id);
VMSMedia getMedia (in long id)
raises (ServerException);
VMSMediaSeq getMediaOfType (in Genre type)
raises (ServerException);
VMSMediaSeq getMediaYoungerThan (in short year)
raises (ServerException);
//here new Method
VMSMediaSeq getMediaAvailable() raises
(ServerException);
};
};
我只有這個在類Repository_i.cc:
void
VMSRepository_i::VMSMediaSeq getMediaAvailable() {
}
我知道我必須創建一個新的存根和新的Skelton在那個IDL文件中,我必須實現這個方法。 我需要問是否有媒體可用,所以我必須做一個if-陳述權? 但我不知道我該怎麼做。