File.pkg 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. $#include "IO/File.h"
  2. enum FileMode
  3. {
  4. FILE_READ = 0,
  5. FILE_WRITE,
  6. FILE_READWRITE
  7. };
  8. class File : public Object
  9. {
  10. File();
  11. File(const String fileName, FileMode mode = FILE_READ);
  12. File(PackageFile* package, const String fileName);
  13. ~File();
  14. bool Open(const String fileName, FileMode mode = FILE_READ);
  15. bool Open(PackageFile* package, const String fileName);
  16. void Close();
  17. void Flush();
  18. void SetName(const String name);
  19. FileMode GetMode() const;
  20. bool IsOpen() const;
  21. void* GetHandle() const;
  22. bool IsPackaged() const;
  23. // From Deserializer
  24. // unsigned Read(void* dest, unsigned size);
  25. tolua_outside VectorBuffer DeserializerRead @ Read(unsigned size);
  26. unsigned Seek(unsigned position);
  27. unsigned SeekRelative(int delta);
  28. const String GetName() const;
  29. unsigned GetChecksum();
  30. unsigned GetPosition() const;
  31. unsigned Tell() const;
  32. unsigned GetSize() const;
  33. bool IsEof() const;
  34. int ReadInt();
  35. long long ReadInt64();
  36. short ReadShort();
  37. signed char ReadByte();
  38. unsigned ReadUInt();
  39. unsigned long long ReadUInt64();
  40. unsigned short ReadUShort();
  41. unsigned char ReadUByte();
  42. bool ReadBool();
  43. float ReadFloat();
  44. double ReadDouble();
  45. IntRect ReadIntRect();
  46. IntVector2 ReadIntVector2();
  47. IntVector3 ReadIntVector3();
  48. Rect ReadRect();
  49. Vector2 ReadVector2();
  50. Vector3 ReadVector3();
  51. Vector3 ReadPackedVector3(float maxAbsCoord);
  52. Vector4 ReadVector4();
  53. Quaternion ReadQuaternion();
  54. Quaternion ReadPackedQuaternion();
  55. Matrix3 ReadMatrix3();
  56. Matrix3x4 ReadMatrix3x4();
  57. Matrix4 ReadMatrix4();
  58. Color ReadColor();
  59. BoundingBox ReadBoundingBox();
  60. String ReadString();
  61. String ReadFileID();
  62. StringHash ReadStringHash();
  63. // PODVector<unsigned char> ReadBuffer();
  64. VectorBuffer ReadBuffer();
  65. ResourceRef ReadResourceRef();
  66. ResourceRefList ReadResourceRefList();
  67. Variant ReadVariant();
  68. Variant ReadVariant(VariantType type);
  69. VariantVector ReadVariantVector();
  70. VariantMap ReadVariantMap();
  71. unsigned ReadVLE();
  72. unsigned ReadNetID();
  73. String ReadLine();
  74. // From Serializer
  75. // unsigned Write(const void* data, unsigned size);
  76. tolua_outside unsigned SerializerWrite @ Write(const VectorBuffer& buffer);
  77. bool WriteInt(int value);
  78. bool WriteInt64(long long value);
  79. bool WriteShort(short value);
  80. bool WriteByte(signed char value);
  81. bool WriteUInt(unsigned value);
  82. bool WriteUInt64(unsigned long long value);
  83. bool WriteUShort(unsigned short value);
  84. bool WriteUByte(unsigned char value);
  85. bool WriteBool(bool value);
  86. bool WriteFloat(float value);
  87. bool WriteDouble(double value);
  88. bool WriteIntRect(const IntRect& value);
  89. bool WriteIntVector2(const IntVector2& value);
  90. bool WriteIntVector3(const IntVector3& value);
  91. bool WriteRect(const Rect& value);
  92. bool WriteVector2(const Vector2& value);
  93. bool WriteVector3(const Vector3& value);
  94. bool WritePackedVector3(const Vector3& value, float maxAbsCoord);
  95. bool WriteVector4(const Vector4& value);
  96. bool WriteQuaternion(const Quaternion& value);
  97. bool WritePackedQuaternion(const Quaternion& value);
  98. bool WriteMatrix3(const Matrix3& value);
  99. bool WriteMatrix3x4(const Matrix3x4& value);
  100. bool WriteMatrix4(const Matrix4& value);
  101. bool WriteColor(const Color& value);
  102. bool WriteBoundingBox(const BoundingBox& value);
  103. bool WriteString(const String value);
  104. bool WriteFileID(const String value);
  105. bool WriteStringHash(const StringHash& value);
  106. // bool WriteBuffer(const PODVector<unsigned char>& buffer);
  107. tolua_outside bool SerializerWriteBuffer @ WriteBuffer(const VectorBuffer& buffer);
  108. bool WriteResourceRef(const ResourceRef& value);
  109. bool WriteResourceRefList(const ResourceRefList& value);
  110. bool WriteVariant(const Variant& value);
  111. bool WriteVariantData(const Variant& value);
  112. bool WriteVariantVector(const VariantVector& value);
  113. bool WriteVariantMap(const VariantMap& value);
  114. bool WriteVLE(unsigned value);
  115. bool WriteNetID(unsigned value);
  116. bool WriteLine(const String value);
  117. tolua_readonly tolua_property__get_set FileMode mode;
  118. tolua_readonly tolua_property__is_set bool open;
  119. tolua_readonly tolua_property__is_set bool packaged;
  120. // From Deserializer
  121. tolua_readonly tolua_property__get_set String name;
  122. tolua_readonly tolua_property__get_set unsigned checksum;
  123. tolua_readonly tolua_property__get_set unsigned position;
  124. tolua_readonly tolua_property__get_set unsigned size;
  125. tolua_readonly tolua_property__is_set bool eof;
  126. };
  127. ${
  128. #define TOLUA_DISABLE_tolua_IOLuaAPI_File_new00
  129. static int tolua_IOLuaAPI_File_new00(lua_State* tolua_S)
  130. {
  131. return ToluaNewObject<File>(tolua_S);
  132. }
  133. #define TOLUA_DISABLE_tolua_IOLuaAPI_File_new00_local
  134. static int tolua_IOLuaAPI_File_new00_local(lua_State* tolua_S)
  135. {
  136. return ToluaNewObjectGC<File>(tolua_S);
  137. }
  138. /* method: new of class File */
  139. #define TOLUA_DISABLE_tolua_IOLuaAPI_File_new01
  140. static int tolua_IOLuaAPI_File_new01(lua_State* tolua_S)
  141. {
  142. tolua_Error tolua_err;
  143. if (
  144. !tolua_isusertable(tolua_S,1,"File",0,&tolua_err) ||
  145. !tolua_isurho3dstring(tolua_S,2,0,&tolua_err) ||
  146. !tolua_isnumber(tolua_S,3,1,&tolua_err) ||
  147. !tolua_isnoobj(tolua_S,4,&tolua_err)
  148. )
  149. goto tolua_lerror;
  150. else
  151. {
  152. const String fileName = ((const String) tolua_tourho3dstring(tolua_S,2,0));
  153. FileMode mode = ((FileMode) (int) tolua_tonumber(tolua_S,3,FILE_READ));
  154. {
  155. File* tolua_ret = (File*) Mtolua_new((File)(GetContext(tolua_S),fileName,mode));
  156. tolua_pushusertype(tolua_S,(void*)tolua_ret,"File");
  157. }
  158. }
  159. return 1;
  160. tolua_lerror:
  161. return tolua_IOLuaAPI_File_new00(tolua_S);
  162. }
  163. /* method: new_local of class File */
  164. #define TOLUA_DISABLE_tolua_IOLuaAPI_File_new01_local
  165. static int tolua_IOLuaAPI_File_new01_local(lua_State* tolua_S)
  166. {
  167. tolua_Error tolua_err;
  168. if (
  169. !tolua_isusertable(tolua_S,1,"File",0,&tolua_err) ||
  170. !tolua_isurho3dstring(tolua_S,2,0,&tolua_err) ||
  171. !tolua_isnumber(tolua_S,3,1,&tolua_err) ||
  172. !tolua_isnoobj(tolua_S,4,&tolua_err)
  173. )
  174. goto tolua_lerror;
  175. else
  176. {
  177. const String fileName = ((const String) tolua_tourho3dstring(tolua_S,2,0));
  178. FileMode mode = ((FileMode) (int) tolua_tonumber(tolua_S,3,FILE_READ));
  179. {
  180. File* tolua_ret = (File*) Mtolua_new((File)(GetContext(tolua_S),fileName,mode));
  181. tolua_pushusertype(tolua_S,(void*)tolua_ret,"File");
  182. tolua_register_gc(tolua_S,lua_gettop(tolua_S));
  183. }
  184. }
  185. return 1;
  186. tolua_lerror:
  187. return tolua_IOLuaAPI_File_new00_local(tolua_S);
  188. }
  189. /* method: new of class File */
  190. #define TOLUA_DISABLE_tolua_IOLuaAPI_File_new02
  191. static int tolua_IOLuaAPI_File_new02(lua_State* tolua_S)
  192. {
  193. tolua_Error tolua_err;
  194. if (
  195. !tolua_isusertable(tolua_S,1,"File",0,&tolua_err) ||
  196. !tolua_isusertype(tolua_S,2,"PackageFile",0,&tolua_err) ||
  197. !tolua_isurho3dstring(tolua_S,3,0,&tolua_err) ||
  198. !tolua_isnoobj(tolua_S,4,&tolua_err)
  199. )
  200. goto tolua_lerror;
  201. else
  202. {
  203. PackageFile* package = ((PackageFile*) tolua_tousertype(tolua_S,2,0));
  204. const String fileName = ((const String) tolua_tourho3dstring(tolua_S,3,0));
  205. {
  206. File* tolua_ret = (File*) Mtolua_new((File)(GetContext(tolua_S),package,fileName));
  207. tolua_pushusertype(tolua_S,(void*)tolua_ret,"File");
  208. }
  209. }
  210. return 1;
  211. tolua_lerror:
  212. return tolua_IOLuaAPI_File_new01(tolua_S);
  213. }
  214. /* method: new_local of class File */
  215. #define TOLUA_DISABLE_tolua_IOLuaAPI_File_new02_local
  216. static int tolua_IOLuaAPI_File_new02_local(lua_State* tolua_S)
  217. {
  218. tolua_Error tolua_err;
  219. if (
  220. !tolua_isusertable(tolua_S,1,"File",0,&tolua_err) ||
  221. !tolua_isusertype(tolua_S,2,"PackageFile",0,&tolua_err) ||
  222. !tolua_isurho3dstring(tolua_S,3,0,&tolua_err) ||
  223. !tolua_isnoobj(tolua_S,4,&tolua_err)
  224. )
  225. goto tolua_lerror;
  226. else
  227. {
  228. PackageFile* package = ((PackageFile*) tolua_tousertype(tolua_S,2,0));
  229. const String fileName = ((const String) tolua_tourho3dstring(tolua_S,3,0));
  230. {
  231. File* tolua_ret = (File*) Mtolua_new((File)(GetContext(tolua_S),package,fileName));
  232. tolua_pushusertype(tolua_S,(void*)tolua_ret,"File");
  233. tolua_register_gc(tolua_S,lua_gettop(tolua_S));
  234. }
  235. }
  236. return 1;
  237. tolua_lerror:
  238. return tolua_IOLuaAPI_File_new01_local(tolua_S);
  239. }
  240. $}