All Classes Functions Variables Typedefs Friends Pages
IList.h
1 //------------------------------------------------------------------------------
2 //
3 // Copyright (c) 2012 Glympse Inc. All rights reserved.
4 //
5 //------------------------------------------------------------------------------
6 
7 #ifndef ILIST_H__GLYMPSE__
8 #define ILIST_H__GLYMPSE__
9 
10 namespace Glympse
11 {
12 
13 /*C*/
14 template< class T > struct IList;
16 template< class T > class GList
17 {
18  private: GList();
19  public: typedef O< IList< T > > ptr;
20 };
21 
22 
26 /*C*/template< class T > struct IList : public ICommon
27 /*J*public interface GList<T> extends GCommon, Iterable<T>**/
28 /*S*public interface GList<T> : GCommon, IEnumerable<T>**/
29 {
33  public: virtual int32 length() = 0;
34 
38  public: virtual T getFirst() = 0;
39 
43  public: virtual T getLast() = 0;
44 
48  public: virtual typename GEnumeration<T>::ptr elements() = 0;
49 
53  public: virtual typename GEnumeration<T>::ptr elementsReversed() = 0;
54 
58  public: virtual typename GList<T>::ptr clone() = 0;
59 
63  /*C*/public: typedef T Element;
64 };
65 
66 }
67 
68 #endif // !ILIST_H__GLYMPSE__