cfad47cfa3/tads3/vmres.h

4b825dc642cb6eb9a060e54bf8d69288fbee4904cfad47cfa334b206c65f22086bcc5d63e6f70944
1
/* $Header: d:/cvsroot/tads/tads3/vmres.h,v 1.2 1999/05/17 02:52:30 MJRoberts Exp $ */
2
3
/* 
4
 *   Copyright (c) 1999, 2002 Michael J. Roberts.  All Rights Reserved.
5
 *   
6
 *   Please see the accompanying license file, LICENSE.TXT, for information
7
 *   on using and copying this software.  
8
 */
9
/*
10
Name
11
  vmres.h - resource object implementation
12
Function
13
  A resource is a named binary byte stream stored within the image
14
  file.  To the VM, resources are opaque; the VM merely maintains the
15
  resource name table, and provides access to the byte stream to the
16
  user program.
17
Notes
18
  
19
Modified
20
  04/03/99 MJRoberts  - Creation
21
*/
22
23
#ifndef VMRES_H
24
#define VMRES_H
25
26
#include <stdlib.h>
27
#include "t3std.h"
28
29
class CVmResource
30
{
31
    friend class CVmImageLoader;
32
    
33
public:
34
    CVmResource(long seek_pos, uint32 len, size_t name_len);
35
    ~CVmResource();
36
37
    /* get the seek position */
38
    long get_seek_pos() const { return seek_pos_; }
39
40
    /* get the length of the byte stream */
41
    uint32 get_len() const { return len_; }
42
43
    /* get my name */
44
    const char *get_name() const { return name_; }
45
46
    /* get/set next resource in list */
47
    CVmResource *get_next() const { return nxt_; }
48
    void set_next(CVmResource *nxt) { nxt_ = nxt; }
49
50
private:
51
    /* get my name buffer */
52
    char *get_name_buf() const { return name_; }
53
54
    /* seek position in image file of my binary data */
55
    long seek_pos_;
56
57
    /* length in bytes of my binary data stream */
58
    uint32 len_;
59
60
    /* name string */
61
    char *name_;
62
63
    /* next resource in list */
64
    CVmResource *nxt_;
65
};
66
67
#endif /* VMRES_H */