Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

redisReader #1

Open
BruceChen7 opened this issue Jun 9, 2019 · 3 comments
Open

redisReader #1

BruceChen7 opened this issue Jun 9, 2019 · 3 comments

Comments

@BruceChen7
Copy link
Owner

BruceChen7 commented Jun 9, 2019

结构关系

image

@BruceChen7 BruceChen7 changed the title redis主要数据结构.md redisReader.md Jun 10, 2019
@BruceChen7 BruceChen7 changed the title redisReader.md redisReader Jun 10, 2019
@BruceChen7
Copy link
Owner Author

生成图

digraph structs {

    graph [
        rankdir =  "LR"
    ]

    node [
        fontsize = 16
        fontcolor = black
        shape = "plaintext"
    ]

    struct1 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT = "f1">redisReply</TD>
            </TR>
             <TR>
                <TD>int type </TD>
            </TR>
             <TR>
                <TD>long long integer </TD>
            </TR>
            <TR>
                <TD>size_t len</TD>
            </TR>
            <TR>
                <TD>char *str </TD>
            </TR>

            <TR>
                <TD PORT="f0">struct redisReply **element</TD>
            </TR>
            
        </TABLE>>];

    struct2 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT ="f0">struct redisReply*</TD>
            </TR>
             <TR>
                <TD>[0]</TD>
            </TR>
             <TR>
                <TD>[1]</TD>
            </TR>
            <TR>
                <TD>[2]</TD>
            </TR>
             <TR>
                <TD PORT= "f1">[idx]</TD>
            </TR>
            <TR>
                <TD bgcolor="gray45">....</TD>
            </TR>

            <TR>
                <TD>[elements-1]</TD>
            </TR>
            
        </TABLE>>];

    struct1:f0 -> struct2:f0 [
    ]

    
    struct3 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45">redisReader</TD>
            </TR>
             <TR>
                <TD>int err </TD>
            </TR>
             <TR>
                <TD>char* buf</TD>
            </TR>
            <TR>
                <TD>size pos </TD>
            </TR>
             <TR>
                <TD>size_t maxbuf </TD>
            </TR>
            <TR>
                <TD PORT = "f0">redisReadTask rstack[0] </TD>
            </TR>
            <TR>
                <TD PORT = "f2">redisReadTask rstack[1] </TD>
            </TR>
            <TR>
                <TD>... </TD>
            </TR>
             <TR>
                <TD>redisReadTask rstack[8] </TD>
            </TR>


            <TR>
                <TD>int ridx</TD>
            </TR>
            <TR>
                <TD>void *reply</TD>
            </TR>
            <TR>
                <TD PORT = "f1">redisReplyObjectFunctions* fn  </TD>
            </TR>
            <TR>
                <TD>void *privdata </TD>
            </TR>
        </TABLE>>];


    struct4 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD PORT = "f0"  bgcolor = "grey">redisReadTask</TD>
            </TR>
             <TR>
                <TD>int type </TD>
            </TR>
             <TR>
                <TD>int elements</TD>
            </TR>
            <TR>
                <TD PORT = "f3"> int idx  </TD>
            </TR>
             <TR>
                <TD PORT = "f2"> void *obj</TD>
            </TR>
            <TR>
                <TD PORT = "f1">struct redisReadTask *parent </TD>
            </TR>
            <TR>
                <TD>void *privdata</TD>
            </TR>
        </TABLE>>

        regular = 10
    ];
    // { rank = same; struct3; struct4; struct5}

    struct5 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "grey" PORT = "f0">redisReplyObjectFunctions</TD>
            </TR>
             <TR>
                <TD>void *(*createString)(const redisReadTask*, char*, size_t)</TD>
            </TR>
             <TR>
                <TD>void *(*createArray)(const redisReadTask*, int)</TD>
            </TR>
            <TR>
                <TD>void *(*createInteger)(const redisReadTask*, long long)</TD>
            </TR>
             <TR>
                <TD>void *(*createNil)(const redisReadTask*)</TD>
            </TR>
            <TR>
                <TD> void (*freeObject)(void*)</TD>
            </TR>
        </TABLE>>]
    
    "struct3":f0 -> "struct4":f0 [
        id = 0
    ];
    "struct3":f1 -> "struct5":f0 [
        id = 1
    ];

    "struct4":f2 -> "struct1":f1


     struct6 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD PORT = "f0"  bgcolor = "grey">redisReadTask</TD>
            </TR>
             <TR>
                <TD>int type </TD>
            </TR>
             <TR>
                <TD>int elements</TD>
            </TR>
            <TR>
                <TD PORT = "f3">int idx  </TD>
            </TR>
             <TR>
                <TD PORT = "f2"> void *obj</TD>
            </TR>
            <TR>
                <TD PORT = "f1">struct redisReadTask *parent </TD>
            </TR>
            <TR>
                <TD>void *privdata</TD>
            </TR>
        </TABLE>>
    ];
    struct3:f2 -> struct6:f0

    struct6:f1 ->struct4:f0
    
    struct6:f3 ->struct2:f1

}

@BruceChen7
Copy link
Owner Author

1563386513480

@BruceChen7
Copy link
Owner Author

BruceChen7 commented Jul 19, 2019

digraph structs {

    graph [
        rankdir =  "LR"
    ]

    node [
        fontsize = 16
        fontcolor = black
        shape = "plaintext"
    ]

    struct1 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT = "f1">redisReply</TD>
            </TR>
             <TR>
                <TD>int type </TD>
            </TR>
             <TR>
                <TD>long long integer </TD>
            </TR>
            <TR>
                <TD>size_t len</TD>
            </TR>
            <TR>
                <TD>char *str </TD>
            </TR>
            <TR>
                <TD>int element</TD>
            </TR>

            <TR>
                <TD PORT="f0">struct redisReply **element</TD>
            </TR>
            
        </TABLE>>];

    struct2 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT ="f0">struct redisReply*</TD>
            </TR>
             <TR>
                <TD PORT= "f2">[0]</TD>
            </TR>
             <TR>
                <TD PORT = "f3">[1]</TD>
            </TR>
            <TR>
                <TD>[2]</TD>
            </TR>
             <TR>
                <TD PORT= "f1">[idx]</TD>
            </TR>
            <TR>
                <TD bgcolor="gray45">....</TD>
            </TR>

            <TR>
                <TD>[elements-1]</TD>
            </TR>
            
        </TABLE>>];

    struct1:f0 -> struct2:f0 [
    ]


    struct3 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT = "f1">struct redisReply</TD>
            </TR>
             <TR>
                <TD>REDIS_REPLY_INTEGER </TD>
            </TR>
             <TR>
                <TD>11</TD>
            </TR>
            <TR>
                <TD>....</TD>
            </TR>
            <TR>
                <TD>...</TD>
            </TR>

            <TR>
                <TD PORT="f0">NULL</TD>
            </TR>
            
        </TABLE>>];

        struct2:f2->struct3:f1



        struct4 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT = "f1">struct redisReply</TD>
            </TR>
             <TR>
                <TD>REDIS_REPLY_ARRAY </TD>
            </TR>
             <TR>
                <TD>..</TD>
            </TR>
            <TR>
                <TD>....</TD>
            </TR>
            <TR>
                <TD>2</TD>
            </TR>

            <TR>
                <TD PORT="f0">struct redisReply **element</TD>
            </TR>
            
        </TABLE>>];

        struct2:f3->struct4:f1


        
      struct5 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT ="f0">struct redisReply*</TD>
            </TR>
             <TR>
                <TD PORT= "f2">[0]</TD>
            </TR>
             <TR>
                <TD PORT = "f3">[1]</TD>
            </TR>
            
            
        </TABLE>>];


        struct4:f0 ->struct5:f0


        struct6 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT = "f1">struct redisReply</TD>
            </TR>
             <TR>
                <TD>REDIS_REPLY_INTEGER </TD>
            </TR>
             <TR>
                <TD>11</TD>
            </TR>
            <TR>
                <TD>....</TD>
            </TR>
            <TR>
                <TD>...</TD>
            </TR>

            <TR>
                <TD PORT="f0">NULL</TD>
            </TR>
            
        </TABLE>>];

        struct5:f2 ->struct6:f1


        struct7 [label=<
        <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
            <TR>
                <TD bgcolor = "gray45" PORT = "f1">struct redisReply</TD>
            </TR>
             <TR>
                <TD>REDIS_REPLY_INTEGER </TD>
            </TR>
             <TR>
                <TD>11</TD>
            </TR>
            <TR>
                <TD>....</TD>
            </TR>
            <TR>
                <TD>...</TD>
            </TR>

            <TR>
                <TD PORT="f0">NULL</TD>
            </TR>
            
        </TABLE>>];

        struct5:f3->struct7:f1
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant